Software Design And Development
Innovative Software Solutions
Sigma provides a complete range of Software development and IV&V services, on both embedded platforms as well as on PC / computer platforms.
We have wide experience in developing and deploying a wide range of software applications, including real-time embedded software, math-intensive algorithm-driven software, control software, communication software, GUI intensive software, database-oriented software with web interface and Java, and test software.
We Undertake Software-Development Based On:
- RTOS (like VxWorks, Embedded Linux)
- Without OS
- DSP platforms
- Android porting
- Tiny controllers (like PIC, X51, ARM)
- Windows, Linux, others
- Device Drivers / Board Support Packages (BSPs)
Sigma has a well-established software development processes to cater to customer-specific requirements. Sigma is CEMILAC approved for design and development of software for airborne applications, including IV&V.
Software Development Planning
A formal Software Development Plan is evolved, which identifies, at a broad level, the processes, methodologies, tools, testing and IV&V requirements.
Software Requirements Analysis And Design
The Unified Modelling Language (UML) is adopted throughout the analysis, and design phase. Analysis of software requirements is done with a use-case driven approach, identifying major requirements, actors and external interfaces. Class diagrams, sequence diagrams and state diagrams are evolved to describe the static and dynamic requirements.Standard documentation like Software Requirements Specifications (SRS) and Interface Requirements Specifications (IRS) are generated as part of the requirements phase.
The results of the requirements analysis is used to evolve the software design. Software architecture is designed first, based on platform, operating system, functional requirements, timing requirements and other factors. Classes / packages are refined and the interfaces are finalized, along with class associations, aggregations and visibility. Dynamic behaviour is further refined by refining the sequence diagrams and state diagrams further. Software design document (SDD) is generated, which acts as the guiding document for actual software implementation.
Software implementation is done, following the software design. Software coding is done as per established coding guidelines. Automated tools are used to verify compliance with coding guidelines. Proper comments are included, along with tags for generation of code documentation.
Formal software testing is carried out with a defined test plan and detailed test cases. In executing the test cases, the extent of code coverage is verified. Any dead-code is eliminated, while ensuring that code coverage is adequate as per project requirements. Automated tools are used for testing the software at various levels.
IV&V team verifies various aspects of the software development process and artifacts. One or more IV&V member is associated with the development team throughout the development cycle. IV&V team verifies:
Adequacy of requirements capture
Traceability of software and documentation from requirements, through design, implementation and testing
Adherence to coding guidelines
Version Control is followed inherently in the development process. Project policy decides the software milestones and versions to be maintained. Any change in software requirement, design and code is carried out in a controlled process. Standard version control tools are used.
Software documentation is generated to specified standards as per project requirements. Requirements, design, code and test plan are documented as mandatory. Additional documentation to specified standards are generated on need-basis as per project requirements. Standards include IEEE-12207, MIL-STD-498, Do-178 and DOD-2167A.