software engineering outsourcing and...
TRANSCRIPT
![Page 1: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/1.jpg)
Software Engineeringfor
Outsourcing and OffshoringBertrand Meyer
Peter Kolb
ETH course, Winter 2006-2007
Part 2: Requirements engineering
![Page 2: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/2.jpg)
2
Requirements engineering topics
1: Overview2: Standards & methods3: Requirements elicitation4: Object-oriented requirements5: Formal requirements6: Conclusion
Complementary material: Bibliography
![Page 3: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/3.jpg)
3
Statements about requirements: Brooks
The hardest single part of building a software system is deciding precisely what to build. No other part of the conceptual work is as difficult as establishing the detailed technical requirements, including all the interfaces to people, to machines, and to other software systems. No other part of the work so cripples the resulting system if done wrong. No other part is more difficult to rectify later.
Source*: Brooks 87
*For sources cited, see bibliography
![Page 4: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/4.jpg)
4
Statements about requirements: BoehmSource*: Boehm 81
0
10
20
30
40
50
60
70
Requirements Design Code DevelopmentTesting
AcceptanceTesting
Operation
Relative cost to correct a defect
Source: Boehm, Barry W. Software Engineering Economics. Englewood Cliffs, NJ: Prentice-Hall, 1981
![Page 5: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/5.jpg)
5
When not done right
80% of interface fault and 20% of implementation faults due to requirements (Perry & Stieg, 1993)
48% to 67% of safety-related faults in NASA software systems due to misunderstood hardware interface specifications, of which 2/3rds are due to requirements (Lutz, 1993)
85% of defects due to requirements, of which: incorrect assumptions 49%, omitted requirements 29%, inconsistent requirements 13% (Young, 2001).
Numerous software bugs due to poor requirements, e.g. Mars Climate Orbiter
![Page 6: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/6.jpg)
6
Requirements engineering topics
1: Overview2: Standards & methods3: Requirements elicitation4: Tools5: Object-oriented requirements6: Formal requirements
Complementary material: Bibliography
![Page 7: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/7.jpg)
Part 1:
Overview ofthe requirements task
![Page 8: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/8.jpg)
8
Definition
“A requirement” is a statement of desired behavior for a system
“The requirements” for a system are the collection of all such individual requirements
![Page 9: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/9.jpg)
9
Goals of performing requirementsSource: OOSC
Understand the problem or problems that the eventual software system, if any, should solvePrompt relevant questions about the problem & systemProvide basis for answering questions about specific properties of the problem & systemDecide what the system should doDecide what the system should not doAscertain that the system will satisfy the needs of its stakeholdersProvide basis for development of the systemProvide basis for V & V* of the system
*Validation & Verification, especially testing
![Page 10: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/10.jpg)
10
Products of requirements
Requirements document
Development plan
V&V plan (especially test plan)
![Page 11: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/11.jpg)
11
Practical advice
Don’t forget that the requirements also determine the test plan
![Page 12: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/12.jpg)
12
Possible requirements stakeholders
Legal experts
Purchasing agents
Software developers
Software project managers
Software documenters
Software testers
Trainers
Consultants
Clients (tailor-made system)Customers (product for general sale)Clients’ and customers’customersUsersDomain experts
Market analysts
Unions?
![Page 13: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/13.jpg)
13
Your turn! Who are the stakeholders?
Consider a small library database with the following transactions:
1. Check out a copy of a book. Return a copy of a book.
2. Add a copy of a book to the library. Remove a copy of a book from the library.
3. Get the list of books by a particular author or in a particular subject area.
4. Find out the list of books currently checked out by a particular borrower.
5. Find out what borrower last checked out a particular copy of a book.
There are two types of users: staff users and ordinary borrowers.
Transactions 1, 2, 4, and 5 are restricted to staff users, except that ordinary borrowers can perform transaction 4 to find out the list of books currently borrowed by themselves. The database must also satisfy the following constraints:
All copies in the library must be available for checkout or be checked out.No copy of the book may be both available and checked out at the same time.A borrower may not have more than a predefined number of books checked out at one time.
![Page 14: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/14.jpg)
14
Practical advice
Identify all relevant stakeholders early on
![Page 15: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/15.jpg)
15
Requirements categories
Functional Non-functional
Software onlyFull system
Object-orientedProceduralvs
FormalInformal
GraphicalTextual
Non-executableExecutable
![Page 16: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/16.jpg)
16
Components of requirements
Domain properties
Functional requirements
Non-functional requirements (reliability, security, accuracy of results, time and space performance, portability...)
Requirements on process and evolution
![Page 17: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/17.jpg)
17
Requirements vs prototyping
“Prototype” may mean:1. Pilot project2. Throw-away development
Brooks: “Plan to throw one away;you will anyhow”
3. Incremental development4. Preparing for reusable components5. Experimentation: user interface, implementation…6. Experimentation: requirements capture
A prototype (1, 5, 6) may help requirements, but is not a substitute for requirements.
![Page 18: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/18.jpg)
18
15 quality goals for requirements
Justified
Correct
Complete
Consistent
Unambiguous
Feasible
Abstract
Traceable
Delimited
Interfaced
Readable
Modifiable
Verifiable
Prioritized*
Endorsed
Marked attributes are part of IEEE 830, see below* “Ranked for importance and/or stability”
![Page 19: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/19.jpg)
19
Difficulties of requirements
Natural language and its imprecision
Formal techniques and their abstraction
Users and their vagueness
Customers and their demands
The rest of the world and its complexity
![Page 20: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/20.jpg)
20
The two constant pitfalls
Committing too early to an implementation
Overspecification!
Missing parts of the problem
Underspecification!
![Page 21: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/21.jpg)
21
A simple problemSource: Naur
Given a text consisting of words separated by BLANKS or by NL (new line) characters, convert it to a line-by-line form in accordance with the following rules:
1. Line breaks must be made only where the given text has BLANK or NL;
2. Each line is filled as far as possible as long as:3. No line will contain more than MAXPOS characters
See se.ethz.ch/~meyer/publications/ieee/formalism.pdf
![Page 22: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/22.jpg)
22
“Improved”
The program's input is a stream of characters whose end is signaled with a special end-of-text character, ET. There is exactly one ET character in each input stream. Characters are classified as:
Break characters — BL (blank) and NL (new line);Nonbreak characters — all others except ET;The end-of-text indicator — ET.
A word is a nonempty sequence of nonbreak characters. A break is a sequence of one or more break characters. Thus, the input can be viewed as a sequence of words separated by breaks, with possibly leading and trailing breaks, and ending with ET.
The program's output should be the same sequence of words as in the input, with the exception that an oversize word (i.e. a word containing more than MAXPOScharacters, where MAXPOS is a positive integer) should cause an error exit from the program (i.e. a variable, Alarm, should have the value TRUE). Up to the point of an error, the program's output should have the following properties:1. A new line should start only between words and at the beginning of the output text, if any.2. A break in the input is reduced to a single break character in the output.3. As many words as possible should be placed on each line (i.e., between successive NL characters).4. No line may contain more than MAXPOScharacters (words and BLs).
Source: Goodenough & Gerhart
![Page 23: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/23.jpg)
23
“Improved”
The program's input is a stream of characters whose end is signaled with a special end-of-text character, ET. There is exactly one ET character in each input stream. Characters are classified as:
Break characters — BL (blank) and NL (new line);Nonbreak characters — all others except ET;The end-of-text indicator — ET.
A word is a nonempty sequence of nonbreak characters. A break is a sequence of one or more break characters. Thus, the input can be viewed as a sequence of words separated by breaks, with possibly leading and trailing breaks, and ending with ET.
The program's output should be the same sequence of words as in the input, with the exception that an oversize word (i.e. a word containing more than MAXPOScharacters, where MAXPOS is a positive integer) should cause an error exit from the program (i.e. a variable, Alarm, should have the value TRUE). Up to the point of an error, the program's output should have the following properties:1. A new line should start only between words and at the beginning of the output text, if any.2. A break in the input is reduced to a single break character in the output.3. As many words as possible should be placed on each line (i.e., between successive NL characters).4. No line may contain more than MAXPOScharacters (words and BLs).Contradiction Noise Ambiguity
Overspecification Remorse Forward reference
Source: Meyer 85
![Page 24: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/24.jpg)
24
The formal specification
![Page 25: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/25.jpg)
25
“My” spec, informal from formal
Given are a non-negative integer MAXPOS and a character set including two "break characters“ blank and new_line.The program shall accept as input a finite sequence of characters and produce as output a sequence of characters satisfying the following conditions:
It only differs from the input by having a single break character wherever the input has one or more break characters.Any MAXPOS +1 consecutive characters include a new_line.The number of new_line characters is minimal.If (and only if) an input sequence contains a group of MAXPOS +1 consecutive non-break characters, there exists no such output. In this case, the program shall produce the output associated with the initial part of the sequence up to and including the MAXPOS-th character of the first such group, and report the error.
![Page 26: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/26.jpg)
26
Practical advice
Don’t underestimate the potential for help from mathematics
![Page 27: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/27.jpg)
27
Your turn! Discuss these requirements
Consider a small library database with the following transactions:
1. Check out a copy of a book. Return a copy of a book.
2. Add a copy of a book to the library. Remove a copy of a book from the library.
3. Get the list of books by a particular author or in a particular subject area.
4. Find out the list of books currently checked out by a particular borrower.
5. Find out what borrower last checked out a particular copy of a book.
There are two types of users: staff users and ordinary borrowers.
Transactions 1, 2, 4, and 5 are restricted to staff users, except that ordinary borrowers can perform transaction 4 to find out the list of books currently borrowed by themselves. The database must also satisfy the following constraints:
All copies in the library must be available for checkout or be checked out.No copy of the book may be both available and checked out at the same time.A borrower may not have more than a predefined number of books checked out at one time.
![Page 28: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/28.jpg)
28
15 quality goals for requirements
Traceable
Delimited
Interfaced
Readable
Modifiable
Testable
Prioritized
Endorsed
Justified
Correct
Complete
Consistent
Unambiguous
Feasible
Abstract
![Page 29: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/29.jpg)
29
Verifiable requirements
Non-verifiable :The system shall work satisfactorilyThe interface shall be user-friendlyThe system shall respond in real time
Verifiable:The output shall in all cases be produced within 30 seconds of the corresponding input event. It shall be produced within 10 seconds for at least 80% of input events.Professional train drivers will reach level 1 of proficiency (defined in requirements) in two days of training.
Adapted from: IEEE
![Page 30: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/30.jpg)
30
Practical advice
Favor precise, falsifiable language over pleasant generalities
![Page 31: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/31.jpg)
31
Complete requirements
Complete with respect to what?
Definition from IEEE standard (see next) :
An SRS is complete if, and only if, it includes the following elements:All significant requirements, whether relating to functionality,performance, design constraints, attributes, or external interfaces. In particular any external requirements imposed by a system specification should be acknowledged and treated.Definition of the responses of the software to all realizable classes of input data in all realizable classes of situations. Note that it is important to specify the responses to both valid and invalid input values.Full labels and references to all figures, tables, and diagrams in the SRS and definition of all terms and units of measure.
![Page 32: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/32.jpg)
32
Practical advice
Think negatively
![Page 33: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/33.jpg)
33
Your turn! Evaluate according to criteria
Consider a small library database with the following transactions:
1. Check out a copy of a book. Return a copy of a book.
2. Add a copy of a book to the library. Remove a copy of a book from the library.
3. Get the list of books by a particular author or in a particular subject area.
4. Find out the list of books currently checked out by a particular borrower.
5. Find out what borrower last checked out a particular copy of a book.
There are two types of users: staff users and ordinary borrowers.
Transactions 1, 2, 4, and 5 are restricted to staff users, except that ordinary borrowers can perform transaction 4 to find out the list of books currently borrowed by themselves. The database must also satisfy the following constraints:
All copies in the library must be available for checkout or be checked out.No copy of the book may be both available and checked out at the same time.A borrower may not have more than a predefined number of books checked out at one time.
![Page 34: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/34.jpg)
34
The two parts of requirements
Purpose: to capture the user needs fora “machine” to be built
Jackson’s view: define success asmachine specification ∧ domain properties ⇒ requirement
• Domain properties: outside constraints (e.g. can only modify account as a result of withdrawal or deposit)
• Requirement: desired system behavior (e.g. withdrawal of n francs decreases balance by n)
• Machine specification: desired properties of the machine (e.g. request for withdrawal will, if accepted, lead to update of the balance)
![Page 35: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/35.jpg)
35
Domain requirements
Domain assumption: trains & cars travel at certain max speeds
Requirement: no collision in railroad crossing
![Page 36: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/36.jpg)
36
Your turn! Separate machine & domain
Consider a small library database with the following transactions:
1. Check out a copy of a book. Return a copy of a book.
2. Add a copy of a book to the library. Remove a copy of a book from the library.
3. Get the list of books by a particular author or in a particular subject area.
4. Find out the list of books currently checked out by a particular borrower.
5. Find out what borrower last checked out a particular copy of a book.
There are two types of users: staff users and ordinary borrowers.
Transactions 1, 2, 4, and 5 are restricted to staff users, except that ordinary borrowers can perform transaction 4 to find out the list of books currently borrowed by themselves. The database must also satisfy the following constraints:
All copies in the library must be available for checkout or be checked out.No copy of the book may be both available and checked out at the same time.A borrower may not have more than a predefined number of books checked out at one time.
![Page 37: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/37.jpg)
37
Practical advice
Distinguish machine specificationfrom domain properties
![Page 38: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/38.jpg)
Part 2:
Standards and Methods
![Page 39: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/39.jpg)
39
The purpose of standards
Software engineering standards:
Define common practice.Guide new engineers.Make software engineering processes comparable.Enable certification.
![Page 40: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/40.jpg)
40
IEEE 830-1998
”IEEE Recommended Practice for Software Requirements Specifications”
Approved 25 June 1998 (revision of earlier standard)
Descriptions of the content and the qualities of a good software requirements specification (SRS).
Goal: “The SRS should be correct, unambiguous, complete, consistent, ranked for importance and/or stability, verifiable, modifiable, traceable.”
![Page 41: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/41.jpg)
41
15 quality goals for requirements
Traceable
Delimited
Interfaced
Readable
Modifiable
Testable
Prioritized
Endorsed
Justified
Correct
Complete
Consistent
Unambiguous
Feasible
Abstract
![Page 42: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/42.jpg)
42
IEEE Standard: definitions
Contract:A legally binding document agreed upon by the customer and supplier. This includes the technical and organizational requirements, cost, and schedule for a product. A contract may also contain informal but useful information such as the commitments or expectations of the parties involved.Customer:The person, or persons, who pay for the product and usually (but not necessarily) decide the requirements. In the context of this recommended practice the customer and the supplier may be members of the same organization.Supplier:The person, or persons, who produce a product for a customer. In the context of this recommended practice, the customer and the supplier may be members of the same organization.User:The person, or persons, who operate or interact directly with the product. The user(s) and the customer(s) are often not the same person(s).
![Page 43: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/43.jpg)
43
IEEE Standard
Basic issues to be addressed by an SRS:
Functionality
External interfaces
Performance
Attributes
Design constraints imposed on an implementation
![Page 44: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/44.jpg)
44
IEEE Standard
Recommended document structure:1. Introduction
1.1 Purpose1.2 Scope1.3 Definitions, acronyms, and abbreviations Glossary!1.4 References1.5 Overview
2. Overall description2.1 Product perspective2.2 Product functions2.3 User characteristics2.4 Constraints2.5 Assumptions and dependencies
3. Specific requirementsAppendixesIndex
![Page 45: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/45.jpg)
45
Practical advice
Use the recommended IEEE structure
![Page 46: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/46.jpg)
46
Practical advice
Write a glossary
![Page 47: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/47.jpg)
47
Recommended document structure
1. Introduction1.1 Purpose1.2 Scope1.3 Definitions, acronyms, and abbreviations1.4 References1.5 Overview
2. Overall description2.1 Product perspective2.2 Product functions2.3 User characteristics2.4 Constraints2.5 Assumptions and dependencies
3. Specific requirementsAppendixesIndex
![Page 48: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/48.jpg)
48
Example section: scope
Identify software product to be produced by name (e.g., Host DBMS, Report Generator, etc.)
Explain what the product will and will not do
Describe application of the software: goals and benefits
Establish relation with higher-level system requirements if any
![Page 49: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/49.jpg)
49
Example section: product perspective
Describe relation with other products if any.Examples:
System interfacesUser interfacesHardware interfacesSoftware interfacesCommunications interfacesMemoryOperationsSite adaptation requirements
![Page 50: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/50.jpg)
50
Example section: constraints
Describe any properties that will limit the developers’ optionsExamples:
Regulatory policiesHardware limitations (e.g., signal timing requirements)Interfaces to other applicationsParallel operationAudit functionsControl functionsHigher-order language requirementsReliability requirementsCriticality of the applicationSafety and security considerations
![Page 51: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/51.jpg)
51
Recommended document structure
1. Introduction1.1 Purpose1.2 Scope1.3 Definitions, acronyms, and abbreviations1.4 References1.5 Overview
2. Overall description2.1 Product perspective2.2 Product functions2.3 User characteristics2.4 Constraints2.5 Assumptions and dependencies
3. Specific requirementsAppendixesIndex
![Page 52: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/52.jpg)
52
Specific requirements (section 3)
This section brings requirements to a level of detail making them usable by designers and testers.Examples:
Details on external interfacesPrecise specification of each functionResponses to abnormal situationsDetailed performance requirementsDatabase requirementsDesign constraintsSpecific attributes such as reliability, availability, security, portability
![Page 53: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/53.jpg)
53
Possible section 3 structure
3. Specific requirements3.1 External interfaces
3.1.1 User interfaces3.1.2 Hardware interfaces3.1.3 Software interfaces3.1.4 Communication interfaces
3.2 Functional requirements…
3.3 Performance requirements…
3.4 Design constraints…
3.5 Quality requirements…
3.6 Other requirements…
![Page 54: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/54.jpg)
54
Your turn! Outline some sections
Consider a small library database with the following transactions:
1. Check out a copy of a book. Return a copy of a book.
2. Add a copy of a book to the library. Remove a copy of a book from the library.
3. Get the list of books by a particular author or in a particular subject area.
4. Find out the list of books currently checked out by a particular borrower.
5. Find out what borrower last checked out a particular copy of a book.
There are two types of users: staff users and ordinary borrowers.
Transactions 1, 2, 4, and 5 are restricted to staff users, except that ordinary borrowers can perform transaction 4 to find out the list of books currently borrowed by themselves. The database must also satisfy the following constraints:
All copies in the library must be available for checkout or be checked out.No copy of the book may be both available and checked out at the same time.A borrower may not have more than a predefined number of books checked out at one time.
![Page 55: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/55.jpg)
55
Lifecycle models
Origin: Royce, 1970, Waterfall model
Scope: describe the set of processes involved in the production of software systems, and their sequencing
“Model” in two meanings of the term:Idealized description of realityIdeal to be followed
![Page 56: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/56.jpg)
56
Using natural language in requirements
Keys are:StructurePrecision (including precise definition of all terms)ConsistencyMinimizing forward and outward referencesClarityConciseness
![Page 57: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/57.jpg)
57
Advice on natural language
Apply the general rules of “good writing” (e.g. Strunk & White)
Use active form(Counter-example: “the message will be transmitted…”)
This forces you to state who does what
Use prescriptive language (“shall…”)Separate domain properties and machine requirementsTake advantage of text processing capabilities, within reasonIdentify every element of the requirement, down to paragraph or sentenceFor delicate or complex issues, use complementary formalisms:
Illustrations (with precise semantics)Formal descriptions, with explanations in English
Even for natural language specs, a mathematical detour may be useful
![Page 58: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/58.jpg)
58
Advice on natural languageAfter Mannion & Keepence, 95
When using numbers, identify the unitsWhen introducing a list, describe all the elementsUse illustrations to clarifyDefine all project terms in a glossaryConsider placing individual requirements in a separate paragraph, individually numberedDefine generic verbs (“transmitted”, “sent”, “downloaded”, “processed”…) precisely
![Page 59: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/59.jpg)
59
Natural language elements to be avoidedAfter Mannion & Keepence 95
Noise phrases such as “obviously”, “clearly”, “certainly”.Ambiguous terms such as “some”, “several”, “many”List terminators such as “etc.”, “such as”Ambiguous pronouns ( “When module A calls module B its message history file is updated”).“To Be Defined”
![Page 60: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/60.jpg)
60
The waterfall model of the lifecycle
Feasibilitystudy
Requirements
Specification
Globaldesign
Detaileddesign
Implemen-tation
V & V
Distribution
![Page 61: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/61.jpg)
61
V-shaped
FEASIBILITY STUDY
REQUIREMENTS ANALYSIS
GLOBAL DESIGN
DETAILED DESIGN
DISTRIBUTION
IMPLEMENTATION
UNITVALIDATION
SUBSYSTEMVALIDATION
SYSTEMVALIDATION
![Page 62: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/62.jpg)
62
Arguments for the waterfall
(After B.W. Boehm: Software engineering economics)
The activities are necessary(But: merging of middle activities)
The order is the right one.
Source: Boehm 81
![Page 63: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/63.jpg)
63
The waterfall model
Feasibilitystudy
Requirements
Specification
Globaldesign
Detaileddesign
Implemen-tation
V & V
Distribution
![Page 64: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/64.jpg)
64
Problems with the waterfall
Late appearance of actual code.
Lack of support for requirements change — and more generally for extendibility and reusability.
Lack of support for the maintenance activity (70% of software costs?).
Division of labor hampering Total Quality Management.
Impedance mismatches.
Highly synchronous model.
![Page 65: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/65.jpg)
65
Quality control?
RequirementAnalysts
Designers
Implementers
Testers
Customers
![Page 66: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/66.jpg)
66
Impedance mismatches
As Management requested it. As the Project Leader defined it. As Systems designed it.
As Programming developed it. As Operations installed it. What the user wanted.(Pre-1970 cartoon; origin unknown)
![Page 67: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/67.jpg)
67
The Spiral model
Figure from: Ghezzi, Jazayeri, Mandrioli, Software Engineering, 2nd edition, Prentice Hall
![Page 68: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/68.jpg)
68
Seamless development
Example classes:Seamless development:Single notation, tools, concepts, principles throughout Eiffel is as much for analysis & design as implementation & maintenanceContinuous, incremental developmentKeep model, implementation and documentation consistent
Reversibility: go back and forthSaves money: invest in single set of toolsBoosts quality
Analysis
Design
Implemen-tation
V&V
Generali-zation
PLANE, ACCOUNT, TRANSACTION…
STATE, COMMAND…
HASH_TABLE…
TEST_DRIVER…
TABLE…
![Page 69: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/69.jpg)
69
Seamless development
Use consistent notation from analysis to design, implementation and maintenance.
Advantages:Smooth process. Avoids gaps (improves productivity, reliability).Direct mapping from problem to solution, i.e. from software system to external model. Better responsiveness to customer requests.Consistency, ease of communication. Better interaction between users, managers and developers.
![Page 70: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/70.jpg)
70
Single model principle
Use a single base for everything: analysis, design, implementation, documentation...
Use tools to extract the appropriate views.
![Page 71: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/71.jpg)
71
Consequences of this discussion
Requirements are generally viewed as a step, but are better understood as an activity, normally carried out at the beginning but possibly needing to be taken up again later
Requirements will change
The lifecycle model should support requirements and their continuous adaptation
![Page 72: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/72.jpg)
72
Practical advice
If you use a lifecycle model, make sure it integrates change and maintenance
![Page 73: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/73.jpg)
73
Capability Maturity Model Integration (CMMI)
Process improvement approachVarious aspects: systems engineering, software engineering, integrated product & process development, supplier sourcingCan be measured using:
Maturity levels: staged (for an organization)Capability levels: continuous (within a process area)
Maturity levels:1. Initial2. Managed3. Defined4. Quantitatively managed5. Optimizing
![Page 74: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/74.jpg)
74
1: Initial
Processes performed but often ad-hoc or chaoticPerformance dependent on competence & heroicsPerformance difficult to predict.
Source: SEI
![Page 75: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/75.jpg)
75
2: Managed
Process properties:Planned and executed in accordance with policyEmploys skilled people having adequate resources to produce controlled outputsInvolves relevant stakeholdersMonitored, controlled, reviewed, evaluated foradherence to its process description.InstitutionalizedDiscipline helps ensure that existing practices are retained during times of stress.Status visible to management at defined points.
![Page 76: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/76.jpg)
76
3: Defined
Managed, plus:Description tailored from organization’s set of standard processes according to tailoring guidelinesThis contributes work products, measures, and other process-improvement informationStandard processes improved over time
![Page 77: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/77.jpg)
77
4: Quantitatively managed
Defined, plus:Controlled using statistical & other quantitative techniquesStatistical predictabilityProjects use measurable objectives to meet needs of customers, end-users & organizationManagers & engineers use the data in managing processes & results
![Page 78: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/78.jpg)
78
5: Optimizing
Quantitatively managed, plus:Changed to meet current and projected business objectivesFocus on continually improving range of process performance through incremental, innovative technological improvements.Process improvement is inherently part of everybody’s role, resulting in cycles of continual improvement.
![Page 79: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/79.jpg)
79
Requirements process area
Process area at level 2
“The project takes appropriate steps to ensure that the agreed-upon set of requirements is managed to support the planning and execution needs of the project. When a project receives requirements from an approved requirements provider, the requirements are reviewed with the requirements provider to resolve issues […]. Commitment to the requirements is [then] obtained from the project participants. […]
Part of the management of requirements is to document requirements changes and rationale and maintain bidirectional traceability between source requirements and all product and product-componentrequirements.”
![Page 80: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/80.jpg)
80
CMMI: requirements management
Specific Practices:Obtain an understanding of requirementsObtain commitment to requirementsManage requirements changesMaintain bidirectional traceability of requirementsIdentify inconsistencies between project work and requirements
![Page 81: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/81.jpg)
81
ISO 9001:2000
Quality rules:1. Develop quality management system2. Implement quality management system3. Improve quality management system4. Develop, control and maintain quality documentsManagement rules:1. Promote & manage quality quality2. Satisfy customers (identify requirements…)3. Establish quality policy4. Carry out quality planning5. Control quality system
![Page 82: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/82.jpg)
82
On the other hand…
English or Metric - why Mars Climate Orbiter was lost!Lord Wodehouse <[email protected]>Fri, 01 Oct 1999
The following quoted from NASA's press release shows that for the second time a mix-up in units resulted in an experiment failure, but this time it was a spacecraft.“The peer review preliminary findings indicate that one team used English units (e.g., inches, feet and pounds) while the other used metric units for a key spacecraft operation. This information was critical to the maneuvers required to place the spacecraft in the proper Mars orbit. “
![Page 83: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/83.jpg)
83
Rational Unified Process
Defines phases of the software process:InceptionElaborationConstructionTransition
Requirements are part of inception. Includes:Business case (business context, success factors)Financial forecastUse case model
![Page 84: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/84.jpg)
84
Use Cases (scenarios)
One of the UML diagram typesA use case describes how to achieve a single business goal or task through the interactions between external actors and the system
A good use case must:Describe a business taskNot be implementation-specificProvide appropriate level of detail Be short enough to implement by one developer in one release
![Page 85: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/85.jpg)
85
Use case example
Place an order:Browse catalog & select items Call sales representative Supply shipping informationSupply payment informationReceive conformation number
from salesperson
May have precondition, postcondition, invariant
![Page 86: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/86.jpg)
86
Our view
Use cases are a minor tool for requirement elicitation but not really a requirement technique. They cannot define the requirements:
Not abstract enoughToo specificDescribe current processesDo not support evolution
Use cases are to requirements what tests are to software specification and design
Major application: for testing
![Page 87: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/87.jpg)
87
Practical advice
Apply use cases for deriving the test plan, not the requirements
![Page 88: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/88.jpg)
88
Literate Programming
First version called “WEB” was developed by Donald E. Knuth for the TeX word processing system.
Key characteristics:Regards programming as the transformation of a document into code.Natural language text and code are unified into one document. Automatic tools are used to extract the codeand generate the program.During development, parts can be left unspecified.Opens the “Analyse, Design, Implement”-Triatlon
![Page 89: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/89.jpg)
89
Literate Programming (cont.)
![Page 90: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/90.jpg)
90
The anti-process movement
“eXtreme Programming”(XP), “Agile” methods
Crystal (Cockburn), Scrum
Test-driven developmentRecommended practices, e.g. Pair ProgrammingShort iteration cycles
“The revenge of the cubicles”
![Page 91: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/91.jpg)
91
Agile Methods
Example: Extreme ProgrammingCombination of various ideas:
Rejects full requirements analysisFrequent releases (cf. Microsoft, daily build)Recommends rapid prototyping
“Code as fast a possible”“User stories” captured on story cards“Planning game” to counter mistrust between customer & supplier“Pair programming”User stories are converted into test cases (“test-driven development”)Tight integration of customer into software process.
![Page 92: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/92.jpg)
92
Agile Methods
![Page 93: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/93.jpg)
93
Requirements under agile methods
Under XP: requirements are taken into account as defined at the particular time considered
Requirements are largely embedded in test cases
Benefits:Test plan will be directly availableCustomer involvement
Risks:Change may be difficult (refactoring)Structure may not be rightTest only cover the foreseen cases
![Page 94: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/94.jpg)
94
Your turn! Start an agile approach to this system
Consider a small library database with the following transactions:
1. Check out a copy of a book. Return a copy of a book.
2. Add a copy of a book to the library. Remove a copy of a book from the library.
3. Get the list of books by a particular author or in a particular subject area.
4. Find out the list of books currently checked out by a particular borrower.
5. Find out what borrower last checked out a particular copy of a book.
There are two types of users: staff users and ordinary borrowers.
Transactions 1, 2, 4, and 5 are restricted to staff users, except that ordinary borrowers can perform transaction 4 to find out the list of books currently borrowed by themselves. The database must also satisfy the following constraints:
All copies in the library must be available for checkout or be checked out.No copy of the book may be both available and checked out at the same time.A borrower may not have more than a predefined number of books checked out at one time.
![Page 95: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/95.jpg)
95
Practical advice
Retain the best agile practices, in particular frequent iterations, customer involvement, centrality of code and testing.
Disregard those that contradict proven software engineering principles.
![Page 96: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/96.jpg)
96
Some recipes for good requirements
Managerial aspects:Involve all stakeholdersEstablish procedures for controlled changeEstablish mechanisms for traceabilityTreat requirements document as one of the major assets of the project; focus on clarity, precision, completeness
Technical aspects: how to be precise?Formal methods?Design by Contract
![Page 97: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/97.jpg)
97
ChecklistAfter: Kotonya & Sommerville 98
Premature design?Combined requirements? Unnecessary requirements?Conformance with business goalsAmbiguityRealismTestability
![Page 98: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/98.jpg)
98
Measures for requirements
Measures of sizeNumber of clustersNumber of classesNumber of deferred features (function points)Average number of: precondition/postcondition clauses per feature, invariant clauses per class
Measures of complexityNumber of intra-cluster cyclic relationshipsNumber of inter-cluster cyclic relationshipsAverage number of parents/children per class
![Page 99: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/99.jpg)
99
Measures for requirements
Measures of quality (a posteriori)Number of requirements-originating bugsProportion of requirements-originating bugsAverage time from bug to detectionDistribution of bugs per requirements module
![Page 100: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/100.jpg)
Part 3:
Requirements elicitation
![Page 101: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/101.jpg)
101
Case study questions
Define stakeholdersDiscuss quality of statements -- too specific, not specific enough, properly scopedDiscuss completeness of information: what is missing?Any contradictions that need to be resolved between stakeholders?Identify domain and machine requirementsIdentify functional and non-functional requirementsPlan for future elicitation tasks
![Page 102: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/102.jpg)
102
The requirements processSource: Pfleeger & Atlee 05
![Page 103: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/103.jpg)
103
The need for an iterative approach
The requirements definition activity cannot be defined by a simple progression through, or relationship between, acquisition, expression, analysis, and specification. Requirements evolve at an uneven pace and tend to generate further requirements from the definition processes.The construction of the requirements specification is inevitably an iterative process which is not, in general, self-terminating. Thus, at each iteration it is necessary to consider whether the current version of the requirements specification adequately defines the purchaser’s requirement, and, if not, how it must be changed or expanded further.
Source: Southwell 87
![Page 104: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/104.jpg)
104
Before elicitation
At a minimum:
Overall project description
Draft glossary
![Page 105: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/105.jpg)
105
Requirements elicitation: overall scheme
Identify stakeholders
Gather wish list of each category
Document and refine wish lists
Integrate, reconcile and verify wish lists
Define priorities
Add any missing elements and nonfunctional requirements
![Page 106: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/106.jpg)
106
The four forces at workAfter: Kotonya & Sommerville 98
Requirements
Problem to be solved
Business context
Domain constraints
Stakeholder constraints
![Page 107: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/107.jpg)
107
Requirements elicitation: who?
Users/customers
Software developers
Other stakeholders
Requirements engineers (analysts)
![Page 108: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/108.jpg)
108
The customer perspective
“The primary interest of customers is not in a computer system, but rather in some overall positive effects resulting from the introduction of a computer system in their environment”
Source: Dubois 88
![Page 109: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/109.jpg)
109
Stereotypes
How developers see usersDon't know what they wantCan't articulate what they wantHave too many needs that are politically motivatedWant everything right now. Can't prioritize needs “Me first”, not company firstRefuse to take responsibility for the systemUnable to provide a usable statement of needsNot committed to system development projectsUnwilling to compromise Can't remain on schedule
How users see developersDon't understand operational needs. Too much emphasis on technicalities. Try to tell us how to do our jobs. Can't translate clearly stated needs into a successful system. Say no all the time. Always over budget.Always late.
Ask users for time and effort, even to the detriment of their primary duties.Set unrealistic standards for requirements definition. Unable to respond quickly to legitimately changing needs.
Source: Scharer 81
![Page 110: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/110.jpg)
110
Requirements elicitation: what?
Example questions:What will the system do?What must happen if…?What resources are available for…?What kind of documentation is required?What is the maximum response time for…?What kind of training will be needed?What precision is requested for…?What are the security/privacy implications of …?Is … an error?What should the consequence be for a … error?What is a criterion for success of a … operation?
![Page 111: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/111.jpg)
111
Requirements elicitation: how?
ContractStudy of existing non-computer processesStudy of existing computer systemsStudy of comparable systems elsewhereStakeholder interviewsStakeholder workshops
![Page 112: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/112.jpg)
112
Building stakeholders’ trust
Future users may be jaded by previous attempts where the deliveries did not match the promises
Need to build trust progressively:Provide feedback, don’t just listenJustify restrictionsReinforce trust through evidence, e.g. earlier systems, partial prototypesEmphasize the feasible over the ideal
![Page 113: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/113.jpg)
113
Contract
The contract is not a substitute for a requirements process.But (unscientific observation): poorly prepared contracts are one of the principal sources of software project failuresAdvice:
Pay attention to the contractInvolve the technical peopleThe contract should delimit the scope of the projectStrive for win-win clausesDefine responsibilities precisely, e.g. training, documentation, operationInclude conflict resolution structuresKeep the lawyers at bay
![Page 114: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/114.jpg)
114
Study of existing systems
Non-computerized processesNot necessarily to be replicated by software systemUnderstand why things are done the way they are
Existing IT systemsCommercial products (buy vs build)Previous systemsSystems developed by other companies, including competitors
![Page 115: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/115.jpg)
115
Stakeholder interviews
Good questions:Are egoless Seek useful answers Make no assumptions
“Context-free” questions:“Where do you expect this to be used?”“What is it worth to you to solve this problem?”“When do you do this?”“Whom should I talk to?” “Who doesn’t need to be involved?”“How does this work?” “How might it be different?”
Also: meta-questions: “Are my questions relevant?”
After: Winant 02
![Page 116: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/116.jpg)
116
More question types
Open-endedWhat :
What happens next? What factors are involved?
How : How do you use the product to__________? How do people decide which option to select?
“Could” :Could you conceive of an example when you’d use the product this way? Could you see a way to use the product to solve this problem?
ClosedSpecific
Do you have any problems with the login function of the current system?
(follow-up with specifics, e.g. “Can you recreate the problem?”)Multiple-choice(mostly useful to help establish priorities)
Which would you prefer, A, B, or C? If you had to choose one, would you choose, X, Y, or Z?
After: Derby 04
![Page 117: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/117.jpg)
117
Probe further
What else? Can you show me? Can you give me an example? How did that happen? What happens next? What’s behind that? Are there any other reasons?
“How” rather than “why”:What was the thinking behind that decision?
After: Derby 04
![Page 118: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/118.jpg)
118
Uncovering the implicit
One analyst didn’t include in his requirements document the database that fed his system. I asked him why. He said, “Everyone knows it’s there. It’s obvious.” Words to be wary of! It turned out that the database was scheduled for redesign. [Winant]
Implicit assumptions are one of the biggest obstacles to a successful requirements process.
![Page 119: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/119.jpg)
119
Workshops
Development VP Avery Kerr of BeWell Medical Corp. assigned our group to define the requirements for a software system to be used by registration agents and customers. “They’re all over the place with what they want,” lamented Mary, RegTrak’s project manager.I asked her to explain what she meant. Who was all over the place? What did they want? “Product development wants our global agents to use RegTrak to register and order products for their regions or countries,” she explained. “Distribution wants hospital purchasing agents to be able to place orders and check on them. Marketing wants health care workers in the hospital to have access, too.”It was clear that the RegTrak team needed to nail down the scope and high-level requirements of the proposed project. [Mary’s] comment confirmed my typical experience: Each of the various stakeholders has his or her own understanding of what the scope should be, based on personal experience and knowledge.“I suggest we bring together all of the stakeholders to define the scope of the project,” I said. Mary agreed. We formed a workshop planning team and got to work.
From: Gottesdiener 02
![Page 120: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/120.jpg)
120
Benefit of workshops
A workshop is often less costly than multiple interviews Help structure requirements capture and analysis process Dynamic, interactive, cooperativeInvolve users, cut across organizational boundariesHelp identify and prioritize needs, resolve contentious issuesHelp promote cooperation between stakeholdersWhen properly run, help manage user's expectations and attitude toward change
After: Young 01
![Page 121: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/121.jpg)
121
Workshop roles
Selection of stakeholdersRequirements analystsFacilitatorRecorder
See “JAD” techniques (Joint Application Design)
A workshop is not just a meeting. It must be carefully prepared and have a set of defined deliverables.
![Page 122: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/122.jpg)
122
Examples of workshop deliverables
PosterListCluster, affinity groupGrids, matricesSequencesDrawingsMind map
After: Gottesdiener 02
Doneness matrix
![Page 123: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/123.jpg)
123
Interview/workshop techniques
BrainstormingScenarios, use casesStoryboardsPrototypes
![Page 124: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/124.jpg)
124
Knowing when to stop elicitation
Keep the focus on scopeKeep a list of open issuesDefine criteria for completeness
![Page 125: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/125.jpg)
125
After elicitation
Examine resulting requirements from the viewpoint of requirements quality factors, especially consistency and completeness
Make decisions on contentious issuesFinalize scope of projectGo back to stakeholders and negotiate
![Page 126: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/126.jpg)
126
15 quality goals for requirements
Traceable
Delimited
Interfaced
Readable
Modifiable
Testable
Prioritized
Endorsed
Justified
Correct
Complete
Consistent
Unambiguous
Feasible
Abstract
![Page 127: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/127.jpg)
127
Practical advice
Treat requirement elicitation as a mini-project of its own
![Page 128: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/128.jpg)
Part 4:
Object-OrientedRequirements Analysis
![Page 129: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/129.jpg)
129
Analysis classes
deferred classVAT
inherit
TANK
feature
in_valve, out_valve: VALVEfill is
-- Fill the vat.require
in_valve.openout_valve.closed
deferredensure
in_valve.closedout_valve.closedis_full
end
empty, is_full, is_empty, gauge, maximum, ... [Other features] ...
invariant
is_full = (gauge >= 0.97 * maximum) and (gauge <= 1.03 * maximum)
end
![Page 130: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/130.jpg)
130
What is object-oriented analysis?
Classes around object types (not just physical objects but also important concepts of the application domain)Abstract Data Types approachDeferred classes and featuresInter-component relations: “client” and inheritanceDistinction between reference and expanded clientsInheritance — single, multiple and repeated for classification.Contracts to capture the semantics of systems: properties other than structural. Libraries of reusable classes
![Page 131: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/131.jpg)
131
Why O-O analysis?
Same benefits as O-O programming, in particular extendibility and reusability
Direct modeling of the problem domain
Seamlessness and reversibility with the continuation of the project (design, implementation, maintenance)
![Page 132: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/132.jpg)
132
What O-O requirements analysis is not
Use cases
(Not appropriate as requirements statement mechanism)
Use cases are to requirements what tests are to specification and design
![Page 133: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/133.jpg)
133
Television station exampleSource: OOSC
class SCHEDULE featuresegments: LIST [SEGMENT]
end
![Page 134: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/134.jpg)
134
Schedules
set_air_time (t: DATE)-- Assign schedule to-- be broadcast at time t.
requiret.in_future
deferredensure
air_time = tend
print-- Produce paper version.
deferredend
end
notedescription :
“ 24-hour TV schedules”deferred class SCHEDULE feature
segments: LIST [SEGMENT ]-- Successive segments
deferredend
air_time : DATE is-- 24-hour period-- for this schedule
deferredend
![Page 135: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/135.jpg)
135
Contracts
Feature precondition: condition imposed on the rest of the world
Feature postcondition: condition guaranteed to the rest of the world
Class invariant: Consistency constraint maintained throughout on all instances of the class
![Page 136: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/136.jpg)
136
Obligations & benefits in a contract
Client
Supplier
(Satisfy precondition:)Bring package before 4 p.m.; pay fee.
(Satisfy postcondition:)Deliver package by 10 a.m. next day.
OBLIGATIONS
(From postcondition:)Get package delivered by 10 a.m. next day.
(From precondition:)Not required to do anything if package delivered after 4 p.m., or fee not paid.
BENEFITSdeliver
![Page 137: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/137.jpg)
137
Why contracts
Specify semantics, but abstractly!
(Remember basic dilemma of requirements:Committing too early to an implementation
Overspecification!
Missing parts of the problemUnderspecification!
)
![Page 138: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/138.jpg)
138
Segment
sponsor: COMPANY deferred end-- Segment’s principal sponsor
rating: INTEGER deferred end-- Segment’s rating (for-- children’s viewing etc.)
… Commands such as change_next,set_sponsor, set_rating omitted …
Minimum_duration: INTEGER = 30-- Minimum length of segments,-- in seconds
Maximum_interval: INTEGER = 2-- Maximum time between two-- successive segments, in seconds
notedescription :
"Individual fragments of a schedule "deferred class SEGMENT feature
schedule : SCHEDULE deferred end-- Schedule to which-- segment belongs
index: INTEGER deferred end-- Position of segment in-- its schedule
starting_time, ending_time :INTEGER is deferred end-- Beginning and end of-- scheduled air time
next: SEGMENT is deferred end-- Segment to be played-- next, if any
![Page 139: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/139.jpg)
139
Segment (continued)
invariant
in_list: (1 <= index) and (index <= schedule.segments.count)
in_schedule: schedule.segments.item (index) = Currentnext_in_list: (next /= Void ) implies
(schedule.segments.item (index + 1) = next)
no_next_iff_last: (next = Void) = (index = schedule.segments.count)non_negative_rating: rating >= 0positive_times: (starting_time > 0 ) and (ending_time > 0)sufficient_duration:
ending_time – starting_time >= Minimum_durationdecent_interval :
(next.starting_time) - ending_time <= Maximum_intervalend
![Page 140: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/140.jpg)
140
Commercial
set_primary (p: PROGRAM)-- Attach commercial to p.
requireprogram_exists: p /= Voidsame_schedule: p,schedule = schedulebefore:
p.starting_time <= starting_timedeferredensure
index_updated:primary_index = p.index
primary_updated: primary = pend
notedescription: "Advertizing segment "
deferred class COMMERCIAL inheritSEGMENT
rename sponsor as advertizer endfeature
primary: PROGRAM deferred-- Program to which this-- commercial is attached
primary_index: INTEGER deferred-- Index of primary
invariantmeaningful_primary_index: primary_index = primary.indexprimary_before: primary.starting_time <= starting_timeacceptable_sponsor: advertizer.compatible (primary.sponsor)acceptable_rating: rating <= primary.rating
end
![Page 141: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/141.jpg)
141
Diagrams: UML, BON
Text-Graphics Equivalence
![Page 142: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/142.jpg)
142
O-O analysis process
Identify abstractionsNewReused
Describe abstractions through interfaces, with contractsLook for more specific cases: use inheritanceLook for more general cases: use inheritance, simplifyIterate on suppliers
At all stages keep structure simple and look for applicable contracts
![Page 143: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/143.jpg)
143
Your turn! Describe this in an O-O way
Consider a small library database with the following transactions:
1. Check out a copy of a book. Return a copy of a book.
2. Add a copy of a book to the library. Remove a copy of a book from the library.
3. Get the list of books by a particular author or in a particular subject area.
4. Find out the list of books currently checked out by a particular borrower.
5. Find out what borrower last checked out a particular copy of a book.
There are two types of users: staff users and ordinary borrowers.
Transactions 1, 2, 4, and 5 are restricted to staff users, except that ordinary borrowers can perform transaction 4 to find out the list of books currently borrowed by themselves. The database must also satisfy the following constraints:
All copies in the library must be available for checkout or be checked out.No copy of the book may be both available and checked out at the same time.A borrower may not have more than a predefined number of books checked out at one time.
![Page 144: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/144.jpg)
144
Practical advice
Take advantage of O-O techniquesfrom the requirements stage on
Use contracts to express semantic properties
![Page 145: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/145.jpg)
Part 5:
Formal Methodsfor Requirements
![Page 146: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/146.jpg)
146
Overview
What are Formal Methods?Advantages and Disadvantages of Formal MethodsFormal Methods in the Requirement ProcessMathematical Formulas and Free TextTools for Formal MethodsThe B Method and Language
Analysis of a problem in BImplementation and prove of the model in “Click’n’Prove”
Summary
![Page 147: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/147.jpg)
147
What are formal methods?
Formal = MathematicalMethods = Structured Approaches, Strategies
Using mathematics in a structured way to analyze and describe a problem.
![Page 148: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/148.jpg)
148
Formal methods in industrial use
Hardwareno major chip is developed without it
Softwaresoftware verification and model checkingDesign by ContractBlast, Atelier B, Boogie
DesignUML‘s OCL, BON, Z, state charts
Testingautomatic test generationparallel simulation
![Page 149: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/149.jpg)
149
Why don’t we like math?
“Very abstract.“
“Lots of Greek letters.“
“Difficult to learn and read.“
“Can communicate with a normal person.“
![Page 150: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/150.jpg)
150
Useful mathematics
The type of math required consists of
Set theoryFunctions and RelationsFirst-order predicate logicBefore-After predicates
![Page 151: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/151.jpg)
151
Set theory
“All humans are male or female.“
Humans = Male ∪ Female
“Nobody is male and female at the same time.“
Male ∩ Female = ∅
Male Female
![Page 152: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/152.jpg)
152
Functions and relations
“Every customer must have a personal attendant.“
attendant : Customers → Employees
“Every customer has a set of accounts.“
AccountsOf: Customers → P(Accounts)
![Page 153: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/153.jpg)
153
First-order predicate logic
“Everybody who works on a Sunday needs to have a special permit.“
∀p∈Employee: workOnSunday(p) ⇒ hasPermit(p)
“Every customer must at least have one account.“
∀c∈Customers: ∃a∈Accounts: a∈AccountsOf(c)
![Page 154: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/154.jpg)
154
Before-After predicates
“People can enter the building if they have their ID with them. When entering, they have to leave their ID card at the registration desk.“
EnterBuilding(p) =PRE
hasAuthorization(p)carriesPassport(p)
THENpeopleInBuilding‘ = peopleInBuilding ∪ { p }passportsAtDesk‘ = passportsAtDesk ∪ {passportOf(p)}not carriesPassport(p)
![Page 155: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/155.jpg)
155
Advantages of formal methods
The advantages of using math for any analytical problem
Short notationForces you to be preciseIdentifies ambiguityClean form of communicationMakes you ask the right questions
![Page 156: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/156.jpg)
156
Conciseness
Compare
“For every ticket that is issued, there has to be a person that is allowed to enter the concert with that ticket. This person is called the owner of the ticket.“
with
TicketOwner: IssuedTickets → Person
![Page 157: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/157.jpg)
157
Forced precision
“On red traffic lights, people normally stop their cars.“
What does “normally“ mean? How should we build a system based on this statement? What are the consequences? What happens in the exceptional case?
Formalization Fails
![Page 158: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/158.jpg)
158
Identified ambiguity
“When the temperature is too high, the ventilation has to be switched on or the maintenance staff has to be informed.“
May we do both?
temperature_is_high ⇒ (notify_staff or ventilation_on)
or
temperature_is_high ⇒ (notify_staff xor ventilation_on)
![Page 159: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/159.jpg)
159
Clean form of communication
Every mathematical notation has a precise semantic definition.New constructs can be added defined in terms of old constructs.Math does not need language skills and can be easily understood in an international context.
![Page 160: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/160.jpg)
160
Asking the right questions
“Every customer has is either trusted or untrusted.“
∀ c ∈ customer: trusted(c) xor untrusted(c)
“Upon internet purchase, a person is automatically registered as a new customer.“
InternetPurchase (by) =customers‘ = customers ∪ {by}
Is the new customer trusted or untrusted ?!
![Page 161: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/161.jpg)
161
This is indeed requirements
It’s not programming:Programming describes a solution and not a problemProgramming is constructive
It’s not design:We do not only describe the softwareWe describe the full system (software and environment)No separation between software and environmentWe do so in an incremental wayWe want to understand the system
![Page 162: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/162.jpg)
162
General approach
FormalDocument
Natural LanguageDocument
Ideas
![Page 163: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/163.jpg)
163
Merging formal requirements
![Page 164: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/164.jpg)
164
No natural language?
Ideas FormalDocument
![Page 165: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/165.jpg)
165
Graphical notations
Once we have a formal documentwe can transform it back into a natural language document.we can also transform it into a graphical document.
There are many graphical notations out there.Be careful when choosing a graphical notation:
Does it have a well defined semantics ?Does it really make things clearer than the formal or natural description ?
![Page 166: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/166.jpg)
166
Graphical notations (cont.)
Sets as ClassesSubsets as Subclasses
Human
Male Female
![Page 167: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/167.jpg)
167
Graphical notations (cont.)
Sets as ClassesSubsets as Subclasses
![Page 168: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/168.jpg)
168
Graphical notations (cont.)
Functions
instead of f : A → B
fA B
![Page 169: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/169.jpg)
169
An example problem
“The software should control the temperature of the room. It can read the current temperature from a thermometer. Should the temperature fall below a lower limit, then the heater should be switched on to raise the temperature. Should it rise above an upper limit, then the cooling system should be switched on to lower the temperature.“[...]“Safety concern: the heater and the cooler should never be switched on at the same time.“
![Page 170: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/170.jpg)
170
Formal specification
current_temperature : INTEGERlower_limit: INTEGERupper_limit: INTEGER
![Page 171: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/171.jpg)
171
Formal specification (cont.)
cooling_system : { on, off }heating_system : { on, off }
(cooling_system = on) ⇒ (heating_system = off)(heating_system = on) ⇒ (cooling_system = off)
![Page 172: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/172.jpg)
172
Formal specification (cont.)
Switch on event
switch_on_cooling_system =SELECT
cooling_system = off ¤t_temperature > upper_limit
THENcooling_system := on
END
![Page 173: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/173.jpg)
173
Formal specification (cont.)
Switch on event
switch_on_heating_system =SELECT
heating_system = off ¤t_temperature < lower_limit
THENheating_system := on
END
![Page 174: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/174.jpg)
174
Tools for formal methods
CategoriesBeautifiers, EditorsSyntax CheckersType ChecksExercisersModel CheckersInteractive ProversAutomatic Provers
Complexity
![Page 175: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/175.jpg)
175
Languages for formal methods
How should we formalize the requirements?
The Z notation
Developed in the late 1970s at OxfordISO Standard since 2002 (ISO/IEC 13568:2002)Support of large user communityLarge number of tools available
![Page 176: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/176.jpg)
176
Languages for formal methods (cont.)
The B Method
Simplified version of ZGoal: ProvabilityIntroduction of “Refinement“Industrial Strength proof toolsMethodological ApproachCan also be used for Design and Implementation
![Page 177: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/177.jpg)
177
Languages for formal methods (cont.)
Other Candidates
There are numerous languages out thereMost tools invent an own language(Nearly) all are based on the same mathematical conceptsBiggest difference: The US keyboard does not have Greek letters.
In the end, it is all just math
![Page 178: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/178.jpg)
178
Pro B
Pro B is an exerciser (animator) and (limited) model-checker for the B language
Accepts B (without refinement)Developed by Michael Leusche, Southamptonhttp://www.ecs.soton.ac.uk/~mal/systems/prob.html
![Page 179: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/179.jpg)
179
Alloy
Alloy is a full model-checker for model based on a relational logic
Own input language modeled close to object-oriented languagesDeveloped by Daniel Jackson, MIThttp://alloy.mit.edu/
![Page 180: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/180.jpg)
180
Atelier B and Click’n’Prove
Prover for the B Method
Supports the B Method, including refinement, analysis, design and code generationInteractive ProverDeveloped by Jean-Raymond Abrial and Dominique Cansell, LORIA, FranceNew version currently developed at the ETH as part of the EU Rodin project http://www.loria.fr/~cansell/cnp.html
![Page 181: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/181.jpg)
181
Formal methods: an assessment
New approach for Requirements EngineeringPowerful tools are currently developed
ProsClear and precise notationMakes you understand you problemDiscovers contradictionsHelps you to merge requirementsMakes you ask the right questions
ConsNotation requires some skills to masterNot suitable for non-functional requirements
![Page 182: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/182.jpg)
182
Practical advice
Learn a formal method thoroughly
Let formal methods inform your practice of requirements
![Page 183: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/183.jpg)
Part 6:
Conclusion
![Page 184: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/184.jpg)
184
Key lessons
Requirements are softwareSubject to software engineering toolsSubject to standardsSubject to measurementPart of quality enforcement
Requirements is both a lifecycle phase and a lifecycle-long activity
Since requirements will change, seamless approach is desirable
Distinguish domain properties from machine propertiesDomain requirements should never refer to machine requirements!
![Page 185: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/185.jpg)
185
Key lessons
Identify & involve all stakeholdersRequirements determine not just development but testsUse cases are good for test planningRequirements should be abstractRequirements should be traceableRequirements should be verifiable (otherwise they are
wishful thinking)Object technology helps
ModularizationClassificationsContractsSeamless transition to rest of lifecycle
![Page 186: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/186.jpg)
186
Key lessons
Formal methods have an important contribution to make:Culture to be mastered by requirements engineersNecessary for critical parts of applicationLead to ask the right questionsProofs & model checking uncover errorsLead to better informal requirementsStudy abstract data typesNothing to be scared of
![Page 187: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/187.jpg)
187
Bibliography (1/4)
Barry W. Boehm: Software Engineering Economics, Prentice Hall, 1981.
Fred Brooks: No Silver Bullet - Essence and Accident in Software Engineering, in Computer (IEEE), vol. 20, no. 4, pages 10-19, April 1987.
John B. Goodenough and Susan Gerhart: Towards a Theory of Test: Data Selection Criteria, in Current Trends in Programming Methodology, ed. Raymond T. Yeh, pages 44-79, Prentice Hall, 1977.
Esther Derby: Building a Requirements Foundation through Customer Interviews, www.estherderby.com/articles/buildingarequirementsfoundation.htm.
Éric Dubois, J. Hagelstein and A. Rifaut: Formal Requirements Engineering with ERAE, in Philips Journal of Research, vol. 43, no. ¾, pages 393-414,1988.
Ellen Gottesdiener: Requirements Workshops: Collaborating to Explore User Requirements, in Software Management 2002, available at www.ebgconsulting.com/pubs/Articles/ReqtsWorkshopsCollabToExplore-Gottesdiener.pdf
![Page 188: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/188.jpg)
188
Bibliography (2/4)
Gerald Kotonya & Ian Sommerville: Requirements Engineering: Processes and Techniques, Wiley, 1998.IEEE: IEEE Recommended Practice for Software Requirements Specifiations, IEEE Std 830-1998 (revision of IEEE Std 830-1988), available at ieeexplore.ieee.org/iel4/5841/15571/00720574.pdf?arnumber=720574.Michael Jackson: Software Requirements and Specifications, Addison-Wesley, 1996.Mike Mannion and Barry Keepence: SMART Requirements, in ACM SIGSOFT Software Engineering Notes, vol. 20, no. 2, pages 42-47, April 1995.Bertrand Meyer: On Formalism in Specifications, in Software (IEEE), pages 6-26, January 1985; available at se.ethz.ch/~meyer/publications/ieee/formalism.pdf.
[OOSC] Bertrand Meyer: Object-Oriented Software Construction, 2nd edition, Prentice Hall, 1997.Peter Naur: Programming with Action Clusters, in BIT, vol. 3, no. 9, pages 250-258, 1969.
![Page 189: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/189.jpg)
189
Bibliography (3/4)
Shari Lawrence Pfleeger and Joanne M Atlee: Software Engineering, 3rd
edition, Prentice Hall, 2005.
Laura Scharer: Pinpointing Requirements, in Datamation, April 1981. Also available at media.wiley.com/product_data/excerpt/84/08186773/0818677384-2.pdf.
SEI (Software Engineering Institute): CMMISM for Software Engineering, Version 1.1, Staged Representation (CMMI-SW, V1.1, Staged), 2005, available at www.sei.cmu.edu/publications/documents/02.reports/02tr029.html.Southwell et al., cited in Michael G. Christel and Kyo C. Kang, Issues in Requirements Elicitation, Software Engineering Institute, CMU/SEI-92-TR-012 and ESC-TR-92-012, September 1992, available at www.sei.cmu.edu/pub/documents/92.reports/pdf/tr12.92.pdf.Becky Winant: Requirement #1: Ask Honest Questions, www.stickyminds.com/sitewide.asp?Function=edetail&ObjectType=COL&ObjectId=3264.
![Page 190: Software Engineering Outsourcing and Offshoringse.inf.ethz.ch/old/teaching/ws2006/0273/slides/outsourcing_20... · Preparing for reusable components 5. Experimentation: user interface,](https://reader034.vdocuments.us/reader034/viewer/2022050420/5f8f933f229533333c32c1ca/html5/thumbnails/190.jpg)
190
Bibliography (4/4)
Jeannette M. Wing: A Study of 12 Specifications of the Library Problem, in Software (IEEE), vol. 5, no. 4, pages 66-76, July 1988.Ralph Young: Recommended Requirements Gathering Practices, in CrossTalk, the Journal of Defense Software Engineering, April 2002, available at www.stsc.hill.af.mil/crosstalk/2002/04/young.html.