now

advertisement
วัตถ ุประสงค์
1. เข้ าใจขั้นตอนการวิเคราะห์ และออกแบบระบบงาน
ด้ วยวิธีเชิงวัตถุ
2. บอกหลักการเขียนผังงานเชิงวัตถุได้
การวิเคราะห์และออกแบบระบบงานด้วยวิธีการเชิงวัตถ ุ
1. วิธีการวิเคราะห์ และออกแบบระบบ
งานต่ างๆ
2. ขั้นตอนการวิเคราะห์ ระบบงานด้ วย
วิธี CRC
3. ขั้นตอนการออกแบบระบบงานด้ วย
วิธี CRC
วิธีการวิเคราะห์และออกแบบระบบงาน
การวิเคราะห์ และออกแบบระบบงานด้ วยวิธีการเชิ งวัต ถุ
เป็ นการพัฒนาระบบงานให้ มีคุณลักษณะเชิ งวัตถุ ได้ มีผ้ ูพัฒนา
แนวทางหลายแนวทางได้ แก่
1. วิธี GOOD คิดค้ นพัฒนาโดยองค์ การ NASA ใช้
หลักการของการค้ นหาวัตถุจากผังงาน DFD แบบ Top-down และ
มีความเกีย่ วข้ องโดยตรงกับภาษา Ada
2. วิธีการ HOOD คิดค้ นพัฒนาโดยองค์ การ ESPIRIT
ของสมาคมยุโรป ใช้ หลักการค้ นหาวัตถุจากผังงาน DFD แบบ
วิธีการวิเคราะห์และออกแบบระบบงาน
Top-down ใช้ งานบนภาษา Ada คล้ ายกับ GOOD แต่ มีข้อจากัด
ในด้ าน Inheritance, Polymorphism และ Genericity ไม่ ได้ รับ
การยอมรับเท่ าที่ควร
3. วิธีการ OOSD พัฒนาโดย Wasser man เหมาะกับ
ระบบ Real-Time
และไม่ ติดยึดกับภาษาใด ๆ สนับสนุ น
Inheritance, Abstraction
4. วิธีการ OODLE พัฒนาโดย Shlaer, Mellor ลักษณะ
การพัฒนาแบบวนซ้า และมีผงั งานที่ใช้ งานในด้ าน Class,
วิธีการวิเคราะห์และออกแบบระบบงาน
Class-structure, Dependency และ Inheritance
5. วิธีการ OOD/Booch พัฒนาโดย Grady Booch ลักษณะ
การพัฒนาแบบวนซ้า (Recursive) และเพิม่ พูน (Incremental) มี
การแสดงความเกี่ยวข้ องระหว่ าง class ขั้นตอนของการพัฒนา
ประกอบด้ วย การระบุ classes และ object ในขั้นตอนเชิงตรรก
(Abstraction) การระบุคุณลักษณะ (Semantics) ของ class และ
object การกาหนดความเกี่ยวข้ อง-สั มพันธ์ ระหว่ าง class และ
object การพัฒนา (Implement) หลังการกาหนด class และ object
วิธีการวิเคราะห์และออกแบบระบบงาน
ให้ เป็ นรู ปธรรม
6. วิธีการ OMT พัฒนาโดย James Rumbough ผังงาน
ต่ างๆ ครอบคลุมทั้งสภาวะสถิตย์ (Static) และสภาวะพลวัต
(Dynamic) เช่ น Object model, Dynamic model และ Functional
model เป็ นวิธีที่นิยมใช้ งานมากวิธีหนึ่ง
7. วิธี RDD (Responsibility-Driven-Design) พัฒนาโดย
Wirfs-Brock, et.al. อาจเรียกอีกวิธีว่า CRC (Class Responsibility
Collaboration) สนับสนุนหลักการพืน้ ฐานของ OO ในด้ าน Class,
วิธีการวิเคราะห์และออกแบบระบบงาน
Object, Inheritance นอกจากนั้นยังสนับสนุนการเรียกใช้ Classes
อืน่ ๆ ที่เกีย่ วข้ องกัน (Collaboration) ลักษณะการพัฒนาเป็ นแบบ
Exploratory และ Analysis ขั้นตอนของ RDD (Exploratory)
ประกอบด้ วยการระบุ object การสร้ างความสั มพันธ์ ของ Object
(= class) การระบุ Responsibilities ของแต่ ละ object และการระบุ
ความเกีย่ วข้ องกับ Class อืน่ ๆ ส่ วน RDD (Analysis) ประกอบด้ วย
การระบุแผนภูมิ Hierachy ของ Class การระบุ Subsystem และ
การระบุคุณลักษณะของ Class, Subsystem วิธีการ RDD เป็ นวิธีที่
วิธีการวิเคราะห์และออกแบบระบบงาน
ใกล้ เคียงกับการปฏิบัติงานด้ วยมือ (Manual) และหากผนวก
วิธีการกาหนดรู ปแบบโครงสร้ างข้ อมูล (Conceptual Data Model
- ER diagram) * กับการจัดทารู ปแบบงานต้ นแบบ (Story Board)
จะทาให้ การวิเคราะห์ และออกแบบระบบงานเที่ยงตรงยิ่งขึ้ น ใน
เอกสารบรรยายนี้จะใช้ กรณีศึกษาซึ่ งนาเสนอด้ วยวิธีการ RDD
หรือ CRC Method
______________________________________________________________________________________________
* AJH Simon “Object Oriented Analysis and Design Development of Computer Science, University of She…..
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
การวิเคราะห์ ด้วยระบบงานด้ วยวิธี CRC มีลักษณะการ
ทางานที่เป็ นขั้นเป็ นตอน และมีการใช้ งานเอกสารกากับการทางาน
ในทุกขั้นตอน ทาให้ ช่วยในการทบทวนความต้ องการระบบงาน
(Requirements) ได้ อย่ างดี
ขั้นตอนของการวิเคราะห์ ระบบงานมีดงั นี้
1. จัดทาผังปริบท (Context diagram) ของระบบงาน ผัง
Context diagram จะแสดงภาพโดยรวมของระบบงานว่ ามี
ผู้เกีย่ วข้ อง (Stabehoders) ใดบ้ างที่มีการกระทาต่ อระบบ ที่
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
ทั้ ง ผู้ ใ ห้ ข้ อ มู ล หรื อ ใช้ ข้ อ มู ล ต่ อ ระบบงาน ผู้ เ กี่ ย วข้ อ งอาจเป็ น
บุคคล หรือระบบงานภายนอก (External System) ความเกีย่ วข้ อง
ที่ผู้เกีย่ วข้ องมีต่อระบบ เป็ นความต้ องการหลัก ๆ ของระบบงานที่
ผังมีการร้ องขอ / การกระทาต่ าง ๆ ต่ อระบบจะเรียก Use case
ตัวอย่ างเช่ น
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
Customer
Shipment
Supplier
Invoice
Order
Order
System
Credit status
Customer DB
Inquiry
Customer
Response
Invoice
Accounting
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
2. การกาหนดผู้เกี่ยวข้ อง (Actor)
หลังจากการพัฒนา
Context diagram แล้ ว ขั้นตอนต่ อมาคือการระบุ Actor ซึ่ง Actor
อาจจะเป็ นทั้งผู้ให้ ข้อมูล (ก่ อให้ เกิดการกระทา) หรื อผู้ใช้ ข้อมูล
(รอรับการกระทา) เพือ่ แก้ ปัญหาการทาซ้า การกาหนด Actor จึง
พิจารณาจาก Actor โดยดูจากผู้เกีย่ วข้ องที่เป็ นผู้ร้องขอการกระทา
ต่ อระบบงาน (Initiation The Input) เท่ านั้น
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
Actor
Activity Type
initiate/request
Use Case
Actor
customer
Activity
initiate
initiate
initiate
initiate
Use Case
Order
Inquiry
Credit status
Invoice
customer DB
Supplier
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
ในกรณีนี้ Actor คือ Customer, Customer DB, Supplier เป็ นต้ น
3. การกาหนดความเชื่อมโยงของ Use Case (Use Case
Dependency) เป็ นขั้นตอนการแสดงภาพความเกี่ยวข้ อง การขึ้ น
ตรงต่ อกันของ Use Case การระบุความเกี่ยวข้ องกันจะต้ อง
พิจารณาจากลักษณะของงาน (Application Domain) ของระบบ
สารสนเทศที่กาลังพิจารณา ในบางครั้ งอาจมีการแสดงเงื่อ นไข
“ และ ” “ หรือ ” บ่ อยครั้งพบว่ า Use Case บางตัวถูกเรียกใช้ งาน
บ่ อย ๆ โดย Use Case อืน่ ๆ Use Case นีจ้ ะถูกระบุเป็ น Use Case
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
ประเภท Abstract Use Case (Include) ใน Use Case หนึ่ง ๆ อาจมี
ความสลับซับซ้ อน มีการคานวณหรือมีข้นั ตอนมากมาย Use Case
นีอ้ าจจะถูกทาให้ สลับซับซ้ อนน้ อยลง โดยการดึง/แยก เอางานบาง
อย่ างออกมารวมไว้ ที่อกี Use Case หนึ่ง ๆ (หรืออาจแตกออกได้ อกี
หลาย Use Case) Use Case ประเภทนีเ้ รียก Extension Use Case
ตัวอย่ างของลักษณะการเรียกใช้ งาน Use Case เช่ น
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
Buy Order
Entry
Sell Order
Entry
<<include>>
<<include>>
Trade Order
Entry
<<extend>>
Invalid
Trade Number
Invalid
Choice
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
ตัวอย่ าง Use Case Dependency ได้ แก่
Request
Product
Process Order
Customer
Pull Items
Ship Order
Ware
House
Sales
Receive
Order
Bill Customer
Pay Bill
Close Order
Sales
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
การจัดทา Use Case Dependency จะแสดงกลุ่มของ Use Case ที่
เกีย่ วข้ องกันในการทางาน หนึ่ง ๆ ภาพตีกรอบจะช่ วยแสดงระบบ
ย่ อย (Subsystem) ของระบบงานได้
ช่ วยในการระบุ System
Architecture
4. ขั้นตอนการจัดทา Use Case Diagram ผัง Use Case
Diagram จะมีลักษณะเป็ นภาพปริบทของระบบงานคล้ ายภาพใน
ขั้ น ตอนที่ 3 แต่ ตี ก รอบให้ อยู่ ใ นขอบเขต เพื่ อ ให้ สะดวกใน
การศึกษาภาพรวมของระบบงาน
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
Request
Product
Receive
Order
Pull Item
Customer
Pay Bill
Process Order
Ship Order
Bill Customer
Sales
Close Order
Ware house
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
5. ขั้นตอนการจัดทารายละเอียดของแต่ ละ Use Case (Use
Case Description)
ขั้นตอนนีจ้ ะใช้ ในการบรรยายการทางาน
ของแต่ ละ Use Case โดยข้ อมูลจะมาจากการสั มภาษณ์ ผู้ใช้ งาน
(user)
Use Case Description จะคล้ ายคลึงกับการพรรณา
กระบวนการ (Process - Data Dictionary) ใน DFD รายละเอียด
ของ Use Case Description ประกอบด้ วย
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
1. Use Case Name : ชื่อของ Use Case
2. Actor
: ชื่อผู้เกีย่ วข้ องกับ Use Case
3. Description
: บรรยายการทางานของ Use Case
คร่ าวๆ ว่ าทางานเกีย่ วกับอะไร
4. Normal Course : เป็ นกรอบแสดงรายละเอียดของการ
ทางานขั้นตอนย่ อย ๆ (Step) ตั้งแต่ ต้ังต้ นจนกระทั่งสิ้นสุ ด โดยใน
แต่ ละขั้นตอนย่ อยจะประกอบด้ วยประโยคหนึ่งๆ ซึ่ งมี ประธาน
กริยาและกรรม เพียงชุดเดียว ในแต่ ละบรรทัดจึงมีลกั ษณะ
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
เป็ นงานชั้นปฐมภูมิ (Primitive)
5. Precondition
: ใช้ ระบุ Use Case หรือเหตุการณ์
อืน่ ๆ ใดทีจ่ ะกระทา / เกิดขึน้ ก่ อนจะมากระทา use case นี้
6. Post-condition : ใช้ ระบุ Use Case หรือเหตุการณ์
อืน่ ๆ ใดที่จะกระทา / เกิดขึน้ หลังจากกระทา Use Case นีส้ าเร็จ
7. Assumption
: ใช้ หมายเหตุในเรื่องอืน่ ใดที่สาคัญๆ
ของ Use Case นี้ เช่ น ระบบรักษาความถูกต้ อง ความปลอดภัย
เป็ นต้ น
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
ตัวอย่ างของ use case description : Normal course ได้ แก่
Use Case
: Prepare Roster
Actor
:
Pre
:
Discrepancy List for the current week is alredy prepared and printed
Post
:
Roster is prepared
User
Mainflow ;
step1
: For each task
- Task's detail is abtained
- Task information is displayed on screen
- System randomly select flatmate for this task {use case - assigntask}
- The assignment is recorded and displayed
step2
: The full roster is disp;ayed with the weight for each person
step3
: Manager confirms the roster
step4
: Manager ask for hard copy
step5
: System prints the roster
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
เมื่อได้ จัดทา Use Case Description : Normal Course ซึ่ง
พรรณนาขั้นตอนการทางานปกติครบถ้ วนแล้ ว นักวิเคราะห์ ระบบ
จะทาการสอบทานความถูกต้ อง / ครบถ้ วน ในความต้ องการของ
ระบบงาน (Functional Requirement) กับ User จนสมบูรณ์
6. ขั้นตอนการจัดทารายละเอียด Use Case Description
เชิง Alternate
เป็ นขั้นตอนขยายจากขั้นตอนที่ 5 โดย
นักวิเคราะห์ ระบบจะบรรยายงานย่ อยๆ ที่จะต้ องกระทาในกรณีที่
ผิดเงือ่ นไขจากเหตุการณ์ ปกติ เช่ น
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
Normal
Step 1 : if N น้ อยกว่ าหรือเท่ ากับ 100
N เท่ ากับ N+1
end if
Alternate
Step 1 : print “N=”,N
Alternate flow ;
Step 3 : - Manager may manually edit the roster
Step 4 : - Manager may exit without requesting hard copy
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
เช่ น หากเหตุการณ์ ในขั้นตอนที่ 1 ถูกต้ อง เงื่อนไขจะกระทาใน
คาสั่ งที่ระบุใน Step 1 (กรณี Normal) แต่ หากผิด เงื่อนไข
(N>100) จะพิมพ์ค่า N ออกมาเป็ นต้ น
จากภาพ Use Case Description จากขั้นตอน 5 หากมี
ขั้นตอน Alternate สามารถยกตัวอย่ างได้ ดัง Alternate Flow
7. ขั้นตอนการระบุวตั ถุ (Object Identification) เป็ น
ขั้นตอนที่ใช้ ในการหาวัตถุ (Potential Objects) ในระบบงาน
การดาเนินการจะทาโดยการนา Use Case Description
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
(Normal +Alternate) ของทุก ๆ Use Case มาพิจารณา หา
คานาม (อาจเป็ นประธานหรือกรรม) โดยการขีดเส้ นใต้ คานามทุก
ๆ คา ที่ปรากฏใน Normal และ Alternate Step ทุก ๆ Step
หลังจากนั้นจะนาคานามทั้งหมดมาพิจารณาทีละคา ๆ ว่ าสมควร
คัดเลือกเป็ น Object หรือไม่ โดยพิจารณาจากนิยามของ Object
เป็ นหลัก
“ Object จะมีคุณลักษณะ (Attribute) และการกระทา
(Behavior) ในตัวมันเอง ”
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
ดังนั้นคานามบางคาอาจเป็ นเพียง attribute (ตัวแปรแสดง
คุณลักษณะของวัตถุ) คานามพ้ องรู ป (Synonyms) หรือคานามที่
ไม่ เกีย่ วกับระบบงานโดยตรง ให้ พจิ ารณาตัดออก
8. ขั้นตอนการสร้ าง Class Diagram หลังจากที่ได้
รวบรวม Object ต่ าง ๆ ไว้ จากทุก ๆ Use Case Description
แล้ ว ขั้นตอนต่ อมาคือขั้นตอนการจัดกลุ่ม จัดหมวดหมู่ของเหล่ า
วั ต ถุ ต่ า งๆ เข้ า ด้ ว ยกั น บางวั ต ถุ เ ป็ นพวกเดี ย วกั น ในลั ก ษณะ
ประเภทหนึ่ง (kind-of) หรือในลักษณะ ส่ วนหนึ่ง (part-of)
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
หรื อ อาจเป็ นเพราะเกี่ ย วข้ อ งกั น เพราะมี ก ารเรี ย กใช้ งานกั น
(Relationship) คาแนะนาในการจัดทา Class Diagram ในที่นีข้ อ
เสนอแนะแนวทางไว้ สองแนวทางดังนี้
8.1 การพิจารณาความสั มพันธ์ แบบ kind-of (“ ”)และ
แบบ part-of (“ ”) ให้ พจิ ารณาจากธรรมชาติของ Objects ต่ าง
ๆ ว่ ามีความเกี่ยวข้ องกันในสองแนวทางหรือไม่ ความเกี่ย วข้ องกัน
อาจเกิดจากการมี Attribute และ / หรื อ มี Behavior ร่ วมกัน
(Common) หลังจากพิจารณาได้ ลกั ษณะร่ วมแล้ ว จะทาการดึงสิ่ งที่
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
ร่ วมกันนีอ้ อกมา แล้ วสร้ าง / กาหนด วัตถุใหม่ ขึน้ อีก 1 ตัว ทาการ
ดูแลสิ่ งทีเ่ ป็ นลักษณะร่ วมกันของเหล่ าวัตถุต่างๆ อีกต่ อหนึ่ง วัตถุนี้
จะเรี ยกวัตถุแม่ (Super type) ที่จะดูแลกลุ่มวัตถุต่าง ๆ โดย มี
ลักษณะจะถ่ ายทอดให้ ลูก ๆ (Generalization) เป็ นลักษณะของ
ตนเองแทน ซึ่ ง อาจมี ลั ก ษณะเป็ นรู ป ธรรม (Concrete) หรื อ
นามธรรม (Abstract) ลักษณะที่เป็ นนามธรรม จะเป็ นลักษณะที่
ยอมให้ Object ลูก ๆ ทาการ Override เพือ่ ทางานให้ ต่างกันไปได้
(Polymorphism)
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
ส่ วนลักษณะพิเศษทีแ่ ต่ ละวัตถุมีแตกต่ างจากวัตถุอนื่ ๆ จะคงรักษา
ไว้ ในวัตถุพนื้ ฐาน (Specialization) ตัวอย่ างเช่ น
Course Offering
Location
Open()
add student
Student
Professor
Major
Tenure Status
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
วัตถุ Student และ Professor ต่ างเป็ น kind Of Person (user) ใน
มหาวิทยาลัย จึงอาจสร้ างวัตถุ Registration User ปรับปรุ ง Class
Diagram ใหม่ ได้ เป็ น
Course Offering
Student
Professor
Registration User
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
8.2 การพิจารณาความสั มพันธ์ แบบการเรี ยกใช้ งานซึ่ งกัน
และกัน (Relationship) การพิจารณาความสั มพันธ์ นี้เป็ นความ
เกี่ยวข้ องกันระหว่ างวัตถุ เพราะเกี่ยวข้ องกันในการติดต่ อขอใช้
บริ การ method ต่ างๆ โดย object หนึ่ง ต่ อ object อื่นๆ ผ่ าน
message การจัดทา Relationship จะพิจารณาจากความเกีย่ วข้ อง
กันในลักษณะของงาน (Application Domain) อนึ่งนอกเหนือจาก
การพิจารณา Application Domain แล้ ว อาจใช้ วิธีการศึกษา
ความสั มพันธ์ ของกลุ่มข้ อมูล (Attribute) จากผังความเกีย่ วข้ อง
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
(Entity Relationship diagram : ER) ซึ่งผัง ER Diagram จะ
จัดทาจาก การทาปกติ (Normalization) รายงานต่ าง ๆ จากผัง
ปริบท (Context Diagram) ซึ่งในผัง ER Diagram จะแสดงกลุ่ม
ก้ อนของข้ อมูล (Attribute) ดังนั้น ผัง ER Diagram จะเป็ น
ครึ่งหนึ่งของผัง Class Diagram จากผัง ER Diagram จะช่ วยใน
การแสดงภาพความสั มพันธ์ กนั ระหว่ างวัตถุ ตัวอย่ างจากผัง ER
Diagram ของ Application หนึ่งๆ เมื่อเทียบเคียงกับผัง ClassDiagram เชิง OO แล้ ว จะมีความใกล้ เคียงกันดังภาพ
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
จากภาพของ ER diagram ข้ างต้ น จะพิจารณาการ
ปรับเปลีย่ น ผัง ER เป็ นผังงาน OO โดยขั้นตอนดังนี้
1. สร้ างผัง OO จาก Data Entity ในผัง ER
2. บรรจุ Attribute ลงใน Object (จาก Data Entity)
3. พิจารณา/กาหนด การกระทาลงใน Object โดยพิจารณา
จาก Relation ระหว่ าง Data Entity (เช่ น works for, works on)
4. กรณีที่ผงั EER Diagram (มีการสร้ าง Data Entity
Dummy เพือ่ ควบคุม Data Entity
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
ประเภทเดียวกัน/กลุ่มเดียวกัน/เป็ นส่ วนหนึ่งส่ วนใด จะให้ Super
Data Entity นั้นแปลงเป็ น Super Type Object)
5. กรณี Weak Entity Type ของ ER Diagram อาจ
พิจารณารวมไว้ ใน Object ใด Object หนึ่ง โดยอาจจะแสดงค่ า
เป็ น Multi Value Attributes หนึ่ง ๆ (ประสิ ทธิภาพต่าและไม่
ยืดหยุ่น)
จากตัวอย่ าง ภาพ ER ข้ างต้ น แปลงเป็ นกลุ่มวัตถุได้ ดงั นี้
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
จากนั้นพิจารณาตามขั้นตอน 2, 3 (ไม่ มี 4, 5) ได้ ผลดังนี้ (ผัง OO)
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
ตัวอย่ างข้ างล่ างเป็ น ผัง EER Diagram ซึ่งสามารถดัดแปลงเป็ น
ผัง OO ได้
SSN
BDate
Name
Address
Employee
d
EngType
TypingSpeed
Tgrade
Secretary
Technician
Engineer
ขัน้ ตอนการวิเคราะห์ระบบงานด้วยวิธี CRC
ผังแสดง EER diagram ซึ่งเพิม่ Employee Entity สาหรับควบคุม
กลุ่ม Entity Secretary, Technician และ Engineer
Employee
Name
SSN
BData
Address
Secretary
Technician
Engineer
Typing speed
Tgrade
Eng type
ขัน้ ตอนการออกแบบระบบงานด้วยวิธี CRC
หลังจากที่ได้ ทาการวิเคราะห์ ระบบงานเชิ งวัตถุด้วยวิธีการ
OO-A แล้ วสิ่ งที่ได้ จากขั้นตอน 3.1 คือ Object, Class, System,
Architrecture (Subsystem) และ Class Diagram พร้ อมได้ เค้ า
โครงของ Attribute ที่น่าจะเป็ นของ Object/Class ของระะบบ
ส่ วนการกระทา (Method) ยังไม่ ปรากฎในขั้นตอนการทา OO-D
จะเปลีย่ นแปลงสิ่ งที่เป็ นนาม นามธรรม (Logical) ให้ เป็ นรู ปธรรม
(Physical ขึน้ ) วัตถุใหม่ ๆ จะปรากฎขึน้ เช่ น Interface Object
และวัตถุควบคุม (Control Object)
ขัน้ ตอนการออกแบบระบบงานด้วยวิธี CRC
โครงสร้ างของโปรแกรมแม่ (Main program) และการบรรยาย
กระบวนการทางานในโปรแกรมย่ อยๆ (ที่ระบุใน Object) เป็ นต้ น
ขั้นตอนการออกแบบระบบงานมีดงั นี้
1. ขั้นตอนการกาหนดรายละเอียดเชิงรู ปธรรมใน Use Case
Description ขั้นตอนนีเ้ ป็ นการนาเอาทุกๆ Use Case Description
มาทาการกาหนดรายละเอียดย่ อยในเรื่องต่ างๆ ได้ แก่
- การระบุจุดเข้ า จุดออกสู่ Use Case ซึ่งจุดนีจ้ ะเกีย่ วข้ อง
กับ Actor
ขัน้ ตอนการออกแบบระบบงานด้วยวิธี CRC
- การกาหนดรายละเอียด / ลักษณะสิ่ งเชื่อมต่ อ(Interface)
ว่ าเป็ นสิ่ งใด เช่ น หน้ าจอ (Window) สิ่ งพิมพ์ (Print-out) และแต่
ละสิ่ งมีข้อมูล (Field name) ได้ บรรจุอยู่บนสิ่ งนั้นบ้ าง
- การระบุอุปกรณ์ (Physical Device) เช่ น เครื่ องพิมพ์
เครื่องอ่ าน บาร์ โค้ ด เป็ นต้ น
- การกาหนดข้ อความโต้ ตอบต่ างๆ เช่ น Error Message
หรือข้ อความโต้ ตอบต่ างๆ (Message box) เป็ นต้ น
- การกาหนดแป้ นพิมพ์ (Button) ต่ างๆ
ขัน้ ตอนการออกแบบระบบงานด้วยวิธี CRC
- การระบุ/อ้ างอิง กลุ่มของ Use Case ทีจ่ ะถูกแยกออกไป
(Extension Use Case) และการเรียกใช้ Use Case จากแหล่ งอืน่ ๆ
(Abstraction Use Case) ตัวอย่ างของ Use Case Description เชิง
รู ปธรรมดังนี้
จากผัง Use Case Description ต่ อไปนี้ Purchase Order
จะมีลกั ษณะเป็ นหน้ าจอปรากฎ Field name ต่ างๆ ได้ แก่ Line#,
Quantity#, Part#, Description, Price, Extended เป็ นต้ น
ขัน้ ตอนการออกแบบระบบงานด้วยวิธี CRC
Use Case – Example
Create New Purchass Order
This use case provides a system user with the ability to create a new purchase order for an existing
customer.
- Choose Customer
1. The system prompts the user for the ID of the customer for which they would like to
create an order.
2. The user enters the desired customer ID and submits the data.
3. The system verifies that the given customer exists, and continues on to the “Display
Order” flow.
- lf the customer doesn’t exist, the user is informed and the use case restarts.
ขัน้ ตอนการออกแบบระบบงานด้วยวิธี CRC
-
Display Order
1. The system displays the customer name, code, and shipping address, along with the
(initially empth) purchase order, purchase order total, a cancel button, and forms to
add a part or search for a part by keyword.
The purchase order is an ordered list of line items, each of which consists of the
following data:
1. Line #
2. Quantity
3. Part #
4. Description
5. Price
6. Extended
ขัน้ ตอนการออกแบบระบบงานด้วยวิธี CRC
2. The user must now choose to cancel the order (“Cancel Order”), add a part to the order
(“Add Line Item”), search for a part (“Search for Part”), or if the order is not empty,
save the order (“Save Order”)
- Add Line Item
1. The user enters a part number and quantity, and submits the data to be added to the
purchase order.
2. The system retrieves the part’s price and description, adds the part to the end of the
order, calculates the extended price by multiplying quantity by price, and adds the
extended price to the running total, after which the use case returns to the “Display
Order” flow to view the updated purchase order.
- lf the part does not exist, the quantity is not positive or whole, or the purchase order
total exceeds $100,000 the part is not added to the order, and the user is informed of
the error upon returning to the “Display Order” flow.
ขัน้ ตอนการออกแบบระบบงานด้วยวิธี CRC
- Search for Part
1. The user enters a keyword to be used in a case-sensitive substring search on part
descruptions, and submits the data.
2. The system retrieves all parts that match, and for each one, displays the part number,
description, and price to the user.
3. If the user chooses a part, the system proceeds to the “Display Order” flow, but
automatically fills in the chosen part number n the part form, so that the user may
proceed with the “Add Line Item” flow as usual,
4. If user does not want to choose a part, the user may return to the order without
choosing a part (“Display Order”), or perform another search (“Search for Part”)
ขัน้ ตอนการออกแบบระบบงานด้วยวิธี CRC
- Cancel Order
1. The system completely discards and record of the purchase order and displays a
message confirming that the order has been cancelled.
- Save Order
1. The system chooses the next available purchase order number.
2. The system permanently stores the purchase order using the new number,
automatically choosing the order that was just created.
ขัน้ ตอนการออกแบบระบบงานด้วยวิธี CRC
2. ขั้นตอนการระบุประเภทของ Object เป็ นการพิจารณา
ระบุว่าใน Use Case หนึ่งๆ มี Object ใดบ้ าง แต่ ละตัวเป็ นวัตถุ
ประเภทใด ระหว่ าง Interface Object, Control Object และ
Persistent หรือ Data Object ขั้นตอนนี้ ผู้ออกแบบระบบงาน
สามารถแยกแยะได้ โดยสะดวกเนื่องจาก เป็ นผู้กาหนดขึน้ เองจาก
ขั้นตอนที่ 1
Interface Object
Control Object
Entity Object
ขัน้ ตอนการออกแบบระบบงานด้วยวิธี CRC
3. ขั้นตอนการระบุ Attribute ของ Object ขั้นตอนนีจ้ ะ
พิจารณาการรวบรวม Attribute ต่ างๆ ที่เกี่ยวข้ องกับ Persistent
Object ( Database Object) ซึ่ง Attribute เหล่ านีจ้ ะนาเข้ าและ
ส่ งออกกับ Object Database โดยตรง หน้ าจอต่ างๆ ที่นาข้ อมูลเข้ า
สู่ Persistent Object นั้น รายงานที่นาข้ อมูลออกจาก Persistent
Object นั้นๆ ข้ อมูลเหล่ านีจ้ ะเป็ น Attribute ต่ อ Entity Object
ทุกๆ ตัวที่ระบุจากขั้นตอนที่ 2 อนึ่ง Entity Object คือ เหล่ า
Object ที่รวบรวมจากขั้นตอนการทา OO-A
ขัน้ ตอนการออกแบบระบบงานด้วยวิธี CRC
4. ขั้นตอนการระบุความสั มพันธ์ ของวัตถุ
(Object
Interaction) เป็ นขั้นตอนการแสดงความเกี่ยวข้ องกันระหว่ าง
Actor กับ Interface Object, Control Object and Entity Object
แต่ ละ Use Case มักจะมี Actors ต่ างกันและอาจมี
Interface, control, Entity Object ต่ าง / ร่ วมกันได้
Fill in information
And Submit
Actor:Student
Add course
(Bob, Math 202)
Registration Form
(Interface Object)
Add Bob
Registration Manager
(Control Object)
Math 202
(Entity Object)
ขัน้ ตอนการออกแบบระบบงานด้วยวิธี CRC
5. ขั้นตอนการระบุการกระทา (Method) ของ Object
ขั้นตอนนีจ้ ะทาการพิจารณาแต่ ละ Use Case ว่ ามีการกระทา
(Behavior/Method/Function) โดยปรากฏอยู่ในแต่ ละ Use Case
Description โดยใช้ วิธีการหากิริยา (Action Verb Phase) ซึ่ ง
เกี่ยวข้ องกับวัตถุใด และคากริ ยานี้ อาจเป็ นแบบ Manual หรื อ
กระทาโดยโปรแกรม (Automatic) คากริ ยาที่เกี่ยวข้ อง และมี
ลักษณะการทางานแบบอัตโนมัติ จะถูกพิจารณาเป็ น Method ของ
วัตถุทเี่ กีย่ วข้ อง ผลการพิจารณาจะถูกแยกใส่ ตารางดังภาพ
ขัน้ ตอนการออกแบบระบบงานด้วยวิธี CRC
Behavior Automatic/Manual Object Type
Object Name
กระทาขั้นตอนขั้นที่ 5 นีก้ บั ทุกๆ Use Case Description จนได้
ตารางระบุการกระทาครบตามจานวน Use Case Descrikption
หลังจากนั้น ให้ พจิ ารณา Behavior ที่เป็ น Manual ออกไปคงไว้
แต่ Automatic สุ ดท้ ายให้ ทาการเกลี่ย Behavior จาก Object
Name นาผลที่ได้ มาสรุ ปรวบรวมไว้ ในตาราง
CRC (Class
Responsibility Corllaboration Card)
ขัน้ ตอนการออกแบบระบบงานด้วยวิธี CRC
ซึ่งจะนาเสนอรายละเอียดของ Object ต่ างๆ เมื่อนา Attribute
ของ object นั้นมาบรรจุใน CRC จะได้ Object ที่เต็มรู ปแบบครบ
สามคุณลักษณะคือ ชื่อวัตถุ Attribute และ Method และหาก
Method หนึ่งๆ จาเป็ นต้ องเรียกใช้ ขาน Method จาก Object อืน่ ๆ
ให้ ทาการระบุไว้ ในส่ วนของ Collaborator รู ปแบบของ CRC
แสดงดังนี้ (CRC Template)
ขัน้ ตอนการออกแบบระบบงานด้วยวิธี CRC
Front
Class name :
Description :
Responsibilities :
(ด้านหน้า)
ID:
Back
Attributes :
(ด้านหลัง)
Relationship :
Collaborators :
Generalization :
Aggregation
:
Other Association :
Type :
ขัน้ ตอนการออกแบบระบบงานด้วยวิธี CRC
6. ขั้นตอนแสดงรายละเอียดของความเกี่ยวข้ องกันของ
วัตถุในแต่ ละ Use Case
ขั้นตอนนีใ้ ช้ แสดงความเกีย่ วข้ องกัน
ระหว่ าง Action, interface Control-Entity Object คล้ ายๆ กับผล
การทางานขั้นตอนที่ 4 แต่ จะแสดงมิติของเวลาการกระทาก่ อน/
หลั ง และการระบุ ช่ วงรั บ ผิ ด ชอบงานของแต่ ล ะวั ต ถุ ผั ง แสดง
รายละเอียดดังกล่ าวเรียกว่ า Object Interaction Diagram and
Sequence Diagram
ผลของการจัดทา Sequence Diagram จะช่ วยแสดง
ขัน้ ตอนการออกแบบระบบงานด้วยวิธี CRC
รายละเอียดการทางานย่ อยๆ เป็ นขั้นเป็ นตอน (Scenario) ของแต่
ละ Use Case ว่ าเกี่ยวข้ องกับ Method ของ Object ใดบ้ างมี
เงื่อนไข/การวนซ้า เช่ นไร ผลพลอยได้ ที่สาคัญของการจั ดทา
Sequence Diagram คือได้ Main Program ที่แสดงขั้นตอนการ
กระทา (Perform) /สั่ งการ Method ของ Object ต่ างๆ ให้ กระทา
ตามความประสงค์ ของงานหนึ่งๆ โดยตรง ตัวอย่ างของ Sequence
Diagram เช่ น
ขัน้ ตอนการออกแบบระบบงานด้วยวิธี CRC
: Student
: Registration
Form
(Interface)
: Registration
Manager
(Control)
: Math 201
(Entity)
: Math 201
Section 1
(Entity)
1. Fill in info
2. Submit
3. Add course
(Bob, Math 201)
4. Are you open ?
6. Add (Bob)
5. Are you open ?
7. Add (Bob)
ขัน้ ตอนการออกแบบระบบงานด้วยวิธี CRC
ในภาพ Actor:Student จะกรอกแบบฟอร์ ม/หน้ าจอใส่ รายละเอียด
ต่ างๆ ลงในใบลงทะเบียน (1) และทาการยืน่ /ป้อนข้ อมูลเข้ าสู่ ระบบ
(2) โดยมี Interface Object:Registration Form ทาหน้ าที่รับ
ข้ อมูลเมื่อ Action กดแป้น Summit ข้ อมูลจะถูกส่ งให้ กบั โปรแกรม
Registration ทาการรับทราบ เมื่อตรวจสอบ Message พบว่ าเป็ น
การ Add Course โดยมี Agreement คือ Bob,Math 201(3)
Control Object จะตรวจสอบว่ า Entity Object:Math 201 เปิ ดใช้
งาน (เปิ ดสอน) หรือไม่ (4) Entity Object:Math 201
ขัน้ ตอนการออกแบบระบบงานด้วยวิธี CRC
จะตรวจสอบ Entity ย่ อย Section1 (5) ว่ าเปิ ดหรือไม่ หากเปิ ดสอน
จะแจ้ งให้ Entity Object:Math 201 ยินยอมให้ รับคาสั่ ง Add
(Bob) (6) เข้ าสู่ Entity Object:Math 201 และส่ งต่ อเข้ า Append
ใน Entity Object:Math 201 Section1 ต่ อไป (7)
สั ญลักษณ์
“
” แสดงช่ วงเวลาในการรับผิดชอบภาระกิจหนึ่งๆ ตั้งแต่ ต้น
จนสิ้นสุ ดแต่ ละ Object
ขัน้ ตอนการออกแบบระบบงานด้วยวิธี CRC
7. ขั้นตอนในการแสดงรายละเอียดการทางานของแต่ ละ
Object
ขั้นตอนนีจ้ ะช่ วยแสดงรายละเอียดการทางานภายใน
Object หนึ่งๆ ว่ าถูกใช้ งานจากภายนอกด้ วยเหตุการณ์ ใดบ้ าง แล้ ว
วัตถุดาเนินการตอบสนองเช่ นไร หรือเรียกใช้ วตั ถุอนื่ ๆ ภายนอกจะ
กระทาเช่ นไร ผังงานแสดงรายละเอียดการทางานแต่ ละ Object นี้
จะช่ วยให้ ผู้พัฒนาโปรแกรมสามารถพัฒนาโปรแกรมต่ างๆ ความ
เกี่ย วข้ องโปรแกรมต่ างๆ ของวัตถุ หนึ่ งๆ ได้ ห รื อ ใช้ เป็ นเอกสาร
ประกอบวัตถุ (Object Specification)
ขัน้ ตอนการออกแบบระบบงานด้วยวิธี CRC
ผังงานทีใ่ ช้ คอื Activity Diagram ตัวอย่ างเช่ น
Request Message Creation
Request Address
Display Error Message
Invalid
Address
Request Verification
nvalid Address
I
Request Subject
Request Text
Notacceptable
Notacceptable
acceptable
Request Delivery
Cancel Message
ขัน้ ตอนการออกแบบระบบงานด้วยวิธี CRC
8. ขั้นตอนการจัดทาผัง Class Diagram ที่สมบูรณ์
(Complete Class Diagram ) เป็ นขั้นตอนการนาเอา Attributes,
Methods, Objects ต่ างๆ ที่รวบรวมมาได้ แล้ วบรรจุลงไปใน Class
Diagram พร้ อมแสดงลักษณะความสั มพันธ์ กนั ในรู ปแบบต่ างๆ
(Association, Aggregation)
และขนาดของความสั มพันธ์ กนั
(Multiplicity) ดังภาพตัวอย่ าง Class Diagram
ขัน้ ตอนการออกแบบระบบงานด้วยวิธี CRC
Registration form
Schedule Algorithm
Registration Manager
add student (student
name,Course)
Course
Registration User
Name
Student
Location
Major
Open()
add student
Professor
Course Offering
Tenure Status
Location
Open()
add student
Download