Growing Software Systems
-
Upload
marc -
Category
Engineering
-
view
74 -
download
0
Transcript of Growing Software Systems
![Page 1: Growing Software Systems](https://reader033.fdocuments.in/reader033/viewer/2022042716/55a46af41a28ab97608b4610/html5/thumbnails/1.jpg)
Software SystemsGrowing
![Page 2: Growing Software Systems](https://reader033.fdocuments.in/reader033/viewer/2022042716/55a46af41a28ab97608b4610/html5/thumbnails/2.jpg)
![Page 3: Growing Software Systems](https://reader033.fdocuments.in/reader033/viewer/2022042716/55a46af41a28ab97608b4610/html5/thumbnails/3.jpg)
Software systems are grown, not built.
![Page 4: Growing Software Systems](https://reader033.fdocuments.in/reader033/viewer/2022042716/55a46af41a28ab97608b4610/html5/thumbnails/4.jpg)
Architecture won't gradually emerge out of refactorings.
![Page 5: Growing Software Systems](https://reader033.fdocuments.in/reader033/viewer/2022042716/55a46af41a28ab97608b4610/html5/thumbnails/5.jpg)
Frameworks are not the architectureFrameworks are TOOLS
![Page 6: Growing Software Systems](https://reader033.fdocuments.in/reader033/viewer/2022042716/55a46af41a28ab97608b4610/html5/thumbnails/6.jpg)
E-Type Evolution ProcessesMulti-agent, multi-level, multi-loop feedback systems
![Page 7: Growing Software Systems](https://reader033.fdocuments.in/reader033/viewer/2022042716/55a46af41a28ab97608b4610/html5/thumbnails/7.jpg)
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.
![Page 8: Growing Software Systems](https://reader033.fdocuments.in/reader033/viewer/2022042716/55a46af41a28ab97608b4610/html5/thumbnails/8.jpg)
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
![Page 9: Growing Software Systems](https://reader033.fdocuments.in/reader033/viewer/2022042716/55a46af41a28ab97608b4610/html5/thumbnails/9.jpg)
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
![Page 10: Growing Software Systems](https://reader033.fdocuments.in/reader033/viewer/2022042716/55a46af41a28ab97608b4610/html5/thumbnails/10.jpg)
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
![Page 11: Growing Software Systems](https://reader033.fdocuments.in/reader033/viewer/2022042716/55a46af41a28ab97608b4610/html5/thumbnails/11.jpg)
E-Type Evolution Feedback Loops
![Page 12: Growing Software Systems](https://reader033.fdocuments.in/reader033/viewer/2022042716/55a46af41a28ab97608b4610/html5/thumbnails/12.jpg)
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
![Page 13: Growing Software Systems](https://reader033.fdocuments.in/reader033/viewer/2022042716/55a46af41a28ab97608b4610/html5/thumbnails/13.jpg)
SP
![Page 14: Growing Software Systems](https://reader033.fdocuments.in/reader033/viewer/2022042716/55a46af41a28ab97608b4610/html5/thumbnails/14.jpg)
Software Products
Conceptual Network
Problem Domain
Executable Systems
Solves Embodied
EssentialComplexity
AccidentalComplexity
9/10 Effort
● Tools● Frameworks● Methodologies
● Concepts● Collaborations● Algorithms
1/10 Effort
![Page 15: Growing Software Systems](https://reader033.fdocuments.in/reader033/viewer/2022042716/55a46af41a28ab97608b4610/html5/thumbnails/15.jpg)
Software Product Lines
PlatformCore Assets
Strategic MarketDomain
Product Family
Supports
Variants
Market SegmentNeeds
Fulfills
![Page 16: Growing Software Systems](https://reader033.fdocuments.in/reader033/viewer/2022042716/55a46af41a28ab97608b4610/html5/thumbnails/16.jpg)
Evolution of Software Product Models
![Page 17: Growing Software Systems](https://reader033.fdocuments.in/reader033/viewer/2022042716/55a46af41a28ab97608b4610/html5/thumbnails/17.jpg)
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.
![Page 18: Growing Software Systems](https://reader033.fdocuments.in/reader033/viewer/2022042716/55a46af41a28ab97608b4610/html5/thumbnails/18.jpg)
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/
![Page 19: Growing Software Systems](https://reader033.fdocuments.in/reader033/viewer/2022042716/55a46af41a28ab97608b4610/html5/thumbnails/19.jpg)
Thanks!!!