Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

jgs Previously

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

jgs Complexity

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

jgs 00000001 Scenarios VS

Slide 7

Slide 7 text

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.

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

jgs 00000001 Alternative Solution New Yorker, June 1992

Slide 13

Slide 13 text

jgs What to Do?

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

jgs Case Study Part One

Slide 18

Slide 18 text

jgs 00000001 Pacman Needs Necessities Wishes Desires Ideas Requirements

Slide 19

Slide 19 text

jgs 00000001 Pacman I want a Pacman videogame Requirements

Slide 20

Slide 20 text

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)

Slide 21

Slide 21 text

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.

Slide 22

Slide 22 text

jgs 00000001 Reference Textbook Chapter 1

Slide 23

Slide 23 text

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.