Skip to content

Latest commit

 

History

History
65 lines (65 loc) · 8.12 KB

5.1.Functional and non-functional requirements.md

File metadata and controls

65 lines (65 loc) · 8.12 KB

Functional and non-functional requirements

Functional and non-functional requirements

  • Functional requirements
  • การให้บริการที่ระบบควรเตรียมไว้ให้
  • วิธีการที่ระบบตอบสนองต่อ input
  • วิธีการที่ระบบควรปฏิบัติในสถานการณ์เฉพาะ
  • รวมถึงอาจระบุไว้ด้วย ว่าระบบจะไม่ทำอะไรบ้าง
  • Non-functional requirements
  • ข้อจำกัดของ services หรือ functions ของระบบ
  • เช่น ข้อจำกัดด้านเวลา ข้อจำกัดในการพัฒนา มาตรฐานต่าง ๆ ที่นำมาใช้ ฯลฯ
  • ใช้กับระบบโดยรวมมากกว่าใช้กับคุณลักษณะ (features) หรือบริการ (services) แต่ละอย่าง
  • Domain requirements
  • ข้อจำกัดในระบบจากโดเมนของการดำเนินงาน

Functional requirements

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

Requirements completeness and consistency

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

Non-functional requirements

  • สิ่งที่มีผลต่อคุณสมบัติและข้อจำกัดของระบบ
  • เช่น Reliability, Response time, Storage requirements
  • ข้อจำกัดคือ ความสามารถของอุปกรณ์ I/O ฯลฯ
  • ในบางครั้งอาจมีความต้องการให้ใช้เครื่องมือเฉพาะ
  • เช่น IDE, ภาษาโปรแกรม หรือวิธีการพัฒนา
  • Non-functional requirements อาจมีความสำคัญมากกว่า functional requirements
  • ในบางกรณี หากไม่ได้ทำตาม non-functional requirements ระบบอาจไม่มีประโยชน์

Types of nonfunctional requirement

Non-functional requirements implementation

  • Non-functional requirements อาจส่งผลต่อสถาปัตยกรรมโดยรวมของระบบมากกว่าจะกระทบต่อส่วนประกอบย่อย
  • เช่น เราอาจต้องจัดระบบเสียใหม่ เพื่อลดการสื่อสารระหว่าง components
  • Non-functional requirements บางอย่าง (เช่น requirements ด้านความปลอดภัย) อาจสร้าง requirements ด้านการทำงานที่เกี่ยวข้องจำนวนหนึ่ง ที่มีผลกระทบต่อ requirements ในส่วนอื่น ๆ
  • อาจไปเพิ่มข้อจำกัด ให้ requirements เดิมที่มีอยู่

Non-functional classifications

  • ความต้องการของผลิตภัณฑ์ Product requirements
  • ข้อกำหนดที่ระบุว่าผลิตภัณฑ์ที่ส่งมอบจะต้องทำงานในลักษณะใดวิธีหนึ่งเช่น ความเร็วในการดำเนินการ ความน่าเชื่อถือ ฯลฯ
  • ความต้องการขององค์กร Organisational requirements
  • ข้อกำหนดที่เป็นผลมาจากนโยบายและขั้นตอนขององค์กรเช่น มาตรฐานกระบวนการที่ใช้ ความต้องการในการใช้งานเป็นต้น
  • ข้อกำหนดภายนอก External requirements
  • ความต้องการที่เกิดขึ้นจากปัจจัยภายนอกที่มีต่อระบบและกระบวนการพัฒนา เช่น ข้อกำหนดการทำงานร่วมกัน, ข้อกำหนดทางกฎหมายเป็นต้น

Goals and requirements

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

Usability requirements

  • ตัวอย่าง requirement ที่ใช้ได้
  • เป้าหมาย
  • เจ้าหน้าที่ทางการแพทย์ควรใช้ระบบได้โดยง่าย และควรมีการจัดระเบียบเพื่อให้เกิดความผิดพลาดจากผู้ใช้น้อยที่สุด
  • การตรวจสอบ Non-functional requirements
  • เจ้าหน้าที่ทางการแพทย์สามารถใช้งานระบบทั้งหมด หลังจากผ่านการฝึกอบรมไปแล้ว 4 ชั่วโมง
  • หลังจากการฝึกอบรมนี้ จำนวนข้อผิดพลาดโดยเฉลี่ยของผู้ใช้ระบบจะต้องไม่เกินสองครั้งต่อหนึ่งชั่วโมง

Metrics for specifying nonfunctional requirements