Professional Documents
Culture Documents
CH 01 Lect 1
CH 01 Lect 1
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 2 20
Factors affecting the quality of a software system
Individual Ability.
Team Communication.
Product Complexity.
Appropriate Notations(represent scheme of goods).
Systematic Approach.
Level of technology.
Level of reliability.
Available time.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 3
1. Abstraction
1. Models are used to provide abstractions 2. Decomposition
3. Hierarchy
Inherent human limitation to deal with complexity
The 7 +- 2 phenomena
Chunking: Group collection of objects
Ignore unessential details: => Models
What does this refer to?
System Model:
Object Model: What is the structure of the system? What are the objects and how
are they related?
Functional model: What are the functions of the system? How is data flowing
through the system?
Dynamic model: How does the system react to external events? How is the event flow
in the system ? In UML?
Task Model:
PERT Chart: What are the dependencies between the tasks?
Schedule: How can this be done within the time limit?
Org Chart: What are the roles in the project or organization?
Issues Model:
What are the open and closed issues? What constraints were posed by the client?
What resolutions were made?
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 4
Model-based software Engineering:
Code is a derivation of object model Is this a “problem”?
};
Church: The earth is the center of the universe. Why? Aristotle says
so.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 6
Issue-Modeling
Issue:
What is the Resolution (1615):
Resolution (1998): Center of the The church
The church declares Universe? decides proposal 1
proposal 1 was wrong is right
Proposal1: Proposal2:
The earth! The sun!
Pro: Pro:
Aristotle Con:
Copernicus
Jupiter’s moons rotate
says so. says so.
around Jupiter, not
Produce
Read Input Transform Level 1 functions
Output
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 10
Functional Decomposition: Autoshape
Autoshape
Then, depending on the purpose, could a functional decomposition be better than an OO decomposition?
Which is UML
Bernd Bruegge & Allenfor, functional- or OO-decomposition?
H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 12
Model of an Eskimo
Eskimo
Size
Dress()
Smile()
Sleep()
Shoe
* Coat
Size Size
Color Color
Type Type
Wear() Wear()
*
Entrance
Windhole MainEntrance
Diameter Size
Indian
Hair
Dress()
Smile()
Sleep()
Face Mouth
Ear Nose NrOfTeeths
Size * smile() Size
open()
listen() close_eye()
speak()
2 important hierarchies
"Part of" hierarchy
"Is-kind-of" hierarchy
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 16
Part of Hierarchy
Computer
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 17
Is-Kind-of Hierarchy (Taxonomy)
Cell
Any issue?
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 18
Software Lifecycle Definition
Software lifecycle:
Set of activities and their relationships to each other to support the
development of a software system
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 19
Software Lifecycle Activities
Deliverable 0
Deliverable 1 Deliverable 2 Deliverable 3 Deliverable 4 Deliverable 5 Deliverable 6
Implemented
Expressed in By
Structured By Realized By
Terms Of Verified
By
class...
class...
class... ?
class.... ?
Use Case Application Solution
Domain SubSystems Source Test
Model Domain
Objects Code Cases
Objects
Design Pattern:
A small set of classes that provide a template solution to a recurring
design problem
Reusable design knowledge on a higher level than data structures
(link lists, binary trees, etc)
Framework:
A moderately large set of classes that collaborate to carry out a set
of responsibilities in an application domain.
Examples: User Interface Builder
Provide architectural guidance during the design phase
Provide a foundation for software components industry
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 21
Summary
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 22
Software Production has a Poor Track Record
Example: Space Shuttle Software
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 24
Patterns are used by many people
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 25