Understanding System Requirements: Types and Specifications
This guide explores system requirements crucial for effective software development. It outlines user, system, functional, and design specifications, emphasizing what a system should achieve rather than how to implement it. Functional requirements focus on interactions and capabilities, while non-functional requirements address constraints like reliability and performance. The intended audience includes users, managers, developers, and architects. By understanding these requirements, stakeholders can better ensure system success and address risks associated with non-functional demands.
Understanding System Requirements: Types and Specifications
E N D
Presentation Transcript
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