object-oriented analysis and design
DESCRIPTION
Object-Oriented Analysis and Design. ภาคการศึกษาที่ 2 / 2549. บทที่ 3 Introduction to UML. แนะนำ UML (Unified Modeling Language). Modeling. การสร้างแบบจำลอง ( Modeling ) - PowerPoint PPT PresentationTRANSCRIPT
Object-Oriented Analysis and
Design ภาคการศกษาท 2 /
2549บทท 3
Introduction to UML
แนะนำา UML (Unified Modeling Language)
Modeling
การสรางแบบจำาลอง (Modeling )เปนวธการวเคราะห และออกแบบ
(Analysis and Design ) วธการหนงทเนนการสรางแบบจำาลอง เพอใหสามารถ
เขาใจในปญหาของระบบใชเปนเครองมอในการสอสาร แนวคดในการพฒนาระบบ กบบคคลอนๆ
Visual Modelingใชสญลกษณรปภาพในการสรางแบบ
จำาลอง
ความเปนมาของภาษา UML จากความนยมในการใชแนวคดเชงวตถ
(Object Orientation) ในการวเคราะห ออกแบบและพฒนาระบบซอฟตแวรทมขนาดใหญและซบซอน ทำาใหมผคดคนวธการ
พฒนาซอฟตแวรเชงวตถ ขนหลายวธ แตละวธของการวเคราะหออกแบบจะมกา
รกำาหนดสญลกษณรปภาพ(Notation)ตางกน รวมทงจดเดนจดดอยของแตละวธ
การกแตกตางกน ซงยากทจะตอบวธการใดดทสด
ผออกแบบและพฒนาระบบซอฟตแวร ทมประสบการณมกจะใชหลายวธการรวมกน อนเปนทมาของการรวมกนของวธการ
ตางๆ ในเวลาตอมา
ความเปนมาของภาษา UML ชวงแรก เปนการวมกนระหวางวธการชอ
Booch ของ Grady Booch และ OMT ของ James Rumbaugh
เปนการพฒนากระบวนการพฒนาซอฟตแวรเชงวตถทมเปาหมายใหเปนหนงเดยวกน (Unified Method) โดยนำาเอา
วธการของ Booch และ OMT(Object Modeling Technique) มารวมกนแลวปรบ
ปรงใหม ตอมา Ivar Jacobson ผพฒนากระบวนการ OOSE หรอ Objectory
Process ไดเขารวมโครงการดงกลาวภายหลง ซงในครงนนเปน
การสรางภาษาโมเดลขนใหมเรยกวา ภาษายเอมแอล ( UML - Unified Modeling Lang
uage)
ความเปนมาของภาษา UML เนองจากวธการพฒนาซอฟตแวรเชง
วตถของทงสามมชอเสยงและเปนทยอมรบในชวงเวลานนอยแลว ภาษา UML ทถก
พฒนาขนมาใหมจงกลายเปนทนยมใชกนอยาง
แพรหลาย
ในป ค.ศ .1997 ภาษายเอมแอล รนท 11. ไดถกเสนอใหกบ
หนวยงาน OMG ( Object Management Group) กำาหนดใหเปนภาษาโมเดล
มาตรฐาน (Standard Modeling Language) จากนนภาษา UML ถกพฒนา
ตอโดย OMG ซงในปจจบนภาษา UML รนทเผยแพรออกสสาธารณชนคอ ภาษา
UML รนท 2 .0
ความเปนมาของภาษา UML ป 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 มคณสมบตทสามารถนำาเสนอและสนบสนนหลกการเชงวตถไดอยางครบถวนชดเจน และไมผกตดกบภาษาโปรแกรม
ภาษาใดภาษาหนง
Model ทถกสรางขนจากภาษา UML สามารถถกแปลงไป
เปนระบบจรงทถกสรางขนดวยภาษาโปรแกรมเชงวตถใดกได อกทงภาษา UML
เปนภาษาทงายตอการทำาความเขาใจ ผททำาการศกษาหรอนำาไปใชงาน
ไมจำาเปนตองมความรอนใดนอกจากแนวคดเชงวตถ
ภาษา UML
จากการทภาษา UML เปนภาษาทมมาตรฐาน ผออกแบบและพฒนาจง
จำาเปนตองศกษาไวยากรณ (Syntax)หรอโครงสรางของภาษา UMLกอนนำาไปใชงาน
ภาษายเอมแอลประกอบดวยองคประกอบพนฐาน 3 สวน คอ
1) หนวยโครงสรางพนฐาน (Basic Building Block)
2) กฎการใชงาน (Rules)3) กลไกการทำางาน (Mechanism)
ภาษา UML
1) หนวยโครงสรางพนฐานเปนองคประกอบทสำาคญและ
ผใชตองทำาความเขาใจ ซงประกอบดวยองคประกอบยอย 3 สวน
คอ 1.1) สญลกษณทวไป (Things)
คอ สญลกษณพนฐานทถกใชงานในการสราง diagram
ตางๆ ของภาษา UML ถอวาเปนรปแบบทเลกทสดของModel
สญลกษณทวไปแบงไดออกเปน 4 หมวด คอ
หมวดโครงสราง (Structural Things)
หมวดพฤตกรรม (Behavioral Things)
หมวดการจดกลม (Grouping Things)
หมวดคำาอธบาย (Annotation Things)
ภาษา UML
1.2) ความสมพนธ (Relationships) เปนสงทใชแสดงความสม
พนธระหวางสญลกษณทวไป ม 4 ชนด คอ
ความสมพนธแบบขนตอกน (Dependency Relationship):
คณสมบตของสงหนงขนอยกบคณสมบตของอกสงหนง
ความสมพนธแบบเกยวของกน (Association Relationship):
สงสองสงทมความสมพนธเชอมโยงกนความสมพนธแบบทวไป (Generalization
Relationship): คณสมบตของสงหนงเปนคณสมบตพน
ฐานของอกสงหนงซงอาจจะมคณสมบตมากกวาคณสมบต
พนฐานนนความสมพนธแบบตนแบบ (Realization
Relationship): สงหนงถกสรางใหมคณสมบตของอก
สงหนง
ภาษา UML
1.3) แผนภาพ (Diagrams) คอ แผนภาพทเกดจากแนวคดทวาสญลกษณทวไป
ใดๆกตาม ถามคณสมบตบางประการทสามารถจดใหอยใน
กลมเดยวกนได กจะใชแผนภาพมาจดกลมใหแกสญลกษณ
เหลานน
ภาษา UML
องค
ประก
อบใน
ภาษา
U
ML
นอกจากองคประกอบของภาษา UML แลว อกสงหนงทสำาคญคอ การเลอก
ใชงานdiagram สาเหตทภาษา UML ตองมแผนภาพทหลาก
หลาย เนองจากในระบบทมขนาดใหญและมความซบซอน ไมสามารถใชแผนภาพชนดใดเพยงแผนภาพเดยว แลวแสดงมม
มองไดครบ ทงมมมองเชงโครงสรางของระบบ (Static หรอ
Structural View)และ
เชงพฤตกรรมของระบบ (Dynamic หรอ Behavioral View)
ดงนนจำาเปนตองมการเลอกแผนภาพหนงมาใชในมมมองหนง และเลอกอกแผนภาพหนง
มาใชในอกมมมองหนง
ภาษา UML
เพอใหไดแผนภาพทสามารถเสนอมมมองไดอยางครบถวน
จำาเปนตองใชหลายแผนภาพ โดยตองเขาใจจดประสงคของแตละ
แผนภาพ และเลอกใชแผนภาพใหตรงกบมมมองทตองการ
ภาษา UML
View ตามแนวทางของ UML นจะแยกออกเปน 2 ลกษณะหลก คอ1. Static Views (Structural
Views) มมมองของระบบทไมมการเคลอนไหวหรอ
คงท ไมไดมองถงการเปลยนสภาวะหรอสถานะขององคประกอบทอยภายในระบบ เชน
Class Diagram
2. Dynamic Views (Behavioral Views)
มมมองของระบบทมการเคลอนไหว,เปลยนแปลง สภาวะหรอสถานะขององค
ประกอบทอยภายในระบบ เชน Sequence Diagram
ภาษา UML
Diagram ใน UMLDiagram(แผนภาพ) ใน UML จำาแนกตาม
มมมองเชงโครงสราง และ มมมองเชงพฤตกรรมของระบบมมมองเชงโครงสราง
(Static หรอ Structure)
มมมองเชงพฤตกรรม(Dynamic หรอ
Behavior)Class Diagram Use case DiagramObject Diagram Sequence DiagramComponent Diagram
Collaboration Diagram
Deployment Diagram
Statechart Diagram
Activity Diagram
Class Diagram
ใชเพอแสดงโครงสรางของระบบซงประกอบดวย Class และรายละเอยดภายใน Class
ความสมพนธในเชง Abstraction ระหวาง Class เชน
Aggregation , Generalization , Association
Object Diagram
คลายกบ Class Diagram
Component Diagram
ใชเพอแสดงโครงสรางทางกายภาพของ Software ซงประกอบดวยสวนประกอบตางๆ ทเรยกวา Components (ชนสวนทาง software)
Deployment Diagram
ใชเพอแสดงโครงสรางทาง Hardware ของระบบ ซงมกใชรวมกบ Component Diagram
Use Case Diagram
ใชเพออธบายฟงกชนของระบบในมมมองของกลมผใชระบบ
Sequence Diagram
ใชเพอแสดงปฎสมพนธ(Interaction) ระหวาง Objects โดยเฉพาะการสง Message ระหวาง Objects ตามลำาดบของเวลา
Tim
e
Collaboration Diagram
ใชเพอแสดงปฎสมพนธ(Interaction) ระหวาง Objects คลายกบ
Sequence Diagram แตตางกนท Collaboration Diagram จะไมแสดงลำาดบการสง Message อยางชดเจน แตจะเนนท การแสดงความ
สมพนธระหวาง Objects ตามลกษณะการทำางาน (ปกตจะเลอกใช Diagram
ใด Diagram หนง)
Statechart Diagram
ใชเพอแสดงสถานะ (State ) ของแตละ Object รวมทงเหตการณ(Events) ตาง ๆ ททำาใหสถานะของ Object เปลยนไป โดยจะใหความสนใจวา ณ เวลาตาง ๆ O bject นนมสถานะเปนแบบใด
Activity Diagram
ใชเพอแสดงลำาดบการดำาเนนกจกรรม(Activity) จากกจกรรมหนง
ไปยงอกกจกรรมหนงภายในระบบ ทเกดจากการทำางานของ Objects
(ในลกษณะ Flowchart) สญลกษณจะคลายกบ Statechart Diagram แตจะ
ไมสนใจในเรองสถานะ
ปจจบน Diagram ในภาษา UML สามารถแบงออกไดเปน
9 diagrams โดยแตละ diagram เปรยบเสมอนมมมอง
ในดานตางๆของระบบทผวเคราะหและออกแบบกำาลงจะพฒนา
โดยในแตละ diagram ทแสดงมมมองตางๆ ประกอบดวยสญลกษณทใชสอความ
หมายเฉพาะภายใน diagram นน
Diagram ใน UML
นอกจากความรพนฐานทเกยวของกบองคประกอบและdiagram ของภาษา UML แลว สงททำาใหการใชงานภาษา UMLเปนไป
อยางประสบผลสำาเรจอกอยางกคอ ผออกแบบและพฒนาจำาเปนตองเรยนรกระบวนการในการ
เลอกใช diagram ตามความเหมาะสม
ในขนตอนกระบวนการพฒนาซอฟตแวรเชงวตถ จะใชแผนภาพของภาษา UML เพอ
สรางโมเดลระบบอยางเปนขนตอนสอดคลองกบกระบวนการพฒนาซอฟตแวร
Diagram ใน UML
ในการพฒนาระบบโดยทวไป ผพฒนาไมจำาเปนตองสรางแผนภาพใหครบทกแผนภาพ
เสมอไป ผพฒนาสามารถปรบเปลยนการใชงานแผนภาพไดตามความเหมาะสม
Diagram ใน UML
Object 1. เฟสการวเคราะหความตองการ
(Requirement Analysis) วตถประสงคของเฟสแรกน คอ การทำาความ
เขาใจกบขอบเขตของปญหา (Problem Domain) การกำาหนดขอบเขตของการพฒนาและฟงกชนการทำางานตางๆของระบบทพฒนา
สงทผพฒนาตองทำาในขนตอนน คอ การนำาเอาความตองการแบบ Functionality (Functional Requirements) ซงบงบอกถงความสามารถทผใชสามารถเรยกใชจากระบบ มาแปลงเปน Model ความตองการของผใช
งาน ซงจะใช Use Case Diagram
Object1. เฟสการวเคราะหความตองการ
(Requirement Analysis) ทขาดไมไดใน Use Case คอ คำา
บรรยาย Use Case (Use Case Description) ซงเปนรายละเอยดของแตละ Function วาเรมตนอยางไร มการดำาเนน
เหตการณเกดขนอยางไรและสนสดลงอยางไร เรยกรวมๆวา ลำาดบการเกดเหตการณ (Flow
of Event) รวมถงเหตการณยกเวน (Exception Flow of Event) ทอาจเกดขนระหวางการปฏบตฟงกชนดงกลาวของระบบ ก
ตองถกบนทกดวยเชนกน
Object 2 . เฟสการวเคราะหระบบ (Domain
Analysis)ในเฟสทสองนเปนการบรรยายถง
โครงสรางและพฤตกรรมของระบบทกำาลงพฒนา ซงกจกรรมสำาคญตางๆทผพฒนาตองกระทำาในเฟสน ไดแก
2.1) การสราง Class Diagram เพอศกษาโครงสราง (Structure) หรอสวนทเปนโครงสรางของระบบ โดยการ
Object 2. เฟสการวเคราะหระบบ (Domain
Analysis)2.1.1 หา Class ทงหมดในระบบโดยใช
เทคนค Heuristic Mapping คอ ใหคำานามทพบในคำาบรรยาย Use case (เฟส
แรก) แปลงเปน Class คำากรยา จะถกแปลงเปน Operation
และคำาวเศษณ จะถกแปลงเปน Attribute
ซงคำานามทกคำาอาจไมถกแปลงเปน Class เสมอไป
เชน คำานามบางคำาเขยนตางกนแตหมายถงสงเดยวกน ซงขนตอนน ประสบการณถอเปนสงสำาคญ
ทชวยใหผพฒนาคนพบคลาสเปาหมาย และรายละเอยดของคลาสไดอยางถกตอง
Object 2. เฟสการวเคราะหระบบ (Domain
Analysis) 2.1.2 คนหาความสมพนธ
(Relationships) ระหวางคลาส อนไดแก
การขนตอกน (Dependency), การถายทอดคณสมบต (Inheritance),
ความสมพนธแบบเชอมโยง(Association) ทงแบบ
สมพนธแบบองคประกอบรวม (Composition) และ
สมพนธแบบมสวนรวม (Aggregation) ดวยเชนกน
Object 2. เฟสการวเคราะหระบบ (Domain
Analysis) 2.2) การสราง Sequence Diagram
เพอศกษาพฤตกรรม (Behavior) หรอสวนทมความเปน
พลวต( Dynamic) ของระบบ โดยการสราง Sequence
Diagram สำาหรบแตละUse case ใน Use Case Diagram
จากเฟสแรก นอกจากนการสราง Sequence Diagram ยงชวยให
พบOperation เพมเตมดวย
Object 2. เฟสการวเคราะหระบบ (Domain
Analysis)วธการพฒนาซอฟตแวรเชงวตถ เปนไป
ในลกษณะของการวนรอบทำาซำาและทำาเพม (Interative and Incremental) ขน
เรอยๆจนสมบรณ ซงลกษณะดงกลาวเรมปรากฏในเฟสน
คอ แทนทตองทำาการวเคราะห ทก Use Case จาก Use Case Diagram ในครงเดยว ซงหากเปนระบบทซบซอนและมขนาดใหญกอาจ
ประกอบไปดวย Use Case นบรอย
Object 2. เฟสการวเคราะหระบบ (Domain
Analysis) ดงนนในเฟสน ผพฒนาสามารถเลอก
เพยงหนง Use Case มาทำาการวเคราะห หา Classes และ Relations รวมถงลกษณะ
Dynamic ของระบบ และเมอวงจรการพฒนากลบมาทเฟสนอกครง กเปนการวเคราะห
ออกแบบ Use Case ถดๆไปนนเอง
Object 2. เฟสการวเคราะหระบบ (Domain
Analysis)กลาวโดยสรป ในเฟสของการวเคราะห
เปนการ Model ปญหา ซงผลทไดในเฟสนคอ เอกสารทบนทก Model การวเคราะหระบบ (Analysis Model Document) อน
ประกอบไปดวย Class Diagram, Sequence
Diagram นอกจากนอาจมการใชสญลกษณ Package หรอ Diagram อนๆ เชน Collaboration Diagram , State Transition Diagram, Activity
Diagram มาชวยในการสรางโมเดลดวยเชนกน
Object 3 . เฟสการออกแบบ (Design)
ในเฟสการออกแบบระบบ ผพฒนาจะทำาการกำาหนดรายละเอยดเชงเทคนคของระบบใหพรอม เพอนำาไป Implement จรงในเฟส
ถดไป อาจกลาวไดวา เฟสนเปนเฟสการคนหาวธ
การแกปญหา(How) ภายหลงจากการทำาความเขาใจปญหา (What ในเฟสกอนหนา)
สงทตองเตรยมสำาหรบใชในเฟสน คอ Model การวเคราะหจากเฟสทสอง ซงอาจรวมถงความตองการแบบ Nonfunctional กจะ
ถกนำามาพจารณาในการออกแบบเฟสนดวยเชนกน
Object 3. เฟสการออกแบบ (Design)
กจกรรมในการเฟสการออกแบบระบบมดงตอไปน
31. ) การเพมเตม Class หรอ Package ลงไปภายใน Model
การวเคราะหระบบ (เฟสทสอง)
เชน การเพมแพกเกจทเกยวของกบฐานขอมล การ ตดตอสอสาร โดย Package หรอ Class เหลานจะทำางานรวมกน กบ Package
เดมทมอยใน Model การวเคราะหระบบ นอกจากนยงรวมถงการแกไขปรบปรงเพมเตม Attribute หรอ Operation
ของ Class ตางๆใน Model การวเคราะหระบบดวยเชนกน
Object 3. เฟสการออกแบบ (Design)
3.2) จดหา Class Library หรอ Component จากทอนเพอนำามาใชอกครง เพอชวยลดเวลาในการพฒนา
ระบบ (Reuse of Class Libraries)
3.3) กำาหนดรายละเอยดสวนตดตอกบผใชของระบบ
(User Interface Design)
3.4) หาวธจดการกบขอผดพลาดทอาจจะเกดขนในการใช งานระบบ (Exception
Handling)
Object 3. เฟสการออกแบบ (Design)
3.5) ออกแบบสถาปตยกรรมระบบ (System Architecture
Design) เพอทำาการพจารณาทอย หรอตำาแหนงการตดตงของ
Component หรอ Package ตางๆ พจารณาวา Class ใดควรอย
ใน Component หรอไฟลใดควรตดตงไวทระบบคอมพวเตอร
สวนใด นนคอการสราง Component
Diagram และDeployment Diagram
สำาหรบรปแบบของสถาปตยกรรมทใชกนโดยทวไป คอ
สถาปตยกรรมแบบกระจาย (Distributed System) ซงไดแก
2-เทยร (2-Tier), 3-เทยร (3- Tier) และ มลตเทยร(Multi-Tier System)
Object 3. เฟสการออกแบบ (Design)
3.6) ออกแบบสวนทเปน Nonfunctional Requirement เชน กลมของผใชงานมความตองการใชงานระบบใหม
รวมกบฐานขอมลหรอระบบเดมทมอย (Legacy System Integration)
3.7) นอกจากน การออกแบบยงรวมถงการตดสนใจเลอกใชเทคโนโลยตางๆทมอยให
เหมาะสมกบความตองการและงบประมาณของผใชงานดวยเชนกน
Object 3. เฟสการออกแบบ (Design)
กลาวโดยสรป UML Diagram ทถกสรางในเฟสนไดแก
Component Diagram และ Deployment Diagram ในสวนของ
Class Diagram และ Sequence Diagram จะถกเพมรายละเอยดเชงเทคนค
เรยกผลลพธรวมของเฟสนวา Model การออกแบบระบบ (Design Model)
ซงประกอบไปดวย Diagram ตางๆขางตน รวมถงขอกำาหนด
ดานอนๆ ซงระบถงรายละเอยดของความตองการแบบ Nonfunctional เทคนควธการแกปญหา และ
เอกสารการออกแบบ (UML Design Document) นจะถกสงตอไปใหโปรแกรมเมอรเพอ
นำาไปพฒนาในเฟสถดไป
Object4 . เฟสการสรางโปรแกรมระบบ
(Construction)วตถประสงคหลกของเฟสน คอ การแปลง
ผลทไดจากเฟสการออกแบบไปเปน Code กลาวคอ นก
วเคราะหออกแบบระบบจะตองทำาการสราง Model ระบบทสมบรณอนเปนขอมลสำาคญ
สำาหรบโปรแกรมเมอร
Object5. เฟสการทดสอบระบบ (Testing)
ในเฟสน ผพฒนาจะตองทำาการคนหาขอผดพลาด (Error) ภายในระบบทกำาลงพฒนา ซง โดยปกตการทดสอบระบบจะอางองผลการ
วเคราะหความตองการผใชงานระบบ(เฟสแรก)เปนหลก
วาเปนไปตามความตองการของผใชงานจรงอยางครบถวนหรอไม
ทงดานความตองการแบบ Functional และ Nonfunctional