66
Object Oriented Development with UML By- Assoc. Prof. Rangsit Sirirangsi Introduction to UML

Object Oriented Development with UML Introduction to UML · 2018-11-25 · แสดงโครงสร้างของระบบ ดงัน้ันจึงไม่สามารถนาไปใชไ้ดโ้ดยgenerator

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Object Oriented Development with UML

By-Assoc. Prof. Rangsit Sirirangsi

Introduction to UML

Grading System

Grade Midterm 30 %Final 35 %Assignment 25 % (Mini Project)Class attendance 10 %

Assignmentงานกลม ๆ ละไมเกน 2 คนควรเปนงานขนาดเลก เนนเอกสารการออกแบบเปนหลกงานออกแบบตองสามารถพสจนไดวาสามารถน ามา Implement ไดงานกลมใหคะแนนเทากนทงหมด ไมแยกตามภาระงาน

เปนองคกรทไมแสวงหาก าไรและเปดกวางส าหรบสมาชกท าหนาทก าหนด Specification ตาง ๆ ทเกยวของกบอตสาหกรรมคอมพวเตอรส าหรบการท างานรวมกน (Interoperable) ของระบบขนาดใหญตาง ๆ

เปาหมายพฒนาสถาปตยกรรมทใชออปเจคเทคโนโลย ส าหรบระบบทมหลาย ๆ สวนการท างานประกอบกน เพอรบประกนวา Component ตาง ๆ สามารถน ากลบมาใชใหม มลกษณะ Interoperability & Portability เปนฐานทางธรกจส าหรบซอฟตแวรทมอย

The Object Management Group (OMG)

Some of the OMG members:

AT&T BEA Borland Boeing CA Citigroup Compaq Ericsson Ford Fujitsu

Glaxo HP Hitachi Hyperion IBM IONA io Software Kabira KC John Deere

Microsoft MITRE MSC Soft NASA NEC NetGenics NTT OASIS Oracle Pfizer

Rational SAGA SAP SAS Secant Siemens Sprint Sun Unisys Vertel

OMG Milestones

OMG is

founded

CORBA

1.0, IDL

CORBA

2.0

UML, MOF,

XMI, CWM

MDA

UML 1.5

1989

1991

2003

1996

1997

2001

UML 2.0

ใชแกปญหาความไมสอดคลองกนระหวางซอฟตแวร ถกวางไวระหวางระบบปฏบตการและโปรแกรมทตองการใชงาน

Middleware มจ านวนเพมขนอยางรวดเรว เชนCORBACOM / DCOM Java / EJBXML / SOAPC# / .NET

ไมม Middleware ตวใดทอายยนยาว ปญหาเดมยงคงอย

Middleware

วงจรชวตของกระบวนพฒนาระบบ

Systems Development

Modeling Approaches

Code Onlyไมมการใช model อยางเปนทางการเหมาะสมกบโปรแกรมขนาดเลกบ ารงรกษายาก

Model - Centric มรายละเอยดอยางชดเจน ประกอบดวยความตองการของระบบลอจกการท างานทางธรกจรายละเอยดของ UIกฎเกณฑตาง ๆ ทเกยวของแกโคดตองแกไขโมเดล

Modeling Approaches

Code และ Model ใชโมเดลน าเสนอการท างานในระดบ High level แปลงโมเดลใหอยในรปของโคด โดยใชเครองมอแบบอตโนมตCode และ Model มความเกยวของโดยตรงใช Model เปนตวขบเคลอนในการพฒนาระบบ

The Model Driven Architecture

OMG พฒนา Model Driven Architecture (MDATM) คอการแกไขปญหาจากความไมสอดคลองกนในการพฒนาระบบ

เปาหมาย: a 20-year software architecture (:2001) เปนวธการใหมในการสรางระบบ โดยใชมาตรฐานของ OMGสรางโดยมจดประสงคเพอการท างานรวมกนและ Portability เปาหมายเพอสรางระบบแบบ platform-independentประยกตใชรวมกบ Programming language, Network, Operating system ,

Middleware

“Design once, build it on any platform”

Model Driven Architecture เปนแนวทางใหมในการเขยนขอก าหนดในการออกแบบและพฒนาระบบโดยไมขนกบแพลตฟอรมใด ๆ ”[OMG]

MDA เนนไปทพฤตกรรมของระบบ ไมใชเทคโนโลยทใชในการพฒนาระบบเปนการแยกสวนการพฒนาออกจากฟงกชนการท างานของระบบดงนนจงไมจ าเปนตองแกไขหรอท าซ าในกรณทมการเปลยนแปลงเทคโนโลยเกดขน (e.g., XML/SOAP)

ขณะทสถาปตยกรรมแบบอน ๆ จะยดตดกบเทคโนโลยในการพฒนาเสมอ MDA ฟงกชนและพฤตกรรมของระบบจะถกโมเดลเพยงครงเดยว จากนนใชการ Mapping ดวยเครองมอทสนบสนน MDA เปนหลก

What is MDA ?

What’s Model-Driven Architecture?

MDA เรมตนจาก Computation Independent Model (CIM) เปนโมเดลทไมมการแสดงโครงสรางของระบบ ดงนนจงไมสามารถน าไปใชไดโดย generator ตาง ๆPlatform Independent Model (PIM)Platform Specific Model (PSM)ขนตอนการแปลง Model-to-Model (PIM->PIM, PIM->PSM, …)ขนตอนการสรางโคดอตโนมต

PIM PSM

Model Generator Code Generator

Code

JSP/Struts

Java, EJB

UML Model

Physical Data Model

High-level Page Flow

Persistence Type

Presentation Style

Profile

Code Templates

Style Templates

Visual Editors

The First Level of Automation: ~30 Years

Programming IDEs (e.g. JBuilder, Eclipse, NetBeans)

Programming Language

• Higher level ofexpression

• Easier to understand• Portable• Standardized

Diverse HW/OS Platforms

Platfomspecific model (PSM)

• Dependable• Flexible• Configurable• Optimizing• Complete: Linker,

Debugger, etc.

Generator

Projection

Platfomindependent model (PIM)

Compiler Engine

New Levels of Automation

Translative Generator Engine

• Dependable• Flexible• Configurable• Debuggable• Optimizing• Complete

Architectural IDEs

Model (UML, …) &

Modeling Style (J2EE, .NET, COBOL, …)

• Higher level ofexpression

• Easier to understand• Portable• Standardized

PIM

PSM

Models to Code

Models to Models

Generator

Projection

Code for specific platforms,

Refinement models, ...

MDA Definition

Platform Independent Model (PIM)abstraction ในระดบ High level ทเปนอสระจากเทคโนโลยในการพฒนาใด ๆ แสดงรายละเอยดการท างานของระบบโดยอาศย UMLPIMs สามารถน ากลบมาใชใหมได ไมจ ากด Platform

Platform Specific Model (PSM)แสดงวธการท างานทถกก าหนดในรปฟงกชนไวใน PIM ส าหรบแตละ Platformไดมาจาก PIM โดยการเพม platform-specific attributes ส าหรบ components มาตรฐาน

อาจมไดหลาย PSMs ตอหนง PIMเชน Database Model, EJB model & Hibernate Model

PIM, PSM, and Transformations in MDA

PIM to PSM Transformation

UML Model (PIM)

<Auto>

<Color> Red </Color>

<Door> 4 </Door>

<Engine> 2 </Engine>

</Auto>

XMI Document (PSM)

XMI

<!Element Auto

(Color*,

Door*,

Engine*)>

XMI DTD, Schema (PSM)

interface Auto

{

};

IDL, Java… (PSM)

Class Auto

{public String color;

public int Door;

public int Engine;

}

MDA Models (an Example)Platform Independent Model

Policy

effDate: Date

expDate: Date

Premium: Real

policyType: Integer

getPremium()

Customer

firstName: String

lastName: String

Address: Address

*1

Platform Specific Model (Relational)

Policy

effDate: DATE

expDate: DATE

Premium: REAL

policyType: INTEGER

Customer

firstName: VARCHAR(30)

lastName: VARCHAR(30)

Address: VARCHAR(30)

Platform Specific Model (Web Component)

<<WebComponent>>Policy

<<WebComponent>>Customer

<<WebDataSchema>>

Code Model

Oracle DDLJSP Code

The Basic Principle

CIM

PIM

PSM

Oracle

PSM

J2EE

PSM

.Net

Code Code Code

PSM

PHP

Code

Computational Independent Model

Platform Independent Model

Platform Specific Model

1. สรางโมเดลทประกอบดวย high level of abstraction ทเปนอสระจากเทคโนโลยในการพฒนา ขนตอนนไดแก Platform Independent Model (PIM)

2. PIM ถกแปลงใหอยในรปของ Platform Specific Models (PSMs) ทขนอยกบเทคโนโลยในการพฒนา

3. PSM ถกแปลงใหอยในรปของโคดตามโปรแกรมภาษาทก าหนดโดยอตโนมต

The MDA process defines three steps

PIM

PSM

Oracle

PSM

J2EE

PSM

Swing

Code Code Code

PSM

JSP

Code

UML Class Model

& OCL

Advantages

เพมผลผลตสรางโคดแบบอตโนมตระดบ abstraction สงขนในกระบวนการพฒนาระบบคณภาพสงขน มความเปนมาตรฐาน และโคดทมความสอดคลองกน

ชวยลดคาใชจายในการพฒนาแยก business ออกจากเทคโนโลยในการพฒนา

เนนไปทการโมเดลจะชวยบงคบใหการออกแบบดขนModel สามารถจดเกบความตองการของระบบไดอยางมประสทธภาพ เหมาะสมส าหรบวธการพฒนาระบบสมสมยใหมPortability เนนไปท PIMs แปลงใหอยในรปหลาย ๆ PSMs (platforms)สนบสนนการท างานของเทคโนโลยสมยใหม เชน java, xml, web services

Thales Research and Technology (Europe)Lockheed Martin (F-16) Mission AvionicsWells Fargo (Business)Pacific DataWorks (E-Business) IBM (Web Business)U.S. Air Force (Kabria)Lucent Technologies (Kabria)EricssonAT&T Fixed Wireless

MDA User Base

Kennedy-Carter / iUML+iCCGProject Technology/BridgePointTelelogic Tau (IBM) Rational/XDE Interactive Objects/ArcStylerSoftTeam –Objecteering/UMLCodagen ArchitectCompuware/OptimalJMetaMatrix/Metabase

Sample Vendor List

Milestones in Software Development Technologies

Structured Programming

Structured Design

Structured Analysis

Data Modeling

4GL

OOP

CASE

OOAD

OOAD with UML

1970

1975

1978-1980

1978-1980

1980

1986

1986

1990

1997

Brief OOP History

Simula I (1962-65) , Simula 67 (1967) Dahl, Nygaard Smalltalk (1970s) Alan Kay C++ (1980s) Bjarne Stroustrup, ADA (US Department of Defense) Eiffel 1990 (B. Meyer) , Java (sun+ Gosling ) C# 1998 (Microsoft+ Heilsberg) Scripting Language

Simula

1967

C++

Late 1980s

Smalltalk

1972

Java

1991

UML

1996

C#

1998

Script

2007

Structure Analysis and Designปรชญาการวเคราะหและออกแบบระบบเชงโครงสรางใชวธการออกแบบจากบนลงลาง (Top Down Design) นกวเคราะหแยกปญหาออกเปนหนวยยอย ๆ ใชมมมองของการท างานในการแกไขปญหา ใชสญลกษณรปกราฟกแสดงแนวคดในการพฒนาระบบ

SASDTools

Logical Data Tools

• Entity Model

• Data Dictionary

Logical Process Tools

• Flow Charts

• Data Flow Diagram

PhysicalTools

• Decision Table

•Structure English

• Normalization

Credit

Card

Company

Title –

External

Datastore

Customer

Customer

Receipt Data

Title Data....

Member Data

Payment Data….

Confirmation….

Return Receipt

Video ID and Payment

Overdue Notice

Video –

External

Datastore

Video Data....

0

Customer and

Request Data

Video and

Payment

Information

Proposed

Rental/Return

System

Context Level DFD

Customer and Request Data

Confirmation

Video ID and Payment

LineData

Rental Data

Member Data

Video and PaymentInformation

Payment Data

Return Receipt

Overdue Notice

1Check andupdate dataor enroll anew member

2

RentalProcess

3

Recordreturn ofvideos

4

Identifyoverduevideos

Member Data

Member Data

Member Data

Receipt Data

MemberData

Confirmation

Payment Data

Customer Data

MemberData

Payment Data

Customer

Credit CardCompany

Customer

Credit CardCompany

Customer Data

OverdueData

Rental Data

Return Data

Rental

Line

RentalData

Line Data

Title –ExternalDatastoreTitle Data

Video –ExternalDatastore

Video Data

Video –ExternalDatastore

Title –ExternalDatastore

Video Data

Title Data

First Explosion DFD

Confirmation

Line

Video and Payment

Information

Member

Data

Payment Data

Receipt Data

Rental Data

Line Data

2.1

Input thedata for arental

2.2

Calculatecost andprocesspayment

2.3

Createrental andlines

2.4

Create areceipt

Video and

Payment and

Member Data

All

Rental

Data

All

Rental

Data

Customer

Credit CardCompany

Customer

Rental

Video –ExternalDatastoreVideo Data

Title –ExternalDatastore

Title Data

Explosion of Process 2

Disadvantages of SASD

Focus onFunctions

HighMaintenance

Costs

HighDevelopment

Costs

Rigid

Architecture

Ripple

EffectNo Continuity

Among

Analysis

Design

Programming

Testing

Very Little

ReuseTechnical

Centered

and Not

User Centered

Object Oriented Analysis & Design

OO Analysis—เนนไปทการก าหนดขอบเขตของปญหาOO Design— วธการแกไขในรปของกลมของออปเจคทมการตดตอกนOO Programming— โคดโดยใชภาษาโปรแกรมเชงวตถ

OOAProblemDomain

OODSolution domain

class Student {

private String ID;

public String getID() {

return ID;

}

};

OOPImplement with

OO language

Student

- ID

+ getID()

Comparison : SSAD Vs. OOAD

Structured System Analysis & Design Object Oriented Analysis & Design

เรมตนจากการโปรแกรมเชงโครงสราง เรมตนจากการโปรแกรมเชงวตถ

เนนไปท process oriented เนนไปท data oriented

วเคราะหระบบผาน DFD วเคราะหระบบผาน Use Cases

สวนประกอบตาง ๆ ของระบบไดมาจากDFD

สวนประกอบของระบบไดจาก class diagrams และ UML

ใช SDLC แบบ waterfall Model จากจดเรมตนจนกระทงสนสดโครงการ

ใช iterative & incremental จากจดเรมตนจนกระทงสนสดโครงการ

แยก data และ process ออกจากกน รวมขอมลและการท างานไวดวยกน.

Evolution of OOAD

Object-Oriented Methods

ทศวรรษท 1990 ไดเกดวธการพฒนาระบบเชงวตถขนมากมาย ระหวางป’89 - ’94, ไดเกดวธการพฒนาเชงวตถขนเพมขนจาก 10 – 50 วธ"OO method wars"

Object Modeling Technique (Rumbauch) Object-Oriented Analysis/Object-Oriented Design

(Coad/Yourdon) Object-Oriented Software Construction (Meyer) Object-Oriented Structured Analysis (Shlaer/Mellor) Object-Oriented Software Engineering (Jacobson) Object-Oriented Analysis/Design (Booch) Fusion Method (Coleman et. al.)

Three Amigos

เปนผลลพธมาจากการรวมกนของวธการพฒนาเชงวตถทมชอเสยงในชวงตนทศวรรษท 90 Grady Booch (AirForce)Jim Rumbaugh (GE)Ivar Jacobson (Ericsson)

The Object Management Group (OMG) – 1996น าเสนอมาตรฐาน OO modeling notation

Booch (OOAD)

แบบจ าลองมความซบซอนสงประกอบไปดวยไดอะแกรมและสญลกษณตาง ๆ ทยากตอการท าความเขาใจ เหมาะสมกบการออกแบบในระดบลาง และมรายละเอยดเพยงพอส าหรบการพฒนาโคด

Good at OO design, weak at OO analysis

Rumbaugh (OMT)

เปนแบบจ าลองทเขาใจงาย เหมาะสมกบการออกแบบในระดบกลางมากกวา

Good at OO analysis, weak at OO designAnalysis หมายถงความเขาใจในปญหาDesign หมายถงการไดมาซงวธการแกไขปญหาหนง ๆ

Jacobson (OOSE)

คณสมบตหลก ไดแก “use classes”Use classes เปนแบบจ าลองทแสดงวธการทระบบตดตอกบผใช (หรออาจเปนระบบอน ๆ ทเกยวของ)

มองสงตาง ๆ จากมมมองของผใชเปนตวขบเคลอนกระบวนการออกแบบดงนนจงเหมาะสมส าหรบการออกแบบในระดบบนสรปBooch (OOAD) เหมาะสมกบการออกแบบ low-levelJacobson (OOSE) เหมาะสมกบ high-level Rumbaugh (OMT) เหมาะสมกบ middle ground

Creating the UML

Booch method OMT

Unified Method 0.8OOPSLA ´95

OOSEOther methods

UML 0.9Web - June ´96

public

feedbackFinal submission to OMG, Sep ‘97

First submission to OMG, Jan ´97

UML 1.1OMG Acceptance, Nov 1997

UML 1.3

UML 1.0UML partners

UML 1.4

UML 1.5

UML 2.0

2001

2003

2004

UML History

What is UML?

UML ยอมาจาก Unified Modeling Language Unifiedรวมสงทดทสดจากวธการพฒนาเชงวตถทมอยในขณะนนโดยม Booch, Rumbaugh, และ Jacobson เปนผบกเบกหลกของ UML

Modelingใชส าหรบการน าเสนอตามมมมองของสงทมอยจรง เพอใหสามารถน าไปใชกบการออกแบบและพฒนาซอฟตแวรเชงวตถ

LanguageUML เปนภาษาทใชสญลกษณเชงภาพกราฟกในการน าเสนอตามกฎเกณฑและวธการทก าหนดไว

What is the UML?

UML เปนภาษาทใชในการวเคราะหและออกแบบระบบเชงวตถประกอบไปดวยกฎเกณฑตาง ๆ สามารถใชในการสรางแบบจ าลองไดหลายแบบไมไดมการก าหนดวาแบบจ าลองใดทนกออกแบบจ าเปนตองสราง

UML เปนมาตรฐานส าหรบการVisualizing ใชสญลกษณภาพกราฟกในการน าเสนอSpecifying เปนแบบจ าลองทมรายละเอยดสมบรณและชดเจนConstructing สามารถน าไปใชกบโปรแกรมภาษาทตองการไดโดยตรงDocumenting ใชจดท าเอกสารประกอบระบบได

Why UML?

งายตอการท าความเขาใจ เนองจากใชสญลกษณภาพกราฟกในการน าเสนอการออกแบบ

เปนสวนส าคญทสดในการพฒนาระบบเชงวตถและ SDLCน าเสนอกลมของ Best Engineering Practices ทไดรบการพสจนแลววาประสบความส าเรจในการพฒนาระบบขนาดใหญทมความซบซอนสง

ชวยในการสอสารระหวางบคลากรภายในทม แสดงรายละเอยดทส าคญของการออกแบบ และชวยในการตรวจสอบสถาปตยกรรมของการออกแบบระบบ

ไมขนกบโปรแกรมภาษาทใช เปนพนฐานส าคญส าหรบการท าความเขาใจกบ modeling languageสนบสนนแนวคดการพฒนาระดบสง เชน frameworks, patterns และ

components

Meyer

Before and after

conditions

Harel

Statecharts

Gamma, et al

Frameworks and patterns,

HP Fusion

Operation descriptions and

message numbering

Embley

Singleton classes and

high-level view

Wirfs-Brock

Responsibilities

Odell

Classification

Shlaer - Mellor

Object lifecycles

Rumbaugh

OMT

Booch

Booch method

Jacobson

OOSE

Contributions to the UML

Building Blocks of the UML

UML Diagrams

ชนดของไดอาแกรมใน UML:Structural diagrams Implementation Diagram

Behavioural diagrams Use Case

Class

Activity

State Sequence

Collaboration

PackageComponent

Deployment

Structural diagrams

บางครงถกเรยกวา Static Modelแสดงใหเหนถงโครงสรางของระบบ เนนไปทสวนประกอบตาง ๆ ทรวมกนเปนระบบ ใช static model เมอตองการก าหนดรายละเอยดของคลาส แอททรบวต เมธอด ตลอดจนแพกเกจทอยภายในระบบ

UML ไดอาแกรมทสนบสนนการท างานแบบน:Class DiagramObject Diagram

Implementation Diagram

ถอเปน subset ของ Static Modelแสดงใหเหนถงสวนประกอบตาง ๆ ทระบบตองการส าหรบ deployment โดยปกตเปนการน าเสนอการจดองคกรสวนประกอบของซอฟตแวรทาง physical เชน ฮารดแวรหรอจดเชอมตอตาง ๆ

UML ไดอาแกรมทสนบสนนการท างานแบบนComponent DiagramDeployment Diagram

Behavioural diagrams

บางครงถกเรยกวา Dynamic Modelแสดงใหเหนถงพฤตกรรมการท างานของระบบ เชน ระบบมการตอบสนองตอเหตการณภายนอกอยางไร

ชวยในการก าหนดสงทออปเจคตองการ และวธการทออปเจคมการปฏสมพนธกนผานเมธอดหรอแมสเสจ

ใช dynamic model ในการออกแบบลอจกการท างานและพฤตกรรมของระบบUML ไดอาแกรมทสนบสนนการท างานแบบน:Use caseInteraction DiagramState DiagramActivity Diagram

Use Case Diagrams

ใชส าหรบก าหนดความตองการของระบบ ผานมมมองของผใช โดยเนนไปทความสมพนธทเกดขนในระบบ

ประกอบไปดวยเหตการณตาง ๆ ทถกก าหนดไวอยางสมบรณโดยผาน actor และแสดงการโตตอบระหวาง actor และระบบ

Telephone Customer

In-StoreCustomer

Clerk

Identify Movie

Verify Account

Return Movie

Customer

ReviewAccount Status

Actor

Use Case

Class Diagrams

มความส าคญมากทสดใน UML ใชในการก าหนดคลาส รวมไปถงการตดตอกนระหวางคลาส ในรปของ ความรวมมอระหวางกน ตลอดจนความสมพนธระหวางกน เปนตน

DVD Movie VCD Movie Video Game

Rental Item{abstract}

Rental Invoice

1..*1

Customer

Checkout Screen

0..1

1

Association

Class

Abstract Class

Aggregation

Generalization

Composition

Multiplicity

Sequence Diagrams

ใชส าหรบแสดงการท างานของออปเจคในชวงเวลาทก าหนด โดยประกอบไปดวยการรบสงแมสเสจทมการตดตอระหวางออปเจค

1: find customer()2: search (string)

4: search (string)

6: add(Cust, item)

3: enter movie()

5: rent (movie)

7: printInvoice() 8: generateRentalTotal()

Object

Lifeline

ActivationMessage

:CheckoutMgr :InventoryCust:Customer :RentedItems:Employee

Collaboration Diagrams

เปนไดอาแกรมทแสดงการตดตอกนระหวางออปเจค โดยเนนไปทโครงสรางการจดองคกรของออปเจคทมการรบและสงคาแมสเสจ

:Check-out

Manager

:Customer

:Inventory

1: enter_customer()

3: enter_movies()

5: add(customer, movies)

7: print invoice() 2: IsValidCust(CustId)

4:GetMovieByBarcode()

:Clerk

Object

Message

:Rented Items

8: generateRentalTotal()

State Diagrams (statechart)

ใชส าหรบการแสดงวงจรชวตของคลาสหนง ๆ โดยการก าหนดสถานะการท างานของระบบทประกอบไปดวย states, transitions, และ events เปนหลก

State

Transition

Activity

Guard

Action

Event

Validate

do/check

account

customer appears

Check-Out

do/check-out

video

[account valid]

/get first video

[more videos]

/get next video

Check-Out

Complete

[no more videos]

[account not

valid]

Activity Diagram

มลกษณะคลายกบ Flow Chart โดยปกตแลวจะเปนการแสดงรายละเอยดของกจกรรมตาง ๆ ทมความซบซอนสงและเกดขนภายใน use case

Identify

Caller

Create

Account

Obtain Name

& AddressOpen New

Account?Current

Customer? [no] [no]

[yes] [yes]

Action State

Start State

Decision

End State

Packages

Packages จะท าหนาทจดเกบระบบทมความซบซอนมากออกเปนสวน ๆ ทมการจดกลมตามหมวดหมทเกดขน หลาย ๆ โครงการใช packages ในการแสดงรายละเอยดท use cases ทเกยวของในการสงมอบงาน

Class Package

Clerk User Interface

Business

System

Client

(to business

system)Customer Data

Rental Screen

Component Diagram

ใชส าหรบแสดงรายละเอยดของคอมโพเนนทตาง ๆ ทใชภายในโปรแกรมในชวงเวลาของ runtime ซงจะรวมไปถง source code, binary code และexecutable component

Component

Interface

Dependency

Note

«application»

Video

Workstation

(vstation.exe)

«library»

DB Server

Interface

(dbsvr.dll)

Supplied byMicrosoft

«library»

Application

Framework

Deployment Diagram

ยอมใหผใชสามารถมองเหนถงวธการ (How) ทซอฟตแวรถกน าไปใช โดยปกตจะใชส าหรบการก าหนด configuration ของระบบตามมมมองของสถาปตยกรรมทางดานฮารดแวรเปนหลก

Node

Communication

Association

Check Out Terminal:Clerk Client

Phone Clerk Terminal:Clerk Client

:Store Server

ServerDB

StoreServer

App«TCP/IP»

«TCP/IP»

Class Diagram

Sequence Diagram

Use-Case Diagram

Most used UML Diagrams:

Combination:Quick Iteration Between Code and Models

Java Source Code

Object Oriented Development ProcessPlan

OOA

Use Case

Diagram

Conceptual Class

Diagram

Sequence

Diagram

Sate Transition

DiagramActivity Diagram

Detail Class

Diagram

Component

Diagram

Deployment

Diagram

OOD

Coding Testing

UML Diagrams Are Key Artifacts

Actor A

Use-Case 1

Use-Case 2

Actor B

user : »ç¿ëÀÚ

mainWnd : MainWnd

fileMgr : FileMgr

repository : Repositorydocument : Document

gFile : GrpFile

9: sortByName ( )

L1: Doc view request ( )

2: fetchDoc( )

5: readDoc ( )

7: readFile ( )

3: create ( )

6: f illDocument ( )

4: create ( )

8: f illFile ( )

UI

MFC

RogueWave

global

DocumentApp

Persistence Window 95

¹®¼­°ü¸® Ŭ¶óÀ̾ðÆ®.EXE

Window sNT

¹®¼­°ü¸® ¿£Áø.EXE

Window sNT

Window s95

Solaris

ÀÀ¿ë¼­¹ö.EXE

AlphaUNIX

IBM Mainframe

µ¥ÀÌŸº£À̽º¼­¹ö

Window s95

¹®¼­°ü¸® ¾ÖÇø´

ºÐ»ê ȯ°æÀÇ Çϵå¿þ¾î¹× ³×Æ®¿÷À¸·ÎÀÇ Á¤º¸ ½Ã½ºÅÛ ¿¬°á ¸ðµ¨ - À©µµ¿ì 95 : Ŭ¶óÀ̾ðÆ® - À©µµ¿ì NT: ÀÀ¿ë¼­¹ö - À¯´Ð½º ¸Ó½Å: ÀÀ¿ë ¼­¹ö ¹× µ¥ÀÌŸ ¼­¹ö, Åë½Å ¼­¹ö - IBM ¸ÞÀÎÇÁ·¹ÀÓ: µ¥ÀÌŸ ¼­¹ö, Åë½Å ¼­¹ö

Document

FileManager

GraphicFileFile

Repository DocumentList

FileList

user

mainWnd fileMgr : FileMgr

repositorydocument : Document

gFile

1: Doc v iew request ( )

2: f etchDoc( )

3: create ( )

4: create ( )

5: readDoc ( )

6: f illDocument ( )

7: readFile ( )

8: f illFile ( )

9: sortBy Name ( )

ƯÁ¤¹®¼­¿¡ ´ëÇÑ º¸±â ¦ »ç¿ëÀÚ°¡ ¿äûÇÑ´Ù.

È­ÀÏ°ü¸®ÀÚ´Â Àоî¿Â ¹®¼­ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼­ °´Ã¼¿¡ ¼³Á¤À» ¿äûÇÑ´Ù.

È­¸é °´Ã¼´Â ÀоîµéÀÎ °´Ã¼µé¿¡ ´ëÇØ À̸§º°·Î Á¤·ÄÀ» ½ÃÄÑ È­¸é¿¡ º¸¿©ÁØ´Ù.

Customernameaddr

withdraw()fetch()send()

receive()

<<entity>>

(Code Generation)

Executable System

User InterfaceDefinition

DomainExpert

Openning

Writing

ReadingClosing

add f ile [ numberOff ile==MAX ] / f lag OFF

add f ile

close f ile

close f ile

Use-Case 3

Source Code edit, compile, debug, link

Use-Case DiagramClass Diagram

Collaboration Diagram

Sequence Diagram

Component Diagram

State Diagram

Package Diagram

Deployment DiagramClass

Software Lifecycle Activities

ApplicationDomain Objects

SubSystems

class...

class...

class...

Implementation Domain

Objects

SourceCode

Test Cases

?

Expressed

in Terms OfStructured

By

Implemented

ByRealized By

Verified

By

SystemDesign

ObjectDesign

Implemen-tation

Testing

class....?

RequirementsElicitation

Use CaseModel

RequirementsAnalysis

UML Diagram Types

Diagram Purpose Type Lineage

Activity Procedural and parallel

behavior

Behavior UML 1

Class Class, features, and

relationships

Structure UML 1

Communication

(formerly

Collaboration)

Interaction between

objects; emphasis on

links

Interaction UML 1

Component Structure and

connections of

components

Structure UML 1

Composite Structure Runtime decomposition

of a class

Structure UML 2

Deployment Deployment of artifacts

(software entities) to

nodes

Structure UML 1

Interaction Overview Mix of Sequence and

activity diagrams

Behavior UML 2

Diagram Purpose Type Lineage

Object Example configurations

of instances

Structure Unofficially in UML 1

Package Compile-time hierarchic

structure

Structure Unofficially in UML 1

Sequence Interaction between

objects; emphasis on

sequence

Behavior UML 1

State Machine Describes state of an

object based on events

Behavior UML 1

Timing Interaction between

objects; emphasis on

timing

Behavior UML 2

Use Case How users (and

systems) interact with a

system

Behavior UML 1

UML Diagram Types (con’t)

Martin Fowler, Kendall Scott: UML Distilled second edition. Publisher: Addison-Wesley.

Doug Rosenberg with Kendall Scott: Use Case Driven Object Modeling with UML. Publisher: Addison-Wesley.

Larman, Craig.(1998) Apply UML and Patterns : Third Edition, Prentice Hall

Grady Booch, et al: The Unified Modeling Language User Guide. Publisher: Addison-Wesley.

James Rumbaugh, et al: The Unified Modeling Language Reference Manual. Publisher: Addison-Wesley.

Ivar Jacobson, et al: Unified Software Development Process. Publisher: Addison-Wesley.

More Information…