object-oriented analysis and design

47
Object-Oriented Analysis and Design ภภภภภภภภภภภภภภ 2 / 2549 บบบบบ 3 Introduction to UML

Upload: hanae-william

Post on 15-Mar-2016

40 views

Category:

Documents


0 download

DESCRIPTION

Object-Oriented Analysis and Design. ภาคการศึกษาที่ 2 / 2549. บทที่ 3 Introduction to UML. แนะนำ UML (Unified Modeling Language). Modeling. การสร้างแบบจำลอง ( Modeling ) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Object-Oriented Analysis and Design

Object-Oriented Analysis and

Design ภาคการศกษาท 2 /

2549บทท 3

Introduction to UML

Page 2: Object-Oriented Analysis and Design

แนะนำา UML (Unified Modeling Language)

Page 3: Object-Oriented Analysis and Design

Modeling

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

(Analysis and Design ) วธการหนงทเนนการสรางแบบจำาลอง เพอใหสามารถ

เขาใจในปญหาของระบบใชเปนเครองมอในการสอสาร แนวคดในการพฒนาระบบ กบบคคลอนๆ

Visual Modelingใชสญลกษณรปภาพในการสรางแบบ

จำาลอง

Page 4: Object-Oriented Analysis and Design

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

(Object Orientation) ในการวเคราะห ออกแบบและพฒนาระบบซอฟตแวรทมขนาดใหญและซบซอน ทำาใหมผคดคนวธการ

พฒนาซอฟตแวรเชงวตถ ขนหลายวธ แตละวธของการวเคราะหออกแบบจะมกา

รกำาหนดสญลกษณรปภาพ(Notation)ตางกน รวมทงจดเดนจดดอยของแตละวธ

การกแตกตางกน ซงยากทจะตอบวธการใดดทสด

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

ตางๆ ในเวลาตอมา

Page 5: Object-Oriented Analysis and Design

ความเปนมาของภาษา UML ชวงแรก เปนการวมกนระหวางวธการชอ

Booch ของ Grady Booch และ OMT ของ James Rumbaugh

เปนการพฒนากระบวนการพฒนาซอฟตแวรเชงวตถทมเปาหมายใหเปนหนงเดยวกน (Unified Method) โดยนำาเอา

วธการของ Booch และ OMT(Object Modeling Technique) มารวมกนแลวปรบ

ปรงใหม ตอมา Ivar Jacobson ผพฒนากระบวนการ OOSE หรอ Objectory

Process ไดเขารวมโครงการดงกลาวภายหลง ซงในครงนนเปน

การสรางภาษาโมเดลขนใหมเรยกวา ภาษายเอมแอล ( UML - Unified Modeling Lang

uage)

Page 6: Object-Oriented Analysis and Design

ความเปนมาของภาษา UML เนองจากวธการพฒนาซอฟตแวรเชง

วตถของทงสามมชอเสยงและเปนทยอมรบในชวงเวลานนอยแลว ภาษา UML ทถก

พฒนาขนมาใหมจงกลายเปนทนยมใชกนอยาง

แพรหลาย

ในป ค.ศ .1997 ภาษายเอมแอล รนท 11. ไดถกเสนอใหกบ

หนวยงาน OMG ( Object Management Group) กำาหนดใหเปนภาษาโมเดล

มาตรฐาน (Standard Modeling Language) จากนนภาษา UML ถกพฒนา

ตอโดย OMG ซงในปจจบนภาษา UML รนทเผยแพรออกสสาธารณชนคอ ภาษา

UML รนท 2 .0

Page 7: Object-Oriented Analysis and Design

ความเปนมาของภาษา 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/

Page 8: Object-Oriented Analysis and Design

ภาษา UML ภาษา UML เปนภาษาทมรปภาพ

มาตรฐาน (Standard Visual Modeling Language) และเปนภาษาสากลทใชในการ

วเคราะหออกแบบและพฒนาระบบซอฟตแวรเชงวตถ

ดงนน เอกสารการวเคราะหและออกแบบทถกสรางดวยภาษา UML จงสามารถแลก

เปลยน และทำาความเขาใจตรงกนไดระหวางผรวมงานภายในกลมผพฒนา

ระบบ

Page 9: Object-Oriented Analysis and Design

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

ภาษาใดภาษาหนง

Model ทถกสรางขนจากภาษา UML สามารถถกแปลงไป

เปนระบบจรงทถกสรางขนดวยภาษาโปรแกรมเชงวตถใดกได อกทงภาษา UML

เปนภาษาทงายตอการทำาความเขาใจ ผททำาการศกษาหรอนำาไปใชงาน

ไมจำาเปนตองมความรอนใดนอกจากแนวคดเชงวตถ

ภาษา UML

Page 10: Object-Oriented Analysis and Design

จากการทภาษา UML เปนภาษาทมมาตรฐาน ผออกแบบและพฒนาจง

จำาเปนตองศกษาไวยากรณ (Syntax)หรอโครงสรางของภาษา UMLกอนนำาไปใชงาน

ภาษายเอมแอลประกอบดวยองคประกอบพนฐาน 3 สวน คอ

1) หนวยโครงสรางพนฐาน (Basic Building Block)

2) กฎการใชงาน (Rules)3) กลไกการทำางาน (Mechanism)

ภาษา UML

Page 11: Object-Oriented Analysis and Design

1) หนวยโครงสรางพนฐานเปนองคประกอบทสำาคญและ

ผใชตองทำาความเขาใจ ซงประกอบดวยองคประกอบยอย 3 สวน

คอ 1.1) สญลกษณทวไป (Things)

คอ สญลกษณพนฐานทถกใชงานในการสราง diagram

ตางๆ ของภาษา UML ถอวาเปนรปแบบทเลกทสดของModel

สญลกษณทวไปแบงไดออกเปน 4 หมวด คอ

หมวดโครงสราง (Structural Things)

หมวดพฤตกรรม (Behavioral Things)

หมวดการจดกลม (Grouping Things)

หมวดคำาอธบาย (Annotation Things)

ภาษา UML

Page 12: Object-Oriented Analysis and Design

1.2) ความสมพนธ (Relationships) เปนสงทใชแสดงความสม

พนธระหวางสญลกษณทวไป ม 4 ชนด คอ

ความสมพนธแบบขนตอกน (Dependency Relationship):

คณสมบตของสงหนงขนอยกบคณสมบตของอกสงหนง

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

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

Relationship): คณสมบตของสงหนงเปนคณสมบตพน

ฐานของอกสงหนงซงอาจจะมคณสมบตมากกวาคณสมบต

พนฐานนนความสมพนธแบบตนแบบ (Realization

Relationship): สงหนงถกสรางใหมคณสมบตของอก

สงหนง

ภาษา UML

Page 13: Object-Oriented Analysis and Design

1.3) แผนภาพ (Diagrams) คอ แผนภาพทเกดจากแนวคดทวาสญลกษณทวไป

ใดๆกตาม ถามคณสมบตบางประการทสามารถจดใหอยใน

กลมเดยวกนได กจะใชแผนภาพมาจดกลมใหแกสญลกษณ

เหลานน

ภาษา UML

Page 14: Object-Oriented Analysis and Design

องค

ประก

อบใน

ภาษา

U

ML

Page 15: Object-Oriented Analysis and Design

นอกจากองคประกอบของภาษา UML แลว อกสงหนงทสำาคญคอ การเลอก

ใชงานdiagram สาเหตทภาษา UML ตองมแผนภาพทหลาก

หลาย เนองจากในระบบทมขนาดใหญและมความซบซอน ไมสามารถใชแผนภาพชนดใดเพยงแผนภาพเดยว แลวแสดงมม

มองไดครบ ทงมมมองเชงโครงสรางของระบบ (Static หรอ

Structural View)และ

เชงพฤตกรรมของระบบ (Dynamic หรอ Behavioral View)

ดงนนจำาเปนตองมการเลอกแผนภาพหนงมาใชในมมมองหนง และเลอกอกแผนภาพหนง

มาใชในอกมมมองหนง

ภาษา UML

Page 16: Object-Oriented Analysis and Design

เพอใหไดแผนภาพทสามารถเสนอมมมองไดอยางครบถวน

จำาเปนตองใชหลายแผนภาพ โดยตองเขาใจจดประสงคของแตละ

แผนภาพ และเลอกใชแผนภาพใหตรงกบมมมองทตองการ

ภาษา UML

Page 17: Object-Oriented Analysis and Design

View ตามแนวทางของ UML นจะแยกออกเปน 2 ลกษณะหลก คอ1. Static Views (Structural

Views) มมมองของระบบทไมมการเคลอนไหวหรอ

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

Class Diagram

2. Dynamic Views (Behavioral Views)

มมมองของระบบทมการเคลอนไหว,เปลยนแปลง สภาวะหรอสถานะขององค

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

ภาษา UML

Page 18: Object-Oriented Analysis and Design

Diagram ใน UMLDiagram(แผนภาพ) ใน UML จำาแนกตาม

มมมองเชงโครงสราง และ มมมองเชงพฤตกรรมของระบบมมมองเชงโครงสราง

(Static หรอ Structure)

มมมองเชงพฤตกรรม(Dynamic หรอ

Behavior)Class Diagram Use case DiagramObject Diagram Sequence DiagramComponent Diagram

Collaboration Diagram

Deployment Diagram

Statechart Diagram

Activity Diagram

Page 19: Object-Oriented Analysis and Design

Class Diagram

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

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

Aggregation , Generalization , Association

Page 20: Object-Oriented Analysis and Design

Object Diagram

คลายกบ Class Diagram

Page 21: Object-Oriented Analysis and Design

Component Diagram

ใชเพอแสดงโครงสรางทางกายภาพของ Software ซงประกอบดวยสวนประกอบตางๆ ทเรยกวา Components (ชนสวนทาง software)

Page 22: Object-Oriented Analysis and Design

Deployment Diagram

ใชเพอแสดงโครงสรางทาง Hardware ของระบบ ซงมกใชรวมกบ Component Diagram

Page 23: Object-Oriented Analysis and Design

Use Case Diagram

ใชเพออธบายฟงกชนของระบบในมมมองของกลมผใชระบบ

Page 24: Object-Oriented Analysis and Design

Sequence Diagram

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

Tim

e

Page 25: Object-Oriented Analysis and Design

Collaboration Diagram

ใชเพอแสดงปฎสมพนธ(Interaction) ระหวาง Objects คลายกบ

Sequence Diagram แตตางกนท Collaboration Diagram จะไมแสดงลำาดบการสง Message อยางชดเจน แตจะเนนท การแสดงความ

สมพนธระหวาง Objects ตามลกษณะการทำางาน (ปกตจะเลอกใช Diagram

ใด Diagram หนง)

Page 26: Object-Oriented Analysis and Design

Statechart Diagram

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

Page 27: Object-Oriented Analysis and Design

Activity Diagram

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

ไปยงอกกจกรรมหนงภายในระบบ ทเกดจากการทำางานของ Objects

(ในลกษณะ Flowchart) สญลกษณจะคลายกบ Statechart Diagram แตจะ

ไมสนใจในเรองสถานะ

Page 28: Object-Oriented Analysis and Design

ปจจบน Diagram ในภาษา UML สามารถแบงออกไดเปน

9 diagrams โดยแตละ diagram เปรยบเสมอนมมมอง

ในดานตางๆของระบบทผวเคราะหและออกแบบกำาลงจะพฒนา

โดยในแตละ diagram ทแสดงมมมองตางๆ ประกอบดวยสญลกษณทใชสอความ

หมายเฉพาะภายใน diagram นน

Diagram ใน UML

Page 29: Object-Oriented Analysis and Design

นอกจากความรพนฐานทเกยวของกบองคประกอบและdiagram ของภาษา UML แลว สงททำาใหการใชงานภาษา UMLเปนไป

อยางประสบผลสำาเรจอกอยางกคอ ผออกแบบและพฒนาจำาเปนตองเรยนรกระบวนการในการ

เลอกใช diagram ตามความเหมาะสม

ในขนตอนกระบวนการพฒนาซอฟตแวรเชงวตถ จะใชแผนภาพของภาษา UML เพอ

สรางโมเดลระบบอยางเปนขนตอนสอดคลองกบกระบวนการพฒนาซอฟตแวร

Diagram ใน UML

Page 30: Object-Oriented Analysis and Design

ในการพฒนาระบบโดยทวไป ผพฒนาไมจำาเปนตองสรางแผนภาพใหครบทกแผนภาพ

เสมอไป ผพฒนาสามารถปรบเปลยนการใชงานแผนภาพไดตามความเหมาะสม

Diagram ใน UML

Page 31: Object-Oriented Analysis and Design

Object 1. เฟสการวเคราะหความตองการ

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

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

สงทผพฒนาตองทำาในขนตอนน คอ การนำาเอาความตองการแบบ Functionality (Functional Requirements) ซงบงบอกถงความสามารถทผใชสามารถเรยกใชจากระบบ มาแปลงเปน Model ความตองการของผใช

งาน ซงจะใช Use Case Diagram

Page 32: Object-Oriented Analysis and Design

Object1. เฟสการวเคราะหความตองการ

(Requirement Analysis) ทขาดไมไดใน Use Case คอ คำา

บรรยาย Use Case (Use Case Description) ซงเปนรายละเอยดของแตละ Function วาเรมตนอยางไร มการดำาเนน

เหตการณเกดขนอยางไรและสนสดลงอยางไร เรยกรวมๆวา ลำาดบการเกดเหตการณ (Flow

of Event) รวมถงเหตการณยกเวน (Exception Flow of Event) ทอาจเกดขนระหวางการปฏบตฟงกชนดงกลาวของระบบ ก

ตองถกบนทกดวยเชนกน

Page 33: Object-Oriented Analysis and Design

Object 2 . เฟสการวเคราะหระบบ (Domain

Analysis)ในเฟสทสองนเปนการบรรยายถง

โครงสรางและพฤตกรรมของระบบทกำาลงพฒนา ซงกจกรรมสำาคญตางๆทผพฒนาตองกระทำาในเฟสน ไดแก

2.1) การสราง Class Diagram เพอศกษาโครงสราง (Structure) หรอสวนทเปนโครงสรางของระบบ โดยการ

Page 34: Object-Oriented Analysis and Design

Object 2. เฟสการวเคราะหระบบ (Domain

Analysis)2.1.1 หา Class ทงหมดในระบบโดยใช

เทคนค Heuristic Mapping คอ ใหคำานามทพบในคำาบรรยาย Use case (เฟส

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

และคำาวเศษณ จะถกแปลงเปน Attribute

ซงคำานามทกคำาอาจไมถกแปลงเปน Class เสมอไป

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

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

Page 35: Object-Oriented Analysis and Design

Object 2. เฟสการวเคราะหระบบ (Domain

Analysis) 2.1.2 คนหาความสมพนธ

(Relationships) ระหวางคลาส อนไดแก

การขนตอกน (Dependency), การถายทอดคณสมบต (Inheritance),

ความสมพนธแบบเชอมโยง(Association) ทงแบบ

สมพนธแบบองคประกอบรวม (Composition) และ

สมพนธแบบมสวนรวม (Aggregation) ดวยเชนกน

Page 36: Object-Oriented Analysis and Design

Object 2. เฟสการวเคราะหระบบ (Domain

Analysis) 2.2) การสราง Sequence Diagram

เพอศกษาพฤตกรรม (Behavior) หรอสวนทมความเปน

พลวต( Dynamic) ของระบบ โดยการสราง Sequence

Diagram สำาหรบแตละUse case ใน Use Case Diagram

จากเฟสแรก นอกจากนการสราง Sequence Diagram ยงชวยให

พบOperation เพมเตมดวย

Page 37: Object-Oriented Analysis and Design

Object 2. เฟสการวเคราะหระบบ (Domain

Analysis)วธการพฒนาซอฟตแวรเชงวตถ เปนไป

ในลกษณะของการวนรอบทำาซำาและทำาเพม (Interative and Incremental) ขน

เรอยๆจนสมบรณ ซงลกษณะดงกลาวเรมปรากฏในเฟสน

คอ แทนทตองทำาการวเคราะห ทก Use Case จาก Use Case Diagram ในครงเดยว ซงหากเปนระบบทซบซอนและมขนาดใหญกอาจ

ประกอบไปดวย Use Case นบรอย

Page 38: Object-Oriented Analysis and Design

Object 2. เฟสการวเคราะหระบบ (Domain

Analysis) ดงนนในเฟสน ผพฒนาสามารถเลอก

เพยงหนง Use Case มาทำาการวเคราะห หา Classes และ Relations รวมถงลกษณะ

Dynamic ของระบบ และเมอวงจรการพฒนากลบมาทเฟสนอกครง กเปนการวเคราะห

ออกแบบ Use Case ถดๆไปนนเอง

Page 39: Object-Oriented Analysis and Design

Object 2. เฟสการวเคราะหระบบ (Domain

Analysis)กลาวโดยสรป ในเฟสของการวเคราะห

เปนการ Model ปญหา ซงผลทไดในเฟสนคอ เอกสารทบนทก Model การวเคราะหระบบ (Analysis Model Document) อน

ประกอบไปดวย Class Diagram, Sequence

Diagram นอกจากนอาจมการใชสญลกษณ Package หรอ Diagram อนๆ เชน Collaboration Diagram , State Transition Diagram, Activity

Diagram มาชวยในการสรางโมเดลดวยเชนกน

Page 40: Object-Oriented Analysis and Design

Object 3 . เฟสการออกแบบ (Design)

ในเฟสการออกแบบระบบ ผพฒนาจะทำาการกำาหนดรายละเอยดเชงเทคนคของระบบใหพรอม เพอนำาไป Implement จรงในเฟส

ถดไป อาจกลาวไดวา เฟสนเปนเฟสการคนหาวธ

การแกปญหา(How) ภายหลงจากการทำาความเขาใจปญหา (What ในเฟสกอนหนา)

สงทตองเตรยมสำาหรบใชในเฟสน คอ Model การวเคราะหจากเฟสทสอง ซงอาจรวมถงความตองการแบบ Nonfunctional กจะ

ถกนำามาพจารณาในการออกแบบเฟสนดวยเชนกน

Page 41: Object-Oriented Analysis and Design

Object 3. เฟสการออกแบบ (Design)

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

31. ) การเพมเตม Class หรอ Package ลงไปภายใน Model

การวเคราะหระบบ (เฟสทสอง)

เชน การเพมแพกเกจทเกยวของกบฐานขอมล การ ตดตอสอสาร โดย Package หรอ Class เหลานจะทำางานรวมกน กบ Package

เดมทมอยใน Model การวเคราะหระบบ นอกจากนยงรวมถงการแกไขปรบปรงเพมเตม Attribute หรอ Operation

ของ Class ตางๆใน Model การวเคราะหระบบดวยเชนกน

Page 42: Object-Oriented Analysis and Design

Object 3. เฟสการออกแบบ (Design)

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

ระบบ (Reuse of Class Libraries)

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

(User Interface Design)

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

Handling)

Page 43: Object-Oriented Analysis and Design

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)

Page 44: Object-Oriented Analysis and Design

Object 3. เฟสการออกแบบ (Design)

3.6) ออกแบบสวนทเปน Nonfunctional Requirement เชน กลมของผใชงานมความตองการใชงานระบบใหม

รวมกบฐานขอมลหรอระบบเดมทมอย (Legacy System Integration)

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

เหมาะสมกบความตองการและงบประมาณของผใชงานดวยเชนกน

Page 45: Object-Oriented Analysis and Design

Object 3. เฟสการออกแบบ (Design)

กลาวโดยสรป UML Diagram ทถกสรางในเฟสนไดแก

Component Diagram และ Deployment Diagram ในสวนของ

Class Diagram และ Sequence Diagram จะถกเพมรายละเอยดเชงเทคนค

เรยกผลลพธรวมของเฟสนวา Model การออกแบบระบบ (Design Model)

ซงประกอบไปดวย Diagram ตางๆขางตน รวมถงขอกำาหนด

ดานอนๆ ซงระบถงรายละเอยดของความตองการแบบ Nonfunctional เทคนควธการแกปญหา และ

เอกสารการออกแบบ (UML Design Document) นจะถกสงตอไปใหโปรแกรมเมอรเพอ

นำาไปพฒนาในเฟสถดไป

Page 46: Object-Oriented Analysis and Design

Object4 . เฟสการสรางโปรแกรมระบบ

(Construction)วตถประสงคหลกของเฟสน คอ การแปลง

ผลทไดจากเฟสการออกแบบไปเปน Code กลาวคอ นก

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

สำาหรบโปรแกรมเมอร

Page 47: Object-Oriented Analysis and Design

Object5. เฟสการทดสอบระบบ (Testing)

ในเฟสน ผพฒนาจะตองทำาการคนหาขอผดพลาด (Error) ภายในระบบทกำาลงพฒนา ซง โดยปกตการทดสอบระบบจะอางองผลการ

วเคราะหความตองการผใชงานระบบ(เฟสแรก)เปนหลก

วาเปนไปตามความตองการของผใชงานจรงอยางครบถวนหรอไม

ทงดานความตองการแบบ Functional และ Nonfunctional