CPSC 372 John D. McGregor Module 1 Session 3 Requirements & Assignment.

Slides:



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

Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
Requirements and Design
Introduction To System Analysis and Design
1 Team Skill 3 - Defining the System (Chapters of the requirements text) CSSE 371 Software Requirements and Specification Don Bagert, Rose-Hulman.
Sept. 11, 2003CS WPI1 CS 509 Design of Software Systems Lecture #2 Thursday, Sept. 11, 2003.
Overview of Software Requirements
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.
© Copyright Eliyahu Brutman Programming Techniques Course.
7M822 Software Requirements Introduction 7 September 2010.
Course Instructor: Aisha Azeem
Business Modeling Domain Modeling Source: Use Case Driven Object Modeling with UML – A Practical Approach By Doug Rosenberg ISBN:
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Introduction To System Analysis and design
OO Analysis and Design CMPS OOA/OOD Cursory explanation of OOP emphasizes ▫ Syntax  classes, inheritance, message passing, virtual, static Most.
The Software Development Life Cycle: An Overview
CPSC 871 John D. McGregor Processes – a first iteration Module 1 Session 1.
UML - Development Process 1 Software Development Process Using UML (2)
Object Oriented Analysis By: Don Villanueva CS 524 Software Engineering I Fall I 2007 – Sheldon X. Liang, Ph. D.
Systems Analysis and Design in a Changing World, Fifth Edition
Software Engineering CS B Prof. George Heineman.
SYSE 802 John D. McGregor Module 1 Session 1 Concept Elaboration & Requirements Elicitation.
SOFTWARE ENGINEERING BIT-8 APRIL, 16,2008 Introduction to UML.
CPSC 871 John D. McGregor Module 1 Session 2 Requirements Elicitation/analysis.
SYSE 802 John D. McGregor Module 0 Session 1 Course Introduction.
Business Analysis and Essential Competencies
9/14/2012ISC329 Isabelle Bichindaritz1 Database System Life Cycle.
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Object Oriented.
CPSC 372 John D. McGregor Process Module 1 Session 1.
5 Systems Analysis and Design in a Changing World, Fourth Edition.
Introduction To System 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.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Requirements Documentation CSCI 5801: Software Engineering.
CPSC 372 John D. McGregor Module 2 Session 1 More on requirements and the Investment Decision.
Lecture 7: Requirements Engineering
1 Introduction to Software Engineering Lecture 1.
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
Chapter 5 Models and UML Notation for The Object-Oriented Approach.
Intermediate 2 Software Development Process. Software You should already know that any computer system is made up of hardware and software. The term hardware.
UML Use Case Diagramming Guidelines. What is UML? The Unified Modeling Language (UML) is a standard language for specifying, visualizing, constructing,
CS 4850: Senior Project Fall 2014 Object-Oriented Design.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
5 Systems Analysis and Design in a Changing World, Fifth Edition.
1 Chapter 4 Analyzing End-to-End Business Processes.
Requirements Collection By Dr. Gabriel. Requirements A requirement is any function, constraint, or property that the system must provide, meet, or satisfy.
Systems Analysis and Design in a Changing World, 6th Edition
Requirement engineering Good Practices for Requirements Engineering
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.
Analysis Modeling CpSc 372: Introduction to Software Engineering
CSC480 Software Engineering Lecture 8-9 September 20, 2002.
SYSE 802 John D. McGregor Module 1 Session 2 Requirements Modeling in SysML.
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
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?
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
CSCI 383 Object-Oriented Programming & Design Lecture 7 Martin van Bommel.
Team Skill 3 - Defining the System (Chapters of the requirements text ) Sriram Mohan 1.
Requirements. Outline Definition Requirements Process Requirements Documentation Next Steps 1.
George Wang, Ph.D. COMP 380/L Lesson 2. Use Case Use cases are a way to capture system functionalities (i.e., functional requirements) Based on use case.
Model Based Engineering Environment Christopher Delp NASA/Caltech Jet Propulsion Laboratory.
5 Systems Analysis and Design in a Changing World, Fourth Edition.
Recall The Team Skills Analyzing the Problem (with 5 steps)
Object-Oriented Analysis and Design
Unified Modeling Language
Week 10: Object Modeling (1)Use Case Model
Use Case Modeling Part of the unified modeling language (U M L)
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Presentation transcript:

CPSC 372 John D. McGregor Module 1 Session 3 Requirements & Assignment

Product Requirements There are two phases to defining the requirements for a product Requirements elicitation – get information from sources such as people, documents, regulations, etc Requirements analysis – derive explicit measurable statements from the information gathered

Concept Elaboration In the earliest stage of system development, actions are less structured and less rigorous than in the later stages. A feasibility study may have been executed or marketing information gathered to identify the need or opportunity that the system is intended to address. A business case may be constructed at this time to determine go/no go for building a production product or this effort may be chartered as an investigation.

Early steps Early in the product’s life cycle the system engineer gathers information about the problem/need. The system engineer may create domain models or at least a domain dictionary that capture relevant concepts in the domain of the system and their meaning. The system engineer will definitely create a requirements model.

Early steps - 2 Stakeholder requirements give the stakeholders’ view of what the product should do and properties the system should possess. These will be translated by the SEs into system (derived) requirements. The stakeholder requirements are stated in terms of their interest in the product. The SEs translate these into more specific, more objective, more modular, and less ambiguous statements.

For example, For example consider a system that allows the user to use a radio, a video system, and other devices. The system must use a reasonable amount of power of the type found in a vehicle. A requirement might read:”The system shall support the user tuning the radio to any station on the standard AM broadcast band.”

Stakeholders Initially each stakeholder has their own objectives. Each stakeholder must advocate for their view of the need and show how it is of more importance than the views of others. Ultimately a common mission is established.

Domain models A domain model can be thought of as a structured glossary. The boxes in the diagram on the following slide represent concepts in the domain. The lines between boxes represent relationships among concepts. This diagram uses the block diagram notation of SysML. The words enclosed in «» are called stereotypes. Like a type they define what properties the concept may have.

Domain models - 2 Blocks, in a SysML block diagram can be used for concepts.

Domain models - 3 A domain model also captures standard interactions, which are characteristic of the problem not the solution, using SysML sequence diagrams.

Domain models - 4 The purpose of a domain model is to establish a common vocabulary among members of a project team. This is particularly important if several specialties are being integrated to solve a problem or if several organizations are collaborating. Even a term like “project” can have different meanings if the solution is distributed over several countries.

Domain model - 5 Professional societies and governmental organizations are good starting points for these models. They produce general models that represent the thinking of large numbers of people. These domain models will also serve as the basis for domain specific languages (DSLs) for later stages of model-driven development

Features For many efforts the size and complexity of the product is too much to think of as a single list of requirements statements. 10,000 items is too many. One way of dividing the problem into manageable pieces is to use a high level unit termed a “feature”. By high-level I mean broadly encompassing. Vehicle is more encompassing than automobile. A feature can represent any aspect of a system. A very vague definition I know but a very flexible one. Having a GPS device is a feature of our system.

New Feature modeling tool We have been using the feature modeling tool described in the next slides but I found a better tool at magdeburg.de/iti_db/research/featureide/ magdeburg.de/iti_db/research/featureide/ It is a plug-in so near the bottom of their web page they give step-by-step instructions for loading the plug-in into Eclipse. Please do that. I have left the next few slides as a good overview of features.

Features - 2 The cardinality means the feature is either part of the system or not. The cardinality means the feature must be part of the system. Notice that many of these features are directly from the mind map.

Features - 3 Satellite radio is a mandatory feature if we have a radio. A product we build may have a GPS component or not (indicated by 0..1). This is an optional feature. There is a video feature in every product and there is a choice of two players.

Features - 4 These statements are very high level requirements but each one represents many of the individual requirements statements. The features are sufficiently different that building a detailed requirements model for each feature will minimize the amount of interactions between requirements in one feature and those in another. Non-functional aspects may be addressed as well with features such as security or performance levels.

Features - 5 Notice that a feature model gives more than just the requirements for A product. It gives requirements for a family of products. More about this later in the course.

Features - 5 Notice that a feature model gives more than just the requirements for A product. It gives requirements for a family of products. More about this later in the course.

Functional vs Non-functional requirements Functional requirements describe WHAT a product must do – The system shall be able to receive SMS (short message service) messages. Non-functional describe HOW the product will do it – The system shall be able to receive at a rate of 100 messages per minute. Both are essential to building an acceptable product.

Two operations The systems engineer – elicits requirements from many sources, and – analyzes the compete set of requirements In order to elicit, the systems engineer identifies those who have an interest in the product - the stakeholders Not all stakeholders have the same priority. Some are clients while some are the people creating the product.

Implicit and Explicit Standards documents and spec sheets for former products are examples of explicit knowledge which is the easiest to convert into requirements Implicit knowledge such as the experience of a 20 year veteran in a company is harder to capture completely and correctly Just recently a doctor tried uploading data for a medical research project and we found that he had forgotten to tell me that each MRI scan was 120 separate files.

Many techniques There are many different techniques for eliciting requirements – Interviews – structured and non-structured – Story boards – … We will focus on use cases. A use case is a description of a use of the system by some external entity termed an actor.

Elicitation The stakeholders can be represented as “actor”s in a SysML Use Case model. The figure below is an early version of the model for our continuing example. The actors may be people or other systems. What outside forces act on the system?

Scenarios A scenario is a very short story. A use case is a set of scenarios that all describe related uses of the system being developed. A number of software development methods use scenarios for a variety of models. Some methods just use simple story boards while others are structured by fill-in the blanks style statements.

Use case template If you are not using a tool such as Topcased this is a nice outline to follow.

Use case structure Typically there may be several variations on a use and so multiple scenarios are grouped together under a single use case. There are types of scenarios that routinely are used: – Sunny day (everything goes well) – Rainy day (something does not work) – Exceptional (rare situations that require specific handling)

Use case model structure The use case model is not just a list of uses The model has structure resulting from relationships between uses – Extends – The use is written so that new uses can be incrementally defined by adding to an existing use; the original use case must indicate what can be extended – Generalizes – Similar to inheritance – Includes – Similar to composition

Use cases Use cases give a means of decomposing actors’ actions.

Here is what you are going to do: Form a team of three people. Remember that it might be nice to work with a friend, but look for persons who have specific skills that you need. Choose a name for the team. Submit the team name and the three people’s names as part of this week’s package.

Here is what you are going to do: Create use cases for a proposed app using Topcased Export the use case diagram Bundle the screen shot and exported use case diagram in a zip Use your team name as the name of the zip and to One copy only per team. Due September 4 th by Don’t forget the Sonar metrics printout. Also don’t forget the membership list for your team.