Software Modeling & Analysis

Similar documents
Constantinos Constantinides Computer Science and Software Engineering Concordia University Montreal, Canada

COMP 6471 Software Design Methodologies

References: Applying UML and patterns Craig Larman

OO Design2. Design Artifacts

From designing to coding

Mapping Designs to Code

Software Modeling & Analysis

Assigning Responsibilities by Larman

What is a Model? Copyright hebley & Associates

Designing for Visibility & Mapping to Code CSSE 574: Session 4, Part 3

Design. Furthermore, it is natural to discover and change some requirements during the design and implementation work of the early iterations.

Assigning Responsibilities (Patterns of Responsibility Assignment Principles: GRASP)

CTIS 359 Principles of Software Engineering SOFTWARE DESIGN OO(A)D

UML Behavioral Models

Download FirstOODesignPractice from SVN. A Software Engineering Technique: (Class Diagrams)

Applying UML & Patterns (3 rd ed.) Chapter 15

Object-Oriented Functional Analysis and Design for POS Example

Principles of Software Construction: Objects, Design, and Concurrency. Assigning Responsibilities to Objects. toad. Jonathan Aldrich Charlie Garrod

GRASP: Patterns for. chapter18

Modeling Dynamic Behavior

Creating Class Definitions from Design Class Diagrams: public class SalesLineItem // Java { private int quantity;

Information Expert (or Expert)

Some Software Engineering Techniques (Class Diagrams and Pair Programming)

Chapter 3: Object Oriented Design

Modeling Dynamic Behavior

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

SE203b: OO Design for Software Engineers. Office: TEB349, Ext

BDSA08 Advanced Architecture

COMP 354: INTRODUCTION TO SOFTWARE ENGINEERING

2 GRASP Patterns and basic OO Design. Roel Wuyts OASS

INFO-H-302. Object-Oriented Analysis and Design. Prof. Esteban Zimányi

Operations Contracts and Preliminaries on Design

Sequence Diagram. A UML diagram used to show how objects interact. Example:

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

Responsibilities. Using several specific design principles to guide OO design decisions.

Object Analysis & Design in the textbook. Introduction to GRASP: Assigning Responsibilities to Objects. Responsibility-Driven Design

Chapter 15 UML Interaction Diagrams. Larman, C. Applying UML and Patterns. 3rd Ed. Ed. Prentice-Hall: 2005.

Goal: build an object-oriented model of the realworld system (or imaginary world) Slicing the soup: OOA vs. OOD

COMP 6471 Software Design Methodologies

Sequence Diagram. r: Register s: Sale

Logical Architecture & Design Preliminaries

Domain Modeling. CSSE 574: Week 1, Part 3. Steve Chenoweth Phone: Office (812) Cell (937)

ADVANCED SOFTWARE DESIGN LECTURE 7 GRASP

Software Design and Analysis CSCI 2040

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.

Final Exam CISC 475/675 Fall 2004

Object-Oriented Analysis and Design

VEL TECH HIGH TECH Dr. RANGARAJAN Dr. SAKUNTHALA ENGINEERING COLLEGE UNIT 1 UML DIAGRAMS

System Sequence Diagrams. Based on Craig Larman, Chapter 10 and Anuradha Dharani s notes

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

Domain Modeling- 2. Generalization

Principles of Software Construction: Objects, Design and Concurrency. Object-Oriented Design: Assigning Responsibilities.

ROEVER ENGINEERING COLLEGE DEPARTMENT OF INFORMATION TECHNOLOGY CS2353-OBJECT ORIENTED ANALYSIS AND DESIGN. Unit-I. Introduction to OOAD

Class Diagrams in Analysis

On to Object-oriented Design

CSSE 374: Design Class Diagrams. Shawn Bohner Office: Moench Room F212 Phone: (812)

OBJECT ORIENTED DESIGN with the Unified Process. Use Case Realization

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING CS2353-OBJECT ORIENTED ANALYSIS AND DESIGN. Unit-I. Introduction to OOAD

CSSE 374: Logical Architecture. Shawn Bohner Office: Moench Room F212 Phone: (812)

PROCESSI DI PRODUZIONE E GESTIONE DEL SOFTWARE. Analysis and Design with UML. Paola Turci

17. GRASP: Designing Objects with Responsibilities

SEEM4570 System Design and Implementation Lecture 11 UML

Last Time: Object Design. Comp435 Object-Oriented Design. Last Time: Responsibilities. Last Time: Creator. Last Time: The 9 GRASP Patterns

Week 9 Implementation

Software Life-Cycle Models

Modeling with UML. (1) Use Case Diagram. (2) Class Diagram. (3) Interaction Diagram. (4) State Diagram

Chapter 1: Programming Principles

UML Fundamental. OutLine. NetFusion Tech. Co., Ltd. Jack Lee. Use-case diagram Class diagram Sequence diagram

Objectives. Explain the purpose and objectives of objectoriented. Develop design class diagrams

BDSA Introduction to OOAD. Jakob E. Bardram

OBJECT ORIENTED ANALYSIS AND DESIGN SYLLABUS

Domain Model and Domain Modeling

PART 5 Elaboration Iteration 3 Intermediate topics. Iteration 3

Object-Oriented Design

Outline of UML and Unified Process. Object Oriented Analysis/Design/Programming UML1.5. Koichiro Ochimizu, JAIST. UML&UP outline 1.

Class diagrams. Modeling with UML Chapter 2, part 2. Class Diagrams: details. Class diagram for a simple watch

Recap : UML artefacts. Black Box Requirements. Functional Specification. System. System. Test. Design. System. System. Development.

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

Design Engineering. Overview

Functional Design of Web Applications. (partially, Chapter 7)

CS6502-OBJECT ORIENTED ANALYSIS AND DESIGN Two Marks Question with Answers Unit-I Introduction to OOAD

Chapter 10 Object-Oriented Design Principles

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh

Principles of Software Construction: Objects, Design, and Concurrency

Topic : Object Oriented Design Principles

GRASP Design Patterns A.A. 2018/2019

Chapter 1: Principles of Programming and Software Engineering

Object-Oriented Design and Modeling Using the UML

Outline of Unified Process

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin

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

OBJECT ORIENTED DESIGN with the Unified Process. Use Case Realization

Software Service Engineering

Best Practices for Model-Based Systems Engineering

Domain Modeling: Associations and Attributes

Principles of Software Construction: Objects, Design, and Concurrency

Software Specification 2IX20

Requirements and Design Overview

12 Tutorial on UML. TIMe TIMe Electronic Textbook

Transcription:

Software Modeling & Analysis OOPT (Object Oriented Process with Trace) Lecturer: JUNBEOM YOO jbyoo@konkuk.ac.kr

What is OOPT? OOPT (Object Oriented Process with Trace) A software process based on RUP Revision of OSP (by Tailored to SE classes in universities) Characteristics of OOPT 3 Stages 1. Iterative : Multiple development cycles 2. Incremental : System grows incrementally as each cycle is completed 3. Architecture : Stage > Cycle > Phase > Activity 1000 Plan and 2000 3000 Build Elaboration Deployment 2

1. 3 Stages 1000 Plan and 2000 3000 Build Elaboration Deployment Stage 1000 : Plan and Elaboration Planning, defining requirements, building prototyping, etc Corresponding to Inception/Elaboration phases in the RUP Stage 2000 : Build Construction of the system Corresponding to Construct phase in the RUP Stage 3000 : Deployment Implementation of the system into use Corresponding to Transition phase in the RUP 3

2. Iterative Development Multiple iterations in the Build stage Each iteration took about 2 to 8 weeks 1000 Plan and 2000 3000 Build Elaboration Deployment 2100 2200 Cycle 1 Cycle 2... 2n00 Cycle n 2110 Revise 2120 Sync. Plan Artifacts 2130 Analyze 2140 Design 2150 Construct 2160 Test 4

3. Incremental Development 1000 Plan and 2000 3000 Build Elaboration Deployment 2100 2200 Cycle 1 Cycle 2... 2n00 Cycle n Use-Case A Simplified Version... Use-Case A Full Version... Use-Case D Full Version... Use-Case B Full Version... Use-Case C Simplified Version... Use-Case C Full Version... 5

4. Architecture of OSP Stage 1000 Plan and 2000 3000 Build Elaboration Deployment 2100 2200 Cycle 1 Cycle 2... 2n00 Cycle n 2110 Revise 2120 Sync. Plan Artifacts 2130 Analyze 2140 Design 2150 Construct 2160 Test Activity 2141 Define 2142 Define 2143 Refine 2144 Define 2145 Define 2146 Define Real Use Cases Reports & UI System Archi. Interaction D. Design Class D DB Schema 6

Phase 2040. Design 2110 Revise 2120 Sync. Plan Artifacts 2130 Analyze 2140 Design 2150 Construct 2160 Test

Phase 2040. Design Phase 2040 Activities a. In parallel with interaction diagrams b. Varied order 2140 Design 2141 Design Real Use Cases 2142 Define Reports, 2143 Refine UI, and Storyboards System Architecture b 2144 Define Interaction Diagrams 2145 Define Design a Class Diagrams 2146 Design Traceability Analysis 2147 Define Database Schema 8

Activity 2041. Design Real Use Cases 2141 Design Real Use Cases 2142 Define Reports, UI, and Storyboards Description It describes real/actual design of the use case in terms of concrete input and output technology and its overall implementation. If a graphical user interface is involved, the real use case will include diagrams of the GUI and discussion of the low-level interactions with interface widgets. Input : Essential Use Case Descriptions Output : Real Use Case Descriptions 9

Activity 2041. Design Real Use Cases Steps 1. Select each use case from essential use cases 2. Add user interface widgets into the expanded format, and concrete implementation details into the typical courses of events Object Store UPC A Quantity E Price B Descrpt. F Total C Balance G Tendered D Window-1 Enter Item End Sale Make Payment H I J 10

Activity 2041. Design Real Use Cases Use Case Actor Purpose Overview Type Cross Reference Pre-Requisites UI Widgets Typical Courses of Events Alternative Courses of Events Exceptional Courses of Events Buy Items Version 1 (Cash only) Customer, Cashier Capture a sale and its cash payment A Customer arrives at a checkout with items to purchase. The Cashier records the items and collects cash payment, which may be authorized. On completion, the Customer leaves with the items. Primary and Real Functions: R1.1, R1.2, R1.3, R1.7, R1.9, R2.1 Use Cases: Log In use case N/A Window-1 (A) : Actor, (S) : System 1. (A) This use case begins when a customer arrives at the POST to checkout with items to purchase. 2. (A) For each item, the Cashier types an UPC in A of Window-1. If there is more than one of an item, the quantity may optionally be entered in E. They press B after each item entry. (E1) 3. (S) Adds the item information to the running sales transaction. The description and price of the current item are displayed in B and F of Window1. 4. (A) The Cashier tells the customer the total. E1: If an invalid UPC is entered, indicate an error. 11

Activity 2042. Define Reports, UI, and Storyboards 2141 Design 2142 Define Reports, 2143 b Refine Real Use Cases UI, and Storyboards System Architecture Description Design UI storyboard and UI components. Input : Requirements Specification, Real Use Case Descriptions Output : UI Storyboard, UI Component Design Specification 12

Activity 2043. Refine System Architecture 2142 Define Reports, 2143 b Refine UI, and Storyboards System Architecture 2144 Define Interaction Diagrams Description Refine draft system architecture developed in the plan stage Input : Draft System Architecture Output : A package diagram, a deployment diagram Standards Applied UML s Package Diagram UML s Deployment Diagram 13

Activity 2043. Refine System Architecture Steps (1~3: Deployment diagram, 4~7: Package diagram) 1. Define a 3-tier layered system architecture Presentation Layer : Windows, Reports, and so on Application Logic Layer : Tasks and rules that govern the process Storage Layer : Persistent storage mechanism Presentation POSTApplet Application Logic Record sales Authorize payments Storage Database 14

Activity 2043. Refine System Architecture 2. Decompose the application logic tier into finer layers Domain object layer Classes representing domain concepts Service layer Service objects for functions such as database interaction, reporting, communications, security, and so on Presentation POSTApplet Application Logic Payment Database Interface Sale ReportGenerator Domain Layer Services Layer Storage Database 15

Activity 2043. Refine System Architecture 3. Assign each tier into different physical computing nodes, and/or different processes Client computer Presentation POSTApplet Application Server Application Logic Payment Database Interface Sale ReportGenerator Data Server Storage Database 16

Activity 2043. Refine System Architecture 4. Identify packages Place elements together that are in the same subject area-closely related by concept or purpose, or that are in a type hierarchy together that participate in the same use cases or that are strongly associated Core POST Store Manager Sales Sales Sale Cashier Customer LineItem Products Item Product Catalog Product Specification 17

Activity 2043. Refine System Architecture 5. Layers of the architecture : vertical tiers Partitions of the architecture : horizontal division of relatively parallel subsystems Domain Core Elements Sales Products Vertical Layers Services Relational Database Interface Communication Object Database Interface Reporting Horizontal Partitions 18

Activity 2043. Refine System Architecture 6. Determine package dependencies Dependency relationships indicates coupling between packages. Domain Core Elements Sales Dependency 19

Activity 2043. Refine System Architecture 7. Assign visibility between package classes. Access into the Domain packages Some packages, typically the presentation package, have visibility into many of the classes representing domain concepts Access into the Service packages Some packages, typically the Domain and Presentation packages, have visibility into only one or a very few classes in each particular Service package Access into the Presentation packages No other packages have direct visibility to the Presentation layer 20

Activity 2043. Refine System Architecture Domain Visibility into many classes from other packages....... Sale...... Payment...... Product Catalog Product Description...... RDB Interface Security... DBFacade get(id) : Object save(object)......... Broker...... Proxy... Security Facade adduser(user)......... User Visibility into one or only a few classes in each Service package. 21

Activity 2044. Define Interaction Diagrams 2143 b Refine System Architecture 2144 Define 2145 Define Design a Interaction Diagrams Class Diagrams Description Collaboration diagrams illustrate object interactions in a graph or network format. To illustrate how objects interactions via messages to fulfill tasks. Input : Real Use Case Descriptions Output : An interaction diagram Standards Applied UML s Sequence Diagram or Collaboration Diagram 22

Activity 2044. Define Interaction Diagrams Interaction diagram is a generalization of two more specialized UML diagram types: Collaboration diagram Sequence diagram The both can be used to express similar message interactions Collaboration Diagram Illustrates object interactions in a graphs or network format Sequence Diagram Illustrates interactions in a kind of fence format, in which each new object is added to the right. 23

Activity 2044. Define Interaction Diagrams Sequence Diagram vs. Collaboration Diagram Type Strengths Weaknesses Sequence Diagram Collaboration Diagram Clearly shows sequence or time ordering of messages Space economical and flexible to add new objects in two dimensions Better to illustrate complex branching, iteration, and concurrent behavior Forced to extend to the right, when adding new objects with consuming horizontal space Difficult to see sequence of messages 24

Activity 2044. Define Interaction Diagrams Steps 1. Draw up actors 2. Deploy objects or classes participating each use case from the real use case descriptions and conceptual class diagram 3. Design a system of interacting objects to fulfill the tasks. Regard the use case description as a starting point 25

Activity 2044. Define Interaction Diagrams Illustrating Classes and Instances Sale Class :Sale Instance s1:sale Named Instance 26

Activity 2044. Define Interaction Diagrams Illustrating Links and Parameters A link is a connection path between two instances. Msg1( ) :POST 1: addpayment(amount:money) :Sale Illustrating a Return Value Msg1( ) :POST 1: tot := total( ): Integer :Sale 27

Activity 2044. Define Interaction Diagrams Message Syntax return := message(parameter : parametertype) : returntype Standard UML message syntax Msg1( ) :POST 1: addpayment(amount: Money) :Sale Illustrating Messages to Self ( This ) :POST Msg1( ) 1: clear( ) 28

Activity 2044. Define Interaction Diagrams Illustrating Iterations Iteration Msg1( ) :POST 1*: li := nextlineitem( ): SalesLineItem :Sale Iteration Clause Msg1( ) :POST 1*: [i:=1..10] li := nextlineitem( ): SalesLineItem :Sale 29

Activity 2044. Define Interaction Diagrams Illustrating Creation of Instances Creating message with optional initializing parameters Illustrating Conditional Messages Msg1( ) :POST 1: [new sale] create(cashier) :Sale 30

Activity 2044. Define Interaction Diagrams Illustrating Message Number Sequencing The first message is not numbered The order and nesting of subsequent messages are shown with a legal numbering scheme msg1( ) :ClassA 1: msg2( ) :ClassB 1.1: msg3( ) :ClassC 31

Activity 2044. Define Interaction Diagrams Illustrating Mutually Exclusive Conditional Paths msg1( ) :ClassE :ClassA 2: msg6( ) unconditional after either msg2 or msg4 1a: [test1] msg2( ) 1a and 1b are mutually exclusive conditional paths :ClassB 1b: [not test1] msg4( ) 1a.1: msg3( ) :ClassD 1b.1: msg5( ) :ClassC 32

Activity 2044. Define Interaction Diagrams Illustrating Collections A multi-object, or set of instances, may be shown with a stack icon sales:sale 33

Activity 2044. Define Interaction Diagrams Illustrating Messages to Multi-objects A message to a multi-object icon indicates that it is sent to the collection object itself Msg1( ) :Sale 1: s :=size( ) : int :SalesLineItem 34

Activity 2044. Define Interaction Diagrams Illustrating Messages to a Class Object Messages may be sent to a class itself not an instance, in order to invoke class methods Msg1( ) :Sale 1: d1 := today( ): Date Date 35

Activity 2045. Define Design Class Diagrams 2144 Define 2145 Define Design a 2146 Design Interaction Diagrams Class Diagrams Traceability Analysis Description Describes more details in conceptual class diagram Add navigability, dependency, data type, operation signature, parameters, return types, and so on. Input : Interaction Diagram, Conceptual Class Diagram Output : A Design Class Diagram Standards Applied UML s Class Diagram 36

Activity 2045. Define Design Class Diagrams Steps 1. Identity all classes 2. Draw them in a class diagram 3. Add attributes 4. Add method names 5. Add type information to the attributes and methods 6. Add the associations 7. Add navigability arrows 8. Add dependency 37

Activity 2045. Define Design Class Diagrams Step 1. Identify all classes by scanning all interaction diagrams listing classes mentioned POST ProductCatalog Store Payment Sale ProductSpecification SalesLineItem 38

Activity 2045. Define Design Class Diagrams Step 2. Draw a class diagram includes classes found in Step 1 POST ProductCatalog ProductSpecification Store Sale SalesLineItem Payment 39

Activity 2045. Define Design Class Diagrams Step 3. Add attributes Include the attributes previously identified in the conceptual class diagram that are also used in the design POST ProductCatalog quantity ProductSpecification description price UPC address name Store Sale date iscomplete time SalesLineItem quantity amount Payment 40

Activity 2045. Define Design Class Diagrams Step 4. Add method names Identify method of each class by scanning the interaction diagrams The messages sent to a class in interaction diagrams must be defined in the class Don t add creation methods and constructors accessing methods messages to a multiobject Sale :POST 3: makelineitem(spec, qty) :Sale date iscomplete time makelineitem() 41

Activity 2045. Define Design Class Diagrams POST endsale( ) enteritem( ) makepayment( ) ProductCatalog quantity Specification( ) ProductSpecification description price UPC address name Store addsale( ) Sale date iscomplete time becomecomplete( ) makelineitem( ) makepayment( ) total( ) SalesLineItem quantity subtotal( ) amount Payment 42

Activity 2045. Define Design Class Diagrams Step 5. Add type information Show types of attributes, method parameters, and method return values optionally. Determine whether to show type information or not When using a CASE tool with automatic code generation, exhaustive details are necessary If it is being created for software developers to read, exhaustive detail may adversely effect the noise-to-value ratio 43

Activity 2045. Define Design Class Diagrams POST endsale( ) eneritem(upc : integer, qty : integer) makepayment(cash Tendered : Quantity) ProductCatalog specification(upc : integer) : ProductSpecification) ProductSpecification description : Text price : Quantity upc : UPC Store address : Address name : Text addsale(s:sale) date : Date iscomplete : Boolean time : Time Sale becomecomplete( ) makelineitem(spec : ProdSpecification, qty : integer) makepayment(cashtendered : Quantity) total( ) : Quantity SalesLineItem quantity : integer subtotal( ) : Quantity Payment amount : Quantity Return type of method void : no return type Konkuk University 44

Activity 2045. Define Design Class Diagrams Step 6. Add associations Choose associations by software-oriented need-to-know criterion from the interaction diagrams Step 7. Add navigability arrows According to the interaction diagram Common situations to define navigability A sends a message to B A creates an instance B A needs to maintain a connection to B Konkuk University 45

Activity 2045. Define Design Class Diagrams POST class will probably have an attribute pointing to a Sale object. Navigability arrow indicates POST objects are connected uni-directoinally to Sale object. POST endsale( ) eneritem( ) makepayment( ) 1 Captures Absence of navigability arrow indicates no connection from Sale to POST. 1 date iscomplete time Sale becomecomplete( ) makelineitem( ) makepayment( ) total() 46

Activity 2045. Define Design Class Diagrams Step 8. Add dependency relationship when there is non-attribute visibility between classes Non-attribute visibility : parameter, global, or locally declared visibility Store address : Address name : Text addsale( ) Houses 1 Looks-in 1 1 ProductCatalog specification( ) Contains 1 1..* ProductSpecification description : Text price : Quantity upc : UPC 1 POST endsale( ) eneritem( ) makepayment( ) 1 1 Logs-completed Captures 1 * Sale date : Date iscomplete : Boolean time : Time becomecomplete( ) makelineitem( ) makepayment( ) total( ) Contains 1 1..* 1 Paid-by 1 Describes SalesLineItem quantity : integer subtotal( ) Payment amount : Quantity 47

Activity 2046. Design Traceability Analysis 2145 Define Design 2146 Design 2147 Define Class Diagram Traceability Analysis Database Schema Description Analysis the connection of results which are the results of analyze and design step Identify the connection of use cases and class, methods and test cases Express the traces about requirements to test cases Input : Real use case description, design class diagram, functional requirements, System test cases Output : Traceability analysis result 48

Activity 2046. Design Traceability Analysis Steps: 1. Identify the related information of essential and real use cases 1:1 or more 2. Identify the traces between operation contracts(2036) and operations in interaction diagram(2044) Express the direct contacts or hidden contacts 3. Identify the relations of the results of step 2 and class diagram (class, method) 4. Writing the results of the analysis 5. If the operations which are not expressed directly in this step (e.g. GUI related operation like text input), they should be written by 2053 49

Activity 2046. Design Traceability Analysis Draw up the traces between operation contracts(2036) and operations in interaction diagram(2044) Direct : Operation which is connected directly Hidden : Operations which are used to operate the function invisibly Direct Hidden 50

Activity 2046. Design Traceability Analysis The results of step 3 and 4 51

Activity 2046. Design Traceability Analysis 52

Activity 2047. Define Database Schema 2146 Design 2147 Define Traceability Analysis Database Schema Description Design database, table, and records Map classes into tables Input : Design Class Diagram Output : A Database Schema Steps: 1. Map classes into tables 2. Map relationships between classes into relations between tables 3. Map attributes into fields of tables 4. Design Schema 53