Introduction to Software Engineering Lecture 5 André van der Hoek.
-
Upload
oscar-mcdaniel -
Category
Documents
-
view
220 -
download
0
Transcript of Introduction to Software Engineering Lecture 5 André van der Hoek.
![Page 1: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/1.jpg)
Introduction to Software Engineering
Lecture 5
André van der Hoek
![Page 2: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/2.jpg)
Today’s Lecture
Requirements engineering
Requirements specification
![Page 3: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/3.jpg)
Recurring, Fundamental Principles
Rigor and formality Separation of concerns
Modularity Abstraction
Anticipation of change Generality Incrementality
These principles apply to all aspects of software engineering
![Page 4: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/4.jpg)
ICS 52 Life CycleRequirements
phaseVerify
DesignphaseVerify
ImplementationphaseTest
TestingphaseVerify
![Page 5: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/5.jpg)
Requirements Phase
Terminology Requirements analysis/engineering
Activity of unearthing a customer’s needs Requirements specification
Document describing a customer’s needs
Note: requirements address what a customer needs, not what a customer wants A customer often does not know what they
want, let alone what they need Time-lag between initial desire and future
need Long and arduous, often educational,
process
![Page 6: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/6.jpg)
Requirements Analysis
System engineering versus software engineering What role does software play within the full
solution? Trend: software is everywhere
Contract model versus participatory design Contract: carefully specify requirements,
then contract out the development Participatory: customers, users, and
software development staff work together throughout the life cycle
![Page 7: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/7.jpg)
Techniques for Requirements Analysis
Interview customer Create use cases/scenarios Prototype solutions Observe customer Identify important
objects/roles/functions Perform research Construct glossaries Question yourself
Use the principles
![Page 8: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/8.jpg)
Requirements Specification
Serves as the fundamental reference point between customer and software producer
Defines capabilities to be provided without saying how they should be provided
Defines the “what” Does not define the “how”
Defines environmental requirements on the software to guide the implementers
Platforms, implementation language(s), … Defines constraints on the software
Performance, usability, … Defines software qualities
![Page 9: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/9.jpg)
Why Spend a Lot of Time?
A requirements specification is the source for all future steps in the software life cycle Lays the basis for a mutual understanding
Consumer (what they get) Software producer (what they build)
Identifies fundamental assumptions Potential basis for future contracts
Better get it right Upon delivery, some software is actually
rejected by customers Changes are cheap
Better make them now rather than later
![Page 10: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/10.jpg)
Use the requirements todevelop validation tests forthe system
Use the requirementsdocument to plan a bid forthe system and to plan thesystem development process
Use the requirements tounderstand what system is tobe developed
System testengineers
Managers
System engineers
Specify the requirements andread them to check that theymeet their needs. Theyspecify changes to therequirements
System customers
Use the requirements to helpunderstand the system andthe relationships between itsparts
Systemmaintenance
engineers
Users of a Requirements Document
![Page 11: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/11.jpg)
Non-Functional Requirement Types
Performancerequirements
Spacerequirements
Usabilityrequirements
Efficiencyrequirements
Reliabilityrequirements
Portabilityrequirements
Interoperabilityrequirements
Ethicalrequirements
Legislativerequirements
Implementationrequirements
Standardsrequirements
Deliveryrequirements
Safetyrequirements
Privacyrequirements
Productrequirements
Organizationalrequirements
Externalrequirements
Non-functionalrequirements
![Page 12: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/12.jpg)
Structure
Introduction Executive summary Application context Functional requirements Environmental requirements Software qualities Other requirements Time schedule Potential risks Future changes Glossary Reference documents
![Page 13: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/13.jpg)
Introduction
What is this document about? Who was it created for? Who created it? Outline
![Page 14: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/14.jpg)
Executive Summary
Short, succinct, concise, to-the-point, description Usually no more than one page
Identifies main goals Identifies key features Identifies key risks/obstacles
![Page 15: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/15.jpg)
Application Context
Describes the situation in which the software will be used How will the situation change as a result of
introducing the software? “World Model”
Identifies all things that the system affects Objects, processes, other software,
hardware, and people Provides an abstraction for each of those,
characterizing the properties and behaviors that are relevant to the software system
Identifies fundamental assumptions
![Page 16: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/16.jpg)
Functional Requirements
Identifies all concepts, functions, features, and information that the system provides to its users
Provides an abstraction for each of those, characterizing the properties and functions that are relevant to the user What is the system supposed to do? What information does the system need? What is supposed to happen when
something goes wrong?
An approximate user interface is part of functional requirements
![Page 17: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/17.jpg)
Environmental Requirements
Platforms Hardware
Operating systems, types of machines, memory size, hard disk space
Software CORBA, Jini, DCOM, 4GL, …
Programming language(s) Standards
![Page 18: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/18.jpg)
Software Qualities
Correctness Reliability Efficiency Integrity Usability Maintainability
Testability Flexibility Portability Reusability Interoperability
![Page 19: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/19.jpg)
Other Requirements
What about cost? What about documentation? What about manuals? What about tutorials? What about on-the-job training? What about requirements that do not fit
in any of the previous categories?
![Page 20: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/20.jpg)
Time Schedule
By when should all of this be done? Initial delivery date Acceptance period Final delivery date
What are some important milestones to be reached? Architectural design completed Module design completed Implementation completed Testing completed
![Page 21: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/21.jpg)
Potential Risks
Any project faces risks Boehm’s top ten risks (see lecture 3) It is important to identify those risks up-
front so the customer and you (!) are aware of them
One of the requirements could be to explicitly address the risks
![Page 22: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/22.jpg)
Future Changes
Any project faces changes over time It is important to identify those changes up-
front so the customer and you (!) are aware of them
These changes could simply pertain to potential future enhancements to the product
One of the requirements could be to build the product such that it can accommodate future changes
Note: structure the requirements document in such a way that it easily absorbs changes Define concepts once Partition separate concerns …
![Page 23: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/23.jpg)
Glossary
Precise definitions of terms used throughout the requirements document
![Page 24: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/24.jpg)
Reference Documents
Pointers to existing processes and tools used within an organization
Pointers to other, existing software that provides similar functionality
Pointers to literature
![Page 25: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/25.jpg)
Structure
Introduction Executive summary Application context Functional requirements Environmental requirements Software qualities Other requirements Time schedule Potential risks Future changes Glossary Reference documents
![Page 26: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/26.jpg)
Observations
Document is structured to address the fundamental principles Rigor Separation of concerns
Modularity Abstraction
Anticipation of change Generality Incrementality
Not every project requires every section of the document
![Page 27: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/27.jpg)
Specification Methods
Natural language Data flow diagrams
Office automation Finite state machines
Telephone systems Coin-operated machines
Petri nets Production plants
Formulas Matrix inversion package
Objects (in object-oriented methods) Use cases (in UML)
![Page 28: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/28.jpg)
Verification
Is the requirements specification complete?
Is each of the requirements understandable?
Is each of the requirements unambiguous?
Are any of the requirements in conflict? Can each of the requirements be
verified? Are are all terms and concepts defined? Is the requirements specification
unbiased?
![Page 29: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/29.jpg)
Acceptance Test Plan
Accompanies a requirements specification
Specifies, in an operational way, consistency between the requirements specification and the system that will be delivered
Binds a customer to accept the delivered system if it passes all the tests
Covers all aspects of the requirements specification
![Page 30: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/30.jpg)
V-Model of Development and Testing
Develop Acceptance TestsAcceptance Test Review
Requirements ReviewDevelop Requirements Execute System Tests
Develop Integration TestsIntegration Tests Review
Design ReviewDesign Execute Integration Tests
Develop Unit TestsUnit Tests Review
Code ReviewCode Execute Unit Tests
![Page 31: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/31.jpg)
Example
French fries and mayonnaise place
![Page 32: Introduction to Software Engineering Lecture 5 André van der Hoek.](https://reader035.fdocuments.in/reader035/viewer/2022062713/56649ce55503460f949b2c56/html5/thumbnails/32.jpg)
Your Tasks
1. Read and study slides of this lecture
2. Read Chapter 9 of van Vliet
3. Note: discussion starts Friday