38
พื้นฐานการวิเคราะห์และออกแบบระบบเชิงวัตถุด ้วย UM L

Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

พนฐานการวเคราะหและออกแบบระบบเชงวตถดวย UML

Page 2: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

บทนา

การมองปญหาในภาพรวมดวยการตดรายละเอยดทงไปเพอลดความซบซอนลง

โดยเรยกเทคนคนวา Abstraction

หวขอการเรยนร

1. ออบเจกต (Object), คลาส (Class), การสบทอดคณสมบต (Inheritance), โพลมอรฟส

ซม (Polymorphism), เอนแคปซเลชน และการซอนรายละเอยด (Encapsulation and

Information Hiding)

2. ความสมพนธของออกเจกต และการมสวนรวม (Object Relationships and

Associations)

3. หลกการพฒนาระบบเชงวตถ และ UML (Unified Modeling Language)

Page 3: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

ออบเจกต (Object)

ออบเจกตหรอวตถ คอหนวยสนใจของระบบททาใหเกดเหตการณบางอยาง ไม

วาจะเปนบคคล สถานท สงของ หรอเหตการณ สาหรบออบเจกตในโลกของ

เทคโนโลยเชงวตถ จะเนนทตวปฏบตการมากกวาการปฏบต

Page 4: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

คลาส (Class)

คลาสถอวาเปนนามธรรม (Abstract) ในขณะทออบเจกตนนเปนสงทมตวตน

(Concrete) คลาสกคอแบบพมพเขยวของออบเจกตโดยทคลาสไมสามารถทางานได

ในขณะทออบเจกตสามารถทางานได การทางานของออบเจกตจะเปนไปตาม

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

สามารถดคณสมบต (Characteristic) ของออบเจกตไดดวยการดทคลาส

คลาสคอกลมของออบเจกตทมโครงสรางพนฐานพฤตกรรมเดยวกน ดงนน

ออบเจกตทมคณสมบตลกษณะเดยวกน กจะรวมกลมอยในคลาสเดยวกน จงสรปได

วาคลาสกคอตนแบบขอมล ทมไวเพอสรางออบเจกต

Page 5: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

คลาส (Class)

คลาส นอกจากจะมชอคลาสกากบแลว ยงมแอตตรบวต (Attribute) ทใชอธบาย

คณสมบต และโอเปอเรชน (Operation) ทใชอธบายถงพฤตกรรมของคลาสวามตว

ปฏบตการอะไรบาง ซงโอเปอเรชนบางครงอาจ

เรยกวาเมธอด (Method) กได โดยทงคลาส แอตตร

บวต และโอเปอเรชน สามารถแสดงในลกษณะเทม

เพลตได

Page 6: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

การสบทอดคณสมบต (Inheritance)

ขอด

1. ทาใหมโครงสรางเปนระบบ ระเบยบ ปรบเปลยนไดงาย

2. ลดเวลาในการพฒนาระบบ

3. ลดคาใชจายในการพฒนา

การกาหนดคณสมบตของออบเจกตแตละตวในระบบ จะใชวธการสบทอด

(Inheritance) โดยอาศยคณสมบตของออบเจกตทมอยแลวใสลงในออบเจกตตวใหม

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

เกดขนเอง ตองมการสบทอด

Page 7: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

การสบทอดคณสมบต (Inheritance)

Animal

Cat Dog Person

Page 8: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

การสบทอดคณสมบต (Inheritance)

Page 9: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

การสบทอดคณสมบต (Inheritance)

Page 10: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

การสบทอดคณสมบต (Inheritance)

การสบทอดคณสมบตของ Subclass ยงสามารถสบทอดจาก Superclass มากกวา

หนงกเปนได ทเรยกวา Multiple Inheritance

Page 11: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

โพลมอรฟสซม (Polymorphism) หมายถง การบอกแบบเดยว แตไดรบการ

ตอบสนองหลายรปแบบ

คณสมบตของ Polymorphism ทาใหสามารถวาดรปไดหลายรปแบบ ดวยการ

สงผานฟงกชน DrawChart() เพยงฟงกชนเดยว

โพลมอรฟสซม (Polymorphism)

DrawChart

Page 12: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

เอนแคปซเลชน และการซอนรายละเอยด

(Encapsulation and Information Hiding)

การซอนรายละเอยด (Information Hiding) เปนพนฐานของการปกปดขอมลภายใน

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

เหนรายละเอยด (ขอมลและฟงกชน) ภายใน เนองจากถกซอนและบรรจไวในแคปซล แต

สามารถใชงานออบเจกตไดดวยเมธอด กลาวคอ ในการเขาถงขอมลนน จะไมสามารถ

เขาถงไดโดยตรง ตองมการตอบรบจากเมธอดในออบเจกตปลายทางนนวา จะอนญาต

หรอไมทจะใหออบเจกตทสงเมสเสจรองขอเขาถงขอมลตน

สาหรบใน UML การกาหนดใหการมองเหน (Visibility) ของแอตตรบวตหรอ เมธ

อดวาเปน Public, Protected หรอ Private จะใชสญลกษณดงตอไปน

+ คอ สญลกษณ Public Visibility # คอ สญลกษณ Protected Visibility

- คอ สญลกษณ Private Visibility

Page 13: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

1. Association คอ ความสมพนธระหวางออบเจกต

ความสมพนธของออบเจกต และการมสวนรวม

(Object Relationships and Associations)

Person Company* WorksFor 0..1

Employees employer

PrintServer UserRequest of printing

แสดงความสมพนธระหวางพนกงาน และบรษท ในรปแบบ Bidirectional Association

แสดงความสมพนธระหวางผใช และเครองพมพ ในรปแบบ Consumer-Producer Association

Page 14: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

2. Aggregation เปนความสมพนธแบบเปนสวนหนงของ ซงมกเรยกวาความสมพนธ

แบบ “Whole-Part” หรอ “is part of” โดยจะมคลาสทใหญทสดทเปนออบเจกต

หลก และมคลาสหรอออบเจกตสวนอน ๆ เปนสวนหนงของออบเจกตหลก

ความสมพนธของออบเจกต และการมสวนรวม

(Object Relationships and Associations)

Page 15: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

2. Aggregation เปนความสมพนธแบบเปนสวนหนงของ ซงมกเรยกวาความสมพนธ

แบบ “Whole-Part” หรอ “is part of” โดยจะมคลาสทใหญทสดทเปนออบเจกต

หลก และมคลาสหรอออบเจกตสวนอน ๆ เปนสวนหนงของออบเจกตหลก

ความสมพนธของออบเจกต และการมสวนรวม

(Object Relationships and Associations)

Page 16: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

3. Composition เปนความสมพนธแบบขนตอกน และมความเกยวของกนเสมอ

ความสมพนธของออบเจกต และการมสวนรวม

(Object Relationships and Associations)

Classroom Student

แสดงความสมพนธแบบ Composition ระหวางหองเรยน และนกศกษา

Page 17: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

3. Generalization เปนความสมพนธระหวางคลาสในลกษณะของการสบทอด

คณสมบตจากโครงสรางคลาสหนงไปยงโครงสรางอกคลาสหนง โดยท

Generalization/Specialization กคอเทคนคการนาคณสมบต และพฤตกรรมของ

Supperclass ถายทอดคณสมบตไปยงออบเจกตคลาสหรอ Subclass

ความสมพนธของออบเจกต และการมสวนรวม

(Object Relationships and Associations)

Page 18: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

3. Generalization

ความสมพนธของออบเจกต และการมสวนรวม

(Object Relationships and Associations)

Page 19: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

หลกการพฒนาระบบเชงวตถ

หลกการจดแบงประเภทของวตถในลกษณะทางนามธรรม (Abstract) ออกเปน

กลม ๆ ทเรยกวาคลาส (Class) แตละคลาสกจะมสถานะ (States) รวมทงพฤตกรรม

(Behavior) ตามบทบาทของตน โดยมขอมลรายละเอยดหรอคณสมบต

(Characteristic) ทเกบซอน (Encapsulate) ในคลาสของตน และไมมการปะปนกบ

คลาสอน ๆ แตในดานการตดตอสอสารหรอการรองขอใชบรการ จะสามารถ

ตดตอสอสารกนไดดวยขาวสารหรอเมสเสจ (Message)

Page 20: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

หลกการพฒนาระบบเชงวตถ

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)

Page 21: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

UML (Unified Modeling Language)

UML เปนสญลกษณ (Notation) ทใชอธบาย แสดงรายละเอยด จาลองการสราง

และจดการกบเอกสารตาง ๆ ในระบบ เพอใหการออกแบบซอฟตแวรสามารถทาได

โดยงาย และปรปบรงวธการทางานใหดขน

UML Diagram ประกอบไปดวยแบบจาลองทางสถาปตยกรรมของระบบใน

มมมองตาง ๆ การพฒนาระบบงานอาจไมจาเปนตองใชทกไดอะแกรมกได อาจ

พจารณาเพยงไดอะแกรมทเหมาะสมตอความตองการ

Page 22: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

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:

Page 23: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

UML (Unified Modeling Language)

Models

Statechart

Diagrams

Use Case

Diagrams

Class

Diagrams Object

Diagrams

Component

Diagrams

Deployment

DiagramsActivity

Diagrams

Sequence

Diagrams

Collaboration

Diagrams

Page 24: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

Use Case

เปนการบงบอก และเนนผใชงานวาตองการทาอะไรในระบบ เปนการพจารณา

จากมมมองของผใชงานทมตอระบบ Use Case Diagram ประกอบดวย

Actor มสญลกษณเปนรปคน หมายถงผ เกยวของทใชงานระบบ องคประกอบท

แสดงเอนตต ทอย ภายนอกระบบ และมปฏสมพนธกบระบบ รวมถงแสดง

ความสมพนธกบ Use Case

Use Case ใชสญลกษณรปวงร ทแสดงถงฟงกชนหนาทตาง ๆ ในระบบ หรอสงท

ระบบตองทาในมมมองของผใชงาน

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

Actor กบ Actor โดยความสมพนธกจะเปนไปตามความสมพนธในรปแบบตาง ๆ เชน

Association, Aggregation หรอ Composition และ Generalization

Page 25: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

Use Case

Page 26: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

Sequence Diagram

เปนไดอะแกรมทใชอธบายการทางานของ Use Case เพอแสดงถงขนตอนการ

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

Sequence Diagram ยงรวมถงเงอนไขเวลาทใชในการทางานดวย

Sequence Diagram จะแสดงในรปแบบ 2 มต โดยเสนประแนวตง (Vertical) จะ

นาเสนอในดานเวลา และเสนแนวนอน (Horizontal) จะนาเสนอเกยวกบการโตตอบ

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

เสนอายขย (Lifeline) ทใชแสดงชวงเวลาตงแตเรมถกสรางจนกระทงถกทาลายทใชแต

ละคลาสโตตอบกน โดยสญลกษณตาง ๆ ทใชใน Sequence Diagram

Page 27: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

Sequence Diagram

Page 28: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

Sequence Diagram

Page 29: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

Class Diagram

จ ะ ป ร ะ ก อ บ ด ว ย

คลาสตาง ๆ และ

ค ว า ม ส ม พ น ธ

ระหวางคลาส โดย

แ ต ล ะ ค ล า ส จ ะ

แสดงองคประกอบ

ทมในระบบ และม

ค ว า ม ส ม พ น ธ

(Relationship) ใน

ลกษณะตาง ๆ

Page 30: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

Collaboration Diagram

เปนไดอะแกรมชนดเดยวกน Sequence Diagram โดย Sequence Diagram จะเปน

ไดอะแกรมทแสดงถงการแลกเปลยนขาวสาร แต Collaboration Diagram จะนาเสอน

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

การทางานกอนและหลงดวย ซงจะเหนไดวา Collaboration Diagram จะแสดงใหเหน

ภาพโครงสรางระบบมากกวาการเนนเพยงขาวสารทสอสารกน หากตองการแผนภาพ

ทมงเนนดานเวลาเปนสาคญ และแสดงลาดบกอนหลง ใหเลอกใช Sequence Diagram

แตหากตองการแผนภาพทใหความสมพนธภายในออบเจกต กใ ห เ ลอกใช

Collaboration Diagram

Page 31: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

Collaboration Diagram

Page 32: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

Statechart Diagram

เปนไดอะแกรมทแสดงเหตการณตาง ๆ ของแตละ State ทมผลทาใหสถานะของ

ออบเจกตเปลยนแปลง และผลจากการกระทาทเกดขนเมอสถานะของออบเจกตนน

เปลยน โดยสญลกษณตาง ๆ ทใชใน Statechart Diagram

Page 33: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

Statechart Diagram

Page 34: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

Activity Diagram

เปนไดอะแกรมแสดงขนตอนของการปฏบตงาน หรอกจกรรมในการปฏบตงาน

โดยจะเกดสถานะ (State) ตาง ๆ ทเกดขนในระหวางการทางาน และผลจากการทางาน

และผลจากการทางานในขนตอนตาง ๆ ในระบบ

Page 35: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

Activity Diagram

Page 36: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

Component Diagram

เปนไดอะแกรมแสดงโครงสรางทางกายภาพ และความสมพนธระหวาง

องคประกอบตาง ๆ ของซอฟตแวร ชดคาสง (Source Code) โปรแกรมทสามารถเอกซ

ควตไดตวเอง (Executable Program) โปรแกรมแบบไบนาร (Binary) รวมถงขอความ

(Text) และยสเซอรอนเตอรเฟซ

Page 37: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

Deployment Diagram

เปนไดอะแกรมทแสดงทตง ของสวนประมวลผล รวมทง Software Component

ตาง ๆ ซงอาจกลาวไดวา Deployment Diagram เปนแผนภาพแสดงสถาปตยกรรมของ

ฮารดแวรและซอฟตแวรในระบบ รวมถงความสมพนธระหวางฮารดแวรและ

ซอฟตแวร

Page 38: Presentation Expo abstract - WordPress.com · เรียกว่าเมธอด (Method) ก็ได้ โดยทั้งคลาส แอตตริ บิวต์

The End