inf 123 sw arch, dist sys & interop lecture 11
DESCRIPTION
INF 123 SW Arch, dist sys & interop Lecture 11. Prof. Crista Lopes. Objectives. Understanding of Software Architecture Recovery what, why, how, who Material in this lecture adapted from http://www.slideshare.net/mircea.lungu/software-architecture-recovery-in-five-questions-presentation - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: INF 123 SW Arch, dist sys & interop Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022070422/56816468550346895dd652d8/html5/thumbnails/1.jpg)
INF 123 SW ARCH, DIST SYS & INTEROP
LECTURE 11Prof. Crista Lopes
![Page 2: INF 123 SW Arch, dist sys & interop Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022070422/56816468550346895dd652d8/html5/thumbnails/2.jpg)
Objectives Understanding of Software Architecture
Recovery what, why, how, who Material in this lecture adapted from
http://www.slideshare.net/mircea.lungu/software-architecture-recovery-in-five-questions-presentation
Also good material in the textbook
Understanding of Grid Computing
![Page 3: INF 123 SW Arch, dist sys & interop Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022070422/56816468550346895dd652d8/html5/thumbnails/3.jpg)
Software Architecture Recovery aka Architecture Reconstruction
What is it? Quick answer: Your Homework 4
Why is it important? How does it work? Who does it?
![Page 4: INF 123 SW Arch, dist sys & interop Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022070422/56816468550346895dd652d8/html5/thumbnails/4.jpg)
What is it [...] an archaeological activity where the
analysts must unveil all the historical design decisions by looking at the existing implementation and documentation of the system. [Riva’00]
.. the flavor of reverse engineering that concerns all activities for making existing software architectures explicit. [Krikhaar’97]
…techniques and processes used to uncover a system’s architecture from available information. [Jazayari’00]
![Page 5: INF 123 SW Arch, dist sys & interop Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022070422/56816468550346895dd652d8/html5/thumbnails/5.jpg)
What is it Usually not focused on architectural
styles because they are recurring solutions that
are easy to spot Usually focused on recovering
component and connector viewpoints[Logical]System Arch.
Deployment Arch.
SoftwareArch.
UsabilityArch.
“Real”Syste
myour homework
![Page 6: INF 123 SW Arch, dist sys & interop Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022070422/56816468550346895dd652d8/html5/thumbnails/6.jpg)
Why it’s important Documentation tends to become obsolete
over time Particularly in early stages of development
But to make changes and extend the system developers need a clear understanding of the system architecture Or else architectural drift & erosion
Hence, architectural recovery must be practiced often, even constantly Read a contributor’s code and recover the
architecture there. Does it match the system’s architecture?
![Page 7: INF 123 SW Arch, dist sys & interop Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022070422/56816468550346895dd652d8/html5/thumbnails/7.jpg)
Conceptual vs. As-is Architecture
![Page 8: INF 123 SW Arch, dist sys & interop Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022070422/56816468550346895dd652d8/html5/thumbnails/8.jpg)
Conceptual vs. As-is Architecture
One needs to enforce the system architecture constantly
![Page 9: INF 123 SW Arch, dist sys & interop Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022070422/56816468550346895dd652d8/html5/thumbnails/9.jpg)
How to do it Bottom-up Top-down Hybrid
![Page 10: INF 123 SW Arch, dist sys & interop Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022070422/56816468550346895dd652d8/html5/thumbnails/10.jpg)
How to do it – bottom-up Source code analysis
With or without tools Software organization
Packages, namespaces, directories: Knowledge abstraction
Runtime behavior With or without tools
Historical information Commit history
Search, search, search!
![Page 11: INF 123 SW Arch, dist sys & interop Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022070422/56816468550346895dd652d8/html5/thumbnails/11.jpg)
How to do it – top-down Start with existing high-level knowledge
about system Formulate hypothesis and verify them
against source code
![Page 12: INF 123 SW Arch, dist sys & interop Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022070422/56816468550346895dd652d8/html5/thumbnails/12.jpg)
How to do it – hybrid (all recovery efforts end up being hybrid) Combine bottom-up & top-down
![Page 13: INF 123 SW Arch, dist sys & interop Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022070422/56816468550346895dd652d8/html5/thumbnails/13.jpg)
How to do it – overall
![Page 14: INF 123 SW Arch, dist sys & interop Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022070422/56816468550346895dd652d8/html5/thumbnails/14.jpg)
Who does it Everyone should, at all levels, all the
time Helps avoid architectural drifts
High-paid consultants do it for large corporations that don’t practice the above
Researchers do it to help explain well-known systems whose architecture is in devs’ heads only
![Page 15: INF 123 SW Arch, dist sys & interop Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022070422/56816468550346895dd652d8/html5/thumbnails/15.jpg)
Case Study Apache httpd, 100KLOC of C 60 students like you, 1 semester Data:
Source code Documentation (well written but lacking
about internal architecture) Results: overview, state diagrams,
memory management… documentation apachestudy.pdf
![Page 16: INF 123 SW Arch, dist sys & interop Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022070422/56816468550346895dd652d8/html5/thumbnails/16.jpg)
Grid Computing
![Page 17: INF 123 SW Arch, dist sys & interop Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022070422/56816468550346895dd652d8/html5/thumbnails/17.jpg)
Grid Computing “Combination of computer resources
from multiple administrative domains for a common goal”
A grid Coordinates resources nor subject to
centralized control Using standard, open protocols To deliver non-trivial services with good
QoS Addition of computing resources subject
to contracts Often used for scientific tasks
![Page 18: INF 123 SW Arch, dist sys & interop Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022070422/56816468550346895dd652d8/html5/thumbnails/18.jpg)
Grid Computing Middleware A layer of services on top of open
protocols that provide coordination Job allocation Distribution / Parallelism Collection of results Data replication …
![Page 19: INF 123 SW Arch, dist sys & interop Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022070422/56816468550346895dd652d8/html5/thumbnails/19.jpg)
Grid Computing Architecture “Collective”:
Coordinates resource usage
“Resource”: the shared unit
“Connectivity”: communication and authentication
“Fabric”: manages low-level resources
![Page 20: INF 123 SW Arch, dist sys & interop Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022070422/56816468550346895dd652d8/html5/thumbnails/20.jpg)
Grid Computing Examples Open Science Grid (USA)
https://twiki.grid.iu.edu/bin/view/Documentation/JobSubmissionComparison
TeraGrid (USA) National Grid Service (UK) …
![Page 21: INF 123 SW Arch, dist sys & interop Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022070422/56816468550346895dd652d8/html5/thumbnails/21.jpg)
Summary Software Architecture Recovery
Foundations for your Homework 4 and for the rest of your life
Grid Computing Sharing computing and data resources for a
common goal Middleware