Requirements Analysis

Size: px
Start display at page:

Download "Requirements Analysis"

Transcription

1 Requirements Analysis Professional Computing CITS3200 Sujatha Bulandran The University of Western Australia 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 1.0 Introduction In the early stage of software development, capturing, structuring and representing user requirements the process of gathering and defining user s needs stakeholders speaks different languages Business and Technical groups possibilities for miscommunication 1.0 Requirements Engineering (RE)? Requirements engineering is an activity that involves capturing, structuring and accurately representing the client s requirements in a manner that can be effectively implemented in a system that will conform to the client s specifications 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-based system I.Sommerville [2] Requirement Engineering aims at defining the requirements of the system under construction which includes two main activities which are requirement elicitation and analysis Bernd Bruegge and Allen H. Dutoit [3]

3 1.0 Why Requirements Engineering (RE) is important? In software development projects, the Requirements Engineering Process (REP) can influence the development: cost time effort quality 1.0 Major cause of errors in Software development Leffingwell and Widrig [4] had stated that one-third of the total defects delivered in software projects are derived from requirements errors by referring to several case studies. Requirements processes considered as the source of most (50% or more) critical quality problems in software development [5]. The top five causes of poor software cost estimation are related to issues with requirements, mainly involving frequent requirements changes, missing requirements, insufficient user communication, poor specifications, and insufficient analysis of requirements [6]. Embedded real-time software also has the similar error patterns as other types of software. The major source of errors found (36%) are related to requirement issues [7]

4 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] 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 2.0 Requirements Engineering Models In the Context of RE Process (REP) System acquisition Requirements engineering System design Figure 2: Context of Requirements Engineering Process [2] Waterfall Model Requirements Elicitation Requirements Analysis and Negotiation Requirements Specification and Validation Requirements Management and Documentations Figure 3: The Waterfall Model for Requirements Engineering Process [3]

6 Iterative Model Figure 4: The Iterative Model for Requirements Engineering Process [2] Spiral Model Decision point: Accept document or re-enter spiral Informal statement of requirements Requirements elicitation Requirements analysis and negotiation Requirements document and validati on report S TART Agreed requirements Requirements validation Requirements documentation The REP iterates in a spiral until the decision point Draft requirements document Figure 5: The Spiral Model for Requirements Engineering Process [2]

7 Agile Requirements Engineering Figure 6: The Agile Approach for Requirements Engineering Process [9] 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 3.0 RE Activities 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 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 4.0 Requirements Evolution Figure 7: Requirements Evolution [10] Managing Requirements Changes Requirements Elicitation Draft requirements documents Informal statements of requirements Repository Requirements documents and Validation Reports Requirements Management and Documentations Draft requirements documents Requirements Analysis and Negotiation Requirements Specification and Validation Draft requirements documents Agreed requirements Figure 8: Requirement Engineering Process Centered at RMD

10 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.0 Required Skills for RE [12] 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)

11 5.0 Required Skills for RE [12] scholar (eg underlying governing principles) bookkeeper (eg organizing memory) researcher negotiator tester 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 6.0 Requirements Engineering Problems 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 (cnt.) 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

13 Conclusions Reduces development cost Reduces development time POSSIBLE OUTCOMES FROM EFFECTIVE REQUIREMENTS ENGINEERING PROCESS Reduces the rate of defects in requirements documents Increases the quality of software development process REFERENCES [1]Sawyer, P. and Kotonya, G. SWEBOK: Software Requirements Engineering Knowledge Area Description. [2] Sommerville I (2001): Sotfware Engineering, 6th ed, Addison-Wesley Publishing Company Inc. [3] Bruegge B., Dutoit A.H (2000): Object-Oriented Software Engineering Conquering Complex and 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 through Experience-Driven Test Efforts, Tech. Project D-259, Delta, Horsholm, Denmark

14 REFERENCES (cont.) [8] Grady, R B, An Economic Release Decision Model: Insights into Software Project Management. In Proceedings of the Applications of Software Measurement Conference, Orange Park, FL: Software Quality Engineering, [9] Scott W. Ambler, Agile Modeling: Effective Practices for Extreme Programming and the Unified Process [10] Bach, J (1999) Reframing Requirements Analysis, IEEE Computer Society, pp [11] Armin Eberlein and Julio Cesar Sampaio do Prado Leite, Agile Requirements Definition: A View from Requirements Engineering [12] Armarego, J, Educating Res effective learning for professional practice, Symposium on Software Requirements Engineering REFERENCES (cont.) [13] Ogren, Ingmar, Requirements Management as a Matter of Communication, CROSSTALK, April [14] Lawrence Pfleeger S (2006): Software Engineering, Theory and Practice, 3rd Edition, Prentice Hall. [15] Pressman P, S (2001): Software Engineering, A Practioner's Approach, Fifth Edition, McGraw-Hill

15 Thank you for your Attention! Any Questions?