วันอังคารที่ 19 กุมภาพันธ์ พ.ศ. 2556

การใช้ซอฟต์แวรืในการทำงาน 3



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

การผลิตผลิตภัณฑ์ที่จะต้องใช้วิธีการพัฒนาทางวิศวกรรมไม่ว่าจะเป็นรถยนต์ซี่งเป็นวิศวกรรมเครื่องกล เครื่องโทรทัศน์ซึ่งเป็นวิศวกรรมไฟฟ้า ตลอดไปจนถึงงานการก่อสร้างสะพานหรืออาคารสูงซึ่งเป็นวิศวกรรมโยธา ล้วนต้องมีกระบวนการหรือขั้นตอนพัฒนาและบำรุงรักษาที่ประกอบด้วย

วิธีการต่าง ๆ มากมาย ในงานพัฒนาระบบซอฟต์แวร์ขนาดใหญ่ก็เช่นเดียวกัน จำเป็นต้องมีกระบวนการเชิงวิศวกรรมที่เรียกว่า วิศวกรรมซอฟต์แวร์ ในการพัฒนาและบำรุงรักษาซอฟต์แวร์อย่างเป็นขั้นตอน เพื่อให้งานสำเร็จลุล่วงตามเวลาและบรรลุเป้าหมายที่ต้องการ

การพัฒนาระบบซอฟต์แวร์ขนาดใหญ่ ๆ เช่น ระบบสินค้าคงคลังในงานธุรกิจ ระบบการลงทะเบียนเรียนในมหาวิทยาลัย

หรือระบบบัญชีลูกหนี้เจ้าหนี้ของบริษัทร้านค้า นับเป็นงานที่ค่อนข้างซับซ้อน มีขอบเขตเกิดกว่าที่สมองของมนุษย์จะจดจำได้อย่างครบถ้วน

ไม่ใช่งานเล็ก ๆ หรือโปรแกรมเล็กๆ สำหรับผู้พัฒนาเพียงคนเดียว จำเป็นต้องอาศัยผู้ร่วมพัฒนาหลายคนทำงานร่วมกันในช่วงเวลาที่ยาวพอสมควร เพราะในระหว่างการพัฒนาอาจมีปัญหาอุปสรรคเกิดขึ้นได้เสมอ เช่น เป้าหมายของระบบอาจมีการปรับเปลี่ยนให้เหมาะสมขึ้น หรือ ปัญหาด้านบุคลากรที่ร่วมโครงการอาจมีการสับเปลี่ยนเนื่องจากการเปลี่ยนตำแหน่ง หรือ ย้ายงานใหม่ เป็นต้น

วิศวกรรมซอฟต์แวร์ ไม่ใช่เป็นเรื่องที่เกี่ยวข้องเฉพาะกับปัญหาเทคนิคของกระบวนการพัฒนาเท่านั้น

ยังจะรวมไปถึงปัญหาด้านบุคลากรและการควบคุมติดตามโครงการซึ่งในที่นี้จะกล่าวเฉพาะกระบวนการพัฒนาซอฟต์แวร์์

และระบบซอฟต์แวร์ที่มีการหมุนเวียนใช้งานเป็นวัฎจักรซอฟต์แวร์ ดังรูป






วัฎจักรซอฟต์แวร์




ซอฟต์แวร์ที่พัฒนามาแล้ว จะเข้าสู่วัฎจักรของการนำไปใช้งานแล้วนำมาปรับปรุงแก้ไข และย้อนกลับนำมาใช้งานใหม่

ตลอดระยะเวลาการใช้งานซอฟต์แวร์นั้น จนกว่าจะมีซอฟต์แวร์ใหม่มาแทนที่ ผลิตภัณฑ์อุตสาหกรรมต่าง ๆ มีวัฎจักรเช่นเดียวกัน เพียงแต่ว่า

วัฎจักรของผลิตภัณฑ์ ไม่ใช่การปรับปรุงแก้ไข แต่จะเป็นการซ่อมบำรุงให้ใช้งานต่อไปได้ ซอฟต์แวร์ต่างกับผลิตภัณฑ์ตรงที่ไม่มีส่วนสึกหรอ

การปรับปรุงแก้ไขซอฟต์แวร์ อาจเกิดขึ้นจากข้อผิดพลาดของซอฟต์แวร์ ที่ยังหลงค้างอยู่ หรือจากข้อกำหนดของเงื่อนไขภายในซอฟต์แวร์

ที่มีการเปลี่ยนแปลง เช่น การเปลี่ยนแปลงวิธีการจัดเก็บภาษีของระบบบัญชี ต้องแก้ไขเงื่อนไขในซอฟต์แวร์ใหม่ ตามปกติซอฟต์แวร์ที่พัฒนามาแล้ว

มักมีการปรับปรุงแก้ไขอยู่เสมอ เพราะเป้าหมายความต้องการของผู้ใช้งานมักจะเปลี่ยนแปลงภายหลังการทดลองใช้ไประยะหนึ่ง

ปัญหาสำคัญของการปรับปรุงแก้ไขซอฟต์แวร์ ส่วนใหญ่จะอยู่ที่ผู้ปรับปรุงแก้ไขเป็นคนละคนกับผู้พัฒนา ดังนั้นผู้ปรับปรุงจะต้องศึกษาโปรแกรมและเอกสารประกอบให้เข้าใจอย่างถ่องแท้เสียก่อนจึงจะสามารถปรับปรุงได้ ซึ่งต้องใช้เวลาพอสมควร และถ้าโปรแกรมและเอกสารประกอบไม่ได้มีรูปแบบโครงสร้างที่ดีพอแล้ว ผู้ปรับปรุงซอฟต์แวร์จะประสบปัญหากับการแก้ไขมากยิ่งขึ้น

จนบางครั้งต้องพัฒนาซอฟต์แวร์ขึ้นใหม่ เหตุการณ์เช่นนี้พบเห็นกันอยู่เสมอ ๆ

ตามปกติระยะเวลาที่ใช้เพื่อการพัฒนาซอฟต์แวร์จะน้อยกว่าระยะเวลาของการปรับปรุงแก้ไขเพราะเมื่อซอฟต์แวร์นำไปใช้งานแล้วจะมีการย้อนกลับมา

ปรับปรุงแก้ไขได้ตลอดเวลา การปรับปรุงแก้ไขซอฟต์แวร์สามารถทำได้ง่ายและรวดเร็ว หากมีการเตรียมการตั้งแต่ขั้นตอนการพัฒนาซอฟต์แวร์ โดยพยายามศึกษาวิเคราะห์และออกแบบให้ละเอียดและให้เอื้อต่อการนำไปแก้ไขปรับปรุงได้ง่ายในภายหลัง




10.1 ขั้นตอนการพัฒนาซอฟต์แวร์

การพัฒนาซอฟต์แวร์ที่ใช้กันทั่วไป จะแบ่งออกเป็นขั้นตอน ดังนี้ การวิเคราะห์ การออกแบบ การเขียนโปรแกรม

หรือการสร้างชิ้นงานจริง และการตรวจสอบซอฟต์แวร์

1) การวิเคราะห์ เป็นขั้นตอนแรกของการพัฒนาซอฟต์แวร์ ซึ่งอาจแบ่งได้เป็นสองตอน ตอนแรกจะเป็นการสำรวจความต้องการ และเหตุผลของการตัดสินใจนำคอมพิวเตอร์เข้ามาช่วยในการทำงานให้เป็นไปโดยอัตโนมัติ ตอนที่สองจึงเป็นการวิเคราะห์ระบบงานที่ใช้อยู่ปัจจุบัน หากนำระบบที่ใช้คอมพิวเตอร์มาช่วยงานจะตอบสนองความต้องการได้อย่างไร ข้อมูลที่ใช้และระบบซอฟต์แวร์จะต้องกำหนดได้อย่างเด่นชัด

ผลลัพธ์จากการวิเคราะห์ จะทำให้เราได้ชุดของข้อกำหนดของระบบเพื่อนำไปใช้ในการออกแบบซอฟต์แวร์ต่อไป

2) การออกแบบ ในการออกแบบซอฟต์แวร์ จะเป็นงานพัฒนาทางด้านเทคนิคเพื่อแบ่งแยกงานให้เป็นหน่วยย่อยเรียก มอดูล (module) ที่สามารถแยกจัดการเฉพาะส่วนได้โดยง่าย การนำระบบใหญ่มาแบ่งย่อยเป็นส่วนเล็ก ๆ และสามารถนำมาเชื่อมรวมกันเป็นระบบใหญ่ถือเป็นส่วนสำคัญ

ที่ช่วยให้งานใหญ่สำเร็จลงได้ เพราะการสร้างระบบซอฟต์แวร์ขนาดใหญ่แต่เพียงลำพัง เป็นเรื่องสุดวิสัยเหนือกำลังของคนคนเดียว การแยกส่วนแบ่งงานกันทำจะทำให้ผู้พัฒนาแต่ละคนสามารถทำงานเฉพาะในส่วนของตนได้ดี ขณะเดียวกันจะง่ายแก่การบำรุงรักษาในอนาคตอีกด้วย

3) การเขียนโปรแกรมหรือการสร้างชิ้นงานจริง เป็นขั้นตอนของการสร้างหรือเขียนโปรแกรม การสร้างแฟ้มข้อมูลและการพัฒนาฐานข้อมูล การออกแบบซอฟต์แวร์เป็นหน่วยย่อยหลาย ๆ มอดูลทำให้สามารถแบ่งงานเขียนโปรแกรมหรือสร้างชิ้นงานให้กับนักเขียนโปรแกรมหลาย ๆ คนทำพร้อมกันได้

4) การตรวจสอบซอฟต์แวร์ ขั้นตอนสุดท้ายเป็นการตรวจสอบซอฟต์แวร์ว่าทำงานได้ครบถ้วนตามต้องการหรือไม่ โดยมีการตรวจแก้ไขซอฟต์แวร์เป็นชุดมอดูล และตรวจสอบการทำงานร่วมกันของมอดูลต่าง ๆ ซึ่งขั้นตอนนี้จะต้องพิถีพิถันกระทำการตรวจสอบอย่างละเอียด

การพัฒนาซอฟต์แวร์ขนาดใหญ่จำเป็นต้องดำเนินตามขั้นตอนที่กล่าวแล้วข้างต้น เพื่อให้ได้ระบบซอฟต์แวร์ที่สมบูรณ์มีข้อผิดพลาดน้อยที่สุด ในทุกขั้นตอนควรเขียนเอกสารประกอบอย่างครบถ้วน เพื่อให้ผู้ร่วมงานคนอื่น ๆ เข้าใจและทำงานร่วมกันได้

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

แสดงความคิดเห็น