![]() |
|
| Requirements capture | |
|
Fred Brooks: deciding precisely what to build is hardest part of software development; poor requirements specification cripples the system if done wrong; it is the hardest part to rectify later. Requirements are conditions for a successful solution. Specifications are detailed characteristics of the system, including how the system can be verified. Requirements are functional or non-functional. Functional requirements are inputs, outputs, computations, timing. Non-functional requirements are response time, throughput, resource usage, reliability, availability, failure recovery, maintainability, reusability, platform, technology, cost, delivery date. The first step is to achieve common understanding with the customer/users.
Important points:
Modeling techniques include use case analysis and Class-Resonsibility-Collaborator (CRC) cards. A use case includes a single functional requirement of the system and the actors that take part in the case. It is focused on actions, i.e. procedural issues. A CRC card focuses on data organization issues. Both can be used since the end system will have both aspects. |