Creativity Session

Download Report

Transcript Creativity Session

่
บทที 5
แบบจำลองระบบ
System Model
แบบจำลองระบบ (System
Model)
• เป็ นสัญลักษณ์ทใช
ี่ ้จำลองข ้อเท็จจริงต่ำงๆ
่ ดขึนในระบบ
้
ทีเกิ
่
• ประกอบด ้วยแผนภำพชนิ ดต่ำงๆ เพือแสดง
ให ้เห็นแต่ละมุมมองของระบบ
่
• ช่วยให ้กำรสือสำรระหว่
ำงทุกฝ่ ำยมีควำม
ถูกต ้องตรงกัน
่
• สะท ้อนให ้เห็นหน้ำทีกำรท
ำงำนของระบบใน
ด ้ำนต่ำงๆ
้
• เกิดขึนในระยะกำรออกแบบ
ควำมสัมพันธ ์ระหว่ำง
แบบจำลองของกำร
วิเครำะห ์และออกแบบ
System
Description
Analysis
Model
Design
Model
ประเภทของ
แบบจำลอง
• แบบจำลองตำมแนวทำงเชิง
โครงสร ้ำง
• แบบจำลองตำมแนวทำงเชิง
วัตถุ
แบบจำลองตำมแนวทำง
เชิงโครงสร ้ำง
• พิจำรณำกระบวนกำรทำงำน
แยกกับ ข้อมู ลของระบบ
• มีแบบจำลอง 2 แบบ คือ
้
• แบบจำลองขันตอนกำรท
ำงำนของ
ระบบ
• แบบจำลองข ้อมูล
้
แบบจำลองขันตอนกำร
ทำงำนของระบบ
• หรือ Process Model
• ใช้ “แผนภำพกระแสข้อมู ล” หรือ
Data Flow Diagram : DFD
แบบจำลองข้อมู ล
• หรือ Data Model
• ใช้ แผนภำพแสดงควำมสัมพันธ ์ระหว่ำง
ข้อมู ล หรือ
Entity Relationship Diagram : E-R Diagram
Data Flow Diagram : DFD
่
• แผนภำพทีแสดงให
้เห็นถึงทิศทำงกำรไหลของ
่ อยู่ในระบบ
ข ้อมูลทีมี
• จำกกระบวนกำรหนึ่ ง ไปยังอีกกระบวนกำรหนึ่ ง
่ ทีเกี
่ ยวข
่
หรือ ไปยังส่วนอืนๆ
้อง (แหล่งเก็บ
่
ข ้อมูล (Data Store) หรือผูท้ เี กียวข
้องทีอยู่
นอกระบบ (External Entity หรือ External
Agent)
• นำ DFD ไปเป็ นแนวทำงในกำรออกแบบ
ฐำนข ้อมูล
สัญลักษณ์ของ DFD
Process id
Process
name
ID Data Store
External
Entity
Flow name
หลักกำรของ DFD
• แบ่งกำรทำงำนจำกกระบวนกำร
่ ร่ ะดับบน ลงไปสู่
หลักทีอยู
่ ร่ ะดับล่ำง
กระบวนกำรย่อยทีอยู
• DFD ระดับบนสุด 
Context Diagram
Context Diagram
• แผนภำพกระแสข ้อมูลระดับบนสุด
• แสดงภำพรวมกำรทำงำนของระบบ
่ มพันธ ์กับสภำพแวดล ้อม
ทีสั
ภำยนอกระบบ
่
• กำหนดขอบเขตของระบบทีจะ
พัฒนำได ้
ตัวอย่ำง Context
Diagram
0
บริษท
ั คูค
่ ำ้
สินค ้ำใหม่
่ ้องกำร
สินค ้ำทีต
ระบบ
ร ้ำนขำยสินค้ำใบเสร็จร ับเงิน
ลู กค้ำ
กำหนดรำคำขำย รำยงำนกำรขำย
รำยงำนสต๊อกสินค ้ำ
เจ้ำของร ้ำน
Context Diagram ของระบบร ้ำนขำยสินค้ำ (Seller System)
อธิบำย Context
Diagram
• ระบบร ้ำนขำยสินค ้ำจะต ้องปฏิสม
ั พันธ ์กับบุคคล
่ หรือหน่ วยงำนอืนที
่ อยู
่ ่นอกระบบ 3 กลุม
อืน
่ คือ
่
• บริษท
ั คู ค
่ ำ้ หมำยถึง ร ้ำนค ้ำ หรือบริษท
ั ทีระบบ
้ นค ้ำเข ้ำมำขำย
จัดซือสิ
• ลู กค้ำ หมำยถึง ผูท้ มำซื
ี่
อ้ หรือมำชมสินค ้ำ
• เจ้ำของร ้ำน หมำยถึง ผูท้ ก
ี่ ำหนดรำคำขำย
และ ต ้องกำรรำยงำนต่ำงๆ จำกระบบ เช่น
รำยงำนกำรขำยประจำวัน รำยงำนสต๊อกสินค ้ำ
คงเหลือ
Data Flow Diagram
Level 0
• จำกภำพรวมของระบบร ้ำนขำยสินค ้ำ จะต ้องมี
กำรขยำย หรืออธิบำย ระบบย่อย หรือ
รำยละเอียดย่อยของระบบ
่
• สร ้ำง DFD ระดับถัดมำ คือ ระดับ 0 เพือแสดง
ให ้เห็นกระบวนกำรทำงำนภำยในของระบบ
• หำกกระบวนกำรในระดับ 0 แต่ละกระบวนกำร
ยังมีกำรอธิบำยรำยละเอียดหรือกำรทำงำน
ปลีกย่อยลงไปอีก สำมำรถเขียน DFD ในระดับ
1 หรือ 2 หรือ 3 ต่อไปได ้อีก
*** กำรแตกระบบ ระบบนั้นควรแตกได ้อย่ำงน้อย 2
กระบวนกำร
ตัวอย่ำง Data Flow Diagram Level 0สินค ้ำทีต่ ้องกำร
2.0
บริษท
ั คูค
่ ำ้
รองเท ้ำใหม่
ขำย
สินค้ำ
1.0
ข้อมู ล
สินค้ำ ข ้อมูลสินค ้ำ
ข ้อมูลสินค ้ำ
D1
ใบเสร็จร ับเงิน
ข ้อมูลกำรขำย
D2
สินค้ำ
รำยกำรขำย
ข ้อมูลกำรขำย
3.0
ข ้อมูลสินค ้ำ
กำหนดรำคำขำย
เจ้ำของร ้ำน
ลู กค้ำ
รำยงำน
รำยงำนสต๊อกสินค ้ำ
รำยงำนกำรขำย
DFD Level 0 ของระบบร ้ำนขำยสินค้ำ
ตัวอย่ำง Data Flow Diagram Level 1สินค ้ำทีต่ ้องกำร
2.1
ข ้อมูลสินค ้ำ
D1
ตรวจสอบ
สินค้ำ
สินค้ำ
รำคำ
2.2
ลดจำนวน
สินค ้ำ
ลู กค้ำ
ใบเสร็จร ับเงิ
น
ข ้อมูลกำรขำยD2 รำยกำรขำย
บันทักกำรขำย
2.2
พิมพ ์ใบเสร็จ
ข ้อมูลกำรขำย
DFD Level 1 ของกระบวนกำร 2.0 ขำยสินค้ำ
แผนภำพแสดงควำมสัมพันธ ์
ระหว่ำงข้อมู ล
• เรียกว่ำ Entity Relationship Diagram
• หรือเรียกย่อๆ ว่ำ E-R Diagram
่ ้เป็ นเครืองมื
่ อสำหร ับจำลอง
• เป็ นแผนภำพทีใช
ข ้อมูล
่ น
• ประกอบด ้วย Entity (กลุม
่ ของข ้อมูลทีเป็
่
เรืองเดี
ยวกัน)
• และ Relationship หรือ ควำมสัมพันธ ์
ระหว่ำงข ้อมูลใน entity
• ทุก Entity จะมี Attribute บอกลักษณะ
หรือคุณสมบัติ
สัญลักษณ์ทใช้
ี่ ใน E-R
Diagram
Attribute2
Attribute1
Entity2
Relation Name
Entity1
Attribute3
Attribute4
ระบบงำนขำย
• Customer (Customer_ID, Name, Address)
• Order (Order_ID, Product_ID)
• Sale Order (Sale_ID, Order_ID, Customer_ID)
E-R Diagram ระบบงำน
ขำย
Order_ID
Order
Product
1
Customer_ID
Sale_I
D
Order_ID
1
Get
Order
Data
Sale Order
M
่ อสิ
้ นค ้ำ (order) และ
ลูกค ้ำทำกำรสังซื
่ อจะถู
้
่
ใบสังซื
กเปลียนเป็
นใบขำยสินค ้ำ (sale order)
โดยในใบขำยสินค ้ำ จะมีรหัสของลูกค ้ำ และ รหัสของ
่ อ้ เพือใช
่ ้อ ้ำงอิง
ใบสังซื
Get
Custome
r Data
Customer
Addres
s
Name
Customer_ID
E-R Diagram ระบบงำน
ขำย
่ อ้ (Order
• Entity Sale Order จะดึงข ้อมูลใบสังซื
Data) มำจำก Entity Order และดึงข ้อมูลลูกค ้ำ
(Customer Data) มำจำก Entity Customer
แผนผังโครงสร ้ำง
(Structure Chart)
• แสดงให ้เห็นกำรแบ่งกำรทำงำนของระบบออกเป็ น
่ ยกว่ำ โมดูล (Module)
ส่วนย่อยๆ ทีเรี
• เป็ นแผนผังลำดับชัน้ แสดงควำมสัมพันธ ์ระหว่ำง
ฟังก ์ชันของโปรแกรม
• แต่ละโมดูลจะมีกำรเรียกใช ้ข ้อมูลระหว่ำงกัน
ตำมลำดับชัน้
่ ่ระดับล่ำง
• โมดูลระดับบน จะเรียกใช ้โมดูลทีอยู
• มีโมดูลระดับบนสุดเพียงโมดูลเดียว เป็ นโมดูลหลัก
• โมดูลระดับล่ำงสุดจะประกอบไปด ้วยอัลกอริธม
ึ และ
ลอจิกของโปรแกรม
สัญลักษณ์ของ
Structure
Chart
่
ชือ
่
ชือโมดู
ล
โมดูล
โมดู
ล
่ ้อมูล
ชือข
ไลบรำรีโมดูล ใช ้เก็บฟังก ์ชันกำรทำงำน
้
ทังหมดของโปรแกรม
่ ้อมูล
ชือข
่ ้อมูล
ชือข
่ งไปมำระหว่ำงโมดูล
ข ้อมูลทีส่
(couple)
่
ชือ
โมดูล
่
กำรเรียกใช ้งำนโมดูลอย่ำงมีเงือนไข
่ ้อมูล
ชือข
ข ้อมูลควบคุม หรือ
Flag
เรียกใช ้
โมดูลซำ้
กำรอ่ำนและเรียกใช้
z
x
• A ส่งข ้อมูล x ไปยัง B
A
z
B
x
D
y
C
• B ส่งข ้อมูล x ไปยัง C
่
เพือประมวลผลจนได
้ผล
ลัพธ ์ y
• ส่งข ้อมูล y กลับไปยัง B
• B จะใช ้ข ้อมูล y
ประมวลผลจนได ้ผลลัพธ ์
เป็ นข ้อมูล z ที่ A
ต ้องกำร
่
• A ส่งข ้อมูล z ไป D เพือ
ประมวผล
แบบจำลองตำมแนวเชิง
ว ัตถุ
• เชิงโครงสร ้ำง  ทีมงำนจะต ้องพิจำรณำ
กระบวนกำรทำงำนและข ้อมูลของระบบแยกส่วน
กัน
่
่
• เชิงวัตถุ  พิจำรณำทุกๆ สิงในระบบที
สนใจ
่
เป็ น วัตถุ (Object) ซึงประกอบไปด
้วยข ้อมูล
(คุณลักษณะ) และกระบวนกำรทำงำน
้ ้อมูลและ
(พฤติกรรม) นั่นคือ พิจำรณำทังข
กระบวนกำรไปพร ้อมๆ กัน
ระบบตำมแบบจำลองตำม
แนวเชิงวัตถุ
่ มพันธ ์
• ประกอบด ้วย Object จำนวนมำกทีสั
่ ำงำนร่วมกัน ให ้เกิดเป็ นกำรทำงำนของ
กันเพือท
ระบบ
่ คณ
• Object ทีมี
ุ ลักษณะและพฤติกรรม
เหมือนกัน จะถูกจัดอยู่ในคลำส (Class)
เดียวกัน
• เช่น object “นักศึกษำ” , “อำจำรย ์” ,
“เจ ้ำหน้ำที”่
จะถูกจัดอยู่ในคลำส “คน“ เนื่ องจำกบุคลำกรจะ
มีลก
ั ษณะ หู ตำ จมูก หรือแขนขำ เหมือนกัน
่ สร ้ำง
• คลำส เป็ นเหมือนแม่พม
ิ พ ์ทีใช้
้
object ของคลำสนันๆ
ภำพจำลองของ class
Customer
Customer
custId
custName
addCust()
deleteCust()
editCust()
displayInfo()
Class Name
Attribute
Method
(Behavior/
Operation)
UML
• Unified Modelling Language
่ ้สร ้ำงแบบจำลองเชิงวัตถุ
• ภำษำรูปภำพเพือใช
• ได ้ร ับกำรยอมร ับจำกองค ์กร OMG (Object
Management Group)
UML แบ่งเป็ น 2 กลุ่ม
• Structure Diagram
่
เป็ นกลุม
่ แผนภำพทีแสดงให
้เห็นโครงสร ้ำงเชิง
สถิตของระบบ (Static) หมำยถึง โครงสร ้ำงที่
่
่
ไม่มก
ี ำรเปลียนแปลงหรื
อเคลือนไหวแม้
จะมี
เหตุกำรณ์ใดๆ เกิดขึน้
• Behavioral Diagram
่
เป็ นกลุม
่ แผนภำพทีแสดงให
้เห็นภำพเชิง
กิจกรรมของระบบ (Dynamic) คือ แสดงให ้
่ กำรเปลียนแปลงไป
่
เห็นพฤติกรรมของระบบทีมี
่ เหตุกำรณ์ใดๆ เกิดขึน้ และแสดงให ้เห็นถึง
เมือมี
่ ำเนิ นกำรในหน้ำที่
ควำมสำมำรถของระบบทีด
บำงอย่ำงได ้
UML แบ่งเป็ น 2 กลุ่ม
• Structure Diagram
•
•
•
•
Class Diagram
Object Diagram
Component Diagram
Deployment Diagram
• Behavioral Diagram
•
•
•
•
•
Use Case Diagram
Sequence Diagram
Collaboration Diagram
State Diagram
Activity Diagram
Class Diagram
• ประกอบด ้วย Class และควำมสัมพันธ ์ระหว่ำง
Class เช่น Dependency,
Generalization, Association เป็ นต ้น
Class Diagram สำมำรถแสดงรำยละเอียด
ว่ำมี Method และ Attribute อย่ำงไร
่
ทีมำ
http://www.thaiall.com/uml/indexo.html
Class Diagram
่
ทีมำ
http://www.thaiall.com/uml/indexo.html
Object Diagram
• ประกอบด ้วย Object และ Relation ระหว่ำง Object
โดยแต่ละ Object จะแสดง Instance ของแต่ละ
่ ในระบบ และควำมสัมพันธ ์ระหว่ำง Class เช่น
class ทีมี
Dependency, Generalization หรือ
่ ลก
Association ซึงมี
ั ษณะเช่นเดียวกับ Class
Diagram
• Class
- ประชำชน
- แม่น้ำ
- รถยนต ์
- กีฬำ
Object
- บุรน
ิ ทร ์
- วัง
- นิ สสัน
- โยคะ
Object Diagram
่
ทีมำ
http://www.thaiall.com/uml/indexo.html
Object Diagram
http://www.agilemodeling.com/images/models/objectDiagram.JPG
Component
Diagram
่
• เป็ น Diagram ซึงแสดงโครงสร
้ำงทำง
กำยภำพของ Software โดยจะประกอบด ้วย
่ ่ในรูปต่ำงๆ เช่น Binary,
องค ์ประกอบซึงอยู
text และ executable ภำยใน
Component Diagram ก็จะมี
ควำมสัมพันธ ์แสดงอยู่เช่นเดียวกับ Class
Diagram, Object Diagram
Component
Diagram
่
ทีมำ
http://www.thaiall.com/uml/indexo.html
Deployment
Diagram
่ สำมำรถท
่
• เป็ นสิงที
ำกำรแสดงระบบ
สถำปัตยกรรมของ Hardware/Software
ตลอดจนควำมสัมพันธ ์ระหว่ำง
hardware/software
่
ทีมำ
http://www.thaiall.com/uml/indexo.html
Use case
Diagram
่ ำหน้ำที่ Capture requirement
เป็ น Diagram ทีท
่ ้อธิบำย
1. เป็ นเทคนิ คในกำรสร ้ำงแบบจำลอง เพือใช
่
หน้ำทีของระบบใหม่
หรือระบบปัจจุบน
ั
2. กระบวนกำรสร ้ำง Use case เป็ นแบบวนซำ้
(Iteration)
3. องค ์ประกอบมี Use case, Actor, Use case
Relation และ System
4. ควำมต ้องกำรของระบบจะได ้จำก ลูกค ้ำ ผูใ้ ช ้ +
ผูพ
้ ฒ
ั นำระบบ
Use case
Diagram
่
ทีมำ
http://www.thaiall.com/uml/indexo.html
Use case
Diagram
่
ทีมำ
http://www.thaiall.com/uml/indexo.html
Use case
Diagram
่
ทีมำ
http://www.thaiall.com/uml/indexo.html
Sequence
Diagram
•แสดงลำดับกำรทำงำนของระบบ โดยมี
Object และ เวลำ เป็ นตัวกำหนด
ลำดับของงำน และเน้นไปที่ instant
ของ Object
1. Simple : ย ้ำยกำรควบคุมระหว่ำงวัตถุ
่ อไป
2. Synchronous : ติดต่อแบบรอคำตอบ ก่อนทำงำนอืนต่
่ บมำ
3. Asynchronous : ติดต่อแบบไม่รอคำตอบทีกลั
Sequence
Diagram
่
ทีมำ
http://www.thaiall.com/uml/indexo.html
Collaboration
Diagram
่
• แสดงลำดับกำรทำงำนของ วัตถุ ผูเ้ กียวข
้อง
และกิจกรรม โดยลำดับกำรทำงำนไม่ขนกั
ึ ้ บเวลำ
เพรำะกำรแสดงควำมสัมพันธ ์ของ Object กับ
่
เวลำเป็ นหน้ำทีของ
Sequence Diagram
Collaboration
Diagram
่ ยว คือ ติดต่อแบบไม่รอคำตอบทีกลั
่ บมำ
เส้นลู กศรครึงเดี
่
ทีมำ
http://www.thaiall.com/uml/indexo.html
State Diagram
• ประกอบด ้วย State ต่ำงๆ ของ Object และ
่ ำให ้สถำนะของ Object
เหตุกำรณ์ตำ่ งๆ ทีท
่
่ ดขึนเมื
้ อสถำนะของ
่
เปลียนและกำรกระท
ำทีเกิ
่
ระบบเปลียนไป
สำมำรถบอกสถำนะของ
Object ได ้ โดยจะให ้ควำมสนใจว่ำ ณ เวลำ
ใดๆ Object นั้นมี status เป็ นแบบใด
่
ทีมำ
http://www.thaiall.com/uml/indexo.htm
Activities Diagram
• แสดงลำดับ กิจกรรมของกำรทำงำน(Work
่ ดขึนได
้ ้
Flow) สำมำรถแสดงทำงเลือกทีเกิ
้
Activity Diagram จะแสดงขันตอนกำร
ทำงำนในกำรปฏิบต
ั ก
ิ ำร โดยประกอบไปด ้วย
่ ดขึนระหว่
้
สถำนะต่ำงๆ ทีเกิ
ำงกำรทำงำน และผล
้
จำกกำรทำงำนในขันตอนต่
ำง ๆ
่ ้น เรียก Initial State
• วงกลมสีดำ คือ จุดเริมต
้ ด เรียก
• วงกลมสีดำ มีวงล ้อมอีกชน้ั คือ จุดสินสุ
Final State
Activities Diagram
่
ทีมำ
http://www.thaiall.com/uml/indexo.html
Start
Stop