โมเดลสำหรับการพัฒนาซอฟแวร์ แบ่งได้เป็น2แบบ
1. การพัฒนาซอฟแวร์แบบไม่เป็นระบบ
2. การพัฒนาซอฟแวร์แบบเป็นระบบ
การพัฒนาซอฟแวร์แบบไม่เป็นระบบ
เป็นการพัฒนาซอฟแวร์แบบไม่มีการวางแผน ไม่มีการจัดการ ไม่มีการทำเอกสาร เหมาะกับการพัฒนาซอฟแวร์ขนาดเล็กขึ้นใช้งานเอง
วิธีการพัฒนาซอฟแวร์แบบนี้คือ เมื่อนึกอะไรได้ก็ค่อยๆเขียนโปรแกรม แล้วทำสอบการทำงาน ถ้าโปรแกรมไม่สามารถทำงานตามที่คิด ก็แก้ไขเขียนใหม่ เรียกการพัฒนาแบบนี้ว่า Coding & Debug
ปัจจุบัน ซอฟแวร์มีขนาดใหญ่ขึ้น ต้องใช้คนหลายคนช่วยกันพัฒนา ซึ่งมีผู้เสนอเทคนิคหรือทฤษฏีในการพัฒนาซอฟแวร์หลายวิธี เพื่อให้ได้ซอฟแวร์ที่มีประสิทธิภาพและคุณภาพ
การพัฒนาซอฟแวร์อย่างเป็นระบบ
จุดประสงค์ของการพัฒนาซอฟแวร์อย่างเป็นระบบ คือกระบวนการที่ใช้ ต้องอธิบายในรูปแบบของโมเดลได้โดเมลในการพัฒนาซอฟแวร์ ที่นิยมใช้กันได้แก่
-Water Fall Model
- Spiral Model
- Prototyping Model
Water Fall Model
เป็นโมเดลพื้นฐานในการพัฒนาซอฟแวร์ โมเดลนี้เหมาะกับการพัฒนาซอฟแวร์ขนาดใหญ่ ไม่เหมาะกับการพัฒนาซอฟแวร์ขนาดเล็ก หรือระบบสารสนเทศที่มีการใช้เทคโนโลยีใหม่โมเดลนี้ แบ่งกระบวนการพัฒนาซอฟแวร์ออกเป็นกระบวนการต่างๆ แล้วทำการพัฒนาทีละกระบวนการตามลำดับ
รูปแสดง Water Fall Model
กระบวนการพัฒนาตาม Water Fall Model มี 5 กระบวนการ ได้แก่
1. นิยามความต้องการ
2. ออกแบบภายนอก
3. ออกแบบภายใน
4. เขียนโปรแกรม
5. ทดสอบ
รายละเอียดแต่ละกระบวนการใน Water Fall Model
1. นิยามความต้องการ (Requirement Definition)
เป็นการหาคำตอบว่า ซอฟแวร์ที่ต้องการพัฒนา ต้องตอบสนองความต้องการอะไรบ้างในขั้นตอนนี้ อาจเรียกว่า การวิเคราะห์ การวางแผนขั้นพื้นฐาน การกำหนดเงื่อนไขกระบวนการในขั้นตอนนี้ ต้องการทราบ ปัญหาในการทำงานหรือปัญหาในทางธุรกิจ แล้วนำมากำหนดวัตถุประสงค์หรือเป้าหมายที่วัดได้งานหลักในขั้นตอนนี้คือ การวิเคราะห์วิธีทำงาน และการวิเคราะห์ข้อมูลที่ได้จากการทำงาน ในทางปฏิบัติจะแสดงโดยใช้ Data Flow Diagram
2. การออกแบบภายนอก (External Design)
กระบวนการนี้เป็นการออกแบบส่วนที่ผู้ใช้งาน (ลูกค้า) มองเห็น อาจเรียกว่า การออกแบบภาพรวม สิ่งที่ต้องพิจารณาคือ เมื่อนำระบบใหม่มาใช้ วิธีการทำงานใหม่ควรเป็นอย่างไร ต้องออกแบบหน้าจอ หรือรายงานที่ผู้ใช้ ใช้งาน เป็นการออกแบบอินพุตเอาท์พุต (Input-Output)
3. การออกแบบภายใน (Internal Design)
กระบวนการนี้เป็นการออกแบบภายในระบบ เพื่อกำหนดว่าจะต้องทำอย่างไรให้ระบบมีฟังก์ชันการทำงานที่ต้องการ อาจเรียกขั้นตอนนี้ว่าการออกแบบอย่างละเอียด เพราะต้องกำหนดฟังก์ชัน การทำงานของโปรแกรมอย่างละเอียด ออกแบบลอจิกในการประมวลผล โครงสร้างข้อมูล แบ่งย่อยซับซิสเต็มออกเป็นหน่วยย่อยที่เรียกว่า โมดูลการออกแบบภายนอก เป็นการออกแบบฟังก์ชันการทำงานให้ลูกค้า ในกระบวนการนี้ ต้องเขียนแผนการทดสอบโปรแกรมที่พัฒนา รวมทั้งวิธีการทดสอบ และกำหนดการ
4. เขียนโปรแกรม (Programming) หรือเรียกว่า โค้ดดิ้ง (Coding) ต้องกำหนดมาตรฐานในการโค้ดดิ้ง เช่น การตั้งชื่อตัวแปร การเขียนคอมเมนต์อธิบายโปรแกรมเขียนสเปกแต่ละโมดูล ตามสเปกการทำงานของฟังก์ชันในกระบวนการนี้อาจแบ่งออกเป็น 2 ขั้นตอนย่อยคือ การออกแบบโปรแกรม และ การโค้ดดิ้งและทดสอบโมดูล
5. การทดสอบ (Testing) กระบวนการนี้รวม การทดสอบอินทิเกรด การทดสอบระบบ และการทดลองใช้งานตัวอย่าง การทดสอบเช่น การทดสอบระบบร่วมกับผู้ใช้งาน ว่าระบบสามารถทำงานตามสเปกที่ต้องการหรือไม่ นอกจากนี้ยังรวมถึง การอบรมผู้ใช้ ติดตั้งระบบใหม่ การโอนย้ายข้อมูลจากระบบเก่ามายังระบบใหม่
ความสัมพันธ์แบบโค้งรูปตัววี
ขั้นตอนต่างใน Water Fall Model มีความสัมพันธ์กันแบบโค้งรูปตัววี (V-Curve)
ครึ่งแรกของการพัฒนาซอฟแวร์ คือ ตั้งแต่ การนิยามความต้องการ จนถึง การเขียนโปรแกรม เป็นการทำงานที่ค่อยๆลงรายละเอียดเพิ่มขึ้นจนสามารถเขียนเป็นโปรแกรมออกมาได้
ครึ่งหลังของการพัฒนาซอฟแวร์ คือ การทดสอบโมดูล การทดสอบการอินทิเกรดโมดูล การทดสอบระบบ การทดลองใช้งาน
เรียกกระบวนการ นิยามความต้องการ และการออกแบบภายนอก รวมกันว่า กระบวนการต้นน้ำ(Upper Process) และเรียกกระบวนการที่เหลือว่า กระบวนการปลายน้ำ (Lower Process)
ข้อดี ข้อเสียของการพัฒนาซอฟแวร์โดยใช้
Water Fall Model
ข้อดี
water fall model มีการแบ่งกระบวนการเป็น การนิยามความต้องการ การออกแบบภายนอก การออกแบบภายใน การเขียนโปรแกรม และการทดสอบ แต่ละกระบวนการถูกตัดขาดออกจากกัน ทำให้ง่ายในการควบคุมความคืบหน้าในการพัฒนา พัฒนาระบบได้ตรงตามเวลาที่กำหนด
ข้อเสีย
1. ต้องรอให้การออกแบทั้งหมดเสร็จสมบูรณ์ก่อน จึงจะเริ่มเขียนโปรแกรมได้
2. ต้องจัดทำเอกสารมาก ทำให้สิ้นเปลืองเวลา
3. ผู้ใช้งานต้องรอให้ระบบงานทั้งหมดเสร็จก่อน จึงจะใช้งานได้ ไม่สามารถนำระบบบางส่วนมาใช้งานก่อน
4.เครื่องมือที่ช่วยในการพัฒนาซอฟแวร์ในปัจุบัน มักรวมหลายขั้นตอนเข้าด้วยกัน จึงไม่เหมาะกับการพัฒนาแบบ water fall model
Growth Model
โมเดลนี้ จะแบ่งโครงการพัฒนาซอฟแวร์ออกเป็นโครงการย่อยจำนวนหนึ่งก่อน จากนั้นจึงพัฒนาซอฟแวร์เล็กๆขึ้นมาใช้สำหรับโครงการย่อยก่อน แล้วค่อยๆพัฒนาซอฟแวร์เล็กให้เป็นซอฟแวร์ขนาดใหญ่สำหรับทั้งโครงการ และกว่าจะได้ซอฟแวร์ขนาดใหญ่ต้องมีการพัฒนาซอฟแวร์ขนาดเล็กซ้ำๆกันหลายรอบ
โมเดลนี้ มีความยืดหยุ่น เพราะเริ่มต้นจากซอฟแวร์เล็กๆ ที่สามารถทำได้ก่อน แล้วชยายให้ใหญ่ขึ้น
ข้อเสีย คือ ยากในการบริหารโครงการโดยรวม ทั้งแง่ค่าใช้จ่ายและระยะเวลาที่ตั้งไว้
Prototyping Model
โมเดลนี้ เป็นการทำต้นแบบ (Prototype) แบบง่ายๆให้ดูในขั้นตอนนิยามความต้องการ จากนั้นจึงดูผลตอบรับจากผู้ใช้ แล้วแก้ต้นแบบซ้ำแกหลายรอบ จนรู้ความต้องการลูกค้าได้
โมเดลนี้ ถือเป็นโมเดลที่ปรับปรุงเพิ่มเติมจาก Water Fall Model โดยการนำต้นแบบมาใช้ในกระบวนการต้นน้ำ
เครื่องมือที่ช่วยสร้างต้นแบบได้ง่ายและรวดเร็ว คือ Rapid Application Development Tool (RAD Tool)
Spiral Model
โมเดลนี้ จะแบ่งโครงการซอฟแวร์ เป็นโครงการย่อย จากนั้นจึงใช้ Water Fall Model พัฒนาโครงการย่อย แล้วประเมินผล จากนั้นจึงทำเช่นนี้ซ้ำแล้วซ้ำอีก เพื่อให้ได้ซอฟแวร์ที่รองรับโครงการทั้งหมด
โมเดลนี้เปรียบเสมือนการนำ Growth Model ผสมกับ Water Fall Model
แต่ละรอบการทำงาน จะเป็นการพัฒนาโดยใช้ Water Fall Model ซอฟแวร์จะค่อยๆโตขึ้นเรื่อยๆ
การเลือกโมเดลที่ใช้ในการพัฒนา ต้องคำนึงถีง
ขนาดของซอฟแวร์
โครงสร้างของสมาชิกในโครงการ
ความรู้และประสบการณ์ของสมาชิกในโครงการ
ความชัดเจนเกี่ยวกับความต้องการ
ปริมาณของระบบการทำงานและความเร็วในการเปลี่ยนแปลง
ระยะเวลาในการพัฒนาและค่าใช้จ่าย
ผลกระทบจากความล่าช้าในการพัฒนา
เครื่องมือที่ใช้ในการพัฒนา
ขั้นตอนในการพัฒนา Software ในทางปฏิบัติจริง
วิธีการในการพัฒนา Software จะมีรูปแบบ (Model) ในการพัฒนาสองแบบใหญ่ ๆ คือ Waterfall model และ Iterative model. 1.Waterfall model
เหมาะสมสำหรับการพัฒนาโปรแกรมสำเร็จรูปที่เป็นลักษณะ Mass product กล่าวคือผลิตออกมาทีละเยอะ ๆ เช่น MS Windows, MS Office ขั้นตอนต่าง ๆ มีรายละเอียดดังนี้
1.1 Requirement เป็นขั้นตอนในการเก็บความต้องการของผู้ใช้โปรแกรมว่า ผู้ใช้โปรแกรมต้องการโปรแกรมอะไร ทำงานอย่างไร
1.2 Analysis and design เป็นขั้นตอนในการเอาความต้องการของผู้ใช้มาวิเคราะห์ถึงความเป็นไปได้และความเหมาะสม เลือกเครื่องมือที่จะทำการพัฒนาโปรแกรม แล้วทำการออกแบบ (Design) โปรแกรม
1.3 Coding เป็นขั้นตอนของการเขียนโปรแกรมตามที่เราออกแบบมา
1.4 Testing เป็นขั้นตอนในการเอาโปรแกรมที่เขียนเสร็จแล้วมาทำการทดสอบหาข้อผิดพลาด
1.5 Product เมื่อทำการทดสอบจนแน่ใจแล้วว่าไม่มีข้อผิดพลาดก็นำโปรแกรมไปใช้งานจริง
1.6 Maintenance เป็นขั้นตอนในการดูแลผู้ใช้โปรแกรมว่ามีปัญหาในการใช้งานหรือไม่อย่างไร พร้อมให้คำปรึกษาและรับฟังข้อคิดเห็นเพื่อจะนำมาพัฒนาโปรแกรมในรุ่นถัดไป
2. Iterative model เนื่องจาก Waterfall model ขาดการรับฟังข้อคิดเห็นจากผู้ใช้โปรแกรม (Feedback) เพื่อที่จะนำมาปรับปรุงโปแกรมโดยทันที ทำให้โปรแกรมที่ออกมาไม่ตรงกับความต้องการของผู้ใช้โปรแกรมอย่างแท้จริง จึงทำให้เกิด Model ในการพัฒนาโปรแกรมแบบใหม่ที่เรียก Iterative model ซึ่งมีรายละเอียดดังนี้
2.1 Initial requirement and analysis เป็นการเก็บความต้องการของผู้ใช้โปรแกรมครั้งแรกแล้วนำมาวิเคราะห์ พร้อมทั้งหาเครื่องมือที่จะนำมาพัฒนาโปรแกรม
2.2 Design ทำการออกแบบโปรแกรมตามที่ได้วิเคราะห์ไว้
2.3 Coding ทำการเขียนโปรแกรมตามที่ได้ออกแบบไว้
2.4 Testing ทำการหาข้อผิดพลาดของโปรแกรม ซึ่งผู้ที่จะทำการตรวจสอบโปรแกรมจะมีทั้งการตรวจสอบภายในทีมเขียนโปรแกรมและการตรวจสอบจากผู้ใช้โปรแกรม
2.5 More requirement and analysis ถ้าผู้ใช้โปรแกรมตรวจสอบโปรแกรมแล้วยังไม่เป็นที่น่าพอใจหรือยังพบข้อผิดพลาดของโปรแกรม ให้จะนำเอาข้อเสนอเหล่านั้นมาทำการแก้ไขเพิ่มเติม โดยทำการ Design ใหม่อีกรอบหนึ่ง
2.6 Product ถ้าการทดสอบเป็นที่น่าพอใจแล้วจึงเริ่มใช้ผลิตภัณฑ์กับงานระบบจริง
2.7 Maintenance ถึงกระนั้นผลิตภัณฑ์ที่ใช้งานจริงย่อมมีปัญหาเกิดขึ้นเสมอ ผู้ใช้งานอาจมีความต้องการเพิ่ม จึงนำเอาความต้องการเหล่านั้นเข้าสู่ขั้นตอนการพัฒนาโปรแกรมอีกครั้งในขั้นตอนของ More requirement and analysis
นอกจากนั้นแล้วยังมีการพัฒนา Model สำหรับการพัฒนา Software อีกหลายแบบเช่น Spiral model เป็นต้น
อ้างอิงจาก
https://sites.google.com/site/nityaplikaml/home/model-kar-phathna-sxftwaer
อ้างอิงจาก
https://sites.google.com/site/nityaplikaml/home/model-kar-phathna-sxftwaer
ไม่มีความคิดเห็น:
แสดงความคิดเห็น