Requirements Analysis Techniques

Slides:



Advertisements
Similar presentations
Prescriptive Process models
Advertisements

2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.
SWEN 5130 Requirements EngineeringSlide 1 Software Prototyping u Animating and demonstrating system requirements.
Slide 10.1 CHAPTER 10 REQUIREMENTS PHASE. Slide 10.2 Overview l Requirements elicitation l Requirements analysis l Rapid prototyping l Human factors l.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
Slide 10.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach.
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
Chapter 2 The process Process, Methods, and Tools
UHD-CMS-Chp91 Requirements Phase Chapter 9. UHD-CMS-Chp92 Requirements Phase What must the new product be able to do? What the client needs?
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements.
Software Engineering Management Lecture 1 The Software Process.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
소프트웨어공학 강좌 1 Chap 7. Software Prototyping - Rapid software development to validate requirements -
CS540 Software Design Lecture 5 1 Lecture 5: High Level Requirements Specification Anita S. Malik Adapted from Schach (2004) Chapter.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Ch 10: Requirements CSCI Requirements Workflow 1.Acquire basic understanding of the application domain (banking, automobile manufacturing) 2.Identify.
Software Prototyping Rapid software development to validate requirements.
Software Engineering Jon Walker. What is Software Engineering? Why do we call it Software Engineering? Why not just call it programming or software development?
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
Slide 10.1 Copyright © 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2010 Stephen R. Schach
Prototyping Creation of concrete but partial implementations of a system design to explore usability issues.
Software Design and Development Development Methodoligies Computing Science.
Rekayasa Perangkat Lunak Part-6
SDLC and Related Methodologies
Software Development - Methodologies
Chapter 15 Finalizing Design Specifications
Prototyping in the software process
Software Engineering Management
Software Prototyping.
Lecture 3 Prescriptive Process Models
Building Information Systems
Fundamentals of Information Systems, Sixth Edition
Prototyping Lecture # 08.
Systems Analysis & Design N106
Software Life Cycle “What happens in the ‘life’ of software”
Iterative design and prototyping
Software Myths Software is easy to change
Software Process Models
Prototyping.
Object oriented system development life cycle
Life Cycle Models PPT By :Dr. R. Mall.
Software Life Cycle Models
HCI in the software process
Chapter 1 The Systems Development Environment
Software Prototyping Animating and demonstrating system requirements.
Introduction to Software Engineering
Design, prototyping and construction
Methodologies For Systems Analysis.
Methodologies For Systems Analysis.
Software life cycle models
Software Process Models
HCI in the software process
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
Introduction to Systems Analysis and Design Stefano Moshi Memorial University College System Analysis & Design BIT
CS310 Software Engineering Lecturer Dr.Doaa Sami
GRAPHICAL USER INTERFACE GITAM GADTAULA. OVERVIEW What is Human Computer Interface (User Interface) principles of user interface design What makes a good.
SDLC and Related Methodologies
HCI in the software process
COMP444 Human Computer Interaction Usability Engineering
Software Development Life Cycle Models
Human Computer Interaction Lecture 14 HCI in Software Process
Rapid software development
Principles of HCI Design
From Use Cases to Implementation
Design, prototyping and construction
Presentation transcript:

Requirements Analysis Techniques 12 June, 2000 Requirements Analysis Techniques Structured interviews: ask close-ended questions How fast a response time is required? Unstructured interviews: ask open-ended questions Why the current product is unsatisfactory? Questionnaire Examine the various “forms” used by the client Examine documents: operation procedures, job descriptions Set up video cameras in the workplace to record exactly what is being done Scenarios: a possible way a user can utilize the target product to accomplish some objective

Scenarios (use cases) Scenario representation Advantages of scenarios A list of (user) actions Storyboard (paper scenario) A series of sheets of paper each depicting the relevant screens and the user’s response Advantages of scenarios Demonstrate the behavior of the product in a way that is comprehensible to the user The client and the users play an active role throughout the requirements analysis process Play an important role in object-oriented analysis

Rapid Prototyping 1 A rapid prototype is hastily built software that exhibits the key functionality of the target product Client and intended end-users Describe how the rapid prototype satisfies their needs Identify areas that need improvement Developers Watch and take notes Revise the prototype

Rapid Prototyping 2 Important aspects of rapid prototyping Enable the client and the developers to agree as quickly as possible on what the product is to do The rapid prototype must be built for change Can a given language be used to produce a rapid prototype Can the rapid prototype be changed quickly? Fourth-generation languages (4GL) and interpreted languages (Recommendation from some projects carried out by IBM indicates it is very important to build a rapid prototype as earlier as possible in the object-oriented life cycle.) Rapid prototyping is particularly effective when developing the user interface to a product

Human Factors Human factors Human-Computer interface (HCI) User friendliness: the ease with which human beings can communicate with the software product easy to learn no confusion in using the product comfortable in using the product Menu-driven; Graphics (windows, icons, pull-down menus) Design different sets of HCI for different users with different skill levels and computer knowledge Provide an uniform HCI appearance across a product or groups of products

Rapid Prototyping as a Specification Technique Figure 9.2 Throwaway prototyping: The rapid prototype is used solely as a means to determine the client’s needs accurately and is discarded after the client signs off on the specifications Strengths Speed: no time is wasted drawing up written specifications Accuracy: ambiguities, omissions, and contradictions cannot arise (better rephrased as “less likely to arise”) All that needs to be done is to state the product will do what the rapid prototype does and to list any additional features that the product must support Drawbacks It is unlikely that a rapid prototype will stand as a legal statement of a contract between developer and client Potential problems with maintenance (no specifications)

Reusing The Rapid Prototype 1 Evolutionary prototyping: develop and refine the rapid prototype until it becomes the product Figure 9.3 Strength: Fast development Weaknesses Changes made to the product are expensive (similar to the build-and-fix model). Maintenance (perform on the source code) is difficult without proper specifications and design documents Performance issues are not considered up front (in the case of designing real-time systems) One way to avoid reusing the rapid prototype is to use different languages; For example, use hypertext for prototyping and C++ for production development

Reusing The Rapid Prototype 1 Ok to reuse portion of the rapid prototype (computer-generated) Component-based software development (reuse) Pass the quality assurance tests as other software component Components that are of sufficient high quality to pass design and code inspection are not usually found in a rapid prototype design documents are not part of classical rapid prototype

Other Uses of Rapid Prototyping Arriving at consensus where there is disagreement as to the client’s requirements

Management Implications of the Rapid Prototyping Model Rapid prototyping lead to client’s misconception Changes to the product can be implemented as rapidly as were changes to the rapid prototype It seems that most of the functionality is implemented in the prototype, why do you need so long to finish it? Prototyping v.s. specifying [Boehm, Gray, and Seewaldt, 1984] Performance is roughly equivalent The P versions contained less code and required less effort Therefore, the P versions have fewer functionality and are less reliable The P versions are easy to use and easy to learn Academic study; maintenance is not studied Boehm found that P version products are harder to integrate than specified. (Implication)

Management Implications of the Rapid Prototyping Model Two aspects of rapid prototyping must be taken into account by any software manager: it is short sighted to turn a rapid prototype into the final product Under some circumstances, Rapid Prototype can take the place of specification, but never replace design phase. (why?) Managing the rapid prototyping model requires a major change in outlook for a manager who is accustomed to managing only the waterfall model The increased interaction between the client and the developers

Experiences with Rapid Prototyping 1 Rapid prototyping is a viable technique that can lead to successful software development (if properly used) Reported successful case studies [Gordon and Bieman, 1995] Improved ease of use (17 case studies; none of the other 22 case studies reported hard to use. Totally 39 cases has been analyzed) Active user participation early in the software process Meets client needs Choice of language is not of critical important Final product size: four reported a decreased product size; one reported an increased product size Product features: many reported a decreased number of features; two reported an increased number of features Retaining the P part is important for large scale products, 7 among 39 are large products and all of them recommended retaining all or part of the rapid prototype. Further research needs to be done in this aspect.

Experiences with Rapid Prototyping 2 Risks (evolutionary prototyping) Badly designed product Hard to maintain Poor performance Risks grow in proportion to the size of the product