Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
A N I NTRODUCTION
L EARNING O UTCOME :
O VERVIEW
O UTLINE
Object-orientation
Iterative development
C HALLENGES OF S OFTWARE
D EVELOPMENT
The Economist magazine (Nov 27, 2009 p.
71) cites the Standish Group's estimates that
"...30% of all software projects are canceled,
nearly half come in over budget, 60% are
considered failures by the organizations
that initiated them, and 9 out of 10 come
in late.
C HALLENGES OF S OFTWARE
D EVELOPMENT
C HALLENGES OF S OFTWARE
D EVELOPMENT COMPLEXITY
C HALLENGES OF S OFTWARE
D EVELOPMENT LONGEVITY &
EVOLUTION
C HALLENGES OF S OFTWARE
D EVELOPMENT HIGH USER
EXPECTATIONS
S OFTWARE S YSTEM
Q UALITIES
10
S OFTWARE S YSTEM
Q UALITIES
11
M AINTAINABILITY R EVISITED
12
W HAT C ONTRIBUTES TO
M AINTAINABILITY ?
13
Flexibility
Simplicity
Readability (understandability)
F LEXIBILITY
14
Changeable
Minimal impact
S IMPLICITY
15
Less error-prone
Divide-and-conquer approach
R EADABILITY
16
Depends on:
17
C HALLENGES OF S OFTWARE
D EVELOPMENT P ROBLEMS &
2010 BENNETT, MCROBB AND FARMER
Problem
The wrong problem is addressed
Project undertaken for wrong reason
I NDICATIVE
SOLUTIONS
O UTLINE
18
Object-orientation
Iterative development
S OFTWARE E NGINEERING
19
S OFTWARE E NGINEERING
20
S OFTWARE A S
21
PRODUCT
What is software?
S OFTWARE
22
AS PRODUCT
Software categories
other product.
S OFTWARE E NGINEERING
23
S OLVING P ROBLEMS
composition is challenging
S OFTWARE E NGINEERING
24
The analysis
process
The synthesis
process
T HE
25
SOFTWARE PROCESS
R EQUIREMENTS E NGINEERING
26
R EQUIREMENTS ENGINEERING
27
Goals
Deliverables
28
T HE
REQUIREMENTS
ENGINEERING PROCESS
28
29
IMPLEMENTATION
Software design
Implementation
D ESIGN
30
Goals
Deliverables
D ESIGN ACTIVITIES
31
32
32
I MPLEMENTATION
33
Goals
Deliverables
S OFTWARE
34
VERIFICATION
& VALIDATION
T ESTING
35
System testing
STAGES
Acceptance testing
Testing with customer data to check that the system meets the customers needs.
36
T ESTING
S OFTWARE
37
EVOLUTION
S OFTWARE
38
Goals
EVOLUTION
Deliverables
S OFTWARE
39
EVOLUTION
O UTLINE
40
Software engineering
Object-orientation
Iterative development
H OW H AS SE C HANGED ?
41
H OW H AS SE C HANGED ?
42
WASSERMAN ' S
DISCIPLINES OF SE
[ P F L E E G E R & AT L E E , 2 0 1 0 ]
Abstractions
Software architecture
Software process
Reuse
Measurement
H OW H AS SE C HANGED ?
43
A BSTRACTION
Hide details
44
T HE WATERFALL MODEL
WATERFALL MODEL
45
PHASES
WATERFALL M ODEL
46
CHARACTERISTICS
Sequential
Phase based
WATERFALL MODEL
47
PROBLEMS
only appropriate when the requirements are wellunderstood and changes will be fairly limited during the
design process.
few business systems have stable requirements.
48
Decomposition
Hierarchy
49
50
An existing system
51
AND
FARMER
52
M ODELING
THE
R EAL W ORLD
Software system
Abstraction
Real world
Model
Interpretation
Algorithm
53
Task Model:
H OW TO M ODEL R EAL
W ORLD ?
55
H OW TO M ODEL R EAL
W ORLD ?
56
Programming languages
Programming models
W HY O-O M ODEL ?
57
Data-oriented model
Real world
Software system
Object-oriented model
Real world
Software system
58
Functional decomposition
Object-oriented decomposition
Functional decomposition
D ECOMPOSITION ( CONT D )
59
Object-oriented decomposition
O UTLINE
60
Software engineering
Object-orientation
Iterative development
I TERATIVE D EVELOPMENT
61
(B OOCH 1994)
Key characteristics
Consists of a number of successive iterations
Each iteration produces a working program
Build system incrementally
Monolithic approach of waterfall model
Benefits
Facilitates and manage changes
Minimize and prevent changes
Examples
Rational Unified Process (RUP)
Extreme Programming (XP)
RUP
62
Goal to ensure the production of highquality software that meets the needs of
its end users within a predictable
schedule and budget (Booch et al., 1999)
RUP
63
RUP
64
RUP
65
RUP
66
RUP
67
68
RUP
RUP
69
THE
Approach
Activities
Conceptualization
Object-oriented analysis and modeling
Object-oriented design
Implementation
Maintenance
D ETAILED A CTIVITIES
70
Conceptualization
To establish the vision and core requirements of
the software system to be developed.
Object-oriented analysis and modeling
To build models of the systems desired behavior,
using notations such as the Unified Modeling
Language (UML).
To capture the essential relevant aspects of the
real world and to define the services to be
provided and/or the problems to be solved.
To simplify reality to better understand the
system to be developed.
D ETAILED A CTIVITIES
71
Object-oriented design
Main concern:
D ETAILED A CTIVITIES
72
Implementation:
Maintenance:
Task:
Removing bugs
Enhancing functionalities
Adapting to evolving needs and environment
73
O BJECT - ORIENTED
DEVELOPMENT
R EFERENCES
74
www.cs.utep.edu/cheon/cs3331/notes/oosd.ppt