- Functional requirements
- การให้บริการที่ระบบควรเตรียมไว้ให้
- วิธีการที่ระบบตอบสนองต่อ input
- วิธีการที่ระบบควรปฏิบัติในสถานการณ์เฉพาะ
- รวมถึงอาจระบุไว้ด้วย ว่าระบบจะไม่ทำอะไรบ้าง
- Non-functional requirements
- ข้อจำกัดของ services หรือ functions ของระบบ
- เช่น ข้อจำกัดด้านเวลา ข้อจำกัดในการพัฒนา มาตรฐานต่าง ๆ ที่นำมาใช้ ฯลฯ
- ใช้กับระบบโดยรวมมากกว่าใช้กับคุณลักษณะ (features) หรือบริการ (services) แต่ละอย่าง
- Domain requirements
- ข้อจำกัดในระบบจากโดเมนของการดำเนินงาน
- คำอธิบายการทำงานหรือบริการของระบบ
- ขึ้นอยู่กับชนิดของซอฟต์แวร์
- ขึ้นอยู่กับผู้ใช้
- ขึ้นอยู่กับประเภทของระบบที่ใช้ซอฟต์แวร์
- ความต้องการของผู้ใช้
- ควรเป็นคำอธิบายการทำงานในระดับสูง ว่าอะไรคือสิ่งที่ระบบควรทำ
- ความต้องการของระบบ
- ควรเป็นคำอธิบายการบริการของระบบอย่างละเอียด
- โดยหลักการ ข้อกำหนดต่าง ๆ ควรมีความสมบูรณและคงเส้นคงวา
- ความสมบูรณ์
- ควรมีคำอธิบายเกี่ยวกับสิ่งอำนวยความสะดวกทั้งหมดที่จำเป็น
- คงเส้นคงวา
- ไม่ควรมีข้อขัดแย้งหรือข้อโต้แย้ง ในคำอธิบายเกี่ยวกับสิ่งอำนวยความสะดวกของระบบ
- ในทางปฏิบัติ เนื่องจากความซับซ้อนของระบบและสิ่งแวดล้อม จึงเป็นไปไม่ได้ที่จะจัดทำเอกสารข้อกำหนดที่ครบถ้วนและคงเส้นคงวา
- สิ่งที่มีผลต่อคุณสมบัติและข้อจำกัดของระบบ
- เช่น Reliability, Response time, Storage requirements
- ข้อจำกัดคือ ความสามารถของอุปกรณ์ I/O ฯลฯ
- ในบางครั้งอาจมีความต้องการให้ใช้เครื่องมือเฉพาะ
- เช่น IDE, ภาษาโปรแกรม หรือวิธีการพัฒนา
- Non-functional requirements อาจมีความสำคัญมากกว่า functional requirements
- ในบางกรณี หากไม่ได้ทำตาม non-functional requirements ระบบอาจไม่มีประโยชน์
- Non-functional requirements อาจส่งผลต่อสถาปัตยกรรมโดยรวมของระบบมากกว่าจะกระทบต่อส่วนประกอบย่อย
- เช่น เราอาจต้องจัดระบบเสียใหม่ เพื่อลดการสื่อสารระหว่าง components
- Non-functional requirements บางอย่าง (เช่น requirements ด้านความปลอดภัย) อาจสร้าง requirements ด้านการทำงานที่เกี่ยวข้องจำนวนหนึ่ง ที่มีผลกระทบต่อ requirements ในส่วนอื่น ๆ
- อาจไปเพิ่มข้อจำกัด ให้ requirements เดิมที่มีอยู่
- ความต้องการของผลิตภัณฑ์ Product requirements
- ข้อกำหนดที่ระบุว่าผลิตภัณฑ์ที่ส่งมอบจะต้องทำงานในลักษณะใดวิธีหนึ่งเช่น ความเร็วในการดำเนินการ ความน่าเชื่อถือ ฯลฯ
- ความต้องการขององค์กร Organisational requirements
- ข้อกำหนดที่เป็นผลมาจากนโยบายและขั้นตอนขององค์กรเช่น มาตรฐานกระบวนการที่ใช้ ความต้องการในการใช้งานเป็นต้น
- ข้อกำหนดภายนอก External requirements
- ความต้องการที่เกิดขึ้นจากปัจจัยภายนอกที่มีต่อระบบและกระบวนการพัฒนา เช่น ข้อกำหนดการทำงานร่วมกัน, ข้อกำหนดทางกฎหมายเป็นต้น
- เป็นการยากที่จะระบุ Non-functional requirements ได้อย่างแม่นยำ และอาจเป็นเรื่องยากที่จะตรวจสอบ
- เป้าหมาย
- ความต้องการโดยทั่วไปของผู้ใช้ เช่น ความสะดวกในการใช้งาน
- การตรวจสอบ Non-functional requirements
- ระบุวิธีการตรวจสอบโดยใช้มาตรการบางอย่างที่สามารถทดสอบได้อย่างเป็นกลาง
- การกำหนดเป้าหมาย มีประโยชน์สำหรับนักพัฒนาซอฟต์แวร์เนื่องจากมันถ่ายทอดความตั้งใจของผู้ใช้ระบบมาถึงนักพัฒนาโดยตรง
- ตัวอย่าง requirement ที่ใช้ได้
- เป้าหมาย
- เจ้าหน้าที่ทางการแพทย์ควรใช้ระบบได้โดยง่าย และควรมีการจัดระเบียบเพื่อให้เกิดความผิดพลาดจากผู้ใช้น้อยที่สุด
- การตรวจสอบ Non-functional requirements
- เจ้าหน้าที่ทางการแพทย์สามารถใช้งานระบบทั้งหมด หลังจากผ่านการฝึกอบรมไปแล้ว 4 ชั่วโมง
- หลังจากการฝึกอบรมนี้ จำนวนข้อผิดพลาดโดยเฉลี่ยของผู้ใช้ระบบจะต้องไม่เกินสองครั้งต่อหนึ่งชั่วโมง