Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 CSE 403 Software Requirements Reading: Pragmatic Programmer Ch. 7: Before the Project These lecture slides are copyright (C) Marty Stepp, 2007, with.

Similar presentations


Presentation on theme: "1 CSE 403 Software Requirements Reading: Pragmatic Programmer Ch. 7: Before the Project These lecture slides are copyright (C) Marty Stepp, 2007, with."— Presentation transcript:

1 1 CSE 403 Software Requirements Reading: Pragmatic Programmer Ch. 7: Before the Project These lecture slides are copyright (C) Marty Stepp, 2007, with significant content taken from slides written by Valentin Razmov. They may not be rehosted, sold, or modified without expressed permission from the author. All rights reserved.

2 2 Lecture outline Requirements definition classifications Use cases

3 3 Big questions What are requirements? How do we "gather" requirements? Once we know some of the requirements, how do we write them down and document them? In how much detail should we specify them? (What is "the DRY principle"? The "Boiled Frog Syndrome?")

4 4 F. Brooks quote "The hardest single part of building a software system is deciding precisely what to build. No other part of the conceptual work is so difficult as establishing the detailed technical requirements, including all the interfaces to people, to machines, and to other software systems. No other part of the work so cripples the resulting system if done wrong. No other part is more difficult to rectify later. Therefore the most important function that software builders do for their clients is the iterative extraction and refinement of the product requirements." -- Fred Brooks, The Mythical Man-Month

5 5 Software requirements requirements: specify what to build "what" and not "how" the system design, not the software design the problem, not the (detailed) solution roles of requirements customers: show what should be delivered; contractual base managers: a scheduling / progress indicator designers: provide a spec to design coders: list a range of acceptable implementations / output QA / testers: a basis for testing, validation, verification

6 6 Classifying requirements The classic way to classify requirements: functional: map inputs to outputs "The user can search either all databases or a subset." "Every order gets an ID the user can save to account storage." nonfunctional: other constraints performance, dependability, reusability, safety "Our deliverable documents shall conform to the XYZ process." "The system shall not disclose any personal user information." Another way to classify them (Faulk) behavioral: about implementation; can be measured features, performance, security development quality attributes: part of internal construction flexibility, maintainability, reusability (more subjective)

7 7 Cockburn's requirements list Requirements Outline (p13-14) - good template of all func. requirements 1.purpose and scope 2.terms / glossary 3.use cases 4.technology used 5.other 5a.development process - participants, values (fast-good-cheap), visibility, competition, dependencies 5b.business rules / constraints 5c.performance demands 5d.security (now a hot topic), documentation 5e.usability 5f.portability 5g.unresolved / deferred 6.human issues: legal, political, organizational, training


Download ppt "1 CSE 403 Software Requirements Reading: Pragmatic Programmer Ch. 7: Before the Project These lecture slides are copyright (C) Marty Stepp, 2007, with."

Similar presentations


Ads by Google