Managing Complexity EEE321.01 - PowerPoint PPT Presentation

1 / 21
About This Presentation
Title:

Managing Complexity EEE321.01

Description:

There are 10 kinds of people in the world. Those who understand ... the overlooking of unimportant detail. concentration upon the essential features of an idea ... – PowerPoint PPT presentation

Number of Views:134
Avg rating:3.0/5.0
Slides: 22
Provided by: Kni69
Category:

less

Transcript and Presenter's Notes

Title: Managing Complexity EEE321.01


1
Managing Complexity EEE321.01
Royal Military College of Canada Electrical and
Computer Engineering
Refs Ambler Ch 1-2Booch Ch 1
  • Maj JW Paul
  • Jeff.Paul_at_rmc.ca
  • 1-613-541-6000 x6656

Based on a series of Lectures by Dr Scott Knight
2
There are 10 kinds of people in the world.Those
who understand binary,
and those who dont...
3
Review
  • What are three specific characteristics of
    software?
  • It is engineered
  • It is custom-built
  • It doesnt wear out
  • Why is software so complex?
  • The problem domain
  • The development process
  • Flexibility (changeability) of software
  • Behaviour of discrete systems

4
Todays Class
  • Three tools for coping with complexity
  • Modeling
  • UML

5
How to manage the complexity?
or, how at least reduce it...
  • Decomposition
  • Hierarchy
  • Abstraction

6
Decomposition
  • breaks the problem into understandable components
  • allows elements of an organization to work on
    small chunks of the system
  • can limit flexibility by producing well defined
    (possibly reusable) building blocks
  • opens the possibility for separation of issues
    allowing isolation of the state space
  • Coupling vs Cohesion

7
Hierarchy
  • allows understanding of relationships between
    small numbers of components
  • different kinds of hierarchies allow insight into
    different aspects of the complex system

8
Abstraction
  • probably the most important of the three tools
  • the overlooking of unimportant detail
  • concentration upon the essential features of an
    idea

9
Abstraction Examples
  • business organization chart
  • virtual machine
  • character based I/O
  • graphics objects

10
A New Modularization
Decomposition Hierarchy Abstraction
  • OO Languages
  • based on abstract data types (classes)
  • encapsulation (data hiding)
  • abstraction (interface)
  • design paradigm define types, provide operations
    for types, exploit commonality

11
An Object
  • An instance of an abstract data type
  • State
  • Behaviour
  • Identity

12
Object-based/OO Languages
Sets of collaborating objects
13
Potential Problems with OO
OO requires greater concentration on req,
analysis design
2
Developers must work closely with users
OO requires a complete change in mindset
OO requires a change in the development culture
OO is more than just programming
Many OO benefits are long term
7
OO demands up-front investment in training,
tools, education
OO does not guarantee you will build the right
system
OO necessitates increased testing
10
OO is only part of the solution
14
Why do we model?
  • Provide structure for problem solving
  • Experiment to explore multiple solutions
  • Furnish abstractions to manage complexity
  • Reduce time-to-market for business problem
    solutions
  • Decrease development costs
  • Manage the risk of mistakes

from ftp//ftp.omg.org/pub/docs/omg/99-11-04.pdf
15
UML
  • The UML is a graphical language for
  • specifying
  • visualizing
  • constructing
  • documenting
  • specifying the artifacts of software systems

16
UML History
17
Goals of UML
  • Provide users with a ready-to-use, expressive
    visual modeling language so they can develop and
    exchange meaningful models.
  • Provide extensibility and specialization
    mechanisms to extend the core concepts.
  • Be independent of particular programming
    languages and development processes.
  • Provide a formal basis for understanding the
    modeling language.
  • Encourage the growth of the OO tools market.
  • Support higher-level development concepts such as
    collaborations, frameworks, patterns and
    components.
  • Integrate best practices.

18
Many parts to UML
  • Static Structure Diagram
  • Use Case Diagram
  • Sequence Diagram
  • Collaboration Diagram
  • Statechart Diagram
  • Activity Diagram
  • Implementation Diagram
  • Other supporting tools

19
Review
  • Why is software so complex?
  • The problem domain
  • The development process
  • Flexibility (changeability) of software
  • Behaviour of discrete systems
  • How do we manage complexity?
  • Abstraction
  • Decomposition
  • Hierarchy
  • Give an example of each

20
Review
  • Does OO solve the complexity problem?
  • Your answer goes here.
  • Why do we model?
  • Provide structure for problem solving
  • Experiment to explore multiple solutions
  • Furnish abstractions to manage complexity
  • Reduce time-to-market for business problem
    solutions
  • Decrease development costs
  • Manage the risk of mistakes

21
Next Class
  • Object Model
  • Other points
  • Coding standards
  • Lab template
Write a Comment
User Comments (0)
About PowerShow.com