Each software development activity is estimated according to Function Point and COCOMO II techniques, in terms of size and duration, as described in the MilSOFT estimation process. Software metrics are collected and evaluated during the life-cycle and fully satisfying the"Quantitative Project Management" which is a CMMI Level 4 key process area. MilSOFT has adapted CMMI Institute risk matrix to its process and applies tight risk management procedures during software projects.
To manage a successful project a detailed Software Development Plan (SDP) is prepared based on program requirements and the system requirements allocated to software. The description of all phases, software development environment, resources, metrics to be collected, schedule of the project, etc. are included in this plan.
- The first phase of the software development process is Requirement Analysis.
In this phase, the functional and operational requirements of the software is determined. These requirements are documented in Software Requirement Specification (SRS) and Interface Requirements Specification (IRS) documents. The requirements determined in this phase are managed by employing backward and forward tracing, so the software being developed is ensuredto satisfy the requirements in all the phases.
- In the Preliminary Design phase, preliminary design of the software is completed based on the SRS and IRS
Preliminary design process conforms to MilSOFT design standards. The results of the preliminary design are documented in Software Design Description (SDD) and Interface Design Description (IDD) documents.
- In the Critical Design phase, detailed design of the software is completed to make it ready for the Implementation phase.
The results of the Critical Design phase is documented by adding new parts to SDD and IDD documents, which have been prepared in the Preliminary Design phase. If the software system includes a database, then the structure of the database is documented in the Database Design Description (DBDD) document.
- In the Implementation Phase, the implementation of the system is completed based on SRS, IRS, SDD and IDD documents.
Implementation phase includes coding, compiling, debugging, user interface development, database creation, and filling in the necessary data to the database. Configuration management is performed for each software unit during coding. Coding conforms to related MilSOFT Coding Standards.
- In the Unit Testing phase, each implemented software unit is unit tested independently in an isolated test environment , i.e. independent of other software units.
Unit tests are performed according to the Unit Test Description (UTD) document, which were prepared and reviewed previously. The software units which pass the unit tests are integrated in Unit Integration phase. Unit integration tests are performed at this point.
Software products developed in every each phases of software development process are reviewed according to the Software Development Plan (SDP). These reviews are performed by software or system engineers who were not involved in the development of the product. These reviews are performed for both developed and still being developed
products. The main purpose of the reviews is to determine the defects of the products in earlier stages of development, and to provide a qualified product.
The developed software products are reviewed with the customer according to the terms of the contract. Thus, feedback is obtained from the customer during the development processes, so that the customer joins the development process.