Requirements Engineering

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

Computer Science Department
Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 1 Software Engineering September 12, 2001 Capturing.
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Example of a Problem Statement: Introduction into.
Conversation Form l One path through a use case that emphasizes interactions between an actor and the system l Can show optional and repeated actions l.
Systems Analysis and Design in a Changing World, Fourth Edition
© 2005 Prentice Hall4-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Requirements Elicitation Chapter 4. Establishing Requirements Two questions –What is the purpose of the system –What is inside and what is outside the.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
7. 2Object-Oriented Analysis and Design with the Unified Process Objectives  Detailed Object-Oriented Requirements Definitions  System Processes—A Use.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Requirements Elicitation. Requirement: a feature or constraint that the system must satisfy Requirements Elicitation: specification of the system that.
® IBM Software Group © 2006 IBM Corporation Writing Good Use Cases Module 4: Detailing a Use Case.
1 BTEC HNC Systems Support Castle College 2007/8 Systems Analysis Lecture 9 Introduction to Design.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Functional Modeling.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 4, Requirements Elicitation: Functional Modeling.
Chapter 10 Information Systems Analysis and Design
10/12/ Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 1. Interviews & questionnaires.
Chapter 6 Use Cases. Use Cases: –Text stories Some “actor” using system to achieve a goal –Used to discover and record requirements –Serve as input to.
Software Requirements (Advanced Topics) “Walking on water and developing software from a specification are easy if both are frozen.” --Edward V Berard.
Using UML, Patterns, and Java Object-Oriented Software Engineering Functional Modeling.
Software Engineering Chapter 7 Fall Capturing the Requirements as Use Cases Capturing the Requirements as Use Cases By using use cases analysts.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
Requirements Documentation CSCI 5801: Software Engineering.
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
A Use Case Primer 1. The Benefits of Use Cases  Compared to traditional methods, use cases are easy to write and to read.  Use cases force the developers.
Requirements Engineering for Web Applications. SR: System Vision Document Written by key stakeholders Written by key stakeholders An executive summary.
Systems Analysis and Design in a Changing World, Fourth Edition
UML - Development Process 1 Software Development Process Using UML.
Search Engine Optimization © HiTech Institute. All rights reserved. Slide 1 Click to edit Master title style What is Business Analysis Body of Knowledge?
1 7 Systems Analysis and Design in a Changing World, 2 nd Edition, Satzinger, Jackson, & Burd Chapter 7 The Object-Oriented Approach to Requirements.
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.
1 After the scenarios are formulated Find all the use cases in the scenario Describe each of these use cases in more detail Participating actors Describe.
1 Team Skill 3 Defining the System Part 1: Use Case Modeling Noureddine Abbadeni Al-Ain University of Science and Technology College of Engineering and.
Bernd Bruegge and Allen Dutoit Requirements Process The requirements process consists of two activities: Requirements Elicitation: Definition of the system.
Use Case Analysis Chapter 6.
Systems Analysis and Design in a Changing World, Fourth Edition
CMPE 135: Object-Oriented Analysis and Design August 31 Class Meeting
CMPE 280 Web UI Design and Development August 29 Class Meeting
Use Cases Discuss the what and how of use cases: Basics Benefits
Recall The Team Skills Analyzing the Problem (with 5 steps)
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Example of a Problem Statement: Introduction into ARENA
Use Case Model.
Requirements: Use Case Models and Narratives
IS442 Information Systems Engineering
Chapter 4, Requirements Elicitation
Example of a Problem Statement: Introduction into ARENA
IMPORTANT NOTICE TO STUDENTS:
SAD ::: Spring 2018 Sabbir Muhammad Saleh
Example of a Problem Statement: Introduction into ARENA
MBI 630: Week 11 Interface Design
A Few Review Questions.
Chapter 4, Requirements Elicitation
Software requirements
Using Use Case Diagrams
Software Engineering System Modeling Chapter 5 (Part 1) Dr.Doaa Sami
Project Meeting 23 Oct 2002.
Stumpf and Teague Object-Oriented Systems Analysis and Design with UML
Chapter 5 Understanding Requirements.
Requirements Engineering Tutorial
Use Case Modeling Part of the unified modeling language (U M L)
Requirements Engineering
Project Meeting.
Software Development Process Using UML Recap
Guidelines for use cases (1)
Requirements Engineering Tutorial
Presentation transcript:

Requirements Engineering

Requirements Engineering Tutorial Tutorial outline Requirements engineering Basic concepts Requirements engineering process for ARENA REQuest: Live Demonstration REQuest: Guidelines Summary & next steps Another interesting issue with finding objects is to define which objects are inside the application domain and which ones are outside of it. Sometimes it helps you to get a clearer understanding of the overall system. Look at the figure in this slide. What does it show? A bunch of black and white dots? Given that I will tell you that it contains a system (that is an object model can be found) how would you start with looking for objects? Turn the slide around. Turn it upside down. Look at the “problem domain” from all angles. And suddenly you might experience what I would call the “gestalt experience”. You will see the application domain. Now there is no recipe for finding it. You might find a very low level object, such as an ear or you might find a high level object such as the shape of a dog. In fact, if you look carefully you will find a dalmatian dog. Once you understand that you are looking at a dog, a lot of the black and white pixels in the total figure are not part of your system and you can easily find the boundary of the system by trying to trace the outline of the Dalmatian. However, don’t be lured into thinking that this is the system you have been looking for. Always be alert that the real system might be something totally different. For example, if you turn the dog upside down, you might be able to see an eagle taking off from a river, with a poor dead victim in its claws! January 1, 2019 Requirements Engineering Tutorial

Problem Lifecycle of a software project 1.The client’s needs 2. Requirements Analysis 3. After system design 4. After implementation Clients and developers often have different backgrounds and “speak another language” Requirements have to be fulfilled to make a project successful January 1, 2019 Requirements Engineering Tutorial

Solution Requirements Engineering Clients Developers Analysis Document Requirements Engineering Clients Developers Requirements Analysis Review … can solve the communication problem … January 1, 2019 Requirements Engineering Tutorial

Requirements Engineering Application Domain Objects Subsystems class... Solution Domain Source Code Test Cases ? Expressed in Terms Of Structured By Implemented By Realized By Verified System Design Object Implemen- tation Testing class.... Requirements Elicitation Use Case Model Analysis A requirement is a feature that the system must have or a constraint that it must satisfy to be accepted by the client. January 1, 2019 Requirements Engineering Tutorial

Requirements Analysis Document A RAD includes 3 descriptions: Requirements Elicitation: Use case model Requirements: What do users do? Interactions: How do users use the system? Requirements elicitation => output: specification that the client understands Analysis => output: model that the developers can interpret Analysis: Requirements analysis model (object model) Specification: What does the system do? January 1, 2019 Requirements Engineering Tutorial

RAD: Levels of descriptions User tasks describe domain Le v el 2 el 1 el 3 el 4 Use Cases describe interactions Services describe system January 1, 2019 Requirements Engineering Tutorial

Requirements Engineering Tutorial Tutorial outline Requirements engineering Basic concepts Requirements engineering process for ARENA REQuest: Live Demonstration REQuest: Guidelines Summary & next steps Another interesting issue with finding objects is to define which objects are inside the application domain and which ones are outside of it. Sometimes it helps you to get a clearer understanding of the overall system. Look at the figure in this slide. What does it show? A bunch of black and white dots? Given that I will tell you that it contains a system (that is an object model can be found) how would you start with looking for objects? Turn the slide around. Turn it upside down. Look at the “problem domain” from all angles. And suddenly you might experience what I would call the “gestalt experience”. You will see the application domain. Now there is no recipe for finding it. You might find a very low level object, such as an ear or you might find a high level object such as the shape of a dog. In fact, if you look carefully you will find a dalmatian dog. Once you understand that you are looking at a dog, a lot of the black and white pixels in the total figure are not part of your system and you can easily find the boundary of the system by trying to trace the outline of the Dalmatian. However, don’t be lured into thinking that this is the system you have been looking for. Always be alert that the real system might be something totally different. For example, if you turn the dog upside down, you might be able to see an eagle taking off from a river, with a poor dead victim in its claws! January 1, 2019 Requirements Engineering Tutorial

Requirements Engineering Tutorial Process for ARENA (1) REQuest for the requirements specification Web-based tool Actors, User Tasks, Use Cases, & Services Constraints & Glossary REQuest for review and negotiation Questions, Options, Criteria, Assessments Discussion What’s new, what’s revised, conflict detection January 1, 2019 Requirements Engineering Tutorial

Requirements Engineering Tutorial Process for ARENA (2) Instructors/coaches Oct 23: RAD v.0 from coaches Actors, user tasks & use cases Nov 3: Feedback from coaches Nov 6: Requirements review Teams Before Oct 31: Questions to coaches Oct 31: RAD v.1 due Use cases, Services, Constraints Glossary Nov 6: RAD v.2 due Options, assessments Decisions Revised requirements elements Analysis Object Models and sequence diagrams (Together) January 1, 2019 Requirements Engineering Tutorial

Requirements elicitation activities (1) Define the boundary of the system: Identify and describe actors Define the needs of the user Describe one or more user tasks per actor Describe the interactions between the actors and the system Describe one or more use cases per user task Exceptions & nonfunctional constraints January 1, 2019 Requirements Engineering Tutorial

Requirements elicitation activities (2) Describe the functionality of the system Identify all services needed to realize the use cases Each use case uses one or more services Each service can be used by one or more use cases Review the system specification with the client January 1, 2019 Requirements Engineering Tutorial

Requirements Engineering Tutorial Tutorial outline Requirements engineering Basic concepts Requirements engineering process for ARENA REQuest: Live Demonstration REQuest: Guidelines Summary & next steps Another interesting issue with finding objects is to define which objects are inside the application domain and which ones are outside of it. Sometimes it helps you to get a clearer understanding of the overall system. Look at the figure in this slide. What does it show? A bunch of black and white dots? Given that I will tell you that it contains a system (that is an object model can be found) how would you start with looking for objects? Turn the slide around. Turn it upside down. Look at the “problem domain” from all angles. And suddenly you might experience what I would call the “gestalt experience”. You will see the application domain. Now there is no recipe for finding it. You might find a very low level object, such as an ear or you might find a high level object such as the shape of a dog. In fact, if you look carefully you will find a dalmatian dog. Once you understand that you are looking at a dog, a lot of the black and white pixels in the total figure are not part of your system and you can easily find the boundary of the system by trying to trace the outline of the Dalmatian. However, don’t be lured into thinking that this is the system you have been looking for. Always be alert that the real system might be something totally different. For example, if you turn the dog upside down, you might be able to see an eagle taking off from a river, with a poor dead victim in its claws! January 1, 2019 Requirements Engineering Tutorial

Requirements Engineering Tutorial Live Demonstration First step: login to REQuest http://sysiphus.in.tum.de:8080/arena02/servlet/SYSLogin January 1, 2019 Requirements Engineering Tutorial

Requirements: What do users do? (1) Player Brief high-level descriptions Actors represent roles, that is, a type of user of the system Player User tasks represent activities accomplished by the user, independently of the system. Accomplish Mission Accomplish Mission January 1, 2019 Requirements Engineering Tutorial

Requirements: What do users do? (2): Examples Actor Player Person who is able to play one or more games. User Task Accomplish Mission The Player starts the game. The Player sets her/his preferences. The Player receives a certain mission. The Player completes the mission. January 1, 2019 Requirements Engineering Tutorial

Specification (1) : What does the system do? Use cases describe sequences of interactions between the actors and the system Services describe features provided by the system Start SWORD Complete description of the system including exceptions by developers Set mode Set restrictions Load character January 1, 2019 Requirements Engineering Tutorial

Specification (2): Example of use case attributes Use Case Start SWORD Initiatiating actor: Player Preconditions: Player has installed SWORD on her/his computer. Postconditions: Player is able to enter the game. January 1, 2019 Requirements Engineering Tutorial

Specification (3): Example of use case flow of events System steps Actor steps The Player double clicks the SWORD icon on her/his computer 2. SWORD asks for the preferred game mode 3. The Player chooses the stop-watch mode and sets a deadline 4. SWORD asks if the player wants to set any restrictions 5. The Player restricts the game to her/his buddy list 6. SWORD loads the Player’s character 7. The Player can enter the game January 1, 2019 Requirements Engineering Tutorial

Specification (4): Example services Service Set mode Inputs: one game mode and deadline Output: message asking for restrictions Service Set restrictions Input: one or more players (from menu) Output: message that restrictions are set January 1, 2019 Requirements Engineering Tutorial

Specification (5): Exceptions Actor steps The Player double clicks the SWORD icon on her/his computer. [invalid format] SWORD displays a message box and asks to use the valid format for setting deadlines. 3. The Player chooses the stop-watch mode and sets a deadline. [invalid format] [no buddy list defined] SWORD announces the failure and offers the possibility to set the buddy list now as well as canceling this step. If the Player chooses the first option, a window will pop up so that the Player can compile her/his buddy list. 5. The Player restricts the game to her/his buddy list. [no buddy list defined] 7. The Player can enter the game January 1, 2019 Requirements Engineering Tutorial

Nonfunctional requirements Domain constraints Domain facts Applicable to user tasks Global functional constraints Functionality that is easier to describe in terms of constraints Applicable to use cases Quality constraints Constraint on the attribute of a user task, use case, or service. January 1, 2019 Requirements Engineering Tutorial

Requirements Engineering Tutorial Tutorial outline Requirements engineering Basic concepts Requirements engineering process for ARENA REQuest: Live Demonstration REQuest: Guidelines Summary & next steps Another interesting issue with finding objects is to define which objects are inside the application domain and which ones are outside of it. Sometimes it helps you to get a clearer understanding of the overall system. Look at the figure in this slide. What does it show? A bunch of black and white dots? Given that I will tell you that it contains a system (that is an object model can be found) how would you start with looking for objects? Turn the slide around. Turn it upside down. Look at the “problem domain” from all angles. And suddenly you might experience what I would call the “gestalt experience”. You will see the application domain. Now there is no recipe for finding it. You might find a very low level object, such as an ear or you might find a high level object such as the shape of a dog. In fact, if you look carefully you will find a dalmatian dog. Once you understand that you are looking at a dog, a lot of the black and white pixels in the total figure are not part of your system and you can easily find the boundary of the system by trying to trace the outline of the Dalmatian. However, don’t be lured into thinking that this is the system you have been looking for. Always be alert that the real system might be something totally different. For example, if you turn the dog upside down, you might be able to see an eagle taking off from a river, with a poor dead victim in its claws! January 1, 2019 Requirements Engineering Tutorial

Guidelines for use cases (1) Name Use a verb phrase to name the use case. The name should indicate what the user is trying to accomplish. Examples: “Request Meeting”, “Schedule Meeting” Length A use case should not exceed 2 A4 pages. If longer, use include relationships. A use case should describe a complete set of interactions. January 1, 2019 Requirements Engineering Tutorial

Guidelines for use cases (2) Flow of events The active voice should be used. Steps should start either with “The Actor …” or “The System …”. The causal relationship between the steps should be clear. All flow of events should be described (not only the main flow of event). The boundaries of the system should be clear. Components external to the system are described as such. Define important terms in the glossary. Negative example: The driver arrives at the parking gate, the driver receives a ticket from the distributor, the gate is opened, the driver drives through. January 1, 2019 Requirements Engineering Tutorial

Guidelines for use cases (3) Exceptions Exceptions should be attached to the step where they are detected. If an exception can occur in any step, describe it only in the exception section. Exception handling is described as flow of events. At the end of the exception handling, it should be clear what happens next (if the use case is terminated or if it is resumed in a particular step). Preconditions If a case is excluded with a precondition, then it should not be handled as an exception. January 1, 2019 Requirements Engineering Tutorial

Guidelines for use cases (4) Write one high-level use case per user task If a use case includes only one or two steps, it should probably be a service, not a use case. If a sequence of steps is identical in several use cases, it should be factored out into a separate use case and included in the original use cases (eliminate redundancy). <<user task>> <<use case>> January 1, 2019 Requirements Engineering Tutorial

General guidelines: Use Rationale (1) Question: Which restrictions are possible? References: Service: Set restrictions Decision: Buddy list + single persons Criteria 1: Flexibility Criteria 2: User Friendliness Opt. 1: Buddy list – + Opt. 2: Single persons – + Opt. 3: Buddy list + single persons + January 1, 2019 Requirements Engineering Tutorial

Requirements Engineering Tutorial Use Rationale (2) Questions can be used to: Request a clarification How can a Player restrict a game to her/his buddy list? Indicate a defect Isn’t a second game mode missing? Justify a use case or Which solution is the best? service Questions are asked during review and consolidated into justifications during revisions. January 1, 2019 Requirements Engineering Tutorial

Requirements Engineering Tutorial Tutorial outline Requirements engineering Basic concepts Requirements engineering process for ARENA REQuest: Live Demonstration REQuest: Guidelines Summary & next steps Another interesting issue with finding objects is to define which objects are inside the application domain and which ones are outside of it. Sometimes it helps you to get a clearer understanding of the overall system. Look at the figure in this slide. What does it show? A bunch of black and white dots? Given that I will tell you that it contains a system (that is an object model can be found) how would you start with looking for objects? Turn the slide around. Turn it upside down. Look at the “problem domain” from all angles. And suddenly you might experience what I would call the “gestalt experience”. You will see the application domain. Now there is no recipe for finding it. You might find a very low level object, such as an ear or you might find a high level object such as the shape of a dog. In fact, if you look carefully you will find a dalmatian dog. Once you understand that you are looking at a dog, a lot of the black and white pixels in the total figure are not part of your system and you can easily find the boundary of the system by trying to trace the outline of the Dalmatian. However, don’t be lured into thinking that this is the system you have been looking for. Always be alert that the real system might be something totally different. For example, if you turn the dog upside down, you might be able to see an eagle taking off from a river, with a poor dead victim in its claws! January 1, 2019 Requirements Engineering Tutorial

Putting everything together Q: Which restrictions are possible Set mode Set restrictions Load character Player Accomplish Mission Start Sword January 1, 2019 Requirements Engineering Tutorial

Requirements Engineering Tutorial Summary REQuest supports Definition of requirements specification Questions about the requirements elements Discussion, negotiation, and resolution of questions Finding out what others have done ARENA deadlines RAD v.1 October 30 RAD v.2 November 6 January 1, 2019 Requirements Engineering Tutorial

Important: Process for ARENA (1) Instructors/coaches Oct 23: RAD v.0 from coaches Actors, user tasks & use cases Nov 3: Feedback from coaches Nov 6: Requirements review Teams Before Oct 31: Questions to coaches Oct 31: RAD v.1 due Use cases, Services, Constraints Glossary Nov 6: RAD v.2 due Options, assessments Decisions Revised requirements elements Analysis Object Models and sequence diagrams (Together) January 1, 2019 Requirements Engineering Tutorial

Requirements Engineering Tutorial Next steps Meet with your development team as soon as possible Login to REQuest with your Lotus Notes account Add actors, use cases and services Discuss, negotiate and resolve questions Write one complete scenario per team (that is one possible example of the system in use) January 1, 2019 Requirements Engineering Tutorial

Requirements Engineering Tutorial Further readings Bruegge B., Dutoit A.: Object-Oriented Software Engineering: Conquering Complex and Changing Systems, Prentice Hall, 2000 REQuest online help January 1, 2019 Requirements Engineering Tutorial

Requirements Engineering Tutorial Questions? January 1, 2019 Requirements Engineering Tutorial