Tuesday, September 25, 2012

Chapter 7 System Models


System modeling

System modeling จัดเป็นเครื่องมือช่วยนักวิเคราะห์ระบบเพื่อให้เข้าใจในหน้าที่การทำงานของระบบ และใช้เป็นสื่อกลางเพื่อสื่อสารกับลูกค้า ซึ่งมีได้หลายมุมมอง คือ

มุมมองจากภายนอก (External perspective) ซึ่่งแสดง context หรือ สิ่งแวดล้อม

มุมมองด้านพฤติกรรม (Behavioural perspective) แสดงพฤตกรรมของระบบ 

มุมมองด้านโครงสร้างของข้อมูล (Structural perspective) รวมถึงสถาปัตยกรรมของข้อมูล

ชนิดของ Model มี 5 แบบคือ

1. Data processing model แสดงการประมวลผลข้อมูลเป็นหลัก
2. Composition model แสดงส่วนประกอบของสิ่งที่สนใจ
3. Architectural model แสดงระบบโดยรวม และระบบย่อยๆ
4. Classification model แสดงคุณสมบัติที่คล้ายกัน
5. Stimulus/response model แสดงปฏิกิริยาตอบสนองที่มีการกระตุ้นจากสิ่งเร้า



Context models


Context models ถูกใช้เพื่อแสดงขอบเขตของระบบ และความเชื่อมโยงของระบบต่างๆ ทั้งนี้เพื่อแสดงภาพทั้งหมดของระบบที่กำลังจะพัฒนา




จากรูปจะเห็นว่าระบบตู้เบิกเงิน ATM นั้นมีระบบย่อยๆ ที่เกี่ยวข้องถึง 6 ระบบ คือ ระบบรักษาความปลอดภัย (Security system) ระบบบัญชีที่สาขา (Branch accounting system) ระบบฐานข้อมูลบัญชี (Account database) ระบบการให้บริการ (Branch counter system) ระบบฐานข้อมูลการใช้งาน (Usage database) และ ระบบการบำรุงรักษา (Maintenance system)
การทำงานของตู้เบิกเงิน ATM มีดังนี้ เมื่อลูกค้าต้องการเบิกเงินจากตู้ ATM ก็จะต้องไปตรวจสอบ username และ password จากระบบรักษาความปลอดภัย และสถานการณ์เงินจากระบบฐานข้อมูลบัญชี จากนั้นจึงจะจ่ายเงินให้ และบันทึกข้อมูลการใช้ไว้ที่ ฐานข้อมูลการใช้งาน เพื่อใช้ในการตรวจสอบภายหลัง และปรับปรุงยอดคงเหลือที่ ฐานข้อมูลบัญชี และ ฐานข้อมูลบัญชีที่สาขาต่อไป ส่วนระบบการบำรุงรักษาจะทำหน้าที่ในการสำรองข้อมูล ดูแลระบบให้ทำงานได้อย่างต่อเนื่อง


Process models

Process models จะแสดงขั้นตอนการทำงานทั้งภาพรวม และ รายละเอียด และการใช้ Data flow model จะช่วยให้เข้าใจขั้นตอนและลำดับการการทำงานของระบบ

Behavioural models

Behavioural models ใช้อธิบายพฤติกรรมโดยรวมของระบบ ซึ่งมี 2 แบบคือ
• Data-flow models : แสดงการไหลของข้อมูลในระบบ
• State machine models : แสดงเหตุการณ์และการตอบสนองภายในระบบ



Data-flow models

ใน Data-flow model นั้นมีการใช้เครื่องมือที่เรียกว่า Data-flow diagram เพื่อแสดงการไหลของข้อมูลภายในระบบตั้งแต่ต้นจนจบ ทั้งนี้ผู้ใช้ที่ไม่มีความรู้เรื่องคอมพิวเตอร์เลยก็สามารถจะเข้าใจและสามารถตรวจสอบความถูกต้องของระบบที่กลังวิเคราะห์อยู่ได้
Data flow diagrams เรียกโดยย่อว่า DFD จะมองที่ฟังก์ชั่นการทำงานเป็นหลัก (Functional perspective) และพิจารณาการไหลของข้อมูลไปในแต่ละฟังก์ชั่น ในกรณีที่ระบบมีความซับซ้อนมากและมีระบบย่อยหลายระบบ DFD ก็จะแสดงการไหลของข้อมูลระหว่างระบบย่อยก็ได้ ซึ่ง DFD สามารถจะทำได้ในหลายๆ level เช่น Level 1 แสดงการไหลของข้อมูลระหว่างระบบ Level 2 ก็ขยายรายละเอียดและเจาะจงไปในแต่ละระบบย่อย เป็นต้น



Data Models

ในการพัฒนาซอฟต์แวร์ขนาดใหญ่นั้นจะมีข่อมูลจำนวนมากและมีขนาดใหญ่ จำเป็นที่จะ
ต้องมีระบบฐานข้อมูล (Database) มารองรับ ซึ่งจะใช้เทคนิคที่เรียกว่า ERA modeling (Entity-Relation-Attribute) 

 Attribute หมายถึงชื่อ Field เช่น C-date หมายถึงวันที่สร้าง (Create date) หรือ M-date หมายถึงวันที่มีการแก้ไข (Modification date) เป็นต้น
Entity หมายถึง แฟ้มข้อมูลหรือที่เก็บข้อมูล เช่น Design หมายถึงรายละเอียดผู้พัฒนาซอฟต์แวร์ ซึ่งในระบบนี้ประกอบด้วย Node Link และ Label เป็นต้น 



Inheritance models

สิ่งที่เรียกได้ว่าเป็นจุดเด่นของรูปแบบ Object oriented คือ ลำดับชั้นของวัตถุ (Object hierarchy) และการถ่ายทอดคุณสมบัติ (Inheritance)

Multiple inheritance

นอกจาก Object จะสามารถถ่ายทอดคุณสมบัติจาก Parent object สู่ Child object ได้แล้ว Object ยังสามารถถ่ายทอดคุณสมบัติข้ามไปยัง Object อื่นๆได้ด้วยซึ่งเรียกว่า Multiple inheritance ดังรูป


Object behavior modeling

เพื่อที่จะให้เห็นพฤติกรรมของ Object ในภาษา UML จะใช้ Behavior modeling ในการแสดงขั้นตอน หรือ กระบวนการ ตั้งแต่ต้นจนจบ เพื่อติดตามการทำงานของแต่ละ Object ดังรูปแสดงพฤติกรรมของการสั่งสื่ออิเลคทรอนิกส์





สรุป

การจัดทำ System model ของระบบเป็นเครื่องมือที่ช่วยนักวิเคราะห์ระบบให้เข้าใจหน้าที่การทำงานของระบบ และใช้เป็นสื่อกลางเพื่อสื่อสารกับลูกค้า ในมุมมองจากภายนอก (External perspective) มุมมองด้านพฤติกรรม (Behavioural perspective) มุมมองด้านโครงสร้างของข้อมูล (Structural perspective) รวมถึงสถาปัตยกรรมของข้อมูล แต่อย่างไรก็ตามการทำ System model ก็ยังคงมีขีดจำกัดอยู่ เช่น ใช้ไม่ได้กับความต้องการแบบ non-function หรือไม่มีรายละเอียดของแต่ละขั้นตอนที่ชัดเจนเพียงพอ นอกจากนี้ยังทำให้เกิดเอกสารอย่างมากมายเกินความจำเป็น ในบางกรณีซับซ้อนและยากที่ผู้ใช้จะสามารถเข้าใจได้

No comments:

Post a Comment