Software Analysis and Design Lecture 2

Blueprint

A graphic description to create a specification

Models
give us the opportunity to fail

Complexity

  1. Size: The number of components
    tree: 3 lines of code, but more complexity
    bubble sort: 10 lines of code
  2. Abstraction
    what is behind code? Eg: tree has less code but harder

Problem with complexity

  1. the more complex the system, the more open it is to total breakdown.

     breakdown because of lack of -> skill
                                                       -> communication
  2. software crisis: late, over budget, deficient satisfying requirements

Ignore Complexity When…

  • Specified, constructed, maintained, and used by 1 person

  • Prototype, 1 person, limited purpose and short life span

  • Replace them with a new software, not reuse, modify, or extend softwar

chanllenges

  • Communication gap between the users and developers
  • Trade-ofs: competing, contradictory, requirements in the problem domain
  • Quality: usability, reliability, performance, cost
  • Limied testing
  • Labor-intensive vs Product lines

Be a teammate or leader, one of the main responsibility
Management: keep the issusion of Simplicity

maximum number of chunks of information. 7 +- 2 things you can think in your brain at the same time

INVEST

Independent - loosely coupled with one another
Negotiable - stories are what and why, not how
Value - for the customer
Estimate - effort.cost of design, build, test
Small (size appropriately) 1 programmer and 1 week
Testable - pass or fail

“I want a pacman videogame” is Not a requirement

Modeling the problem

  • Primitive components
  • separation of concerns
  • common patterns(relationships)
  • hierarchic structure
  • Incremental devlopment

Functional Requirement

  1. Draw pacman
  2. Move pacman

Quality & Constraint is Non Functional Requirement

  1. Use java to develop game
  2. 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class Pacman
    {
    void paintComponent(graphic)
    {
    g.drawOval(x,y,10)
    }

    set x();
    set y();
    }

    class ____
    m() ____x y
    { }

Q: How many requirements approximately in pacman video games
A: 25 - 50 requirements
If less than 25, may be some lines need to be split. If combine two tasks, means we need 2 people to do, but 1 requirement only need 1 person.