the modular structure of complex systems
DESCRIPTION
The Modular Structure of Complex Systems. Team 3 Nupur Choudhary Aparna Nanjappa Mark Zeits. Overview. A Recap Complex Systems Module Guide Modular Hierarchy An Example – Linux Internals Design Through Documentation Conclusion. A Recap: Modules. What is a Module ? - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/1.jpg)
The Modular Structure of Complex Systems
Team 3Nupur ChoudharyAparna NanjappaMark Zeits
![Page 2: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/2.jpg)
2
Overview
A Recap
Complex Systems
Module Guide
Modular Hierarchy
An Example – Linux Internals
Design Through Documentation
Conclusion
![Page 3: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/3.jpg)
3
A Recap: Modules What is a Module?
A Work Assignment
The Principles: Each module’s implementation is a
secret Each module’s interface abstractly and
precisely described We abstract from implementation details
likely to change We parameterize changeable aspects
that cannot be hidden
![Page 4: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/4.jpg)
4
A Recap: Buzzwords
Hierarchical Structure -
directed graph with no loops
Encapsulation - language
facility
Information Hiding - design
principle
![Page 5: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/5.jpg)
5
Some possible classification criteria for modules...
Similarity of interface
Ultimate purpose
Type of function or service
provided
Similar programming problems
Nature of secret
![Page 6: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/6.jpg)
6
Goals of Modular Structure
Modules can be designed
independently
Modules can be tested independently
Modules can be changed
independently
Integration goes on smoothly
Reduction of overall software cost!!!
![Page 7: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/7.jpg)
7
A Complex System
Large number of interacting
modules (usually greater than a
couple hundred modules)
Collective behavior cannot be
simply understood in terms of the
behavior of modules
![Page 8: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/8.jpg)
8
About Complex Systems ... Many implementation decisions
Many details
How can we ……..
keep the project under control ?
keep the maintenance cost down?
maintain conceptual integrity?
avoid duplication?
deal with unstructured lists of
modules?
![Page 9: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/9.jpg)
9
Quick example of a Complex System
The A-7E Aircraft
Extremely complex Onboard
Flight Program
Limited memory
Real-time constraints
![Page 10: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/10.jpg)
10
New Complications
Previous attempts dealt with
simple systems i.e. less than 25
modules
Easy to find modules affected by
changes in a design decision
What about complex systems with
hundreds of modules???
![Page 11: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/11.jpg)
11
New Complications
Impossible to carefully inspect each
module
Most maintainers ignorant about
internal structure of most modules
Use of Information Hiding could
backfire!
Any solutions?
![Page 12: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/12.jpg)
12
Solution!
Create a hierarchically structured
document - Module Guide
![Page 13: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/13.jpg)
13
Module Guide Shows how responsibilities are
allocated among modules
Modular descriptions arranged
according to hierarchical modular
structure
Leads readers to a module that
implements a certain aspect of the
system
![Page 14: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/14.jpg)
14
Being Specific….
Specifically, for each module the
Module Guide states its :-
Primary Secret
Role
Criteria behind assigning the module
its particular responsibility
![Page 15: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/15.jpg)
15
New terms…
Primary Secret: Hidden information
contained within the module.
Secondary Secret: Implementation
decisions used to implement the
module.
![Page 16: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/16.jpg)
16
For example,
In an Address Book System,
representation of an address is the
primary secret of an Address Storage
Module.
The data structures used to represent
the address is the secondary secret of
the Address Storage Module
![Page 17: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/17.jpg)
17
How does the Module Guide help?
Hierarchical arrangement of
modules allows current and
future programmers to quickly
read about relevant modules
without searching through
unrelated documentation.
![Page 18: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/18.jpg)
18
How does the Module Guide help?
New programmers can get a good
grasp of the project structure by
reading the Module Guide.
Eliminates the need for meeting
and talking with older
programmers familiar with the
project
![Page 19: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/19.jpg)
19
How does the Module Guide help?
Aids design review
Helps developers assess the
effects of potential changes
(enables them to quickly
locate modules that would
need to be modified.)
![Page 20: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/20.jpg)
20
Saves Time
Saves Effort
Provides Development Support
Lowers maintenance costs for
complex software systems!
How does the Module Guide help?
![Page 21: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/21.jpg)
21
Modular Hierarchy Modules organized by the type of
secret.
First level – Hardware Hiding
Modules, Behavior Hiding Module
and Software Decision Module
Nodes represent modules.
An edge from node i to node j shows
that node j is a sub-module of node i.
![Page 22: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/22.jpg)
Modular Hierarchy
Top Level Decomposition
Second Level Decomposition
Third Level
parent of
parent of
![Page 23: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/23.jpg)
23
Top level Decomposition Hardware-Hiding Module: Programs that
need to be changed if any part of the
hardware is replaced.
Behavior-Hiding Module: Programs that
need to be changed if there are changes in
the required behavior.
Software Decision Module: Hides software
design decisions that are based on
mathematical theorems, physical facts, and
programming considerations.
![Page 24: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/24.jpg)
24
Top level Decomposition
The three first-level modules could
be used for the top-level design
of ninety percent of software
systems
![Page 25: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/25.jpg)
25
An Example: Linux Internals
![Page 26: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/26.jpg)
26
Linux: Second-level Decomposition
Hardware-Hiding Module
Drivers - contains modules that
pertain to the kernels device
drivers
Architecture - modules that
contain hardware architecture
specific kernel code
![Page 27: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/27.jpg)
27
Linux: Second-level Decomposition
Behavior-Hiding Module
IPC - contains modules that
perform inter-process
communication
init - contains modules that
perform initialization
![Page 28: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/28.jpg)
28
Linux: Second-level Decomposition
Software Decision Module
FS - contains modules that
interface with many different file
systems
MM - contains modules that control
memory management
![Page 29: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/29.jpg)
Linux Internals – Uses Structure
Linux Kernel
File SystemMemoryManager
NetworkHardware
ArchitectureInterprocess
CommDrivers
ext2 vfat i386 alphaxfs sparq
... ...... ...
![Page 30: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/30.jpg)
30
Module Guide: Drivers
Drivers:
Takes care of the interface and
implementation between user
programs, the kernel and peripherals.
This module hides how external /
internal hardware etc… is interfaced.
The modules included here are
specific to how hardware is used.
Role
Primary secret
Criteria
![Page 31: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/31.jpg)
31
Restricted & Hidden Modules
Restricted Modules: modules that
contain information which cannot be
hidden in a single module practically.
Hidden Modules: “sub-modules”
contained in larger modules that
clearly specify where certain
functions are performed.
![Page 32: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/32.jpg)
Linux Internals – Restricted & Hidden Modules
Linux Kernel
File SystemMemoryManager
NetworkHardware
ArchitectureInterprocess
CommDrivers
ext2 vfat i386 alphaxfs sparq
... ...... ...
R
journalingH
![Page 33: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/33.jpg)
33
Parnas’ Experience
“When we tried to work without the
guide, ……responsibilities ended up
either in two modules or in none.
With the module guide, further
progress on the design has revealed
relatively few oversights”.
![Page 34: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/34.jpg)
34
Parnas’ Experience
Integration testing took only a week
Only nine bugs were discovered.
Location of bugs isolated to single
module.
All bugs were quickly fixed.
![Page 35: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/35.jpg)
35
“Design Through Documentation”
Module Guide: Helps developers
and maintainers of the system find
modules affected by a change
Module Interface Document :
Contains precise and complete
description of interface to each
module
![Page 36: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/36.jpg)
36
Module Design Document : An
internal design document for each
implementation of a module
Requirements Document : Module
Guide refers to it for the related
changes
“Design Through Documentation”
![Page 37: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/37.jpg)
37
Tying it all together
Complex Systems are too complex –
too many modules!
Well-structured Module Guide needed
to provide development support and to
cut down maintenance costs.
“Design through Documentation”
increases likelihood of product
completeness and software reusability.
![Page 38: The Modular Structure of Complex Systems](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56813c0b550346895da576d4/html5/thumbnails/38.jpg)
38
The End