วงจรชีวิตของซอฟต์แวร์ (วงจรชีวิตของซอฟต์แวร์) วงจรชีวิตของซอฟต์แวร์
วงจรชีวิตของซอฟต์แวร์
วงจรชีวิตของซอฟต์แวร์เป็นช่วงเวลาที่เริ่มต้นจากช่วงเวลาที่มีการตัดสินใจเกี่ยวกับความจำเป็นในการสร้างผลิตภัณฑ์ซอฟต์แวร์และสิ้นสุดในช่วงเวลาของการถอนตัวจากการให้บริการที่สมบูรณ์ (มาตรฐาน IEEE Std 610.12)
ความต้องการในการกำหนดขั้นตอนของวงจรชีวิตซอฟต์แวร์ (LC) นั้นเกิดจากความต้องการของนักพัฒนาในการปรับปรุงคุณภาพของซอฟต์แวร์ผ่านการจัดการการพัฒนาที่เหมาะสมและการใช้กลไกการควบคุมคุณภาพที่หลากหลายในทุกขั้นตอนจากการตั้งค่าของปัญหาและสิ้นสุดด้วยการสนับสนุนของผู้เขียน การแสดงภาพวงจรชีวิตซอฟต์แวร์โดยทั่วไปมากที่สุดคือแบบจำลองในรูปแบบของขั้นตอนพื้นฐาน - กระบวนการซึ่งรวมถึง:
การวิเคราะห์ระบบและเหตุผลของความต้องการซอฟต์แวร์
การออกแบบซอฟต์แวร์เบื้องต้น (ร่าง) และรายละเอียด (เทคนิค);
การพัฒนาส่วนประกอบซอฟต์แวร์การรวมและการดีบักซอฟต์แวร์โดยรวม
การทดสอบการดำเนินการทดลองและการจำลองซอฟต์แวร์
การใช้งานซอฟต์แวร์เป็นประจำการสนับสนุนการบำรุงรักษาและการวิเคราะห์ผลลัพธ์
การบำรุงรักษาซอฟต์แวร์การดัดแปลงและปรับปรุงการสร้างเวอร์ชันใหม่
แบบจำลองนี้เป็นที่ยอมรับโดยทั่วไปและสอดคล้องกับเอกสารกำกับดูแลทั้งในประเทศในด้านการพัฒนาซอฟต์แวร์และเอกสารต่างประเทศ จากมุมมองของการรับรองความปลอดภัยทางเทคโนโลยีขอแนะนำให้พิจารณารายละเอียดเพิ่มเติมเกี่ยวกับคุณสมบัติของการนำเสนอขั้นตอนวงจรชีวิตในรุ่นต่างประเทศเนื่องจากเป็นซอฟต์แวร์ต่างประเทศที่เป็นพาหะของข้อบกพร่องซอฟต์แวร์ที่น่าจะเป็นของการก่อวินาศกรรมมากที่สุด
มาตรฐานวงจรชีวิตของซอฟต์แวร์
GOST 34.601-90
ISO / IEC 12207: 1995 (อะนาล็อกรัสเซีย - GOST R ISO / IEC 12207-99)
การแสดงกราฟิกของโมเดลวงจรชีวิตช่วยให้คุณสามารถเน้นคุณสมบัติและคุณสมบัติบางอย่างของกระบวนการด้วยสายตา
ในขั้นต้นรูปแบบวงจรชีวิตซ้อนถูกสร้างขึ้นในขั้นตอนที่สำคัญเริ่มหนึ่งหลังจากที่อื่นโดยใช้ผลลัพธ์ของงานก่อนหน้านี้ มันให้สำหรับการดำเนินการตามลำดับของทุกขั้นตอนของโครงการในการแก้ไขอย่างเคร่งครัด การเปลี่ยนไปสู่สเตจถัดไปหมายถึงการทำให้งานเสร็จสมบูรณ์ในระยะก่อนหน้า ข้อกำหนดที่กำหนดไว้ในขั้นตอนของการสร้างความต้องการมีการบันทึกไว้อย่างเคร่งครัดในรูปแบบของการมอบหมายทางเทคนิคและได้รับการแก้ไขตลอดระยะเวลาของการพัฒนาโครงการ แต่ละขั้นตอนจบลงด้วยการเปิดตัวชุดเอกสารที่สมบูรณ์เพียงพอสำหรับการพัฒนาที่จะดำเนินการต่อโดยทีมพัฒนาอื่น ความไม่ถูกต้องของข้อกำหนดใด ๆ หรือการตีความที่ไม่ถูกต้องเป็นผลให้นำไปสู่ความจริงที่ว่ามันจำเป็นที่จะต้อง "ย้อนกลับ" ในช่วงแรกของโครงการและการทำซ้ำที่จำเป็นไม่เพียง แต่ทำให้ทีมงานล้มลงตามกำหนดเวลา ในรูปแบบที่มันเป็นความคิดสร้างสรรค์ ความเข้าใจผิดที่สำคัญของผู้เขียนโมเดลน้ำตกคือข้อสันนิษฐานว่าโครงการต้องผ่านกระบวนการทั้งหมดเพียงครั้งเดียวสถาปัตยกรรมที่ออกแบบนั้นดีและใช้งานง่ายการออกแบบการใช้งานมีความสมเหตุสมผล รุ่นนี้อนุมานว่าข้อผิดพลาดทั้งหมดจะรวมอยู่ในการนำไปใช้และดังนั้นการกำจัดจะเกิดขึ้นอย่างสม่ำเสมอในระหว่างการทดสอบส่วนประกอบและระบบ ดังนั้นโมเดลน้ำตกสำหรับโครงการขนาดใหญ่จึงไม่สมจริงและสามารถใช้งานได้อย่างมีประสิทธิภาพสำหรับการสร้างระบบขนาดเล็กเท่านั้น
ที่เฉพาะเจาะจงมากที่สุดคือรูปแบบวงจรชีวิตของเกลียว ในรุ่นนี้ความสนใจมุ่งเน้นไปที่กระบวนการวนซ้ำของขั้นตอนการออกแบบเบื้องต้น ในขั้นตอนเหล่านี้จะมีการสร้างแนวคิดข้อกำหนดข้อกำหนดการออกแบบเบื้องต้นและรายละเอียดตามลำดับ ในแต่ละขั้นตอนจะมีการระบุเนื้อหาของงานและลักษณะที่ปรากฏของซอฟต์แวร์ที่ถูกสร้างขึ้นมีการประเมินคุณภาพของผลลัพธ์ที่ได้รับและการวางแผนการทำซ้ำครั้งต่อไป ในการทำซ้ำแต่ละครั้งจะมีการประเมินสิ่งต่อไปนี้:
ความเสี่ยงเกินข้อกำหนดและค่าใช้จ่ายของโครงการ
จำเป็นที่จะต้องทำซ้ำอีกหนึ่งครั้ง
ระดับของความสมบูรณ์และความถูกต้องของการทำความเข้าใจข้อกำหนดสำหรับระบบ
ความเป็นไปได้ของการยกเลิกโครงการ
มาตรฐานซอฟต์แวร์วงจรชีวิตนั้นดำเนินการในสามทิศทาง ทิศทางแรกจัดและส่งเสริมโดยองค์กรระหว่างประเทศเพื่อการมาตรฐาน (ISO - องค์กรมาตรฐานระหว่างประเทศ) และคณะกรรมการเทคนิคไฟฟ้าระหว่างประเทศ (IEC - คณะกรรมการเทคนิคไฟฟ้าระหว่างประเทศ) ในระดับนี้มาตรฐานของกระบวนการทางเทคโนโลยีทั่วไปที่สำคัญที่สุดสำหรับความร่วมมือระหว่างประเทศจะดำเนินการ ทิศทางที่สองกำลังพัฒนาอย่างแข็งขันในสหรัฐอเมริกาโดยสถาบันวิศวกรไฟฟ้าและอิเล็กทรอนิกส์ (IEEE) ในความร่วมมือกับสถาบันมาตรฐานแห่งชาติอเมริกัน (ANSI) มาตรฐาน ISO / IEC และ ANSI / IEEE ส่วนใหญ่จะเป็นคำแนะนำตามธรรมชาติ พื้นที่ที่สามถูกกระตุ้นโดยกระทรวงกลาโหมสหรัฐ (DOD) มาตรฐาน DOD มีผลผูกพันกับ บริษัท ที่ได้รับมอบหมายจากกระทรวงกลาโหมสหรัฐ
ในการออกแบบซอฟต์แวร์สำหรับระบบที่ซับซ้อนโดยเฉพาะอย่างยิ่งระบบแบบเรียลไทม์ขอแนะนำให้ใช้แบบจำลองวงจรชีวิตของทั้งระบบโดยพิจารณาจากการรวมกันของงานที่รู้จักทั้งหมดภายในกรอบของกระบวนการพื้นฐานที่พิจารณาแล้ว รุ่นนี้มีไว้สำหรับใช้ในการวางแผนกำหนดเวลาจัดการโครงการซอฟต์แวร์ต่างๆ
ขอแนะนำให้แบ่งชุดของขั้นตอนของแบบจำลองวงจรชีวิตนี้ออกเป็นสองส่วนซึ่งแตกต่างกันอย่างมากในคุณลักษณะของกระบวนการลักษณะทางเทคนิคและเศรษฐกิจและปัจจัยที่มีอิทธิพลต่อพวกเขา
ในส่วนแรกของวงจรชีวิตจะทำการวิเคราะห์ระบบออกแบบพัฒนาทดสอบและทดสอบซอฟต์แวร์ ช่วงของงานความเข้มแรงงานระยะเวลาและลักษณะอื่น ๆ ในขั้นตอนเหล่านี้ขึ้นอยู่กับวัตถุและสภาพแวดล้อมการพัฒนา การศึกษาความขึ้นต่อกันของคลาสซอฟต์แวร์ต่าง ๆ ทำให้สามารถทำนายองค์ประกอบและลักษณะสำคัญของตารางการทำงานสำหรับเวอร์ชันซอฟต์แวร์ใหม่ได้
ส่วนที่สองของวงจรชีวิตสะท้อนให้เห็นถึงการสนับสนุนสำหรับการดำเนินงานและการบำรุงรักษาซอฟต์แวร์ที่ค่อนข้างอ่อนที่เกี่ยวข้องกับลักษณะของวัตถุและสภาพแวดล้อมการพัฒนา ช่วงของการทำงานในขั้นตอนเหล่านี้มีความเสถียรมากขึ้นและความเข้มของแรงงานและระยะเวลาอาจแตกต่างกันอย่างมีนัยสำคัญและขึ้นอยู่กับการใช้งานซอฟต์แวร์จำนวนมาก สำหรับวงจรชีวิตทุกรูปแบบการรับรองระบบซอฟต์แวร์ที่มีคุณภาพเป็นไปได้ก็ต่อเมื่อใช้กระบวนการเทคโนโลยีที่มีการควบคุมในแต่ละขั้นตอนเหล่านี้ กระบวนการดังกล่าวได้รับการสนับสนุนโดยเครื่องมือการพัฒนาอัตโนมัติซึ่งแนะนำให้เลือกจากวัตถุที่มีอยู่หรือเพื่อสร้างโดยคำนึงถึงวัตถุการพัฒนาและรายการงานที่เพียงพอ
วงจรชีวิตของซอฟต์แวร์ (ซอฟต์แวร์) เป็นช่วงเวลาที่เริ่มต้นจากช่วงเวลาที่มีการตัดสินใจเกี่ยวกับความจำเป็นในการสร้างผลิตภัณฑ์ซอฟต์แวร์และสิ้นสุดในเวลาที่ถอนออกจากการให้บริการอย่างสมบูรณ์ วงจรนี้เป็นกระบวนการสร้างและพัฒนาซอฟต์แวร์
ขั้นตอนวงจรชีวิต:
2. การออกแบบ
3. การดำเนินการ
4. ประกอบทดสอบทดสอบ
5. การนำไปใช้ (ปล่อย)
6. เพื่อนเที่ยว
การผลิตซอฟต์แวร์มี 2 กรณี: 1) ซอฟแวร์ผลิตขึ้นสำหรับลูกค้าเฉพาะราย ในกรณีนี้คุณต้องเปลี่ยนงานที่นำไปใช้งานเป็นโปรแกรมเมอร์ คุณต้องเข้าใจว่าสภาพแวดล้อมที่จำเป็นต้องใช้ฟังก์ชั่นอัตโนมัติ (การวิเคราะห์กระบวนการทางธุรกิจ) เป็นอย่างไร ดังนั้นข้อกำหนดของเอกสารประกอบของข้อกำหนดจะปรากฏขึ้นซึ่งควรระบุงานใด แก้ไขและภายใต้เงื่อนไขใด งานนี้ดำเนินการโดยนักวิเคราะห์ระบบ (นักวิเคราะห์กระบวนการทางธุรกิจ)
2) ซอฟต์แวร์ได้รับการพัฒนาสำหรับตลาด คุณต้องทำการวิจัยการตลาดและค้นหาผลิตภัณฑ์ที่ไม่ได้อยู่ในตลาด สิ่งนี้เกี่ยวข้องกับความเสี่ยงที่ยิ่งใหญ่ เป้าหมายคือการพัฒนาข้อกำหนดคุณสมบัติ
ออกแบบ
เป้าหมายคือการกำหนดโครงสร้างโดยรวม (สถาปัตยกรรม) ของซอฟต์แวร์ ผลลัพธ์คือข้อกำหนดซอฟต์แวร์ โปรแกรมเมอร์ระบบทำงานนี้
การดำเนินงาน
การเขียนรหัสโปรแกรม การใช้งานรวมถึงการพัฒนาการทดสอบและเอกสาร
การประกอบการทดสอบการทดสอบ
การประกอบทุกอย่างที่ทำโดยโปรแกรมเมอร์ที่แตกต่างกัน ทดสอบแพคเกจซอฟต์แวร์ทั้งหมด แก้ไขจุดบกพร่อง - ค้นหาและกำจัดสาเหตุของข้อผิดพลาด การทดสอบ - คุณสมบัติทางเทคนิค เป็นผลให้โปรแกรมรับประกันว่าจะทำงาน
การใช้งาน (ปล่อย)
การติดตั้งใช้งาน - เมื่อใช้งานกับลูกค้าหนึ่งราย มันรวมถึงการตั้งค่าโปรแกรมในสถานที่ของลูกค้าการฝึกอบรมลูกค้าให้คำปรึกษาขจัดข้อผิดพลาดและข้อบกพร่องที่เห็นได้ชัด ซอฟต์แวร์ควรแปลกแยก - ผู้ใช้สามารถทำงานกับซอฟต์แวร์ได้โดยไม่ต้องมีส่วนร่วมของผู้เขียน
ปล่อย - เมื่อมีการพัฒนาซอฟต์แวร์ออกสู่ตลาด เริ่มด้วยขั้นตอนการทดสอบเบต้า ตรงกัน รุ่น - รุ่นเบต้า การทดสอบอัลฟ่าเป็นการทดสอบโดยบุคคลจากองค์กรเดียวกันซึ่งไม่ได้มีส่วนเกี่ยวข้องในการพัฒนาซอฟต์แวร์ การทดสอบเบต้า - ทำสำเนาหลายชุดของซอฟต์แวร์และส่งไปยังผู้มีโอกาสเป็นลูกค้า เป้าหมายคือการตรวจสอบการพัฒนาซอฟต์แวร์อีกครั้ง
หากมีการเปิดตัวซอฟต์แวร์ใหม่โดยพื้นฐานแล้วจะมีการทดสอบเบต้าหลายครั้ง หลังจากการทดสอบเบต้า - เปิดตัวเวอร์ชั่นเชิงพาณิชย์
คุ้มกัน
การขจัดข้อผิดพลาดที่สังเกตเห็นในระหว่างการดำเนินการ ทำการปรับปรุงเล็กน้อย การสะสมของข้อเสนอสำหรับการพัฒนาของรุ่นถัดไป
แบบจำลองวงจรชีวิต
1. น้ำตก ("น้ำตก" รุ่นน้ำตก)
2. การสร้างต้นแบบ
อันดับแรกไม่ใช่ผลิตภัณฑ์ซอฟต์แวร์ที่ได้รับการพัฒนา แต่ต้นแบบซึ่งมีวิธีแก้ไขปัญหาหลักที่นักพัฒนาหันหน้าไปทาง หลังจากการพัฒนาต้นแบบสำเร็จแล้วผลิตภัณฑ์ซอฟต์แวร์จริงจะถูกพัฒนาตามหลักการเดียวกัน ต้นแบบช่วยให้คุณเข้าใจความต้องการของโปรแกรมที่พัฒนาขึ้นได้ดีขึ้น การใช้เครื่องต้นแบบลูกค้าสามารถกำหนดความต้องการได้แม่นยำยิ่งขึ้น ผู้พัฒนาสามารถใช้ต้นแบบเพื่อนำเสนอผลลัพธ์เบื้องต้นของงานของเขาให้กับลูกค้า
3. รูปแบบการวนซ้ำ
งานถูกแบ่งออกเป็นงานย่อยและมีการกำหนดลำดับการใช้งานเพื่อให้แต่ละภารกิจย่อยที่ตามมาขยายขีดความสามารถของซอฟต์แวร์ ความสำเร็จขึ้นอยู่กับว่าภารกิจแบ่งออกเป็นงานย่อยได้ดีแค่ไหนและวิธีการเลือกลำดับ ข้อดี: 1) ความเป็นไปได้ของการมีส่วนร่วมของลูกค้าในการพัฒนาเขามีโอกาสที่จะชี้แจงความต้องการของเขาในระหว่างการพัฒนา; 2) ความสามารถในการทดสอบชิ้นส่วนที่พัฒนาขึ้นใหม่พร้อมกับชิ้นส่วนที่พัฒนาขึ้นก่อนหน้านี้ซึ่งจะช่วยลดต้นทุนของการดีบักแบบซับซ้อน 3) ในระหว่างการพัฒนาคุณสามารถเริ่มต้นใช้งานในส่วนต่าง ๆ
วิศวกรรมไฟฟ้า) มาตรฐานนี้กำหนดโครงสร้างของวงจรชีวิตที่มีกระบวนการการกระทำและงานที่ต้องดำเนินการในระหว่างการสร้าง PSในมาตรฐาน PS นี้ (หรือ ซอฟต์แวร์) หมายถึงชุดของโปรแกรมคอมพิวเตอร์ขั้นตอนและเอกสารและข้อมูลที่เกี่ยวข้อง กระบวนการถูกกำหนดเป็นชุดของการกระทำที่สัมพันธ์กันซึ่งแปลงข้อมูลอินพุตบางส่วนเป็นเอาต์พุต (G. Myers เรียกการแปลข้อมูลนี้) แต่ละกระบวนการมีลักษณะงานและวิธีการบางอย่างในการแก้ปัญหา ในทางกลับกันแต่ละกระบวนการแบ่งออกเป็นชุดของการกระทำและแต่ละการกระทำจะแบ่งออกเป็นชุดของงาน แต่ละกระบวนการการกระทำหรืองานเริ่มต้นและดำเนินการโดยกระบวนการอื่นตามความจำเป็นและไม่มีลำดับการดำเนินการที่กำหนดไว้ล่วงหน้า (แน่นอนในขณะที่ยังคงรักษาการเชื่อมต่อด้วยข้อมูลอินพุต)
ควรสังเกตว่าในสหภาพโซเวียตและจากนั้นในรัสเซียการสร้างซอฟต์แวร์ (ซอฟต์แวร์) เป็นครั้งแรกในยุค 70 ของศตวรรษที่ผ่านมาควบคุมโดยมาตรฐานของ GOST ESPD (ระบบรวมของเอกสารโปรแกรม - GOST 19.XXX series) ซึ่งเน้นไปที่ ค่อนข้างง่ายโปรแกรมขนาดเล็กที่สร้างโดยโปรแกรมเมอร์แต่ละคน ในปัจจุบันมาตรฐานเหล่านี้ล้าสมัยในเชิงแนวคิดและในรูปแบบระยะเวลาที่ใช้งานได้หมดอายุและการใช้งานไม่ได้ผล
กระบวนการสร้างระบบอัตโนมัติ (AS) ซึ่งรวมถึงซอฟต์แวร์นั้นควบคุมโดยมาตรฐาน GOST 34.601-90 "เทคโนโลยีสารสนเทศชุดมาตรฐานสำหรับระบบอัตโนมัติขั้นตอนการพัฒนา", GOST 34.602-89 "เทคโนโลยีสารสนเทศชุดมาตรฐานสำหรับระบบอัตโนมัติ งานด้านเทคนิค เพื่อสร้างระบบอัตโนมัติ "และ GOST 34.603-92" เทคโนโลยีสารสนเทศ ประเภทของการทดสอบระบบอัตโนมัติ "อย่างไรก็ตามข้อกำหนดจำนวนมากของมาตรฐานเหล่านี้ล้าสมัยและอื่น ๆ ไม่ได้สะท้อนให้เห็นพอที่จะนำไปใช้สำหรับโครงการที่จริงจังสำหรับการสร้างระบบซอฟต์แวร์ดังนั้นจึงแนะนำให้ใช้มาตรฐานสากลสมัยใหม่ในการพัฒนาประเทศ
ตามมาตรฐาน ISO / IEC 12207 กระบวนการวงจรชีวิตซอฟต์แวร์ทั้งหมดจะถูกแบ่งออกเป็นสามกลุ่ม (รูปที่ 5.1)
รูปที่. 5.1
กลุ่มมีห้ากระบวนการหลัก: การจัดหาการพัฒนาการปฏิบัติการและการบำรุงรักษา กระบวนการเสริมแปดกระบวนการสนับสนุนการดำเนินการของกระบวนการหลัก ได้แก่ จัดเก็บเอกสาร, การจัดการการตั้งค่าการประกันคุณภาพการทวนสอบการรับรองการประเมินร่วมการตรวจสอบการแก้ไขปัญหา กระบวนการขององค์กรทั้งสี่นั้นให้การจัดการโครงสร้างพื้นฐานการปรับปรุงและการเรียนรู้
5.2 กระบวนการพื้นฐานของวงจรชีวิตของ PS
กระบวนการซื้อประกอบด้วยการกระทำและงานของลูกค้าที่ซื้อ PS กระบวนการนี้ครอบคลุมขั้นตอนต่อไปนี้:
- การเริ่มต้นของการได้มา;
- การเตรียมข้อเสนอการสมัคร
- การเตรียมและการปรับสัญญา
- การกำกับดูแลกิจกรรมของซัพพลายเออร์
- การยอมรับและความสำเร็จของงาน
การเริ่มต้นการได้มาซึ่งเกี่ยวข้องกับงานต่อไปนี้:
- การกำหนดความต้องการของลูกค้าในการจัดหาพัฒนาหรือปรับปรุงระบบผลิตภัณฑ์ซอฟต์แวร์หรือบริการ
- การตัดสินใจเกี่ยวกับการจัดหาพัฒนาหรือปรับปรุงซอฟต์แวร์ที่มีอยู่
- การตรวจสอบความพร้อมของเอกสารที่จำเป็นการรับประกันใบรับรองใบอนุญาตและการสนับสนุนในกรณีที่ซื้อผลิตภัณฑ์ซอฟต์แวร์
- การจัดทำและอนุมัติแผนการจัดหารวมถึงข้อกำหนดของระบบประเภทของสัญญาความรับผิดชอบของคู่สัญญา ฯลฯ
ข้อเสนอการสมัครต้องมี:
- ข้อกำหนดสำหรับระบบ
- รายการผลิตภัณฑ์ซอฟต์แวร์
- เงื่อนไขการซื้อและข้อตกลง;
- ข้อ จำกัด ทางเทคนิค (ตัวอย่างเช่นในสภาพแวดล้อมของการทำงานของระบบ)
การเสนอราคาจะถูกส่งไปยังซัพพลายเออร์ที่เลือกหรือซัพพลายเออร์หลายรายในกรณีที่มีการประกวดราคา ผู้จัดหาคือองค์กรที่ทำสัญญากับลูกค้าเพื่อจัดหาระบบซอฟต์แวร์หรือบริการซอฟต์แวร์ตามข้อกำหนดที่ระบุในสัญญา
การเตรียมการและการปรับสัญญาประกอบด้วยงานดังต่อไปนี้:
- กำหนดโดยลูกค้าของขั้นตอนการคัดเลือกผู้จัดหารวมถึงเกณฑ์สำหรับการประเมินข้อเสนอของผู้จัดหาที่มีศักยภาพ
- การเลือกผู้จัดหาเฉพาะตามการวิเคราะห์ข้อเสนอ
- การเตรียมการและการสรุป สัญญาผู้จัดจำหน่าย;
- การเปลี่ยนแปลง (ถ้าจำเป็น) ต่อสัญญาในกระบวนการดำเนินการ
การกำกับดูแลซัพพลายเออร์ดำเนินการตามกิจกรรมที่ระบุไว้ในการประเมินร่วมและกระบวนการตรวจสอบ ในระหว่างกระบวนการยอมรับการทดสอบที่จำเป็นจัดทำและดำเนินการ การทำงานภายใต้สัญญาเสร็จสมบูรณ์ในกรณีที่ตรงตามเงื่อนไขการยอมรับทั้งหมด
กระบวนการจัดส่งครอบคลุมกิจกรรมและงานที่ดำเนินการโดยซัพพลายเออร์ซึ่งจัดหาผลิตภัณฑ์หรือบริการซอฟต์แวร์แก่ลูกค้า กระบวนการนี้รวมถึงขั้นตอนต่อไปนี้:
- การเริ่มต้นส่งมอบ
- การเตรียมการตอบสนองต่อข้อเสนอการสมัคร
- การเตรียมสัญญา
- การวางแผนงานภายใต้สัญญา
- การปฏิบัติและการควบคุมงานตามสัญญาและการประเมิน
- การส่งมอบและความสมบูรณ์ของงาน
การเริ่มต้นของการส่งมอบประกอบด้วยในการพิจารณาของผู้จัดหาของข้อเสนอการเสนอราคาและการตัดสินใจว่าจะเห็นด้วยกับข้อกำหนดและเงื่อนไขที่กำหนดไว้หรือที่จะนำเสนอของตัวเอง (เห็นด้วย) การวางแผนรวมถึงงานต่อไปนี้:
- การตัดสินใจโดยซัพพลายเออร์เกี่ยวกับการทำงานของตัวเองหรือการมีส่วนร่วมของผู้รับเหมาช่วง;
- การพัฒนาโดยซัพพลายเออร์ของแผนการจัดการโครงการที่มีโครงสร้างองค์กรของโครงการการกำหนดความรับผิดชอบข้อกำหนดทางเทคนิคสำหรับสภาพแวดล้อมการพัฒนาและทรัพยากรการจัดการผู้รับจ้างช่วง ฯลฯ
กระบวนการพัฒนารวมถึงการกระทำและงานที่ดำเนินการโดยนักพัฒนาและครอบคลุมงานในการสร้างซอฟต์แวร์และส่วนประกอบตามข้อกำหนดที่ระบุ ซึ่งรวมถึงการจัดทำเอกสารการออกแบบและการดำเนินงานการเตรียมวัสดุที่จำเป็นสำหรับการทดสอบประสิทธิภาพและ คุณภาพของผลิตภัณฑ์ซอฟต์แวร์วัสดุที่จำเป็นสำหรับการจัดฝึกอบรมบุคลากรเป็นต้น
กระบวนการพัฒนาประกอบด้วยขั้นตอนต่อไปนี้:
- งานเตรียมการ
- การวิเคราะห์ข้อกำหนดสำหรับระบบ
- การออกแบบสถาปัตยกรรมระบบ
- การวิเคราะห์ข้อกำหนดสำหรับซอฟต์แวร์
- การออกแบบสถาปัตยกรรมซอฟต์แวร์
- การออกแบบซอฟต์แวร์โดยละเอียด
- การเข้ารหัสและทดสอบซอฟต์แวร์
- การรวมซอฟต์แวร์
- การทดสอบคุณสมบัติของซอฟต์แวร์
- ระบบบูรณาการ;
- การทดสอบคุณสมบัติของระบบ
- การติดตั้งซอฟต์แวร์
- การยอมรับซอฟต์แวร์
งานเตรียมการเริ่มต้นด้วยการเลือกรูปแบบวงจรชีวิตที่สอดคล้องกับขนาดความสำคัญและความซับซ้อนของโครงการ กิจกรรมและงานของกระบวนการพัฒนาควรสอดคล้องกับรูปแบบที่เลือก ผู้พัฒนาจะต้องเลือกปรับให้เข้ากับสภาพของโครงการและใช้มาตรฐานวิธีการและ เครื่องมือในการพัฒนาและจัดทำแผนการดำเนินงาน
การวิเคราะห์ข้อกำหนดสำหรับระบบแสดงถึงความมุ่งมั่นของการทำงานของมัน ข้อกำหนดที่กำหนดเองข้อกำหนดสำหรับความน่าเชื่อถือความปลอดภัยข้อกำหนดสำหรับอินเทอร์เฟซภายนอกประสิทธิภาพ ฯลฯ ความต้องการของระบบได้รับการประเมินตามเกณฑ์ความเป็นไปได้และความสามารถในการทดสอบ
การออกแบบสถาปัตยกรรมระบบประกอบด้วยการพิจารณาส่วนประกอบของอุปกรณ์ (ฮาร์ดแวร์) ซอฟต์แวร์และการดำเนินการที่ดำเนินการโดยบุคลากรที่ปฏิบัติการระบบ สถาปัตยกรรมของระบบควรสอดคล้องกับข้อกำหนดของระบบรวมถึงมาตรฐานการออกแบบและแนวทางปฏิบัติที่เป็นที่ยอมรับ
การวิเคราะห์ข้อกำหนดของซอฟต์แวร์เกี่ยวข้องกับการพิจารณาคุณสมบัติต่อไปนี้สำหรับแต่ละองค์ประกอบซอฟต์แวร์:
- ฟังก์ชันการทำงานรวมถึงลักษณะการทำงานและสภาพแวดล้อมการทำงานของส่วนประกอบ
- อินเตอร์เฟสภายนอก
- ข้อกำหนดความน่าเชื่อถือและความปลอดภัย
- ข้อกำหนดด้านการยศาสตร์
- ข้อกำหนดสำหรับข้อมูลที่ใช้
- ข้อกำหนดในการติดตั้งและการยอมรับ
- ข้อกำหนดสำหรับเอกสารผู้ใช้;
- ข้อกำหนดสำหรับการใช้งานและการบำรุงรักษา
ข้อกำหนดซอฟต์แวร์จะถูกประเมินตามเกณฑ์สำหรับการตอบสนองความต้องการของระบบโดยรวมความเป็นไปได้และการตรวจสอบได้ในระหว่างการทดสอบ
การออกแบบสถาปัตยกรรมซอฟต์แวร์มีงานต่อไปนี้สำหรับส่วนประกอบซอฟต์แวร์แต่ละรายการ:
- การแปลงความต้องการซอฟต์แวร์เป็นสถาปัตยกรรมที่กำหนดโครงสร้างของซอฟต์แวร์และองค์ประกอบของส่วนประกอบในระดับสูง
- การพัฒนาและจัดทำเอกสารของส่วนต่อประสานซอฟต์แวร์และฐานข้อมูล (DB);
- การพัฒนาเอกสารสำหรับผู้ใช้เบื้องต้น
- การพัฒนาและจัดทำเอกสารข้อกำหนดเบื้องต้นของการทดสอบและแผนการรวมซอฟต์แวร์
การออกแบบซอฟต์แวร์โดยละเอียดประกอบด้วยงานต่อไปนี้:
- คำอธิบายของส่วนประกอบซอฟต์แวร์และส่วนต่อประสานระหว่างกันในระดับที่ต่ำกว่าเพียงพอสำหรับการเข้ารหัสและการทดสอบในภายหลัง
- การพัฒนาและจัดทำเอกสารของการออกแบบฐานข้อมูลอย่างละเอียด
- อัปเดตเอกสารผู้ใช้ (ถ้าจำเป็น)
- การพัฒนาและจัดทำเอกสารข้อกำหนดการทดสอบและแผนการทดสอบสำหรับส่วนประกอบซอฟต์แวร์
การเข้ารหัสและทดสอบซอฟต์แวร์รวมถึงงานต่อไปนี้:
- การเข้ารหัสและจัดทำเอกสารแต่ละองค์ประกอบของซอฟต์แวร์และฐานข้อมูลรวมถึงการเตรียมชุดของขั้นตอนการทดสอบและข้อมูลสำหรับการทดสอบ
- การทดสอบส่วนประกอบซอฟต์แวร์และฐานข้อมูลแต่ละรายการเพื่อให้สอดคล้องกับข้อกำหนดสำหรับพวกเขาตามด้วยการบันทึกผลการทดสอบ
- อัปเดตเอกสาร (ถ้าจำเป็น);
- อัปเดตแผนบูรณาการซอฟต์แวร์
การรวมซอฟต์แวร์จัดเตรียมไว้สำหรับการประกอบส่วนประกอบซอฟต์แวร์ที่พัฒนาขึ้นตามแผนการรวมและการทดสอบของส่วนประกอบรวม สำหรับแต่ละส่วนประกอบที่รวบรวมชุดทดสอบและขั้นตอนการทดสอบได้รับการพัฒนาขึ้นเพื่อทดสอบข้อกำหนดคุณสมบัติแต่ละประการในระหว่างการทดสอบคุณสมบัติที่ตามมา ข้อกำหนดคุณสมบัติเป็นชุดของเกณฑ์หรือเงื่อนไขที่ต้องปฏิบัติตามเพื่อให้มีคุณสมบัติ ซอฟต์แวร์ ตามข้อกำหนดและพร้อมใช้งานในสนาม
การทดสอบคุณสมบัติของซอฟต์แวร์ดำเนินการโดยผู้พัฒนาต่อหน้าลูกค้า (
กระบวนการดำเนินงานบนโลกไซเบอร์กิจกรรมและงานขององค์กรของผู้ประกอบการดำเนินงานระบบ กระบวนการดำเนินการรวมถึงขั้นตอนต่อไปนี้
งานเตรียมการซึ่งรวมถึงงานต่อไปนี้โดยผู้ปฏิบัติงาน:
- กิจกรรมการวางแผนและงานที่ทำระหว่างปฏิบัติงานและกำหนดมาตรฐานการปฏิบัติงาน
- การกำหนดขั้นตอนการแปลและการแก้ไขปัญหาที่เกิดขึ้นระหว่างการดำเนินการ
- การทดสอบการปฏิบัติงานดำเนินการสำหรับการแก้ไขแต่ละครั้งของผลิตภัณฑ์ซอฟต์แวร์หลังจากนั้นการโอนการแก้ไขนี้ไปยังการทำงาน
- การดำเนินการจริงของระบบซึ่งดำเนินการในสภาพแวดล้อมที่กำหนดตามเอกสารของผู้ใช้
- การวิเคราะห์ปัญหาและการร้องขอการปรับเปลี่ยนซอฟต์แวร์ (การวิเคราะห์ข้อความเกี่ยวกับปัญหาหรือการร้องขอการแก้ไขการประเมินขนาดต้นทุนการแก้ไขผลที่ได้รับการประเมินความเป็นไปได้ของการแก้ไข)
- การดัดแปลงซอฟต์แวร์ (ทำการเปลี่ยนแปลงส่วนประกอบซอฟต์แวร์และเอกสารประกอบตามกฎของกระบวนการพัฒนา)
- การตรวจสอบและการยอมรับ (ในแง่ของความสมบูรณ์ของระบบที่ปรับเปลี่ยน);
- การถ่ายโอนซอฟต์แวร์ไปยังสภาพแวดล้อมอื่น (การแปลงโปรแกรมและข้อมูลการใช้งานซอฟต์แวร์แบบขนานในสภาพแวดล้อมแบบเก่าและใหม่ในช่วงระยะเวลาหนึ่ง)
- การรื้อถอนซอฟต์แวร์ตามการตัดสินใจของลูกค้าโดยการมีส่วนร่วมขององค์กรปฏิบัติการบริการสนับสนุนและผู้ใช้ ในกรณีนี้ผลิตภัณฑ์ซอฟต์แวร์และเอกสารประกอบอาจมีการเก็บถาวรตามสัญญา
วงจรชีวิตของซอฟต์แวร์ ขั้นตอนและขั้นตอน
วงจรชีวิตของ IS คือชุดของเหตุการณ์ที่เกิดขึ้นกับระบบระหว่างการสร้างและใช้งาน
เวที - ส่วนหนึ่งของกระบวนการพัฒนาซอฟต์แวร์ถูก จำกัด โดยกรอบเวลาที่แน่นอนและสิ้นสุดด้วยการเปิดตัวผลิตภัณฑ์เฉพาะ (รุ่นส่วนประกอบซอฟต์แวร์เอกสารประกอบ) ที่กำหนดโดยข้อกำหนดที่กำหนดไว้สำหรับขั้นตอนนี้
วงจรชีวิตเป็นแบบดั้งเดิมตามลำดับขั้นตอน (หรือระยะ) ปัจจุบันยังไม่มีการแบ่งวงจรชีวิตของระบบซอฟต์แวร์ที่เป็นที่ยอมรับโดยทั่วไปในขั้นตอนต่างๆ บางครั้งเวทีแยกออกเป็นรายการแยกต่างหากบางครั้งก็ถูกรวมเป็นส่วนหนึ่งของสเตจที่ใหญ่ขึ้น การดำเนินการในขั้นตอนใดขั้นตอนหนึ่งอาจแตกต่างกันไป ไม่มีความสม่ำเสมอในชื่อของขั้นตอนเหล่านี้
ตามเนื้อผ้าขั้นตอนหลักต่อไปนี้ของวงจรชีวิตของซอฟต์แวร์จะแตกต่าง:
การวิเคราะห์ความต้องการ
ออกแบบ,
การเข้ารหัส (การเขียนโปรแกรม)
การทดสอบและการดีบัก
การดำเนินงานและการบำรุงรักษา.
วงจรชีวิตของซอฟต์แวร์ แบบจำลองน้ำตก
แบบจำลองน้ำตก (70-80 ปี) umes ถือว่าการเปลี่ยนเป็นระยะต่อไปหลังจากเสร็จสิ้นการทำงานในระยะก่อนหน้า
ความสำเร็จหลักของโมเดลน้ำตกคือการเสร็จสิ้นระยะ ทำให้สามารถวางแผนต้นทุนและกำหนดเวลาได้ นอกจากนี้เอกสารโครงการจะเกิดขึ้นที่สมบูรณ์และสอดคล้องกัน
โมเดล Waterfall สามารถใช้งานกับโครงการซอฟต์แวร์ขนาดเล็กที่มีข้อกำหนดที่ชัดเจนและไม่สามารถเปลี่ยนแปลงได้ กระบวนการจริงสามารถเปิดเผยความล้มเหลวได้ในทุกขั้นตอนซึ่งนำไปสู่การย้อนกลับไปยังหนึ่งในขั้นตอนก่อนหน้า รูปแบบของการผลิตซอฟต์แวร์ดังกล่าวคือการส่งคืนแบบเรียงซ้อน
วงจรชีวิตของซอฟต์แวร์ ตัวแบบทีละขั้นตอนพร้อมการควบคุมระดับกลาง
โมเดลทีละขั้นตอนพร้อมการควบคุมระดับกลาง (80-85) model เป็นรูปแบบซ้ำ ๆ ของการพัฒนาซอฟต์แวร์พร้อมลูปข้อเสนอแนะระหว่างแต่ละขั้นตอน ข้อดีของรุ่นนี้คือการปรับเปลี่ยนระหว่างขั้นตอนนั้นใช้แรงงานน้อยกว่าโมเดลน้ำตก อย่างไรก็ตามอายุการใช้งานของแต่ละขั้นตอนจะขยายออกไปตลอดระยะเวลาการพัฒนาทั้งหมด
ขั้นตอนหลักของการแก้ปัญหา
วัตถุประสงค์ของการเขียนโปรแกรมคือเพื่ออธิบายกระบวนการประมวลผลข้อมูล (ซึ่งต่อไปนี้จะเรียกว่ากระบวนการง่ายๆ)
Data (data) เป็นตัวแทนของข้อเท็จจริงและความคิดในรูปแบบที่เป็นทางการเหมาะสำหรับการถ่ายโอนและการประมวลผลในกระบวนการบางอย่างและข้อมูล (ข้อมูล) เป็นความหมายที่มอบให้กับข้อมูลเมื่อมีการนำเสนอ
การประมวลผลข้อมูลเป็นการประมวลผลลำดับของการกระทำที่เป็นระบบต่อข้อมูล ข้อมูลจะถูกนำเสนอและเก็บไว้ในผู้ให้บริการข้อมูล
การรวบรวมผู้ให้บริการข้อมูลที่ใช้ในการประมวลผลข้อมูลชนิดใดเรียกว่าสื่อข้อมูล
ชุดของข้อมูลที่มีอยู่ในช่วงเวลาใด ๆ ในสภาพแวดล้อมข้อมูล - สถานะของสภาพแวดล้อมข้อมูล
กระบวนการสามารถกำหนดเป็นลำดับของสถานะต่อเนื่องของสภาพแวดล้อมข้อมูลที่แน่นอน
เพื่ออธิบายกระบวนการหมายถึงการกำหนดลำดับสถานะของสภาพแวดล้อมข้อมูล เพื่อให้กระบวนการที่ต้องการถูกสร้างขึ้นโดยอัตโนมัติบนคอมพิวเตอร์เครื่องใดก็ได้ตามคำอธิบายที่กำหนดจำเป็นต้องให้คำอธิบายนี้เป็นทางการ
เกณฑ์คุณภาพซอฟต์แวร์
ผลิตภัณฑ์เชิงพาณิชย์ (ผลิตภัณฑ์บริการ) ต้องเป็นไปตามข้อกำหนดของลูกค้า
คุณภาพเป็นลักษณะวัตถุประสงค์ของผลิตภัณฑ์ (ผลิตภัณฑ์บริการ) แสดงระดับความพึงพอใจของลูกค้า
ลักษณะคุณภาพ:
สามารถในการทำงาน - ระบบทำงานและใช้งานฟังก์ชั่นที่ต้องการ
ความเชื่อถือได้ - ระบบทำงานโดยไม่มีความล้มเหลวและความล้มเหลว
คืน.
อย่างมีประสิทธิภาพ - ระบบใช้ฟังก์ชั่นในวิธีที่ดีที่สุด
ประสิทธิภาพเชิงเศรษฐกิจ - ต้นทุนขั้นต่ำของผลิตภัณฑ์ขั้นสุดท้ายพร้อมผลกำไรสูงสุด
ลักษณะคุณภาพ:
โดยคำนึงถึงปัจจัยมนุษย์ - ใช้งานง่าย, ความเร็วในการเรียนรู้ที่จะทำงานกับ PP, บำรุงรักษาง่าย, เปลี่ยนแปลง
ความเบา (พกพาได้) - พกพาโค้ดไปยังแพลตฟอร์มหรือระบบอื่นได้
ฟังก์ชั่นครบถ้วน - อาจเป็นการใช้งานฟังก์ชั่นภายนอกที่สมบูรณ์ที่สุด
ความแม่นยำในการคำนวณ
คุณสมบัติอัลกอริทึม
ประสิทธิผล หมายถึงความเป็นไปได้ที่จะได้รับผลลัพธ์หลังจากดำเนินการเป็นจำนวน จำกัด
ความเชื่อมั่น ประกอบด้วยความบังเอิญของผลลัพธ์ที่ได้โดยไม่คำนึงถึงผู้ใช้และวิธีการทางเทคนิคที่ใช้
ตัวละครจำนวนมาก ประกอบด้วยความเป็นไปได้ของการใช้อัลกอริทึมกับปัญหาทั้งหมดในประเภทเดียวกันโดยมีค่าเฉพาะของข้อมูลเริ่มต้นแตกต่างกัน
Discreteness - ความเป็นไปได้ของการแบ่งกระบวนการคำนวณที่กำหนดโดยอัลกอริทึมเป็นขั้นตอนแยกความสามารถในการเลือกส่วนของโปรแกรมที่มีโครงสร้างบางอย่าง
วิธีการอธิบายอัลกอริธึม
มีวิธีต่อไปนี้เพื่ออธิบาย (แสดง) อัลกอริทึม:
1. คำอธิบายด้วยวาจา;
2. คำอธิบายของอัลกอริทึมโดยใช้สูตรทางคณิตศาสตร์
3. คำอธิบายกราฟิกของอัลกอริทึมในรูปแบบบล็อกไดอะแกรม
4. คำอธิบายของอัลกอริทึมโดยใช้ pseudocode
5. รวมวิธีการแสดงอัลกอริทึมโดยใช้วาจากราฟิกและวิธีการอื่น ๆ .
6. ใช้มุ้ง Petri
คำอธิบายด้วยวาจา อัลกอริทึมเป็นคำอธิบายของโครงสร้างของอัลกอริทึมในภาษาธรรมชาติ ตัวอย่างเช่นเครื่องใช้ในครัวเรือนมักจะมาพร้อมกับคู่มือการใช้งานเช่น คำอธิบายด้วยวาจาของอัลกอริทึมตามที่อุปกรณ์นี้จะใช้
คำอธิบายกราฟิก อัลกอริทึมในรูปแบบของผังเป็นคำอธิบายโครงสร้างของอัลกอริทึมโดยใช้รูปทรงเรขาคณิตกับสายการสื่อสาร
แผนผังลำดับงานเป็นการแสดงกราฟิกของวิธีการแก้ปัญหาที่ใช้อักขระพิเศษเพื่อแสดงการดำเนินการ
สัญลักษณ์ที่ประกอบกันเป็นไดอะแกรมบล็อกของอัลกอริทึมถูกกำหนดโดย GOST 19.701-90 GOST นี้สอดคล้องกับมาตรฐานสากลสำหรับการออกแบบอัลกอริธึมดังนั้นบล็อกไดอะแกรมของอัลกอริธึมที่สร้างขึ้นตาม GOST 19.701-90 นั้นมีความเข้าใจอย่างไม่น่าสงสัยในประเทศต่าง ๆ
pseudocode - คำอธิบายโครงสร้างของอัลกอริทึมในภาษาที่เป็นธรรมชาติ pseudocode ใช้โครงสร้างที่เป็นทางการและสัญกรณ์คณิตศาสตร์ทั่วไป ไม่มีกฎไวยากรณ์ที่เข้มงวดสำหรับการเขียน pseudocode
ลองดูตัวอย่างที่ง่ายที่สุด ให้มีความจำเป็นต้องอธิบายอัลกอริทึมสำหรับการแสดงค่าที่ใหญ่ที่สุดของตัวเลขสองตัวบนหน้าจอมอนิเตอร์
เต็มตัว 1 - ตัวอย่างของคำอธิบายของอัลกอริทึมในรูปแบบของบล็อกไดอะแกรม
คำอธิบายของอัลกอริทึมเดียวกันใน pseudocode:
2. ป้อนตัวเลข: Z, X
3. ถ้า Z\u003e X ดังนั้นให้สรุป Z
4. มิฉะนั้นเอาต์พุต X
วิธีการแสดงอัลกอริทึมแต่ละรายการที่แสดงนั้นมีทั้งข้อดีและข้อเสีย ตัวอย่างเช่นวิธีการทางวาจามีความโดดเด่นในเรื่องของความฟุ้งซ่านและการขาดความชัดเจน แต่ก็ทำให้สามารถอธิบายการปฏิบัติงานของแต่ละบุคคลได้ดีขึ้น วิธีกราฟิกเป็นภาพมากขึ้น แต่มักจะจำเป็นต้องอธิบายการดำเนินการบางอย่างในรูปแบบวาจา ดังนั้นเมื่อพัฒนาอัลกอริทึมที่ซับซ้อนจะดีกว่าที่จะใช้วิธีการรวมกัน
ประเภทอัลกอริทึม
เชิงเส้น
แตกแขนง;
เป็นวงกลม
· อัลกอริทึมเชิงเส้น - ชุดคำสั่ง (คำสั่ง) ดำเนินการตามลำดับทีละรายการ
· ขั้นตอนวิธีการแยก - อัลกอริทึมที่มีเงื่อนไขอย่างน้อยหนึ่งข้ออันเป็นผลมาจากการตรวจสอบว่าคอมพิวเตอร์ให้การเปลี่ยนเป็นหนึ่งในสองขั้นตอนที่เป็นไปได้
· วงจรอัลกอริทึม - อัลกอริทึมที่ให้การทำซ้ำหลายครั้งของการกระทำเดียวกัน (การดำเนินการเดียวกัน) เหนือข้อมูลเริ่มต้นใหม่ วิธีการคำนวณส่วนใหญ่การนับตัวเลือกจะลดลงเป็นอัลกอริธึมแบบวนรอบ วัฏจักรของโปรแกรม - ลำดับของคำสั่ง (อนุกรม, ตัวลูป) ซึ่งสามารถดำเนินการได้หลายครั้ง (สำหรับข้อมูลเริ่มต้นใหม่) จนกว่าจะได้รับเงื่อนไขที่แน่นอน
C. ประเภทข้อมูล
ชนิดข้อมูลเป็นคำอธิบายของช่วงของค่าที่ตัวแปรของชนิดที่ระบุสามารถใช้ได้ ข้อมูลแต่ละประเภทมีลักษณะดังนี้:
1. จำนวนไบต์ที่ถูกครอบครอง (ขนาด)
2. ช่วงของค่าที่ตัวแปรประเภทนี้สามารถใช้ได้
ชนิดข้อมูลทั้งหมดสามารถแบ่งออกเป็นประเภทต่อไปนี้:
1. แบบง่าย (เซนต์คิตส์และเนวิส) ชนิดที่ซับซ้อน
2. พื้นฐาน (ระบบ) และผู้ใช้กำหนด (กำหนดโดยผู้ใช้)
ในภาษา C ระบบชนิดฐานถูกสร้างขึ้นโดยชนิดข้อมูลสี่ชนิด:
1.character,
2.integer,
3. ความแม่นยำเดียวจริง
4. ความแม่นยำสองเท่าจริง
โครงสร้างของโปรแกรม C
1. ผู้ประกอบการของภาษา C ++
ผู้ควบคุมควบคุมกระบวนการดำเนินการของโปรแกรม ชุดของตัวดำเนินการ C ++ ประกอบด้วยโครงสร้างการควบคุมทั้งหมดของการเขียนโปรแกรมที่มีโครงสร้าง
คำสั่งผสมถูกคั่นด้วยเครื่องหมายปีกกา ตัวดำเนินการอื่นทั้งหมดลงท้ายด้วยเครื่องหมายอัฒภาค
ผู้ประกอบการที่ว่างเปล่า -;
ตัวดำเนินการว่างเปล่าเป็นตัวดำเนินการแบบอัฒภาคเท่านั้น มันสามารถปรากฏที่ใดก็ได้ในโปรแกรมที่ไวยากรณ์ต้องมีคำสั่ง การดำเนินการคำสั่งที่ว่างเปล่าไม่ได้เปลี่ยนสถานะของโปรแกรม
ตัวดำเนินการแบบผสม - (... )
การกระทำของคำสั่งผสมประกอบในการดำเนินการตามลำดับของคำสั่งที่มีอยู่ในมันยกเว้นกรณีเหล่านั้นเมื่อคำสั่งใด ๆ ถ่ายโอนการควบคุมไปยังสถานที่อื่นในโปรแกรมอย่างชัดเจน
ผู้ประกอบการจัดการข้อยกเว้น
ลอง (<операторы> }
จับ (<объявление исключения>) { <операторы> }
จับ (<объявление исключения>) { <операторы> }
...
จับ (<объявление исключения>) { <операторы> }
ผู้ประกอบการตามเงื่อนไข
ถ้า (<выражение>) <оператор 1>
เปลี่ยนโอเปอเรเตอร์
สวิตซ์ (<выражение>)
(กรณี<константное выражение 1>: <операторы 1>
กรณี<константное выражение 2>: <операторы 2>
...
กรณี<константное выражение N>: <операторы N>
}
ตัวดำเนินการสลับมีวัตถุประสงค์เพื่อเลือกหนึ่งในหลายวิธีของการดำเนินการโปรแกรมทางเลือก การประเมินผลของผู้ประกอบการสวิตช์เริ่มต้นด้วยการประเมินผลของการแสดงออกหลังจากนั้นการควบคุมจะถูกโอนไปยังผู้ประกอบการที่มีเครื่องหมายนิพจน์คงที่เท่ากับมูลค่าการประเมินของการแสดงออก ทางออกจากโอเปอเรเตอร์สวิตช์จะดำเนินการโดยโอเปอเรเตอร์เบรกเกอร์ หากค่าของการแสดงออกไม่เท่ากับการแสดงออกคงที่ใด ๆ แล้วการควบคุมจะถูกโอนไปยังผู้ประกอบการที่มีเครื่องหมายคำหลักเริ่มต้นถ้ามี
ผู้ประกอบการวนกับเงื่อนไข
ในขณะที่ (<выражение>) <оператор>
ผู้ประกอบการวนกับ postcondition
ทำ<оператор> ในขณะที่<выражение>;
ในภาษา C ++ ตัวดำเนินการนี้แตกต่างจากการใช้คลาสสิกของลูปกับ postcondition ซึ่งหากนิพจน์เป็นจริงลูปจะดำเนินต่อไปและไม่ออกจากลูป
ผู้ประกอบการวงจรขั้นตอน
สำหรับ (<начальное выражение>];
[<условное выражение>];
[<выражение приращения>])
<оператор>
เนื้อความของคำสั่ง for ถูกเรียกใช้งานจนกว่านิพจน์เงื่อนไขจะกลายเป็นเท็จ (เท่ากับ 0) นิพจน์เริ่มต้นและนิพจน์ส่วนเพิ่มมักใช้เพื่อเริ่มต้นและแก้ไขพารามิเตอร์ลูปและค่าอื่น ๆ นิพจน์เริ่มต้นจะถูกประเมินหนึ่งครั้งก่อนการทดสอบนิพจน์เงื่อนไขครั้งแรกและนิพจน์ส่วนเพิ่มจะถูกประเมินหลังจากประมวลผลคำสั่งแต่ละครั้ง คุณสามารถละเว้นนิพจน์ส่วนหัวสามวงใดก็ได้หรือเว้นทั้งสามอย่าง (อย่าลืมเว้นเครื่องหมายอัฒภาค) หากละเว้นนิพจน์แบบมีเงื่อนไขจะถือว่าเป็นจริงและลูปจะไม่สิ้นสุด
ตัวดำเนินการวนรอบ stepwise ในภาษา C ++ เป็นโครงสร้างที่ยืดหยุ่นและสะดวกสบายดังนั้นตัวดำเนินการวนรอบที่มีเงื่อนไขก่อนหน้านี้จึงถูกใช้บ่อยมากในภาษา C ++ เนื่องจาก ในกรณีส่วนใหญ่จะสะดวกกว่าในการใช้คำสั่ง for
ทำลายผู้ประกอบการ
หยุดพัก;
คำสั่ง break หยุดการทำงานของ while, do, for และ switch สามารถมีอยู่ในเนื้อหาของข้อความเหล่านี้เท่านั้น การควบคุมจะถูกถ่ายโอนไปยังผู้ควบคุมโปรแกรมหลังจากที่ถูกขัดจังหวะ หากคำสั่ง break ถูกเขียนภายในซ้อนในขณะที่, ทำ, สำหรับ, สลับคำสั่งจากนั้นคำสั่งนั้นจะยกเลิกเฉพาะคำสั่งที่ล้อมรอบทันทีเท่านั้น
ผู้ประกอบการต่อเนื่อง
ยังคง;
ตัวดำเนินการความต่อเนื่องถ่ายโอนการควบคุมไปยังการวนซ้ำถัดไปใน while, do, สำหรับคำสั่งวนซ้ำ สามารถมีอยู่ในเนื้อหาของข้อความเหล่านี้เท่านั้น ในคำสั่ง do และ while การทำซ้ำครั้งถัดไปจะเริ่มต้นโดยการประเมินนิพจน์แบบมีเงื่อนไข ในคำสั่ง for การทำซ้ำครั้งถัดไปจะเริ่มต้นโดยการประเมินนิพจน์ที่เพิ่มขึ้นแล้วประเมินผลของนิพจน์เงื่อนไข
ส่งคืนผู้ประกอบการ
คืน [<выражение>];
คำสั่งส่งคืนสิ้นสุดการดำเนินการของฟังก์ชันที่มีอยู่และส่งคืนการควบคุมไปยังฟังก์ชั่นการโทร การควบคุมจะถูกส่งไปยังจุดของฟังก์ชั่นการโทร
ถ้า (นิพจน์บูลีน)
ผู้ประกอบการ;
ถ้า (นิพจน์บูลีน)
operator_1;
operator_2;
<логическое выражение> ? <выражение_1> : <выражение_2>;
หากค่าของนิพจน์โลจิคัลเป็นจริงจะมีการประเมิน expression_1 มิฉะนั้นจะมีการประเมิน expression_2
สวิตช์ (นิพจน์จำนวนเต็ม)
มูลค่ากรณี _ 1:
statement_sequence_1;
มูลค่ากรณี _2:
statement_sequence_2;
มูลค่า case_n:
statement_sequence_n;
ค่าเริ่มต้น:
statement_sequence_n + 1;
สาขา ค่าเริ่มต้น ไม่สามารถอธิบายได้ มันจะถูกดำเนินการหากไม่มีการแสดงออกที่ระดับสูงกว่าเป็นที่พอใจ
ผู้ประกอบการวน
Turbo C มีโครงสร้างต่อไปนี้ที่อนุญาตให้คุณตั้งโปรแกรมลูป: ในขณะที่ทำในขณะที่ และ สำหรับ ... โครงสร้างของพวกเขาสามารถอธิบายได้ดังนี้
วนรอบด้วยการตรวจสอบสภาพที่ด้านบน:
ผู้ประกอบการคัดเลือก
หากการกระทำที่ต้องดำเนินการในโปรแกรมขึ้นอยู่กับค่าของตัวแปรบางตัวคุณสามารถใช้คำสั่ง select ในเวลาเดียวกันใน C ++ สามารถใช้ตัวแปรตัวเลขเท่านั้นเป็นตัวแปรในคำสั่ง select โดยทั่วไปบันทึกของตัวดำเนินการที่เลือกมีลักษณะดังนี้:
สวิตช์ (ตัวแปร)
{
กรณีค่า 1:
actions1
หยุดพัก;
กรณีค่า 2:
action2
หยุดพัก;
...
ค่าเริ่มต้น:
การกระทำเริ่มต้น
}
จะต้องเพิ่มคีย์เวิร์ดการแบ่งในส่วนท้ายของแต่ละสาขา มันหยุดการดำเนินการของการดำเนินการเลือก หากคุณไม่ได้เขียนหลังจากดำเนินการจากสาขาหนึ่งของการเลือกการดำเนินการของสาขาดังต่อไปนี้จะดำเนินการต่อ อย่างไรก็ตามบางครั้งคุณสมบัติของตัวเลือกนี้มีประโยชน์ตัวอย่างเช่นหากคุณต้องการดำเนินการเดียวกันสำหรับค่าต่าง ๆ ของตัวแปร
สวิตช์ (ตัวแปร)
{
กรณีค่า 1:
กรณีค่า 2:
actions1
หยุดพัก;
มูลค่ากรณี 3:
action2
หยุดพัก;
...
}
ตัวอย่างการใช้ตัวเลือก:
int n, x;
...
สวิตช์ (n)
{
กรณีที่ 0:
หยุดพัก; // ถ้า n คือ 0 เราจะไม่ทำการกระทำใด ๆ
กรณีที่ 1:
กรณีที่ 2:
กรณีที่ 3:
x \u003d 3 * n; // ถ้า n คือ 1, 2 หรือ 3 เราจะทำการกระทำบางอย่าง
หยุดพัก;
กรณีที่ 4:
x \u003d n; // ถ้า n คือ 4 ให้ทำอย่างอื่น
หยุดพัก;
ค่าเริ่มต้น:
x \u003d 0; // สำหรับค่าอื่นทั้งหมดของ n ให้ดำเนินการตามค่าเริ่มต้น
}
C. Loop: วนรอบพร้อมพารามิเตอร์
รูปแบบทั่วไปของการเข้า
สำหรับ (การกำหนดค่าเริ่มต้นของพารามิเตอร์ตรวจสอบเงื่อนไขการเลิกจ้างแก้ไขพารามิเตอร์) (
บล็อกของการดำเนินงาน
for เป็น parametric loop (วนซ้ำจำนวนคงที่) ในการจัดระเบียบวงจรดังกล่าวมีความจำเป็นต้องดำเนินการสามอย่าง:
§ การเริ่มต้นพารามิเตอร์ - การกำหนดค่าเริ่มต้นให้กับพารามิเตอร์วน
§ ตรวจสอบสภาพสิ้นสุด - การเปรียบเทียบค่าพารามิเตอร์กับค่าขอบเขตที่แน่นอน
§ การแก้ไขพารามิเตอร์ - เปลี่ยนค่าของพารามิเตอร์ด้วยเนื้อเรื่องแต่ละตอนของเนื้อความลูป
การดำเนินการทั้งสามนี้เขียนในวงเล็บและคั่นด้วยเครื่องหมายอัฒภาค (;) โดยทั่วไปแล้วพารามิเตอร์ loop เป็นตัวแปรจำนวนเต็ม
พารามิเตอร์ถูกเตรียมใช้งานเพียงครั้งเดียว - เมื่อ for for loop เริ่มดำเนินการ เงื่อนไขสิ้นสุดจะถูกตรวจสอบก่อนการประมวลผลลูปเนื้อความที่เป็นไปได้ เมื่อนิพจน์กลายเป็นเท็จ (เท่ากับศูนย์) ลูปจะสิ้นสุดลง พารามิเตอร์จะถูกปรับในตอนท้ายของแต่ละการประมวลผลของลูปบอดี้ พารามิเตอร์สามารถเพิ่มหรือลดได้
ตัวอย่าง
#include
int main () (
สำหรับ (num \u003d 1; num< 5; num++)
printf ("num \u003d% d \\ n", num);
ศรี ห่วงกับเงื่อนไข
รูปแบบทั่วไปของการเข้า
ในขณะที่ (นิพจน์) (
บล็อกของการดำเนินงาน
}
หากการแสดงออกเป็นจริง (ไม่เท่ากับศูนย์) แล้วบล็อกของการดำเนินงานที่อยู่ในวงเล็บปีกกาจะถูกดำเนินการแล้วการแสดงออกการตรวจสอบอีกครั้ง ลำดับของการกระทำประกอบด้วยการตรวจสอบและดำเนินการบล็อกการดำเนินการซ้ำจนกระทั่งนิพจน์กลายเป็นเท็จ (เท่ากับศูนย์) ในกรณีนี้การวนซ้ำจะถูกออกและการดำเนินการหลังจากตัวดำเนินการวนซ้ำ
ตัวอย่าง
int k \u003d 5;
int i \u003d 1;
int sum \u003d 0;
ขณะที่ฉัน<=k) {
เมื่อสร้างห่วงลูปในขณะนั้นจำเป็นต้องมีสิ่งปลูกสร้างในนั้นที่เปลี่ยนค่าของนิพจน์ที่ทดสอบเพื่อที่ว่าในท้ายที่สุดมันจะกลายเป็นเท็จ (เท่ากับศูนย์) มิฉะนั้นการวนซ้ำจะถูกดำเนินการอย่างไม่สิ้นสุด (infinite loop)
บล็อกของการดำเนินงาน
}
ในขณะที่เป็นวงรอบที่มีเงื่อนไขดังนั้นจึงค่อนข้างเป็นไปได้ที่ร่างกายของลูปจะไม่ถูกเรียกใช้งานแม้แต่ครั้งเดียวหากเงื่อนไขการตรวจสอบกลายเป็นเท็จในเวลาที่ตรวจสอบครั้งแรก
ศรี วนรอบด้วย postcondition
วนซ้ำกับ postcondition ทำ ... ในขณะที่
รูปแบบทั่วไปของการเข้า
บล็อกของการดำเนินงาน
) ในขณะที่ (แสดงออก);
วนรอบด้วย postcondition
do ... while loop เป็นลูปที่มี postcondition ซึ่งความจริงของนิพจน์จะถูกตรวจสอบหลังจากการดำเนินการทั้งหมดที่รวมอยู่ในบล็อกที่ล้อมรอบด้วยวงเล็บปีกกาถูกดำเนินการแล้วเนื้อความของลูปจะถูกดำเนินการจนกระทั่งนิพจน์กลายเป็นเท็จนั่นคือเนื้อหาของลูป ครั้งหนึ่ง
จะเป็นการดีกว่าถ้าใช้ do ... ในขณะที่ลูปในกรณีที่ต้องทำการวนซ้ำอย่างน้อยหนึ่งครั้งหรือเมื่อการเริ่มต้นของวัตถุที่เข้าร่วมในการตรวจสอบสภาพเกิดขึ้นภายในร่างกายลูป
ตัวอย่าง... ป้อนตัวเลขตั้งแต่ 0 ถึง 10
#include
#include
int main () (
ระบบ ("chcp 1251");
printf ("โปรดป้อนตัวเลขระหว่าง 0 ถึง 10:");
scanf ("% d", & NUM)
) ในขณะที่ ((จำนวน< 0) || (num > 10));
printf ("คุณป้อนหมายเลข% d", NUM);
getchar (); getchar ();
การกำหนดฟังก์ชั่น
ลองพิจารณาคำจำกัดความของฟังก์ชันโดยใช้ตัวอย่างฟังก์ชันผลรวม
ใน C และ C ++ ไม่จำเป็นต้องกำหนดฟังก์ชันจนกว่าจะใช้ แต่จะต้องประกาศก่อนหน้านี้ แต่หลังจากทั้งหมดนี้ในที่สุดฟังก์ชั่นนี้จะต้องกำหนด ต้นแบบฟังก์ชั่นและคำจำกัดความของมันจะถูกเชื่อมโยงและสามารถใช้ฟังก์ชั่นได้
หากฟังก์ชั่นได้รับการประกาศก่อนหน้านี้จะต้องกำหนดด้วยค่าตอบแทนและประเภทข้อมูลเดียวกันมิฉะนั้นจะมีการสร้างฟังก์ชันโอเวอร์โหลดใหม่ โปรดทราบว่าชื่อของพารามิเตอร์ฟังก์ชั่นไม่จำเป็นต้องเหมือนกัน
การพัฒนา VT กำลังขยายชั้นเรียนอย่างต่อเนื่องเพื่อแก้ไขที่เกี่ยวข้องกับการประมวลผลข้อมูลในลักษณะที่แตกต่างกัน
โดยทั่วไปแล้วข้อมูลเหล่านี้มีสามประเภทและตามมาด้วยปัญหาสามระดับสำหรับการแก้ปัญหาการใช้คอมพิวเตอร์:
1) งานคำนวณที่เกี่ยวข้องกับการประมวลผลข้อมูลตัวเลข ตัวอย่างเหล่านี้รวมถึงปัญหาในการแก้ไขระบบสมการเชิงเส้นของมิติใหญ่ มันเคยเป็นสาขาหลักของการใช้คอมพิวเตอร์
2) งานสำหรับการประมวลผลข้อมูลสัญลักษณ์ที่เกี่ยวข้องกับการสร้างการแก้ไขและการแปลงข้อมูลข้อความ การแก้ปัญหาของงานดังกล่าวมีความเกี่ยวข้องกับงานตัวอย่างของเลขาพิมพ์ดีด
3) งานสำหรับประมวลผลข้อมูลกราฟิกเช่น ไดอะแกรมภาพวาดกราฟสเก็ตช์ ฯลฯ งานดังกล่าวรวมถึงงานพัฒนาภาพวาดของผลิตภัณฑ์ใหม่โดยนักออกแบบ
4) งานสำหรับการประมวลผลข้อมูลตัวเลขและตัวอักษร - คือ ทุกวันนี้มันได้กลายเป็นหนึ่งในพื้นที่หลักของแอปพลิเคชันคอมพิวเตอร์และงานมีความซับซ้อนมากขึ้น
การแก้ปัญหาคอมพิวเตอร์ของแต่ละชั้นเรียนมีลักษณะเฉพาะของตนเอง แต่สามารถแบ่งออกเป็นหลายขั้นตอนซึ่งเป็นเรื่องปกติสำหรับปัญหาส่วนใหญ่
เทคโนโลยีการเขียนโปรแกรม ศึกษากระบวนการทางเทคโนโลยีและลำดับขั้นตอน (ขั้นตอน) โดยใช้ความรู้วิธีการและวิธีการ
สะดวกในการกำหนดลักษณะเทคโนโลยีในสองมิติ - แนวตั้ง (แสดงถึงกระบวนการ) และแนวนอน (แทนระยะ)
ภาพ
กระบวนการคือชุดของการกระทำที่สัมพันธ์กัน (การดำเนินการทางเทคโนโลยี) ที่แปลงข้อมูลอินพุตบางส่วนเป็นเอาท์พุท กระบวนการประกอบด้วยชุดของการกระทำ (การดำเนินการทางเทคโนโลยี) และแต่ละการกระทำประกอบด้วยชุดของงานและวิธีการสำหรับการแก้ปัญหา มิติแนวตั้งสะท้อนให้เห็นถึงลักษณะคงที่ของกระบวนการและทำงานกับแนวคิดเช่นกระบวนการทำงานการกระทำงานผลการปฏิบัติงานนักแสดง
เวทีเป็นส่วนหนึ่งของกิจกรรมการพัฒนาซอฟต์แวร์ซึ่ง จำกัด โดยกรอบเวลาและสิ้นสุดด้วยการเปิดตัวผลิตภัณฑ์เฉพาะที่กำหนดโดยข้อกำหนดที่กำหนดไว้สำหรับขั้นตอนนี้ บางครั้งสเตจจัดกลุ่มเป็นกรอบเวลาขนาดใหญ่ที่เรียกว่าเฟสหรือสเตจ ดังนั้นมิติแนวนอนหมายถึงเวลาสะท้อนให้เห็นถึงแง่มุมแบบไดนามิกของกระบวนการและดำเนินการกับแนวคิดเช่นเฟส, ขั้นตอน, ขั้นตอน, ขั้นตอนการทำซ้ำและจุดควบคุม
การพัฒนาซอฟต์แวร์เป็นไปตามวงจรชีวิตที่กำหนดไว้
วงจรชีวิต ซอฟต์แวร์เป็นชุดของกิจกรรมที่ดำเนินการและจัดการอย่างต่อเนื่องและดำเนินการภายในกรอบของแต่ละโครงการเพื่อการพัฒนาและการดำเนินงานของซอฟต์แวร์โดยเริ่มจากช่วงเวลาที่แนวคิด (แนวคิด) ในการสร้างซอฟต์แวร์บางส่วนและตัดสินใจเกี่ยวกับความต้องการสร้างและสิ้นสุดในช่วงเวลา การดำเนินการด้วยเหตุผล:
a) ล้าสมัย;
b) การสูญเสียความจำเป็นในการแก้ปัญหาที่เกี่ยวข้อง
แนวทางเทคโนโลยีเป็นกลไกการดำเนินการวงจรชีวิต
วิธีการทางเทคโนโลยีถูกกำหนดโดยการรวมกันของขั้นตอนและกระบวนการโดยมุ่งเน้นที่คลาสซอฟต์แวร์ที่แตกต่างกันและลักษณะของทีมพัฒนา
วงจรชีวิตกำหนดขั้นตอน (ขั้นตอนระยะ) เพื่อให้ผลิตภัณฑ์ซอฟต์แวร์ย้ายจากขั้นตอนหนึ่งไปยังอีกขั้นเริ่มต้นด้วยแนวคิดของผลิตภัณฑ์และเริ่มต้นด้วยขั้นตอนของการพับ
วงจรชีวิตของการพัฒนาซอฟต์แวร์สามารถนำเสนอด้วยองศาที่แตกต่างของรายละเอียดของขั้นตอน มุมมองวงจรชีวิตที่ง่ายที่สุดรวมถึงขั้นตอน:
ออกแบบ
การดำเนินงาน
การทดสอบและการดีบัก
การดำเนินการการดำเนินงานและการบำรุงรักษา
การเป็นตัวแทนที่ง่ายที่สุดของวงจรชีวิตของโปรแกรม (วิธีการทางเทคโนโลยีของน้ำตกเพื่อรักษาวงจรชีวิต):
กระบวนการ
ออกแบบ
การเขียนโปรแกรม
การทดสอบ
คุ้มกัน
การดำเนินการออกแบบการทดสอบการดำเนินการ
และการแก้จุดบกพร่องและการบำรุงรักษา
ในความเป็นจริงกระบวนการเดียวจะดำเนินการที่นี่ในแต่ละขั้นตอน เห็นได้ชัดว่าเมื่อพัฒนาและสร้างโปรแกรมขนาดใหญ่รูปแบบดังกล่าวไม่ถูกต้องเพียงพอ (ไม่เหมาะสม) แต่สามารถนำมาเป็นพื้นฐาน
ขั้นตอนของการเกิดอัมพาตมุ่งเน้นที่ความต้องการของระบบ มีการกำหนดและระบุข้อกำหนด (อธิบาย) การพัฒนาและบูรณาการแบบจำลองการทำงานและข้อมูลสำหรับระบบกำลังดำเนินการอยู่ นอกจากนี้ยังมีการบันทึกข้อกำหนดของระบบที่ไม่ใช้งานได้และอื่น ๆ
ขั้นตอนการออกแบบแบ่งออกเป็นสองช่วงย่อยหลัก: การออกแบบสถาปัตยกรรมและรายละเอียด โดยเฉพาะอย่างยิ่งการออกแบบโปรแกรมส่วนติดต่อผู้ใช้และโครงสร้างข้อมูลกำลังถูกปรับปรุง ประเด็นการออกแบบได้รับการยกและบันทึกซึ่งมีผลต่อความเข้าใจในการบำรุงรักษาและความยืดหยุ่นของระบบ
ขั้นตอนการดำเนินงานรวมถึงการเขียนโปรแกรม
ความแตกต่างของฮาร์ดแวร์และซอฟต์แวร์สามารถมองเห็นได้โดยเฉพาะในช่วง การแสวงหาผลประโยชน์... หากสินค้าอุปโภคบริโภคผ่านขั้นตอนของการแนะนำสู่ตลาดการเติบโตความเป็นผู้ใหญ่และการเสื่อมสภาพดังนั้นชีวิตของซอฟต์แวร์จึงเป็นเหมือนเรื่องราวของอาคารที่ยังไม่เสร็จสมบูรณ์ (Subscriber)
ซอฟต์แวร์วงจรชีวิตถูกควบคุมโดยมาตรฐานจำนวนมากรวมถึงซอฟต์แวร์ระดับสากล
เป้าหมายของการกำหนดมาตรฐานวงจรชีวิตของระบบซอฟต์แวร์ที่ซับซ้อน:
การสรุปประสบการณ์และผลการวิจัยของผู้เชี่ยวชาญหลายคน
ดำเนินการเกี่ยวกับกระบวนการทางเทคโนโลยีและเทคนิคการพัฒนารวมถึงพื้นฐานวิธีการสำหรับระบบอัตโนมัติ
มาตรฐานรวมถึง:
กฎสำหรับการอธิบายข้อมูลเบื้องต้นวิธีการและวิธีการปฏิบัติงาน
กำหนดกฎเกณฑ์สำหรับการควบคุมกระบวนการทางเทคโนโลยี
กำหนดข้อกำหนดสำหรับการนำเสนอผลลัพธ์
ควบคุมเนื้อหาของเอกสารเทคโนโลยีและการดำเนินงาน
กำหนดโครงสร้างองค์กรของทีมพัฒนา
ให้การกระจายงานและการกำหนดเวลา;
ให้การควบคุมความคืบหน้าของการสร้าง PS
ในรัสเซียมีมาตรฐานที่ควบคุมวงจรชีวิต:
ขั้นตอนการพัฒนาซอฟต์แวร์ - GOST 19.102-77
ขั้นตอนของการพัฒนา NPP - GOST 34.601 –90;
ข้อกำหนดการอ้างอิงสำหรับการสร้าง AU - GOST 34.602-89
ประเภทของการทดสอบ AC - GOST 34.603-92;
อย่างไรก็ตามการสร้างการบำรุงรักษาและการพัฒนาระบบซอฟท์แวร์ประยุกต์สำหรับ IS นั้นไม่ได้สะท้อนให้เห็นอย่างเพียงพอในมาตรฐานเหล่านี้และบทบัญญัติบางประการของ บริษัท เหล่านี้ล้าสมัยในแง่ของการสร้างคอมเพล็กซ์กระจายที่ทันสมัยของโปรแกรมแอปพลิเคชันคุณภาพสูง
ในเรื่องนี้มาตรฐานสากล ISO / IEC 12207-1999 - "เทคโนโลยีสารสนเทศ - กระบวนการวงจรชีวิตซอฟต์แวร์" ควรได้รับการบันทึกไว้
ISO - องค์การระหว่างประเทศว่าด้วยการกำหนดมาตรฐาน - องค์การระหว่างประเทศเพื่อการมาตรฐาน, IEC - คณะกรรมการ Electrotechnical นานาชาติ - คณะกรรมการ Electrotechnical นานาชาติ
มันกำหนดโครงสร้างของวงจรชีวิตซอฟต์แวร์และกระบวนการของมัน
เหล่านั้น การสร้างซอฟต์แวร์ไม่ใช่เรื่องง่ายดังนั้นจึงมีมาตรฐานที่ทุกอย่างเขียนขึ้น: สิ่งที่ต้องทำเมื่อใดและอย่างไร
โครงสร้างวงจรชีวิตซอฟต์แวร์ตามมาตรฐานสากล ISO / IEC 12207-95 ขึ้นอยู่กับกระบวนการสามกลุ่ม:
1) กระบวนการพื้นฐานของวงจรชีวิตซอฟต์แวร์ (การซื้อการจัดส่ง การพัฒนาการดำเนินงานการบำรุงรักษา) เราจะมุ่งเน้นไปที่หลัง
2) กระบวนการเสริมที่ทำให้มั่นใจได้ว่าการดำเนินการของกระบวนการหลัก ( จัดเก็บเอกสารการจัดการการกำหนดค่าการประกันคุณภาพการตรวจสอบความถูกต้องการตรวจสอบร่วม (การประเมิน) การตรวจสอบการแก้ไขปัญหา)
1. การจัดการการกำหนดค่า นี่คือกระบวนการที่สนับสนุนกระบวนการหลักของวงจรชีวิตซอฟต์แวร์ส่วนใหญ่เป็นการพัฒนาและกระบวนการบำรุงรักษา เมื่อพัฒนาโครงการของซอฟต์แวร์ที่ซับซ้อนซึ่งประกอบด้วยส่วนประกอบหลายอย่างแต่ละอย่างอาจมีหลากหลายหรือรุ่นปัญหาเกิดขึ้นจากการคำนึงถึงการเชื่อมต่อและฟังก์ชั่นการสร้างโครงสร้างแบบครบวงจร (เช่นเดียว) และสร้างความมั่นใจในการพัฒนาทั้งระบบ การจัดการการกำหนดค่าช่วยให้คุณสามารถจัดระเบียบพิจารณาอย่างเป็นระบบและควบคุมการเปลี่ยนแปลงส่วนประกอบซอฟต์แวร์ต่างๆในทุกขั้นตอนของวงจรชีวิต
2. การยืนยันเป็นกระบวนการในการพิจารณาว่าสถานะปัจจุบันของซอฟต์แวร์ที่ได้มาในระยะที่กำหนดหรือไม่นั้นเป็นไปตามข้อกำหนดของขั้นตอนนี้
3. การรับรอง - การยืนยันโดยการตรวจสอบและการนำเสนอหลักฐานที่มีวัตถุประสงค์ว่าข้อกำหนดเฉพาะสำหรับวัตถุเฉพาะนั้นถูกนำไปใช้อย่างสมบูรณ์
4. การวิเคราะห์ร่วม (การประเมิน) – การกำหนดระดับของการปฏิบัติตามวัตถุอย่างเป็นระบบด้วยเกณฑ์ที่กำหนด
5. ตรวจสอบ - การตรวจสอบที่ดำเนินการโดยหน่วยงานผู้มีอำนาจ (บุคคล) เพื่อให้แน่ใจว่ามีการประเมินระดับความสอดคล้องของผลิตภัณฑ์ซอฟต์แวร์หรือกระบวนการตามข้อกำหนดที่ระบุโดยอิสระ ตรวจสอบให้คุณประเมินความสอดคล้องของพารามิเตอร์การพัฒนาด้วยข้อกำหนดดั้งเดิม การทวนสอบซ้ำซ้อนกับการทดสอบซึ่งทำขึ้นเพื่อกำหนดความแตกต่างระหว่างผลลัพธ์ที่เกิดขึ้นจริงและที่คาดหวังและเพื่อประเมินความสอดคล้องของคุณลักษณะซอฟต์แวร์กับความต้องการดั้งเดิม ในกระบวนการของการดำเนินโครงการให้สถานที่สำคัญมีปัญหาเรื่องการระบุรายละเอียดและการควบคุมการกำหนดค่าของแต่ละองค์ประกอบและทั้งระบบโดยรวม
3) กระบวนการขององค์กร (การจัดการโครงการการสร้างโครงสร้างพื้นฐานของโครงการการกำหนดการประเมินและการปรับปรุงวงจรชีวิตของตัวเองการฝึกอบรม)
การจัดการโครงการเกี่ยวข้องกับการวางแผนและการจัดองค์กรของงานการสร้างทีมนักพัฒนาและควบคุมเวลาและคุณภาพของงานที่ทำ การสนับสนุนด้านเทคนิคและองค์กรของโครงการรวมถึงการเลือกวิธีการและเครื่องมือสำหรับการดำเนินโครงการความหมายของวิธีการอธิบายสถานะการพัฒนาระดับกลางการพัฒนาวิธีการและเครื่องมือสำหรับการทดสอบซอฟต์แวร์ที่สร้างขึ้นการฝึกอบรมบุคลากรเป็นต้น การประกันคุณภาพโครงการจะเกี่ยวข้องกับปัญหาของการตรวจสอบการตรวจสอบและการทดสอบส่วนประกอบซอฟต์แวร์
เราจะพิจารณาวงจรชีวิตของซอฟต์แวร์จากมุมมองของนักพัฒนา
กระบวนการพัฒนาตามมาตรฐานให้การดำเนินการและงานที่ดำเนินการโดยนักพัฒนาและครอบคลุมการทำงานเกี่ยวกับการสร้างซอฟต์แวร์และส่วนประกอบตามข้อกำหนดที่ระบุรวมถึงการเตรียมการออกแบบและเอกสารการดำเนินงานรวมถึงการเตรียมวัสดุที่จำเป็นในการตรวจสอบประสิทธิภาพและคุณภาพของผลิตภัณฑ์ซอฟต์แวร์ วัสดุที่จำเป็นสำหรับการฝึกอบรมพนักงาน ฯลฯ
ตามมาตรฐานวงจรชีวิตของซอฟต์แวร์ IP รวมถึงการกระทำดังต่อไปนี้:
1) การเกิดขึ้นและการวิจัยของความคิด (แนวคิด);
2) ขั้นตอนการเตรียมการ - การเลือกรูปแบบวงจรชีวิตมาตรฐานวิธีการและเครื่องมือในการพัฒนาตลอดจนจัดทำแผนการทำงาน
3) การวิเคราะห์ความต้องการของระบบสารสนเทศ - กำหนดมัน
ฟังก์ชันการทำงานข้อกำหนดของผู้ใช้ความน่าเชื่อถือและข้อกำหนดด้านความปลอดภัยข้อกำหนดของอินเทอร์เฟซภายนอก ฯลฯ
4) การออกแบบสถาปัตยกรรมระบบสารสนเทศ - การกำหนดองค์ประกอบของอุปกรณ์ซอฟต์แวร์และการดำเนินงานที่จำเป็นโดยเจ้าหน้าที่บริการ.
5) การวิเคราะห์ความต้องการซอฟต์แวร์- คำจำกัดความของฟังก์ชั่นรวมถึงลักษณะการทำงานสภาพแวดล้อมการทำงานของส่วนประกอบอินเตอร์เฟสภายนอกความน่าเชื่อถือและความปลอดภัยข้อกำหนดด้านการยศาสตร์ข้อกำหนดสำหรับข้อมูลที่ใช้การติดตั้งการยอมรับเอกสารผู้ใช้งานและการบำรุงรักษา
6) การออกแบบสถาปัตยกรรมซอฟต์แวร์ - กำหนดโครงสร้างซอฟต์แวร์จัดทำเอกสารอินเทอร์เฟซของส่วนประกอบพัฒนาเอกสารประกอบสำหรับผู้ใช้เบื้องต้นรวมถึงข้อกำหนดในการทดสอบและแผนการรวม
7) การออกแบบซอฟต์แวร์โดยละเอียด - รายละเอียด
คำอธิบายของส่วนประกอบซอฟต์แวร์และส่วนต่อประสานระหว่างกันอัปเดตเอกสารของผู้ใช้พัฒนาและจัดทำเอกสารข้อกำหนดการทดสอบและแผนทดสอบส่วนประกอบซอฟต์แวร์ปรับปรุงแผนรวมองค์ประกอบ
8) การเข้ารหัสซอฟต์แวร์ -– การพัฒนาและเอกสาร
องค์ประกอบซอฟต์แวร์แต่ละรายการ
9)การทดสอบซอฟต์แวร์ - การพัฒนาชุดของขั้นตอนการทดสอบและข้อมูลสำหรับการทดสอบการทดสอบส่วนประกอบการอัพเดทเอกสารของผู้ใช้การอัพเดทแผนการรวมซอฟต์แวร์
10) การรวมซอฟต์แวร์– ประกอบชิ้นส่วนซอฟต์แวร์ตาม
แผนการรวมและการทดสอบซอฟต์แวร์เพื่อให้สอดคล้องกับข้อกำหนดคุณสมบัติซึ่งเป็นชุดของเกณฑ์หรือเงื่อนไขที่จะต้องปฏิบัติตามเพื่อให้มีคุณสมบัติผลิตภัณฑ์ซอฟต์แวร์ตามข้อกำหนดและพร้อมใช้งานภายใต้เงื่อนไขการปฏิบัติการที่ระบุ
11) การทดสอบคุณสมบัติของซอฟต์แวร์ – การทดสอบซอฟต์แวร์ใน
การปรากฏตัวของลูกค้าเพื่อแสดงให้เห็นถึงการปฏิบัติตาม
ข้อกำหนดและความพร้อมในการปฏิบัติงาน ความพร้อมและครบถ้วนของเอกสารทางเทคนิคและผู้ใช้จะถูกตรวจสอบด้วย;
12) ระบบบูรณาการ – การประกอบชิ้นส่วนทั้งหมดของระบบข้อมูลรวมถึงซอฟต์แวร์และฮาร์ดแวร์
13) การทดสอบคุณสมบัติของ IP – การทดสอบระบบสำหรับ
การปฏิบัติตามข้อกำหนดสำหรับมันและการตรวจสอบการออกแบบและความสมบูรณ์ของเอกสาร
14) การติดตั้งซอฟต์แวร์ – การติดตั้งซอฟต์แวร์สำหรับอุปกรณ์ของลูกค้าและตรวจสอบประสิทธิภาพ;
15) การยอมรับซอฟต์แวร์ – การประเมินผลของคุณสมบัติ
การทดสอบซอฟต์แวร์และระบบสารสนเทศโดยรวมและ
จัดทำเอกสารผลการประเมินพร้อมกับลูกค้าการรับรองและการโอนซอฟต์แวร์ครั้งสุดท้ายให้กับลูกค้า
16) การจัดการและการพัฒนาเอกสาร
17) การแสวงประโยชน์
18) คุ้มกัน - กระบวนการสร้างและนำเวอร์ชันใหม่มาใช้
ผลิตภัณฑ์ซอฟต์แวร์;
19) เสร็จสิ้นการดำเนินงาน
การดำเนินการเหล่านี้สามารถจัดกลุ่มได้โดยเน้นถึงขั้นตอนหลักของการพัฒนาซอฟต์แวร์ตามอัตภาพดังนี้
·คำแถลงปัญหา (TZ) (ตาม GOST 19.102-77 ขั้นตอน "ข้อกำหนดการอ้างอิง")