After having discussed in detail about the Requirement Development and Management, we are going to start with Technical Solution. But before we start with that, we would need to understand few terms:
What is Specification?
- A software requirements specification (SRS) is a technical requirement document that describes in detail the externally visible characteristics of a software.
- A SRS is not the same as a statement of user needs OR ‘Requirement docs’. The SRS says what the product will be.
- The SRS can include Plain English text, structured text, diagrams, tables,rules, etc.
- Parts of the SRS include:
- Environmental requirements: OS, platform, interoperability, standards, etc.
- Non-functional requirements: security, usability, efficiency, etc.
- Feature specifications: precisely describe each feature
- Use cases: examples of how a user accomplishes a goal by using one or more features
What is Design?
- A design document explains the implementation that will satisfy the requirements of the SRS.
- There are many aspects of the system that you need to design:
- Division of the system into components
- APIs and dependencies between components
- Classes, attributes. operations, and relationships within each component
- Data representation in the database or even files
- Key algorithms and conditions that affect the overall design
- Many notations are used in design
- Plain English or structured English
- Many types of UML diagrams
- Pseudo-code, other diagrams as needed
What is the Difference Between SRS and Design?
- The SRS describes precisely what the system will do.
- It is based on customer needs
- It defines stages for design and system testing
- Customers should be able to review SRS and help validate it.
- Validation of requirements means checking the written requirements against reality!
- Design outlines how the system will work.
- It is based on the SRS
- It sets the stage for implementation as well as integration testing
- Usually development team needs to review the design.
What Do They Have in Common?
- Both SRS and Technical Design documents are technical documents that need to be precise.
- At times the same notation is used for multiple purposes
- Both need to be reviewed by stakeholders and defects must be corrected.
What Makes a Good Specification?
- The 4-C’s of requirements states:
- Clear: It should be understandable so that all stakeholders can participate in validation and developers know what to build and test
- Concise: Short requirements are more understandable and maintainable. And, they often are more precise
- Correct: Incorrect requirements will lead to major rework and reduced revenue.
- Complete: Incomplete requirements also leads to major rework and last-minute schedule changes.
- The specification should not bias the design or implementation.
- Don’t get ahead of yourself, you will do design later, this is very important, and make sure you understand this!
- Design details can make the SRS harder for non-technical stakeholders to understand
- You may come up with better ideas for the design later but you should NEVER change the SRS unless your goals for the product change.