CPSC 871 John D. McGregor Module 4 Session 1 Architecture Analysis/Design.
Software Architecture as design John D. McGregor.
-
Upload
logan-nicholson -
Category
Documents
-
view
212 -
download
0
Transcript of Software Architecture as design John D. McGregor.
![Page 1: Software Architecture as design John D. McGregor.](https://reader036.fdocuments.in/reader036/viewer/2022083008/56649f425503460f94c626f9/html5/thumbnails/1.jpg)
Software Architecture as design
John D. McGregor
![Page 2: Software Architecture as design John D. McGregor.](https://reader036.fdocuments.in/reader036/viewer/2022083008/56649f425503460f94c626f9/html5/thumbnails/2.jpg)
Beautiful software has:
• Cooperation
• Appropriate form
• System minimality
• Component singularity
• Functional locality
• Readability
• Simplicity
• http://www.chc-3.com/pub/beautifulsoftware.htm
![Page 3: Software Architecture as design John D. McGregor.](https://reader036.fdocuments.in/reader036/viewer/2022083008/56649f425503460f94c626f9/html5/thumbnails/3.jpg)
Or…
• Integrity– beautiful software solves one problem, and does it
better than any other• Usability– It guides you through the tasks at hand in a clear
way, minimizing risks for misunderstanding or misuse of its features.
• Innovation – beautiful software is not afraid to solve the problems
at hand in new and amazing ways
![Page 4: Software Architecture as design John D. McGregor.](https://reader036.fdocuments.in/reader036/viewer/2022083008/56649f425503460f94c626f9/html5/thumbnails/4.jpg)
Practical advice
• Maintain, trust, and foster your product vision.
• Stick your chin out and don’t be afraid to innovate.
• Love your users and invest in their interaction with your software.
• Maintain your integrity – fight for it and don’t stray away from it.
![Page 5: Software Architecture as design John D. McGregor.](https://reader036.fdocuments.in/reader036/viewer/2022083008/56649f425503460f94c626f9/html5/thumbnails/5.jpg)
Software Craftsmanship
The goals of software craftsmanship are: Maintainability. Extensibility. Substitution.
Don't Repeat Yourself (DRY), and avoid Not Invented Here (NIH) syndrome.You Ain't Gonna Need It (YAGNI) principle.Favor composition over inheritance.Create contracts for your objects.Have objects (and methods!) do one thing, and one thing well.
![Page 6: Software Architecture as design John D. McGregor.](https://reader036.fdocuments.in/reader036/viewer/2022083008/56649f425503460f94c626f9/html5/thumbnails/6.jpg)
• http://www.joachimschummer.net/papers/2009_AestheticValues_HandbookPhilTech.pdf
• http://web.eecs.utk.edu/~mclennan/papers/ASE-TR.pdf
![Page 7: Software Architecture as design John D. McGregor.](https://reader036.fdocuments.in/reader036/viewer/2022083008/56649f425503460f94c626f9/html5/thumbnails/7.jpg)
Software sustainability
• Economic• Aesthetic• Timely• Natural
![Page 8: Software Architecture as design John D. McGregor.](https://reader036.fdocuments.in/reader036/viewer/2022083008/56649f425503460f94c626f9/html5/thumbnails/8.jpg)
Work with “nature” not against it
• Rely on “local” conditions and traditions• Software architecture tends to be trendy and
international• The concept of “local” means domain-specific• There is no one architecture for everything
but international organizations train architect consultants and tend to homogenize product architectures
![Page 9: Software Architecture as design John D. McGregor.](https://reader036.fdocuments.in/reader036/viewer/2022083008/56649f425503460f94c626f9/html5/thumbnails/9.jpg)
Moshe Safdie
• http://www.ted.com/talks/moshe_safdie_on_building_uniqueness
![Page 10: Software Architecture as design John D. McGregor.](https://reader036.fdocuments.in/reader036/viewer/2022083008/56649f425503460f94c626f9/html5/thumbnails/10.jpg)
• Efficiency• Economy• Elegance• Form follows function• But there are many designs that will provide a
specific function so it is better to think…• Function follows form• Designs that look good usually are
![Page 11: Software Architecture as design John D. McGregor.](https://reader036.fdocuments.in/reader036/viewer/2022083008/56649f425503460f94c626f9/html5/thumbnails/11.jpg)
Plato
• Plato said “The qualities of measure and proportion constitute beauty and excellence.
• Aesthetic excellence is grounded in order, harmony, symmetry, and proportion in the parts.
![Page 12: Software Architecture as design John D. McGregor.](https://reader036.fdocuments.in/reader036/viewer/2022083008/56649f425503460f94c626f9/html5/thumbnails/12.jpg)
Plotinus
• Beauty is not in the relationships of the parts but in the unity of the one.
• Usually are conscious of the perfection of the whole before there is an appreciation of the individual details
![Page 13: Software Architecture as design John D. McGregor.](https://reader036.fdocuments.in/reader036/viewer/2022083008/56649f425503460f94c626f9/html5/thumbnails/13.jpg)
• Experiment• Criticism • Theory• Practice
![Page 14: Software Architecture as design John D. McGregor.](https://reader036.fdocuments.in/reader036/viewer/2022083008/56649f425503460f94c626f9/html5/thumbnails/14.jpg)
Take a look
• http://mwop.net/blog/2012-11-17-zendcon-beautiful-software.html
• http://www.mauronewmedia.com/blog/why-candy-crush-saga-is-so-successful-and-popular-but-will-never-be-an-angry-birds-a-cognitive-tear-down-of-the-user-experience/
![Page 15: Software Architecture as design John D. McGregor.](https://reader036.fdocuments.in/reader036/viewer/2022083008/56649f425503460f94c626f9/html5/thumbnails/15.jpg)
Here’s what you are going to do..
• Step back and look at your architecture• What elements of beauty does it possess?• Identify what you think are the most beautiful
parts of your design.• Compare this to the earlier assignment where
you decided which part of the architecture you thought was the best and which was the worst.
• Write up your analysis and submit by 4/22 at 6am