Understanding Abstraction, Decomposition, and Hierarchy in Software Systems, Slides of Database Management Systems (DBMS)

An excerpt from the book 'object-oriented software engineering: using uml, patterns, and java' by bernd bruegge and allen h. Dutoit. It discusses the concepts of abstraction, decomposition, and hierarchy in software systems, and how they help to deal with complexity. The text also covers the difference between object-oriented and functional decomposition, and the importance of models in describing software systems.

Typology: Slides

2017/2018

Uploaded on 12/11/2018

mohammednouh
mohammednouh 🇸🇴

1 document

1 / 58

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Using UML, Patterns, and Java
Object-Oriented Software Engineering
Chapter 2,
Modeling with UML,
Part 1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a

Partial preview of the text

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