Development Flashcards
What is software requirements specification (SRS)?
- A description of a software system to be developed
- RQ secure that the needs are met by the IT system
- The software requirements specification lays out functional and non-functional requirements
A set of requirements the specific software must provide
• The SRS writer(s) should avoid placing either design or project requirements in the SRS - only software!
What is the difference between functional and non-functional requirements?
Functional requirement:
• Describes what a software system should do
An example of a functional requirement:
A system must send an email whenever a certain condition is met (e.g. missing information)
Non-functional requirement:
• Place constraints on how the system will do so
• These requirements are not essential for the system to function
An example of a non-functional requirement:
Emails should be sent with a latency of no greater than 12 hours from such an activity.
The 7 characteristics of a good SRS:
- Unambiguous (every requirement stated therein has only one interpretation. As a minimum, this requires that each characteristic of the final product be described using a single unique term)
- Ours is a little confusing in the headings – ‘Client Information’ could be several things - Complete (it is complete if it includes all significant requirements, whether relating to functionality, performance, design constraints, attributes, or external interfaces)
- constrained by the limits of the study - Consistent (internal consistency – the requirements should agree with each other, should agree with the system etc.)
- Feasible (realistic, possible)
- Verifiable (A requirement is verifiable if, and only if, there exists some finite cost-effective process with which a person or machine can check that the software product meets the requirement. In general, any ambiguous requirement is not verifiable)
- is it possible to check if it can work? - Singular (A requirement statement addresses a single thought.
Keep the requirement limited to one function, characteristic or constraint.) - Traceable (the origin of each of its requirements is clear and if it facilitates the referencing of each requirement in future development or enhancement documentation – can it be traced back and forth)
Who develops the requirement specifications?
The SRS may be written by one or more representatives of the supplier, one or more representatives of the customer, or by both
- is written for the software developers
Where does requirement specifications exist in the Work System Life cycle?
Between INITIATION (TO-BE) and DEVELOPMENT (Prototype)
The role of abstraction in requirements specification
AS = reflects the real world
TO-BE (including RS) = abstraction – representation of the new understanding of the world through models, words etc.
Why does agile requirements specification avoids formal SRS?
Goes back and engineers the requirement throughout the whole life cycle
What is UML? What does it provide?
• The Unified Modeling Language
• Includes several subsets of diagrams, including structure diagrams, interaction diagrams, and behavior diagrams
- Use cases, use case diagram, user stories, sequential diagram
• Are considered behavior diagrams because they describe what must happen in the system being modeled
What is a use case?
• It is a written description of how users will perform tasks on your website (Use cases describe what a system accomplishes, not how)
• It outlines, from a user’s point of view, a system’s behavior as it responds to a request
• Use case modeling is limited to a system’s external behavior - Use cases do not model the system from the inside
• Can be changes all the time to model the real world
• Each use case is represented as a sequence of simple steps, beginning with a user’s goal and ending when that goal is fulfilled
- help explain how the system should behave and, in the process, they also help brainstorm what could go wrong
- NOT non-functional requirements (Use cases are not effective in capturing the non-functional requirements)
How are use cases are used for requirements specification?
To get to know the user, so their needs are met
User interaction is key in requirements - how can they can be documented?
Otherwise, you might build the system right, but not the right system…
UML:
• User stories (persona; as a… I want… so that…)
• Use cases
• Sequence diagram (specifies the inter-object behavior and communication)
What is a use case diagram?
- Everything that happens within the work system
- Not detailing HOW interaction is (only overview)
- How the work is actually performed, not how it ideally will
- It is a high-level diagram (only overview)
- Typically, won’t show a lot of detail (only names of actors, do not show detail of the interaction)
- Good way to communicate complex idea in a fairly basic way
- User-driven
- Only modelling the external behaviour – NOT the inside of the system
What are the components of use case diagram? (There are 4)
Breaking the Use Case diagram up into:
1- Systems
• Whatever you are building
SuperOffice
2- Actor • Who is going to use the system? • Work system participants • Uses the system to reach a goal salesperson
Two different types of actors:
o Primary actor - initiates the use of the system - left
o Secondary actor - reactionary (only acts when the customer uses the system) - right
3- Use case
• What does the system do?
• An action that accomplishes some sort of task within the system
4- Relationships
• Association
• Include (If you sneeze you will close your eyes happens every time)
• Extend (If you sneeze someone might say bless you do not happen every time – is not necessary)
• Generalization (Customer (parent) new customer (child)
returning customer (child))
Red arrow - generalization
Black arrow - relation
How are use case diagrams used for requirement specifications?
Specify the basic functionality of the software (requirements)
To get an overview of the system that are going to be developed
It is possible? Are we overlooking something?
Why is Use Case useful?
Readable for both actors (using the system) and technicians (building the system)
both needs are met