modularity | by amir yousefi

30

Upload: iran-agile-community

Post on 03-Jul-2015

81 views

Category:

Engineering


3 download

DESCRIPTION

سخنرانی ارائه شده در نخستین همایش چابک ایران 92 توسط جناب آقای امیر یوسفی

TRANSCRIPT

Page 1: Modularity | By Amir Yousefi
Page 2: Modularity | By Amir Yousefi

Amir Yousefi

An overview on

Page 3: Modularity | By Amir Yousefi

Definition : 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.

Page 4: Modularity | By Amir Yousefi

Definition : 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.

Page 5: Modularity | By Amir Yousefi

Kirk:

the goal of software architecture must be

to eliminate the impact and cost of change

Page 6: Modularity | By Amir Yousefi

Kirk:

The best way to deal with architecture is to

eliminate it.

Page 7: Modularity | By Amir Yousefi

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…

Page 8: Modularity | By Amir Yousefi

The paradox

Page 9: Modularity | By Amir Yousefi

The paradox

making everything easy to change makes

the entire system very complex

Page 10: Modularity | By Amir Yousefi

Lehman's 2nd law

As a system evolves its complexity increases

unless work is done to maintain or reduce it

Page 11: Modularity | By Amir Yousefi

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

Page 12: Modularity | By Amir Yousefi

Defeating Complexity

Page 13: Modularity | By Amir Yousefi

Defeating Complexity

Page 14: Modularity | By Amir Yousefi

Defeating Complexity

Modularity

Page 15: Modularity | By Amir Yousefi
Page 16: Modularity | By Amir Yousefi
Page 17: Modularity | By Amir Yousefi
Page 18: Modularity | By Amir Yousefi
Page 19: Modularity | By Amir Yousefi
Page 20: Modularity | By Amir Yousefi
Page 21: Modularity | By Amir Yousefi
Page 22: Modularity | By Amir Yousefi
Page 23: Modularity | By Amir Yousefi

It is all the way down

Page 24: Modularity | By Amir Yousefi

Reuse Release equivalence

?

Page 25: Modularity | By Amir Yousefi

Reducing complexity

Page 26: Modularity | By Amir Yousefi

Joints

Page 27: Modularity | By Amir Yousefi

Joints

Page 28: Modularity | By Amir Yousefi

Shared understanding

Page 29: Modularity | By Amir Yousefi

Shared understanding

Page 30: Modularity | By Amir Yousefi