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
INF 123 SW ARCH, DIST SYS & INTEROP
LECTURE 11Prof. 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
Also good material in the textbook
Understanding of Grid Computing
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?
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]
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
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?
Conceptual vs. As-is Architecture
Conceptual vs. As-is Architecture
One needs to enforce the system architecture constantly
How to do it Bottom-up Top-down Hybrid
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!
How to do it – top-down Start with existing high-level knowledge
about system Formulate hypothesis and verify them
against source code
How to do it – hybrid (all recovery efforts end up being hybrid) Combine bottom-up & top-down
How to do it – overall
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
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
Grid Computing
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
Grid Computing Middleware A layer of services on top of open
protocols that provide coordination Job allocation Distribution / Parallelism Collection of results Data replication …
Grid Computing Architecture “Collective”:
Coordinates resource usage
“Resource”: the shared unit
“Connectivity”: communication and authentication
“Fabric”: manages low-level resources
Grid Computing Examples Open Science Grid (USA)
https://twiki.grid.iu.edu/bin/view/Documentation/JobSubmissionComparison
TeraGrid (USA) National Grid Service (UK) …
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