Upload
others
View
17
Download
0
Embed Size (px)
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