ผู้ดูแลระบบและข้อกำหนดของซอฟต์แวร์

สารบัญ:

Anonim

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

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

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

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

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

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

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

ในระยะเริ่มต้นของการพัฒนา (Concepción) รากฐานของโครงการจะถูกสร้างขึ้น ขอบเขตแผนเริ่มต้นวิสัยทัศน์ทางธุรกิจโดยมีเป้าหมายและความสมเหตุสมผลของโครงการถูกกำหนดสิ่งประดิษฐ์เหล่านี้ได้รับการขัดเกลาตลอดการพัฒนาโครงการ ความต้องการเริ่มต้นจะถูกบันทึกผ่านกรณีการใช้งาน

ในช่วงนี้คุณจะเริ่มคิดถึงสถาปัตยกรรมเริ่มต้นของระบบจากมุมมองทางธุรกิจและจากมุมมองทางเทคนิค กระบวนการนี้เกี่ยวข้องกับการสร้างแบบจำลองแนวคิดและโมเดลการปรับใช้ทั้งในระดับสูงในระยะนี้

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

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

มีข้อผิดพลาดทั่วไปที่เกิดขึ้นในขั้นตอนนี้คุณควรหลีกเลี่ยง:

  • คิดว่ามันเป็นเฟสของการกำหนดความต้องการในแบบดั้งเดิมคิดว่าคุณต้องมีโมเดลและแผนที่สมบูรณ์แบบลองสร้างแบบจำลองข้อมูลที่สมบูรณ์ที่จุดเริ่มต้นของโครงการ

สิ่งประดิษฐ์ที่สร้าง:

  • แผนโครงการวิสัยทัศน์ใช้กรณีแนวคิดไดอะแกรมการปรับใช้แผนภาพการอนุมัติลูกค้า

เหตุผลที่องค์กรใช้ RUP สำหรับการพัฒนาโครงการซอฟต์แวร์คือ:

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

การเปลี่ยนแปลงความต้องการนั้นต้องการวิธีการทำงานร่วมกันที่มีวิวัฒนาการและมีความยืดหยุ่นกระบวนการ Unified Development Process (RUP) กำหนดวิธีการดังกล่าว

บรรณานุกรม

Ian Sommerville, " วิศวกรรมซอฟต์แวร์ ", รุ่นที่ 6 การศึกษาของเพียร์สัน, 2545

I. Archer Pupo“ ขั้นตอนของกระบวนการพัฒนาแบบครบวงจร”

ผู้ดูแลระบบและข้อกำหนดของซอฟต์แวร์