15
1 Bulandran, S. -1- 13 th Aug 2008 Professional Computing (CITS3200) Requirements Analysis Sujatha Bulandran The University of Western Australia Professional Computing CITS3200 Bulandran, S. -2- 13 th Aug 2008 Professional Computing (CITS3200) Overview 1.0 Requirements Analysis / Requirements Engineering (RE) - Definition? - Why it is important? 2.0 Requirements Engineering Models 3.0 Activities in Requirements Engineering 4.0 Requirements Evolution 5.0 The desirable Skills for Requirements Engineering 6.0 Requirements Engineering Problems References

Professional Computing (CITS3200) Requirements Analysisteaching.csse.uwa.edu.au/units/CITS3200/lectures/Bulandran_08.pdf · Professional Computing (CITS3200) Requirements Analysis

Embed Size (px)

Citation preview

1

Bulandran, S.-1-13th Aug 2008

Professional Computing (CITS3200)

Requirements Analysis

Sujatha BulandranThe University of Western Australia

Professional Computing

CITS3200

Bulandran, S.-2-13th Aug 2008

Professional Computing (CITS3200)

Overview

1.0 Requirements Analysis / Requirements Engineering (RE) - Definition? - Why it is important?

2.0 Requirements Engineering Models

3.0 Activities in Requirements Engineering

4.0 Requirements Evolution

5.0 The desirable Skills for Requirements Engineering

6.0 Requirements Engineering Problems

References

2

Bulandran, S.-3-13th Aug 2008

Professional Computing (CITS3200)

1.0 Introduction

In the early stage of software development,

capturing, structuring and representing user requirements

stakeholders speaks different languages – Business andTechnical groups

possibilities for miscommunication

the process of gathering and defining user’s needs

Bulandran, S.-4-13th Aug 2008

Professional Computing (CITS3200)

1.0 Requirements Engineering (RE)?

”Requirements engineering is an activity that involves capturing, structuringand accurately representing the client’s requirements in a manner that can beeffectively implemented in a system that will conform to the client’sspecifications”

Sawyer, P. and Kotonya [1]

“Requirement Engineering covers all of the activities involved in discovering,documenting and maintaining a set of requirements for a computer-basedsystem”

I.Sommerville [2]

“Requirement Engineering aims at defining the requirements of the systemunder construction which includes two main activities which are requirementelicitation and analysis”

Bernd Bruegge and Allen H. Dutoit [3]

3

Bulandran, S.-5-13th Aug 2008

Professional Computing (CITS3200)

1.0 Why Requirements Engineering(RE) is important?

In software development projects, the RequirementsEngineering Process (REP) can influence thedevelopment:

cost

time

effort

quality

Bulandran, S.-6-13th Aug 2008

Professional Computing (CITS3200)

1.0 Major cause of errors in Softwaredevelopment

Leffingwell and Widrig [4] had stated that one-third of the totaldefects delivered in software projects are derived from requirementserrors by referring to several case studies.

Requirements processes considered as the source of most (50% ormore) critical quality problems in software development [5].

The top five causes of poor software cost estimation are related toissues with requirements, mainly involving frequent requirementschanges, missing requirements, insufficient user communication,poor specifications, and insufficient analysis of requirements [6].

Embedded real-time software also has the similar error patterns asother types of software. The major source of errors found (36%) arerelated to requirement issues [7].

4

Bulandran, S.-7-13th Aug 2008

Professional Computing (CITS3200)

1.0 Correcting Requirements Defects

The cost for correcting requirements defects in later part of the development phase is more expensive compared to

Requirements Engineering

Figure 1: Relative cost to correct a requirement defect depending on when it is discovered [8]

Bulandran, S.-8-13th Aug 2008

Professional Computing (CITS3200)

Overview

1.0 Requirements Analysis / Requirements Engineering (RE) - Definition? - Why it is important?

2.0 Requirements Engineering Models

3.0 Activities in Requirements Engineering

4.0 Requirements Evolution

5.0 The desirable Skills for Requirements Engineering

6.0 Requirements Engineering Problems

References

5

Bulandran, S.-9-13th Aug 2008

Professional Computing (CITS3200)

2.0 Requirements Engineering ModelsIn the Context of RE Process (REP)

Requirements engineering

System des ign

System acquis ition

Figure 2: Context of Requirements Engineering Process [2]

Bulandran, S.-10-13th Aug 2008

Professional Computing (CITS3200)

Waterfall Model

RequirementsElicitation

Requirements Analysisand Negotiation

Requirements Specificationand Validation

Requirements Managementand Documentations

Figure 3: The Waterfall Model for Requirements Engineering Process [3]

6

Bulandran, S.-11-13th Aug 2008

Professional Computing (CITS3200)

Iterative Model

Figure 4: The Iterative Model for Requirements Engineering Process [2]

Bulandran, S.-12-13th Aug 2008

Professional Computing (CITS3200)

Spiral Model

Requirements elici tation Requirements analys is andnegotiation

Requirements documentationRequirements validation

Informal statement ofrequirements

Agreedrequirements

Draft requirementsdocument

Requirementsdocument and

validati onreport

Decision point:Accept documentor re-enter spiral

START

The REP iterates in a spiral until the decision point

Figure 5: The Spiral Model for Requirements Engineering Process [2]

7

Bulandran, S.-13-13th Aug 2008

Professional Computing (CITS3200)

Agile Requirements Engineering

Figure 6: The Agile Approach for Requirements Engineering Process [9]

Bulandran, S.-14-13th Aug 2008

Professional Computing (CITS3200)

Overview

1.0 Requirements Analysis / Requirements Engineering (RE) - Definition? - Why it is important?

2.0 Requirements Engineering Models

3.0 Activities in Requirements Engineering

4.0 Requirements Evolution

5.0 The desirable Skills for Requirements Engineering

6.0 Requirements Engineering Problems

References

8

Bulandran, S.-15-13th Aug 2008

Professional Computing (CITS3200)

Requirements Elicitation invokes the task to find out the requirements

Requirements Analysis and Negotiation represents the problem domain which will be built

Requirements Specification and Validation define the right system essence of agreement between the users and developers

Requirements Management and Documentation ensure the software continues to meet the expectations of the users

3.0 RE Activities

Bulandran, S.-16-13th Aug 2008

Professional Computing (CITS3200)

Overview

1.0 Requirements Analysis / Requirements Engineering (RE) - Definition? - Why it is important?

2.0 Requirements Engineering Models

3.0 Activities in Requirements Engineering

4.0 Requirements Evolution

5.0 The desirable Skills for Requirements Engineering

6.0 Requirements Engineering Problems

References

9

Bulandran, S.-17-13th Aug 2008

Professional Computing (CITS3200)

4.0 Requirements Evolution

Figure 7: Requirements Evolution [10]

Bulandran, S.-18-13th Aug 2008

Professional Computing (CITS3200)

Managing Requirements Changes

Requirements Elicitation

RequirementsAnalysis andNegotiation

Requirements Specificationand Validation

RequirementsManagement andDocumentations

Informal statements ofrequirements

Agreedrequirements

Requirementsdocuments andValidationReports

Draft requirementsdocuments

Draft requirementsdocuments

Draftrequirementsdocuments

Repository

Figure 8: Requirement Engineering Process Centered at RMD

10

Bulandran, S.-19-13th Aug 2008

Professional Computing (CITS3200)

Overview

1.0 Requirements Analysis / Requirements Engineering (RE) - Definition? - Why it is important?

2.0 Requirements Engineering Models

3.0 Activities in Requirements Engineering

4.0 Requirements Evolution

5.0 The desirable Skills for Requirements Engineering

6.0 Requirements Engineering Problems

References

Bulandran, S.-20-13th Aug 2008

Professional Computing (CITS3200)

• mathematician (eg argument by elimination)

• historian (eg use of analogies)

• epistemologist (eg insight into what knowledge required by task)

• psychologist (eg appreciation of cognitive load)

• manager (eg selecting appropriate skills)

• learner (eg appropriateness of knowledge)

5.0 Required Skills for RE [12]

11

Bulandran, S.-21-13th Aug 2008

Professional Computing (CITS3200)

• scholar (eg underlying governing principles)

• bookkeeper (eg organizing memory)

• researcher

• negotiator

• tester

5.0 Required Skills for RE [12]

Bulandran, S.-22-13th Aug 2008

Professional Computing (CITS3200)

Overview

1.0 Requirements Analysis / Requirements Engineering (RE) - Definition? - Why it is important?

2.0 Requirements Engineering Models

3.0 Activities in Requirements Engineering

4.0 Requirements Evolution

5.0 The desirable Skills for Requirements Engineering

6.0 Requirements Engineering Problems

References

12

Bulandran, S.-23-13th Aug 2008

Professional Computing (CITS3200)

• Customers don't (really) know what they want

• Requirements change during the course of the project

• Danger of false assumptions during requirements gathering activities

• Customers have unreasonable timelines

• Communication gaps exist between customers, engineers and project managers

6.0 Requirements Engineering Problems

Bulandran, S.-24-13th Aug 2008

Professional Computing (CITS3200)

• the development team doesn't understand the politics of the customer's organization.

• are found in organizational contexts, with associated conflicts,expectations and demands of the proposed system

• are dynamic –they change while being solved

• solutions require interdisciplinary knowledge and skills

• the knowledge base of the analyst is constantly evolving

6.0 Requirements Engineering Problems (cnt.)

13

Bulandran, S.-25-13th Aug 2008

Professional Computing (CITS3200)

Conclusions

Reduces development cost

POSSIBLE OUTCOMESFROM EFFECTIVEREQUIREMENTSENGINEERINGPROCESS

Increases the quality ofsoftware development process

Reducesdevelopmenttime

Reduces the rate ofdefects in requirementsdocuments

Bulandran, S.-26-13th Aug 2008

Professional Computing (CITS3200)

REFERENCES

[1]Sawyer, P. and Kotonya, G. SWEBOK: Software Requirements EngineeringKnowledge Area Description.http://www.swebok.org

[2] Sommerville I (2001): Sotfware Engineering, 6th ed, Addison-Wesley Publishing CompanyInc.

[3] Bruegge B., Dutoit A.H (2000): Object-Oriented Software Engineering Conquering Complexand Changing Systems, Prentice Hall.

[4] Leffingwell, D and Widrig, D (1999) Managing Software Requirements: A Unified Approach,Addison-Wesley, pp5-13.

[5] Weinberg, G M (1971) The Psychology of Computer Programming, Van Nostrand Reinhold.

[6] Davis, A M (1995) 201 Principles of Software Development, McGraw-Hill.

[7] Vinter, O, Poulsen, P M, Thomsen, J M, Nissen, K (1996) “The Prevention of Errors throughExperience-Driven Test Efforts”, Tech. Project D-259, Delta, Horsholm, Denmark.

14

Bulandran, S.-27-13th Aug 2008

Professional Computing (CITS3200)

REFERENCES (cont.)

[8] Grady, R B, “An Economic Release Decision Model: Insights into Software ProjectManagement.” In Proceedings of the Applications of Software Measurement Conference, 227–239. Orange Park, FL: Software Quality Engineering, 1999.

[9] Scott W. Ambler, 2001-2006. Agile Modeling: Effective Practices for Extreme Programmingand the Unified Processhttp://www.ambysoft.com/books/agileModelling.html

[10] Bach, J (1999) Reframing Requirements Analysis, IEEE Computer Society, pp 120 – 122

[11] Armin Eberlein and Julio Cesar Sampaio do Prado Leite, ‘Agile Requirements Definition: AView from Requirements Engineering’http://citeseer.ist.psu.edu/cache/papers/cs/26480

[12] Armarego, J, “Educating Res effective learning for professional practice”, Symposium onSoftware Requirements Engineering 2008.

Bulandran, S.-28-13th Aug 2008

Professional Computing (CITS3200)

REFERENCES (cont.)

[13] Ogren, Ingmar, “Requirements Management as a Matter of Communication”, CROSSTALK,April 2000http:/www.stsc.hill.af.mil/crosstalk/2000/04/ogren.html

[14] Lawrence Pfleeger S (2006): Software Engineering, Theory andPractice, 3rd Edition, Prentice Hall.

[15] Pressman P, S (2001): Software Engineering, A Practioner's Approach,Fifth Edition, McGraw-Hill.

15

Bulandran, S.-29-13th Aug 2008

Professional Computing (CITS3200)

Thank you for your Attention!

Any Questions?