2016年4月28日 星期四

Functional requirement & Non-Functional requirement

要寫好一份'軟體需求規格文件' (SRS) 不容易。 '使用者需求'是它的Input,'軟體設計文件' 是它的Output。
[User Requirements] --> [SRS] --> [SW Design (High Level Design + Detailed Level Design)]

什麼樣的SRS才是好的? 下列四點是個不錯的判斷依據:
1. 提供回饋給user。最好的回饋方式就是讓User看到! 比如UI、Output files, Tools
2. 用軟體的觀點來看問題,把問題分解成幾個SW components。What (SW components, Tools) should be enhanced/changed/updated/removed/created...
3. SRS是SW design 的Input。SRS 只需定義'規格' (What),它是一份合約。實作方式則定義在SW Design (How)。
4. SRS 必須用'外顯'、'可量測' 的角度來撰寫,好讓Tester判斷正確性。

看了許多的 SRS, 節錄出下列幾個重要方向:
Functional requirement: 定義系統要做的事 (What the system does)
Business Rules
External Interfaces (ex: UI, output files...)
Audit Tracking (ex: Logging)
Transaction corrections, adjustments and cancellations
Administrative functions
Authentication
Authorization levels
Certification Requirements
Reporting Requirements
Historical Data
Legal or Regulatory Requirements

Non-functional requirements: 定義系統的能力 (What the system's capability - the power to do it)
Reliability - 可以依據既定規格而持續運行的能力
Serviceability
Availability
Performance – for example Response Time, Throughput, Utilization, Static Volumetric
Scalability -  To handle a growing amount of work (系統處理工作量的成長)
Capacity - 系統可以產出(或提供服務)的最大量
Recoverability
Maintainability: 維持原有的形式,萬一發生錯誤也可以回復到原有的形式
Security
Regulatory
Manageability
Environmental
Data Integrity
Usability
Interoperability


Non-functional 影響層面有:
  • Reliability: Improvement in number of hits [hits/ syst yr] (Hit 次數)
  • Serviceability: Improvement on Maintenance and in MTTR (diagnostics, access, repair and/or recovery) repairing of system [hrs] (維修, 回復 時數)
  • Availability: Improvement in hours of downtime both USD (Unscheduled) as well as SD (Scheduled) [hrs/syst yr] (Downtime 時數)
  • Manufacturability: Improvement in CT (Cycle Time) or A-time in production [hrs/ syst]
  • Safety: Improvement of probability of incidents occurring
  • Usability: Functional improvement of machine for operator
  • Machine Performance: Non-functional improvement of customer requirements



沒有留言:

張貼留言