Abstract:
Developers use formal or informal software architecture descriptions in order to communicate and reason about the high-level structural properties of a system. However, these architectural descriptions are often inaccurate or out of date, resulting in lost productivity and defects as the system is evolved. This paper presents the first static technique for enforcing complete structural conformance between a rich architectural specification and general-purpose implementation code. Our system, ArchJava, models architecture as a hierarchy of component instances that communicate through explicit connections. ArchJava’s type system ensures that components only communicate through connections that are explicitly declared in the architecture. As a result, developers have accurate architectural documentation, allowing them to carry out evolution tasks with confidence. To validate our design, we show how ArchJava can be used to capture the Mission Data System architecture under development at JPL for embedded space system applications. 1.
Citations
|
1463
|
The definition of Standard ML
– Milner, Tofte, et al.
- 1990
|
|
484
|
Foundations for the study of software architecture
– Perry, Wolf
- 1992
|
|
482
|
A Formal Basis for Architectural Connection
– Allen, Garlan
- 1997
|
|
472
|
An introduction to software architecture
– Garlan, Shaw
- 1994
|
|
350
|
A Classification and Comparison Framework for Software Architecture Description Languages
– Medvidovic, Taylor
- 2000
|
|
192
|
Software reflexion models: Bridging the gap between source and high-level models
– Murphy, Notkin, et al.
- 1995
|
|
152
|
Units: Cool modules for HOT languages
– Flatt, Felleisen
|
|
141
|
Correct Architecture Refinement
– Moriconi, Qian, et al.
- 1995
|
|
138
|
Flexible alias protection
– Noble, Vitek, et al.
- 1988
|
|
137
|
Dynamic structure in software architectures
– Magee, Kramer
- 1996
|
|
126
|
Alias annotations for program understanding
– Aldrich, Kostadinov, et al.
- 2002
|
|
109
|
Archjava: connecting software architecture to implementation
– Aldrich, Chambers, et al.
- 2002
|
|
98
|
Using style to understand descriptions of software architecture
– Abowd, Allen, et al.
|
|
79
|
Ownership types for object encapsulation
– Boyapati, Liskov, et al.
- 2003
|
|
72
|
Alias burying: Unique variables without destructive reads
– Boyland
|
|
72
|
Simple ownership types for object containment
– Clarke, Noble, et al.
- 2001
|
|
66
|
Recommendation Z.100: Specification and Description Language SDL
– ITU-T
- 2002
|
|
61
|
Towards alias-free pointers
– Minsky
- 1996
|
|
45
|
Ownership domains: Separating aliasing policy from mechanism
– Aldrich, Chambers
- 2004
|
|
40
|
Reconciling environment integration and component independence
– Sullivan, Notkin
- 1990
|
|
28
|
An Event Based Architecture Definition Language
– Luckham, Vera
- 1995
|
|
28
|
Using Object-Oriented Typing to Support
– Medvidovic, Oreizy, et al.
- 1996
|
|
17
|
Arnd Poetzsch-Heffter, and Yunhong Zhou. Using data groups to specify and check side effects
– Leino
- 2002
|
|
14
|
A type system and analysis for the automatic extraction and enforcement of design information
– Lam, Rinard
|
|
11
|
Using Types to Enforce Architectural Structure
– Aldrich
- 2003
|
|
6
|
Architectural Reasoning with ArchJava
– Aldrich, Chambers, et al.
- 2002
|
|
6
|
Barat—A Front-End for Java. Freie Universität Berlin
– Bokowski, Spiegel
- 1998
|