1 Requirements Analysis and Specification Requirements analysis
2 Requirements Analysis and Specification Requirements / specification customer developer requirements specifications
3 Requirements Analysis and Specification: Requirements / Specification: ----What is needed? ----If there is a current implementation, what are the problems with it? ----How can we translate customer needs and wants into a usable specification for the design stage? Initially, requirements may be fuzzy and poorly stated--analysis stage sharpens and focuses the (customer) requirements Requirements analysis and specification
4 Example: let’s redesign windows ----What is needed? ----Current implementation: what are the problems with it? ----How can we translate customer needs and wants into a usable specification for the design stage? Initially, requirements may be fuzzy and poorly stated--analysis stage sharpens and focuses the (customer) requirements Example
5 An example requirements analysis process: FAST (Facilitated Application Specification Techniques, in R.A. Zahniser, Building Software in Groups, American Programmer 3 (7-8), July-August, 1990.): GOAL: identify problem, negotiate differences, specify preliminary set of solution requirements --engineers AND customers meet at a neutral site --there are rules for preparation and participation in this meeting --agenda covers all important points but also allows flexibility for free flow of ideas --meeting controlled by facilitator --definition mechanism chosen (e.g., flip charts, electronic bulletin board.,etc.) Example requirements analysis process
6 Some tools for requirements analysis & specification: Requirements: ----formal requirements document Specification: ----use cases (UML) ----”user stories” (XP) Tools for requirements analysis
7 Requirements document must be as clear as possible, consistent, complete Important parts of a requirements document (Berezin, 1999): 1. Application Overview: -- objectives -- (business process—how application fits) -- user roles and responsibilities -- interactions with other systems -- (replacement of legacy systems) -- (production rollout considerations) -- terminology Requirements document
8 Important parts of a requirements document (continued): 2. Functional requirements: -- functionality precise, detailed, for each user class address security, auditing, reporting, ability of users to modify application -- (scope (for a multiphase project) ) 3. Quality requirements --performance (space / time / power) -- usability -- concurrency --portability --security / reliability --etc. Requirements document--continued
9 Specification: must be as complete as possible, consistent, clear Specification
10 Principles of specification: 1. functionality should be separate from implementation 2. model of system behavior must include both data and functional responses to external stimuli 3. interaction with other components must be specified 4. environment of operation must be defined 5. "cognitive model" should describe the system as seen by the user community; do not create a design or implementation model 6. must be tolerant of incompleteness and allow for additions 7. must allow for change Principles of specification
11 Result of specification step: Software Requirements Specification must include: --complete information description --detailed functional description --representation of system behavior --performance requirements --design constraints --appropriate validation criteria (for example, acceptance tests) --……. Software requirements specification
12 example candidate formats for specification: IEEE Department of Defense at the end of this process, customer and developer must conduct a Specification Review Specification format
13 “Redesign windows” requirement specification for new product? Specification—one example
14 This quarter: Requirements will be written following the outline in the paper by Berezin Specifications will be written as UML use cases, along with text descriptions System acceptance tests will be written along with specifications Quarter Project