software requirements and the requirements engineering process chapters 5 and 6
TRANSCRIPT
![Page 1: Software Requirements and the Requirements Engineering Process Chapters 5 and 6](https://reader030.vdocument.in/reader030/viewer/2022032518/56649cc45503460f9498db71/html5/thumbnails/1.jpg)
Software Requirements and the Requirements Engineering Process
Chapters 5 and 6
![Page 2: Software Requirements and the Requirements Engineering Process Chapters 5 and 6](https://reader030.vdocument.in/reader030/viewer/2022032518/56649cc45503460f9498db71/html5/thumbnails/2.jpg)
References Software Engineering. Ian Sommerville. 6th
edition. Pearson. Code Complete. Steve McConnell. (CC) The art of requirements triage. Alan M. Davis.
Computer. IEEE. March 2003. Testing whether requirements are right. Robin F.
Goldsmith, JD. Go Pro Management Inc. NYC Spin Meeting. December 2004. (RG)
Software Requirements. Karl E. Wieger. Windows Press.
Dr. Gotel’s research web page Dr. Barrett’s slides, NYU
![Page 3: Software Requirements and the Requirements Engineering Process Chapters 5 and 6](https://reader030.vdocument.in/reader030/viewer/2022032518/56649cc45503460f9498db71/html5/thumbnails/3.jpg)
What is a requirement? It is about WHAT not HOW Nothing can be said obvious Requirements are the descriptions of the services
provided by a system and its operational constraints It may range from a high level abstract statement to
a detailed mathematical specification It may be as complex as a 500 pages of description It may serve as the basis for a bid for a contract or
the basis for the contract itself
![Page 4: Software Requirements and the Requirements Engineering Process Chapters 5 and 6](https://reader030.vdocument.in/reader030/viewer/2022032518/56649cc45503460f9498db71/html5/thumbnails/4.jpg)
What is requirements engineering? It is the process of discovering,
analyzing, documenting and validating the requirements of the system
Each software development process goes through the phase of requirements engineering
![Page 5: Software Requirements and the Requirements Engineering Process Chapters 5 and 6](https://reader030.vdocument.in/reader030/viewer/2022032518/56649cc45503460f9498db71/html5/thumbnails/5.jpg)
Why requirements? What are the advantages of a complete set of
documented requirements? Ensures the user (not the developer) drives
system functionalities Helps avoiding confusion and arguments Helps minimizing the changes
Changes in requirements are expensive. Changing the requirements costs: 3 x as much during the design phase 5-10 x as much during implementation 10-100 x as much after release [Code Complete,
p30]
![Page 6: Software Requirements and the Requirements Engineering Process Chapters 5 and 6](https://reader030.vdocument.in/reader030/viewer/2022032518/56649cc45503460f9498db71/html5/thumbnails/6.jpg)
Why requirements? 2/3 of finished system errors are
requirements and design errors [RG] A careful requirements process doesn’t
mean there will be no changes later Average project experiences about 25%
changes in the requirements This accounts for 70-80% if the rework of
the project [Code Complete, p40] Important to plan for requirements changes
The case of critical applications
![Page 7: Software Requirements and the Requirements Engineering Process Chapters 5 and 6](https://reader030.vdocument.in/reader030/viewer/2022032518/56649cc45503460f9498db71/html5/thumbnails/7.jpg)
Different levels of abstraction User requirements (abstract +)
Usually the first attempt for the description of the requirements
Services and constraints of the system In natural language or diagrams Readable by everybody Serve business objectives
System requirements (abstract -) Services and constraints of the system in detail Useful for the design and development Precise and cover all cases Structured presentation
![Page 8: Software Requirements and the Requirements Engineering Process Chapters 5 and 6](https://reader030.vdocument.in/reader030/viewer/2022032518/56649cc45503460f9498db71/html5/thumbnails/8.jpg)
Example User requirement: The library system should
provide a way to allow a patron to borrow a book from the library.
System requirement: The library system should provide a withdraw interaction that allows a patron to withdraw a book given the isbn and copy number of the book to be withdrawn. The interaction fails if: the book is already withdrawn, the book is not in the library's collection, the patron has already withdrawn 5 books, the patron owes more than $5, the book is on hold by someone else. Otherwise…(To be completed)
![Page 9: Software Requirements and the Requirements Engineering Process Chapters 5 and 6](https://reader030.vdocument.in/reader030/viewer/2022032518/56649cc45503460f9498db71/html5/thumbnails/9.jpg)
Types of requirements Functional requirements
Services the system should provide What the system should do or not in reaction to particular
situations Non-functional requirements
Constraints on the services or functions offered by the system Examples: Timing constraints, constraints on the development
process (CASE, language, development method…), standards etc
Domain requirements From the application domain of the system May be functional or non-functional Examples: Medicine, library, physics, chemistry
Note: You can have user/system functional/non-functional requirements.
![Page 10: Software Requirements and the Requirements Engineering Process Chapters 5 and 6](https://reader030.vdocument.in/reader030/viewer/2022032518/56649cc45503460f9498db71/html5/thumbnails/10.jpg)
User requirements First attempt to describe functional and non-
functional requirements Understandable by the user
Problems: Lack of clarity - ambiguous language Requirements confusion - functional, non-functional
requirements, design information are not distinguished Requirements amalgamation – several requirements
are defined as a single one Incompleteness – requirements may be missing Inconsistency – requirements may contradict
themselves
![Page 11: Software Requirements and the Requirements Engineering Process Chapters 5 and 6](https://reader030.vdocument.in/reader030/viewer/2022032518/56649cc45503460f9498db71/html5/thumbnails/11.jpg)
User requirements Guideline to minimize the issues:
Separate requirements – separate the requirements, separate functional and non-functional requirements, requirements must be clearly identified (e.g. by a number)
Include a rationale for each requirement – helps clarify reasoning behind the requirements and may be useful for evaluating potential changes in the requirements
Invent or use a standard form/template Distinguish requirements priorities
Example: MoSCoW (Must, Shall, Could, Want/Will (no TBD)) Avoid technical jargon Testable (write test cases) Deliverables
![Page 12: Software Requirements and the Requirements Engineering Process Chapters 5 and 6](https://reader030.vdocument.in/reader030/viewer/2022032518/56649cc45503460f9498db71/html5/thumbnails/12.jpg)
System requirements Elaborate the user requirements to get
a precise, detailed and complete version of them
Used by designers and developers An important aspect is how to
present/write system requirements Natural language is often used!
The difference between user and system requirements must not be thought as a detail
![Page 13: Software Requirements and the Requirements Engineering Process Chapters 5 and 6](https://reader030.vdocument.in/reader030/viewer/2022032518/56649cc45503460f9498db71/html5/thumbnails/13.jpg)
System requirements Example: If sales for current month are below
target sales, then report is to be printed unless difference between target sales and actual sales is less than half of difference between target sales and actual sales in previous month, or if difference between target sales and actual sales for the current month is less than 5%.
Problems: Difficult to read Ambiguity: sales and actual sales, 5% of what? Incomplete: what if sales are above target sales?
![Page 14: Software Requirements and the Requirements Engineering Process Chapters 5 and 6](https://reader030.vdocument.in/reader030/viewer/2022032518/56649cc45503460f9498db71/html5/thumbnails/14.jpg)
Writing system requirements Natural language (informal requirements)
Reviled by academics But widely practiced: everybody can read them, finding a
better notation is hard Structured natural language
Forms/templates are used to bring some rigor to natural language presentations
Graphical notations Using boxes, arrows… but they mean different things to
different people Formal specification
Based on logic, state machines… Hard to understand for many people
![Page 15: Software Requirements and the Requirements Engineering Process Chapters 5 and 6](https://reader030.vdocument.in/reader030/viewer/2022032518/56649cc45503460f9498db71/html5/thumbnails/15.jpg)
An analogy Archimedes (ca. 250 bc)
Any sphere is equal to 4 times the cone which has its base equal to the greatest circle in the sphere and its height equal to the radius of the sphere.
Today V = 4/3 pi r 3
How is this bit of history relevant for software requirements? Formal is better only if everybody understands it It may take a long time to find a good notation Software requirements is an area of research
![Page 16: Software Requirements and the Requirements Engineering Process Chapters 5 and 6](https://reader030.vdocument.in/reader030/viewer/2022032518/56649cc45503460f9498db71/html5/thumbnails/16.jpg)
Non-functional requirements They can be further categorized into:
Product requirements Product behavior Ex: Timing, performance, memory, reliability, portability,
usability Organizational requirements
Policies and procedures in the customer’s and developer’s organizations
Example: Process requirements, implementation requirements, delivery requirements
External requirements Factors externals to the system and the development process Example: Interoperability, legislation, ethics
Non-functional requirements may be more critical than functional requirements. (The system may be useless…)
![Page 17: Software Requirements and the Requirements Engineering Process Chapters 5 and 6](https://reader030.vdocument.in/reader030/viewer/2022032518/56649cc45503460f9498db71/html5/thumbnails/17.jpg)
Non-functional requirements
Performancerequirements
Spacerequirements
Usabilityrequirements
Efficiencyrequirements
Reliabilityrequirements
Portabilityrequirements
Interoperabilityrequirements
Ethicalrequirements
Legislativerequirements
Implementationrequirements
Standardsrequirements
Deliveryrequirements
Safetyrequirements
Privacyrequirements
Productrequirements
Organizationalrequirements
Externalrequirements
Non-functionalrequirements
![Page 18: Software Requirements and the Requirements Engineering Process Chapters 5 and 6](https://reader030.vdocument.in/reader030/viewer/2022032518/56649cc45503460f9498db71/html5/thumbnails/18.jpg)
Non-functional requirements
It is important to be able to test/verify/check non-functional requirementsProperty Measure
Speed Processed transactions/secondUser/Event response timeScreen refresh time
Size K BytesNumber of RAM chips
Ease of use Training timeNumber of help frames
Reliability Mean time to failureProbability of unavailabilityRate of failure occurrenceAvailability
Robustness Time to restart after failurePercentage of events causing failureProbability of data corruption on failure
Portability Percentage of target dependent statementsNumber of target systems
![Page 19: Software Requirements and the Requirements Engineering Process Chapters 5 and 6](https://reader030.vdocument.in/reader030/viewer/2022032518/56649cc45503460f9498db71/html5/thumbnails/19.jpg)
Requirements documents The library system requirements
document (Available in the Blackboard) Very readable Some ambiguities
Examples of templates (Available in the Blackboard): Microsoft template. Karl E. Wiegers.
Software Requirements. Windows Press. Volere template
http://www.volere.co.uk
![Page 20: Software Requirements and the Requirements Engineering Process Chapters 5 and 6](https://reader030.vdocument.in/reader030/viewer/2022032518/56649cc45503460f9498db71/html5/thumbnails/20.jpg)
Requirement engineering 5 important activities:
Feasibility study Requirements elicitation and analysis Requirements documentation Requirements validation Requirements management
![Page 21: Software Requirements and the Requirements Engineering Process Chapters 5 and 6](https://reader030.vdocument.in/reader030/viewer/2022032518/56649cc45503460f9498db71/html5/thumbnails/21.jpg)
Requirement engineeringFeasibility
study
Requirementselicitation and
analysisRequirementsspecification
Requirementsvalidation
Feasibilityreport
Systemmodels
User and systemrequirements
Requirementsdocument
![Page 22: Software Requirements and the Requirements Engineering Process Chapters 5 and 6](https://reader030.vdocument.in/reader030/viewer/2022032518/56649cc45503460f9498db71/html5/thumbnails/22.jpg)
Feasibility study It is done at first to decide whether
or not the project is worthwhile Look at different perspectives:
Market analysis, financial, schedule, technical, resource, legal…
Should make you aware of the risks
![Page 23: Software Requirements and the Requirements Engineering Process Chapters 5 and 6](https://reader030.vdocument.in/reader030/viewer/2022032518/56649cc45503460f9498db71/html5/thumbnails/23.jpg)
Feasibility study Doing the study
Consult information sources: managers, software engineers, end users…
Based on information collection (interviews, surveys, questionnaires…)
Should be short (2-3 weeks) 2 examples of feasibility studies are
posted in the Blackboard
![Page 24: Software Requirements and the Requirements Engineering Process Chapters 5 and 6](https://reader030.vdocument.in/reader030/viewer/2022032518/56649cc45503460f9498db71/html5/thumbnails/24.jpg)
Feasibility study What if the system wasn’t implemented? What are current process problems? Do technical resources exist? What is the risk associated with the technology? Is new technology needed? What skills? How will the proposed project help? How does the proposed project contribute to
the overall objectives of the organization? Have the benefits identified with the system
being identified clearly?
![Page 25: Software Requirements and the Requirements Engineering Process Chapters 5 and 6](https://reader030.vdocument.in/reader030/viewer/2022032518/56649cc45503460f9498db71/html5/thumbnails/25.jpg)
Feasibility study What will be the integration problems? What facilities must be supported by the
system? What is the risk associated with cost and
schedule? What are the potential
disadvantages/advantages? Are there legal issues? Are there issues linked with the fact that this is
an offshore project? …