8. Our Tools Divide and Conquer, Modularity , Information Hiding, Encapsulation, Components, Reuse, Layers, Hierarchies, Stratification, Interfaces, Strict Boundaries, Abstraction , Separation of Concerns, Low-Coupling, High-Cohesion, etc., etc. From Science and Industrial Engineering: [Recent recognition that software is different: agile! ] Problem : it only takes use so far Essentially two core tools: abstraction and modularity
9. Abstraction R W W R D R D Abstraction of region D conditioned by the abstraction of R – Lock In !
29. A Typical Software Product Business Strict hierarchical structure where core product must absorb nearly all variability. Product Team Customer 4 Customer 3 Customer 2 Customer 1 Solutions Team B Solutions Team A
30. A Niche Cluster Uniformity abandoned – the decentralized network better reflects the variety of the (market/business) environment. Solutions Team A Solutions Team B Solutions Team C Customer 1 Customer 3 Customer 2 Customer 4 Solutions Team D