MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Using Types to Enforce Architectural Structure

Download:
Download as a PDF
unknown authors
http://www.cs.cmu.edu/~aldrich/papers/archjava-overview.pdf
Add To MetaCart

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