Download Understanding Abstraction, Decomposition, and Hierarchy in Software Systems and more Slides Database Management Systems (DBMS) in PDF only on Docsity!
Object Oriented Software EngineeringUsing UML, Patterns, and Java
Chapter 2,
Modeling with UML,
Part 1
Odds and Ends (2)
- (^) Reading for this Week:
- (^) Chapter 1 and 2, Bruegge&Dutoit, Object-Oriented Software Engineering
- (^) Software Engineering I Portal
- (^) Lectures Slides:
- (^) Will be posted after each lecture.
What is the problem with this
Drawing?
Abstraction
- (^) Complex systems are hard to understand
- (^) The 7 +- 2 phenomena
- (^) Our short term memory cannot store more than 7+- pieces at the same time -> limitation of the brain
- (^) TUM Phone Number: 498928918204
Abstraction
TUM Phone Number
StateCode CityCode^ TUMcode^ OfficePart
- (^) Chunking:
- (^) Group collection of objects to reduce complexity
- (^) State-code, city-code, TUM-code, Office-Part
- (^) Complex systems are hard to understand
- (^) The 7 +- 2 phenomena
- (^) Our short term memory cannot store more than 7+- pieces at the same time -> limitation of the brain
- (^) TUM Phone Number: 498928918204
Abstraction
- (^) Abstraction allows us to ignore unessential details
- (^) Two definitions for abstraction:
- (^) Abstraction is a thought process where ideas are distanced from objects - (^) Abstraction as activity
- (^) Abstraction is the resulting idea of a thought process where an idea has been distanced from an object - (^) Abstraction as entity
- (^) Ideas can be expressed by models
We use Models to describe Software Systems
- (^) Object model: What is the structure of
the system?
- (^) Functional model: What are the
functions of the system?
- (^) Dynamic model: How does the system
react to external events?
- (^) System Model: Object model +
functional model + dynamic model
Other models used to describe Software System Development
- (^) Task Model:
- (^) PERT Chart: What are the dependencies between tasks?
- (^) Schedule: How can this be done within the time limit?
- (^) Organization Chart: What are the roles in the project?
- (^) Issues Model:
- (^) What are the open and closed issues?
- (^) What blocks me from continuing?
- (^) What constraints were imposed by the client?
- (^) What resolutions were made?
- (^) These lead to action items
Issue-Modeling Issue: What is the Center of the Universe? Proposal1: The earth! Proposal2: The sun! Pro: Copernicus says so. Pro: Aristotle says so. Pro: Change will disturb the people. Con: Jupiter’s moons rotate around Jupiter, not around Earth. Resolution (1615): The church decides proposal 1 is right
Issue-Modeling Issue: What is the Center of the Universe? Proposal1: The earth! Proposal2: The sun! Pro: Copernicus says so. Pro: Aristotle says so. Pro: Change will disturb the people. Con: Jupiter’s moons rotate around Jupiter, not around Earth. Resolution (1615): The church decides proposal 1 is right Resolution (1998): The church declares proposal 1 was wrong Proposal3: Neither! Pro: Galaxies are moving away From each other.
Decomposition (cont’d)
- (^) Object-oriented decomposition
- (^) The system is decomposed into classes (“objects”)
- (^) Each class is a major entity in the application domain
- (^) Classes can be decomposed into smaller classes
- (^) Object-oriented vs. functional decomposition Which decomposition is the right one?
Functional Decomposition
Top Level functions Level 1 functions Level 2 functions Machine instructions System Function Load R10 Add R1, R Read Input Transform^ Produce Output Transform Produce Output Read Input
Functional Decomposition
- (^) The functionality is spread all over the system
- (^) Maintainer must understand the whole system to
make a single change to the system
- (^) Consequence:
- (^) Source code is hard to understand
- (^) Source code is complex and impossible to maintain
- (^) User interface is often awkward and non-intuitive
- (^) Example: Microsoft Powerpoint’s Autoshapes
- (^) How do I change a square into a circle? ?
Changing a Square into a Circle