NFR Checklist: Portability, Maintainability & Manageability, Customizibility & Configureability

Checklist สำหรับใช้จับประเด็น เพื่อช่วยตั้งคำถามด้าน non-functional requirement ในงาน requirement, ช่วยออกแบบ non-functional test case, ช่วยออกแบบโซลูชั่น

 

NFR Checklist ด้าน Portability

ความต้องการ (Requirement)

สมมติฐาน (Assumption)

Platform

  • ระบบต้อง deploy บนสภาพแวดล้อมที่แตกต่างกันมากกว่าหนึ่งหรือไม่?
  • ถ้ามี เป็น platform อะไรบ้าง?
  • Legacy system หรือ external system ที่ระบบต้องไปเชื่อมต่อหรือทำงานร่วมด้วย (depend on) มีโอกาสที่จะเปลี่ยน platform หรือไม่? เช่น database server อาจเปลี่ยนเป็นยี่ห้ออื่นในอนาคต

Technology

  • แต่ละสภาพแวดล้อมมีเทคโนโลยีที่เหมือนกัน คล้ายกัน ต่างกันหรือไม่ อย่างไร?
  • มี constraint ใดบ้างที่ส่งผลกระทบต่อด้านเทคโนโลยี?

Programming Language

  • ภาษาโปรแกรมที่จะใช้พัฒนาระบบสนับสนุนด้าน portability หรือไม่ มากน้อยแค่ไหน?
  • มี constraint ด้านภาษาโปรแกรมหรือไม่?

Time / Schedule / Plan

  • มีกรอบ/เกณฑ์ในการ port ระบบหรือไม่?
  • มีการวางแผนไว้หรือไม่ว่าจะ port ระบบเมื่อไหร่ ที่ไหนบ้าง?

Reliability

  • มีจุดใดบ้างที่หากมีการ port ระบบแล้วต้องการให้มีความน่าเชื่อถือสูงๆ? เช่นคุณภาพการทำงานห้ามผิดเพี้ยน
  • มี constraint ใดบ้างที่ส่งผลกระทบต่อความน่าเชื่อถือ?

Modifiability

  • การ port ระบบต้องมีการ modify ส่วนใดส่วนหนึ่งหรือไม่?
  • ระบบที่จะพัฒนาทำงานอยู่บน middleware หรือไม่? ถ้ามียี่ห้ออะไร? เวอร์ชั่นอะไร? เป็น middleware ด้านไหน?

Manageability

  • กรณีหากระบบถูก deploy ไปยังสภาพแวดล้อมหลายที่ (multiple copy) จะบริหารจัดการอย่างไร?

Variability

  • เมื่อระบบต้องทำงานบนสภาพแวดล้อมที่แตกต่างกันได้ มี variation ใดหรือไม่?
  • มี variability point จุดใดบ้างที่ต้องพิจารณา? และส่งผลต่อคุณภาพและการทำงานของระบบอย่างไร? หรือส่งผลต่อธุรกิจอย่างไร?
  • มี constraint ใดบ้างที่ส่งผลกระทบต่อ variation ของคุณภาพและการทำงาน?

อ่านเพิ่มเติม

NFR Checklist: Security, Usability, Testability

Checklist สำหรับใช้จับประเด็น เพื่อช่วยตั้งคำถามด้าน non-functional requirement ในงาน requirement, ช่วยออกแบบ non-functional test case, ช่วยออกแบบโซลูชั่น   NFR Checklist ด้าน Security

ความต้องการ (Requirement)

สมมติฐาน (Assumption)

Business Actor

  • Business actor คือใคร?

Business Worker

  • Business worker คือใคร?

System Actor

  • System actor คือใคร? อยู่ที่ไหน? ติดต่อระบบผ่าน channel อะไร? ใช้โปรโตคอลอะไร?

Boundary

  • กำหนดขอบเขต (เช่น DMZ) อะไรบ้าง?
  • มี constraint ใดบ้างที่ส่งผลต่อ boundary?
  • ในแต่ละ boundary ประกอบด้วยทรัพยากรใดบ้าง?
  • แต่ละ boundary สื่อสารกันอย่างไร? กรณีใด?

Operation

  • Operation ใดบ้างที่มีผลต่อ security? เช่น modify, delete, access service

Artifact

  • สิ่งที่อาจได้รับผลกระทบหากมีปัญหาด้าน security คืออะไรบ้าง? เช่น ข้อมูล, operation, service, ทรัพยากร

Environment

  • สภาพแวดล้อมเป็นแบบใดได้บ้าง? เช่น online, offline, connected, disconnected, อยู่หลัง firewall หรือไม่มี firewall

Probability of Attack

  • มีโอกาสที่จะถูก attack แค่ไหน? จากใคร? จากที่ไหน?

Time/Effort/Resource

  • มีระยะเวลา/บุคลากร/ทรัพยากร แค่ไหน เท่าไรในการทดสอบ/ตรวจสอบ/แก้ไข ด้าน security?
  • และมี constraint ใดที่ส่งผลต่อทรัพยากรในการจัดการด้าน security บ้าง?

Action

  • มีการจัดการด้าน security อะไรบ้าง? เช่น authentication, authorization, grant/withdraw permission, transfer permission

Application Security

  • มีการใช้ information hiding ในจุดใดบ้าง?
  • มี single point of failure ในจุดใดบ้าง?
  • มีการใช้ pattern: Observer, Visitor, Proxy, Façade, Front Controller, Gateway ในจุดใดบ้าง? อะไรบ้าง? อะไรบ้าง?
  • มีการสร้าง abstraction layer ในจุดใดบ้าง?
  • มีการ access file, database, message queue server และทรัพยากรอื่นๆ ในจุดใดบ้าง?
  • การจัดการด้าน authentication, authorization, single sign-on จะพัฒนาเองหรือใช้เฟรมเวิร์กหรือใช้ middleware?
  • มีการทำ security data propagation ในจุดใดบ้าง?
  • การ parse หรือ convert ข้อมูล (เช่น XML, รูปกราฟฟิก) พัฒนาเองหรือใช้ไลบรารี่อื่น?

Reliability

  • มีจุดใดบ้างที่ต้องการความน่าเชื่อถือมากๆ?
  • มีจุดใดบ้างที่หากเกิดข้อผิดพลาดด้าน security แล้วส่งผลต่อความน่าเชื่อถือในส่วนต่างๆ? ส่งผลต่อส่วนใดบ้าง?

Performance

  • มีจุดใดบ้างที่จะมีการจัดการด้าน security ที่อาจส่งผลต่อประสิทธิภาพการประมวลผลและการใช้ทรัพยากร?
  • มี constraint ใดบ้างที่ส่งผลต่อประสิทธิภาพการประมวลผลและการใช้ทรัพยากร?

Availability

  • มีจุดใดบ้างที่หากถูก attack แล้วระบบจะล่มหรือหยุดทำงานหรือทำงานช้าลง

อ่านเพิ่มเติม

NFR Checklist: Performance, Scalability, Interoperability & Integrability

Checklist สำหรับใช้จับประเด็น เพื่อช่วยตั้งคำถามด้าน non-functional requirement ในงาน requirement, ช่วยออกแบบ non-functional test case, ช่วยออกแบบโซลูชั่น

 

NFR Checklist ด้าน Performance

ความต้องการ (Requirement)

สมมติฐาน (Assumption)

Incoming Event

  • การเกิดขึ้นของ event เนื่องจากการเข้ามาใช้ระบบโดยผู้ใช้ หรือ client เป็นแบบใด? เช่น periodic event, sporadic event, stochastic event
  • จำแนกตามอะไร? เช่น หน้าจอ, ฟังก์ชั่น, เซอร์วิส
  • จำนวนผู้ใช้ หรือ client ต่อวัน/ชั่วโมง/วินาทีคือเท่าไร?
  • จำนวน concurrent ของผู้ใช้ หรือ client เป็นเท่าไร? ณ ช่วงเวลาใดบ้าง?

Resource

  • ทรัพยากรที่จะใช้มีกี่ประเภท? เช่น หน่วยความจำ, I/O, ซีพียู, database server, ERP, network, directory server
  • Resource system มีอะไรบ้าง? ยี่ห้ออะไร? เวอร์ชั่นอะไร?
  • Network bandwidth ที่เหลือโดยเฉลี่ย(เช่น ต่อชั่วโมง) ที่เชื่อมต่อไปยัง resource system เหล่านั้นคือเท่าไร?
  • เครื่องที่ระบบนี้จะไป deploy มีทรัพยากรเหลือโดยเฉลี่ยเท่าไร? เช่น ต่อชั่วโมง ต่อวัน
  • มีทรัพยากรใดที่ถูกเข้าถึงพร้อมกันบ้าง (simultaneous access)? เกี่ยวข้องกับฟังก์ชั่นหรือกลไกใด?

Client Behavior

  • แบ่งผู้ใช้ หรือ client เป็นกี่ประเภท?
  • พฤติกรรมของผู้ใช้ หรือ client แต่ละประเภทเป็นอย่างไร?

Deadline

  • Deadline ของ process/transaction จะกำหนดที่เท่าไร? ในช่วงนี้อาจยังไม่ทราบชัดเจน เอาคำตอบแบบคร่าวๆ ก่อน เป็นช่วงเวลาหรือค่าประมาณ

Throughput

  • ปริมาณงานที่จะเสร็จต่อช่วงเวลาเป็นเท่าไร? เช่น ภายใน 1 ช.ม.ต้องประมวลผลคำสั่งสั่งซื้อให้เสร็จอย่างน้อย 100 คำสั่ง

Latency

  • ระยะเวลาหน่วงหรือดีเลย์ในการเข้าถึงทรัพยากรคือเท่าไรที่ยอมรับได้? เข้าถึงทรัพยากรใด? เช่น หาก request  เข้าไปถึง database แล้ว database จะใช้เวลาประมวลผล request นี้ไม่เกิน 1,000 มิลลิวินาที แต่พอ request ไปถึง database แต่ดันไม่ว่าง เข้าไม่ได้ request เลยต้องรอ เสียเวลารอไป 850 มิลลิวินาที พอเข้าได้แล้ว database ประมวลผล request ไป 1,000 มิลลิวินาที สรุปแล้วระยะเวลาเข้าใช้ database โดยรวมคือ 1,850 มิลลิวินาที คิดเป็นเวลา latency (หรือเวลาหน่วง/ดีเลย์) 850 มิลลิวินาที ดังนั้นระบบที่ต้องการความเร็วมากๆ จึงต้องหาทางลด latency ลง เพื่อให้ response time สั้นลง ซึ่ง latency สามารถเกิดได้ทุกจุดที่เป็น resource โดยเฉพาะ shared resource ที่ต้องใส่ใจมากๆ

Business Process

  • มี business process ให้วิเคราะห์หรือไม่?
  • Business process มีความละเอียดพอนำมาวิเคราะห์ประเด็นต่างๆ ในคำถามก่อนหน้าหรือไม่? (ในหลายงานจำเป็นต้องจูนทั้ง business (คนทำ) และ system (ระบบทำ))

Cost & Budget

  • มีงบประมาณสำหรับทรัพยากร/ฮาร์ดแวร์เท่าไร?
  • โดยประมาณเท่าไร?
  • ที่สามารถจ่ายได้สูงสุดไม่เกินเท่าไร?

อ่านเพิ่มเติม

NFR Checklist: Availability, Modifiability, Reliability

Checklist สำหรับใช้จับประเด็น เพื่อช่วยตั้งคำถามด้าน non-functional requirement ในงาน requirement, ช่วยออกแบบ non-functional test case, ช่วยออกแบบโซลูชั่น

 

NFR Checklist ด้าน Availability

ความต้องการ (Requirement)

สมมติฐาน (Assumption)

Action

  • หากระบบหยุด/ล่ม/ทำงานช้าผิดปกติ จะให้ response อย่างไร? เช่น record, notify, disable, continue, be unavailable

Boundary

  • Client ที่จะใช้ระบบอยู่ภายในองค์กรหรือมีเข้ามาจากนอกองค์กรด้วย?
  • ขอบเขตของระบบกำหนดชัดเจนแล้วหรือไม่?

Repair Time

  • หากระบบหยุด/ล่ม/ทำงานช้าผิดปกติ ต้องใช้เวลาในการหาสาเหตุไม่เกินเท่าไร? (หน่วยเป็นนาที/วินาที)
  • หากระบบหยุด/ล่ม/ทำงานช้าผิดปกติ ต้องใช้เวลาในการแก้ไขจนระบบกลับเป็นปกติไม่เกินเท่าไร? (หน่วยเป็นนาที/วินาที)

Availability Rate

  • อัตราความพร้อมของระบบคือเท่าไร? เช่น 99.999% ต่อปี (คิดเป็นเท่าไหร่ลองดูในลิงค์นี้ครับ https://en.wikipedia.org/wiki/Availability_(system))

Available Time Interval,

Unavailable Time Interval,

Degraded Time Interval

  • ช่วงเวลาที่ระบบต้องพร้อมให้บริการ/หรือพร้อมใช้งาน คือช่วงใดบ้าง? (ควรแบ่งเป็นช่วงๆ เช่น วัน, ชั่วโมง, นาที)
  • ช่วงเวลาที่ระบบหยุด/ปิดการทำงานคือช่วงเวลาใด?
  • ช่วงเวลาที่ระบบสามารถทำงานช้าหรือให้บริการช้าได้ (แต่ไม่เกินที่ระบุใน SLA) คือช่วงใด? เกิดจากสาเหตุใด?

Area of Concern

  • ส่วนใดของระบบ (เช่น ฟีจเจอร์, หน้าจอ) ที่ stakeholder concern มากๆ? เช่น หยุดทำงานไม่ได้/ช้าไม่ได้ เด็ดขาด

อ่านเพิ่มเติม