pirun.ku.ac.thpirun.ku.ac.th/~faastwc/02739424/handout/chapter3.docx · Web viewภาษา UML...

Preview:

Citation preview

13

บทท 3ยเอมแอลเบองตน (Introduction to UML)

จดประสงค1. เพอใหนสตมความเขาใจประโยชนของยเอมแอล2. เพอใหนสตมความเขาใจหลกไวยกรณภาษายเอมแอล3. เพอใหนสตมความเขาใจแผนภาพในการนำาเสนอการพฒนาระบบดวย

ยเอมแอล4. เพอใหนสตมความเขาใจขนตอนการพฒนาระบบเชงวตถ

การสรางแบบจำาลอง (Modeling) เปนวธการวเคราะห และออกแบบ (Analysis and Design) วธ

การหนงทเนนการสรางแบบจำาลอง เพอใหสามารถเขาใจในปญหาของระบบใชเปนเครองมอในการสอสาร แนวคดในการพฒนาระบบ กบบคคลอนๆ Visual Modeling ใชสญลกษณรปภาพในการสรางแบบจำาลอง

ความเปนมาของภาษา UMLจากความนยมในการใชแนวคดเชงวตถ (Object Orientation)

ในการวเคราะห ออกแบบและพฒนาระบบซอฟตแวรทมขนาดใหญและซบซอนทำาใหมผคดคนวธการพฒนาซอฟตแวรเชงวตถขนหลายวธ แตละวธของการวเคราะหออกแบบจะมการกำาหนดสญลกษณรปภาพ(Notation)ตางกน รวมทงจดเดนจดดอยของแตละวธการกแตกตางกน ซงยากทจะตอบวธการใดดทสด

ผออกแบบและพฒนาระบบซอฟตแวรทมประสบการณมกจะใชหลายวธการรวมกน อนเปนทมาของการรวมกนของวธการตางๆในเวลาตอมาชวงแรกเปนการวมกนระหวางวธการชอ Booch ของ Grady Booch และ OMT ของ James Rumbaugh เปนการพฒนากระบวนการพฒนาซอฟตแวรเชงวตถทมเปาหมายใหเปนหนง

14

เดยวกน(Unified Method) โดยนำาเอาวธการของ Booch และ OMT(Object Modeling Technique) มารวมกนแลวปรบปรงใหมตอมา Ivar Jacobson ผพฒนากระบวนการ OOSE หรอ Objectory Process ไดเขารวมโครงการดงกลาวภายหลงซงในครงนนเปนการสรางภาษาโมเดลขนใหมเรยกวา ภาษายเอมแอล (UML - Unified Modeling Language) เนองจากวธการพฒนาซอฟตแวรเชงวตถของทงสามมชอเสยงและเปนทยอมรบในชวงเวลานนอยแลว ภาษา UML ทถกพฒนาขนมาใหมจงกลายเปนทนยมใชกนอยางแพรหลาย

ในป ค.ศ.1997 ภาษายเอมแอล รนท 1.1 ไดถกเสนอใหกบหนวยงาน OMG (Object Management Group) กำาหนดใหเปนภาษาโมเดลมาตรฐาน (Standard Modeling Language) จากนนภาษา UML ถกพฒนาตอโดย OMG ซงในปจจบนภาษา UML รนทเผยแพรออกสสาธารณชนคอ ภาษา UML รนท 2.0

ป 1998 พฒา UML Version 1.2ป 1999 พฒา UML Version 1.3ป 2000 พฒา UML Version 1.4ป 2001 พฒา UML Version 2.0 http://www.uml.org/

ภาษา UMLภาษา UML เปนภาษาทมรปภาพมาตรฐาน (Standard Visual

Modeling Language) และเปนภาษาสากลทใชในการวเคราะหออกแบบและพฒนาระบบซอฟตแวรเชงวตถ ดงนนเอกสารการวเคราะหและออกแบบทถกสรางดวยภาษา UML จงสามารถแลกเปลยนและทำาความเขาใจตรงกนไดระหวางผรวมงานภายในกลมผพฒนาระบบ ภาษา UML มคณสมบตทสามารถนำาเสนอและสนบสนนหลกการเชงวตถไดอยางครบถวนชดเจนและไมผกตดกบภาษาโปรแกรมภาษาใดภาษาหนง

15

รปแบบทถกสรางขนจากภาษา UML สามารถถกแปลงไปเปนระบบจรงทถกสรางขนดวยภาษาโปรแกรมเชงวตถใดกได อกทงภาษา UML เปนภาษาทงายตอการทำาความเขาใจ ผททำาการศกษาหรอนำาไปใชงานไมจำาเปนตองมความรอนใดนอกจากแนวคดเชงวตถ จากการทภาษา UML เปนภาษาทมมาตรฐาน ผออกแบบและพฒนาจงจำาเปนตองศกษาไวยากรณ (Syntax)หรอโครงสรางของภาษา UML กอนนำาไปใชงาน ภาษายเอมแอล ประกอบดวยองคประกอบยอย 3 สวน คอ

1) สญลกษณทวไป (Things) คอ สญลกษณพนฐานทถกใชงานในการสราง

แผนภาพ(diagram)ตางๆ ของภาษา UML ถอวาเปนรปแบบทเลกทสดของ Model สญลกษณทวไปแบงไดออกเปน 4 หมวด คอ

หมวดโครงสราง (Structural Things) หมวดพฤตกรรม (Behavioral Things) หมวดการจดกลม (Grouping Things) หมวดคำาอธบาย (Annotation Things)

2) ความสมพนธ (Relationships) เปนสงทใชแสดงความสมพนธระหวางสญลกษณทวไปม 4

ชนด คอความสมพนธแบบขนตอกน (Dependency

Relationship): คณสมบตของสงหนงขนอยกบคณสมบตของอกสงหนงความสมพนธแบบเกยวของกน (Association

Relationship): สงสองสงทมความสมพนธเชอมโยงกนความสมพนธแบบทวไป (Generalization

Relationship): คณสมบตของสงหนงเปนคณสมบตพนฐานของอกสงหนงซงอาจจะมคณสมบตมากกวาคณสมบตพนฐานนนความสมพนธแบบตนแบบ (Realization Relationship):

16

สงหนงถกสรางใหมคณสมบตของอกสงหนง 3) แผนภาพ (Diagrams)

คอ แผนภาพทเกดจากแนวคดทวาสญลกษณทวไปใดๆกตาม ถามคณสมบตบางประการท

สามารถ จดใหอยในกลมเดยวกนได กจะใชแผนภาพมาจดกลมใหแกสญลกษณเหลานน นอกจากองคประกอบของภาษา UML แลว อกสงหนงทสำาคญคอ การเลอกใชงานแผนภาพสาเหตทภาษา UML ตองมแผนภาพทหลากหลาย เนองจากในระบบทมขนาดใหญและมความซบซอน ไมสามารถใชแผนภาพชนดใดเพยงแผนภาพเดยว แลวแสดงมมมองไดครบ ทงมมมองเชงโครงสรางของระบบ (Static หรอ Structural View)และเชงพฤตกรรมของระบบ (Dynamic หรอ Behavioral View)

ดงนนจำาเปนตองมการเลอกแผนภาพหนงมาใชในมมมองหนง และเลอกอกแผนภาพหนงมาใชในอกมมมองหนง เพอใหไดแผนภาพทสามารถเสนอมมมองไดอยางครบถวน จำาเปนตองใชแผนภาพ โดยตองเขาใจจดประสงคของแตละแผนภาพ และเลอกใชแผนภาพใหตรงกบมมมองทตองการ View ตามแนวทางของ UML นจะแยกออกเปน 2 ลกษณะหลก คอ

1. Static Views (Structural Views)

17

มมมองของระบบทไมมการเคลอนไหวหรอคงทไมไดมองถงการเปลยนสภาวะหรอสถานะขององคประกอบทอยภายในระบบ เชน Class Diagram

2. Dynamic Views (Behavioral Views)มมมองของระบบทมการเคลอนไหว เปลยนแปลง สภาวะหรอสถานะ

ขององคประกอบทอยภายในระบบ เชน Sequence Diagram

แผนภาพยเอมแอล ( UML Diagram)แผนภาพในภาษา UML สามารถแบงออกไดเปน 9 แผนภาพ โดย

แตละแผนภาพเปรยบเสมอนมมมองในดานตางๆของระบบทผวเคราะหและออกแบบกำาลงจะพฒนา โดยในแตละ แผนภาพทแสดงมมมองตางๆ ประกอบดวยสญลกษณทใชสอความหมายเฉพาะภายใน diagram นนนอกจากความรพนฐานทเกยวของกบองคประกอบและแผนภาพ ของภาษา UML แลว สงททำาใหการใชงานภาษา UML เปนไปอยางประสบผลสำาเรจอกอยางกคอ ผออกแบบและพฒนาจำาเปนตองเรยนรกระบวนการในการเลอกใชแผนภาพตามความเหมาะสม

ในขนตอนกระบวนการพฒนาซอฟตแวรเชงวตถ จะใชแผนภาพของภาษา UML เพอสรางโมเดลระบบอยางเปนขนตอนสอดคลองกบกระบวนการพฒนาซอฟตแวรในการพฒนาระบบโดยทวไป ผพฒนาไมจำาเปนตองสรางแผนภาพใหครบทกแผนภาพเสมอไป ผพฒนาสามารถปรบเปลยนการใชงานแผนภาพไดตามความเหมาะสม

18

Class Diagram

ใช เพอแสดงโครงสรางของระบบซงประกอบดวย Class และรายละเอยดภายใน Class

ความสมพนธในเชง Abstraction ระหวาง Class เชน Aggregation , Generalization , Association

Object Diagram

19

คลายกบ Class Diagram

Component Diagram

Deployment Diagram

Use Case Diagram

20

ใชเพอแสดงปฏสมพนธ(Interaction) ระหวางวตถ โดยเฉพาะการสงขาวสาร( Message) ระหวาง วตถตามลำาดบของเวลา

Sequence Diagram

ใชเพอแสดงปฏสมพนธ(Interaction) ระหวางวตถโดยเฉพาะการสงขาวสารระหวาง วตถ ตามลำาดบของเวลา

Collaboration Diagram

ใช เพอแสดงปฏสมพนธ(Interaction) ระหวางวตถ คลายกบ Sequence Diagram แตตางกนท Collaboration Diagram จะไมแสดงลำาดบการสงขาวสารอยางชดเจน แตจะเนนทการแสดงความสมพนธระหวางวตถตามลกษณะการทำางาน (ปกตจะเลอกใชแผนภาพใดแผนภาพหนง)

21

State Diagram

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

Activity Diagram

ใช เพอแสดงลำาดบการดำาเนนกจกรรม(Activity) จากกจกรรมหนงไปยงอกกจกรรม

22

หนงภายในระบบ ทเกดจากการทำางานของวตถ (ในลกษณะ Flowchart) สญลกษณจะคลายกบ State Diagram แตจะไมสนใจในเรองสถานะ

ขนตอนการพฒนาระบบเชงวตถ(Object-Oriented System Analysis and Design)

1. การวเคราะหความตองการ (Requirement Analysis) วตถประสงคของเฟสแรกน คอ การทำาความเขาใจกบขอบเขตของ

ปญหา (Problem Domain) การกำาหนดขอบเขตของการพฒนาและฟงกชน( Function) การทำางานตางๆของระบบทพฒนา

สงทผพฒนาตองทำาในขนตอนน คอ การนำาเอาความตองการแบบ Functionality (Functional Requirements) ซงบงบอกถงความสามารถทผใชสามารถเรยกใชจากระบบ มาแปลงเปน Model ความตองการของผใชงาน ซงจะใช Use Case Diagram ทขาดไมไดใน Use Case คอ คำาบรรยายยสเคส (Use Case Description) ซงเปนรายละเอยดของแตละฟงกชนวาเรมตนอยางไร มการดำาเนนเหตการณเกดขนอยางไรและสนสดลงอยางไร เรยกรวมๆวา ลำาดบการเกดเหตการณ (Flow of Event) รวมถงเหตการณยกเวน (Exception Flow of Event) ทอาจเกดขนระหวางการปฏบตฟงกชนดงกลาวของระบบ กตองถกบนทกดวยเชนกน

2. การวเคราะหระบบ (Domain Analysis)ในเฟสทสองนเปนการบรรยายถงโครงสรางและพฤตกรรมของระบบ

ทกำาลงพฒนา ซงกจกรรมสำาคญตางๆทผพฒนาตองกระทำาในเฟสน ไดแก 2.1) การสราง Class Diagram เพอศกษาโครงสราง (Structure) หรอสวนทเปนโครงสรางของระบบ โดยการ

2.1.1 หา Class ทงหมดในระบบโดยใชเทคนค Heuristic Mapping คอ ใหคำานามทพบในคำาบรรยาย Use case (เฟสแรก) แปลงเปนคลาส

คำากรยา จะถกแปลงเปน Operation และ

23

คำาวเศษณ จะถกแปลงเปน Attribute ซงคำานามทกคำาอาจไมถกแปลงเปนคลาสเสมอไป

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

และรายละเอยดของคลาสไดอยางถกตอง 2.1.2 คนหาความสมพนธ (Relationships) ระหวางคลาส อนไดแก การขนตอกน (Dependency) การถายทอดคณสมบต

(Inheritance) ความสมพนธแบบเชอมโยง(Association) ทงแบบสมพนธแบบองคประกอบรวม (Composition) และสมพนธแบบมสวนรวม (Aggregation) ดวยเชนกน

2.2) การสราง Sequence Diagram เพอศกษาพฤตกรรม (Behavior) หรอสวนทมความเปนพลวต( Dynamic) ของระบบ โดยการสราง Sequence Diagram สำาหรบแตละยสเคส ใน Use Case Diagram จากเฟสแรก นอกจากนการสราง Sequence Diagram ยงชวยใหพบ Operation เพมเตมดวยวธการพฒนาซอฟตแวรเชงวตถ เปนไปในลกษณะของการวนรอบทำาซำาและทำาเพม (Interative and Incremental) ขนเรอยๆจนสมบรณ

ซงลกษณะดงกลาวเรมปรากฏในขนตอนน คอ แทนทตองทำาการวเคราะห ทกยสเคส จาก Use Case Diagram ในครงเดยว ซงหากเปนระบบทซบซอนและมขนาดใหญกอาจประกอบไปดวยยสเคส นบรอย ดงนนในขนตอนน ผพฒนาสามารถเลอกเพยงหนงยสเคส มาทำาการวเคราะห หา Classes และ Relations รวมถงลกษณะ Dynamic ของระบบ และเมอวงจรการพฒนากลบมาทขนตอนนอกครง กเปนการวเคราะหออกแบบยสเคส ถดๆไปนนเอง กลาวโดยสรป ในขนตอนของการวเคราะหเปนการรปแบบ( Model)ของปญหา ซงผลทไดคอ เอกสารทบนทกรปแบบการวเคราะหระบบ (Analysis Model Document) อนประกอบไปดวย Class Diagram, Sequence Diagram นอกจากนอาจมการใชสญลกษณ แพกเกจ( Package) หรอ แผนภาพ อนๆ เชน

24

Collaboration Diagram , State Transition Diagram, Activity Diagram มาชวยในการสรางรปแบบดวยเชนกน

3. การออกแบบ (Design) ในเฟสการออกแบบระบบ ผพฒนาจะทำาการกำาหนดรายละเอยดเชง

เทคนคของระบบใหพรอม เพอนำาไป Implement จรงในเฟสถดไป อาจกลาวไดวา ขนตอนนเปนการคนหาวธการแกปญหา(How) ภาย

หลงจากการทำาความเขาใจปญหา (What ในเฟสกอนหนา) สงทตองเตรยมสำาหรบใชในขนตอนน คอ รปแบบการวเคราะหจากขนตอนทสอง ซงอาจรวมถงความตองการแบบ Nonfunctional กจะถกนำามาพจารณาในการออกแบบในขนตอนนดวยเชนกน กจกรรมในการขนตอนการออกแบบระบบมดงตอไปน

3.1) การเพมเตม คลาส หรอ แพกเกจ ลงไปภายในรปแบบ การวเคราะหระบบ (ขนตอนทสอง)เชน การเพมแพกเกจทเกยวของ

กบฐานขอมล การตดตอสอสารโดย แพกเกจ หรอ คลาส เหลานจะทำางานรวมกนกบแพกเกจ เดมทมอยในรปแบบการวเคราะหระบบ นอกจากนยงรวมถงการแกไขปรบปรงเพมเตม Attribute หรอ Operation ของคลาส ตางๆในรปแบบการวเคราะหระบบดวยเชนกน

3.2) จดหา Class Library หรอ Component จากทอนเพอนำามาใชอกครง เพอชวยลดเวลาในการพฒนาระบบ (Reuse of Class Libraries)

3.3) กำาหนดรายละเอยดสวนตดตอกบผใชของระบบ (User Interface Design)

3.4) หาวธจดการกบขอผดพลาดทอาจจะเกดขนในการใช งานระบบ (Exception Handling)

3.5) ออกแบบสถาปตยกรรมระบบ (System Architecture Design) เพอทำาการพจารณาทอย หรอตำาแหนงการตดตงของ Component หรอ Package ตางๆ พจารณาวาคลาสใดควรอยใน Component หรอไฟลใดควรตดตงไวทระบบคอมพวเตอรสวนใด นนคอ

25

การสราง Component Diagram และ Deployment Diagram สำาหรบรปแบบของสถาปตยกรรมทใชกนโดยทวไป คอ

สถาปตยกรรมแบบกระจาย (Distributed System) ซงไดแก 2-เทยร (2-Tier) 3-เทยร (3- Tier) และ มลตเทยร(Multi-Tier System)

3.6) ออกแบบสวนทเปน Nonfunctional Requirement เชน กลมของผใชงานมความตองการใชงานระบบใหมรวมกบฐานขอมลหรอระบบเดมทมอย (Legacy System Integration)

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

กลาวโดยสรป UML Diagram ทถกสรางในขนตอนนไดแกComponent Diagram และ Deployment Diagram ในสวนของ Class Diagram และ Sequence Diagram จะถกเพมรายละเอยดเชงเทคนค เรยกผลลพธรวมของขนตอนนวา Model การออกแบบระบบ (Design Model) ซงประกอบไปดวยแผนภาพตางๆขางตน รวมถงขอกำาหนดดานอนๆ ซงระบถงรายละเอยดของความตองการแบบ Nonfunctional เทคนควธการแกปญหา และเอกสารการออกแบบ (UML Design Document) นจะถกสงตอไปใหโปรแกรมเมอรเพอนำาไปพฒนาในขนตอนถดไป

4. การสรางโปรแกรมระบบ (Construction)วตถประสงคหลกของเฟสน คอ การแปลงผลทไดจากขนตอนการ

ออกแบบไปเปน Code กลาวคอ นกวเคราะหออกแบบระบบจะตองทำาการสราง Model ระบบทสมบรณอนเปนขอมลสำาคญสำาหรบโปรแกรมเมอร

5. การทดสอบระบบ (Testing)ในขนตอนน ผพฒนาจะตองทำาการคนหาขอผดพลาด (Error)

ภายในระบบทกำาลงพฒนาซงโดยปกตการทดสอบระบบจะอางองผลการ

26

วเคราะหความตองการผใชงานระบบ(ขนตอนแรก)เปนหลกวาเปนไปตามความตองการของผใชงานจรงอยางครบถวนหรอไมทงดานความตองการแบบ Functional และ Nonfunctional

แบบฝกหด

1. จงอธบายประโยชนของยเอมแอลในการพฒนาระบบเชงวตถ2. จงอธบายการใชแผนตละอนของยเอมแอล3. จงอธบายขนตอนของการพฒนาระบบเชงวตถ

Recommended