In this section workflows are described that to a greater or lesser extent can be applied at each of four phases of the project.
During this workflow the team of analysts and subject matter experts examine various use cases for the developed system, establish and specify software requirements with their further systematization, documentation, analysis, detection of inconsistencies or imperfections and resolution of requirements conflicts.
At this stage, detailed requirements are converted into requirements specifications for developers. Based on data collected during analysis stage, data model is built, data structures in the database are designed, architecture of developed applications is created, algorithms are specified, appearance of every application and module interfaces are designed, etc.
Based on technical requirements and requirements list, a simulator is developed according to specifications.
During development, the simulator modules are checked with automated tests (both on the code and on the application level) that can reduce expenses for manual testing and minimize the necessity of regression testing (testing of previously developed functional) during subsequent improvement of the simulator.
Testing is divided into several types and stages, without which development of software of appropriate quality would be impossible. QA-specialists develop testing plan and test cases in order to plan testing process, select input data sets and take into account all requirements during testing process.Testing workflows are listed below.
QA-specialists check the quality of task performance by developers for conformity with requirements and Design workflow documentation. Bug fixing and testing of fixed bugs.
The system is installed into the operating environment, all integrations with other systems and applications are adjusted for their integrated interaction (e.g. various HLA interactions, interaction with hardware and so on). Check of compliance of the developed system with the requirements, bug fixing and corrections check are performed with the use of real data in the real environment.
Testing of compliance of the system with non-functional performance requirements. Check of all applications in use cases for compliance with performance requirements. Fixing of performance bugs and testing of fixed bugs.
Check of stability of the system performance in the real functioning mode. The system should not function slower with every hour and should not stop functioning after several days and months of continuous operation. In this case the system functions for a long period of time under the load that simulates workload. During this time performance of basic cases and stability of software functioning are measured. If key performance indicators worsen in the course of time, or the system stops functioning consistently or does not function at all, the bugs are fixed and testing starts again.
It is testing of the developed system by the Customer. The specialists of the Customer check compliance of the system with the Customer’s requirements. The specialists of the Developer fix bugs if bugs are detected at this stage. The testing is considered to be finished when the Customer signs an agreement that the developed system complies with the Customer’s requirements.
The system is installed and deployed in the simulator hardware, all integrations are configured, actual data is put into the system, and other necessary actions for putting the system into operation are performed.
During development and testing analysts write user documentation for system operation and developers write technical documentation to simplify further development of the system and describe interfaces of the system, data tables and range definitions etc. (for successful operation with the system of other Customer’s programmers at Customer’s discretion) to ensure successful maintenance of the system. Documentation process is finished only when responsible specialists of the Customer sign an agreement that the documentation complies with the Customer’s requirements.
Thus the system is considered to be implemented when it complies with the Customer’s requirements, is installed into operational environment, is successfully configured and functions on combination with hardware and other software, and there is also user and technical documentation for the system.
After transition the Developer enters technical support mode.
Bug fixing within the scope of technical support is performed without extra payment. New requirements and amendments of the existing requirements are assessed for every such case.
In the event of system failure due to software problems the Developer undertakes an obligation to fix the system within the shortest possible time at his expense.