Week 1 Basics
Week 1 Basics
and Design
Instructor: Ekrem BAŞER, PhD
Contact:[email protected]
Purpose of software
InputStudentlnfo
InputTestInfo
InputSubjectInfo
Prepare report card Accept calculate display
Decompose Decompose Calculate
AssignGrade
DisplayDetails
Execution
Prepare report card
SubjetInfo
TestInfo
Disadvantages
• Development based on the high-level specification
Often changes over time
parts have to be rewritten
• Algorithms are very specific to the application, thus, difficult to reuse
• Difficult to add new features
algorithms are tightly wired to work together
• Data is treated with low significance
data is shared between algorithms
unintentional modification can lead to disastrous results
• Focus on operations
no idea about the entity on which operation is performed
overall understanding of the application becomes complicated
Object Oriented Decomposition
• Humans can also abstract complexity and focus only on necessary
details
• unwanted details are ignored
• deal with relevant details only
• leads to simple entities in the problem domain
OS Filesystem type
Storage Battery type
Battery Camera aperture
Networks Image format
Screen size Color space
Camera
Object Oriented Decomposition
• Recognize relationship between these entities
some entities may be generalized
• Understand how they interact and coordinate
• The coordination gives rise to the functionality of the system
Object Oriented Decomposition
• Uses bottom-up design
• The system is decomposed as a set of autonomous, but cooperative agents
• These agents are objects and represent key abstractions in the problem
domain
designed with detail
• Each object has its own behaviour
• Models some object in the real world
• The objects coordinate with each other
coordination gives rise to functionality of the system
send messages to each other
Object Oriented Decomposition
Object A Object F
Object E
Object B
Messages
Object C Object D
Object Oriented Decomposition