CPSC 875 John D. McGregor Design Concept. Functional decomposition.
CPSC 875
description
Transcript of CPSC 875
![Page 1: CPSC 875](https://reader035.fdocuments.in/reader035/viewer/2022062323/568163fd550346895dd598cd/html5/thumbnails/1.jpg)
CPSC 875
John D. McGregorC22 - Misc
![Page 2: CPSC 875](https://reader035.fdocuments.in/reader035/viewer/2022062323/568163fd550346895dd598cd/html5/thumbnails/2.jpg)
CAD/CAM - NC
• http://www.sciencedirect.com/science?_ob=MImg&_imagekey=B6V27-4CNGN01-1-1&_cdi=5695&_user=590719&_pii=S0360835204000646&_origin=gateway&_coverDate=07%2F31%2F2004&_sk=999539995&view=c&wchp=dGLbVlz-zSkzS&md5=6da4b33eb3b9a3fc52c4892dae002f59&ie=/sdarticle.pdf
![Page 3: CPSC 875](https://reader035.fdocuments.in/reader035/viewer/2022062323/568163fd550346895dd598cd/html5/thumbnails/3.jpg)
http://www.cs.washington.edu/homes/brun/pubs/pubs/Malek10.pdf
![Page 4: CPSC 875](https://reader035.fdocuments.in/reader035/viewer/2022062323/568163fd550346895dd598cd/html5/thumbnails/4.jpg)
Products and organizations
• We started the semester using the analogy of building architecture to understand software architecture
• Many factors shape the architecture of a building including the land upon which it is built, the nature of the enterprise that will inhabit the building, and the budget.
• The main influences we have examined this semester are the qualities. What else is there?
![Page 5: CPSC 875](https://reader035.fdocuments.in/reader035/viewer/2022062323/568163fd550346895dd598cd/html5/thumbnails/5.jpg)
Enterprise architecture
![Page 6: CPSC 875](https://reader035.fdocuments.in/reader035/viewer/2022062323/568163fd550346895dd598cd/html5/thumbnails/6.jpg)
Mirroring
• The architecture of a software product will closely resemble the architecture of the organization that built it.
• So, structure the organization the way you want the product to look
• For example, using an SOA design? Services should be written by small disconnected groups.
![Page 7: CPSC 875](https://reader035.fdocuments.in/reader035/viewer/2022062323/568163fd550346895dd598cd/html5/thumbnails/7.jpg)
Comparison of ADLs
![Page 8: CPSC 875](https://reader035.fdocuments.in/reader035/viewer/2022062323/568163fd550346895dd598cd/html5/thumbnails/8.jpg)
Alternative representations
• UML – use a profile which restricts the size of the language
• http://www.cis.gsu.edu/~dtruex/courses/CIS8090/Cases-Articles/ADLbased-on-UML2.0%20.pdf
![Page 9: CPSC 875](https://reader035.fdocuments.in/reader035/viewer/2022062323/568163fd550346895dd598cd/html5/thumbnails/9.jpg)
![Page 10: CPSC 875](https://reader035.fdocuments.in/reader035/viewer/2022062323/568163fd550346895dd598cd/html5/thumbnails/10.jpg)
UML options
![Page 11: CPSC 875](https://reader035.fdocuments.in/reader035/viewer/2022062323/568163fd550346895dd598cd/html5/thumbnails/11.jpg)
![Page 12: CPSC 875](https://reader035.fdocuments.in/reader035/viewer/2022062323/568163fd550346895dd598cd/html5/thumbnails/12.jpg)
![Page 13: CPSC 875](https://reader035.fdocuments.in/reader035/viewer/2022062323/568163fd550346895dd598cd/html5/thumbnails/13.jpg)
Architecture recovery
http://users.ece.utexas.edu/~perry/prof/wicsa1/final/goa.pdf
![Page 14: CPSC 875](https://reader035.fdocuments.in/reader035/viewer/2022062323/568163fd550346895dd598cd/html5/thumbnails/14.jpg)
Architecture recovery
![Page 15: CPSC 875](https://reader035.fdocuments.in/reader035/viewer/2022062323/568163fd550346895dd598cd/html5/thumbnails/15.jpg)
The Defenestration of Superfluous Architectural Accoutrements
• Grady Booch• A few of the slides from one of Grady’s talks.
![Page 16: CPSC 875](https://reader035.fdocuments.in/reader035/viewer/2022062323/568163fd550346895dd598cd/html5/thumbnails/16.jpg)
Defenestration
• The act of throwing a person or an object out of a window
The Defenestration of Prague (1618)
![Page 17: CPSC 875](https://reader035.fdocuments.in/reader035/viewer/2022062323/568163fd550346895dd598cd/html5/thumbnails/17.jpg)
Superfluous
• Exceeding what is sufficient or necessary; marked by wastefulness
![Page 18: CPSC 875](https://reader035.fdocuments.in/reader035/viewer/2022062323/568163fd550346895dd598cd/html5/thumbnails/18.jpg)
Accoutrement
• An accessory item of clothing or equipment
![Page 19: CPSC 875](https://reader035.fdocuments.in/reader035/viewer/2022062323/568163fd550346895dd598cd/html5/thumbnails/19.jpg)
The Premise
• Simple architectures have conceptual integrity• Architectures that are simple are better than
those that are more complex• A process of continuous architectural
refactoring helps to converge a system to its practical and optimal simplicity
![Page 20: CPSC 875](https://reader035.fdocuments.in/reader035/viewer/2022062323/568163fd550346895dd598cd/html5/thumbnails/20.jpg)
On Measuring Architectural Complexity
• Mass (calculated in SLOC)• Regularity (measured in patterns/view)• States
• Boulder: few states spread across geological time• Software-intensive system: combinatorial explosion of
states• Real world: non-discrete, non-continuous
![Page 21: CPSC 875](https://reader035.fdocuments.in/reader035/viewer/2022062323/568163fd550346895dd598cd/html5/thumbnails/21.jpg)
Attending to Simplicity
• The fundamentals– Define crisp abstractions– Employ a good separation of concerns– Have a balanced distribution of responsibilities
• Insofar as a system embraces these fundamentals, it is simple; when and where it strains these fundamentals, it is complex
![Page 22: CPSC 875](https://reader035.fdocuments.in/reader035/viewer/2022062323/568163fd550346895dd598cd/html5/thumbnails/22.jpg)
From Control To Chaos
22
![Page 23: CPSC 875](https://reader035.fdocuments.in/reader035/viewer/2022062323/568163fd550346895dd598cd/html5/thumbnails/23.jpg)
From Complexity to Simplicity
• Complexity masks the essential elements of a system
• Insofar as we have to expend energy to brush away the surrounding crud that obscures that essence, we’ve lost something in the message and we’ve hidden the
• Underlying purpose• Uniqueness• Elegance• Beauty
![Page 24: CPSC 875](https://reader035.fdocuments.in/reader035/viewer/2022062323/568163fd550346895dd598cd/html5/thumbnails/24.jpg)
On Finding Simplicity
• Simplicity doesn’t just happen– Despite the best intentions– Many forces eat away
![Page 25: CPSC 875](https://reader035.fdocuments.in/reader035/viewer/2022062323/568163fd550346895dd598cd/html5/thumbnails/25.jpg)
On Architectural Failure
• Sometimes, systems fail because their architects have chosen a fundamentally wrong architecture
• Most of the time, projects– Die the death of a thousand cuts– Are nibbled to death by ducks
![Page 26: CPSC 875](https://reader035.fdocuments.in/reader035/viewer/2022062323/568163fd550346895dd598cd/html5/thumbnails/26.jpg)
On Architectural Failure
• A thousand cuts– Collapse happens because of the accumulated
weight of well-intentioned and reasonable local decisions that assemble over time at the expense of global optimization and simplicity
• Nibble to death by ducks– You rarely see the end coming, until some factor
pushes your fragile, complex system over the edge into collapse
![Page 27: CPSC 875](https://reader035.fdocuments.in/reader035/viewer/2022062323/568163fd550346895dd598cd/html5/thumbnails/27.jpg)