Presentation is loading. Please wait.

Presentation is loading. Please wait.

INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 11 Prof. Crista Lopes.

Similar presentations


Presentation on theme: "INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 11 Prof. Crista Lopes."— Presentation transcript:

1 INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 11 Prof. Crista Lopes

2 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 http://www.slideshare.net/mircea.lungu/software- architecture-recovery-in-five-questions-presentation  Also good material in the textbook  Understanding of Grid Computing

3 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?

4 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]

5 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. [Logical] System Arch. Deployment Arch. Software Arch. Software Arch. Usability Arch. Usability Arch. “Real” System “Real” System your homework

6 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?

7 Conceptual vs. As-is Architecture

8 One needs to enforce the system architecture constantly

9 How to do it  Bottom-up  Top-down  Hybrid

10 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!

11 How to do it – top-down  Start with existing high-level knowledge about system  Formulate hypothesis and verify them against source code

12 How to do it – hybrid  (all recovery efforts end up being hybrid)  Combine bottom-up & top-down

13 How to do it – overall

14 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

15 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 apachestudy.pdf

16 Grid Computing

17  “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

18 Grid Computing Middleware  A layer of services on top of open protocols that provide coordination  Job allocation  Distribution / Parallelism  Collection of results  Data replication  …

19 Grid Computing Architecture  “Collective”: Coordinates resource usage  “Resource”: the shared unit  “Connectivity”: communication and authentication  “Fabric”: manages low-level resources

20 Grid Computing Examples  Open Science Grid (USA) Open Science Grid  https://twiki.grid.iu.edu/bin/view/Documentation/JobS ubmissionComparison https://twiki.grid.iu.edu/bin/view/Documentation/JobS ubmissionComparison  TeraGrid (USA) TeraGrid  National Grid Service (UK) National Grid Service  …

21 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


Download ppt "INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 11 Prof. Crista Lopes."

Similar presentations


Ads by Google