software architecture recovery: the 5 questions you always asked yourself about,

108
The 5 questions you always asked yourself about Software Architecture Recovery Mircea Lungu Faculty of Informatics, University of Lugano October 2008

Upload: mircealungu

Post on 28-Jan-2015

128 views

Category:

Education


1 download

DESCRIPTION

The first version of my Architecture Recovery lecture that I gave at the University of Lugano.

TRANSCRIPT

Page 1: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

The 5 questions you always asked yourself about

Software Architecture

Recovery

Mircea LunguFaculty of Informatics, University of Lugano

October 2008

Page 2: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

5 Questions about SAR

Page 3: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

5 Questions about SAR

• What is it?

Page 4: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

5 Questions about SAR

• What is it?

• Why is it important?

Page 5: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

5 Questions about SAR

• What is it?

• Why is it important?

• How does it work?

Page 6: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

5 Questions about SAR

• What is it?

• Why is it important?

• How does it work?

• Who does it?

Page 7: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

5 Questions about SAR

• What is it?

• Why is it important?

• How does it work?

• Who does it?

• Where is it headed?

Page 8: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

What?

• Architecture Recovery

• Architecture

• Viewpoints

Page 9: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Architecture recovery ...

Page 10: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Architecture recovery ...or Architecture Reconstruction,

Page 11: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Architecture recovery ...or Architecture Reconstruction,

or Reverse Architecting

Page 12: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Architecture recovery ...

[...] 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 ]

or Architecture Reconstruction,

or Reverse Architecting

Page 13: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Architecture recovery ...

Page 14: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Architecture recovery ...

... the flavor of reverse engineering that concerns all activities for making existing of software architectures explicit.

[Krikhaar’97]

Page 15: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

... the techniques and processes used to uncover a system’s architecture from available information.

[Jazayeri’00]

Architecture recovery ...

... the flavor of reverse engineering that concerns all activities for making existing of software architectures explicit.

[Krikhaar’97]

Page 16: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Architecture...

Page 17: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Architecture...

[...] the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them.

[Bass et al.’03]

Page 18: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Architecture...

[...] the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them.

[Bass et al.’03]

[...] the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution.

[ANSI/IEEE Std. 1471-2000]

Page 19: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Architecture...

[...] the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them.

[Bass et al.’03]

[...] the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution.

[ANSI/IEEE Std. 1471-2000]

For many others visit

www.sei.cmu.edu/architecture/definitions.html

Page 20: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

What is the difference between architecture and

design?

Page 21: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Architectural Styles

Styles. Architectural styles such as pipes and filters, lay- ered system, data flow and blackboard are popular because like design patterns, they represent recurrent architectural situations [11, 59]. They are valuable, expressive, and ac-

cepted abstractions for SAR and more generally for software understanding.

Recognizing them is however a challenge because they span several architectural elements and can be implemented in

various ways [100, 101]. The question that turns up is whether SAR helps reverse engineers specify and extract architectural styles.

• Recurring architectural solutions

• Examples

• Pipes and filters

• Blackboard

• Peer-to-peer

• ... ... still, there are SAR approaches which take it into

consideration.

Page 22: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Architectural Styles

Styles. Architectural styles such as pipes and filters, lay- ered system, data flow and blackboard are popular because like design patterns, they represent recurrent architectural situations [11, 59]. They are valuable, expressive, and ac-

cepted abstractions for SAR and more generally for software understanding.

Recognizing them is however a challenge because they span several architectural elements and can be implemented in

various ways [100, 101]. The question that turns up is whether SAR helps reverse engineers specify and extract architectural styles.

• Recurring architectural solutions

• Examples

• Pipes and filters

• Blackboard

• Peer-to-peer

• ... ... still, there are SAR approaches which take it into

consideration.

Page 23: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Architectural Styles

Styles. Architectural styles such as pipes and filters, lay- ered system, data flow and blackboard are popular because like design patterns, they represent recurrent architectural situations [11, 59]. They are valuable, expressive, and ac-

cepted abstractions for SAR and more generally for software understanding.

Recognizing them is however a challenge because they span several architectural elements and can be implemented in

various ways [100, 101]. The question that turns up is whether SAR helps reverse engineers specify and extract architectural styles.

• Recurring architectural solutions

• Examples

• Pipes and filters

• Blackboard

• Peer-to-peer

• ... ... still, there are SAR approaches which take it into

consideration.

SAR is not preoccupied with recovering the architectural

style of the system.

Page 24: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Viewpoints

• Viewpoints catalogues

• Kruchten’95

• Hofmeister’99

• Ad-hoc viewpoints

• Smolander’01

• Conway’s law

Page 25: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Viewpoints

• Viewpoints catalogues

• Kruchten’95

• Hofmeister’99

• Ad-hoc viewpoints

• Smolander’01

• Conway’s lawMost of the SAR processes focus on

recovering component-and-connector viewpoints.

Page 26: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

What is the relation between architecture recovery and reverse

engineering?

Page 27: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Why?

• Reasons

• Benefits

• Goals

• Challenges

Page 28: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Architecture erosion

[...] the documentation about the internal architecture becomes rapidly obsolete. To make changes, developers need a clear understanding of the underlying architecture of the products.

C. Riva, Software Architecture Group, Nokia Research

Page 29: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Architecture Evolution

One frequently accompanying property of evolution is an increasing brittleness of the system -- that is, an increasing resistance to change, or at least to changing gracefully.

[Perry & Wolf ’92]

Page 30: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Architecture Evolution

• Architectural drift

• Architectural erosion

• Architectural upgrade

One frequently accompanying property of evolution is an increasing brittleness of the system -- that is, an increasing resistance to change, or at least to changing gracefully.

[Perry & Wolf ’92]

Page 31: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Conceptual vs. As-is architecture

Software systems must evolve or become obsolete [...]

[Lehmann’80]

Page 32: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Conceptual vs. As-is architecture

Architecture

Change In Environment

As-Is

Architecture

CodeEnvironment

Change In Code

Change In Architecture

Change In Code

Software systems must evolve or become obsolete [...]

[Lehmann’80]

Page 33: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Conceptual vs. As-is architecture

Architecture

Change In Environment

As-Is

Architecture

CodeEnvironment

Change In Code

Change In Architecture

Change In Code

There is a need for enforcing the

architecture of a system

Software systems must evolve or become obsolete [...]

[Lehmann’80]

Page 34: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Conceptual vs. As-is architecture

Architecture

Change In Environment

CodeEnvironment

Change In Code

Change In Architecture

Change In Code

Architectural

Firewall

There is a need for enforcing the

architecture of a system

Software systems must evolve or become obsolete [...]

[Lehmann’80]

Page 35: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Consultant’s POV

• Missing architectural specifications

• Support the

• Re-documentation

• Reengineering

[...] Frequently we are asked to analyze a systemʼs software architecture and are given only its code and the (limited) time of a designer.

[Kazman et al.’99]

Page 36: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Benefits

• Stepping stone towards reengineering

• Supports detecting components for reuse

Page 37: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Challenges

• What process can support uncovering the software architecture within a system?

• How much can you automate in this process?

• What are the limits of architecture recovery? (e.g., Recovering all design decisions).

Page 38: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

How?

• Generic approach

• Processes

• Bottom-up

• Top-down

• Integrated

Page 39: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Phases of Reconstruction

Data Extraction Knowledge Organization

Information Exploration

[Tilley et al.’96]

Page 40: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Phases of Reconstruction

Data Extraction Knowledge Organization

Information Exploration

The Meta-Architecture of

Architecture Recovery Tools

[Tilley et al.’96]

Page 41: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Data Extraction

Page 42: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Data Extraction

• Source Code (static analysis)

Page 43: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Data Extraction

• Source Code (static analysis)

• Historical Information

Page 44: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Data Extraction

• Source Code (static analysis)

• Historical Information

• Human Expertise

Page 45: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Data Extraction

• Source Code (static analysis)

• Historical Information

• Human Expertise

• Runtime Behavior (dynamic analysis)

Page 46: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Data Extraction

• Source Code (static analysis)

• Historical Information

• Human Expertise

• Runtime Behavior (dynamic analysis)

• Physical Organization

Page 47: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Data Extraction

• Source Code (static analysis)

• Historical Information

• Human Expertise

• Runtime Behavior (dynamic analysis)

• Physical Organization

• Social Organization

Page 48: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

[Pollet et al.’07]

Page 49: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Facts extracted from code

[Guo et al.’99]

Page 50: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Knowledge Abstraction

• Get rid of useless information

• Aggregation

• Directory

• Packages

• Clustering

• Filtering

[Lungu et al.’05]

Page 51: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Processes

Botto

m-u

p

Top-d

own

Hyb

rid

Page 52: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008 [Pollet et al.’07]

Processes

Botto

m-u

p

Top-d

own

Hyb

rid

Page 53: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

1. Bottom-up Approaches

• Start with low-level fact extraction

• Aggregate the information to higher abstraction levels either manually or automatically

Page 54: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Tools 4 bottom-up

• Arch• ArchView• ArcVis• ARMIN• BUNCH• DALI• Gupro• Intensive• Rigi• Softwarenaut

Page 55: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Arch

• Developed at Siemens Research

• Mavericks - individual procedures in the wrong modules

• Heuristic modularization advice

[Schwanke’91]

Page 56: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Archview

[Pinzger’05]

Page 57: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Archview

[Pinzger’05]

Page 58: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Dali

Lightweight Source Model Extraction (LSME), Imagix, make, and Perl for extraction of source model information for C and C++,

PostgreSQL (based on POSTGRES) for model storage,

Rigi, IAPR (Interactive Architecture Pattern Recognition) [12], RMTool [14], and Perl for analysis and manipulation.

Page 59: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Advertising break!

Page 60: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Advertising break!

• Aggregation: based on directory structure, clustering, package structure

Page 61: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Advertising break!

• Aggregation: based on directory structure, clustering, package structure

• Filtering: based on evolutionary information, metrics

Page 62: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Advertising break!

• Aggregation: based on directory structure, clustering, package structure

• Filtering: based on evolutionary information, metrics

• Visualization: polymetric

Page 63: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Softwarenaut

Page 64: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Softwarenaut

Page 65: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Softwarenaut

Page 66: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Softwarenaut

Page 67: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

2. Top-down approaches

• Start with previous high-level knowledge about the application domain

• Formulate hypotheses and verify them against the source code

Page 68: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Tools 4 top-down

• RMTool

• Pulse

• W4

Page 69: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Reflexion Models

Marco...

Page 70: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Pulse

• Fraunhofer Institute for ESE

• Architecture- and Domain-Oriented Re-engineering

• Product Line Software Engineering

Page 71: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Pulse

Page 72: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Pulse

Page 73: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Pulse

Page 74: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Pulse

Page 75: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

W4By distilling pearls of wisdom stored deep inside source control systems, we can assist developers to understand the state of their project and plan confidently for its future

[Hassan & Holt’04]

Page 76: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

W4

• Which, Who, Why, When

By distilling pearls of wisdom stored deep inside source control systems, we can assist developers to understand the state of their project and plan confidently for its future

[Hassan & Holt’04]

Page 77: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

3. Hybrid Approaches

• Combine top-down with bottom-up

• Abstract low-level information

• Refine high-level information

Page 78: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Tools 4 hybrid

• Albortz

• ARM

• Bauhaus

• Cacophony

• DiscoTect

• ManSART

• PBS/SBS

• Symphony / Nimeta

Page 79: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

ManSART

• Mitre Corporation

• Used to provide architecture level consulting in multiple military systems

Page 80: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

ManSART

[Harris et al.’ 95]

Page 81: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Discotect

• Examine runtime behavior

• Big problem: abstraction gap

• State machines to map between implementation-level events and architectural operations

[Yan et al.’04]

Page 82: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Who?

• SEI at Carnegie Mellon

• Hasso-Plattner Institute

• Nokia Research Center

Page 83: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Case Study #1

• Author: CMU Software Engineering Institute

• Subject: VANISH, 50KLOC

• Tools: Dali, ARMIN

• Goals

• generate several architectural views

• determine if strict layering is in place

• Assumptions: little documentation, no developers available

Page 84: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

#1: Results

Page 85: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

#1: Results

Page 86: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

#1: Results

Page 87: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

#1: Results

Page 88: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

#1: Results

Page 89: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Case Study #2• Author: Hasso-Plattner Institute

• Subject: Apache, 100KLOC C code

• Participants: 60 4th semester students

• 32 topics assigned

• Sources

• documentation (well written, little info about the conceptual architecture)

• “Writing Apache modules with Perl”

• Results: overview analysis, detailed state diagrams, memory management

• Time:: half a semester for getting accustomed with the domain and half for analyzing the implementation

Page 90: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

#2: Results

www.fmc-modeling.org/category/projects/apache/amp/Apache_Modeling_ Project.html -

Page 91: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

#2: Results

www.fmc-modeling.org/category/projects/apache/amp/Apache_Modeling_ Project.html -

Page 92: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

#2: Results

www.fmc-modeling.org/category/projects/apache/amp/Apache_Modeling_ Project.html -

Page 93: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

#2: Results

www.fmc-modeling.org/category/projects/apache/amp/Apache_Modeling_ Project.html -

Page 94: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

#2: Results

www.fmc-modeling.org/category/projects/apache/amp/Apache_Modeling_ Project.html -

Page 95: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Case Study #3

• Author: Nokia Research

• System: Embedded Software Written in C

• Existing Reference Architecture

• Scripts that extract information about messages

Page 96: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

#3: Results

Page 97: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

#3: Results

Page 98: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

#3: Results

Page 99: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

#3: Results

Page 100: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Others

• “Linux as a Case Study, it’s Extracted Architecture”, Bowman et al.

• “Static evaluation of Software Architectures”, Knodel et al.

Page 101: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Where?

• Future of SAR

• Further Reading

Page 102: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

The Future of SARThe Place of Architecture in a Crowdsourced

WorldRick Kazman

http://www.sei.cmu.edu/news-at-sei/columns/the_architect/architect.htm

Page 103: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

The Future of SAR

• Integrating with forward engineering (continuous supervision, architectural firewalls, etc.)

The Place of Architecture in a Crowdsourced World

Rick Kazman

http://www.sei.cmu.edu/news-at-sei/columns/the_architect/architect.htm

Page 104: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

The Future of SAR

• Integrating with forward engineering (continuous supervision, architectural firewalls, etc.)

• Collaborative architecture recovery

The Place of Architecture in a Crowdsourced World

Rick Kazman

http://www.sei.cmu.edu/news-at-sei/columns/the_architect/architect.htm

Page 105: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

The Future of SAR

• Integrating with forward engineering (continuous supervision, architectural firewalls, etc.)

• Collaborative architecture recovery

• Product family architecture

The Place of Architecture in a Crowdsourced World

Rick Kazman

http://www.sei.cmu.edu/news-at-sei/columns/the_architect/architect.htm

Page 106: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

The Future of SAR

• Integrating with forward engineering (continuous supervision, architectural firewalls, etc.)

• Collaborative architecture recovery

• Product family architecture

• Ecosystem architecture

The Place of Architecture in a Crowdsourced World

Rick Kazman

http://www.sei.cmu.edu/news-at-sei/columns/the_architect/architect.htm

Page 107: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

Further Reading

• Annotated Bibliography

www.inf.unisi.ch/phd/lungu/recovery

• Essays on Architecture

http://www.sei.cmu.edu/architecture/essays.html

• PhD Theses: Pinzger’05, Krikhaar’99

• Survey Articles: Pollet’07

Page 108: Software Architecture Recovery: The 5 Questions You Always Asked Yourself About,

Software Architecture Recovery - Mircea Lungu, 2008

THE END