100 likes | 213 Views
7. Requirements. Requirements?. Describes what the system should do Its services and constraints A high-level specification of what’s expected of the system It should not dictate how the system should be implemented, however. Types of Specification. User requirements System requirements
E N D
Requirements? • Describes what the system should do • Its services and constraints • A high-level specification of what’s expected of the system • It should not dictate how the system should be implemented, however
Types of Specification • User requirements • System requirements • Functional spec • Design specification • Adds more details and constraints to system requirements
Who is it intended for? • User Requirements • Managers, end users, developers, architects • System requirements • End users, developers, architects • Design Specification • Developers, architects
Types of Requirements • Functional • Behavior and interaction of the system • What it is supposed to do • Non-functional • Constraints on the services • Performance, concurrency, standards, etc. • Domain • Domain specific constraints • May be functional or non-functional
Functional requirements • Specifies the interaction with the system • Detailed list of what can be done using the application • Users may not be very specific though expected to be precise • Developers often misinterpret • Requirements often change or are modified – leading to increased cost
Non-functional Requirements • Stem from constraints, not from specifications • System related constraints • Reliability, speed, performance, concurrency, storage requirements, interface restrictions,… • Generally at the system specification level and are mostly critical – has wide effect on the system’s success
Non-functional Requirements … • Some of these may not be related to application, but related to process • Requirements on how the system is developed, documented, progress is monitored, etc. • consider a application that requires FDA approval!
Type of non-functional reqs. • Product requirements • Usability • Efficiency: Performance, space, Concurrency • Reliability • Portability • Organizational requirements • Delivery, implementation, standards • External requirements • Interoperability, ethical, legislative, privacy, safety
Risks from non-functional reqs • Some of these are hard to verify • Need to test often to make sure system meets these • Nice if quantitative metrics can be created to measure these