Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method)...

Post on 05-Jul-2020

0 views 0 download

Transcript of Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method)...

พนฐานการวเคราะหและออกแบบระบบเชงวตถดวย 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