Development Methodology
While Project Management section discusses how SSA LTD interacts with the customers, this page explains our internal management rules.
The software development process is based on Rational Unified Process (RUP) and has the following stages:
1. Development of general architecture for whole system.
At this stage we create architecture of the system's core
and define all the interfaces for interaction with other
subsytems in a project.
2. Development of detailed architecture for each subsystem.
This process can be done simultaneously for each subsystem as we already
defined general architecture of whole system and interaction protocols between its components.
3. Development of the systems's core and internal interfaces.
At this stage we create preliminary variant of bone classes
and their interfaces. The code is written using
object-oriented metodology and this is our basic principle.
4. Testing and checking.
We check main system functionality using testcases
and fix any bugs in code if some occur.
5. Code development for all subsystems.
This stage can be performed in parallel mode involving additional developers if needed as far as
susbsystems are mostly independent of each other and interfaces between subsystems are already defined.
6. Testing of all subsystems.
Any bugs or errors have to be fixed at this stage.
7. Final system testing.
Once whole system is ready, we check functionality and fix errors if they occur.
At this step the stress tests of the system are perfomed to check the performance and reliability
of the developed software product.
8. Installation scripts creation.
At this stage we create final installation package of the system and check it
both in local and customer's environment. This allows us to define explicitly all mandatory components
and libraries used by the system and avoid any possible problems in customer's environment.
Scheme 1. Development Methodology
Using this metodology we achieve two main advantages. First of all, this methodology is based on standard software development process, which itself is created to minimises various organisational problems. And secondly, using concurrent subsystems development technique, we can optimise time of the development that paves the road to finish succesfully even time-limited projects.

