28
Leiden University. The university to discover. Christoph Johann Stettina ([email protected]) Requirements Engineering Werkcollege Spring 2012 Session 4: SpecificaDon & DocumentaDon

Requirements Engineering - Werkcollege 2012: 04-Documentation

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Requirements Engineering - Werkcollege 2012: 04-Documentation

                           Leiden  University.  The  university  to  discover.  

Christoph Johann Stettina ([email protected])

Requirements  Engineering    Werkcollege  Spring  2012    Session  4:  SpecificaDon  &  DocumentaDon  

Page 2: Requirements Engineering - Werkcollege 2012: 04-Documentation

                         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  

Page 3: Requirements Engineering - Werkcollege 2012: 04-Documentation

                         Leiden  University.  The  university  to  discover.  

   

Part  1  –  SpecificaDon  Business  Process  Modeling

Page 4: Requirements Engineering - Werkcollege 2012: 04-Documentation

                         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.  

Page 5: Requirements Engineering - Werkcollege 2012: 04-Documentation

                         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  

Page 6: Requirements Engineering - Werkcollege 2012: 04-Documentation

                         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)  

Page 7: Requirements Engineering - Werkcollege 2012: 04-Documentation

                         Leiden  University.  The  university  to  discover.  

Examples:  BPM  

Supply  fulfillment,  Informal  &  Formal    

Page 8: Requirements Engineering - Werkcollege 2012: 04-Documentation

                         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  

Page 9: Requirements Engineering - Werkcollege 2012: 04-Documentation

                         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    

Page 10: Requirements Engineering - Werkcollege 2012: 04-Documentation

                         Leiden  University.  The  university  to  discover.  

CreaDng  an  AcDvity  Diagram  

Another  Example  

Page 11: Requirements Engineering - Werkcollege 2012: 04-Documentation

                         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  

Page 12: Requirements Engineering - Werkcollege 2012: 04-Documentation

                         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      

Page 13: Requirements Engineering - Werkcollege 2012: 04-Documentation

                         Leiden  University.  The  university  to  discover.  

   

Part  2  –  Knowledge  Sharing  Tayloris3c  &  Direct  Knowledge  Sharing

Page 14: Requirements Engineering - Werkcollege 2012: 04-Documentation

                         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)  

 

Page 15: Requirements Engineering - Werkcollege 2012: 04-Documentation

                         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.

Page 16: Requirements Engineering - Werkcollege 2012: 04-Documentation

                         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  

Page 17: Requirements Engineering - Werkcollege 2012: 04-Documentation

                         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.

Page 18: Requirements Engineering - Werkcollege 2012: 04-Documentation

                         Leiden  University.  The  university  to  discover.  

   

Part  3  –  DocumentaDon  Requirements  Specifica3on  Templates  

Page 19: Requirements Engineering - Werkcollege 2012: 04-Documentation

                         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  

Page 20: Requirements Engineering - Werkcollege 2012: 04-Documentation

                         Leiden  University.  The  university  to  discover.  

Requirement  SpecificaDon  Templates  

•  Introduc3on  •  General  descrip3on  (overview  &  scope)  •  Specific  requirements  

Page 21: Requirements Engineering - Werkcollege 2012: 04-Documentation

                         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

Page 22: Requirements Engineering - Werkcollege 2012: 04-Documentation

                         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  

Page 23: Requirements Engineering - Werkcollege 2012: 04-Documentation

                         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  

Page 24: Requirements Engineering - Werkcollege 2012: 04-Documentation

                         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  

Page 25: Requirements Engineering - Werkcollege 2012: 04-Documentation

                         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: ___

Page 26: Requirements Engineering - Werkcollege 2012: 04-Documentation

                         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?    

Page 27: Requirements Engineering - Werkcollege 2012: 04-Documentation

                         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:  [email protected]    •  Deadline:  April  19,  2012      

Page 28: Requirements Engineering - Werkcollege 2012: 04-Documentation

                         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