constructed, maintained, and used by 1 person, (isolated developer). § Prototyping: limited purpose and a short life span. § We can afford to throw them away and replace them with a new software rather than attempt to reuse them, modify them, or extend their functionality. Therefore, design them is not relevant.
developers § Trade-Offs: Competing, perhaps even contradictory, requirements in the problem domain. § Quality: usability, reliability, performance, cost, … § Combinatorial explosion of outputs (limited testing) § Management: keep the illusion of simplicity § Labor-intensive vs Product lines
and windowing graphical user interface design "Most software today is very much like an Egyptian pyramid with millions of bricks piled on top of each other, with no structural integrity, but just done by brute force and thousands of slaves". – Alan Kay ACM Queue. Vol. 2, No. 9 - Dec/Jan 2004-2005
loosely coupled with one another § Negotiable – Stories are what and why , not how ( 99% ). § Valuable – for the customer! § Estimable – Effort/Cost of design, build, and test. § Small (sized appropriately) § Testable – pass or fail
§ Separation of Concerns § Common Patterns (relationships) § Hierarchic Structure § Incremental Development: one problem at a time Decomposition Abstraction Encapsulation Inheritance
Stories are what and why , not how Valuable for the customer! Estimable Effort/Cost of design, build, and test. Small (sized appropriately) Testable (pass or fail)
of 2, 3, or 4 define the requirements for the pac- man videogame § Submit a list with at least 25 functional requirements § You can add non-functional requirements (they are extra to the 25 required) § Remember, check each of your candidates for the INVEST properties.
Fall 2020 Disclaimer. These slides can only be used as study material for the class CSE460 at ASU. They cannot be distributed or used for another purpose.