UML - มหาวิทยาลัยบูรพา วิทยาเขตจันทบุรี

Download Report

Transcript UML - มหาวิทยาลัยบูรพา วิทยาเขตจันทบุรี

291474
Selected Topics in Information System I
บทที่ 4
การวิเคราะห์ และ
ออกแบบระบบโดยใช้ UML (1)
อ.ธารารัตน์ พวงสุ วรรณ
คณะวิทยาศาสตร์ และศิลปศาสตร์
มหาวิทยาลัยบูรพา วิทยาเขตสารสนเทศจันทบุรี
เนือ้ หา
การพัฒนาระบบงานด้วยการสร้างโมเดล
ภาพรวมของการใช้ UML
ประเภทของไดอะแกรมใน UML
บุคลากรที่เกี่ยวข้องในไดอะแกรมแต่ละประเภท
แบบจาลอง (Model)
สัญลักษณ์ที่ใช้จาลองข้อเท็จจริ งต่างๆ ที่เกิดขึ้นในระบบ
ประกอบด้วยแผนภาพชนิดต่างๆ เพื่อแสดงให้เห็นมุมมองของระบบ
การจาแนกกลุ่มของแบบจาลองแบ่งเป็ น 2 กลุ่ม คือ
แบบจาลองตามแนวทางเชิงโครงสร้าง (Structured System) เช่น
DFD และ ERD
แสดงกระบวนการ การไหลของข้อมูลและโครงสร้างข้อมูล
แบบจาลองตามแนวทางเชิงวัตถุ (Object-oriented Approach) เช่น
Use Case Diagram
แสดงหน้าที่การทางานของระบบ
Class/Object Diagram แสดงข้อมูลและพฤติกรรมของระบบ
การพัฒนาระบบงานด้ วยการสร้ างโมเดล
ในการพัฒนาระบบงานหนึ่งๆ นั้น การสร้างโมเดลถือว่าเป็ นขั้นตอนที่
สาคัญ เนื่องจากการพัฒนาระบบก็คือการสร้างโมเดลหรื อแบบจาลองวิธี
หนึ่ง
โดยทัว่ ไปจาเป็ นต้องมีการใช้เครื่ องมือจาพวกโมเดลหรื อไดอะแกรมเข้า
มาช่วยในการออกแบบ เพื่ออานวยความสะดวกและทาให้เข้าใจง่ายขึ้น
การนาโมเดลหลายๆ โมเดลมาช่วยแก้ปัญหาเรื่ องการออกแบบ จะทาให้
ได้มุมมองของผูใ้ ช้อย่างครบถ้วน เช่น มุมมองของผูอ้ อกแบบระบบ
มุมมองของผูพ้ ฒั นาโปรแกรม มุมมองของผูใ้ ช้งานระบบ เป็ นต้น
4
การพัฒนาระบบงานด้ วยการสร้ างโมเดล
โมเดลที่ดีจะต้องทาให้เกิดวิธีการแก้ไขปัญหาในโลกแห่งความเป็ นจริ ง
ได้ และต้องสามารถตอบสนองต่อความต้องการของอุตสาหกรรม
ซอฟต์แวร์ดว้ ย
คุณสมบัติของโมเดลที่ดี
ลดค่าใช้จ่าย (Cost)
ลดเวลาในการพัฒนาออกสู่ ตลาด
สามารถจัดการกับความซับซ้อนของปั ญหาได้เสมอ (Scalability)
5
ความสาคัญของการสร้ างโมเดล
การสร้างโมเดลทาให้เราสามารถพัฒนาระบบงานได้อย่างมีข้นั ตอนและ
มีความเข้าใจในระบบงานที่กาลังพัฒนามากขึ้น
เป้ าหมายของการใช้โมเดลในการพัฒนาซอฟต์แวร์คือ
โมเดลช่วยให้สามารถมองเห็นภาพของระบบงานได้ชดั เจนขึ้น
โมเดลทาให้สามารถระบุถึงโครงสร้างและพฤติกรรมของระบบงานที่จะพัฒนาได้
โมเดลเป็ นเสมือนเทมเพลตให้แก่การสร้างระบบงานจริ งๆ
โมเดลช่วยให้สามารถทาการตัดสิ นใจในเรื่ องต่างๆ ในรู ปเอกสารอ้างอิงได้ง่ายขึ้น
6
หลักการสร้ างโมเดล
โมเดลที่นามาใช้ตอ้ งเป็ นโมเดลที่แก้ปัญหาได้ดีที่สุด
โมเดลที่นามาใช้ตอ้ งสามารถให้มุมมองที่ตรงต่อความต้องการของผูท้ ี่
จะใช้โมเดลนั้น
โมเดลที่นามาใช้ตอ้ งสามารถนามาพัฒนาให้เป็ นระบบงานที่สามารถใช้
งานจริ งได้
ไม่มีโมเดลใดโมเดลหนึ่งที่สามารถอธิบายระบบได้ทุกมุมมอง
7
การพัฒนาระบบงานด้ วยการสร้ างโมเดล
Grady Booch, James Rumbaugh และ Ivar Jacobson เป็ นผูใ้ ช้วิธีการ
บรรยายโมเดลของซอฟแวร์ดว้ ยรู ปภาพ และวิธีการของทั้ง 3 ท่านได้
ตีพิมพ์เผยแพร่ จนเป็ นที่นิยมใช้
สัญลักษณ์ของแต่ละคนที่ปรากฏออกมามีรูปร่ างแตกต่างกัน ทาให้ยาก
ในการถ่ายทอดความรู ้ไปสู่นกั พัฒนาระบบ
ประมาณปี ค.ศ. 1997 Grady Booch, James Rumbaugh และ Ivar
Jacobson ได้นาโมเดลของตนเองมารวมกัน และมีการพัฒนาปรับปรุ ง
จนกลายมาเป็ นภาษาที่ใช้ในการสร้างโมเดลภาษาใหม่ เรี ยกว่า UML
(The Unified Modeling Language)
8
UML
UML (Unified Modeling Language) เป็ นเครื่ องมือใหม่ที่ได้รับการยอมรับ
เพิ่มขึ้นและมีการประยุกต์ใช้กบั ระบบงานมากขึ้น
 เป็ นเครื่ องมือที่มีความหลากหลายในการแสดงแบบซอฟต์แวร์
 เป็ นโมเดลมาตรฐานที่ใช้หลักการออกแบบ OOP (Object Oriented
Programming)
รู ปแบบของ UML มี Notation เป็ นสัญลักษณ์สาหรับสื่ อความหมาย มี
กฎระเบียบที่มีความหมายต่อการเขียนโปรแกรม (Coding)
9
เหตุทตี่ ้ องใช้ UML
UML ได้รวมข้อดีของโมเดลต่างๆ เอาไว้ เช่น
Data Model มาจากโมเดล OMT ของ James Rambauge ซึ่งเน้นใน
เรื่ องข้อมูล โดยเอาแนวคิดมาจาก ER-Diagram
Business Model หรื อ Work Flow คล้ายกับ Data Flow Diagram แต่
ดีกว่าในเรื่ องของ Sequence, Loop, Check If Condition
Object Model สามารถที่จะสร้างออบเจ็กต์ในแบบต่างๆ ได้
Component Model เป็ นโมเดลที่มีแนวคิดว่าทาอย่างไรจึงจะผลิต
ซอฟต์แวร์ให้เหมือนการผลิตฮาร์ดแวร์
10
เหตุทตี่ ้ องใช้ UML
UML เป็ นภาษาที่เป็ นมาตรฐานเปิ ดของทุกๆ ภาษา
UML ครอบคลุมทุกส่ วนในวัฎจักร (Life Cycle) ของการพัฒนาระบบ
UML เป็ นภาษาที่มีความสมดุลในแง่ของความเรี ยบง่ายและความ
ซับซ้อน
มีบริ ษทั ชั้นนาและอุตสาหกรรมต่างๆ ให้การยอมรับและสนับสนุน
สามารถแสดงส่ วนประกอบในรู ปแบบ OOP ได้
ง่ายต่อการทาความเข้าใจและสามารถแปลงเป็ น Code Program ได้
11
ภาพรวมของการใช้ UML
 UML เป็ นการรวบรวมสัญลักษณ์เพื่อที่จะนามาใช้ในการทา
โมเดล
 UML ได้รับการยอมรับให้เป็ นมาตรฐานหนึ่งของ ISO ทาง
ซอฟแวร์
 นอกจากใช้บรรยายองค์ประกอบของซอฟแวร์ แล้ว ยังขยายรู ป
สัญลักษณ์ให้ครอบคลุมไปถึงการบรรยายในเรื่ องอื่น ๆ เช่น
Business Process หรื อ Workflow
ภาพรวมของการใช้ UML
 UML เป็ นการรวบรวมสัญลักษณ์เพื่อที่จะนามาใช้ในการทา
โมเดล
 UML ได้รับการยอมรับให้เป็ นมาตรฐานหนึ่งของ ISO ทาง
ซอฟแวร์
 นอกจากใช้บรรยายองค์ประกอบของซอฟแวร์ แล้ว ยังขยายรู ป
สัญลักษณ์ให้ครอบคลุมไปถึงการบรรยายในเรื่ องอื่น ๆ เช่น
Business Process หรื อ Workflow
ภาพรวมของการใช้ UML
 UML จะวาดรู ปองค์ประกอบของซอฟแวร์ อยูใ่ นรู ปแบบที่เป็ น
ไดอะแกรม
 ไดอะแกรมจะมีการแบ่งแยกประเภทตามวัตถุประสงค์การใช้
งานและช่วงเวลาที่นาไปใช้ในระยะเวลาการพัฒนาระบบ
 ใน UML แบ่งไดอะแกรมออกเป็ น 9 ชนิด
ประเภทของไดอะแกรมใน UML
แยกไดอะแกรมได้เป็ น 2 ประเภทใหญ่ ๆ คือ
 Static Diagram
 Dynamic Diagram
 Static Diagram
ใช้สาหรับการออกแบบโครงสร้างของระบบงาน
Dynamic Diagram
ใช้สาหรับการออกแบบการทางานขององค์ประกอบต่าง ๆ ของ
ระบบงาน ว่ามีการทางานในตัวเองและทางานประสานงานกัน
อย่างไร
ประเภทของไดอะแกรมใน UML
Class diagram
Object diagram
Static diagram
Sequence diagram
Collaboration diagram
Requirement Capturing Dynamic diagram
Use case diagram
Component diagram
Deployment diagram
Statechart diagram
Activity diagram
Use Case Diagram
เป็ นไดอะแกรมหนึ่งที่ใช้สื่อสารกันระหว่างนักพัฒนาระบบกับผูใ้ ช้
มีองค์ประกอบ 2 ส่ วน
Use case เป็ นส่ วนที่แสดงถึงขอบเขตของระบบที่กาลังสนใจ
Actor เป็ นส่ วนที่อยูน่ อกระบบ แต่เป็ นผูท้ ี่กระทาอะไรบางอย่างกับระบบ และ
เป็ นผูท้ ี่ได้รับผลจากระบบด้วย
17
Use Case Diagram
ATM Subsystem: Withdrawal
Enter Password
Check Balance
Card Holder
Withdraw Cash
Get Slip
ตัวอย่าง Use Case การถอนเงิน
Class Diagram
ใช้สาหรับแสดงเอนทิต้ ีต่างๆ ในระบบหรื อภายในโดเมนหนึ่งๆ โดย
อธิบายว่าเอนทิต้ ีเหล่านั้นมีความสัมพันธ์กนั อย่างไร
Class diagram สามารถนามาใช้อธิบาย classes, interfaces,
collaborations และความสัมพันธ์ระหว่างกันได้ดว้ ย
19
Class Diagram
Customer
FirstName
LastName
CardName
PinNumber
Account
Account
1
VerifyPassword()
Number
Balance
Transaction
Has
*
Deposit()
Withdraw()
UpdateAccount()
1
Perform
*
ตัวอย่าง Class Diagram ในระบบธนาคาร
Transaction
TransactionID
TransactionDate
TransactionTime
TransactionType
Account
Amount
PostBalance
Object Diagram
มีวตั ถุประสงค์เพื่อแสดงวัตถุที่ถูกสร้างขึ้นจากคลาส และจาลอง
ความสัมพันธ์ระหว่างวัตถุที่ได้ออกแบบความสัมพันธ์ไว้ใน Class
Diagram นั้นสามารถเกิดขึ้นได้จริ งในระบบงานหรื อไม่
สัญลักษณ์ที่ใช้จะมีลกั ษณะเช่นเดียวกับ Class diagram ต่างกันที่ชื่อของ
Object diagram จะมีขีดเส้นใต้
21
Object Diagram
You:Person
Me:Person
Name=Jane
Address=22 Holly Pl
Telephone=62312198
Name=Dennis
Address=41 High St
Telephone=62661734
Owns
Owns
Owns
Ours:Car
Mine:Car
Manufacturer=Mazda
Model=626
Registration=YYX391
Manufacturer=Saab
Model=95
Registration=YRT833
Sequence Diagram
เป็ นไดอะแกรมที่ใช้แสดงการทางานระหว่างออบเจ็กต์ต่างๆ เมือ่ เกิด
การส่ งเมสเสจระหว่างกัน
23
Sequence Diagram
ATM Machine
Account
Card Holder
InsertCard()
RequestPassword()
EnterPassword()
CheckPassword()
ConfirmAccess()
DisplayTransType()
ChooseTransType()
ReadAccBalance()
ConfirmBalance()
DisplayBalance()
CloseTrans()
ReturnCard()
ตัวอย่าง Sequence Diagram การสอบถามยอดบัญชีจากตู้ ATM
Collaboration Diagrams
ใช้สาหรับแสดงการติดต่อระหว่างออบเจ็กต์ต่างๆ และความสัมพันธ์
ระหว่างที่แต่ละออบเจ็กต์ติดต่อกัน
25
Collaboration Diagram
1. InsertCard
3. EnterPassword
7. ChooseTransType
11.CloseTrans
Card Holder
2. RequestPassword
6. DisplayTranstype
10. DisplayBalance
12. ReturnCard
:ATM Machine
4. CheckPassword
8. ReadAccBalance
5. ConfirmAccess
9. ConfirmBalance
:Account
ตัวอย่าง Collaboration Diagram การสอบถามยอดบัญชีจากตู้ ATM
Statechart Diagram
เป็ นการแสดงวงจรชีวิตของออบเจ็กต์ ระบบย่อยต่างๆ และระบบ
โดยรวม โดยบ่งบอกว่าเหตุการณ์ต่างๆ จะส่ งผลกระทบให้เกิดอะไรขึ้น
บ้าง ซึ่งอาจจะมีจุดเริ่ มต้นและจุดสิ้ นสุ ดได้หลายๆ จุด
Ready
Do/waiting
for instructions
Booting Complete
Boot
Do/loading the OS
Switch on Complete
Off
Do/Shut down
the power
Switch is turned on
On
Do/turn on
the Computer
27
Activity Diagram
เป็ นการแสดงถึงขั้นตอน และจุดที่ตอ้ งมีการตัดสิ นใจที่เกิดภายใน
ออบเจ็กต์ หรื อภายในกระบวนการทางาน
28
CardHolder
ATM Machine
InsertCard
Request Password
Enter Password
Check Password
Account
Activity Diagram
Confirm Access
Display Transaction Type
ตัวอย่าง Activity Diagram การ
สอบถามยอดบัญชีจากตู้ ATM
Choose Transaction Type
Read A/C Balance
Display Balance
Close Transaction
Return Card
Confirm Balance
Component Diagram
Component Diagram เป็ นแผนภาพที่แสดงโครงสร้างและ
ความสัมพันธ์ระหว่างองค์ประกอบ (Components) ต่างๆของ
Software ซึ่ งองค์ประกอบดังกล่าวอาจเป็ น Source Code,
Executable Program, Binary รวมถึง Text และ User Interface
Component Diagram
Professor.exe
Course.dll
Professor Info
Database.dll
AddCourse Offering
ตัวอย่าง Component Diagram ของระบบการลงทะเบียน
Deployment Diagram
เป็ นการแสดงสถาปัตยกรรมของระบบ ในลักษณะที่เป็ น Physical
architecture คือแสดงว่ามีคอมพิวเตอร์และอุปกรณ์อะไรบ้างที่ตอ้ งใช้ใน
ระบบ
32
บุคลากรทีเ่ กีย่ วข้ องในไดอะแกรม
 ไดอะแกรมแต่ละประเภทมีวตั ถุประสงค์การใช้งานแตกต่างกัน
 ทีมพัฒนาระบบจะประกอบด้วยบุคลากรในบทบาทต่าง ๆ ที่มี
ความเชี่ยวชาญทางเทคนิคแตกต่างกันไป
 บุคคลที่อยูใ่ นทีมพัฒนาระบบอาจไม่จาเป็ นต้องเขียน
ไดอะแกรมทั้งหมดได้อย่างสมบูรณ์
 จะให้เฉพาะบุคคลบางบทบาทเท่านั้นที่จะมีหน้าที่เขียน
ไดอะแกรมแต่ละประเภท
33
บุคลากรทีเ่ กีย่ วข้ องในไดอะแกรม
 System Analyst มีหน้าที่เขียน Usecase Diagram
 Software Architect มีหน้าที่เปลี่ยน Usecase ให้กลายเป็ นสถาปัตยกรรม
ของระบบงานที่บรรยายออกมาเป็ น Class Diagram และ Sequence
Diagram และไดอะแกรมอื่น ๆ
 Programmer ต้องสามารถอ่านและทาความเข้าใจกับไดอะแกรมต่าง ๆ
รวมถึงอาจจะต้องสามารถเขียน Class Diagram หรื อ Sequence Diagram
ในระดับรายละเอียดได้ดว้ ย
 System Administrator จะสามารถอ่าน Component Diagram และ
Deployment Diagram เพื่อนาแอพพลิเคชันไปติดตั้งให้เกิดเป็ น
ระบบงานตามที่ผใู ้ ช้ตอ้ งการ
34
คาถามท้ ายบท
1. เป้ าหมายของการใช้แบบจาลองในการวิเคราะห์และออกแบบระบบคือ
อะไร
2. แบบจาลองในการวิเคราะห์และออกแบบระบบ จาแนกได้เป็ นกี่กลุ่ม
อะไรบ้าง
3. UML คืออะไร มีความสัมพันธ์กบั กระบวนการในการพัฒนาซอฟต์แวร์
อย่างไร