CPSC 871 John D. McGregor Module 1 Session 2 Requirements Elicitation/analysis.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Analysis Modeling.
OBJECT ORIENTED PROGRAMMING M Taimoor Khan
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Chapter 5 Understanding Requirements
CS3773 Software Engineering Lecture 03 UML Use Cases.
Object-Oriented Analysis and Design
Software Testing and Quality Assurance
CAP 252 Lecture Topic: Requirement Analysis Class Exercise: Use Cases.
Object Oriented Analysis Process
Analysis Concepts and Principles
CPSC 371/872 UML / SysML Modeling J. YATES MONTEITH, CLEMSON UNIVERSITY, FALL 2014.
Software engineering Olli Alm Lecture 2: requirements, modelling & representation.
Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps.
Chapter 2 Introduction to Requirements Management
CPSC 871 John D. McGregor MSumS2 Summary – technical issues in software engineering.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
SOFTWARE ENGINEERING BIT-8 APRIL, 16,2008 Introduction to UML.
Karolina Muszyńska. Reverse engineering - looking at the solution to figure out how it works Reverse engineering - breaking something down in order to.
Systems Analysis and Design in a Changing World, 6th Edition
CPSC 372 John D. McGregor Module 1 Session 3 Requirements & Assignment.
Chapter 10 Information Systems Analysis and Design
Object-Oriented Analysis and Design An Introduction.
10/12/ Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 1. Interviews & questionnaires.
Software Requirements (Advanced Topics) “Walking on water and developing software from a specification are easy if both are frozen.” --Edward V Berard.
Requirements Documentation CSCI 5801: Software Engineering.
Chapter 13 Architectural Design
Chapter 9 요구사항 모델링: 시나리오 기반 방법론 Requirements Modeling: Scenario-Based Methods 임현승 강원대학교 Revised from the slides by Roger S. Pressman and Bruce R. Maxim.
Approaching a Problem Where do we start? How do we proceed?
CPSC 372 John D. McGregor Module 2 Session 1 More on requirements and the Investment Decision.
Practical Object-Oriented Design with UML 2e Slide 1/1 ©The McGraw-Hill Companies, 2004 PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e Chapter 4: Restaurant.
1 Introduction to Software Engineering Lecture 1.
Requirements Reference: Chapters 5, 6, & 8. CMSC 345, Fall Objectives To introduce the concepts of user and system requirements To explain functional.
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
Systems Analysis and Design in a Changing World, 6th Edition
Chapter 1 Applying UML and Patterns. The Need for Software Blueprints Knowing an object-oriented language and having access to a library is necessary.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
1 Software Requirements l Specifying system functionality and constraints l Chapters 5 and 6 ++
1 Chapter 5 Modeling System Requirements Finding the Use Cases Page
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
Requirements Engineering Lesson 2. Terminologies:  Software Acquisition is where requirement engineering significantly meets business strategy.  Software.
Requirements Engineering for Web Applications. SR: System Vision Document Written by key stakeholders Written by key stakeholders An executive summary.
By Germaine Cheung Hong Kong Computer Institute
CSC480 Software Engineering Lecture 8-9 September 20, 2002.
Requirements specification Why is this the first major stage of software development? –Need to understand what customer wants first Goal of requirements.
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
SYSE 802 John D. McGregor Module 1 Session 2 Requirements Modeling in SysML.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Week04 Project Requirements.
UML - Development Process 1 Software Development Process Using UML.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
1 BTS330 Visual Modeling. What is Visual Modeling? 2 Copyright © 1997 by Rational Software Corporation Computer System Business Process Order Item Ship.
CSCI 383 Object-Oriented Programming & Design Lecture 7 Martin van Bommel.
High Level Design Use Case Textual Analysis SE-2030 Dr. Mark L. Hornick 1.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Chapter 5 – System Modeling Lecture 1 1Chapter 5 System modeling.
Pepper modifying Sommerville's Book slides
Use Case Analysis Chapter 6.
Chapter 5 – Requirements Engineering
Overview of System Engineering
CS 8532: Advanced Software Engineering
Chapter 5 Understanding Requirements.
Chapter 22 Object-Oriented Systems Analysis and Design and UML
From Use Cases to Implementation
Presentation transcript:

CPSC 871 John D. McGregor Module 1 Session 2 Requirements Elicitation/analysis

Reference Work through chapter 2 of the SWEBoK k/html/contentsch2#ch2 k/html/contentsch2#ch2 Download: Eclipse Modeling Tools Create a Papyrus project And then in that create a Papyrus model

Defining the problem The first task is to understand the problem. A systems engineer may analyze the system to be built and develop a set of requirements and “allocate” some of those requirements to be handled by the software portion of the system. Or we may need to interact directly with potential users of the product.

A digression about systems engineering A systems engineer is trained to analyze complex situations and to break a needed system down into constituent parts where each part is either hardware-based or software-based. For example, a cell phone has a radio, a keypad, and a body that opens and closes. The phone also has an address book, web browser, etc. The first are in hardware and the last in software.

Systems engineering The systems engineer works with experts in the domain of the system, e.g. telephony. The “features” of the system are defined at a high-level The systems engineer then takes each feature and creates a more detailed and complete definition. They add attributes that characterize the operation of the product. The engineer determines which features are to be handled by hardware and by software. This starts the software requirements process.

Software only For products that do not involve hardware within the definition of the product a software engineer will initiate the requirements process. The engineer “elicits” requirements from stakeholders of the product. That is, the engineer uses techniques to get the stakeholder to express ideas about the product. A “stakeholder” is anyone with an interest in a product. It might be a user, the person purchasing the product, the people who will build it and the list goes on. Some requirements are obvious, the product has to provide the functions necessary to control a piece of hardware such as an automobile but often we need additional techiques.

Requirements hierarchy The radio must be capable of sending a certain length message in a certain amount of time using a certain protocol. The systems engineer would generate hardware requirements for power and frequencies for the hardware transmitter and software requirements for formatting the message.

Use cases A use case is a description of how the product will be used. The idea is that it is easier to get a stakeholder to tell how they would interact with the product than to give some abstract statement of requirement. The “actor” in a use case is the entity outside the system who stimulates the product. The “use” is a structured scenario that describes how the product is used.

Template Here is one template for a use case: Polarsys has a use case diagram.

Scenario The use case scenario may be structured like a dialogue between the actor and the system: A “rainy” day scenario would be one in which the actor enters an invalid password. The actor …The system responds by: Enters a valid user nameChecking the name and then displays the password entry Enters a valid passwordChecking the password and displaying the initial level menu

Actors Select several individuals in various capacities related to the product Describe the actions of those people relative to the product What constraints are there on their actions?

Use cases Actor (persona) initiate an interaction Extends – one use contains everything from a use case and adds some Uses – one use uses another use (like a subroutine)

UML use case diagram

Stakeholder interviews To get the information needed to complete the use cases the stakeholders are interviewed Each stakeholder lists all of the outside stimuli they can think of Engineers take one stimulus at a time, associate it with an actor, and ask for a detailed description The more items in the model, the more it stimulates the stakeholders to think of other things.

Requirements Once a set of use cases has been developed one of a couple of things can happen Some teams use the use cases as the requirements and they move on to design Other teams create a set of requirements These are explicit statements of the form: – The system shall… – The system should…

Requirements - 2 Functional requirements define WHAT the product must do. – Compute an image – Make a long-distance phone call Non-functional requirements define HOW the product must perform. – Performance – Reliability – Availability

Requirements - 3 Priority – Life-critical – Mission-critical – Strategic – Tactical The priority determines how much testing, how much analysis and design, etc. Requirements may be volatile or stable, which affects the level of formality.

Requirements analysis Once an initial round of elicitation is completed, the requirements model is analyzed. Analysis is a systematic examination that applies a set of rules and assumptions to the requirements model. Object-oriented analysis and structured analysis are two examples of widely-used analysis techniques.

Object-oriented analysis Object-oriented analysis uses a set of representations to represent the domain knowledge and requirements. This representation is intended to provide a bridge between a set of problem-space concepts and a set of solution space concepts. The idea being that a solution should embed the problem within itself. Then as the problem changes, changes to the solution are a natural consequence.

Object-oriented analysis - 2 We will use the Unified Modeling Language (UML) and the Architecture Analysis and Design Language (AADL) as the representations. Both of these languages allow us to create models that support various automated analyses. Topcased supports both of these languages. In fact the use case diagram is a part of UML.

Domain analysis Usually a company does not solve one problem and then move on to a completely unrelated new problem. They develop expertise in one domain (body of knowledge). Domain analysis captures that body of knowledge.

Domain analysis - 2 Concepts, such as device, radio, and television, are represented as “entities” using the UML class diagram. Each concept is represented in a three part box that includes the name of the concept, data that characterizes the concept, and behaviors related to the concept. The class definition “encapsulates,” i.e. groups together the elements that are used together.

Domain analysis - 3 Concepts are related to one another. “Device” is a concept that is more general than “Radio.” “Channel” is a property of a “Radio”.

Domain analysis - 3 In domain analysis we capture “what is” the actual structure of the domain we are analyzing. We will see later that in design we elaborate on that to get a design of what we need to solve the problem. “What is” includes concepts but also algorithms, the deployment of software to hardware, and the stateful behavior of the entities in the domain.

Stateful behavior Lets consider the Radio as a stateful entity in our domain. What significantly different modes of operation does it have? It can be turned on or off. Its sound can be muted or not. It can be on one of three bands: AM, FM-1, and FM-2.

Embedded state machine Double click on Radio and the dialog looks like below. Select State Machine Diagram.

Radio The state machine for the mute button is nested inside the state machine for the radio. This is in the domain analysis part of our work because we are capturing how the underlying hardware works.

Algorithms The sequence diagram allows us to capture common sequences of operations. Here we capture how to make a phone call. This is domain information because it is how most cell phones work so it is basic information.

The complete model The complete model involves numerous diagrams of several diagram types. Remember that UML stands for the Unified Modeling LANGUAGE. Think of the modeling of a domain as telling a story written in this language. Think of the diagrams as communication with others. The domain information is used in conjunction with the requirements model to be certain that the requirements are understood in the context of the domain.

Here’s what you are going to do Go over the next session which describes a problem Create an initial use case diagram Submit a screen print of the use case diagram