INF 123 SW Arch, dist sys & interop Lecture 11

Preview:

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 Presentation

Citation preview

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

Recommended