Software Engineering I (02161)

Similar documents
Software Engineering I (02161)

Software Engineering I (02161)

02291: System Integration

Software Engineering I (02161)

Software Engineering I (02161)

Software Engineering I (02161)

Software Engineering I (02161)

Lesson 11. W.C.Udwela Department of Mathematics & Computer Science

Requirements Engineering

02161: Software Engineering I

The Unified Modeling Language (UML)

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

Software Engineering I (02161)

Software Engineering I (02161)

Unified Modeling Language I.

CMSC 447: Software Engineering I

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

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

Class Diagrams in Analysis

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

Software Engineering I (02161)

From Analysis to Design. LTOOD/OOAD Verified Software Systems

Software specification and modelling. Requirements engineering

Chapter 5, Analysis: Dynamic Modeling

MSc programme (induction week) Department of Informatics INTRODUCTION TO UML

Software Service Engineering

Lecture 8 Requirements Engineering

Activity Diagram Written Date : September 02, 2016

Object-Oriented Design. Module UFC016QM. and Programming. Objects and Classes. O-O Design Unit 2: Faculty of Computing, Engineering

Ch 4: Requirements Engineering. What are requirements?

Chapter 3 Research Method

Software Engineering I (02161)

Interactions A link message

CSSE 374: UML Activity Diagrams. Shawn Bohner Office: Moench Room F212 Phone: (812)

Software Engineering

Äriprotsesside modelleerimine ja automatiseerimine Loeng 7 Valdkonna mudel

Requirements engineering

Index. brief description section (Use Case Specification documents), 138 Browser window (Rational Rose), 257 Business Rules document, 212

MechEng SE3 Lecture 7 Domain Modelling

Lesson 06. Requirement Engineering Processes

Software Engineering I (02161)

02291: System Integration

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

Software Engineering Fall 2014

LAB-03 BPMN Resource Perspective and Events

Requirements Engineering: Specification & Validation. Software Requirements and Design CITS 4401 Lecture 18

Introduction to Software Architecture. The top level... (and design revisited)

Enterprise Architect Training Courses

1: Specifying Requirements with Use Case Diagrams

02267: Software Development of Web Services

Software Processes. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 1

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

UNIT-4 Behavioral Diagrams

CSE 403. Requirements

Lecture 6: Requirements Engineering

2.0.3 attributes: A named property of a class that describes the range of values that the class or its instances (i.e., objects) may hold.

CSC Advanced Object Oriented Programming, Spring Overview

INTRODUCTION TO UNIFIED MODELING MODEL (UML) & DFD. Slides by: Shree Jaswal

NTS ONLINE BOOKING TOOL SABRE.RES

Business process modeling and automation IDU0330 Lecture 3 BPMN Enn Õunapuu ICT-643

02291: System Integration

Verification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1

Practical UML - A Hands-On Introduction for Developers

5 Object Oriented Analysis

Architecture and the UML

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

02291: System Integration

CaseComplete Roadmap

Concur Cliqbook Travel New User Interface

MTAT Business Process Management (BPM) (for Masters of IT) Lecture 3: BPMN (part II)

16.1 Introduction... 2

Business Process Modeling. Version /10/2017

Restricted Use Case Modeling Approach

02291: System Integration

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

Transactional Process

Table of Contents. Revision History. 1. Introduction Purpose Document Conventions Intended Audience and Reading Suggestions4

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

The Object-Oriented Design Process

A Rapid Overview of UML

Software Design And Modeling BE 2015 (w. e. f Academic Year )

Introduction to Software Engineering: Analysis

Alignment of Business and IT - ArchiMate. Dr. Barbara Re

Chapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design

2.0.3 attributes: A named property of a class that describes the range of values that the class or its instances (i.e., objects) may hold.

ArchiMate symbols for relating system elements

Object Oriented Design. Program Design. Analysis Phase. Part 2. Analysis Design Implementation. Functional Specification

Software Engineering I (02161)

The UML Extension Mechanisms

The Dynamic Model. An Introduction to UML. Enterprise Architect. by Geoffrey Sparks. All material (c) Geoffrey Sparks

350 Index 2005 GOAL/QPC

Quick Guide: Booking

On to Iteration 3, and Activity Diagrams CSSE 574: Session 6, Part 1

Software Testing. Software Testing. in the textbook. Chapter 8. Verification and Validation. Verification Techniques

Business Process Modeling. Version 25/10/2012

Business Process Management (BPM) Lecture 3: Advanced BPMN

Cisco QuickStart Implementation Service for Tetration Analytics Medium

Practical UML : A Hands-On Introduction for Developers

CS 4604: Introduction to Database Management Systems. B. Aditya Prakash Lecture #5: Entity/Relational Models---Part 1

One and a half hours. Appendix A is located at the back of the exam UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE

Transcription:

Software Engineering I (02161) Week 2 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2017

Contents What are software requirements? Requirements Engineering Process Domain model Activity Diagrams Use Cases Summary

Basic Activities in Software Development Understand and document what kind of the software the customer wants Requirements Analysis / Engineering Determine how the software is to be built Design Build the software Implementation Validate that the software solves the customers problem Testing

Requirements Analysis Requirements Analysis Understand and document the kind of software the customer wants Describe mainly the external behaviour of the system and not how it is realised what not how Techniques for discovering, understanding, and documentation Glossary and Business Processes: Understand the problem domain Use Cases: Understand and discover the functionality of the system User Stories: Understand and discover the functionality of the system

Types of Requirements Functional Requirements E.g. the user should be able to plan and book a trip Non-functional Requirements All requirements that are not functional E.g. Where should the software run? What kind of UI the user prefers? What is the response time?...

Who writes requirements? The customer: User requirements The contractor together with the customer System requirements The requirements for the software development team how to build the system more detailed than user requirements basis for a contract between customer and contractor

Travel Agency Example: User Requirements The travel agency TravelGood comes to you as software developers with the following proposal for a software project: Problem description / user requirements TravelGood wants to offer a trip-planning and booking application to its customers. The application should allow the customer to plan trips consisting of flights and hotels. First the customer should be able to assemble the trip, before he then books all the flights and hotels in on step. The user should be able to plan several trips. Furthermore it should be possible to cancel already booked trips. Not enough: Text needs to be analysed and system requirements extracted

Travel Agency Functional Requirements plan a trip, book a trip, save a planned trip for later booking,... Non-functional requirements System should be a Web application accessible from all operating systems and most of the Web browsers It must be possible to deploy the Web application in a standard Java application servers like GlassFish or Tomcat The system should be easy to handle (it has to a pass a usability test)

Non exclusive checklist of non-functional requirements Ian Sommerville, Software Engineering - 9

Characteristics of good requirements Testability manual/automatic acceptance tests Measurable Not measurable: The system should be easy to use by medical staff and should be organised in such a way that user errors are minimised

Characteristics of good requirements Testability manual/automatic acceptance tests Measurable Not measurable: The system should be easy to use by medical staff and should be organised in such a way that user errors are minimised Measurable: Medical staff shall be able to use all the system functions after four hours of training. After this training, the average number of errors made by experienced users shall not exceed two per hour of system use.

Possible measures Ian Sommerville, Software Engineering - 9

Contents What are software requirements? Requirements Engineering Process Domain model Activity Diagrams Use Cases Summary

Requirements engineering process A spiral view of the requirements engineering process Ian Sommerville, Software Engineering - 9

Requirements Engineering Process: Techniques Elicitation / Discovery Problem description Interviews Domain Model plus Business Processes Use Cases Specification / Documentation Use Cases / User Stories Validation Inspection Validity, Consistent, Complete, Realistic,... Creation of tests

Contents What are software requirements? Requirements Engineering Process Domain model Activity Diagrams Use Cases Summary

Domain model Purpose: capture the customer s knowledge of the domain so that the system builders have the same knowledge Helps customer and system builders to speak the same language Necessary to define the terminology used Glossary Relationships between terms are shown in a class diagram Related to the concept of an ontology If necessary, make business processes visible Represented by UML Activity Diagrams

Glossary glossary (plural glossaries) 1. (lexicography) A list of terms in a particular domain of knowledge with the definitions for those terms. (Wikitionary) List of terms with explanations Terms can be nouns (e.g. those mentioned in a problem description) but also verbs or adjectives e.t.c. List of terms with explanations Terms can be nouns (e.g. those mentioned in a problem description) but also verbs or adjectives e.t.c. Warning Capture only knowledge relevant for the application Don t try to capture all possible knowledge

Example Part of a glossary for a library application Book A book is a is a conceptual entity in a library. A book is defined by its title, the name of his authors, the publisher and the edition. A library can have several copies of the same book. Copy... A copy is a physical copy of a particular book. For example, the library has three copies of the book Using UML by Perdiate Stevens....

Terms and their relations Class diagrams Usually Classes (for nouns) Associations: for static relationships Generalizations Use of attributes possible Often without operations verbs operations Warning Shows customer knowledge Should not be biased by implementation

Domain model (terms and their relations) Generalization Associations Name of the association Multiplicities Class Attributes Reading direction

Contents What are software requirements? Requirements Engineering Process Domain model Activity Diagrams Use Cases Summary

Activity Diagram: Business Processes Describe the context of the system Helps finding the requirements of a system modelling business processes leads to suggestions for possible systems and ways how to interact with them Software systems need to fit in into existing business processes Ian Sommerville, Software Engineering 9, 2010

Activity Diagram Example Workflow

Activity Diagram Example Operation

UML Activity Diagrams Focus is on control flow and data flow Good for showing parallel/concurrent control flow Purpose Model business processes Model workflows Model single operations Literature: UML Distilled by Martin Fowler

Activity Diagram Concepts Actions Are atomic E.g Sending a message, doing some computation, raising an exception,... UML has approx. 45 Action types Concurrency Fork: Creates concurrent flows Can be true concurrency Can be interleaving Join: Synchronisation of concurrent activities Wait for all concurrent activities to finish (based on token semantics) Decisions Notation: Diamond with conditions on outgoing transitions else denotes the transition to take if no other condition is satisfied

Activity Diagrams Execution

Activity Diagrams Execution

Activity Diagrams Execution

Activity Diagrams Execution

Activity Diagrams Execution

Activity Diagrams Execution

Activity Diagrams Execution

Activity Diagrams Execution

Swimlanes / Partitions Swimlanes show who is performing an activity

Objectflow example

Data flow and Control flow Data flow and control flow are shown: Receive Invoice Order Make Payment Control flow can be omitted if implied by the data flow: Receive Invoice Order Make Payment

Use of Activity Diagrams Focus on concurrent/parallel execution Requirements phase To model business processes / workflows to be automated Design phase Show the semantics of one operation Close to a graphic programming language

Contents What are software requirements? Requirements Engineering Process Domain model Activity Diagrams Use Cases Diagrams Detailed Use Cases Summary

Use Case Use cases discover and document functional requirements Naming convention: Do something (= functionality): verb + noun Use Case A Use Case is a set of interaction scenarios of one or several actors with the system serving a common goal. Use Case Diagram A use case diagram provides and overview over the use cases of a system and who is using the functionality. Detailed Use Case description A detailed use case description describes the interaction between the user and the system as a set of scenarios

Use Case Diagram TravelAgency Plan Trip Manage Flights Book Trip Manage Hotels Administrator User Manage Trip Cancel Trip

Types of use case diagrams a) Business use cases (kite level use cases (from Alistair Cockburn)) b) System use cases / sea level use cases (fish level use cases (from Alistair Cockburn) UML Destilled, Martin Fowler

Example Business Use Cases TravelAgency Plan Trip Manage Flights Book Trip Manage Hotels Administrator User Manage Trip Cancel Trip

Example System Use Cases Plan trip use cases TravelAgency Search Avaialbe Flights Manage trip use cases TravelAgency Add Flight to Trip Save Trip Search Available Hotels Delete Trip Book Trip User Add Hotel to Trip Delete Hotel from Trip Delete Flight from Trip User Cancel Trip Edit Trip List Trip

Business Use Cases vs. System Use Cases Choose the appropriate detail level and stick with it Start with business use cases Overview over system functionality is more important than detail Add system level use cases as needed If needed use several diagrams

Relations between use cases extends: used to extract variant behaviour includes: used to factor common behaviour of use cases UML User Guide, Grady Booch et al Use extend and include sparingly

Don ts of Use case diagrams Use case diagrams don t explain how a use case works, this is part of the detailed use case description Travel Agency Login Select Trip Delete Selected Trip User User Travel Agency Delete Trip «include» «include» Login Select Trip Travel Agency Delete Trip User

Detailed use cases: Template Template to be used in this course for detailed use case descriptions name: The name of the use case description: A short description of the use case actor: One or more actors who interact with the system precondition: Possible assumptions on the system state to enable the use case (optional) main scenario: A description of the main interaction between user and system Note: should only explain what the system does from the user s perspective alternative scenarios: note: Used for everything that does not fit in the above categories To be used in the examination report

Use case scenarios System Use case Actor Use case scenarios = interaction between an actor and the system Anything the actor does with the system System responses Effects visible/important to the customer Not part of the interaction: What the system internally does

Detailed use case search available flights name: search available flights description: the user checks for available flights actor: user main scenario: 1. The user provides information about the city to travel to and the arrival and departure dates 2. The system provides a list of available flights with prices and booking number alternative scenario: 1a. The input data is not correct (see below) 2. The system notifies the user of that fact and terminates and starts the use case from the beginning 2a. There are no flights matching the users data 3. The use case starts from the beginning note: The input data is correct, if the city exists (e.g. is correctly spelled), the arrival date and the departure date are both dates, the arrival date is before the departure date, arrival date is 2 days in the future, and the departure date is not more then one year in the future

Detailed use case cancel trip name: cancel trip description: cancels a trip that was booked actor: user precondition: the trip must have been booked the first date for a hotel or flight booking must be one day in the future main scenario: 1. user selects trip for cancellation 2. the system shows how much it will cost to cancel the trip 3. selected trip will be cancelled after a confirmation

Pre-condition name: Delete trip actor: User scenario 1. login user 2. select trip 3. delete selected trip

Pre-condition name: Delete trip actor: User scenario 1. login user 2. select trip 3. delete selected trip Issue: The user has to login each time

Pre-condition name: Delete trip actor: User scenario 1. login user 2. select trip 3. delete selected trip Issue: The user has to login each time name: Delete trip actor: User precondition: user is logged in scenario 1. login user 2. select trip 3. delete selected trip Now has be logged in, but does not have to login each time

Contents What are software requirements? Requirements Engineering Process Domain model Activity Diagrams Use Cases Summary

Summary Requirements: functional vs non-functional; user vs system requirements Requirements process: discover, document, validate Discovering requirements Create a domain model: Glossary + Business Process Discovering and documenting requirements Use cases: Use case diagram + detailed use cases Next week User stories Changing requirements