Page 27 - วิศวกรรมซอฟต์แวร์
P. 27
กรณีตัวอย่างโครงการพัฒนาซอฟต์แวร์เช่ารถยนต์ 15-17
เรื่องท่ี 15.2.1
กรณตี ัวอยา่ งการออกแบบด้วยเทคนิคเชงิ วตั ถุ
ลักษณะเด่นของการออกแบบซอฟต์แวร์ด้วยเทคนิคเชิงวัตถุคือซอฟต์แวร์ที่ถูกออกแบบและพัฒนาเชิงวัตถุ
จะสามารถบ�ำรุงรักษาได้ง่ายเนื่องจากการพัฒนาซอฟต์แวร์จะแยกวัตถุออกอย่างเด่นชัด และเหล่านั้นจะถูกก�ำหนด
คุณสมบัติและข้อมูลที่เกี่ยวข้องอย่างชัดเจน อีกทั้งถูกแยกออกจากกระบวนการประมวลผลท�ำให้ถูกน�ำเอาไปใช้ใหม่
ได้ง่ายเม่ือมีความต้องการปรับเปลี่ยนกระบวนการที่เก่ียวข้อง ผลผลิตท่ีส�ำคัญของการออกแบบเชิงวัตถุได้แก่ ยูสเคส
(use case) ซ่ึงใช้ส�ำหรับอธิบายความสามารถหลัก ๆ ของซอฟต์แวร์ ซีเควนซ์ไดอะแกรม (sequence diagram)
ซ่ึงถูกใช้ในการแสดงสถานะและความสัมพันธ์ของวัตถุต่าง ๆ ท่ีเปล่ียนแปลงไปตามกระบวนการท�ำงาน
1. ยสู เคสของระบบเชา่ รถยนต์
ยูสเคสแต่ละตัวจะแทนท่ีหน้าที่การท�ำงานต่าง ๆ ในระบบซอฟต์แวร์ที่โต้ตอบกับผู้ใช้งานหรือระบบภายนอก
จะเห็นว่าซอฟต์แวร์ระบบเช่ารถยนต์ประกอบด้วยยูสเคสหลาย ๆ ยูสเคส ดังแสดงในภาพท่ี 15.5 หน้าท่ีต่าง ๆ ของ
ยสู เคสถูกแสดงไว้ในตารางท่ี 15.5 โดยมีรายละเอียดยูสเคสที่เก่ียวข้องกับการพิสูจน์ตัวจริง (authenticate) เพ่ิมเติม
จากเดิมที่ปรากฏในภาพท่ี 15.4 กล่าวคือ มียูสเคสซ่ึงท�ำหน้าท่ีตรวจสอบข้อมูลส�ำหรับการพิสูจน์ตัวจริง (check cre-
dential) และยูสเคสส�ำหรับการก�ำหนดสิทธ์ิให้กับผู้ใช้งานหากการพิสูจน์ตัวจริงส�ำเร็จ (assign role) ดังนั้น ผู้ใช้งาน
ที่ผ่านการพิสูจน์ตัวจริงส�ำเร็จจึงสามารถเข้าถึงยูสเคสต่าง ๆ ได้ตามสิทธิ์ท่ีได้รับจากระบบ
ดังที่ทราบแล้วว่ายูสเคสถูกใช้ในการอธิบายฟังก์ช่ันการท�ำงานของซอฟต์แวร์ โดยแสดงการปฏิสัมพันธ์กัน
กับแอคเตอร์ ซ่ึงหมายถึงคนหรือส่วนหนึ่งส่วนใดของฮาร์ดแวร์ หรือระบบซอฟต์แวร์ย่อย ๆ และไม่สามารถใช้อธิบาย
ว่าแอคเตอร์และยูสเคสน้ัน ๆ ท�ำงานอย่างไร ดังน้ัน ผู้ออกแบบระบบจะต้องสร้างซีเควนซ์ไดอะแกรม ให้กับทุก ๆ
ยูสเคสของระบบซอฟต์แวร์เพื่อแสดงปฏิสัมพันธ์ระหว่างอ็อบเจ็กต์ ตามล�ำดับเหตุการณ์ระหว่างอ็อบเจ็กต์ตามล�ำดับ
ของเวลา นอกจากน้ันยังต้องสร้างคลาสไดอะแกรม (class diagram) ซึ่งใช้แสดงคลาสและความสัมพันธ์ระหว่าง
คลาสต่าง ๆ ในซอฟต์แวร์ ส�ำหรับกรณีศึกษาน้ีจะยกตัวอย่างเฉพาะยูสเคสการเช่ารถยนต์ (rent car) ซีเควนซ์
ไดอะแกรมของการเช่ารถยนต์ และสเตทไดอะแกรมของการเช่ารถยนต์