แบบจำลองเชิงวัตถุ (Object Oriented...

Preview:

Citation preview

แบบจ ำลองเชงวตถ (OBJECT ORIENTED ANALYSIS)

แบบจ ำลองเชงวตถ (Object Oriented Analysis)

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

แบบจ าลองเชงวตถ UML (Unified Modeling Language) เปนเสมอนพมพเขยวทแสดงภาพรวมของระบบทงหมด โดยจะแสดงในรปแบบของแผนภาพ (Diagram)เพอใหเกดความเขาใจทตรงกนระหวางผออกแบบระบบ, โปรแกรมเมอรและผใชงาน ม 9 แผนภาพ

แบบจ ำลองเชงวตถ (Object Oriented Analysis)

Class Diagram

Object Diagram

Component Diagram

Deployment Diagram

Use Case Diagram

Sequence Diagram

Collaboration Diagram

Statechart Diagram

Activity Diagram

Structural Diagrams

Behavioral Diagrams

แบบจ ำลองเชงวตถ (Object Oriented Analysis)

Structural Diagram เปนกลมแผนภาพทแสดงใหเหนโครงสรางเชงสถต (Static)ของระบบ คอ โครงสรางในสวนทไมมการเปลยนแปลงหรอเคลอนไหวแมจะมเหตการณใดๆ เกดขน

Behavioral Diagram เปนกลมแผนภาพใหเหนภาพเชงกจกรรมของระบบ(Dynamic) คอแสดงใหเหนถงพฤตกรรมของระบบทมการเปลยนแปลงในเมอมเหตการณใดๆ เกดขน และแสดงใหเหนถงความสามารถของระบบทด าเนนการในหนาทบางอยางได

ค ำอธบำยเพมเตม

USE CASE DIAGRAM

Use Case Diagram

Use Case Diagram เปนแผนภาพทใชทแสดงปฏสมพนธระหวางระบบงานและสงทอยนอกระบบงาน Use Case Diagram ประกอบดวย

Actor คอ ผทกระท ากบระบบ อาจเปนผทท าการสงขอมล, รบขอมล หรอแลกเปลยนขอมลกบระบบนนๆ เชน ลกคากบระบบสงซอสนคาทางโทรศพท

Use Case คอ หนาทหรองานตางๆในระบบ เชน การเชคสตอค การสงซอสนคา เปนตน

Relationship คอ ความสมพนธระหวาง Use Case กบ Actor

สญลกษณ

วงร แทน use case

คน แทน actor

ควำมสมพนธใน Use Case Diagram

แบงออกเปน 2 ประเภท ไดแก1. ความสมพนธระหวาง Actor2. ความสมพนธระหวาง Use case

การเชอมระหวาง Actor กบ Use Case จะใชเสนแสดงความเกยวของปฏสมพนธ (Association)

Association หมายถง ความสมพนธทมการตดตอสอสารกน (ทงการรบและสง Messages ใหแกกนและกน)

ความสมพนธระหวาง Actor

ความสมพนธ(Relation) ระหวาง Actor แบงเปน 1. ความสมพนธระหวาง Actor กบ Use Case ซงแบงไดเปนความสมพนธแบบ

ทศทางเดยว แบงได 3 กรณดงน Actor เปนผทรบขอมลจาก Use Case จะใชสญลกษณ

Actor เปนผสงขอมลใหกบ Use Case จะใชสญลกษณ

Actorเปนทงผรบและสงขอมลใหกบ Use Case จะใชสญลกษณ

ความสมพนธระหวาง Actor

2. ควำมสมพนธระหวำง Actor กบ Actor

จะมความสมพนธในรปแบบทสามารถท าการสบทอดคณสมบต บทบาทและหนาทของ Actor จาก Actor Superclass ไปยงActor Subclass ซงเรยกวา Generalization(/Specialization) Relationship

Worker

ตวอยาง Geralization (/Specialization) Relationshipคนคมงาน (Supervisor) เปนคนงานพเศษทมหนาทพเศษมากกวาคนงาน (Worker)

Supervisor

ความสมพนธระหวาง Actor

ควำมสมพนธระหวำง Use Case

3. ความสมพนธระหวาง Use Case กบ Use Case แบงออกเปน 3 แบบ ไดแก

1. Includes หรอ Use2. Extends

ควำมสมพนธแบ Includes / Use

ความสมพนธในกรณท Use Case หนงเรยกไปใชหรอดงเอากจกรรมของอก Use Case หนง เพอใหกจกรรมนนเกดขนจรงในตนเอง เรยกความสมพนธระหวาง Use Case ในลกษณะนวา “Includes” หรอ “Use”

สญลกษณของ Includes หรอ Use จะเปนเสนปะพรอมหวลกศร ชไปยง Use Case ทถกเรยกใชงาน มค าวา <<include>> หรอ <<uses>> ก ากบอยบนเสน ดงรป

<<include>>

Include Use Case Base Use Case

ตวอยำง ควำมสมพนธแบบ Includes / Use

1. ในการท างานของระบบเอทเอม Use Case “การตรวจสอบผเขาใชระบบ (Validate User)” สามารถเปน Included Use Case ใหกบ Base Use Case หลายๆตว ไดแก Base Use Case “การถอนเงน (Withdraw Money)” และ “การโอนเงน (Transfer Money)” สามารถแสดงสถานการณนในรปของ Use Case Diagram ไดดงรป

ถอนเงน

โอนเงน

ตรวจสอบผใช

ควำมสมพนธแบบ Extends

Extends หมายถง การท Use Case หนงไปมผลตอการท างานปกตของอก Use Case หนง

Use Case ทมา extend นนจะมผลใหการด าเนนงานของ Use Case ทถก extend ถก รบกวนหรอมการสะดด หรอมการเปลยนกจกรรมไป

สญลกษณของ extend จะเปนเสนปะพรอมหวลกศร ชไปยง Use Case ทถก extend มค าวา << extend >> ก ากบอยบนเสน ดงรป

<<extends>>

Extending Use Case Base Use Case

ตวอยำง ควำมสมพนธแบบ Extends

1. USE CASE การท ารายการขาย ซงในบางโอกาสอาจมเหตการณทท าใหการท ารายการขายไมสมบรณ เชน สนคาหมด ลกคายกเลก ในกรณน จะถอวาการยกเลกรายการขาย เปน Base Use Case ในขณะทการท ารายการขาย เปน Extending Use Case

ท ำรำยกำรขำย ยกเลกรำยกำรขำย

<<extends>>

รบสนคำ สงคนสนคำ

<<extends>>

กำรสรำง Use Case Diagram

ขนตอนการสราง Use Case Diagram• ระบ Actors ทมปฏสมพนธกบระบบ• พจารณาแนวทางของระบบ ในการปฏสมพนธกบ Actors• จ าแนกพฤตกรรมของระบบในการปฏสมพนธกบ Actors ใหเปน Use cases และก าหนดความสมพนธระหวาง Use Case

ระบสงท User ตองการใหมในระบบตงชอให Use Caseเขยนค าอธบายสนๆเพมรายละเอยดในภายหลง (Use Case อะไรทตองมใน

ระบบเพอใหระบบสมบรณ)

กำรหำ Actor

สามารถระบ Actor ไดโดยตอบค าถามตอไปน- ใครเปนคนใชงานหนาทการท างานหลกของระบบ (Primary Actors) ?- ใครตองการการสนบสนนการท างานจากระบบ ?- ใครตองการบ ารงรกษา และบรหารระบบ (Secondary Actors) ?- Hardware Devices ใดทตองการใหระบบจดการดแล ?- ระบบภายนอกระบบใดท ตองการใหระบบมปฏสมพนธดวย ?- ใครหรออะไรทตองการไดรบผลประโยชน จาก Output ของระบบ?

ค าแนะน าไมควรพจารณาเฉพาะ Users ทใชงานระบบโดยตรง ตองพจารณา Users อนๆ ทตองการใชบรการจากระบบดวย

Actor & Use case

ระบบจดการหอพกList of Actor : ผดแลระบบ เจาของหอพก พนกงาน ผเชา

List of use case : เขาสระบบ จดการขอมลพนฐาน จองหอพก ท าสญญา ช าระเงนคามดจ า บนทกคาใชจาย ช าระเงนคาเชา ปดสญญาเชา

Use case diagram

เขาสระบบ

จดการขอมลพนฐานจองหอพก

ท าสญญา

ช าระเงน

คนหองพก

บนทกคาใชจาย

จายคาเชาออกใบเสรจ

ตรวจสอบหองวาง<<include>>

ปรบปรงสถานะหองพก

<<include>>

Use case Name เขาสระบบ(Login)

Actor ผดแลระบบ,เจาของกจการ

Description ผใชตองการเขาสระบบ

Normal course 1. ผใชเขาตองการเขาสระบบ2. ระบบแสดงฟอรมเพอกรอกขอมล Username และ Password3. ผใชท าการกรอก Username และ Password4. ระบบตรวจสอบขอมลวาถกตองหรอไม

Alternate Course 4a. ถา username และ password ถกตองใหเขาสระบบตามสทธการใชงาน4b. ถา username และ password ไมถกตองใหแจงขอความ “Username และ Password ไมถกตอง”และกลบไปยงหนาหลก

Use case Description

Use case Name จดการขอมลพนฐาน

Actor ผดแลระบบ

Description ผใชตองการเพม ลบ แกไข ขอมลพนฐาน

Normal course 1. ผใชเขาตองการเขาสระบบกอน2. ระบบแสดงฟอรมเพอเพม ลบ แกไข ขอมลพนฐาน3. ผใชท าการกรอกขอมลพนฐาน แลวบนทก4. ระบบท าการเพมขอมลใหม ปรบปรง และลบขอมล5. ระบบแสดงผลรายการทเพมและแกไข

Alternate Course 4a. ถาขอมลใหมทเพมมรหสซ ากบขอมลทมอยแลว จะไมสามารถเพมขอมลได4b. รหสหลก จะไมสามารถแกไขได4c. ถาขอมลทผใชท าการลบ มการเชอมโยงกบขอมลอนอยจะไมสามารถลบได

Use case Description

Use case Name ท าสญญา

Actor เจาของกจการ

Description เจาของกจการท าสญญาเชาหองพก

Normal course 1. ผใชเขาตองการเขาสระบบ2. ผใชเลอกหองทตองการท าสญญา3. ระบบตรวจสอบสถานะหอง4. ผใชกรอกขอมลในการท าสญญาเชา5. บนทกขอมลสญญาเชา และขอมลผเชา6. ปรบปรงสถานะหองเชา7. พมพใบสญญา

Alternate Course 2a. ถาสถานะไมวาง ใหกลบไปยงหนาเลอกหองใหม

Use case Description

Use case Name ขาย (Sell)

Actor Manager, Customer, Cashier

Description การขายหนารานทลกคาสงซอสนคาและไดรบใบสงสนคากอนน าไปเบกสนคาทคลงสนคา

Normal course 1. ลกคาเขามาทหนารานและท าการเลอกสนคำ หรอบอกรำยกำรสนคำทตองการกบพนกงานขาย2. พนกงานขายตรวจสอบจ ำนวนสนคำในคลงสนคาเพอท าการขายในแตละรายการ3. พนกงานท ารายการสงสนคา ลกคาช ำระเงนและรบใบเสรจ

Alternate Course 2a. สนคาทตองการไมเพยงพอลกคายกเลกกำรซอขำยทงหมด2b. สนคาทตองการไมเพยงพอลกคายกเลกกำรซอขำยสนคำในรำยกำรทไมพอ2c. สนคาทตองการไมเพยงพอลกคาท าการซอขายสนคาในรายการนนเทาทมทงหมด

Use case Description

Use case Description

Use case Name สงซอ (Order)

Actor Manager, Supplier

Description กระบวนการสงซอสนคาเมอถงวงรอบของการสงซอหรอเมอสนคาก าลงเรมขาดสตอค

Normal course 1. เมอถงก าหนดทกๆ สปดาหผจดการสนคาคงคลงจดท ารายงานการขาย และสรปยอดสนคาในคลงสนคา2. ผจดการสนคาคงคลงตรวจสอบและตดสนใจรายการสนคาทตองท าการซอเขา3. ผจดการสนคาคงคลงออกใบสงของตามรายการจากขอ 24. ใบสงของทไดรบอนมตจะสงไปใหบรษทคคาเพอท าการซอสนคา

Alternate Course 1. ถาสนคาหมดกอนสนสปดาห จะมการแจงเตอนเพอท าการสงซอ2. ถาเปนรายการสนคาใหมทไมมในคลงสนคา ใหเพมขอมลของสนคาใหมเขาไปในระบบ

Class Diagram

Class Diagram

Class diagram จดเปน Structural Model (Static Model) คอ มมมองของระบบทเนนโครงสรางของวตถ รวมทงคลาสของวตถ (Class) ความสมพนธระหวางคลาส (Relationship) แอททรบวต (Attribute) และโอเปอเรชน (Operation)

ความสมพนธทแสดงเปนความสมพนธเชงสถตย (คงท Static ) ไมใชความสมพนธทเกดขนเนองจากกจกรรม (Dynamic) จงไมสามารถมองเหนการเปลยนแปลงตางๆทเกดขน แมจะเกดเหตการณใดๆ

Class diagram เปนมมมองแบบ Logical View

Static & Dynamic

Static relationshipเจาของบญชเปนเจาของบญชเงนฝาก

Dynamic relationshipเจาของบญชฝากเงนเขาบญชเงนฝาก

เจาของบญชถอนเงนจากบญชเงนฝาก

เจาของบญชปรบปรงยอดบญชเงนฝาก

Class Diagram เปน Static relationship

องคประกอบของคลำส

Class name

Attributes

Operations/Methods

Perso

n- taxIDNo : String

- name : String

+ income : double

+ taxPaid : Boolean

+ calcTax()

+ calcTaxBal()

Attribute name : type

Operation name(Parameter List : type) : Return type

Visibility

กำรเขยนชอคลำส(UML SYNTAX)

ชอ Class ไมมชองวาง และขนตนดวยตวพมพใหญเชน Bank

ถามมากกวา 1 ค าตวแรกของแตละค าเปนตวพมพใหญเชน BankAccount

UML Syntax for Attributes

Visibility Name : Type Visibility ประกอบดวย

+ (public) , - (private), # (protected)

Name คอ ชอ Attribute ไมมชองวางขนตนดวยตวพมพเลก ตวแรกของค าถดไปเปนตวพมพใหญเชน userID

Type คอ ชนดขอมล (ขนกบแตละภาษา)Primitive Type

ขอมลพนฐาน เชน integer, booleanClass Type

Attribute ของ Class หนงอาจมชนดเปน Class อนได

UML Syntax for Operations

Visibility Name(Parameter List : Type) : Return type Visibility ประกอบดวย

+ (public) , - (private), # (protected)

Name คอ ชอ เหมอนกบชอของ Attributeแตเปนค ากรยา

เชน withdrawMoney

Parameter List คอ รายการตวแปรหรอ Objects ทถกสงเขาไปใน Operation (Method) เพอ

ใชด าเนนการอยางใดอยางหนง( อาจไมมกได )

Type , Return type คอ ชนดขอมล เหมอน Attribute( อาจไมมกได )

Visibility

private ( - )มกใชกบ Attributes มากกวา Operations เหนไดภายในเฉพาะตว class ไมสามารถเหนไดจากภายนอก การเขาถงจากภายนอกจะกระท าผาน Operation ทเตรยมไว

public ( + )มกใชกบ Operations มากกวา Attributesมองเหนและเขาถงไดโดยตรงจากภายนอก

protected (#)สงวนไวส าหรบการท า Inheritance โดยเฉพาะโดยปกตจะเปนของ Superclassเมอท า inheritance แลว Attributes และ Operations เหลานจะเปนไดทง Private หรอ Protect ซงขนอยกบภาษาทใช

ควำมสมพนธระหวำงคลำส

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

• Associations• Generalization• Aggregation

ควำมสมพนธระหวำงคลำส

และบนเสนควำมสมพนธระหวำง Class อำจมกำรระบ

Association name (ชอควำมสมพนธ)

Navigation (ทศทำงควำมสมพนธ)

Works for

ควำมสมพนธระหวำงคลำส

Navigation

หวลกศรแสดงถงทศทางของความสมพนธ เปนการแสดงถงความสามารถของ object ของ Class หนงในการเขาถง (สง Message) object ของอก Class หนง

คอ object ของ Class ทางดานทไมมหวลกศร สามารถเขาถง object ของ Class ทางดานทมหวลกศร ( แตในทางตรงกนขามไมสามารถท าได )

จากตวอยาง มหวลกศรทศทางเดยวจดเปน Unidirectional Associationแตถาทงสอง objects สามารถเขาถงกนและกนได (2 ทศทาง) ไมตองมหวลกศร ซงเรยกวา Bidirectional Association

Multiplicity

1 หนงเทำนน (อำจไมระบได)

0..1 มหรอไมมกได

0..* ไมมหรอมหลำยควำมสมพนธ

1...* มตงแต 1 ควำมสมพนธถงหลำยควำมสมพนธ

N มตงแต N ควำมสมพนธขนไป

dateReceived : date

isPrepaid : boolean

Number : integer

Price : float

dispatch( )

ความสมพนธระหวาง Class

Associationsควำมสมพนธทวไป (Associate) เปนควำมสมพนธทไมมกำรระบผลของกำรสบทอด

และกำรเปนสวนหนงของ Class ทสมพนธดวย แต Class นนจะสมพนธกนในดำนอนๆ และเปนควำมสมพนธในระดบเดยวกน (ไมม Class ใด ส ำคญกวำ Class ใด )

Issued by

Order Customer

name : string

address : string

creditRating( )

* 1

ลกคำอำจมหลำยใบสงซอ ใบสงซอเกดจำกลกคำคนเดยว

จดทะเบยน

สมรส

ตวอยาง ความสมพนธ Association

ความสมพนธระหวาง Class

แม ลก

1 0..*คลอด

ทศทำงของชอควำมสมพนธ

ชำย หญง

1 1

ทศทำงของชอควำมสมพนธ

ชอควำมสมพนธ

ชอควำมสมพนธ

ควำมสมพนธทศทำงเดยว

แมสำมำรถคลอดลกได

แตลกไมสำมำรถ

ควำมสมพนธแบบสองทศทำง

ชำย 1 คน จดทะเบยนสมรสกบ

หญงได 1 คนเทำนน และ

หญง 1 คน จดทะเบยนสมรสกบ

ชำยได 1 คนเทำนน

23

ความสมพนธระหวาง Class

Generalization(/Specialization)เปนควำมสมพนธแบบ Superclass และ Subclass ซงกคอ Inheritance ใน

แนวคดหลกเชงวตถ

Generalization หำลกษณะรวมของ Class ตำงๆ เพอสรำง Class ทเปน

ตวแทนของกลม Class นน (Superclass)Specialization ก ำหนดลกษณะเฉพำะเจำะจงในรำยละเอยด (Subclass)Specialization เปนกระบวนกำรยอนกลบของ Generalization

Generalization อำจเรยกวำ kind-of relationship (คอประเภทของ)

24

ความสมพนธระหวาง Class

Generalization(/Specialization)

ใน Class Hierachyจะแบง Class เปนล าดบชน Class ทมระดบสงกวาเรยกวา

Class ทอยในระดบต ากวาเรยกวา

25

Superclass

Subclass

ความสมพนธระหวาง Class

Single Inheritance และ Multiple Inheritance

Single Inheritanceสบทอดคณสมบตจาก Superclass 1 class

ภาษาทสนบสนน เชน Java, C#

Multiple Inheritanceสบทอดคณสมบตจาก Superclass มากกวา 1 class

ภาษาทสนบสนน เชน C++

ในการสบทอด (Inheritance)Subclass จะรบคณสมบต (Attributes and Methods) จาก Superclass มาไว

ในตวเองโดยอตโนมต

และ Subclass สามารถเพมเตมคณสมบตใหม (Attributes and Methods) จาก Superclass ซงเรยกวา Extending หรอแกไขคณสมบตทรบมา ซงเรยกวา Overriding

Generalization Superclass มลกษณะทวไป(คณสมบตรวมกน)

Specialization Subclass มลกษณะเฉพาะ

ความสมพนธระหวาง Class

Animal

Cat Bird Fish

27

ความสมพนธระหวาง Class

ตวอยำง

ความสมพนธระหวาง Class

Aggregation Relationshipเปนความสมพนธ Association แบบหนง (แบบพเศษ)

คอ Object หนง ม Objects อนๆ เปนสวนประกอบ

อาจเรยกวา whole-part relationship (ทงหมด-สวนประกอบ)ซงมกจะใชค าวา consists of , contains , is part of

เชน Car ม Engine และwheels เปนสวนประกอบ

Car

WheelEngineWheel

Engine

Car

หรอ

(Whole Class)

(Part Class)

ความสมพนธระหวาง Class

ลกษณะส าคญของ Aggregation Relationshipเมอลบ Whole class ทง Class ทเปน Part Classes จะยงคงอยได โดยไมตองพงพา

Whole classเชน Computer กบ Harddisk ถา Computer เสย Harddisk กไมจ าเปนตองเสยดวย

ความสมพนธระหวาง Class

Composition Relationshipเปนความสมพนธแบบ Aggregation ทเขมงวด(Strong)ขน

ซงจะมชวงชวตรวมกน- สวนทเปน whole จะท าหนาทเปนเจาของสวนทเปน part- สวนทเปน part อาจเปนของสวนทเปน whole ไดเพยงหนงเดยว

Multiplicity ของสวนทเปน whole จะตองมคาเปน 0 หรอ 1 เทานน- ชวงชวตของสวนทเปน part จะขนอยกบสวนทเปน whole เสมอ

นนคอจะเกยวของการสรางหรอลบสวนทเปน part เสมอ

PolygonCircle

Point

1 3..*

ความสมพนธระหวาง Class

Composition Relationshipใชสญลกษณ

เชน

ก าหนดไวทางดาน Book เนองจาก Book จะประกอบไปดวย Chapter

สญลกษณลกศรแสดงถงความสมพนธเปนแบบทางเดยว นนคอถาลบ Book ออก กจะไมม Chapter

ChapterBook

ตวอยำง

คณะวทยำศำสตร

หองเรยน หองทดลอง บคลำกร

เจำหนำท

1..n 1..n

1..n

1..n

ชวโมงเรยน วชำเรยน

นกเรยน อำจำรยใช

เรยน สอน

ดแล

ใช

1..1

0..n 0..n

1..n 1..n

1..1 1..1

1..1

0..n 0..n

0..1

Use case diagram

เขาสระบบ

จดการขอมลพนฐานจองหอพก

ท าสญญา

ช าระเงน

คนหองพก

บนทกคาใชจาย

จายคาเชาออกใบเสรจ

ตรวจสอบหองวาง<<include>>

ปรบปรงสถานะหองพก

<<include>>

Use Case

Use Case Class

เขาสระบบ ผใช

จดการขอมลพนฐาน ประเภทหอง,หองพก,คาใชจาย

ท าสญญา สญญาเชา,ผเชา,หองพก

บนทกคาใชจาย คาใชจาย

สญญาเชา

-เลขทสญญา-วนทท าสญญา

+ เปดสญญาเชา()+ ตรวจสอบเลขทสญญา()+ พมพใบสญญา()

ผเชา

-ชอผเชา-ทอย-เบอรโทรศพท

+ เพมผเชา()+ แกไขผเชา()+ ลบผเชา()+ ตรวจสอบผเชา()

ท าสญญา

หองพก

-เลขทหอง-รายละเอยดหอง

+ เพมหอง()+ ปรบปรงหอง()+ ลบหอง()+ ตรวจสอบสถานะหอง()

เชา*

1

1 1

ช าระเงน

-เลขทใบเสรจ-วนทช าระ-ผช าระ

+ ตรวจคาใชจาย()+ ออกใบเสรจ()

ช าระเงนมดจ า

-เลขทสญญา-จ านวนมดจ า

+ ตรวจสอบการช าระเงน()

ช าระเงนคาเชา

-เดอนทช าระ-จ านวนเงน

+ ตรวจสอบการช าระเงน()

Association

Generalization

END