Thanks to years of experience in numerous projects, ALPHA SI is capable of integrating with or supporting its clients’ teams, providing the necessary expertise to manage all or part of the software activities.
Based on project requirements, we can manage both standard methodologies such as the “Waterfall” model (sequential phases) and Agile methodologies, working in iterations with incremental releases and validations.
Depending on the client’s needs, we manage either the entire software lifecycle or individual stages.
In both cases, we agree with the client on the methodologies, standards, and tools to be used.
The software requirements specification phase is carried out with a focus on the testability of the defined requirements. For requirements definition, we also use specific tools such as DOORS. The design phase, on the other hand, is closely related to the level of detail required by the project. This ranges from high-level architectural descriptions to highly detailed designs through UML diagrams, interface designs, and memory/CPU budgeting.
We perform software validations at the Unit Test level and static analysis (using tools such as Cantata, Parasoft, and GoogleTest), Functional Tests, and Integration Tests. For functional “black-box” tests, if necessary, we create HW and/or SW systems that simulate the external environment of the software component being tested.
For the development phase, we agree with the client on the coding standards to be used (well-known, provided by the client, or proposed by us). The development team uses various collaborative tools (e.g., Jira), configuration management tools (e.g., Git), and documentation tools (e.g., Doxygen). In the case of Agile projects, we proceed in sprints with periodic releases and validations.
For projects that require it, we are able to follow various reference standards such as MILSTD-498, IEEE 12207, EN 50128, in addition to coding standards like MISRA C++ or custom specifications provided by the client.