SE 555 Software Requirements & Specification 1 Overview of Requirements Engineering Activities.

Slides:



Advertisements
Similar presentations
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Advertisements

CS 411W - Notes Product Development Documentation.
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
SE 555 Software Requirements & Specification1 Use-Case Modeling: Overview and Context.
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
SE 555 Software Requirements & Specification Beyond Requirements Based on Weigers Chapter17.
Business Area Analysis Focus: Domain View (selected business area) Goals: –Isolate functions and procedures that allow the area to meet its goals –Define.
SE 555 Software Requirements & Specification Requirements Validation.
Major Exam II Reschedule 5:30 – 7:30 pm in Tue Dec 5 th.
SE 555 – Software Requirements & Specifications Introduction
1 Software Requirements Specification Lecture 14.
IS550: Software requirements engineering Dr. Azeddine Chikh 4. Validation and management.
1 REQUIREMENTS ENGINEERING and SYSTEMS ANALYSIS Elements and Definitions.
SE 555 Software Requirements & Specification Requirements Analysis.
S R S S ystem R equirements S pecification Specifying the Specifications.
Chapter 4 Capturing the Requirements 4th Edition Shari L. Pfleeger
The Software Development Life Cycle: An Overview
Chapter 4 Requirements Engineering
S/W Project Management
RUP Requirements RUP Artifacts and Deliverables
UML - Development Process 1 Software Development Process Using UML (2)
Typical Software Documents with an emphasis on writing proposals.
1 REQUIREMENT ENGINEERING Chapter 7. 2 REQUIREMENT ENGINEERING Definition Establishing what the customer requires from a software system. OR It helps.
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?
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Requirements Engineering Processes l Processes used to discover, analyse and.
CEN rd Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi Phases of Software.
Requirements Engineering CSE-305 Requirements Engineering Process Tasks Lecture-5.
Requirements Elicitation. Who are the stakeholders in determining system requirements, and how does their viewpoint influence the process? How are non-technical.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
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 Saeed Akhtar The University of Lahore Lecture 7 Originally shared for: mashhoood.webs.com.
Lecture 7: Requirements Engineering
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
CMSC 345 Fall 2000 Requirements Overview. Work with customers to elicit requirements by asking questions, demonstrating similar systems, developing prototypes,
Requirements Management with Use Cases Module 10: Requirements Across the Product Lifecycle Requirements Management with Use Cases Module 10: Requirements.
1 Quality Attributes of Requirements Documents Lecture # 25.
By Germaine Cheung Hong Kong Computer Institute
CSC480 Software Engineering Lecture 8-9 September 20, 2002.
Business Analysis. Business Analysis Concepts Enterprise Analysis ► Identify business opportunities ► Understand the business strategy ► Identify Business.
Copyright ©2004 Virtusa Corporation | CONFIDENTIAL Requirement Engineering Virtusa Training Group 2004 Trainer: Ojitha Kumanayaka Duration : 1 hour.
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
RequisitePro Software Requirement Management Tool A peresentation by: Mojdeh Jalali-Heravi Maryam Daneshi.
Smart Home Technologies
Software Requirements Specification (SRS)
System Requirements Specification
Prof. Hany H. Ammar, CSEE, WVU, and
Requirement Engineering
Software Requirements Specification Document (SRS)
Requirements Analysis
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
Software Engineering Lecture 10: System Engineering.
Requirement Discipline Spring 2006/1385 Semester 1.
Use Case, Component and Deployment Diagrams University of Sunderland.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
Requirements. Outline Definition Requirements Process Requirements Documentation Next Steps 1.
System Development Life Cycle (SDLC). Activities Common to Software Projects Planning : Principles Principle #1. Understand the scope of the project.
CS646: Software Design and Architectures Introduction and Overview †  Definitions.  The general design process.  A context for design: the waterfall.
Requirement Engineering Management Amna Shifia Nisafani Feby Artwodini M. Department of Information Systems Subject : Requirement Engineering.
 The processes used for RE vary widely depending on the application domain, the people involved and the organisation developing the requirements.  However,
 System Requirement Specification and System Planning.
SYSTEM ANALYSIS AND DESIGN
Requirements Elicitation and Elaboration
Development Projects / Analysis Projects / On-site Service Projects
System Requirements Specification
Software Requirements analysis & specifications
UNIT II.
Lecture # 7 System Requirements
Presentation transcript:

SE 555 Software Requirements & Specification 1 Overview of Requirements Engineering Activities

SE 555 Software Requirements & Specification 2 Key Activities of Requirements Engineering [DACS]

SE 555 Software Requirements & Specification 3 Requirements Process Activities Requirements Elicitation –Collect requirements from the stakeholders customers, users, developers, etc. Requirements Analysis –Study, analyze and model the problem to be solved Requirements Specification –Define and document the requirements in and organized and precise manner Requirements Validation –Ensure that the requirements are correct, complete, and consistent, and they satisfy the customer needs Requirements Management –Trace/track requirements and manage requirements change throughout the software life-cycle

SE 555 Software Requirements & Specification 4 Elicitation Users know what they have, not what they need –They will better understand what they need after they see it, which is often too late User cannot always envision the possibilities enabled by technology

SE 555 Software Requirements & Specification 5 Elicitation Developer is rarely the user Diversity of users and stakeholders Support the mission of the user, not just the user User needs and missions are constantly changing The new system will impact the user’s needs, resulting in new system needs (cycle) Hard to understand the constraints of legacy systems

SE 555 Software Requirements & Specification 6 Requirements Analysis 1.The process of studying and refining system, hardware, or software requirements. [IEEE-STD Software Engineering Glossary]

SE 555 Software Requirements & Specification 7 Requirements Analysis Requirements analysis 1.The process of studying user needs to arrive at a definition of system, hardware, or software requirements. 2.The process of studying and refining system, hardware, or software requirements. [IEEE-STD Software Engineering Glossary] Usually results in a semi-formal or formal, rigorous, precise model of the system requirements

SE 555 Software Requirements & Specification 8 Requirements Analysis Objectives –Detect and resolve requirements conflicts –Discover the bounds of the system and how it interacts with its environment Activities –Classify requirements for planning, reporting and tracking Source, type, priority, risk, scope, volatility/stability –Prioritize requirements based on relative importance and risk –Conceptual modeling of a solution to help understand the problem –Architectural design and requirements allocation Functional and non-functional grouping Allocation of requirements to subsystem components –Requirements negotiation and conflict resolution Incompatible features, incompatible features and constraints, conflict between scope and resources, etc. [DACS]

SE 555 Software Requirements & Specification 9 Is Analysis a Requirements Activity or a Design Activity? Goal: keep the requirements “pure” – free of design decisions –“What” not “How” –Allow freedom of design choices Analysis is part of the process of producing requirements and designs: of defining and solving the problem –Iterate between “What” and “How” (between reqts. and design activities) –The requirements that result from the analysis process can be “pure” but the process itself often iterates between requirements and design –Iteration is good! So, don’t get hung up on “analysis as a requirements activity versus as a design activity” –The important point is that analysis gets done! –Design “removed from” the requirements can be saved for later design focus

SE 555 Software Requirements & Specification 10 Iteratively Analyze the Problem and Synthesize a Solution RequirementsDesignImplementation From a requirements perspective, synthesize a feasible design Classify and structure the requirements to provide a functional view of the architecture Define Problem Define Solution Analysis From a design perspective, analyze the requirements for clarity, completeness, etc. Go too far into design to make sure you have gone far enough in requirements

SE 555 Software Requirements & Specification 11 Essential Requirements Capture the essence of the need without biasing solution design options –The system shall beep and put a warning dialog box on the screen if... ► The system shall issue an alert if... –The user clicks the “Submit” button ► The system shall accept an indication that the user has completed... –The user enters their ID and password ► The system shall verify user identity Hint for getting the essence: for every user action, ask “Why?”

SE 555 Software Requirements & Specification 12 Requirements Model, Analysis Model, and Beyond Requirements modeling specifies the desired behavior of the system (model as use cases, activity diagrams, flow charts, etc.) Object-oriented analysis specifies classes (attributes and behavioral responsibilities), object interactions, object state machines, packages of classes and dependencies, etc. –Initial realization of the requirements in terms of interacting objects Object-oriented design specifies architectural mechanisms, design details, implementation packaging, etc. –Detailed realization of the requirements in terms of interacting objects Object-oriented implementation provides compilable specifications Run-time execution instantiates objects and their interactions Testing exercises (executes) the system to verify and validate its required behavior Problem Space Solution Space Gray Boundary The use-case model is a model of the requirements of a system, organized from a user perspective (external to the system) The analysis model is a model of the requirements of the system, organized from a system perspective (internal)

SE 555 Software Requirements & Specification 13 What is a Requirements Specification? A document that specifies the requirements for a system or component. Typically included are functional requirements, performance requirements, interface requirements, design requirements, and development standards. –[IEEE-STD Software Engineering Glossary]

SE 555 Software Requirements & Specification 14 Contrast With: Design Description Design description: A document that describes the design of a system or component. Typical contents include system or component architecture, control logic, data structures, input/output formats, interface descriptions, and algorithms. Synonyms: design document; design specification. See also: product specification. Contrast with: requirements specification –[IEEE-STD Software Engineering Glossary]

SE 555 Software Requirements & Specification 15 Specify? Webster’s II New Riverside Dictionary (1984) –Specify: 1.To state, name, or mention explicitly, exactly, and unambiguously. Merriam Webster Online Dictionary ( accessed ) –Specify: 1.to name or state explicitly or in detail 2.to include as an item in a specification So, where does this level of precision come from?

SE 555 Software Requirements & Specification 16 What is a “Good” Requirements Specification? Correct Unambiguous Complete Consistent Characterized with attributes (priority, stability, timing, etc.) Verifiable (testable) Modifiable Traceable (clear identifier, traced to source, design, implementation, and test, and to related requirements) Free of design and implementation details (unless they are constraints)

SE 555 Software Requirements & Specification 17 What is a Software Requirements Specification (SRS)? Software requirements specification: Documentation of the essential requirements (functions, performance, design constraints, and attributes) of the software and its external interfaces. See: IEEE-STD-1012 [sic: IEEE-STD-830?] Specification: A document that specifies, in a complete, precise, verifiable manner, the requirements, design, behavior, or other characteristics of a system or component, and, often, the procedures for determining whether these provisions have been satisfied. See also: formal specification; product specification; requirements specification. [IEEE-STD Software Engineering Glossary]

SE 555 Software Requirements & Specification 18 How do you know you have the right requirements?

SE 555 Software Requirements & Specification 19 Requirements Validation Requirements validation: –Certify that the requirements meet the stakeholders’ intentions –Ensure that the requirements define the right system –Ensure a common understanding across the project team and among the stakeholders Validation should not be confused with verification. –Validation: are we building the right system? –Verification: have we built the system right? [DACS]

SE 555 Software Requirements & Specification 20 Requirements Validation Techniques Requirements reviews Prototyping to elicit and validate requirements Review requirements analysis models Prove properties of formal analysis models Plan how each requirement will be verified in acceptance tests

SE 555 Software Requirements & Specification 21 What is Req. Management? The process of eliciting, documenting, organizing, and tracking changing requirements and communicating this information across the project team to ensure that iterative and unanticipated changes are maintained throughout the project lifecycle [DACS].

SE 555 Software Requirements & Specification 22 Problems of Requirements Management Requirements are not always obvious and have many sources Requirements are not always easy to express in words There are many different types of requirements at different levels of detail The number of requirements can become unmanageable if not controlled Requirements are related to one another and to other deliverables of the process in a number of ways Requirements have unique properties or property values There are many interested and responsible parties Requirements change Requirements can be time- sensitive

SE 555 Software Requirements & Specification 23 Requirements Management Skills Application domain understanding Problem analysis Understanding stakeholder needs Defining the system Managing the scope of the project –Fighting scope creep Refining and detailing the system definition Managing changing requirements –The actual business requirements do not often change –Our understanding of them changes often –Our inclusion of them in our product scope changes often

SE 555 Software Requirements & Specification 24 How do you know a system meets its requirements?

SE 555 Software Requirements & Specification 25 Requirements Define Tests Business and User Needs Product/ System Reqts. Software Reqts. Black Box Software Tests Software Impl. Software/ System Test System Tests Acceptance Tests Software Design Unit and Integration Tests

SE 555 Software Requirements & Specification 26 V-Model Requirements modeling Analysis modeling Design modeling ImplementationUnit test Sub-system integration test System integration test Acceptance test Sub-system integration test plan and cases System integration test plan and cases Acceptance test plan and cases

SE 555 Software Requirements & Specification 27 Sources Karl Wiegers, Software Requirements, 2 nd Edition, Microsoft Press, Rational Unified Process (RUP) Unified Process for Education (UPEDU –Yoopeedoo) ( Data Analysis Center for Software (DACS) ( Requirements Management Gold Practice ( IEEE-STD Recommended Practice for Software Requirements Specifications Software Engineering Body of Knowledge ( Brooks, Fred P., The Mythical Man-Month, 20th Anniversary Edition, Addison Wesley, [Standish 1995] Standish Group, The Standish Group Report: Chaos, 1995, Based on material from Professors Ludi and Hawker, RIT SE Department