Post on 28-Nov-2014
description
Leiden University. The university to discover.
Christoph Johann Stettina (stettina@liacs.nl)
Requirements Engineering Werkcollege Spring 2012 Session 4: SpecificaDon & DocumentaDon
Leiden University. The university to discover.
Session 4: Requirements SpecificaDon
Today: • Business process modeling • Tayloris3c knowledge sharing • Requirements specifica3on templates
Why is it important? • Documenta3on of elicited requirements • Traceability, Accountability • Acceptance criteria
Leiden University. The university to discover.
Part 1 – SpecificaDon Business Process Modeling
Leiden University. The university to discover.
What is a business process?
“A collec3on of ac3vi3es that takes one or more kinds of input and creates an output that is of value to the customer”
(Hammer & Champy, 1993) Real life examples: - E-‐payment process - Visa applica3on - Hotel reserva3on - etc.
Leiden University. The university to discover.
What is business process modeling?
Convergence of two modeling domains: Process modeling l Abstract representa3on of a process architecture
Enterprise or business modeling l Documen3ng an organiza3on from a holis3c perspec3ve
Leiden University. The university to discover.
Why modeling business processes? - To have a formal documenta3on (as point of reference)
- To allow process analysis (e.g., reengineering) - To communicate processes - To generate executable process language (e.g., BPEL)
Leiden University. The university to discover.
Examples: BPM
Supply fulfillment, Informal & Formal
Leiden University. The university to discover.
How to Model Business Processes?
We need a formal way to model BP, so that: l Widely understood (using standard nota3on) l Avoid ambiguity, inconsistency, etc. in expressing concepts
l Allow automated assessments
Leiden University. The university to discover.
CreaDng an AcDvity Diagram
- Iden3fy the scope of the ac3vity diagram (e.g., a use case)
- Add start and end points - Add ac3vi3es - Add transi3ons from the ac3vi3es - Add decision points (if any) - Iden3fy opportuni3es for parallel ac3vi3es
Leiden University. The university to discover.
CreaDng an AcDvity Diagram
Another Example
Leiden University. The university to discover.
The Swimlanes
- Add a dimension to visualize roles
- Separate the diagram into parallel lanes
- Each lane presents ac3vi3es performed by each role
- Transi3ons can take across swimlanes
Leiden University. The university to discover.
Case Study: In-‐class assignment
- Analyze & model the current business process of the OV-‐chipkaart from the customer perspec3ve
- Use ac3vity diagrams to support your model - What are the differences?
Example: Strippenkaart Process
Leiden University. The university to discover.
Part 2 – Knowledge Sharing Tayloris3c & Direct Knowledge Sharing
Leiden University. The university to discover.
Agilists advocate the use of “lean and mean” documentation when a need is formulated (internally or externally) and documentation satisfies that particular need.
Paraphrasing a Groucho Marx’s aphorism – “Outside of a dog, a book is man’s best friend; inside of a dog, it’s too dark to read” – Ron Jeffries, one of the champions of eXtreme Programming, advises “Outside your extreme programming project, you will probably need documentation: by all means, write it. Inside your project, there is so much verbal communication that you may need very little else.” Jeffries concludes “Trust yourselves to know the difference” [15]. 2. Tayloristic Knowledge Sharing: Knowledge-as-objects
Tayloristic3 development approaches emphasize strong conformance to a plan through up-front requirements gathering and up-front systems design. In order to control change, knowledge of all possible requirements, design, development, and management issues is externalised to multitudes of documents (“codified”) to ensure all issues are first captured and then addressed.
The emphasis on using knowledge-as-objects (documentation in paper or electronic formats) for knowledge sharing is reinforced by practices such as “document what you do” and “do what has been documented” as defined in SEI-CMM [22]. Such practices encourage process groups in an organisation to press development teams to produce multitude of documents throughout a software project.
10% communication error ! (90%)5 = 59% info gets to developer
5% communication error ! (95%)5 = 77% info gets to developer
Figure 1. Knowledge Sharing: Tayloristic Way.
Labour division is often rigorously enforced and specializations dominate. People are deemed to be easily replaceable. Tayloristic methods result in long chains of knowledge transfer (as depicted in Figure 1).
Many intermediaries are involved and the original content mutates as it is passed through the conduits of analysts, architects, designers, project leaders etc. The more conduits there are in this chain, the more information is lost or distorted.
For example, let us consider a chain of six players: Customer " Analyst " Architect " Designer " Lead Developer " Developer. Assuming that 5% of communication error occurs at every knowledge transfer, only 77% of the original information gets correctly to the developer. In a similar scenario with 10% of communication error, the portion of the correct information transferred the developer is reduced to 59%. For longer chains, the amount of information is further reduced.
Similar observations are made by Keil and Carmel. In an exploratory study of 31 software development projects, they came to a conclusion that “less successful projects suffered not only from a low number of [customer-developer] links4 but from a low number of direct links”. Seventy two (72%) percent of less successful projects involved either zero or just one direct link between customer and developer [16].
Moreover, since people on one end of the chain (information producers) do not know what people on the other end (information consumers) really need, they tend to over-document. This results in even more documentation produced that has practically no value5. The more documentation is written in the first place – the more effort will be required to find appropriate information, maintain the documents and keep them up-to-date.
In a Tayloristic process, direct communication between the customer and the developer is discouraged. The communication chain fails to go both ways (depicted as dotted arrows in Figure 1), though selected feedback is sometimes provided.
3. Agile Knowledge Sharing: Knowledge-as-relationships
In contrast, agile methods are human-centric bodies of software development practices and guidelines that consider individuals and interactions as crucial factors of the project success. Essentially, all
4 Keil and Carmel define “customer-developer link” as both a
channel (i.e. a medium for communication) and a technique (i.e., a method of communication). From a practical standpoint, they chose not to separate these two dimensions because they found that the subjects of their study (managers) themselves do not distinguish between the two dimensions.
5 Unless each conduit adds specific value that is defined and recognized by the team members and/or the customer.
Knowledge Sharing: TaylorisDc Way
TaylorisDc Knowledge Sharing (Melnik and Maurer, 2009)
• Division of labor and long chains of transfer • 5% communica3on errors pro transfer
→ only 77% of informa3on reaches developer • Projects suffer from less direct links (Keil and Carmel,
1995)
Leiden University. The university to discover.
Knowledge Sharing: Direct Way
Agile Knowledge Sharing (Melnik and Maurer, 2009)
• Encourage con3nuous realignment of goals and customer feedback
• Knowledge sharing a highly social process
agile methods encourage continual realignment of development goals with the needs and expectations of the customer. They concentrate on significantly improving communications (among team members and with the customer) and promote continuous feedback. Knowledge formation and sharing is recognized as a highly social (rather than technical/mechanical/formal) process.
10% communication error ! 90% info gets to developer
5% communication error ! 95% info gets to developer
Figure 2. Knowledge Sharing: Agile Way.
People are no longer treated as “plug-compatible programming units”6. Cross-functional teams are used to facilitate better knowledge sharing. The knowledge transfer chains are shortened by direct communication and collaboration (see Figure 2). This ensures what we call “high-velocity knowledge sharing”. Drawing on the example from the previous section, a 10% communication loss will result in 90% of information transferred correctly to the developer (compared to 59%) and a 5% communication loss will result in 95% (compared to 77%). Thus, from a communication perspective, direct contact between customer and developer is preferable to indirect because it decreases filtering and distortion that may occur.
It is important for both customer and developer to have a common frame of reference – a common basis of understanding. If this common perspective does not exist, then “shared meaning must be established before mutual understanding can occur.” [9]
Unlike Tayloristic managers who trivialize the power of conversation, the agile teams embrace the power of it. Conversation is considered to be the major communication device. An impressive number of theories in software development community ([27], [7], [2]), human-computer interaction (e.g. [21]), management science ([8],[9]) and applied psychology ([10],[29]) speak to the issue of communication media use and, in particular, to the importance of face-to-face 6 A term coined by Kent Beck and used in [11], for example.
conversations. In view of that, practitioners of software development (Weinberg [27]) and agile communities (Cockburn [7], Ambler [2]) independently analyze project experiences, use informal7 curves and hierarchies of communication media effectiveness/richness (see Figure 3, for example) and unanimously contend that the most effective type is “person-to-person, face-to-face” [7].
Com
mun
icat
ion
Effe
ctiv
enes
s
Form of Communication
PaperAudiotape
Videotape2 peopleon email
2 peopleon phone
2 people atwhiteboard
Figure 3. Alistair Cockburn’s Modes of
Communication Curve (reproduced from [7])
In management science, Media Richness Theory ([8], [9]) suggests that direct face-to-face channels offer the prospect of richer communication because of the ability to transmit multiple cues (e.g. voice inflection, body language) and to “facilitate shared meaning” with rapid mutual feedback and personal focus, feelings and emotions infusing the conversation.
Furthermore, the easier it is to communicate, the faster change happens [5]. Via “high-touch” communication (vs. “high-tech” communication in Tayloristic teams) and high-velocity knowledge sharing, agile teams become effective and fast-moving – they manage to deliver the product sooner to the customer. Specifically, in extreme programming, this “high-touch”, “warm” interaction takes the form of user stories communicated by conversation, sketches on a whiteboard discussed by the team, code/system knowledge shared during pair programming sessions, and collective code ownership. In Scrum, daily scrums and post-sprint meetings ensure collaborative teamwork and knowledge sharing as the project progresses. Agile Modelling promotes the principle that “Everyone Can Learn from Everyone Else”. This principle defines a mindset that enables communication – “someone who believes they can learn something from the person(s) they are communicating with, is
7 These popular curves are based on project experiences of these practitioners and are not scientifically substantiated.
Leiden University. The university to discover.
Knowledge Sharing Exercise (Melnik and Maurer, 2009)
Knowledge Sharing Exercise (Melnik and Maurer, 2009)
• Simula3on of Tayloris3c knowledge sharing • Form small teams of 3-‐6 people • Goal: Reproduce a Drawing, Time: 20 mins
Roles • Analyst Describes requirements in prose on paper • Messenger Carries notes from developers and back • Developer Implement the specifica3on
Leiden University. The university to discover.
Knowledge Sharing Exercise (Melnik and Maurer, 2009)
Examples (Melnik and Maurer, 2009)
Industry Team 1: Original Industry Team 1: Product
(a)
Industry Team 2: Original Industry Team 2: Product
(b)
Industry Team 3: Original Industry Team 3: Product
(c)
Industry Team 4: Original Industry Team 4: Product
(d)
Figure 5. Original Drawings and Results Produced by Industry Teams ! Written documentation is not easy to produce Many participants struggled with specifying requirements using natural language. Their descriptions suffered from noise (information irrelevant to the problem), silence (omission of important aspects of the problem), and equivocality (several possible interpretations of the same phrase). Consider a sample communication log depicted in Figure 6. The original drawing and the product are shown in Figure 5c. The first batch of specifications written by analysts suffers from all three “sins”: noise (“Think Abstract”-“About What?”-“Never Mind”), silence (no indication of where the digit 8 starts; numerous clarifications are needed), and ambiguity (“ski-jump”; “East”). The written specification simply does not convey enough information for developers to perform their task. Another example of equivocality and misinterpretation
can be seen in the specification of team 5d (Figures 7 and 5d). Their indication of the “portrait orientation, approx 8! x 11 ratio” was interpreted by the developers as explicit indication of the dimensions of the drawing. This resulted in designating a small area of the given flipchart for drawing. As evident from additional three logs (Figures 7–9) included in the paper, requirements specifications written by other teams suffer from similar flaws12. Analyzing Figure 8, the phrase “looks like a tree” is clearly ambiguous. “What kind of tree?” developers ask. “Is it leafy or just branches?” There are numerous shapes of trees and the above specification only confuses them. Analysts struggle with finding the right words. They discard the 12 Reader is invited to attempt drawing the figures based on the
specifications provided. Compare your results with the original drawings.
SAIT Team 1: Original SAIT Team 1: Product
(a)
SAIT Team 2: Original SAIT Team 2: Product
(b)
SAIT Team 3: Original SAIT Team 3: Product
(c)
UofC Team 1: Original UofC Team 1: Product
(d)
UofC Team 2: Original UofC Team 2: Product
(e)
UofC Grad Team 3: Original UofC Grad Team 3: Product
(f)
Figure 4. Selected Original Drawings and Results Produced by Student Teams.
Industry Team 1: Original Industry Team 1: Product
(a)
Industry Team 2: Original Industry Team 2: Product
(b)
Industry Team 3: Original Industry Team 3: Product
(c)
Industry Team 4: Original Industry Team 4: Product
(d)
Figure 5. Original Drawings and Results Produced by Industry Teams ! Written documentation is not easy to produce Many participants struggled with specifying requirements using natural language. Their descriptions suffered from noise (information irrelevant to the problem), silence (omission of important aspects of the problem), and equivocality (several possible interpretations of the same phrase). Consider a sample communication log depicted in Figure 6. The original drawing and the product are shown in Figure 5c. The first batch of specifications written by analysts suffers from all three “sins”: noise (“Think Abstract”-“About What?”-“Never Mind”), silence (no indication of where the digit 8 starts; numerous clarifications are needed), and ambiguity (“ski-jump”; “East”). The written specification simply does not convey enough information for developers to perform their task. Another example of equivocality and misinterpretation
can be seen in the specification of team 5d (Figures 7 and 5d). Their indication of the “portrait orientation, approx 8! x 11 ratio” was interpreted by the developers as explicit indication of the dimensions of the drawing. This resulted in designating a small area of the given flipchart for drawing. As evident from additional three logs (Figures 7–9) included in the paper, requirements specifications written by other teams suffer from similar flaws12. Analyzing Figure 8, the phrase “looks like a tree” is clearly ambiguous. “What kind of tree?” developers ask. “Is it leafy or just branches?” There are numerous shapes of trees and the above specification only confuses them. Analysts struggle with finding the right words. They discard the 12 Reader is invited to attempt drawing the figures based on the
specifications provided. Compare your results with the original drawings.
Leiden University. The university to discover.
Part 3 – DocumentaDon Requirements Specifica3on Templates
Leiden University. The university to discover.
So[ware Requirement SpecificaDon
SRS Templates
• Help to structure requirements
Standards
• IEEE 830-‐1998 • IEEE 1362-‐1998 • VOLERE Template
Leiden University. The university to discover.
Requirement SpecificaDon Templates
• Introduc3on • General descrip3on (overview & scope) • Specific requirements
Leiden University. The university to discover.
Requirement SpecificaDon Templates IEEE Recommended PracDce for So[ware Design DescripDons (IEEE 830, 1998)
1. Introduction 1.1 Purpose of the document 1.2 Scope of the product 1.3 Definitions, acronyms and abbreviations 1.4 References 2. General description 2.1 Product perspective 2.2 Product functions 2.3 User characteristics 2.4 General constrains 2.5 Assumptions and dependencies 3. Specific requirements 3.1 Functional requirements 3.2 External interface requirements 3.3 Performance requirements 3.4 Design constraints 3.5 Software quality attributes Appendices Index
Leiden University. The university to discover.
FuncDonal Requirements
Most common requirement form • What system must do according to project goal • Ac3ons the systems takes:
Input → Behavior → Output • “System must do <requirement>”
Measurable: • Criterion in terms of predicted outcomes
Leiden University. The university to discover.
Non-‐FuncDonal Requirements
SomeDmes also called Quality Requirements • System performance, throughput, 3ming • Look and feel, usability, security, reliability • “System must be <>” Measurable: • Throughput, 3ming and stress tests • Usability tes3ng with users
Leiden University. The university to discover.
Requirements ≠ SoluDons
SoluDons 1. Users shall be able to pay train fares via
OV-‐chipkaart 2. The system shall be password protected
Requirements 1. The system shall allow payment of mul3ple
transporta3on systems 2. The system shall provide access only to
authorized users
Leiden University. The university to discover.
Volere Template (Volere, 2010) Requirement #:X Requirement Type: _ Event/use case: _
Description: Natural language statement in stakeholder words, describing the intent of the requirement
Rationale: Reason behind the requirement. Help understanding the context.
Originator: Person or stakeholder group
Fit Criterion: Acceptance criteria defined in a quantified manner. To be used for acceptance testing.
Customer Satisfaction: 1-5 Customer Dissatisfaction: 1-5
Dependencies: other Req.
Supporting Materials: Link to further references
History: Creation dates and authors for traceability.
Conflicts: ___
Leiden University. The university to discover.
Templates: In-‐class assignment
TranslaDon of requirements • Form groups of 2-‐3 people • Groups receive VOLERE and SRS Examples • Groups A: Translate Volere -‐> SRS • Groups B: Translate SRS -‐> VOLERE • 10mins, then groups switch ar3facts
EvaluaDon • What did you learn/experience?
Leiden University. The university to discover.
Assignment: Req. SpecificaDon Propose requirements and a business process for a fic3onal OV-‐chipkaart without logging out. You can use other technologies (e.g. RFID) Deliverables Your requirements in a SRS (IEEE Std-‐830, as PDF), include
• 1 Ac3vity diagram • 2 VOLERE sheets • Provide sufficient textual descrip3ons
Hand in via email Subject: RE assignment – Assignment 4 – Specifica3on Naming conven3on for the file: stnumber_lastname.pdf. Use PDF. One solu3on per person.
• Send to: stepna@liacs.nl • Deadline: April 19, 2012
Leiden University. The university to discover.
Bibliography • Fowler, M. (2004), UML dis3lled: a brief guide to the standard object modeling language (3 ed.), Addison-‐
Wesley, p. 131, ISBN 9780321193681
• Hammer, M. & Champy, J. (1994). Reengineering the corpora3on: A manifesto for business revolu3on. New York: Harper.
• IEEE, Sosware Engineering Commitee (1998) IEEE Recommended Prac3ce for Sosware Design Descrip3ons. ANSI/IEEE Std 830, October 1998
• Keil, M., Carmel, E. Customer-‐Developer Links in Sosware Development. Communica3ons of the ACM, 38 (5): 33–44, 1995.
• van Lamsweerde, A. (2009) Requirements Engineering: From System Goals to UML Models to Sosware Specifica3ons. Wiley, March 2009.
• Melnik, G. and Maurer, F. “Direct verbal communica3on as a catalyst of agile knowledge sharing,” in Proceedings of the Agile Development Conference. Washington, DC, USA: IEEE Computer Society, 2004, pp. 21–31.
• Taylor, F. Principles of Scien3fic Management. Norton, New York, NY, 1967.
• Volere (2010) Volere Requirements Specifica3on Template. Edi3on 15 — 2010. Retrieved 2012-‐04-‐11. htp://www.volere.co.uk/template.htm