growing software systems
Post on 14-Jul-2015
75 Views
Preview:
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