Software Design Models, Tools & Processes. Lecture 2: Inception Phase Cecilia Mascolo

Similar documents
Fundamentals: Software Engineering. Objectives. Last lectures. Unit 2: Light Introduction to Requirements Engineering

CS3205: Task Analysis and Techniques

2. Introduction to UML & Discussion of Related S.E.

Software Engineering - I

Lecture 5 Safety Analysis FHA, HAZOP

Topics. Overview- The UML Functional Model. Structural Model. Behavioral Models. Use Case Diagram (essential and system)

Software Engineering I (02161)

CIS 890: Safety Critical Systems

Lecture 8 Requirements Engineering

Model-Based Requirements Engineering. Tutorial by Kristian Sandahl

Requirement Analysis

Requirements. Chapter Learning objectives of this chapter. 2.2 Definition and syntax

CMSC 447: Software Engineering I

Unit 1 Introduction to Software Engineering

Lecture 6: Requirements Engineering

System models Abstract descriptions of systems whose requirements are being analysed. System modelling. Structured methods

Lesson 06. Requirement Engineering Processes

Tutorial notes on. Requirements analysis

Mathematics and Computing: Level 2 M253 Team working in distributed environments

Natural Language Specification

Ch t 8 Chapter 8. System Models

Software Life-Cycle Models

CS2353 OBJECT ORIENTED ANALYSIS AND DESIGN UNIT- I

Lecture 9 Requirements Engineering II

Object-Oriented Software Engineering Practical Software Development using UML and Java

F.P. Brooks, No Silver Bullet: Essence and Accidents of Software Engineering CIS 422

Software Specification 2IX20

Software specification and modelling. Requirements engineering

PESIT Bangalore South Campus Hosur road, 1km before Electronic City, Bengaluru -100 Department of MCA

Model-Based Requirements. Engineering. Planned topics. Introduction. Process. developer. time. modelling formalisation. fuzziness.

Introduction to Software Specifications and Data Flow Diagrams. Neelam Gupta The University of Arizona

Software Engineering from a

Objectives Pre-Test Questions Introduction Collaboration Diagrams Flow of Events and Special Requirements...

CS3500: Object-Oriented Design Fall 2013

5 Object Oriented Analysis

Requirements Engineering

Administrivia. Wednesday: Requirements and Specification. CS169 Lecture 4. We assign teams and you start on Monday. Determining Stakeholders and Needs

ArchiMate 2.0. Structural Concepts Behavioral Concepts Informational Concepts. Business. Application. Technology

Lecture 8: Use Case -Driven Design. Where UML fits in

MTAT Software Engineering. Written Exam 17 January Start: 9:15 End: 11:45

EXAM PREPARATION GUIDE

Managing and recording how your collections, including images and other reproductions of them, are used, whether by you or anyone else.

System Analysis & design

Service Design Description for the xxx Service <xyz Technology>

EXAM PREPARATION GUIDE

Software Specification and Architecture 2IW80

Version 5. Recruiting Manager / Administrator

The software lifecycle and its documents

Software Engineering I (02161)

Designing a System Engineering Environment in a structured way

EXAM PREPARATION GUIDE

QA Best Practices: A training that cultivates skills for delivering quality systems

REQUIREMENTS. Michael Weintraub Spring, 2016

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 09/17/2015

Chapter 1 Introduction

Modeling Requirements

Conceptual and Logical Design

Ch 4: Requirements Engineering. What are requirements?

Principles of Software Construction: Objects, Design, and Concurrency

Chapter 3 Research Method

Vocabulary-Driven Enterprise Architecture Development Guidelines for DoDAF AV-2: Design and Development of the Integrated Dictionary

18-642: Software Architecture & High Level Design

Lecture 5: Requirements Specifications

Release of Octopus/UML

Interaction Modelling: Use Cases

Lab Manual. Object Oriented Analysis And Design. TE(Computer) VI semester

Lecture 6: Requirements Engineering

A Beginners Guide to UML Part II

Modeling Crisis Management System With the Restricted Use Case Modeling Approach

Darshan Institute of Engineering & Technology for Diploma Studies

Human Error Taxonomy

Rich Hilliard 20 February 2011

Security Analysis Part I: Basics

Outline. Data Definitions and Templates Syntax and Semantics Defensive Programming

Modeling Requirements

IBD CERTIFICAÇÕES. Fair Trade Certification Step by step. Welcome to IBD!

Principles of Software Construction: Objects, Design, and Concurrency

Lecture Notes UML UNIT-II. Subject: OOAD Semester: 8TH Course No: CSE-802

EXAM PREPARATION GUIDE

Lecture 5 STRUCTURED ANALYSIS. PB007 So(ware Engineering I Faculty of Informa:cs, Masaryk University Fall Bühnová, Sochor, Ráček

Requirements. Requirements. Types of Requirement. What Is a Requirement?

Restricted Use Case Modeling Approach

MTAT Software Engineering. Written Exam 10 January Start: 9:15 End: 11:45

Requirements Elicitation

OO Project Management

Enhancing validation with Prototypes out of Requirements Model

Requirements Engineering

A - 1. CS 494 Object-Oriented Analysis & Design. UML Class Models. Overview. Class Model Perspectives (cont d) Developing Class Models

more uml: sequence & use case diagrams

The UML Extension Mechanisms

SOFTWARE LIFE-CYCLE PROCESSES From Waterfall to Extreme Programming

Scenario-Based Analysis. Scenario-Based Analysis (example) Form analysis

Update on AADL Requirements Annex

Best Practices for Model-Based Systems Engineering

RSPO Certification Step by step

Object Oriented Software Development CIS Today: Object Oriented Analysis

SE 1: Software Requirements Specification and Analysis

BCS Certificate in Requirements Engineering Extended Syllabus Version 2.5 May 2017

Lecture Room Audio-Visual and Computing Equipment

NUR- Formal description/models of user interfaces. Task models

Transcription:

Software Design Models, Tools & Processes Lecture 2: Inception Phase Cecilia Mascolo

Inception Phase This is the phase when most of the system requirements are identified. Discover and reach agreement on what the system has to do with the customer. Create a high level specification of what the system should do.

Development Process I n c e p t i o n E l a b o r a t i o n C o n s t r u c t i o n T r a n s i t i o n Requirements Analysis Design Implementa2on Test P r e l i m i n a r y I t e r a t i o n ( s ) i t e r. # 1 i t e r. # 2 i t e r. # n i t e r. # n + 1 i t e r. # n + 2 i t e r. # m i t e r. # m + 1

What are requirements? 1. A condition or capability needed by a user to solve a problem or achieve an objective. 2. A condition or capability that must be met or possessed by a system or system component to satisfy a contract, standard, specification, or other formally imposed document. 3. A documented representation of a condition or capability as in 1 or 2. [IEEE Glossary]

Why are requirements important? The hardest single part of building a software system is deciding precisely what to build. No other part of the conceptual work is as difficult as establishing the detailed technical requirements, including all the interfaces to people, to machines, & to other software systems. No other part of the work so cripples the resulting system if done wrong. No other part is more difficult to rectify later. [Fred Brooks in The Mythical Man Month ]

The economics of requirements Relative cost to fix an error [Boehm 1980] Phase in which found Cost ratio requirements 1 design 3-6 coding 10 development testing 15-40 acceptance testing 30-70 operation 40-1000 & these figures are considered conservative!

Example Problem statement You have been contracted to develop a computer system for a university library. The library currently uses a 1960s program, written in an obsolete language, for some simple bookkeeping tasks, & a card index, for user browsing. You are asked to build an interactive system which handles both of these aspects online. Your task is to determine a baseline set of information you can use to start designing your system

Writing a requirements document Requirements document, requirements specification document, requirements specification etc. Statement of organised user/system requirements - generally written in natural language We need this to start software development with USDP <unique id> The <system name> shall <funclon to perform> 23. The Library System shall validate the library card Note that this is not a formal deliverable in USDP

Functional & non-functional requirements Functional - what the system should do e.g. the library system shall provide a facility for identifying the identity of a library user e.g. the library system shall provide a reminder when a book is overdue Non-functional - a constraint on how the functional requirements can be implemented e.g. the library system shall authenticate a library customer in five seconds or less e.g. the library system shall communicate with borrowers using Email

Requirements prioritisation MoSCoW criteria M: Must have - mandatory requirements that are fundamental to the system S: Should have - important requirements that could be omitted C: Could have - optional requirements W: Want to have - these requirements really can wait (i.e. bells & whistles)

Exercise Determine a set of functional requirements for the library system Consider the problem statement Interview each other in your group about how you use the library & consider what a system would need to do to support this What you have to do Express the functional requirements as shall statements with a unique ID for traceability Group your requirements into sensible sets (e.g. user interface, borrowing, browsing) Prioritise your requirements using MoSCoW

Example format ID Functional requirements Priority Collection 1 the system shall M 2 the Borrowing 3 Browsing 4 Membership 5 User interface 6

Exercise Now consider the non-functional requirements for the library system Add a section to your document for non-functional requirements, & consider aspects like Capacity Availability Reliability Performance Security Compliance to standards Again, give each a unique ID & a priority

Maintaining a project glossary This is another document to start at the beginning of a project & maintain throughout its duration The glossary captures the language of the business domain & project - it helps to provide a shared vocabulary & resolve some misunderstandings Key term Term 1 DefiniLon DefiniLon 1

Exercise Try to build a list of words that are important in the domain of the library and briefly describe them Nouns Verbs

Use Case Modelling System Actor The use cases are the first step of the UML development process From the requirement document Use cases help in specifying what the system does with respect to the user Use case Use case Actor

What is use case modelling? Basis of a user-oriented approach to system development Identify the users of the system (actors) Identify the tasks they must undertake with the system (use cases) & prioritise Relate users & tasks (relationships) Helps idenlfy the system boundary Use case models therefore contain actors, use cases & relationships Use case modelling is considered a form of requirements engineering, as it complements more traditional approaches

Establishing traceability Use case models document requirements in a complementary way to traditional requirements documents Items in these requirements documents should be linked to items in the use case models to ensure coverage, to help assess completeness of the requirements & to ensure consistency Establishing this link enables requirements traceability This is essential for change management & is typically tool supported

Requirement Tracing UC1 UC2 UC3 R1 x x R2 x R3 x x

Use case driven Describes the domain Use case Implements Verifies Analysis Design Test Implements Implement/deploy Adapted from [Muller 1997] p160

What are actors? Who or what uses the system An actor is anything that interacts directly with the system (e.g. a person, a system) An actor is a user of the system in a particular role An actor is generally external to a system, though the system may hold an internal representation of the actor (e.g. BookBorrower) Depicted as a stick person Actors trigger use cases BookBorrower

How to find actors Observe the direct users of the system - those people or systems responsible for its installation, use or maintenance (both who & what) What roles do these users play in the interaction? Who provides information to the system? Who receives information from the system? Same physical person may play the role of a number of actors; many people may play the same role so act as the same actor Becomes clearer as use cases are developed

Describing actors Describe each actor clearly & precisely in a few lines of English Short name Short description (semantics) Actors may have attributes (not so used) BookBorrower this actor represents someone that makes use of the library for borrowing books

Exercise Take the existing requirements document for the library system & identify all the actors that interact with the system Remember to specify the actors as roles For each actor, write down the actor name & provide a brief textual description describing the semantics of the actor Actor Name 1 SemanLcs DescripLon 1

What are use cases? Things actors do with the system A task which an actor needs to perform with the help of the system (e.g. Borrow copy of book) A specific kind of system use - a case of use Describes the behaviour of a system from a user s standpoint by using actions & reactions (design independent) Represented as ellipses, internal to the system Triggered by an actor Borrow copy of book

How to find use cases Start with the list of actors & consider What they need from the system (i.e. what use cases there are which have value for them) Any other interactions they expect to have with the system (i.e. which use cases they might take part in for someone else s benefit) How do you know what is a use case? Estimate frequency of use, examine difference between cases, distinguish between 'basic' & 'alternative' courses of events & create new use cases where necessary Leads to the identification of new actors

Describing use cases Shown as a named ellipse representing the kind of task that has to be done with support from the system under development Semantics detailed in text - thirdperson, active-voice Borrow copy of book A BookBorrower presents a book. The system checks that the potenlal borrower is a member of the library, & that s/he does not already have the maximum number of books on loan. This maximum is six unless the member is a staff member, in which case it is twelve. If both checks succeed, the system records that this library member has this copy of the book on loan. Otherwise it refuses the loan.

Exercise Take the existing requirements document for the library system & your list of actors, then identify all the use cases for the system Remember to specify the use cases as active tasks For each use case, write down the use case name & provide a brief textual description describing the semantics of the use case Use case Name 1 SemanLcs DescripLon 1

How to construct a use case diagram Characterises the behaviour of whole system (i.e. shows all the use cases at the top level & their actors) Helps to visualise context & boundary of the system Actor System Use case Use case Actor We are now adding communicalon relalonships between the actors & the use cases (i.e. idenlfying beneficiaries)

Example use case diagram Taken from [Booch 1999]

Exercise Use the UML notation for both actors & use cases to create a use case diagram that indicates the relationships between the actors & the use cases in our library system Library System BookBorrower Borrow copy of book Return copy of book Update catalogue Librarian

Detailing a use case This involves writing a specification for the use case Requires an outline use case model and the additional requirements documents There are some good practice guides Preconditions: the system state before the use case can begin (i.e. things that must be true) Flow of events: the steps in the use case (i.e. something does some action) Postconditions: the system state after the use case has completed (i.e. things that must be true)

Example specification Borrow copy of book Precondi6ons 1. The BookBorrower is a member of the library 2. The BookBorrower had not got more than their permifed number of Books on loan Flow of events 1. The use case starts when the BookBorrower afempts to borrow the copy of the book 2. The librarian checks it is ok to borrow the book 3. If... Indicates an alternalve path of aclon Postcondi6ons 1. The system has updated the number of Books the BookBorrower has on loan

Summary Use case modelling sets out all the actors, use cases & the relationships between them, setting the boundaries of the system to be built An actor is a role that interacts directly with the system by exchanging information A use case is a coherent unit of functionality that the system can perform by interacting with outside actors A use case diagram captures all the top-level functionality of the system as seen by its users (i.e. the key use cases)