Software Analysis and Design Lecture 2
Blueprint
A graphic description to create a specification
Models
give us the opportunity to fail
Complexity
- Size: The number of components
tree: 3 lines of code, but more complexity
bubble sort: 10 lines of code - Abstraction
what is behind code? Eg: tree has less code but harder
Problem with complexity
the more complex the system, the more open it is to total breakdown.
breakdown because of lack of -> skill -> communication
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
- Draw pacman
- Move pacman
Quality & Constraint is Non Functional Requirement
- Use java to develop game
1
2
3
4
5
6
7
8
9
10
11
12
13
14class 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.