1 / 21

INF 123 SW Arch, dist sys & interop Lecture 11

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

zarifa
Download Presentation

INF 123 SW Arch, dist sys & interop Lecture 11

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. INF 123 SW Arch, dist sys & interopLecture 11 Prof. Crista Lopes

  2. Objectives • Understanding of Software Architecture Recovery • what, why, how, who • Material in this lecture adapted fromhttp://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. Deployment Arch. “Real” System Usability Arch. Software Arch. 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. Conceptual vs. As-is Architecture 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

  16. Grid Computing

  17. 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

  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) • https://twiki.grid.iu.edu/bin/view/Documentation/JobSubmissionComparison • TeraGrid (USA) • National Grid Service (UK) • …

  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

More Related