$30 off During Our Annual Pro Sale. View Details »

CSE460 Lecture 02

CSE460 Lecture 02

Software Analysis and Design
Complexity
(202101)

Javier Gonzalez-Sanchez
PRO

July 02, 2020
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. jgs
    CSE 460
    Software Analysis and Design
    Lecture 02: Complexity
    Dr. Javier Gonzalez-Sanchez
    [email protected]
    javiergs.engineering.asu.edu | javiergs.com
    PERALTA 230U
    Office Hours: By appointment

    View Slide

  2. jgs
    Previously

    View Slide

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

    View Slide

  4. jgs
    Complexity

    View Slide

  5. jgs
    00000001
    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

    View Slide

  6. jgs
    00000001
    Scenarios
    VS

    View Slide

  7. jgs
    00000001
    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.

    View Slide

  8. jgs
    00000001
    Challenges
    § Communication gap between the users and 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

    View Slide

  9. jgs
    00000001
    Problem
    § maximum number of chunks of information that an
    individual can simultaneously comprehend is on the order
    of seven, plus or minus two

    View Slide

  10. jgs
    00000001
    § Models give us the opportunity to fail
    Blueprint (Model)

    View Slide

  11. jgs
    00000001
    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

    View Slide

  12. jgs
    00000001
    Alternative Solution
    New Yorker, June 1992

    View Slide

  13. jgs
    What to Do?

    View Slide

  14. jgs
    00000001
    Solution | Understanding the Problem
    § Independent – 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

    View Slide

  15. jgs
    00000001
    Solution | Modeling the Problem
    § Primitives Components
    § Separation of Concerns
    § Common Patterns (relationships)
    § Hierarchic Structure
    § Incremental Development: one problem at a time

    View Slide

  16. jgs
    00000001
    Solution | Modeling the Problem
    § Primitives Components
    § Separation of Concerns
    § Common Patterns (relationships)
    § Hierarchic Structure
    § Incremental Development: one problem at a time
    Decomposition
    Abstraction
    Encapsulation
    Inheritance

    View Slide

  17. jgs
    Case Study
    Part One

    View Slide

  18. jgs
    00000001
    Pacman
    Needs
    Necessities
    Wishes
    Desires
    Ideas
    Requirements

    View Slide

  19. jgs
    00000001
    Pacman
    I want a
    Pacman
    videogame
    Requirements

    View Slide

  20. jgs
    00000001
    Pacman
    Independent
    loosely coupled with one another
    Negotiable
    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)

    View Slide

  21. jgs
    00000001
    Homework
    § Working alone or in a team 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.

    View Slide

  22. jgs
    00000001
    Reference
    Textbook
    Chapter 1

    View Slide

  23. jgs
    CSE 460 Software Analysis and Design
    Javier Gonzalez-Sanchez
    [email protected]
    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.

    View Slide