Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
พนฐานการวเคราะหและออกแบบระบบเชงวตถดวย UML
บทนา
การมองปญหาในภาพรวมดวยการตดรายละเอยดทงไปเพอลดความซบซอนลง
โดยเรยกเทคนคนวา Abstraction
หวขอการเรยนร
1. ออบเจกต (Object), คลาส (Class), การสบทอดคณสมบต (Inheritance), โพลมอรฟส
ซม (Polymorphism), เอนแคปซเลชน และการซอนรายละเอยด (Encapsulation and
Information Hiding)
2. ความสมพนธของออกเจกต และการมสวนรวม (Object Relationships and
Associations)
3. หลกการพฒนาระบบเชงวตถ และ UML (Unified Modeling Language)
ออบเจกต (Object)
ออบเจกตหรอวตถ คอหนวยสนใจของระบบททาใหเกดเหตการณบางอยาง ไม
วาจะเปนบคคล สถานท สงของ หรอเหตการณ สาหรบออบเจกตในโลกของ
เทคโนโลยเชงวตถ จะเนนทตวปฏบตการมากกวาการปฏบต
คลาส (Class)
คลาสถอวาเปนนามธรรม (Abstract) ในขณะทออบเจกตนนเปนสงทมตวตน
(Concrete) คลาสกคอแบบพมพเขยวของออบเจกตโดยทคลาสไมสามารถทางานได
ในขณะทออบเจกตสามารถทางานได การทางานของออบเจกตจะเปนไปตาม
คณสมบตทกาหนดไวในคลาส และออบเจกตทกตวกจะตองอย ในคลาส โดยเรา
สามารถดคณสมบต (Characteristic) ของออบเจกตไดดวยการดทคลาส
คลาสคอกลมของออบเจกตทมโครงสรางพนฐานพฤตกรรมเดยวกน ดงนน
ออบเจกตทมคณสมบตลกษณะเดยวกน กจะรวมกลมอยในคลาสเดยวกน จงสรปได
วาคลาสกคอตนแบบขอมล ทมไวเพอสรางออบเจกต
คลาส (Class)
คลาส นอกจากจะมชอคลาสกากบแลว ยงมแอตตรบวต (Attribute) ทใชอธบาย
คณสมบต และโอเปอเรชน (Operation) ทใชอธบายถงพฤตกรรมของคลาสวามตว
ปฏบตการอะไรบาง ซงโอเปอเรชนบางครงอาจ
เรยกวาเมธอด (Method) กได โดยทงคลาส แอตตร
บวต และโอเปอเรชน สามารถแสดงในลกษณะเทม
เพลตได
การสบทอดคณสมบต (Inheritance)
ขอด
1. ทาใหมโครงสรางเปนระบบ ระเบยบ ปรบเปลยนไดงาย
2. ลดเวลาในการพฒนาระบบ
3. ลดคาใชจายในการพฒนา
การกาหนดคณสมบตของออบเจกตแตละตวในระบบ จะใชวธการสบทอด
(Inheritance) โดยอาศยคณสมบตของออบเจกตทมอยแลวใสลงในออบเจกตตวใหม
แนวความคดเชงวตถจะถอวาการสบทอดเปนสงสาคญ เพราะวาไมมสงใดในโลกท
เกดขนเอง ตองมการสบทอด
การสบทอดคณสมบต (Inheritance)
Animal
Cat Dog Person
การสบทอดคณสมบต (Inheritance)
การสบทอดคณสมบต (Inheritance)
การสบทอดคณสมบต (Inheritance)
การสบทอดคณสมบตของ Subclass ยงสามารถสบทอดจาก Superclass มากกวา
หนงกเปนได ทเรยกวา Multiple Inheritance
โพลมอรฟสซม (Polymorphism) หมายถง การบอกแบบเดยว แตไดรบการ
ตอบสนองหลายรปแบบ
คณสมบตของ Polymorphism ทาใหสามารถวาดรปไดหลายรปแบบ ดวยการ
สงผานฟงกชน DrawChart() เพยงฟงกชนเดยว
โพลมอรฟสซม (Polymorphism)
DrawChart
เอนแคปซเลชน และการซอนรายละเอยด
(Encapsulation and Information Hiding)
การซอนรายละเอยด (Information Hiding) เปนพนฐานของการปกปดขอมลภายใน
และวธการทางานของออบเจกต โดยคาวาเอนแคปซเลต มความหมายวาผใชไมสามารถ
เหนรายละเอยด (ขอมลและฟงกชน) ภายใน เนองจากถกซอนและบรรจไวในแคปซล แต
สามารถใชงานออบเจกตไดดวยเมธอด กลาวคอ ในการเขาถงขอมลนน จะไมสามารถ
เขาถงไดโดยตรง ตองมการตอบรบจากเมธอดในออบเจกตปลายทางนนวา จะอนญาต
หรอไมทจะใหออบเจกตทสงเมสเสจรองขอเขาถงขอมลตน
สาหรบใน UML การกาหนดใหการมองเหน (Visibility) ของแอตตรบวตหรอ เมธ
อดวาเปน Public, Protected หรอ Private จะใชสญลกษณดงตอไปน
+ คอ สญลกษณ Public Visibility # คอ สญลกษณ Protected Visibility
- คอ สญลกษณ Private Visibility
1. Association คอ ความสมพนธระหวางออบเจกต
ความสมพนธของออบเจกต และการมสวนรวม
(Object Relationships and Associations)
Person Company* WorksFor 0..1
Employees employer
PrintServer UserRequest of printing
แสดงความสมพนธระหวางพนกงาน และบรษท ในรปแบบ Bidirectional Association
แสดงความสมพนธระหวางผใช และเครองพมพ ในรปแบบ Consumer-Producer Association
2. Aggregation เปนความสมพนธแบบเปนสวนหนงของ ซงมกเรยกวาความสมพนธ
แบบ “Whole-Part” หรอ “is part of” โดยจะมคลาสทใหญทสดทเปนออบเจกต
หลก และมคลาสหรอออบเจกตสวนอน ๆ เปนสวนหนงของออบเจกตหลก
ความสมพนธของออบเจกต และการมสวนรวม
(Object Relationships and Associations)
2. Aggregation เปนความสมพนธแบบเปนสวนหนงของ ซงมกเรยกวาความสมพนธ
แบบ “Whole-Part” หรอ “is part of” โดยจะมคลาสทใหญทสดทเปนออบเจกต
หลก และมคลาสหรอออบเจกตสวนอน ๆ เปนสวนหนงของออบเจกตหลก
ความสมพนธของออบเจกต และการมสวนรวม
(Object Relationships and Associations)
3. Composition เปนความสมพนธแบบขนตอกน และมความเกยวของกนเสมอ
ความสมพนธของออบเจกต และการมสวนรวม
(Object Relationships and Associations)
Classroom Student
แสดงความสมพนธแบบ Composition ระหวางหองเรยน และนกศกษา
3. Generalization เปนความสมพนธระหวางคลาสในลกษณะของการสบทอด
คณสมบตจากโครงสรางคลาสหนงไปยงโครงสรางอกคลาสหนง โดยท
Generalization/Specialization กคอเทคนคการนาคณสมบต และพฤตกรรมของ
Supperclass ถายทอดคณสมบตไปยงออบเจกตคลาสหรอ Subclass
ความสมพนธของออบเจกต และการมสวนรวม
(Object Relationships and Associations)
3. Generalization
ความสมพนธของออบเจกต และการมสวนรวม
(Object Relationships and Associations)
หลกการพฒนาระบบเชงวตถ
หลกการจดแบงประเภทของวตถในลกษณะทางนามธรรม (Abstract) ออกเปน
กลม ๆ ทเรยกวาคลาส (Class) แตละคลาสกจะมสถานะ (States) รวมทงพฤตกรรม
(Behavior) ตามบทบาทของตน โดยมขอมลรายละเอยดหรอคณสมบต
(Characteristic) ทเกบซอน (Encapsulate) ในคลาสของตน และไมมการปะปนกบ
คลาสอน ๆ แตในดานการตดตอสอสารหรอการรองขอใชบรการ จะสามารถ
ตดตอสอสารกนไดดวยขาวสารหรอเมสเสจ (Message)
หลกการพฒนาระบบเชงวตถ
OOADI (Object-Oriented Analysis, Design and Implementation)
OOA (Object-Oriented Analysis) คอ วธการวเคราะหถงความตองการระบบ จาก
รายละเอยดของคลาส (Class) และวตถ (Object) ทคนพบไดจากปญหาทเรามงสนใจ
เพอทาความเขาใจในรายละเอยดของปญหาเหลานน
OOD (Object-Oriented Design) คอ วธการออกแบบกระบวนการ ดวยการสราง
แบบจาลองเชงวตถทสามารถแสดงความหมาย (Notation) ออกมาในรปแบบเชงลอจ
คล (Class and Object) และฟสคลจองระบบ
OOI (Object-Oriented Implementation) คอ วธการสรางโปรแกรมเพอนาไปใชงานให
เกดผล ดวยการจดการกลมของวตถตาง ๆ ใหทางานรวมกน ซงอาจเรยกวา OOP
(Object-Oriented Programming)
UML (Unified Modeling Language)
UML เปนสญลกษณ (Notation) ทใชอธบาย แสดงรายละเอยด จาลองการสราง
และจดการกบเอกสารตาง ๆ ในระบบ เพอใหการออกแบบซอฟตแวรสามารถทาได
โดยงาย และปรปบรงวธการทางานใหดขน
UML Diagram ประกอบไปดวยแบบจาลองทางสถาปตยกรรมของระบบใน
มมมองตาง ๆ การพฒนาระบบงานอาจไมจาเปนตองใชทกไดอะแกรมกได อาจ
พจารณาเพยงไดอะแกรมทเหมาะสมตอความตองการ
UML (Unified Modeling Language)
UML ประกอบดวย
1. Use Case Diagram
2. Class Diagram (Static)
3. Behavior Diagram (Dynamic):
3.1 Iteration Diagram
3.1.1 Sequence Diagram
3.1.2 Collaboration Diagram
3.2 Statechart Diagram
3.3 Activity Diagram
4. Implementation Diagram:
UML (Unified Modeling Language)
Models
Statechart
Diagrams
Use Case
Diagrams
Class
Diagrams Object
Diagrams
Component
Diagrams
Deployment
DiagramsActivity
Diagrams
Sequence
Diagrams
Collaboration
Diagrams
Use Case
เปนการบงบอก และเนนผใชงานวาตองการทาอะไรในระบบ เปนการพจารณา
จากมมมองของผใชงานทมตอระบบ Use Case Diagram ประกอบดวย
Actor มสญลกษณเปนรปคน หมายถงผ เกยวของทใชงานระบบ องคประกอบท
แสดงเอนตต ทอย ภายนอกระบบ และมปฏสมพนธกบระบบ รวมถงแสดง
ความสมพนธกบ Use Case
Use Case ใชสญลกษณรปวงร ทแสดงถงฟงกชนหนาทตาง ๆ ในระบบ หรอสงท
ระบบตองทาในมมมองของผใชงาน
Relationship แสดงความสมพนธระหวาง Use Case, Use Case กบ Actor หรอ
Actor กบ Actor โดยความสมพนธกจะเปนไปตามความสมพนธในรปแบบตาง ๆ เชน
Association, Aggregation หรอ Composition และ Generalization
Use Case
Sequence Diagram
เปนไดอะแกรมทใชอธบายการทางานของ Use Case เพอแสดงถงขนตอนการ
ทางานและแสดงลาดบของเมสเสจทสงผานระหวางคลาสทโตตอบกน นอกจากนแลว
Sequence Diagram ยงรวมถงเงอนไขเวลาทใชในการทางานดวย
Sequence Diagram จะแสดงในรปแบบ 2 มต โดยเสนประแนวตง (Vertical) จะ
นาเสนอในดานเวลา และเสนแนวนอน (Horizontal) จะนาเสนอเกยวกบการโตตอบ
ระหวางออบเจกตหรอคลาสตาง ๆ เสนแนวตงหรอแนวดงทเปนเสนประนจะเรยกวา
เสนอายขย (Lifeline) ทใชแสดงชวงเวลาตงแตเรมถกสรางจนกระทงถกทาลายทใชแต
ละคลาสโตตอบกน โดยสญลกษณตาง ๆ ทใชใน Sequence Diagram
Sequence Diagram
Sequence Diagram
Class Diagram
จ ะ ป ร ะ ก อ บ ด ว ย
คลาสตาง ๆ และ
ค ว า ม ส ม พ น ธ
ระหวางคลาส โดย
แ ต ล ะ ค ล า ส จ ะ
แสดงองคประกอบ
ทมในระบบ และม
ค ว า ม ส ม พ น ธ
(Relationship) ใน
ลกษณะตาง ๆ
Collaboration Diagram
เปนไดอะแกรมชนดเดยวกน Sequence Diagram โดย Sequence Diagram จะเปน
ไดอะแกรมทแสดงถงการแลกเปลยนขาวสาร แต Collaboration Diagram จะนาเสอน
แผนภาพการทางานรวมกนระหวางออบเจกตเปนสาคญ นอกจากนกยงแสดงลาดบ
การทางานกอนและหลงดวย ซงจะเหนไดวา Collaboration Diagram จะแสดงใหเหน
ภาพโครงสรางระบบมากกวาการเนนเพยงขาวสารทสอสารกน หากตองการแผนภาพ
ทมงเนนดานเวลาเปนสาคญ และแสดงลาดบกอนหลง ใหเลอกใช Sequence Diagram
แตหากตองการแผนภาพทใหความสมพนธภายในออบเจกต กใ ห เ ลอกใช
Collaboration Diagram
Collaboration Diagram
Statechart Diagram
เปนไดอะแกรมทแสดงเหตการณตาง ๆ ของแตละ State ทมผลทาใหสถานะของ
ออบเจกตเปลยนแปลง และผลจากการกระทาทเกดขนเมอสถานะของออบเจกตนน
เปลยน โดยสญลกษณตาง ๆ ทใชใน Statechart Diagram
Statechart Diagram
Activity Diagram
เปนไดอะแกรมแสดงขนตอนของการปฏบตงาน หรอกจกรรมในการปฏบตงาน
โดยจะเกดสถานะ (State) ตาง ๆ ทเกดขนในระหวางการทางาน และผลจากการทางาน
และผลจากการทางานในขนตอนตาง ๆ ในระบบ
Activity Diagram
Component Diagram
เปนไดอะแกรมแสดงโครงสรางทางกายภาพ และความสมพนธระหวาง
องคประกอบตาง ๆ ของซอฟตแวร ชดคาสง (Source Code) โปรแกรมทสามารถเอกซ
ควตไดตวเอง (Executable Program) โปรแกรมแบบไบนาร (Binary) รวมถงขอความ
(Text) และยสเซอรอนเตอรเฟซ
Deployment Diagram
เปนไดอะแกรมทแสดงทตง ของสวนประมวลผล รวมทง Software Component
ตาง ๆ ซงอาจกลาวไดวา Deployment Diagram เปนแผนภาพแสดงสถาปตยกรรมของ
ฮารดแวรและซอฟตแวรในระบบ รวมถงความสมพนธระหวางฮารดแวรและ
ซอฟตแวร
The End