ข้อกำหนดของซอฟต์แวร์

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

วิศวกรรมความต้องการ

กระบวนการรวบรวมข้อกำหนดซอฟต์แวร์จากไคลเอนต์วิเคราะห์และจัดทำเป็นเอกสารเรียกว่าวิศวกรรมความต้องการ

เป้าหมายของวิศวกรรมความต้องการคือการพัฒนาและรักษาเอกสาร 'ข้อกำหนดข้อกำหนดของระบบ' ที่ซับซ้อนและมีความหมาย

กระบวนการวิศวกรรมความต้องการ

เป็นกระบวนการสี่ขั้นตอนซึ่งประกอบด้วย -

  • การศึกษาความเป็นไปได้
  • การรวบรวมความต้องการ
  • ข้อกำหนดข้อกำหนดของซอฟต์แวร์
  • การตรวจสอบความต้องการซอฟต์แวร์

ให้เราดูกระบวนการโดยย่อ -

การศึกษาความเป็นไปได้

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

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

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

ผลลัพธ์ของระยะนี้ควรเป็นรายงานการศึกษาความเป็นไปได้ที่ควรมีข้อคิดเห็นและคำแนะนำที่เพียงพอสำหรับการจัดการว่าควรดำเนินโครงการหรือไม่

การรวบรวมความต้องการ

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

ข้อกำหนดข้อกำหนดของซอฟต์แวร์

SRS เป็นเอกสารที่สร้างขึ้นโดยนักวิเคราะห์ระบบหลังจากรวบรวมข้อกำหนดจากผู้มีส่วนได้ส่วนเสียต่างๆ

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

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

SRS ควรมาพร้อมกับคุณสมบัติดังต่อไปนี้:

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

การตรวจสอบความต้องการซอฟต์แวร์

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

  • หากสามารถนำไปปฏิบัติได้จริง
  • หากถูกต้องและตามฟังก์ชันและโดเมนของซอฟต์แวร์
  • หากมีความคลุมเครือ
  • หากมีความสมบูรณ์
  • หากสามารถแสดงให้เห็นได้

ขั้นตอนการลบความต้องการ

กระบวนการกระตุ้นความต้องการสามารถแสดงได้โดยใช้แผนภาพ folloiwng:

  • Requirements gathering - นักพัฒนาจะพูดคุยกับลูกค้าและผู้ใช้ปลายทางและรู้ความคาดหวังของพวกเขาจากซอฟต์แวร์
  • Organizing Requirements - ผู้พัฒนาจัดลำดับความสำคัญและจัดเรียงข้อกำหนดตามลำดับความสำคัญความเร่งด่วนและความสะดวก
  • Negotiation & discussion - หากข้อกำหนดมีความคลุมเครือหรือมีข้อขัดแย้งบางประการในข้อกำหนดของผู้มีส่วนได้ส่วนเสียต่างๆหากมีก็จะมีการเจรจาและหารือกับผู้มีส่วนได้ส่วนเสีย จากนั้นข้อกำหนดอาจได้รับการจัดลำดับความสำคัญและลดทอนอย่างสมเหตุสมผล

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

  • Documentation - ข้อกำหนดที่เป็นทางการและไม่เป็นทางการใช้งานได้และไม่ใช้งานได้ทั้งหมดได้รับการจัดทำเป็นเอกสารและพร้อมใช้งานสำหรับการประมวลผลขั้นต่อไป

เทคนิคการปลดปล่อยความต้องการ

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

มีหลายวิธีในการค้นหาข้อกำหนด

สัมภาษณ์

การสัมภาษณ์เป็นสื่อที่แข็งแกร่งในการรวบรวมข้อกำหนด องค์กรอาจทำการสัมภาษณ์หลายประเภทเช่น:

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

แบบสำรวจ

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

แบบสอบถาม

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

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

การวิเคราะห์งาน

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

การวิเคราะห์โดเมน

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

การระดมความคิด

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

การสร้างต้นแบบ

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

การสังเกต

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

ลักษณะข้อกำหนดของซอฟต์แวร์

การรวบรวมข้อกำหนดของซอฟต์แวร์เป็นรากฐานของโครงการพัฒนาซอฟต์แวร์ทั้งหมด ดังนั้นจึงต้องมีความชัดเจนถูกต้องและชัดเจน

ข้อกำหนดข้อกำหนดซอฟต์แวร์ที่สมบูรณ์ต้องเป็น:

  • Clear
  • Correct
  • Consistent
  • Coherent
  • Comprehensible
  • Modifiable
  • Verifiable
  • Prioritized
  • Unambiguous
  • Traceable
  • แหล่งที่มาที่น่าเชื่อถือ

ข้อกำหนดของซอฟต์แวร์

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

ความต้องการซอฟต์แวร์โดยกว้างควรแบ่งออกเป็นสองประเภท:

ความต้องการการทำงาน

ข้อกำหนดซึ่งเกี่ยวข้องกับลักษณะการทำงานของซอฟต์แวร์จัดอยู่ในหมวดหมู่นี้

กำหนดฟังก์ชันและฟังก์ชันการทำงานภายในและจากระบบซอฟต์แวร์

ตัวอย่าง -

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

ข้อกำหนดที่ไม่ใช่หน้าที่

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

ข้อกำหนดที่ไม่ใช้งาน ได้แก่ -

  • Security
  • Logging
  • Storage
  • Configuration
  • Performance
  • Cost
  • Interoperability
  • Flexibility
  • การกู้คืนระบบ
  • Accessibility

ข้อกำหนดถูกจัดประเภทตามเหตุผลเป็น

  • Must Have : ซอฟต์แวร์ไม่สามารถพูดได้ว่าใช้งานได้หากไม่มีพวกเขา
  • Should have : การปรับปรุงการทำงานของซอฟต์แวร์
  • Could have : ซอฟต์แวร์ยังคงสามารถทำงานได้อย่างถูกต้องตามข้อกำหนดเหล่านี้
  • Wish list : ข้อกำหนดเหล่านี้ไม่ได้จับคู่กับวัตถุประสงค์ใด ๆ ของซอฟต์แวร์

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

ข้อกำหนดส่วนติดต่อผู้ใช้

UI เป็นส่วนสำคัญของซอฟต์แวร์หรือฮาร์ดแวร์หรือระบบไฮบริด ซอฟต์แวร์ได้รับการยอมรับอย่างกว้างขวางหากเป็น -

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

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

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

นักวิเคราะห์ระบบซอฟต์แวร์

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

นักวิเคราะห์ระบบมีหน้าที่รับผิดชอบดังต่อไปนี้:

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

เมตริกและมาตรการของซอฟต์แวร์

การวัดซอฟต์แวร์สามารถเข้าใจได้ว่าเป็นกระบวนการในการหาปริมาณและเป็นสัญลักษณ์ของคุณลักษณะและลักษณะต่างๆของซอฟต์แวร์

Software Metrics ให้มาตรการสำหรับด้านต่างๆของกระบวนการซอฟต์แวร์และผลิตภัณฑ์ซอฟต์แวร์

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

ตามที่ Tom DeMarco (วิศวกรซอฟต์แวร์) กล่าวว่า“ คุณไม่สามารถควบคุมสิ่งที่คุณไม่สามารถวัดผลได้” จากคำพูดของเขาเป็นที่ชัดเจนมากว่ามาตรการซอฟต์แวร์มีความสำคัญอย่างไร

ให้เราดูเมตริกซอฟต์แวร์:

  • Size Metrics - LOC (Lines of Code) ซึ่งส่วนใหญ่คำนวณจากซอร์สโค้ดบรรทัดที่จัดส่งหลายพันบรรทัดแสดงเป็น KLOC

    Function Point Count เป็นการวัดการทำงานที่ซอฟต์แวร์มีให้ การนับคะแนนฟังก์ชันกำหนดขนาดของลักษณะการทำงานของซอฟต์แวร์

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

    จำนวนข้อบกพร่องที่พบในกระบวนการพัฒนาและจำนวนข้อบกพร่องที่ลูกค้ารายงานหลังจากติดตั้งหรือส่งมอบผลิตภัณฑ์ที่ลูกค้าปลายทางกำหนดคุณภาพของผลิตภัณฑ์

  • Process Metrics - ในขั้นตอนต่างๆของ SDLC วิธีการและเครื่องมือที่ใช้มาตรฐานของ บริษัท และประสิทธิภาพของการพัฒนาคือเมตริกกระบวนการซอฟต์แวร์
  • Resource Metrics - ความพยายามเวลาและทรัพยากรต่างๆที่ใช้แสดงถึงเมตริกสำหรับการวัดทรัพยากร