CSE460 Lecture 02

CSE460 Lecture 02

Software Analysis and Design
Complexity
(202008)

B546a9b97d993392e4b22b74b99b91fe?s=128

Javier Gonzalez

July 02, 2020
Tweet

Transcript

  1. jgs CSE 460 Software Analysis and Design Lecture 02: Complexity

    Dr. Javier Gonzalez-Sanchez javiergs@asu.edu javiergs.engineering.asu.edu | javiergs.com PERALTA 230U Office Hours: By appointment
  2. jgs Previously

  3. Javier Gonzalez-Sanchez | CSE460 | Fall 2020 | 3 jgs

    Previously To create a specification A graphical description (blueprint) Understand and capture elements and their relationships in a problem
  4. jgs Complexity

  5. Javier Gonzalez-Sanchez | CSE460 | Fall 2020 | 6 jgs

    The Problem with Complexity 1. The more complex the system, the more open it is to total breakdown 2. software crisis: late, over budget, and deficient satisfying requirements
  6. Javier Gonzalez-Sanchez | CSE460 | Fall 2020 | 7 jgs

    Scenarios VS
  7. Javier Gonzalez-Sanchez | CSE460 | Fall 2020 | 8 jgs

    Ignore Complexity When § Forgettable applications § Specified, 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.
  8. Javier Gonzalez-Sanchez | CSE460 | Fall 2020 | 9 jgs

    Challenges § Trade-Offs: Competing, perhaps even contradictory, requirements in the problem domain. § Quality: usability, reliability, performance, cost, … § Communication gap between the users and developers § Management: keep the illusion of simplicity § Labor-intensive vs Product lines § Combinatorial explosion of outputs (limited testing)
  9. Javier Gonzalez-Sanchez | CSE460 | Fall 2020 | 10 jgs

    Problem § maximum number of chunks of information that an individual can simultaneously comprehend is on the order of seven, plus or minus two
  10. Javier Gonzalez-Sanchez | CSE460 | Fall 2020 | 11 jgs

    Solution § Primitives Components § Separation of Concerns § Common Patterns (relationships) § Hierarchic Structure § Incremental Development: one problem at a time
  11. Javier Gonzalez-Sanchez | CSE460 | Fall 2020 | 12 jgs

    Solution § Primitives Components § Separation of Concerns § Common Patterns (relationships) § Hierarchic Structure § Incremental Development: one problem at a time Decomposition Abstraction Encapsulation Inheritance
  12. Javier Gonzalez-Sanchez | CSE460 | Fall 2020 | 13 jgs

    Alternative Solution * pioneering work on object-oriented programming 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
  13. Javier Gonzalez-Sanchez | CSE460 | Fall 2020 | 14 jgs

    Alternative Solution New Yorker, June 1992
  14. Javier Gonzalez-Sanchez | CSE460 | Fall 2020 | 15 jgs

    § Models give us the opportunity to fail § Programming vs Drawing Blueprint (Model)
  15. Javier Gonzalez-Sanchez | CSE460 | Fall 2020 | 16 jgs

    Homework § UML Review Class Diagrams Inheritance Generalization Realization Association Composition Aggregation
  16. Javier Gonzalez-Sanchez | CSE460 | Fall 2020 | 17 jgs

    Reference Chapter 1
  17. jgs CSE 460 Software Analysis and Design Javier Gonzalez-Sanchez javiergs@asu.edu

    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.