Requirements analysis Speaker: Chuang-Hung Shih Date: 2009.3.24.

Slides:



Advertisements
Similar presentations
Requirements Specification and Management
Advertisements

1 Requirements and the Software Lifecycle The traditional software process models Waterfall model Spiral model The iterative approach Chapter 3.
Requirements Analysis CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology January 7, 2003.
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
Lecture 13 Revision IMS Systems Analysis and Design.
SYSTEMS DEVELOPMENT Phases, Tools, and Techniques
SE 555 Software Requirements & Specification Requirements Validation.
Iterative development and The Unified process
© 2005 course technology1 1 1 University Of Palestine UML for The IT Business Analyst A practical guide to Object Oriented Requirement Gathering Hoard.
9 1 Chapter 9 Database Design Database Systems: Design, Implementation, and Management, Seventh Edition, Rob and Coronel.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
CHAPTER 19 Building Software.
The Software Development Life Cycle: An Overview
Chapter 4 Requirements Engineering
S/W Project Management
RUP Requirements RUP Artifacts and Deliverables
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Advanced Topics in Requirement Engineering. Requirements Elicitation Elicit means to gather, acquire, extract, and obtain, etc. Requirements elicitation.
Chapter 1: The Object-Oriented Systems Development Environment Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich,
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
1 REQUIREMENT ENGINEERING Chapter 7. 2 REQUIREMENT ENGINEERING Definition Establishing what the customer requires from a software system. OR It helps.
Part3 Database Analysis and Design Techniques Chapter 04- Overview of Database Planning, Design and Administration Database Systems Lu Wei College of Software.
Module CC3002 Post Implementation Issues Lecture for Week 1 AY 2013 Spring.
Demystifying the Business Analysis Body of Knowledge Central Iowa IIBA Chapter December 7, 2005.
Business Analysis and Essential Competencies
Requirements Engineering How do we keep straight what we are supposed to be building?
End HomeWelcome! The Software Development Process.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
Statistics Monitor of SPMSII Warrior Team Pu Su Heng Tan Kening Zhang.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
Lecture 7: Requirements Engineering
Requirements Gathering How do we find out what we are supposed to be building?
Ch 4 - Learning Objectives Scope Management You should be able to: n Discuss the relationship between scope and project failure n Describe how strategic.
1 Introduction to Software Engineering Lecture 1.
Requirement Elicitation Process Lesson 3. Requirements Elicitation  Is the process to find out the requirements for an intended software system by communicating.
Requirements Collection By Dr. Gabriel. Requirements A requirement is any function, constraint, or property that the system must provide, meet, or satisfy.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
2 nd Knowledge Area : Project Scope Management. Importance of Good Project Scope Management 1995 CHAOS study cited user involvement, a clear project mission,
Requirements Engineering Lesson 2. Terminologies:  Software Acquisition is where requirement engineering significantly meets business strategy.  Software.
Project Management Cross lifecycle Activity
Systems Development Life Cycle
Business Analysis. Business Analysis Concepts Enterprise Analysis ► Identify business opportunities ► Understand the business strategy ► Identify Business.
Initiation Project Management Minder Chen, Ph.D. CSU Channel Islands
Oktalia Juwita, S.Kom., M.MT. SYSTEMS DEVELOPMENT Dasar-dasar Sistem Informasi – IKU1102.
Software Engineering Lecture # 1.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
Smart Home Technologies
第 11 組 MIS 報告. Phases of any information system ~ recognition of a business problem or opportunity ~ recognition of a business problem or opportunity.
Module 4: Systems Development Chapter 13: Investigation and Analysis.
1 The Requirements Problem Chapter 1. 2 Standish Group Research Research paper at:  php (1994)
IS2210: Systems Analysis and Systems Design and Change Twitter:
Requirement Engineering
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
Chapter 6 SYSTEMS DEVELOPMENT Phases, Tools, and Techniques.
Requirements Gathering
Requirements. Outline Definition Requirements Process Requirements Documentation Next Steps 1.
Information Technology Project Management, Seventh Edition.
 System Requirement Specification and System Planning.
Requirements Determination
TK2023 Object-Oriented Software Engineering
Principles of Information Systems Eighth Edition
Fundamentals of Information Systems, Sixth Edition
Systems Analysis and Design
How does a Requirements Package Vary from Project to Project?
CHAPTER 2 Testing Throughout the Software Life Cycle
Software Requirements analysis & specifications
Essentials of Systems Analysis and Design Fourth Edition
Software life cycle models
Presentation transcript:

Requirements analysis Speaker: Chuang-Hung Shih Date:

Understanding what the customer wants  Analysis should come early in any project, and the most important part of that analysis is the gathering of business requirements.  Learn about product and process requirements and how to effectively determine and prioritize customer needs.  Business requirements are statements that describe what the customer and major stakeholders need and want.

All about requirements  Product requirements Product requirements describe the business needs in terms of the main deliverables or products that are created  Process requirements Process requirements describe how people interact with a product and how a product interacts with other products.  Prioritize the requirements Fulfilling some requirements requires much more effort and cost than others.

Beware of false requirements  If you could ask your customers what their requirements were and have them respond with everything they needed. A number of challenges must be overcome: No single customer normally knows all of the requirements up front. Different customers have different visions of what the business needs are. Requirements are vague. Many statements are not requirements.

Success criteria  The table below lists the criteria for software project success in order of importance.

Requirements analysis process  Requirements analysis process: Requirements elicitation, analysis and specification.  Requirements analysis is the process of understanding the customer needs and expectations from a proposed system or application and is a well-defined stage in the Software Development Life Cycle model.  Software requirements analysis and documentation processes are critical to software project success.

Requirements analysis process  Steps in the requirements analysis process. I. Fix system boundaries  This initial step helps in identifying how the new application integrates with the business processes, how it fits into the larger picture and what its scope and limitations will be. II. Identify the customer  In more recent times there has been a focus on identifying who the 'users' or 'customers' of an application are. III. Requirements elicitation IV. Requirements Analysis Process  Once all stakeholder requirements have been gathered, a structured analysis of these can be done after modeling the requirements. V. Requirements Specification VI. Requirements Management

Requirements elicitation  Information is gathered from the multiple stakeholders identified.  Problems faced in Requirements Elicitation. Ambiguous understanding of processes Inconsistency within a single process by multiple users Insufficient input from stakeholders Conflicting stakeholder interests Changes in requirements after project has begun  Tools used in Requirements Elicitation. Some of the current Requirements Elicitation tools in use are: Prototypes Use cases Data flow diagrams Transition process diagrams User interfaces

Requirements specification  Requirements, once elicited, modeled and analyzed should be documented in clear, unambiguous terms.  To overcome this, Requirements Specifications may be documented separately as User Requirements - written in clear, precise language with and use cases, for the benefit of the customer and end-user System Requirements - expressed as a programming or mathematical model, addressing the Application Development Team and QA( Quality Assurance) and Testing Team.

Your project's analysis phase should yield three critical documents  When the analysis phase of an application development project ends, a manager should know what the application looks like, how it functions, and how it is designed.  The three important deliverables created during this phase are: The business requirements report. The conceptual systems design plan. The strategy documents.

The business requirements report  High-level requirements This section defines the big-picture requirements that are common to the entire solution.  Functional requirements These are the more specific requirements.  Acceptance criteria This section should describe the client ’ s criteria for accepting the application, if it has not already been described elsewhere.  Process model If you created process models of the solution, they should be included here, along with the appropriate descriptions.  Data model  Additional information Depending on the project and the particulars of the analysis phase, you may also need to include any assumptions made in the analysis process and other models, such as context diagrams, process decompositions, and entity diagrams.

Conceptual systems design plan  High-level technical architecture This is a place to start laying out the technical solution. It should be diagram at a high level that the business customer can understand.  Screen layouts However, a better way is to work with the business client to define what the screens should look like and then design and code to those general specifications.  Report layouts Work with your clients to define the reports that are needed and the general columns and selection criteria of the reports.  Interfaces At this point, you should have a general idea of the internal and external interfaces needed for the solution.

High-level strategy documents  Testing strategy The purpose of the testing strategy is to define the overall context for the entire testing process. The process depends on the specific characteristics of your solution.  Training strategy The information includes a training overview, the training needs of the stakeholders, the types of training to be offered, and how the training will be built and delivered.  Data conversion strategy In this document, you describe at a high level how data will be converted from the current applications to the new application.  Implementation strategy When your application is completed, it may need a formal deployment strategy. This document provides a general overview of deployment, when it will occur, the complexities and risks, any assistance at the deployed sites, and other relevant details.

User Participation in Software Development Projects  It Is commonly acknowledged that success In IT projects is difficult to achieve. A recent industry survey observed that only 34% of IT projects were considered successful.  Of the several potential factors contributing to this hard-to- achieve success, user involvement was noted as the most important one.  Researchers and practitioners have viewed user participation as an important way of improving software quality and increasing user satisfaction and acceptance.  On the other hand, empirical evidence shows that user participation in the development process can negatively influence project performance since it could make the process more difficult, lengthy, and less effective.

User Participation in Software Development Projects  This article addresses the question of the relative effectiveness of user participation by empirically examining the perceived software project performance (for example, satisfaction) from both user and developer perspectives simultaneously.  We used survey data from 117 software development projects and 746 respondents at a large Fortune 100 manufacturing firm during a four-year time period to investigate the impact of user participation on the satisfaction of both developers and users.  In addition, we also study the role of software complexity (for example, whether projects involve new software development as opposed to maintenance of existing software) in user participation and its effect on satisfaction.

User Participation in Software Development Projects  Questionnaire data was collected from 453 software developers and 293 users/customers working on 117 software projects.  Of the 117 software development projects, 45 (39% of our sample) were maintenance projects and 72 (61%) were new development projects. The average software development time of the 117 software projects was 126 days.

The Level of User Participation  Projects with nonzero participation greater than the median (> 0.462) were categorized as high participation. Of the 72 new development projects, 19 (26%) had low (very minimal), 26 (36%) had moderate, and 27 (38%) had high user participation.  On the other hand, of the 45 maintenance projects, 15 (33%) had low, 16 (36%) had moderate, and 14 (31%) had high user participation in the development process.

New Development Project Satisfaction  Low user-participation An X-shaped effect suggests that users were most satisfied while developers were significantly less satisfied in the low (minimal) user-participation situation. Developers, under such circumstances, were likely to find greater difficulty in resolving requirements and product feature ambiguities.

New Development Project Satisfaction  Moderate user-participation Users participated for an average of 3.88 workdays for a 100 function point project, implying 28 workdays of customer effort for an average new development project (711 function points, corresponding to 127 calendar days). In other words, users invested approximately 22% as much as the overall project development time. Even though the satisfaction levels were not at their highest, developers and users seemed to reach a common ground when users engage only moderately in the development process.  High user-participation In our sample, a project in this group (high participation), exhibited an average of 105 workdays of customer participation, in comparison to 28- workday effort for a moderate participation project, for an average of 127- workday project. Users participate to such extreme levels, their expectations of project outcomes could also be exceptionally high. These users are then very unlikely to be satisfied if actual project outcomes do not perform to their high expectations

Maintenance Project Satisfaction  Low user-participation Both software developers and users were unlikely to be fully satisfied with low user-participation in maintenance projects. This effect may be due to the fact that software maintenance is a task that is fairly difficult to execute and manage effectively due to added complexity of understanding prior written code and prior corrective repairs on the baseline software code.

Maintenance Project Satisfaction  Moderate user-participation That is, users participated approximately 15% as much as the overall project development time. When users are involved in such maintenance projects (moderate participation), they might be able to lower developers' frustration and enhance developers' overall software comprehension since users tend to know more about the features in the original software.  High user-participation In our data, users and developers were relatively less satisfied when users participated for approximately 75 workdays (60% of the overall project development time). Even if the original software is well-developed, the maintenance task is relatively less complicated, and the overall maintenance project is completed with fairly minimal changes in scope, the high expectations of users might remain unsatisfied. At the same time, software developers are likely to be unhappy with over demanding customers/users.