This project is read-only.
Kormic Cash Register
Software Development Plan

Version <1.0>
Revision History
Date Version Description Author
10/21/2013 1.0 Begin. Kyle


Table of Contents
1. Introduction
1.1 Purpose
1.2 Scope
1.3 Definitions, Acronyms and Abbreviations
1.4 References
1.5 Overview
2. Project Overview
2.1 Project purpose, scope and objectives
2.2 Assumptions and constraints
2.3 Project deliverables
2.4 Evolution of the Software Development Plan
3. Project Organization
3.1 Organizational Structure
3.2 External Interfaces
3.3 Roles and Responsibilities
4. Management Process
4.1 Project Estimates
4.2 Project Plan
4.2.1 Phase Plan
4.2.2 Iteration Objectives
4.2.3 Releases
4.2.4 Project Schedule
4.2.5 Project Resourcing
4.2.6 Budget
4.3 Iteration Plans
4.4 Project Monitoring and control
4.4.1 Requirements management plan
4.4.2 Schedule control plan
4.4.3 Budget control plan
4.4.4 Quality control plan
4.4.5 Reporting Plan
4.4.6 Measurement Plan
4.5 Risk Management plan
4.6 Close-out plan
5. Technical process plans
5.1 Development Case
5.2 Methods, tools and techniques
5.3 Infrastructure plan
5.4 Product acceptance plan
6. Supporting process plans
6.1 Configuration management plan
6.2 Evaluation plan
6.3 Documentation plan
6.4 Quality assurance plan
6.5 Problem resolution plan
6.6 Subcontractor management plan
6.7 Process improvement plan
7. Additional plans
8. Annexes
9. Index

Project or Software Development Plan

1. Introduction
This is the core documentation for Kormic Cash Registers. Proceed to section two where the project is broken down.

1.1 Purpose
The purpose of this document is to provide a core base for Kormic’s documentation and to show interested developers or developers joining this project what they will be doing.

1.2 Scope
This document is a brief description of what Kormic Cash Registers is about and what is necessary to help develop this project.

1.3 Definitions, Acronyms and Abbreviations
WPF: Windows Presentation Foundation
SQL: Structured Query Language
XML/XAML: Extensible Markup Language / Extensible Application Markup Language

1.4 References
Core Development Plan (this): a brief explanation of the project and its purpose.
Visual Designs: Photoshop pictures of what the windows will look like.

1.5 Overview
Below you will read about the project, the process to create the product, how the project will be organized, and the management plan.

2. Project Overview

2.1 Project purpose, scope and objectives
Kormic Cash Registers has a medium sized scope. It will include multiple windows created in WPF and C# language. There will be a data access layer which will connect to a MYSQL database. The program should be easily compiled and downloaded to be executed on any windows operating system. Kormic should be able to easily connect to any database path and the database should be hosted in a secure location. The setup of the application should be simple and easy, user friendly. The skills required in the development of Kormic include C# familiarity, XAML fluency, WPF knowledge, SQL and MYSQL experience, and the ability to use Visual Studios, SQL Management Studio, and Git.
The reason why Kormic Cash Registers was created is to provide an extremely easy to use and secure application that can be run on any computer for the management of purchasing and exchanging goods at any store location. This project is simple and open source to anyone with basic knowledge of C#, WPF, and SQL. The goal of Kormic is to make a product that is easily purchased and distributed for use by any person or company and easy to use for everyone. We want a register application that makes sense and can be used with any type of store without being too complicated with a cluster of unnecessary features, but is also safe and dependable.

2.2 Assumptions and constraints
The programs required to be part of the development for Kormic Cash Registers includes:
- Microsoft Visual Studios (plugin to develop in WPF, C#, XAML).
- Git from github to get the updated project and make changes to it.
- Adobe Photoshop (any version) (optional) for reading/created visual documentation.
- SQL Management Studio for developing the database (SQL SDK).
This project is open source which means anybody can work on it as a volunteer. This is a non-profit project. This project can be taken and worked on by any individual and sold without penalty. Kormic aims to provide a function application for our technology driven world and for the experience of programmers or software developers.

2.3 Project deliverables
Kormic Cash Registers will come together with time. There are no time constrains as of right now.
2.4 Evolution of the Software Development Plan
It is with great hope that Kormic makes it to version 2 which will contain the basic functionality of a cash register, including the ability to hook up to a database, login, add an item to the transaction, and complete the transaction. Beyond this point is where the little details will come into effect for version 3, 4 and above.

3. Project Organization

3.1 Organizational Structure
Anyone who would like to be a part of this project may join in to where they are most comfortable to contribute the most to this project’s progress and success. There are four basic payers which will be described in section 3.2 that will need to be programmed. This means there an acceptable amount of developers working on Kormic would be four, one for each layer. More the merrier.

3.2 External Interfaces
There will be four layers to be developed.
1. Presentation Layer
2. Business Layer
3. Data Access Layer
4. Database Layer

The presentation layer will be developed with XAML and will be what the user sees and interactions with. This is where the buttons, text fields, lists, radio buttons, and actual windows are programmed. The users will interact with this layer, and this layer will interact with the next layer, the Business Layer.
The Business Layer will include all “behind the scenes” work. This is where all the math and functionality will be programmed. This is the most important layer, the core layer of which everything else branches off of. The Business Layer is nicknamed the “Brain” layer.
The Data Access Layer is probably the simplest layer. This is the object which has the ability to talk to the database. The Business Layer will interact with the Data Access Layer, and the Data Access Layer will return with secure information from the database. The user does not have access to this layer for security reasons. Database information can only be obtained if the users asks the Presentation, which asks the Business Layer, which asks the Data Access Layer, and all layers approve.
The Database Layer is what will be made with SQL. This is the actual database that will consist of tables of data to be viewed, recorded, added to, and updated. The only layer that can gain access to the database is the Data Access Layer, no other layers.

The purpose of these layers is to break down the entire project into simple sections for development with their own functionality and to make the application and secure as possible by limiting the accessibility of very important information and functionality.

3.3 Roles and Responsibilities
All changes must first be approved by the development overseer. Once the changes have been approved, they will be added to the development system. When the development system is complete, the project will be up for publish.

Git does a great job of documenting changes and keeping track of what has changed. Always leave good comments that tell the overseer what you changed so it can easily be reviewed and approved.

4. Management Process

4.1 Project Estimates
Kormic Cash Registers should be totally free to develop. All the tools required to host the project are free services. The only costs will be to the developers if they do not yet own the software to develop with. This is to be dealt with by the developers themselves and is not a concern of Kormic Cash Registers. Kormic will be sold if offered money and all donations are accepted, however money is not required as this is free open source software developed by volunteers.

4.2 Project Plan
4.2.1 Phase Plan
The Presentation and Business layers should be developed first. Once these layers are in a good position, the database needs to begin development. A Data Access layer should be made which returns hard-coded data that is not from the database so that the Presentation and Business layers may continue development while the database is being worked on. When the database is finished, the Data Access Layer has to be completed. Once there is a complete database and a functional layer that can get the necessary information from the database, it’s time to finish he Presentation and Business layer together.

4.2.2 Iteration Objectives

4.2.3 Releases
Kormic Cash Registers will release a “demo” version after the basic transaction funcationality has been finished (this does not require a database, but it does require a Data Access Layer that can return information for presentation purposes).

The next version will be the Beta when the application is complete. From here, feedback will be returned and the full release version will come shortly after all fixes have been made.

4.2.4 Project Schedule
There are no due dates as of right now.

4.2.5 Project Resourcing
4.2.5.1 Staffing Plan

4.2.5.2 Resource Acquisition Plan

4.2.5.3 Training Plan
All training should be the developer’s past experiences. If a developer wishes to learn with this project, they will have restricted access and will have their work reviewed more frequently to help them along.

4.2.6 Budget
This project does not require any payments.

4.3 Iteration Plans

4.4 Project Monitoring and control

4.4.1 Requirements management plan

4.4.2 Schedule control plan
Any questions can be emailed to the project overseer. All changes must be pushed to the Git repository. Every push will be reviewed by the overseer and approved or denied.

4.4.3 Budget control plan
There is no budget for Kormic Cash Registers.

4.4.4 Quality control plan

4.4.5 Reporting Plan
All errors/problems or general questions can be asked on the CodePlex project page for Kormic Cash Registers.

4.4.6 Measurement Plan
4.5 Risk Management plan
4.6 Close-out plan
5. Technical process plans
5.1 Development Case
5.2 Methods, tools and techniques
Look in the “Standards” folder for all of this information.
- WPF Coding Standards
- Database Coding Standard and Guideline

5.3 Infrastructure plan
5.4 Product acceptance plan
6. Supporting process plans
6.1 Configuration management plan
6.2 Evaluation plan
The entire project will be overseen by the overseer.

6.3 Documentation plan
6.4 Quality assurance plan
6.5 Problem resolution plan
6.6 Subcontractor management plan
6.7 Process improvement plan
7. Additional plans
8. Annexes
9. Index

Last edited Oct 23, 2013 at 2:44 AM by Linkz5, version 7