|STARS - Software Architecture Technology Guide|
|USC - Center for Software Engineering|
|Computer Science Laboratory at SRI|
|LASER - UMass Amherst|
|CS at Carnegie Mellon University|
|SEI at Carnegie Mellon University|
|Open Implementation at Xerox|
|Aspect-Oriented Programming at Xerox|
|Inter-Language Unification at Xerox|
|Systems Generator at UTexas|
|SERL at UColorado|
|Patterns at UIUC|
|Software Design Network|
|SA at Honeywell|
|SA at Teknowledge|
|SA at UC Irvine|
|SA at GaTech|
|SA at Oregon Graduate Institute|
|Rapide at Stanford|
|TAFIM at DISA|
|ARchitecture and Composition Software|
|World-Wide Institute of Software Architects|
The Institute of Software Architects is a nonprofit membership organization with a mission to accelerate the establishment of the profession of software architecture and provide information and services to software architects and their clients.
This site contains Dewayne Perry's collection of SA material. It includes links to his papers, sites, projects, and individuals.
The ARCS research group is formed by researchers from the University of Karlskrona/Ronneby and the University of Kalmar. Within ARCS we study the architecture of software systems and the composition of software components in such systems, primarily from the perspective of the object-oriented paradigm. This indicates that our approach to software architecture is influenced by our experiences in object-oriented frameworks and class libraries, design patterns and advanced object-oriented computation models.
The research perspective taken by the ARCS group is based on three observations:
The reuse contract methodology is a novel methodology for managing reuse and evolution in software development. The methodology addresses the incremental/iterative development of reusable software components and models, and how to build highly customized applications based on these components and models. Much of the inspiration for developing reuse contracts has been drawn from the practical experience in developing object-oriented frameworks (see the Communications of the ACM paper October 1997). It is a practical method. It builds on existing object-oriented analysis and design methods (in casu UML). Yet, it distinguishes itself from all other methodologies by its formal foundation and support for evolution: Reused components and the way they are reused are formally described in a contract (hence the name). This forms the basis of tools for managing change and for checking the consistency between models and code. While being formal, the notation is simple enough for every day use (it can be explained in an hour).
Dr. Barry Boehm founded the center at University of Southern California in 1993. The purpose is to provide an environment for research and teaching in the areas of large-scale software design and development processes, generic and domain specific software architectures, software engineering tools and environments, cooperative system design and the economics of software engineering.
Their work in software architecture focuses on:
There are two major projects in the area of software architecture: one is focused the development of fundamental enabling technology and the other on applying it in the development of a useful architectural standard. Both projects are multiyear and involve collaboration with researchers at Stanford University. Those interested in formal methods should also consider SRI Cambridge Computer Science Research Centre .
The research being done is LASER falls into the following categories: process, object management, analysis of software systems, and software architecture. This works fits under the interoperability problem. They are looking at stratgies and architectures that would allow tools developed in different languages to operate on shared data on by passing control among themselves.
Carnegie Mellon University's ABLE project is concerned with exploring the formal basis for Software Architecture, developing the concept of Architectural Style, and building tools that practicing software architects might find useful. Our tool development effort has focused on the Aesop system, a toolkit for rapidly producing software architecture design and analysis environments that are customized to support specific architectural styles. The formal work revolves around the Wright language.
The composable systems group focuses on three research areas: software architecture, formal methods, and tractable software analysis. We develop new models, theories, methods, languages, and tools for classifying, specifying, analyzing, and designing software systems beyond the component level. This support could lead to substantial reduction in maintenance costs, improvement in software resuse, and increase in quality of software.
For design practice to make the transition from innovative to routine, design knowledge must be captured, organized, and disseminated. Handbooks are a popular means of doing this. One example, Perry's Chemical Engineers' Handbook, is a tome several inches thick, filled with tables, diagrams, and schematics that cover topics from the basics of the metric system to the intricate innards of heat pumps. In the bulk of the text, noted practioners give useful, specific advice about the standard solutions to common design tasks. The Vitruvius Project at CMU is taking steps toward the goal of establishing just such a codificaiton of practice.
The SEI is a federally funded research and development center operated since 1984 by Carnegie Mellon University. Through the sponsorship of the Defense Department's Advanced Research Projects Agency the objective is to provide leadership in software engineering and the transition of new technology into software engineering practice. There are a number of resources available at this site.
Because modules correspond so directly to blocks of executable code, and the different aspects of concern cross-cut the executable code, the modules themselves end up being a tangled mess of aspects. We believe this TANGLING-OF-ASPECTS phenomenon is at the heart of much of the complexity in existing software systems. Further, we believe that adjusting the scale of modules (or the level of programming languages) won't help without addressing this root cause of the tangling. Instead what is needed is to be able to work with abstractions that correspond more directly to aspects of concern than to blocks of executable code.
We are working on a new programming paradigm, Aspect-Oriented Programming (AOP), that does just this. AOP works by allowing programmers to first express each of a system's aspects of concern in a separate and natural form, and then automatically combine those separate descriptions into a final executable form using a tool called an Aspect Weaver.
The Inter-Language Unification system (ILU) is a multi-language object interface system. The object interfaces provided by ILU hide implementation distinctions between different languages, between different address spaces, and between operating system types. ILU can be used to build multi-lingual object-oriented libraries ("class libraries") with well-specified language-independent interfaces. It can also be used to implement distributed systems. It can also be used to define and document interfaces between the modules of non-distributed programs. ILU interfaces can be specified in either the OMG's CORBA Interface Definition Language (OMG IDL), or ILU's Interface Specification Language (ISL).
ILU 2.0 supports the programming languages C++, ANSI C, and Python, and will support Java, and Common Lisp. The 1.8 release also contains support for Modula-3, and contributed support for Modula-3 in ILU 2.0 is available. ILU has been installed on most flavors of UNIX (SunOS, Solaris, HP-UX, AIX, OSF, IRIX, FreeBSD, Linux, LynxOS, SCO Unix, etc.) and MS-Windows (3.1, 95, NT). It supports both threaded (POSIX, Solaris, NT, Franz ACL, PPCR, Modula-3) and event-loop (Xt, Tk, XView) operation. One of the implementation goals is to maximize compatibility with existing open standards. As a result, ILU provides support for use of the OMG CORBA IDL interface description language, and can be thought of as a CORBA ORB system (though with omissions from and extensions to the CORBA spec). ILU also includes a self-contained implementation of ONC RPC, and it is possible to describe and use existing RPC services as ILU objects. ILU also includes a self-contained implementation of the World Wide Web's Hypertext Transfer Protocol (HTTP), and can thus be used to implement object-oriented web browsers and servers. ILU is available free from 'ftp://ftp.parc.xerox.com/pub/ilu/ilu.html'.
Open implementation is a new design principle under consideration by a number of researchers and practitioners. Workers at Xerox Parc are at the forefront of exploring this design notion and the implication on a system's architecture.
Simply put, the focus of work on open implementation (OI) is to develop techniques whereby a module can be more reusable and tailorable by exposing certain crucial aspects of its implementation (as well as its normal interface) to clients. This can allow the clients to adjust the module to better suit their needs. Recent work in open implementation has produced an initial OI analysis and design methodology that helps designers work out what aspects of its implementation a module should expose and how.
Software system generators are tools for assembling complex software from interchangeable, reusable components. We have developed GenVoca, a domain-independent model of software construction that defines systems as algebraic equations, where terms are components. GenVoca has been successfully applied to many domains including database management systems, avionics, and data structures. Our results have demonstrated GenVoca generators can substantially improve productivity and application run-time performance.
The Software Engineering Research Laboratory (SERL) is part of the Computer Science Department at the University of Colorado. The focus of our research is in global software engineering, and consequently in each of our research topics our work focuses on the wide-area software development and deployment context.
This site organizes material from a variety of sites regarding patterns and pattern languages (PS) (see also an introduction to design patterns). Patterns can be considered a micro-architectural view of a system. Most work in patterns is from a component or design reuse perspective. More on patterns can be found at the Portland Pattern Repository.
The primary mission of the SDN is to promote and disseminate information concerning research in software architectures. The SDN is a worldwide, virtual enterprise of faculty and students that are interested in research in software architectures. The SDN project is partially funded by the NASA IVandV Facility in Fairmont, West Virginia. It started as a virtual enterprise between several departments and research centers at WVU in 1994 in conjunction with the NASA Earth Observing System (EOS) Project and National Library of Medicine.
Engineers often draw annotated diagrams of components and the relationships between them to describe the high-level design or architecture of a system. We seek to make this intuitive notion of an architecture more rigorous by defining precise meanings and notations for such specifications. This means using machine-processable languages to capture architecture specifications; tools to analyze architectures and estimate system properties; and tools to automate the production and testing of software from an architecture specification. We have applied these principles to develop architecture specification languages for real-time systems, with special attention paid to those that include guidance, navigation and control functions; and to specify example architectures that can be easily adapted to meet the requirements of families of related products.
Teknowledge's Domain-Specific Software Architectures (DSSA) Project home page. This also provides information about our ProtoTech (Prototyping Technologies) project. Both projects are funded by ARPA/SISTO -- DSSA through ARDEC (Army) and ProtoTech through ONR (Navy).
Software Architecture research is directed at reducing the cost of application development by focusing attention on high level design issues and increasing reuse.
GT-SARG is a reading group set up in the College of Computing for people interested in discussing issues related to software architecture. GT-SARG began as weekly meetings in the Winter Quarter of 1995 and will continue as long as interest remains.
The reading group is organized by Gregory Abowd, a faculty member in the College of Computing whose research interests cover models and evaluation of software architectures.
The goal of the SDRR project was to create a technology for generation of software components. Phase I of the Blackberry project was successfully completed on January 31, 1995. The created technology was tested and compared to a state-of-the-art template-based software technology. SDRR technology demonstrated 3 times increase in programmers' productivity. There's more to SDRR than just productivity.
The TAFIM is intended to guide the development of architectures that satisfy requirements across missions, functional areas, and functional activities. The TAFIM is mandatory for use in DOD. The specific technical architectures for missions and functions will be developed using standard architecture guidance and development methodologies provided by the TAFIM.