growing software systems

Post on 14-Jul-2015

75 Views

Category:

Engineering

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Software SystemsGrowing

Software systems are grown, not built.

Architecture won't gradually emerge out of refactorings.

Frameworks are not the architectureFrameworks are TOOLS

E-Type Evolution ProcessesMulti-agent, multi-level, multi-loop feedback systems

Categories of Software Systems

Conforms to an exact specification. Specification based → mathematical criteria.

Consistent with a single external paradigm.Paradigmatic domain → stable assumptions.v.g. Unicode, Physics simulation

S-Type

P-Type

E-Type Actively used and embedded in the real world.Evolutionary systems → constantly adapting to change.

A consciously crafted evolutionary baseline architecture allows to:

Adapt to change

Defer decisions

Cope with growth

Reduce entropy

Nurture quality

Evolutionary Architecture

Retain conceptual integrity

Lehman's Laws of Software Evolution

1. Continuing Change

2. Increasing Complexity

3. Self Regulation

4. Conservation of Organisational Stability

5. Conservation of Familiarity

6. Continuing Growth

7. Declining Quality

8. Feedback System

Lehman's Laws of Software Evolution

8. Feedback System

1. Continuing Change 6. Continuing Growth 3. Self Regulation

2. Increasing Complexity 7. Declining Quality

5. Conservation of Familiarity

4. Conservation of Organisational Stability

E-Type Evolution Feedback Loops

E-Type Planning

R1

R2

R3

R4

PriorizedRequerimentQueue

AnatomyPlan

Codebase

StableBaseline N

StableBaseline N+1

Release

Captures dependencies&

Coordinates parallelism

System incrementsyielding evolutionof the codebase

IC1

IC2

IC3

IC4

SP

Software Products

Conceptual Network

Problem Domain

Executable Systems

Solves Embodied

EssentialComplexity

AccidentalComplexity

9/10 Effort

● Tools● Frameworks● Methodologies

● Concepts● Collaborations● Algorithms

1/10 Effort

Software Product Lines

PlatformCore Assets

Strategic MarketDomain

Product Family

Supports

Variants

Market SegmentNeeds

Fulfills

Evolution of Software Product Models

Bibliography

Lehman, Meir M. Programs, Life Cycles, and Laws of Software Evolution.

Madhavji, Nazim H., Fernandez Ramil Juan Carlos, and Dewayne E. Perry. Software Evolution and Feedback: Theory and Practice. Chichester, England: John Wiley & Sons, 2006. Print.

Brooks, Frederick P. The Mythical Man-month: Essays on Software Engineering.

Weiss, Michael. Economics of Software Product Development Collectives.

Petersen, K. & Wohlin, C. Measuring the Flow in Lean Software Development.

References

Howeler & Yoon and Squared Design LabEco Pods Architectural Design with Robotic Arms.

https://www.flickr.com/photos/justinbaeder/https://www.flickr.com/photos/ellenjo/https://www.flickr.com/photos/29487767@N02/https://www.flickr.com/photos/annieominous/

Thanks!!!

top related