วันเสาร์ที่ 29 กันยายน พ.ศ. 2555

สรุปบทเรียนที่ 7 System Models


บทที่ 7 System Models 
การสร้างต้นแบบจำลองของ Software

เป็นขั้นตอนการนำความต้องการที่เก็บรวบรวมได้ มาสร้างเป็นแบบจำลอง (Model)

System Modeling การสร้างตัวต้นแบบ
    การสร้างตัวต้นแบบมีวัตถุประสงค์
         1. เพื่อให้เข้าใจว่าหน้าที่หลักของระบบทำงานอย่างไร ผู้ที่ควรจะต้องเข้าใจถึงกระบวนการคือ SA  
             เจ้าของระบบ User Programmer
         2. เพื่อให้สามารถอธิบายได้ว่าระบบเก่าและระบบใหม่มีความแตกต่างกันอย่างไร โดยแบ่งออกเป็น 
             3 มุมมองได้แก่
       1. มุมมองภาพรวมของระบบ
       2. มุมมองพฤติกรรมของระบบ
       3. มุมมองโครงสร้างของระบบ 

Model Types ประเภทของตัวต้นแบบ

                 1. Date processing model แบบจำลองแสดงการประมวลผลข้อมูล จะอธิบายพฤติกรรม       

                     ของระบบ

                 2. Composition model แบบจำลองอธิบายองค์ประกอบของ Entities

                 3. Architectural model อธิบายสถาปัตยกรรมของระบบ โดยจะแสดงให้เห็นถึงระบบย่อยภายใน

                     ด้วย

                 4. Classification model อธิบายการจัดแบ่งประเภทของ Entities

                 5. Stimulus/response model อธิบายตัวกระตุ่นหรือสิ่งกระตุ้น



Context Model
            แสดงขอบเขตของระบบ ว่ามีการเชื่อมโยงกับระบบอื่นๆ อย่างไร context models จะเน้นขอบเขตของระบบ ไม่เน้นรายระเอียดของระบบ
     ตัวอย่าง Context model ของระบบ ATM














            

               จาก Context Model ของระบบ ATM สามารถอธิบายได้ดังนี้ Model นี้ใช้แสดงขอบเขตการทำงานของระบบ ATM ซึ่งมีแต่ส่วนตรงกลางเท่านั้นที่เป็น Context ซึ่งระบบนี้มีขอบเขตการทำงานที่เชื่อมต่อกับระบบย่อยอื่นๆ อีก 6 ระบบดังรูป


Behavioral models แบบจำลองพฤติกรรม แบ่งเป็น 2 รูปแบบ
1. Data processing เน้น DFD เน้นแสดงกระบวนการทำงานของระบบ
 ตัวอย่าง Order Processing DFD มีทั้งหมด 5 ขั้นตอน สามารถอธิบายได้ดังรูป

          2. State machine models เน้นสถานการณ์เปลี่ยนแปลงสถานะของอุปกรณ์ทางด้านวิศวกรรมที่
              สร้างขึ้น
             ตัวอย่าง Microwave oven model มีทั้งหมด 8 State สามารถอธิบายได้ดังรูป







Object behavior modeling
      ใช้อธิบายพฤติกรรมของระบบโดยใช้แบบจำลอง Sequence diagram หรือ collaboration diagram
             ตัวอย่าง Sequence Diagram ของระบบห้องสมุด สามารถอธิบายได้ดังรูป

สรุปบทเรียนที่ 12 Software Engineering Test


สรุปบทเรียนที่ 12
Software Engineering Test

เป็นกระบวนการที่เกิดขึ้นหลังจากการพัฒนา Software เสร็จเรียบร้อยแล้ว เพื่อตรวจสอบความผิดพลาดในส่วนต่างๆ ที่เกิดขึ้น แล้วทำการแก้ไข นอกจากนี้เพื่อประเมินคุณภาพและปรับปรุงคุณภาพของ Software
คำศัพท์ในการแก้ไขข้อผิดพลาด
1.  Error การกระทำผิด คือค่าจริงที่ได้จากการทำงานที่ไม่ถูกต้อง
2. Fault ความผิดพลาดหรือข้อบกพร่อง คือกระบวนการทำงานของระบบประมวลผลที่ผิดปกติ
3. Failure ล้มเหลว คือ SW ไม่สามารถทำงานหรือรันโปรแกรมต่อไปได้ รวมถึงไม่สามารถแสดงข้อมูลแจ้งเตือนข้อผิดพลาดที่เกิดขึ้นได้

การทดสอบแบบกล่องดำ Black box testing
เป็นการทดสอบการทำงานของ SW ในเชิงพฤติกรรม 8nv การทดสอบผลของการทำงานของ SW ในแต่ละหน้าที่ ตามข้อกำหนดความต้องการ ทดสอบโดยมองให้เห็นกระบวนการทำงาน สนใจเฉพาะผลลัพธ์ที่ได้เท่านั้น

การทดสอบแบบกล่องขาว White box testing
 เป็นการทดสอบการทำงานของระบบโดยมองลึกลงไปถึง Code คำสั่งต่างๆ ที่อยู่ภายในระบบ
- ทดสอบทุกเส้นทางในกระบวนการ จะต้องสามารถทำงานได้อย่างถูกต้อง
- ทดสอบการทำงานวนซ้ำ Loop
- ทดสอบกระบวนการตัดสินใจในทุกตรรกะ
- ทดสอบโครงสร้างข้อมูลภายในระบบ
Integration testing มี 2 วิธี
1. Top Down Approach ทดสอบการทำงานของระบบแบบบนลงล่าง เป็นการทำสอบการทดงานในฟังก์ชั่นใหญ่ด้านบนก่อนแล้วค่อยๆ ทดสอบฟังก์ชั่นย่อยต่างๆ ที่อยู่ภายใน
2.  Button up Approach ทดสอบการทำงานของระบบแบบล่างขึ้นบน เป็นการทดสอบการทำงานในฟังก์ชั่นการทำงานย่อยภายในฟังก์ชั่นใหญ่ก่อนแล้วค่อยนำฟังก์ชั่นย่อยมาทดสอบรวมกับฟังก์ชั่นใหญ่ด้านบน

ตัวอย่างการทดสอบแบบกล่องขาว White box testing
โดยการทดสอบแบบกล่องขาวมีสูตรการทดสอบดังนี้ V(G) = e-n+2
V= จำนวนเส้นทาง (Path)
e (edges) = จำนวนเส้นเชื่อมของแต่ละโนด
n (node) = จำนวนโนด
                โจทย์
คำอธิบาย: D:\iProject\CS.468 Software Engineering\ตอบคำถามและสรปบทเรียน\img\exam testing white box.jpg
               
                                จากสูตร                 V(G) = e-n+2
                                ตอบ                        V(G) = 10 – 7 + 2
                                                Path 1 = A, B, E, F, G
                                                Path 2 = A, D, E, F, G
                                                Path 3 = A, D, F, G
                                                Path 4 = A, B, C, G
                                                Path 5 = A, B, C, B, C, G