วันอาทิตย์ที่ 20 กรกฎาคม พ.ศ. 2551

กระบวนการพัฒนาซอฟต์แวร์2

1. วิเคราะห์ความเป็นไปได้
ปัญหาทุกอย่างในโลกนี้ ไม่ใช่จะเป็นปัญหาซึ่งเหมาะที่จะใช้คอมพิวเตอร์และซอฟต์-แวร์แก้ไขเสมอไป หรือถึงแม้จะใช้ได้ ก็อาจเสียค่าใช้จ่ายมากเกินไป หรือต้องใช้เวลานานมากดังนั้น ในขั้นตอนแรกจึงต้องมีการพิจารณาความเหมาะสมและความเป็นไปได้ในส่วนนี้ก่อน
2. วิเคราะห์โจทย์หรือความต้องการของผู้ใช้
โจทย์ปัญหาเป็นสาเหตุที่ทำให้ลักษณะของซอฟต์แวร์มีความหลากหลาย เพราะซอฟต์แวร์ถูกพัฒนาขึ้นมาเพื่อแก้โจทย์ปัญหาที่มีมากมายหลายรูปแบบ โจทย์ปัญหาอาจเป็นความต้องการของผู้ใช้ ที่ต้องการให้คอมพิวเตอร์ช่วยทำงานแทน หรืออาจเป็นโจทย์ปัญหาทางวิทยาศาสตร์ที่พยายามทำให้คอมพิวเตอร์สามารถคิดได้เหมือนมนุษย์ หรืออาจเป็นการควบคุมการทำงานของอุปกรณ์อิเล็กทรอนิกส์ต่างๆ ที่ควบคุมการสื่อสารของคอมพิวเตอร์บนเครือข่ายคอมพิวเตอร์ ฯลฯ เนื่องจากโจทย์ปัญหาดังกล่าวอาจจะเป็นปัญหาใหญ่ ดังนั้น จะต้องมีการวิเคราะห์และแยกย่อยปัญหา (Problem Decomposition)กำหนดขอบเขตปัญหาที่จะให้ซอฟต์แวร์แก้ไข (software scope) และต้องทำความเข้าใจให้ได้ว่าผู้ใช้ต้องการอะไร งานส่วนนี้จะเป็นประเด็นสำคัญในการวางแผนพัฒนาซอฟต์แวร์ รวมทั้งประเมินระยะเวลาและค่าใช้จ่ายด้วย
3. เขียนคุณลักษณะซอฟต์แวร์
คุณลักษณะซอฟต์แวร์ (Software Specifi-cation) เป็นข้อกำหนดลักษณะหน้าที่และวิธีการทำงานของซอฟต์แวร์ว่า ซอฟต์แวร์นี้ต้องทำอะไรบ้าง จึงจะสนองความต้องการของผู้ใช้ เช่นจะต้องใช้ข้อมูลอะไร จะจัดเก็บข้อมูลอะไรจะผลิตหรือประมวลผลข้อมูลอะไร ลักษณะของข้อมูลเป็นอย่างไร มีขอบเขตข้อจำกัดอะไร ฯลฯการกำหนดคุณลักษณะซอฟต์แวร์สามารถทำได้หลายวิธี เช่น - สอบถามผู้ใช้โดยตรงว่า ต้องการให้ซอฟต์แวร์ทำหน้าที่อะไรบ้าง การสอบถามต้องมีเทคนิคในการสื่อสารที่ดี โดยอาจจะมีการยกตัวอย่างสภาพการณ์ (scenario-based requirementanalysis) ในแนวว่า "ถ้า (สถานการณ์) เกิดขึ้นจะทำอย่างไร" เช่น ถ้าโจทย์คือการจัดการพัสดุ ของร้านค้า นักวิเคราะห์ระบบอาจถามว่า "ถ้าสินค้าที่สั่งซื้อไม่มาส่งตามกำหนด ทางร้านจะทราบได้เมื่อใด และจะดำเนินการอย่างไร" - ศึกษาวิธีการดำเนินงานตามปกติก่อนนำคอมพิวเตอร์มาใช้ และหาจุดอ่อนที่จะต้องนำซอฟต์แวร์เข้ามาใช้เพื่อเพิ่มประสิทธิภาพ - สำรวจความต้องการของตลาดว่า คนส่วนใหญ่ต้องการให้คอมพิวเตอร์ช่วยงานด้านใดในลักษณะใด และต้องการความบันเทิงจากคอมพิวเตอร์อย่างไร ฯลฯ - ศึกษาจากลักษณะของซอฟต์แวร์เก่าที่ทำงานด้านนี้อยู่แล้ว ฯลฯ
สรุปผลการวิเคราะห์ข้อกำหนดลักษณะของซอฟต์แวร์สามารถแบ่งได้เป็น ๓ รูปแบบ คือรูปแบบข้อมูล รูปแบบหน้าที่งาน และรูปแบบการทำงาน วิธีการนำเสนออาจแสดงเป็นแผนผังแบบต่างๆ เช่น แสดงด้วยแผนผังการไหลของข้อมูล (Data Flow Diagram) แสดงด้วยแผนผังความสัมพันธ์ของข้อมูล (Entity - RelationshipDiagram) ฯลฯ ส่วนศัพท์ว่าข้อมูลใดคืออะไร จะต้องอธิบายอยู่ในพจนานุกรมข้อมูล (Data Dictionary
4. ออกแบบซอฟต์แวร์
การออกแบบซอฟต์แวร์จะเริ่มเน้นด้านเทคนิค โดยรวมถึงการออกแบบโครงสร้างของซอฟต์แวร์ หน่วยต่างๆ ของซอฟต์แวร์ ซึ่งสามารถนำเสนอได้ด้วยแผนผังหลายแบบ เช่น แผนผังโครงสร้างระบบ (Structure Chart) และราย-ละเอียดขั้นตอนในการแก้ปัญหา (algorithm) ของแต่ละหน่วย นอกจากนี้ ยังรวมถึงการออกแบบวิธีที่ซอฟต์แวร์จะสื่อสารกับผู้ใช้ เช่น ออกแบบหน้าจอ ออกแบบวิธีรับคำสั่งจากผู้ใช้ (จะให้ผู้ใช้พิมพ์คำสั่ง หรือกดปุ่มเรียก หรือพูดด้วย ฯลฯ)
5. เขียนซอฟต์แวร์
การเขียนซอฟต์แวร์หรือโปรแกรมเป็นการเขียนชุดคำสั่งให้คอมพิวเตอร์ทำงาน ภาษาที่ใช้เขียนซอฟต์แวร์มีอยู่หลากหลาย ได้แก่ ภาษาเบสิก (BASIC) ภาษาฟอร์แทรน (FORTRAN) ภาษาโคบอล(COBOL) ภาษาซี (C) ภาษาวิชวลเบสิก (Visual Basic) ภาษาจาวา (Java) ภาษาเพิร์ล (PERL)ภาษาเดลไฟ (Delphi) ฯลฯ ซึ่งควรจะเขียนเป็นหน่วยเล็กๆ ก่อน โดยแต่ละภาษาอาจจะมีรูปแบบหน่วยที่ต่างกัน
เมื่อเขียนเสร็จแล้ว ก็ควรจะทดสอบความถูกต้องในการทำงานของแต่ละหน่วย ด้วยการทดสอบซอฟต์แวร์ (software testing) ว่าถูกต้องตามข้อกำหนด ตรงตามความต้องการของผู้ใช้มีคุณภาพตามต้องการ และหาข้อผิดพลาดเพื่อแก้ไขชุดคำสั่งให้กำจัดข้อบกพร่องนั้นๆ (softwaredebugging)
6. รวมหน่วยย่อยของซอฟต์แวร์
ขั้นตอนนี้เป็นการรวมชุดคำสั่งที่อยู่ในหน่วยย่อยให้เป็นซอฟต์แวร์ที่มีขนาดใหญ่ และทดสอบความถูกต้องว่า หน่วยต่าง ๆ ยังทำงานร่วมกันได้อย่างถูกต้องและมีประสิทธิภาพหรือไม่
7. นำซอฟต์แวร์ไปใช้
การนำเสนอซอฟต์แวร์ไปใช้ในเบื้องต้นจะช่วยให้ผู้ใช้ได้เห็นว่า ใช้ได้สะดวกหรือไม่ และตรงกับความต้องการหรือไม่ เมื่อนำไปใช้แล้วสามารถแก้ปัญหาที่กำลังประสบอยู่ได้หรือไม่ ฯลฯ หากไม่ตรงกับความต้องการ ก็จะได้ให้คนที่เขียนโปรแกรมนั้นแก้ไขใหม่
8. ใช้ซอฟต์แวร์ในการทำงานจริง
ขั้นตอนนี้เป็นการนำซอฟต์แวร์ไปใช้ประกอบการทำงานจริง ซึ่งอาจทำให้วิธีการทำงานเปลี่ยนแปลงไป ซอฟต์แวร์ที่ดีจะต้องทำให้การทำงานมีประสิทธิภาพสูงขึ้น
9. ทำนุบำรุงซอฟต์แวร์
ขณะที่ใช้ซอฟต์แวร์อยู่ ก็ยังต้องมีการทำนุบำรุงซอฟต์แวร์ เช่น (๑) แก้ไขซอฟต์แวร์ (correction) เมื่อพบข้อผิดพลาด
(๒) ขยายหน้าที่ของซอฟต์แวร์(enhancement) เมื่อผู้ใช้ปรับเปลี่ยนความต้องการไป
(๓) ปรับให้ซอฟต์แวร์ทำงานในสภาพแวดล้อมที่เปลี่ยนไป (adaptation) เช่น มีกฎระเบียบใหม่ออกมาทำให้โจทย์ปัญหาเปลี่ยนไป หรือคอมพิวเตอร์เปลี่ยนรุ่น ฯลฯ
(๔) การรื้อแล้วสร้างใหม่ (software re-engineering) เพื่อปรับโครงสร้างซอฟต์แวร์เก่า พัฒนาซอฟต์แวร์ใหม่ให้มีคุณภาพ และทำให้การแก้-ขยาย-ปรับทำได้อย่างสะดวกและประหยัดในระยะยาว
การตรวจสอบความถูกต้องควรจะทำในทุกขั้นตอน และถ้าพบข้อผิดพลาด ก็ต้องรีบย้อนกลับไปแก้ไข

ไม่มีความคิดเห็น: