Object-Oriented Design

Similar documents
Object-Oriented Design

Object-Oriented Design

Object-Oriented Design

Object-Oriented Design

Object-Oriented Design

Object-Oriented Design

Patterns in Software Engineering

The Unified Modeling Language User Guide

Patterns in Software Engineering

CompSci 125 Lecture 20. Inheritance: Introduction, Overrides UML: Introduction to Class Diagrams

Introduction to Unified Modelling Language (UML)

CHAPTER 1. Topic: UML Overview. CHAPTER 1: Topic 1. Topic: UML Overview

Introduction to Object-Oriented Programming

COP 3330 Final Exam Review

Polymorphism 2/12/2018. Which statement is correct about overriding private methods in the super class?

IBM Software Group. Mastering Requirements Management with Use Cases Module 10: Structure the Use-Case Model

Inheritance. Inheritance Reserved word protected Reserved word super Overriding methods Class Hierarchies Reading for this lecture: L&L

CGS 2405 Advanced Programming with C++ Course Justification

CSC207 Week 3. Larry Zhang

On UML2.0 s Abandonment of the Actors-Call-Use-Cases Conjecture

1 Method Signatures and Overloading (3 minutes, 2 points)

Inheritance and Polymorphism

1 Shyam sir JAVA Notes

Software Development Methodologies

Unified Modeling Language - UML

SE 1: Software Requirements Specification and Analysis

Software Development Methodologies

Super-Classes and sub-classes

Section 5.5. Left subtree The left subtree of a vertex V on a binary tree is the graph formed by the left child L of V, the descendents

UML Views of a System

Object-Oriented Systems Analysis and Design Using UML

Learning objectives. Unified Modeling Language (UML) crash course. Note well. Intro. Understand the concepts of UML model and UML diagram

REVIEW OF THE BASIC CHARACTERISTICS OF OBJECT ORIENTATION

Comp 249 Programming Methodology

Producing Graphical User Interface from Activity Diagrams Ebitisam K. Elberkawi, Mohamed M. Elammari

Engineering Design w/embedded Systems

Object-Oriented Programming

Unit 1 Introduction to Software Engineering

A Comparative Analysis of Use Case Relationships

Enhanced Class Design -- Introduction

C# and Java. C# and Java are both modern object-oriented languages

UML & OO FUNDAMENTALS CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 3 08/30/2011

Passing arguments to functions by. const member functions const arguments to a function. Function overloading and overriding Templates

JAVA MOCK TEST JAVA MOCK TEST III

4.1 Introduction Programming preliminaries Constructors Destructors An example... 3

Use case modeling. Use case modeling Søren Langkilde Madsen mail: mail:

CS260 Intro to Java & Android 03.Java Language Basics

CSC207H: Software Design. Java + OOP. CSC207 Winter 2018

1: Specifying Requirements with Use Case Diagrams

Software Development Methodologies

Week 8 Lecture: Programming

The Final Exam Paper. Duration: 2 hours Reading: 15 minutes Total marks: 65 Hurdle: 32.5

Declarations and Access Control SCJP tips

Late binding Ch 15.3

Computer Science 2 Lecture 4 Inheritance: Trinidad Fruit Stand 02/15/2014 Revision : 1.7

Advanced Object Oriented PHP

Basic Structural Modeling. Copyright Joey Paquet,

Templates and Vectors

On UML2.0 s Abandonment of the Actors- Call-Use-Cases Conjecture

Cmpt 135 Assignment 2: Solutions and Marking Rubric Feb 22 nd 2016 Due: Mar 4th 11:59pm

From Analysis to Design. LTOOD/OOAD Verified Software Systems

Code Generation & Parameter Passing

SE 1: Software Requirements Specification and Analysis

Design and Implementation of Bibliography Registration System

BAD BAD BAD! This doesn t work! REVIEW: define the animal class. CS61A Lecture 15. dogs inherit from animals (& can call parent methods) Inheritance

Contents. I. Classes, Superclasses, and Subclasses. Topic 04 - Inheritance

Anatomy of a Compiler. Overview of Semantic Analysis. The Compiler So Far. Why a Separate Semantic Analysis?

Object-Oriented Analysis and Design

BCS Certificate in Systems Modelling Techniques Syllabus Version 3.5 December 2016

The Compiler So Far. Lexical analysis Detects inputs with illegal tokens. Overview of Semantic Analysis

BCS Higher Education Qualifications. Diploma in IT. Object Oriented Programming Syllabus

Object Fundamentals Part Two. Kenneth M. Anderson University of Colorado, Boulder CSCI 4448/5448 Lecture 3 09/01/2009

Modelling with Classes. CITS1220 Software Engineering

Argument Passing All primitive data types (int etc.) are passed by value and all reference types (arrays, strings, objects) are used through refs.

ITEC420: Software Engineering Lecture 3: Recap OO/UML Requirement Workflow

Complete Binary Trees

Requirements Modeling

Information Systems Development Methodologies

MITOCW watch?v=flgjisf3l78

Using SharePoint 2007 To Deliver Communications and Content Across The Firm

Overview. Elements of Programming Languages. Objects. Self-Reference

Comparison Based Sorting Algorithms. Algorithms and Data Structures: Lower Bounds for Sorting. Comparison Based Sorting Algorithms

SE Assignment III. 1. List and explain primitive symbols used for constructing DFDs. Illustrate the use of these symbols with the help of an example.

CSE1720. General Info Continuation of Chapter 9 Read Chapter 10 for next week. Second level Third level Fourth level Fifth level

Software Service Engineering

Course "Softwaretechnik" Book Chapter 2 Modeling with UML

Tackling Design Patterns Chapter 3: Template Method design pattern and Public Inheritance. 3.1 Introduction... 2

QUIZ. Write the following for the class Bar: Default constructor Constructor Copy-constructor Overloaded assignment oper. Is a destructor needed?

administrivia today UML start design patterns Tuesday, September 28, 2010

Software Design and Analysis for Engineers

Abstract classes const member functions const arguments to a function Function overloading and overriding

Topic 5: Abstract Classes & Interfaces

CS111: PROGRAMMING LANGUAGE II

Algorithms and Data Structures: Lower Bounds for Sorting. ADS: lect 7 slide 1

Object Oriented Features. Inheritance. Inheritance. CS257 Computer Science I Kevin Sahr, PhD. Lecture 10: Inheritance

Core Java - SCJP. Q2Technologies, Rajajinagar. Course content

Dimensions for the Separation of Concerns in Describing Software Development Processes

CSS Cont'd: Cascading Style Sheets

A Design Rationale Representation for Model-Based Designs in Software Engineering

INHERITANCE. Spring 2019

Transcription:

Object-Oriented Design Lecturer: Raman Ramsin Lecture 5: Use Case Modeling Part 2 1

Activities of requirements workflow Capture Functional Requirements 1. Find actors and use cases 2. Prioritize use cases 3. Detail use cases 4. Prototype user interface 5. Structure the use-case model 2

Relationships actor generalization - a generalization relationship between a more general actor and a more specific actor use case generalization - a generalization relationship between a more general use case and a more specific use case «include» - a relationship between use cases that lets one use case include behavior from another «extend» - a relationship between use cases that lets one use case extend its behavior with one or more behavior fragments from another 3

Actor Generalization If two actors communicate with the same set of use cases in the same way, we can express this as a generalization to another (possibly abstract) actor. 4

Use Case Generalization Used when one or more use cases are really specializations of a more general case. Child use cases may: inherit features from their parent use case add new features override (change) inherited features (except for inherited relationships and extension points) Use case generalization is documented in use case specifications using a simple tag language on flow steps. There are two rules: Each step number in the child is postfixed by the equivalent step number in the parent if there is one. If the step in the child overrides a parent step, it is postfixed by "o" (for overridden) and then the step number in the parent. 5

Use Case Generalization: Example 6

«include» Relationship The «include» relationship between use cases allows you to include the behavior of one use case into the flow of another use case. 7

«include» Relationship: Specification The base use case is not complete without all of its inclusion use cases. Inclusion use cases may be complete (instantiable) or incomplete (behavior fragments) 8

«extend» Relationship provides a way to insert new behavior into an existing use case. The base use case is a complete use case and provides a set of extension points that are hooks where new behavior may be added. The extension use case provides a set of insertion segments that can be inserted into the base use case at these hooks. The relationship can specify exactly which extension points in the base use case are being extended. 9

«extend» Relationship: Example 10

«extend» Relationship: Extension Points 11

«extend» Relationship: Extension Use Cases Are not complete use cases and therefore can't be instantiated. Normally consist of one or more behavior fragments known as insertion segments. The «extend» relationship specifies the extension point in the base use case where the insertion segment will be inserted. 12

Extension Use Case: Single-Segment Example 13

Extension Use Case: Multiple-Segment Example 14

«extend» Relationship: Conditional Extensions 15

«extend» Relationship: Rules The «extend» relationship must specify one or more of the extension points in the base use case or it is assumed that the «extend» relationship refers to all extension points. The extension use case must have the same number of insertion segments as there are extension points specified in the «extend» relationship. It is legal for two extension use cases to «extend» the same base use case at the same extension point. But if this happens, the order in which the extensions execute is indeterminate. 16

Use Case Modeling: Hints and Tips - 1 1. Keep use cases short and simple Include only enough detail to capture the requirements. A good rule of thumb is to ensure that the main flow of a use case fits on a single side of paper. Start by simplifying the text Remove any design details Reanalyze the problem: Are there more than one use case? Can alternative flows be factored out? 17

Use Case Modeling: Hints and Tips - 2 2. Focus on the what, not the how Use cases should show wha the actors need the system to do, not how the system should do it. The how comes later in the design workflow. Example: 4. The system asks the Customer to confirm the order. 5. The Customer presses the OK button. Some sort of user interface has been imagined: a form with an OK button. Better be written as: 5. The Customer accepts the order. 18

Use Case Modeling: Hints and Tips - 3 3. Avoid functional decomposition - Functional Decomposition in Use Case Modeling: creating a set of "high level" use cases, and then breaking these down into a set of lower-level use cases and so on, until "primitive" use cases are reached that are detailed enough to be implemented. 19

Functional Decomposition in Use Case Modeling: Example 20

Reference Arlow, J., Neustadt, I., UML 2 and the Unified Process: Practical Object-Oriented Analysis and Design, 2 nd Ed. Addison-Wesley, 2005. 21