3. Software Requirements Flashcards
What are functional requirements?
Statements of functions or services to be provided by the system.
What is the system supposed to do?
What is the system supposed to look like?
What inputs does the system need?
How should the system respond to errors?
What are non-functional requirements?
Specify criteria that can be used to judge the operation of a system, rather than specific behaviors. (Not what, but how)
Flexibility, portability, re-usability, reliability, maintainability, security, safety, performance, effectiveness, efficiency, reliability, maintainability, satisfaction, etc.
Evaluate how to verify ‘Performance’ as a quality attribute (non-functional requirement).
Any system that needs to operate quickly and efficiently when running to produce results fast.
Evaluate how to verify ‘Reliability’ as a quality attribute (non-functional requirement).
Ensure that all critical systems have a near 0% failure rate and that if a failure does occur the system will be able to maintain all changes on restart.
Evaluate how to verify ‘Portability’ as a quality attribute (non-functional requirement).
The system is able to adapt easily, install easily, and be easily replaceable if it were to break.
Evaluate how to verify ‘Usability’ as a quality attribute (non-functional requirement).
Any system that can be easily accessed and navigated by the average user who has little to no issue understanding the operations of the system.
What is the waterfall cycle?
Inception-> Requirements -> Analysis -> Design -> Implementation -> Development
These are all done in order.
What is the iterative cycle?
Build it --> Measure it ^ \ | | \ / Learn from it
Explain the downsides to using the waterfall cycle and benefits of using an iterative cycle for requirements engineering.
It is simply too hard for software developers to think of all the requirements and to thoroughly analyze, design and implement an engineering solution for development all in one fluid try.
The iterative cycle allows us to build a product, measure the systems non-functional requirements and learn from the resulting feedback from consumers. This is a much more forgiving requirements engineering approach.
Give five information sources for requirements elicitation (gathering).
Here are ten \+ Interviews \+ Focal groups \+ Requirement seminars \+ Informal meeting \+ Questionnaires \+ Current Forms \+ Procedures and task descriptions \+ Existing software systems \+ Promotional material \+ Observation
What is traceability and why it is important for software engineering?
Each future piece of the development puzzle is motivated by a requirement
+ Requirements drive design elements
+ Those design elements drive source code
+ Source code drives testing
So, it’s important to look at questions like:
+ What requirements does this component serve?
+ Which requirements do these source code files satisfy?
+ Which parts of the requirements specification do these test cases examine?
What is MVP and what is it for?
The Minimum Viable Product is a product with just enough features to gather validated learning about the product and its continued development.
What is ISO 25010:2011?
A product quality model. Specifies the non-functional requirements that most software seeks to achieve.
List four characteristics of a product quality model described in ISO 25010:2011.
Here are all eight and their descriptions (less important):
Functional Suitability
+ degree to which a product or system provides functions that meet stated and implied needs when used under specified conditions
Usability
+ degree to which a product or system can be used by specified users to achieve specified goals with effectiveness, efficiency and satisfaction in a specified context of use
Performance Efficiency
+ performance relative to the amount of resources used under stated conditions
Maintainability
+ degree of effectiveness and efficiency with which a product or system can be modified by the intended maintainers
Compatibility
+ degree to which a product, system or component can exchange information with other products, systems or components, and/or perform its required functions, while sharing the same hardware or software environment
Reliability
+ degree to which a system, product or component performs specific functions under specified conditions for a specified period of time
Security
+ degree to which a product or system protects information and data so that persons or other products or systems have the degree of data access appropriate to their types and levels of authorization
Portability
+ degree of effectiveness and efficiency with which a system, product or component can be transferred from one hardware, software or other operational or usage environment to another
What are the most important non-functional requirements for critical systems, real-time systems and embedded systems?
Critical Systems - Reliability
Real-time systems - Performance Efficiency
Embedded systems - Functional Suitability
What are ‘Use-Case Descriptions’?
+ Often describe in more detail than a user story how a user will interact with the system or components.
+ Detail the general flow of the interaction and how different things can happen at different stages of interaction.
+ May detail one user story, but often splits into multiple stories depending on the complexity of the user case.
What are ‘User Stories’?
+ Used as a form of dialogue between developer and stakeholder, allowing for communication and discussion about a feature to be implemented.
+ Easily represents the Who, What, and Why for the feature.
+ Usually is a chunk of functionality to implement for a set of requirements that can be easily accomplished or estimated.
Explain what ‘includes’ and ‘extends’ relationships are in use cases.
Includes: the relationship is mandatory
Extends: the relationship is optional
What is a Kanban and how is it used?
A Kanban is a board for user stories that easily allows for developers to update the stories as they move through the development process. These boards usually consist of backlog, todo, doing, done, and accepted. Where each story will move through the board until it is either discarded or completed. While they were originally made of whiteboards and post it notes, we now have modern Kanban like Trello, and Waffle.