inf 123 sw arch, dist sys & interop lecture 11

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

Upload: zarifa

Post on 23-Feb-2016

14 views

Category:

Documents


0 download

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

TRANSCRIPT

Page 1: INF 123  SW Arch, dist sys &  interop Lecture 11

INF 123 SW ARCH, DIST SYS & INTEROP

LECTURE 11Prof. Crista Lopes

Page 2: INF 123  SW Arch, dist sys &  interop Lecture 11

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

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

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

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

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

Conceptual vs. As-is Architecture

Page 8: INF 123  SW Arch, dist sys &  interop Lecture 11

Conceptual vs. As-is Architecture

One needs to enforce the system architecture constantly

Page 9: INF 123  SW Arch, dist sys &  interop Lecture 11

How to do it Bottom-up Top-down Hybrid

Page 10: INF 123  SW Arch, dist sys &  interop Lecture 11

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

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

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

How to do it – overall

Page 14: INF 123  SW Arch, dist sys &  interop Lecture 11

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

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

Grid Computing

Page 17: INF 123  SW Arch, dist sys &  interop Lecture 11

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

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

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

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

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