แบบจำลองกระบวนการซอฟต์แวร์ Software Process Model
Software Process Model Softwae Process Model คือ แบบจำลองกระบวนการพัฒนาซอฟต์แวร์ แบ่งเป็น 4 ประเภท ได้แก่ Linear Model Iterative Model Incremental Model Evolutionary Model
The Linear Model หรือ Classic Life Cycle , Waterfall Model จาก Roger s. Pressman . Software Engineering a Practitioner’s Approach
Waterfall Model
Waterfall Model
คุณลักษณะของ Waterfall Model เป็น Seriesของขั้นตอนการทำงาน คล้ายสายงานการผลิต (Product Line) แต่ละขั้น หน้าที่และProduct ถูกกำหนดอย่างชัดเจน Product ส่วนใหญ่เป็นเอกสาร (Document) Productที่ผลิตในแต่ละขั้นจะเป็นพื้นฐานสำหรับงานขั้นต่อไป สามารถตรวจสอบความถูกต้องของงานในแต่ละขั้นได้
ข้อดีของ Waterfall Model แบ่งงานยากให้เป็นงานที่เล็ก ง่ายต่อการจัดการ มีการกำหนดProductที่ต้องส่งมอบในแต่ละงาน อย่างชัดเจน
ข้อจำกัดของ Waterfall Model ถ้า ค้นพบข้อผิดพลาดของขั้นที่เสร็จสิ้นแล้ว ไม่สามารถแก้ไขได้ การแก้ไขจำเป็นต้องเริ่มรอบ (Iteration) ใหม่ ระหว่างการทำCoding เจอข้อผิดพลาดในงานออกแบบ ในความเป็นจริง หลังการทำงานในแต่ละขั้นควรสามารถย้อนไปแก้ไขความผิดพลาดในขั้นใดใดก็ได้ก่อนหน้า ดังนั้นในทางปฏิบัติ ขั้นตอนการทำงานใน Waterfall จึงไม่เป็นเชิงเส้น (Linear) ข้อเสียหลักคือ ลูกค้าเห็นและทดลองใช้Software ก็ต่อเมื่อถึงขั้นตอนสุดท้าย หากมีบางอย่างที่ไม่ตรงกับความต้องการของลูกค้า การแก้ไขยาก แพง เสียเวลา
Waterfall Model Requirement Analysis V & V Design V & V Implementation Testing V & V Maintenance V & V
WHAT ????? V & V
Verification การตรวจสอบว่า ระบบทำงานตามที่กำหนดไว้หรือไม่ ? Are we building the system right ? Boehm
Are we building the right system ? Validation การตรวจสอบว่า ระบบสามารถทำงานตามความต้องการของผู้ใช้หรือไม่ ? Are we building the right system ? Boehm
Prototyping Model วิธีการหนึ่งที่ประกันว่าลูกค้าจะได้ในสิ่งที่ต้องการ และอย่างพึงพอใจ Prototype คือระบบที่สมบูรณ์หรือเป็นส่วนหนึ่งของระบบที่ส่งมอบแก่ลูกค้าได้ทดลองใช้ เพื่อให้ลูกค้าติชมตั้งแต่เนิ่นๆ ลูกค้าบอกความพอใจหรือบอกจุดที่ต้องแก้ไข Analyst และ Designer สามารถแสดงคุณสมบัติของระบบแก่ลูกค้าได้ ช่วยลูกค้ารู้ความต้องการที่แท้จริง
Prototyping Model
Prototyping Model
Prototyping Model
Specification Development Validation Initial Version Outline Description Intermediate Versions Final Version
หลักเกณฑ์การทำ Prototype Prototype มีเฉพาะ Features ที่สำคัญของระบบ (ละเลยเรื่องNetwork connection, Error Handling) Prototype ต่างกับ ระบบจริง ที่ Performance และ ปริมาณของข้อมูลที่ใช้ ต้นทุนการทำ Prototype ต้องถูก การทำ Prototype หนึ่งครั้งต้องใช้เวลาน้อย
Prototyping Model แบ่งเป็น 2 ตระกูลขึ้นอยู่กับการนำPrototypeไปใช้ Throwaway (ดอกไม้ริมทาง) เป็นต้นแบบสำหรับการสร้างระบบจริง การImplementระบบจริงอาจต่างจากImplementationของPrototype Evolutionary (ปั้นมากับมือ) ค่อยๆ ขยายขีดความสามารถของ Prototype จนเป็นระบบที่สมบูรณ์ที่ส่งมอบ วิธีการImplementของระบบจริงกับPrototypeเหมือนกัน
หลักเกณฑ์การทำ Throwaway Prototype (ดอกไม้ริมทาง) จุดหมายการทำ = Specification ที่ชัดเจน เริ่มสร้าง Prototype จากความต้องการที่ไม่ชัดเจน ค่อยๆ เพิ่มความต้องการเข้าไป Prototypeอาจจะ implement ความต้องการที่ชัดเจนอยู่แล้วก็ได้ ตัวอย่าง เขียน Functions ต่างๆที่สำคัญด้วย Lisp เมื่อได้Prototypeสุดท้าย Implement ระบบจริง ด้วย C++
หลักเกณฑ์การทำ Evolutionary Prototype (ปั้นมากับมือ) จุดหมายการทำ = ระบบที่สมบูรณ์ ส่งมอบได้ เริ่มสร้างPrototype จากความต้องการที่ชัดเจน ค่อยๆ เพิ่มความต้องการที่ไม่ชัดเจนเข้าไป ตัวอย่าง เขียน Features ต่างๆที่สำคัญ เมื่อลูกค้าตรวจสอบว่าถูก จึงเพิ่ม Featuresจนได้ระบบสุดท้าย
ข้อดีอื่นๆของPrototype ใช้ Train การใช้Software แก่ผู้ใช้พร้อมกับงาน Development ใช้แสดงความก้าวหน้า และความสำเร็จแก่ Project Manager
ข้อเสียของPrototyping Model การทำPrototypeจะต้องมีบุคลากรที่มีความสามารถด้าน Developmentสูงเพื่อพัฒนา Prototype ได้เร็ว การเปลี่ยนแปลงหรือการเพิ่มRequirementsเพื่อสร้างPrototypeหลายVersionทำให้ได้Software Structure ที่ไม่ดี การผลิตDocumentสำหรับ Prototype ในแต่ละVersion จะเป็นการสิ้นเปลืองงบประมาณ
ข้อแนะนำการใช้Prototyping Model เป็นที่ยอมรับว่าการสร้างSoftwareโดยใช้Prototype จะมีประสิทธิภาพดีกว่าการใช้ Waterfall Modelอย่างเดียว แต่จากข้อเสียด้านบน แนะนำให้ใช้Prototypingเพื่อวิเคราะห์หาRequirementsที่ชัดเจนของลูกค้าและค่อยพัฒนาSoftwareตามขั้นตอนในWaterfall Model
เครื่องมือสร้างPrototype Formal, Mathematical language: LOTOS ทำ Animationได้ แต่ขาด Use Interface Prototype Very High-Level Languages: C++, Java โดยเฉพาะ Smalltalk Logic Programming: Prolog Fourth-Generation Language (4GL): คล้ายdatabase query language เช่น SQL ภาษา Script ทั้งหลาย Tcl/Tk, JavaScript Visual Basic: พัฒนาUIด้วยวิธี Drag and Drop
Evolutionary or Spiral Model Customer Communication Planning Risk Analysis Engineering Construction and Release Customer Evaluation Roger s. Pressman
Evolutionary or Spiral Model
Evolutionary or Spiral Model
Evolutionary or Spiral Model
The Spiral Model พัฒนาโดย Boehm ในค.ศ 1988 แบบจำลองบันไดเวียนเป็นแบบจำลองที่รวมกระบวนการทำซ้ำของการสร้างต้นแบบ เข้ากับ Linear sequential model โดยมีการพัฒนาอย่างรวดเร็ว
The Spiral Model แบบจำลองบันไดเวียน แบ่งออกได้เป็นส่วนย่อยๆ โดยปกติจะแบ่งเป็น 3 ส่วน หรือ 6 ส่วนงานเช่น การติดต่อสื่อสารกันระหว่างผู้ใช้ และผู้พัฒนาระบบ การวางแผน การวิเคราะห์ความเสี่ยง วิศวกรรม การสร้างและนำไปใช้ การประเมินผลจากผู้ใช้
The Spiral Model (cont.) แต่ละรอบของการทำซ้ำ วิเคราะห์ความเสี่ยง พัฒนาต้นแบบสำหรับตรวจสอบความเป็นไปได้และความต้องการ เมื่อพบความเสี่ยงผู้จัดการโครงการจะต้องตัดสินใจทีจะกำจัดหรือลดความเสี่ยง
The Spiral Model (cont.) ปัญหาของการใช้แบบจำลองบันไดเวียน ในการพัฒนาซอฟต์แวร์ คือการโน้มน้าวให้ผู้ใช้ระบบเห็นชอบกับวิธีการที่เป็นกระบวนทำซ้ำแบบมีวิวัฒนาการ ความสำเร็จของการใช้ แบบจำลองบันไดเวียน ผู้พัฒนาจะต้องมีความเชี่ยวชาญในด้านการประเมินผลความเสี่ยง
Evolutionary or Spiral Model เป็น model ที่ใช้ความเสี่ยงเป็นเครื่องตัดสินใจว่าจะกระทำอะไรต่อไป (risk-driven) ขั้นตอนในแต่ละรอบ วิเคราะห์เป้าหมาย แนวทางเลือกต่างๆ เงื่อนไขต่างๆ วิเคราะห์ความเสี่ยง พยายามลดความเสี่ยงนั้น เช่น ทำ Prototype เพื่อทดสอบ พัฒนา product นำ product ให้ลูกค้าทดสอบ