- Software requirements can be broadly broken up into Elicitation, Analysis, Specification and Management.
- Elicitation is the gathering and discovery of requirements from stakeholders and other sources.
- Analysis is the logical breakdown that proceeds from elicitation. Analysis involves reaching a richer and more precise understanding of each requirement and representing sets of requirements in multiple and complementary ways.
- Specification involves representing and storing the collected requirements knowledge in a persistent and well-organized fashion that facilitates effective communication and change management.
- Validation involves techniques to confirm that the correct set of requirements has been specified to build a solution that satisfies the project's business objectives.
- Requirements change during projects and there are often many of them. Management of this change becomes paramount to insuring that the correct software is built for the stakeholders.
- Requirement Management can be defined as;
- A systematic approach to eliciting, organizing, and documenting the requirements of the system
- A process that establishes and maintains agreement between the customer and the project team on the changing requirement of the system.
- According to Aberdeen Group (2011), changing requirements and identifying unclear requirements are the biggest sources of pain when developing software. Managing frequent changes in requirements throughout the software development lifecycle is a key for the successful software development.
- Top challenges of Developing Embedded Software
Source : Aberdeen Group(2011)
- Changing market needs tend to contribute to scope creep and often result in unclear requirements. 55% of study participants reported that this was the top challenge of embedded software development. When requirements are not clear, they are more difficult to implement correctly which ultimately create the risk meaning that market needs will be missed. In addition, it is hard to validate whether changing and unknown requirements have even been met. This results in a lot of wasted time finding and fixing problems which make the organization hard to meet scheduled deadlines and which address quality issues.
- Best-in-Class Processes for Developing Embedded Software
Source : Aberdeen Group(2011)
- Best-in-Class start with understanding what the customer wants. They can then tie this to design requirements. In addition, with a better understanding of customer needs, they can then put lower priority on the things that are less important.
- You will gain several benefits using a good requirement management tool.
- Managing history of change and recording discussion on proposing, changing and deleting requirements
- The project manager can have good insight into project and requirement status. So that he/she plans project schedule accordingly.
- Requirement management tool enables requirement tracing by identifying relationship between requirements and related system attributes.
- Reusing requirements in other projects or within the project can save process time while increasing work efficiency.
- Lower costs – reduction in defects and rework
- Time saving – better time efficiency and fewer unnecessary features
- Higher customer satisfaction – better communication and improved product quality