connecting software architecture to implementation: the next 10...
TRANSCRIPT
![Page 1: Connecting Software Architecture to Implementation: The Next 10 …aldrich/presentations/aldrich-icse-mip... · 2012-06-30 · Thanks! • We’re honored that our paper has had an](https://reader034.vdocuments.us/reader034/viewer/2022043000/5f77e102f51b825581734ecf/html5/thumbnails/1.jpg)
Connecting Software Architecture to Implementation: The Next 10 Years
Jonathan Aldrich
Craig Chambers
David Notkin
Most Influential Paper of ICSE 2002 Award Talk2012 International Conference on Software Engineering
![Page 2: Connecting Software Architecture to Implementation: The Next 10 …aldrich/presentations/aldrich-icse-mip... · 2012-06-30 · Thanks! • We’re honored that our paper has had an](https://reader034.vdocuments.us/reader034/viewer/2022043000/5f77e102f51b825581734ecf/html5/thumbnails/2.jpg)
Thanks!
• We’re honored that our paper has had an influence!• and the credit goes also to those who influenced and carried
forward ArchJava (more in the talk)
• More broadly, our work is one piece of an important trend• Software architecture is becoming a valuable abstraction in practice!
• Languages and tools relate code more directly to architecture
• Tools verify architectural properties of software
• This talk• A bit about our ICSE’02 paper
• How the trend linking architecture and code has grown since
• What the future may hold
2
![Page 3: Connecting Software Architecture to Implementation: The Next 10 …aldrich/presentations/aldrich-icse-mip... · 2012-06-30 · Thanks! • We’re honored that our paper has had an](https://reader034.vdocuments.us/reader034/viewer/2022043000/5f77e102f51b825581734ecf/html5/thumbnails/3.jpg)
ICSE’02 Research Context
• Software architecture was an established concept• The structure of the components of a program/system, their
interrelationships, and principles and guidelines governing their design and
evolution over time. [Garlan & Perry, 1995]
• However, still maturing in practice• Last 3 stages of the Redwine-Riddle model [Shaw & Clements 2006]
• internal/external exploration and enhancement, and popularization
• ICSE’02 Motivation and research question• Achieving the benefits of an architecture requires following it.
Can we assure that code does so?
3
![Page 4: Connecting Software Architecture to Implementation: The Next 10 …aldrich/presentations/aldrich-icse-mip... · 2012-06-30 · Thanks! • We’re honored that our paper has had an](https://reader034.vdocuments.us/reader034/viewer/2022043000/5f77e102f51b825581734ecf/html5/thumbnails/4.jpg)
Architectural Conformance
• Prior work identified communication integrity as a key
architectural conformance property
Interfaces [of a component] may communicate directly only if there is an
architecture connection between the interfaces [Luckham & Vera 1995]
• Prior work on enforcing integrity• Theory of conformance [Moriconi et al., 1995]
• Follow style guidelines [Luckham & Vera, 1995]
• Use developer-directed analysis to extract (module) architecture [Murphy
et al., 2001]
4
legal
illegal
![Page 5: Connecting Software Architecture to Implementation: The Next 10 …aldrich/presentations/aldrich-icse-mip... · 2012-06-30 · Thanks! • We’re honored that our paper has had an](https://reader034.vdocuments.us/reader034/viewer/2022043000/5f77e102f51b825581734ecf/html5/thumbnails/5.jpg)
ArchJava’s Approach
• Connect architecture with implementation by:• Embedding architecture in the programming language
• Context: component and connector architecture, object-oriented code
• Using a type system to ensure communication integrity
• Hypothesized benefits• Traceability – can easily answer architecture questions about code
• Communication integrity – feasible to check
• Co-evolution – architecture and code remain consistent
• Executable architecture – architectural declarations are “live”
• Saliency - architecture becomes an constant part of development
5
![Page 6: Connecting Software Architecture to Implementation: The Next 10 …aldrich/presentations/aldrich-icse-mip... · 2012-06-30 · Thanks! • We’re honored that our paper has had an](https://reader034.vdocuments.us/reader034/viewer/2022043000/5f77e102f51b825581734ecf/html5/thumbnails/6.jpg)
ArchJava Example: Graphics Pipeline
February 21, 2008 WICSA 2008 6
public component class Transform {
public port in {
provides void draw(Shape s);
}
public port out {
requires void draw(Shape s);
}
void draw(Shape s) {
currentTransform.apply(s);
out.draw(s);
}…
GraphicsPipeline out in out in
transform rasterize generate
public component class GraphicsPipeline {
protected Generate generate = ... ;
protected Transform transform = ... ;
protected Rasterize rasterize = ... ;
connect generate.out, transform.in;
connect transform.out, rasterize.in;
}
Architectural interfacesArchitectural
interfacesOrdinary
Java code
Connections link components
Typing rules prohibit passing component references to another component � cannot bypass connections
![Page 7: Connecting Software Architecture to Implementation: The Next 10 …aldrich/presentations/aldrich-icse-mip... · 2012-06-30 · Thanks! • We’re honored that our paper has had an](https://reader034.vdocuments.us/reader034/viewer/2022043000/5f77e102f51b825581734ecf/html5/thumbnails/7.jpg)
[Exploratory] Case Study with Aphyds
7
Architectural Visualization based on ArchJava
Architectural Drawingby Developer
![Page 8: Connecting Software Architecture to Implementation: The Next 10 …aldrich/presentations/aldrich-icse-mip... · 2012-06-30 · Thanks! • We’re honored that our paper has had an](https://reader034.vdocuments.us/reader034/viewer/2022043000/5f77e102f51b825581734ecf/html5/thumbnails/8.jpg)
[Exploratory] Case Study with Aphyds
8
Architectural Visualization based on ArchJava
Architectural Drawingby Developer
• Some observations• Exploratory study generated interesting hypotheses (see paper)
• The state of practice is still pretty informal (whiteboard diagrams)• Formality must provide value – connection to implementation is one way
• Programming languages are (still) hard to evaluate• Large-scale, in-situ case studies or experiments not always realistic• Still worthy of exploration• Must find validation appropriate to claims
![Page 9: Connecting Software Architecture to Implementation: The Next 10 …aldrich/presentations/aldrich-icse-mip... · 2012-06-30 · Thanks! • We’re honored that our paper has had an](https://reader034.vdocuments.us/reader034/viewer/2022043000/5f77e102f51b825581734ecf/html5/thumbnails/9.jpg)
Why ArchJava Worked (as well as it did)
• Reaction from some: that’s impossible!• Conformance of a program to an architecture is undecidable
• Static analysis will have many false warnings due to abstraction
• True. We changed the game:• Developers integrate design intent into code
• Using coding idioms that map to architecture• Types show how/why code conforms• Our goal: developers need not change macro-architecture to do this
• This is (part of) making architecture more salient to developers
• This is a strength of a language-based approach• But also a weakness, creating difficulties for legacy code
9
![Page 10: Connecting Software Architecture to Implementation: The Next 10 …aldrich/presentations/aldrich-icse-mip... · 2012-06-30 · Thanks! • We’re honored that our paper has had an](https://reader034.vdocuments.us/reader034/viewer/2022043000/5f77e102f51b825581734ecf/html5/thumbnails/10.jpg)
The Last 10 Years: ArchJava
• ArchJava extensions• Dynamic architectures [ECOOP ’02]
• Inspired by Magee & Kramer, Dynamic Structure in Software Architectures, FSE ’96
• Communication integrity with shared data [WICSA ’08]
• Building on ownership [Noble et al. ’98] and shared data connectors [Garlan and
Shaw ‘93][Moriconi et al., ’95]
• Flexible connector abstractions [ECOOP ’03]
• Implement different connector semantics – both dynamics & typechecking• Inspired by and evaluated by Medvidovic et al.’s taxonomy [2000]
10
![Page 11: Connecting Software Architecture to Implementation: The Next 10 …aldrich/presentations/aldrich-icse-mip... · 2012-06-30 · Thanks! • We’re honored that our paper has had an](https://reader034.vdocuments.us/reader034/viewer/2022043000/5f77e102f51b825581734ecf/html5/thumbnails/11.jpg)
Connecting Architecture to Implementation
A selection of scientific work citing ArchJava:
• Generation & verification of control systems [Cassou et al, ICSE ’11]
• Synthesis of architecturally correct code [Bagheri, ICSE ’11]
• Automated runtime validation of architecture [Dong et al., ’05]
• Architectural annotations in code for Agile [ICSE NIER ’11]
• Architecture-driven mobility frameworks [Malek et al., ’10]
• Component-oriented languages with first-class connectors [Chen et al ’06]
• Checking architecture in legacy scientific applications [Woollard et al ’09]
11
An example I’ve been involved in: the Scholia system
![Page 12: Connecting Software Architecture to Implementation: The Next 10 …aldrich/presentations/aldrich-icse-mip... · 2012-06-30 · Thanks! • We’re honored that our paper has had an](https://reader034.vdocuments.us/reader034/viewer/2022043000/5f77e102f51b825581734ecf/html5/thumbnails/12.jpg)
Motivation: Scalable Visualization of Object Graphs
12
Prior work: too many edges,hard to abstract
![Page 13: Connecting Software Architecture to Implementation: The Next 10 …aldrich/presentations/aldrich-icse-mip... · 2012-06-30 · Thanks! • We’re honored that our paper has had an](https://reader034.vdocuments.us/reader034/viewer/2022043000/5f77e102f51b825581734ecf/html5/thumbnails/13.jpg)
Using Design Intent to Extract Object Graphs
MODEL
DB
Channel(+)
Circuit
Partitioner(+)
Placer(+)
Floorplanner(+)
GlobalRouter(+)
Node(+) Terminal Net(+)
Viewer(+)
PartitionUI(+)
FloorplanUI(+)
PlaceRouteUI(+)
13[Abi-Antoun & A, OOPSLA ‘09]
![Page 14: Connecting Software Architecture to Implementation: The Next 10 …aldrich/presentations/aldrich-icse-mip... · 2012-06-30 · Thanks! • We’re honored that our paper has had an](https://reader034.vdocuments.us/reader034/viewer/2022043000/5f77e102f51b825581734ecf/html5/thumbnails/14.jpg)
Declaring Architectural Intent
• Labeled groups• @Domain: Put in logical part of architecture
class Main {
@Domain(“PROVIDERS”) Provider provider;
@Domain(“CONSUMERS”) CustomerManager mgr;
@Domain(“KEYSTORAGE”) LocalKeyStore keyStore;
}
14[Abi-Antoun & A, OOPSLA ‘09]
![Page 15: Connecting Software Architecture to Implementation: The Next 10 …aldrich/presentations/aldrich-icse-mip... · 2012-06-30 · Thanks! • We’re honored that our paper has had an](https://reader034.vdocuments.us/reader034/viewer/2022043000/5f77e102f51b825581734ecf/html5/thumbnails/15.jpg)
Declaring Architectural Intent
• Labeled groups• @Domain: Put in logical part of architecture
class Main {
@Domain(“PROVIDERS”) Provider provider;
@Domain(“CONSUMERS”) CustomerManager mgr;
@Domain(“KEYSTORAGE”) LocalKeyStore keyStore;
}
15[Abi-Antoun & A, OOPSLA ‘09]
![Page 16: Connecting Software Architecture to Implementation: The Next 10 …aldrich/presentations/aldrich-icse-mip... · 2012-06-30 · Thanks! • We’re honored that our paper has had an](https://reader034.vdocuments.us/reader034/viewer/2022043000/5f77e102f51b825581734ecf/html5/thumbnails/16.jpg)
16
Declaring Architectural Intent
• Labeled groups• @Domain: Put in logical part of architecture
class Main {
@Domain(“PROVIDERS”) Provider provider;
@Domain(“CONSUMERS”) CustomerManager mgr;
@Domain(“KEYSTORAGE”) LocalKeyStore keyStore;
}
• Data structure encapsulation• OWNED: Hide data objects within high-level abstractions
class LocalKeyStore {
@Domain(“OWNED<KEYS>”) List<LocalKey> keys;
}
[Abi-Antoun & A, OOPSLA ‘09]
![Page 17: Connecting Software Architecture to Implementation: The Next 10 …aldrich/presentations/aldrich-icse-mip... · 2012-06-30 · Thanks! • We’re honored that our paper has had an](https://reader034.vdocuments.us/reader034/viewer/2022043000/5f77e102f51b825581734ecf/html5/thumbnails/17.jpg)
17
Declaring Architectural Intent
• Labeled groups• @Domain: Put in logical part of architecture
class Main {
@Domain(“PROVIDERS”) Provider provider;
@Domain(“CONSUMERS”) CustomerManager mgr;
@Domain(“KEYSTORAGE”) LocalKeyStore keyStore;
}
• Data structure encapsulation• OWNED: Hide data objects within high-level abstractions
class LocalKeyStore {
@Domain(“OWNED<KEYS>”) List<LocalKey> keys;
}
[Abi-Antoun & A, OOPSLA ‘09]
![Page 18: Connecting Software Architecture to Implementation: The Next 10 …aldrich/presentations/aldrich-icse-mip... · 2012-06-30 · Thanks! • We’re honored that our paper has had an](https://reader034.vdocuments.us/reader034/viewer/2022043000/5f77e102f51b825581734ecf/html5/thumbnails/18.jpg)
CryptoDB Case Study Results
• Architecture shows deltas• Intended vs. actual
18[Abi-Antoun & Barnes, ASE ‘10]
![Page 19: Connecting Software Architecture to Implementation: The Next 10 …aldrich/presentations/aldrich-icse-mip... · 2012-06-30 · Thanks! • We’re honored that our paper has had an](https://reader034.vdocuments.us/reader034/viewer/2022043000/5f77e102f51b825581734ecf/html5/thumbnails/19.jpg)
Realizing the Vision: The Next 10 Years
• What new architecture-implementation connections can
we make?
• How to make architecture part of everyday development?
19
![Page 20: Connecting Software Architecture to Implementation: The Next 10 …aldrich/presentations/aldrich-icse-mip... · 2012-06-30 · Thanks! • We’re honored that our paper has had an](https://reader034.vdocuments.us/reader034/viewer/2022043000/5f77e102f51b825581734ecf/html5/thumbnails/20.jpg)
Example: Architecture in Industry Frameworks
• Framework config files describe structure, properties• Web app frameworks (Spring, Rails)
• Structure, security
• Mobile frameworks (e.g. Android)• Event communication, UI flow, security
• Can we check consistency?• Framework-specific tools exist—do they generalize?
• FUSION tool at CMU/Cal Poly Pomona [C. Jaspan thesis, 2011]
XML config
file extraction
Relation
store
Java source codeanalysis
20
![Page 21: Connecting Software Architecture to Implementation: The Next 10 …aldrich/presentations/aldrich-icse-mip... · 2012-06-30 · Thanks! • We’re honored that our paper has had an](https://reader034.vdocuments.us/reader034/viewer/2022043000/5f77e102f51b825581734ecf/html5/thumbnails/21.jpg)
Current Work: Mobile Web App Architecture
• Opportunity for new language adoption
App Servers External Data
Scalable DataStore
Rest/WSDL
HTTP/XML
21
Customconnector semantics
Interaction protocols
Structure and evolution of web pages
Security propertiesDeployment
architecture
Reliability,scalability strategy
![Page 22: Connecting Software Architecture to Implementation: The Next 10 …aldrich/presentations/aldrich-icse-mip... · 2012-06-30 · Thanks! • We’re honored that our paper has had an](https://reader034.vdocuments.us/reader034/viewer/2022043000/5f77e102f51b825581734ecf/html5/thumbnails/22.jpg)
Connecting Architecture to Implementation
• 10 years later, we have made progress• Making architectural verification more practical
• Support for new kinds of synthesis, analysis
• Domains such as mobility, scientific computing
• Many opportunities to have impact in practice!• Configuration as architecture
• Emerging systems (web, mobile)
• Exposing architecture in code
22
![Page 23: Connecting Software Architecture to Implementation: The Next 10 …aldrich/presentations/aldrich-icse-mip... · 2012-06-30 · Thanks! • We’re honored that our paper has had an](https://reader034.vdocuments.us/reader034/viewer/2022043000/5f77e102f51b825581734ecf/html5/thumbnails/23.jpg)
Acknowledgments
• Contributors to ArchJava• Marwan Abi-Antoun• Kevin Bierhoff• Wesley Coelho• Sangjin Han• Valentin Kostadinov• Nagi Nahas• Vibha Sazawal• Tony Tseng
23
• Contributors to other work
described• Marwan Abi-Antoun• Jeff Barnes• Ciera Jaspan
• The many who inspired the work• Cited above, and in the paper