Software development activities are performed in accordance with
world standard software lifecycle models in MilSOFT . The
following approaches are used
in accordance with IEEE12207 and MIL-STD-498 standard.
- Spiral
Model
- Rational Unified Process
- Grand Design
- Incremental
Design
- Evolutionary Design
Furthermore, the software engineering process used in
MilSOFT has recently been
adapted to CMMI (Capability Maturity Model Integrated)
Level 5 requirements.
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
Process Management" which is a CMM Level 4 key
process area. MilSOFT has adapted SEI (Software
Engineering Institude, Carnegie Mellon University)
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 ensured
to 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
documents.
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.