Requirements Engineering Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 21 st, 2003.

Slides:



Advertisements
Similar presentations
System Integration Verification and Validation
Advertisements

CS487 Software Engineering Omar Aldawud
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
IT Requirements Capture Process. Motivation for this seminar Discovering system requirements is hard. Formally testing use case conformance is hard. We.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Requirements Analysis Concepts & Principles
Fundamentals of Information Systems, Second Edition
SE 555 Software Requirements & Specification Requirements Validation.
Major Exam II Reschedule 5:30 – 7:30 pm in Tue Dec 5 th.
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
Software Requirements The Volere Requirements Source: “Mastering the Requirements Process”, S. Robertson, J. Robertson Created by Eshcar Hilel.
Systems Engineering Management
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 : Software Process
CMSC 345 The Requirements Specification. Why do we need requirements Without the correct requirements, you cannot design or build the correct product,
The Software Development Life Cycle: An Overview
Chapter 4 Requirements Engineering
S/W Project Management
UML - Development Process 1 Software Development Process Using UML (2)
Chapter 2 The process Process, Methods, and Tools
Software Engineering 2003 Jyrki Nummenmaa 1 REQUIREMENT SPECIFICATION Today: Requirements Specification Requirements tell us what the system should.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
SE-02 SOFTWARE ENGINEERING LECTURE 3 Today: Requirements Analysis Requirements tell us what the system should do - not how it should do it. Requirements.
Demystifying the Business Analysis Body of Knowledge Central Iowa IIBA Chapter December 7, 2005.
Business Analysis and Essential Competencies
PPMT CE-408T Engr. Faisal ur Rehman CED N-W.F.P UET P.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
CEN rd Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi Phases of Software.
A GENERIC PROCESS FOR REQUIREMENTS ENGINEERING Chapter 2 1 These slides are prepared by Enas Naffar to be used in Software requirements course - Philadelphia.
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.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Lecture 7: Requirements Engineering
1 Introduction to Software Engineering Lecture 1.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance.
Systems Development Life Cycle
PRJ566 Project Planning & Management Software Architecture.
Business Analysis. Business Analysis Concepts Enterprise Analysis ► Identify business opportunities ► Understand the business strategy ► Identify Business.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
IS2210: Systems Analysis and Systems Design and Change Twitter:
Requirement Engineering
Requirements Analysis
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
 CMMI  REQUIREMENT DEVELOPMENT  SPECIFIC AND GENERIC GOALS  SG1: Develop CUSTOMER Requirement  SG2: Develop Product Requirement  SG3: Analyze.
ANALYSIS PHASE OF BUSINESS SYSTEM DEVELOPMENT METHODOLOGY.
Search Engine Optimization © HiTech Institute. All rights reserved. Slide 1 Click to edit Master title style What is Business Analysis Body of Knowledge?
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Software Engineering Lecture 10: System Engineering.
44222: Information Systems Development
Requirements. Outline Definition Requirements Process Requirements Documentation Next Steps 1.
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
 System Requirement Specification and System Planning.
Software Requirements Engineering Session: 1 Topics: Chapters 1 – 3.
Writing the Requirements
CS 641 – Requirements Engineering Chapters 7-9. Agenda Fit Criterion Functional Requirements Non-functional Requirements.
TechStambha PMP Certification Training
Development Projects / Analysis Projects / On-site Service Projects
Software Requirements
Life Cycle Models PPT By :Dr. R. Mall.
Software Requirements analysis & specifications
Chapter 1 (pages 4-9); Overview of SDLC
Robertson & Robertson: Chapter 2 Software Specification Lecture 10
Presentation transcript:

Requirements Engineering Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 21 st, 2003

Class Objectives Students will be able to define the two process areas associated with the Requirements Engineering process Students will be able to describe the difference among functional requirements, non-functional requirements, fit criteria, and constraints Students will be able to document software requirements

Requirements Engineering Requirements Development Process The purpose of the requirements development process is to produce and analyze customer, product, and product- component requirements Requirements Management Process The purpose of the requirements management process is to manage the requirements of the project’s products and product components and to identify inconsistencies between those requirements and the project’s plans and work products Chrissis, et al. (2003) “CMMI: Guidelines for Process Integration and Product Improvement”, Addison-Wesley, ISBN

Requirements Development Overview (1) This process area describes three types of requirements: customer requirements, product requirements, and product-component requirements. Requirements are the basis for architecture and design. The development of requirements includes the following activities: Elicitation, analysis, validation, and communication of customer needs, expectations, and constraints to obtain customer requirements that constitute an understanding of what will satisfy stakeholders Collection and coordination of stakeholder needs Development of lifecycle requirements of the product Establishment of customer requirements Establishment of initial product and product-component requirements consistent with customer requirements Chrissis, et al. (2003) “CMMI: Guidelines for Process Integration and Product Improvement”, Addison-Wesley, ISBN

... Requirements Development Overview (2) The Requirements Development process area includes three Specific Goals (SGs) according to the Capability Maturity Model Integration (CMMI): 1. Develop Customer Requirements Stakeholder needs, expectations, constraints, and interfaces are collected and translated into customer requirements 2. Develop Product Requirements Customer requirements are refined and elaborated to develop product and product-component requirements 3. Analyze and Validate Requirements The requirements are analyzed and validated, and a definition of required functionality is developed Chrissis, et al. (2003) “CMMI: Guidelines for Process Integration and Product Improvement”, Addison-Wesley, ISBN

Requirements Management Overview (1) The purpose of this process area is to manage all requirements received or generated by the project, including both technical and non-technical requirements. Agreed-on set of requirements must be managed to support the planning and execution needs of the project. When a project receives requirements from an approved requirements provider, these requirements are reviewed to resolve issues and prevent misunderstandings before they are incorporated into the project plan. Commitment to the agreed requirements is received from project participants. Changes to the requirements must be managed as they evolve and and any inconsistencies must be identified. Management of requirements involves as well to document requirements changes and rationale, and to maintain bi-directional traceability between source requirements and all product and product- component requirements. Chrissis, et al. (2003) “CMMI: Guidelines for Process Integration and Product Improvement”, Addison-Wesley, ISBN

... Requirements Management Overview (2) The Requirements Management process area includes one Specific Goal (SG) according to the CMMI: 1. Manage Requirements Requirements are managed and inconsistencies with project plans and work products are identified. Current and approved set of requirements are maintained over the lifecycle of the project by: Managing all changes to the requirements Maintaining the relationships among the requirements, the project plans, and the work products Identifying inconsistencies among the requirements, the project plans, and the work products Taking corrective action Chrissis, et al. (2003) “CMMI: Guidelines for Process Integration and Product Improvement”, Addison-Wesley, ISBN

Life Cycle Methodology A Life Cycle Methodology deals with the order in which the activities, methods, practices, and tools are applied to the development and maintenance of software Identifies the major activities which occur in the development and maintenance of a software system Orders the activities into sequenced stages Identifies the results of the stages and the criteria for progressing from one stage to the next Is used for planning, scheduling, monitoring, and controlling a project

PhaseTasks Proposalunderstand the customer’s needs analyze requirements, develop response develop proposal & cost packages Requirementsdefine functional / performance / design requirements design system architecture with formal division for hardware, software, and procedure analyze system requirements allocated to software and create specification Designdefine architecture of, and communication among, the software components (functions & interfaces) define algorithms and data structures for lower-level components Implementationcode and unit test Testtest against software high-level design (software component interactions and interfaces) test against requirements allocated to software test system requirements (subsystems interfaces and external interfaces Maintenanceupdate system (includes all above tasks) Maintain consistency backwards and forwards across work products Basic Life Cycle Phase Tasks

System Design Preliminary Design Detailed Design Code & Unit Test SRRPDRCDRTRRSDRSRRFCAPCA Formal System Test SRR - System Requirements Review SDR - System Design Review SSR - Software Specification Review PDR - Preliminary Design Review CDR - Critical Design Review TRR - Test Readiness Review FCA - Functional Configuration Audit PCA - Physical Configuration Audit System Reqts Analysis Software Reqts Analysis Software Integration TestSystem Integration Test Developmental Baseline Functional Baseline Allocated Baseline Product Baseline Product Development Sequential (Waterfall)

High Level Design Detailed Design Code/Unit Test Software Integration Test System Integration Test BUILD N High Level Design Detailed Design Code/Unit Test Software Integration Test System Integration Test BUILD 2 High Level Design Detailed Design Code/Unit Test Software Integration Test System Integration Test BUILD 1... Incremental Delivers some of the features of the final system in a preliminary release - a usable core system Delivers additional features as upgraded releases which include the previous features. All requirements set up front and allocated to different releases

Evolutionary Further Systems Analysis Systems AnalysisReqt’s Spec... Allows new requirements to be incorporated Provides control points for injecting new technology Provides opportunities for customer review and confirmation of marketing/customer expectations Does not require all requirements to be set in the beginning Build 1 Reqts.DesignCode/UTSW Int. Test.Sys. Int. Test Build 2 Reqts.DesignCode/UTSW Int. Test.Sys. Int. Test

What are Requirements? Requirements are the “elements” that the requirements analyst should discover before starting to build a system. A requirement represents “something” that the system must do or a quality that the system must possess. Functional requirements Non-functional requirements Constraints

Volere Requirements Process Model Generic requirements gathering and specification process to explore, capture and communicate the requirements. The Volere process provides a guide for how to discover, document and write testable requirements. Project Blastoff Trawl for Knowledge Write the Specification Quality Gateway Prototype Requirements Stakeholders Objectives Use Cases / Potential Requirements Template Formalized Potential Requirements Wants and needs Stakeholders Accepted Requirements Reject Take Stock Of the Requirements Analyze, Design, and Build Missing Requirements, Completeness, Consistency, etc. Stakeholders Requirements Specification

System Purpose Statement Describes the reason behind building the system The system purpose statement represents the highest-level customer requirement All other requirements gathered must contribute to achieve the system purpose All requirements will be tested against the statement on purpose Consensus on the system purpose statement needs to be reached during the project blast-off stage The system purpose statement must solve a problem and provide a business advantage Sometimes the system has more than one purpose statement Purpose: to accurately forecast road freezing times and dispatch de-icing trucks

Aspects of the System Purpose Statement Purpose – description of what the system is to do Advantage – what business advantage does the system provide? Measurement – how is the advantage measured? Reasonableness – is the product construction effort greater than the advantage? Feasibility – can the system achieve the expected measure? Achievability – does the development organization have the skills to build the product and operate it?

System Context The system context diagram shows the boundary of the system and its adjacent systems Named arrows represent data flows and directions of flows The adjacent systems represent the domains with which the system needs to interact System Weather Forecasting Bureau District Weather Forecasts Road Engineer Weather station alert Change road Thermal Mapping Supplier Thermal Maps Weather station readings Robertson, S. and Robertson, J. (1999) “Mastering the Requirements Process”, Addison-Wesley. ISBN

Trawling for Requirements The requirements analyst translates the user’s/customer’s needs into a system specification The requirements analyst must understand the current user’s work, and determine the work that the user and customer requires to do in the future Requirements analyst instigates requirements trawling Users and system relevant stakeholders collaborate with requirements analyst to gather the requirements Some techniques for requirements trawling Apprenticing – learn job by observation and model system Structures and patterns – abstract structure and pattern of work Interview users – used as a complement Workshops – brainstorm sessions with relevant stakeholders – mind mapping Video Electronic requirements gathering – via , internet, surveys Document reviews Cards, spreadsheets, or other light-weight approaches

Event-driven Use Cases Work performed by the system in response to a business event. The use case is a convenient way of identifying a user and a group of requirements that carry out a specific task for that user. Produce De-icing Schedule Thermal Mapping Database Truck depot Engineer Task that the actor describes in his/her own language at too high level to describe details about system’s capabilities

Produce Road De-icing Schedule Use Case: Steps Suggested desired outcome for this use case: System accepts scheduling date and district identifier from engineer System fetches the relevant thermal maps System uses thermal maps, district temperature readings and weather forecasts to predict temperatures for each part of the district System determines which roads are likely to freeze and when they are likely to freeze System schedules available trucks from the depots responsible for the freezing roads System advises the engineer of the schedule

Functional Requirements Derived System accepts scheduling date and district identifier from engineer The system shall accept the scheduling date The system shall warn if scheduling date is neither today nor within the next two days The product shall accept a valid district identifier The product shall confirm that the district selected is the one wanted by the engineer Notice the level of detail: they can be verified,they are enough to describe the use case Reduce ambiguity to ensure “correct” meaning Requirements need the so called “fit criteria”

Functional Requirements Functional requirements represent the capabilities that the product must have to achieve its purpose – an action that the system must take if it is to provide useful functionality for its user. The system shall record air temperature readings and humidity readings The system shall accept a scheduling date The system shall accept a valid district identifier The system shall confirm that the district selected is the one wanted by the user

Non-Functional requirements Describe the experience that the user has while he/she does the work They describe the characteristics of the work that are represented by the use case or the functional requirements

Non-functional Requirement Types Look and feel requirements Usability requirements Performance requirements Operational requirements (operating environment) Maintainability and portability requirements Security requirements Cultural and political requirements Legal requirements

Non-Functional Requirements Non-functional requirements represent the product qualities that the system must possess (i.e. look and feel, usability, performance, security, maintainability, cultural and political, legal, etc.). The system shall calculate change in road topography in 1.5 seconds The system shall provide a graphic description and colorful view of all roads in a district The system shall comply with the Windows NT guidelines The system shall be easy to use The system shall comply with ISO 9000 Certification

Fit Criteria “Fit” means that a solution completely satisfies the defined requirement Need to attach a quantification to the requirement The quantification of the requirement is its fit criterion The fit criterion may quantify the behavior, the performance, or some other quality of the requirement Fit criteria apply to both functional and non-functional requirements Analyze requirement description and determine requirement rationale to find the appropriate scale of measurement for fit criteria

Requirements with Fit Criteria Examples Functional Requirement Description: The system shall record the weather station readings Rationale: so readings are not lost Fit criterion: The recorded weather station readings shall match the readings sent by the weather station Non-Functional Requirement Description: The system shall be user friendly Rationale: so new users can learn system fast Fit criterion: new users shall be able to add, change and delete roads within 30 minutes of their first attempt at using the product Robertson, S. and Robertson, J. (1999) “Mastering the Requirements Process”, Addison-Wesley. ISBN

Constraints Constraints are typically viewed as global requirements. They apply to the entire system and preferably defined before beginning the work on gathering the requirements. Constraints represent global issues that shape the requirements. The system must run in a hand-held device The system will be deployed in a noisy environment The system must be dust resistance The user will be standing up while operating the system

Exercise Write one functional requirement, one non-functional requirement and their fit criteria, as well as one constraint associated with their project (please do this exercise independently) 10 minutes