1- modularity - amir yousefi
DESCRIPTION
TRANSCRIPT
بسم الله الرحمن
الرحیم
M O D U L A R IT Y
Amir Yousefi
An overview on
ARCHITECTUREDefinition : Fowler
In most successful software projects, the expert developers working on that project have a shared understanding of the system design. This shared understanding is called ‘architecture.’ This understanding includes how the system is divided into components and how the components interact through interfaces. These components are usually composed of smaller components, but the architecture only includes the components and interfaces that are understood by all the developers…Architecture is about the important stuff. Whatever that is.
ARCHITECTUREDefinition : Booch
All architecture is design but not all design is architecture. Architecture represents the significant design decisions that shape a system, where significant is measured by cost of change.
ARCHITECTURE
Kirk:
the goal of software architecture must be to eliminate the impact and cost of change
ARCHITECTURE
Kirk:
The best way to deal with architecture is to eliminate it.
ARCHITECTURE The paradox
the way to eliminate architecture by minimizing the impact of cost and change is through flexibility
The more flexible the system, the more likely that the system can adapt and evolve as necessary
But…
ARCHITECTURE The paradox
?
ARCHITECTURE The paradox
making everything easy to change makes the entire system very complex
ARCHITECTURE Lehman's 2nd law
As a system evolves its complexity
increases unless work is done to maintain
or reduce it
ARCHITECTURE Gall's law
A complex system designed from scratch
never works and cannot be made to work.
You have to start over, beginning with a
working simple system
ARCHITECTURE Defeating Complexity
ARCHITECTURE Defeating Complexity
ARCHITECTURE Defeating Complexity
Modularity
MODULARITY
MODULARITY
MODULARITY
MODULARITY
MODULARITY
MODULARITY
MODULARITY
ARCHITECTURE
ARCHITECTURE It is all the way down
ARCHITECTURE Reuse Release equivalence
?
ARCHITECTURE Reducing complexity
ARCHITECTURE Joints
ARCHITECTURE Joints
ARCHITECTURE Shared understanding
ARCHITECTURE Shared understanding