Software Process Models SCC - Suthida Chaichomchuen std@kmitnb.ac.th
Software process models The waterfall model Evolutionary development Formal systems development Reuse-based development
Waterfall model เป็นวิธีการที่ได้รับการพัฒนาขึ้นมาตั้งแต่แรกเริ่มที่มีกระบวนการพัฒนาซอฟต์แวร์ แบ่งกระบวนการทำงานออกเป็นขั้นตอนต่าง ๆ ขั้นตอนในแต่ละช่วงจะสืบเนื่องกันไปจากขั้นหนึ่งสู่อีกขั้นหนึ่งตามลำดับเหมือนสายน้ำตก สามารถย้อนกลับไปปรับปรุงขั้นตอนก่อนหน้าได้ตามลำดับ แนวทางนี้ผู้ใช้จะเห็นระบบใหม่ก็ต่อเมื่อโครงการเสร็จสิ้น
Waterfall model
Waterfall model phases Requirements analysis and definition การวิเคราะห์และให้คำจำกัดความของระบบงาน System and software design ในการออกแบบระบบ ผู้ออกแบบต้องคำนึงถึงโครงสร้างของฮาร์ดแวร์และซอฟต์แวร์ที่จำเป็นต้องพัฒนา ในการออกแบบซอฟต์แวร์เป็นการกำหนดโครงสร้างหลักของการโปรแกรมที่จะพัฒนา
Waterfall model phases Implementation and unit testing การกำหนดสร้างและทดสอบหน่วยย่อย เป็นการแบ่งส่วนของซอฟต์แวร์ออกเป็นหน่วยย่อย ๆ ทำการตรวจสอบความถูกต้องหลังจากเขียนโปรแกรมเสร็จสิ้น
Waterfall model phases Integration and system testing การเชื่อมโยงและทดสอบทั้งระบบ ทำการตรวจสอบหลังจากนำโปรแกรมย่อยในแต่ละส่วนมารวมกัน Operation and maintenance การติดตั้งใช้งานและการบำรุงรักษา เป็นขั้นตอนที่ใช้เวลานานที่สุด ขั้นตอนในการแก้ไขข้อผิดพลาด การปรับแต่ง
Waterfall model problems อาจมีความไม่สมดุลเกิดขึ้นระหว่างการย้อนกลับไปทบทวนแก้ไขรายละเอียดในขั้นตอนต่าง ๆ กับการที่จะทำให้ได้ผลผลิตเสร็จสมบูรณ์ตรงตามความต้องการของผู้ใช้ระบบ และทันเวลาที่ผู้ใช้ต้องการ
Evolutionary development Exploratory development เป็นเทคนิคที่ผู้ออกแบบคำนึงถึงความเหมาะสมทำงานได้มากกว่าความสมบูรณ์ถูกต้อง เริ่มจากการกำหนดรายละเอียดเริ่มต้นของระบบจากนั้นจึงสร้างและทดลองใช้จนกว่าจะได้รูปแบบที่เหมาะสม
Evolutionary development Throw-away prototyping มีจุดมุ่งหมายที่จะค้นหารายละเอียดของระบบที่พึงประสงค์ หรือระบบต้นแบบ จากนั้นนำระบบต้นแบบมาทดลองประเมิน และปรับแต่งเป็นระบบต้นแบบในลำดับต่อมา จนกระทั่งใช้การได้ ทิ้งระบบต้นแบบสุดท้ายแล้วสร้างระบบงานจริงใหม่อีกครั้งเพื่อให้ได้ระบบงานที่ตรงตามความต้องการของผู้ใช้ระบบ
Evolutionary development
Evolutionary : problems ไม่สามารถมองเห็นกระบวนการในแต่ละขั้นได้อย่างชัดเจน ระบบที่ได้มามักจะมีโครงสร้างที่ไม่ดี ผู้พัฒนาต้องมีทักษะในการเขียนโปรแกรมอย่างมาก
Evolutionary : applicability โครงสร้างระบบงานที่มีการทดลองใช้อย่างสม่ำเสมอ ระบบงานขนาดเล็กหรือปานกลางที่มีโครงสร้างไม่ชัดเจน ระบบที่มีช่วงชีวิตการใช้งานสั้น ๆ
Formal systems development การเขียนรายละเอียดของระบบงานโดยใช้คำศัพท์ไวยากรณ์ ซึ่งกำหนดไว้อย่างเป็นทางการล่วงหน้า ใช้ภาษาที่จำเพาะรัดกุม ไม่กำกวม ซึ่งมักจะอยู่ในรูปของภาษาเชิงคณิตศาสตร์ เน้นเรื่องความถูกต้องในการสร้างระบบจากรายละเอียดของระบบที่ได้กำหนดไว้แล้ว
Formal systems development
Formal transformations
Formal systems : problems ขั้นตอนการดำเนินการเน้นความสำคัญที่ตัวผู้ออกแบบเพิ่มขึ้นตามลำดับ ในขณะที่ผู้ใช้มีความเกี่ยวข้องน้อยลง มีความยุ่งยาก ไม่คุ้มค่าแก่การลงทุน เหมาะสำหรับนักวิชาการที่ต้องการทำงานวิจัยกระบวนการออกแบบมากกว่าใช้งานในโลกทำงานจริง
Reuse-oriented development เป็นเทคนิคที่มีสมมติฐานว่า ระบบที่สร้างขึ้นมานี้ประกอบด้วยองค์ประกอบส่วนใหญ่ที่มีอยู่แล้ว กระบวนการออกแบบอยู่ที่การประสานองค์ประกอบต่าง ๆ เข้าด้วยกัน
Reuse-oriented development
Reuse-oriented : advantages ความเชื่อมั่นได้ของระบบเพิ่มขึ้น โอกาสเสี่ยงโดยรวมจะลดลง ผู้เชี่ยวชาญสามารถทำงานได้อย่างเต็มที่ มาตรฐานของระบบงานดีขึ้น ระยะเวลาการพัฒนาระบบงานลดลง
Boehm’s spiral model เป็นระบบวิเคราะห์ความเสี่ยง ใช้เพื่อประเมินความเสี่ยงในการจัดการในประเด็นต่าง ๆ เป็นระยะ ๆ อย่างสม่ำเสมอตลอดช่วงวงจรการทำงาน ความเสี่ยง คือ ข้อผิดพลาดที่อาจเกิดขึ้นได้ในการทำงาน
Spiral model of the software process
Spiral model sectors Objective setting การกำหนดจุดมุ่งหมาย กิจกรรม หรือผลงานที่ต้องการกระทำ เป็นการระบุโอกาสเสี่ยงของการจัดการโครงการโดยภาพรวม Risk assessment and reduction การประเมินโอกาสเสี่ยง โดยพิจารณาในแต่ละทางเลือก
Spiral model sectors Development and validation จากนั้นทำการเลือกระบบที่เหมาะสมที่สุดแล้วพัฒนาระบบนั้นขึ้นมา Planning ประเมินผลและวางแผนเตรียมการสำหรับดำเนินการในรอบถัดไป
Exercise Giving reasons for your answer based on the type of system being developed, suggest the most appropriate generic software process model which might be used as a basis for managing the development of the following systems:
Exercise A system to control anti-lock braking in car; A virtual reality system to support software maintenance; A university accounting system which is intended to replace an existing system; An interactive system, which allows railway passengers to find train times from terminals, installed in stations.