Project Summary


Organization:
 
Carnegie Mellon University
 
Subcontractors:
 
None
 
Principal Investigators:
Mary Shaw shaw+@cs.cmu.edu (412) 268-2589
David Garlan garlan+@cs.cmu.edu (412) 268-5056
Jeannette Wing wing+@cs.cmu.edu (412) 268-3068

Title of Effort:

Software Sciences and Engineering Research: Composable Software Systems

Objective:

 
To provide a scientific and engineering basis for designing, building, and analyzing composable software systems. To provide languages, tools, environments, and techniques to support these activities.
 

Approach:

The three research lines are software architecture, formal methods, and tractable software analysis. This project will 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 reuse, and increase in quality of software.
 

1998 Accomplishments:

Performed the following tasks in support of the EDCS "Demo Days" Conference in Seattle, July 21-24, 1997:

Developed an ACME(v3.0)-UniCon translator using the Able group's C++ ACMELib distribution.

Developed a UniCon-ACME(v3.0) translator.

Extended Aesop to support translation to ACME(v3.0) and to add a new distributed message passing architectural style.

Produced a demonstration integrating UniCon and Aesop via ACME for EDCS "Demo Days '97."

Presented the "Integration" demonstration at the EDCS "Demo Days" in Seattle. This demonstration highlighted the group's success with the integration of ACME, UniCon, and Aesop.

Applied formal modeling tools to the Defense Modeling and Simulation Office (DMSO) High Level Architecture (HLA) IFSpec, generating significant feedback, which was summarized in a report to DMSO.

Developed a performance analyzer for ACME-based architectural descriptions.

Generated report that catalogs architectural styles and design elements:

Shaw, M., Clements, P. "A Field Guide to Boxology: Preliminary Classification of Architectural Styles for Software Systems." COMPSAC `97, August, 1997.

Helped DMSO produce the next draft of the HLA IFSpec: Applied Wright to the Defense Modeling and Simulation Office (DMSO) High Level Architecture (HLA) for distributed simulation. Specifically, James Ivers modelled the part of the architecture that is concerned with distributed time management. This led to new insights into the algorithms for time management, which in turn led to changes in the the most recent release of the published HLA specification.

Published a report on Modeling Dynamic Architectures:

Allen, R., Douence, R., Garlan, D. "Specifying and Analyzing Dynamic Software Architectures." Proceedings of the 1998 Conference on Fundamental Approaches to Software Engineering (FASE'98), March, 1998.

The following accomplishments are related to UniCon 2:

Finished the preliminary design of UniCon 2 in the fourth quarter of 1997. Developed the initial prototype of the UniCon 2 graphical editor using Visio 5.0, Visual Basic for Applications (VBA), and Java. Architectural descriptions in the UniCon 2 textual syntax can be loaded into the editor, rendered graphically, and then exported as text once again. This can be accomplished for the pipe-and-filter style. Additionally, these graphical descriptions can be partially built, meaning that the glue code is generated for the connections when the "Build" menu option in the editor is selected for the system.

Implemented Mary Shaw's notion of credentials in the UniCon 2 compiler prototype backend. The following paper describes credentials:

Shaw, M. "Truth vs. Knowledge: The Difference Between What a Component Does and What We Know It Does." Proceedings of the 8th International Workshop on Software Specification and Design, March, 1996.

Implemented multiple inheritance of properties in extendable language definitions in UniCon 2. This extension makes it possible for definitions in the language to have more than one "build expert," so that multiple types of build expertise can be applied to the same component or connector abstraction in a given system build. Implemented remote builds, allowing the toolset to build descriptions targetted for Unix and Windows NT platforms, even though they are hosted on Windows NT platforms.

Implemented Remote Procedure Call (RPC) and Pipe connector abstractions in UniCon 2 for systems targetted for the Unix platform. Implemented PLBundler, ProcedureCall, and DataAccess connector abstractions for systems that are targetted for both the Unix and Windows NT environments.

Implemented the capability of saving textual descriptions in the UniCon 2 graphical editor after they have been manipulated graphically. This includes the saving of the positioning information associated with the graphical shapes. Enhanced the graphical ditor to load descriptions written in any architectural style: unknown component and connector abstractions are rendered with default shapes.

Implemented conversions to and from ACME in the UniCon 2 tool suite.

Finished a distributable version of the UniCon 2 tool suite that will be publicly available by the end of July, 1998. It includes a compiler, written in Java, for the textual version of the language. It also includes a graphical editor that can manipulate UniCon architectural descriptions in a graphical form. The editor allows a designer to load and edit existing architectural descriptions. Components and connectors can be re-arranged, added, deleted, and have their properties edited via an embedded property editor. Connections and bindings can be added, deleted, broken, and synthesized. Multiple levels of composite components can be viewed and manipulated. In addition, the graphical descriptions can be compiled from the editor, and the associated software system can be generated. System generation includes the production of glue code for connector implementations, the generation of system construction instructions, the execution of a system construction utility to build the system, and the production of start-up scripts to initialize the environment and launch the application. The tool suite also includes ACME-to-UniCon and UniCon-to-ACME convertors. The tool suite is based on Visio, VBA, and Java, so purchase of Visio Professional 5.0 will be required, as well as downloading of the free Microsoft SDK for Java 2.01.

Worked with Lockheed-Martin to convert an ACME description of a portion of their Global Transportation Network (GTN) software to UniCon 2, and then load this into the UniCon 2 graphical editor for viewing. Transitioned the full UniCon tool suite to Lockheed-Martin.

Produced a demonstration for EDCS Demo Days '98, and fleshed out functionality in the UniCon tool suite in support of this activity.

The following accomplishments are related to the research in software analysis and formal methods:

Developed a better understanding of the role of imperative modules for expressing architectural connectors. This enhanced our ability to develop the SML-mod-rec extension of the SML modules language, in which architectural connectors can be described.

Made a technical breakthrough in giving a type-theoretic semantics to an extension of the SML modules language, SML-mod-rec. This extended language can be used to encode much of the commonality in existing ADLs, in particular representing both connectors and components as modules. The technical extension to SML needed is mutually recursive structures; giving a semantics to this extension is non-trivial.

Made significant progress on the formalization of "theory generation," the key technique behind Revere. We identified it to be a decidable fragment of first-order logic. We investigated existing model checkers (Spin) and proof checkers (Step) in preparation for designing a hybrid checker for analyzing security protocols. We immediately discovered many limitations of both tools that would stand in the way of using them directly. We plan to look at secure auction protocols as our challenge problem.

Developed a better understanding of "honesty" and "responsibility" checks for authentication protocols, and then implemented "honesty," "responsibility," and "feasibility" checks in Revere, the prototype automatic checker for authentication protocols.

Kindred, D., Wing, J. "Fast, Automatic Checking of Security Protocols." Proceedings of the USENIX 1996 Workshop on Electronic Commerce, Rutgers, NJ, November, 1996.

Developed a new framework for Nitpick for formally describing and analyzing the underlying techniques. Using this framework, the techniques have been proven sound.

Developed the first formal definition of bounded generation, one of Nitpick's state space reduction techniques, and then implemented bounded generation in the Nitpick tool.

Performed case studies of application of exhaustive case enumeration (via Nitpick) to architectures and architectural styles. These case studies are described in detail in the following papers:

Jackson, D., Ng, Y., Wing, J. "A Nitpick Analysis of Mobile IPv6." CMU Technical Report CMU-CS-98-113, March, 1998.

Jackson, D. "Automatic Analysis of Architectural Style."

Jackson, D., Damon, C. "Semi-executable Specifications." CMU School of Computer Science Technical Report 95-216, Pittsburgh, PA. November, 1995.

Developed a successor to Nitpick called LadyBug. LadyBug offers four significant advantages over the original Nitpick:

Had a simple, yet powerful, insight that allows type theory and its associated algorithms to be exploited in the following context: reverse engineering of large C programs. The declared type of a function in a C program will rarely tell you as much as it might; a function might declare an argument to be a pointer, for example, even if it is never dereferenced. But by inferring, in a richer type system than C's, the most general type of a function, one can obtain detailed information about the use of data structures. We are now applying this idea to Java.

FY98 Plan:

Finish Craig Damon's thesis work. This research involves developing a family of techniques, collectively called selective enumeration, that reduce the number of cases needed to consider for a sound generate-and-test approach.

Continue development of Ladybug, the Nitpick follow-up that includes bounded generation. Continue fine-tuning the implementation and measuring its performance on benchmark examples in preparation for a public release.

Finish Darrell Kindred's thesis work. This research involves the fast, automatic checking of security protocols.

Release Revere, the analysis tool for cryptographic protocols.

Continue development of Ajax, the Lackwit follow-up for Java. In particular, fine tune performance to support large Java programs.

Continue work on the SML-mod-rec language, the extension to the SML modules language that can be used to encode the commonalities in existing ADLs. Particularly, implement the language and show applicability by applying it to a suite of software architecture languages.

Finish Rob Deline's thesis work.

Work on developing a full architectural style for the example domain of education.

Finish Bob Monroe's thesis work. This research work involves extracting design expertise from the minds of highly skilled software architects and capturing it in powerful computer-based design tools that practitioners can use easily.

Distribute a new version of Wright parser and tools, which generate Acme, Rapide, and CSP as output. Publish a revised language reference manual, a tutorial, and a journal paper on our model of the High-Level Architecture (HLA) for distributed simulations. Continue to work with the Defense Modeling and Simulation Office in modeling the HLA, focusing particularly on the problem of integrating several HLA executions into a composite execution, using a new kind of HLA glue, called a Bridge Federate.

Continue development of Armani, the third-generation instance of Aesop, a tool for providing customized architectural design environments. Develop a second prototype of Armani design tool, and perform user tests to determine its effectiveness.

Continue development of Acme-based tools, and revise existing tools to work with the most recent release of the Acme language. Refine our front-end graphical tools for Acme and their capability to perform semantically-based graph layout. Consolidate and extend Acme tool infrastructure to produce an ADL workbench that will support quick construction of ADL analysis and generation tools, as well as new domain-specific ADLs.

Explore architectural conformance checking: new techniques to determine whether an implementation is consistent with a given architectural description.

Explore higher order connectors: new theory and techniques for composing connectors out of smaller building blocks. For example, it should be possible to provide generalized caching capability as a kind of "add-on" to most existing connectors using otu connector composition technology.
 

Technology Transition:

The following are the papers authored by this group during fiscal year 1998. All have been submitted, accepted for publication, or published. They represent transition of (or an attempt to transition) our research to the community at large.

Dingel, J., Garlan, D., Jha, S., Notkin, D. "Reasoning About Implicit Invocation." Accepted for publication in Proceedings of the Sixth International Symposium on the Foundations of Software Engineering, November, 1998.

Allen, R., Garlan, D., Ivers, J. "Formal Modeling and Analysis of the HLA Component Integration Framework." Accepted for publication in Proceedings of the Sixth International Symposium on the Foundations of Software Engineering, November, 1998.

Spitznagel, B., Garlan, D. "Architecture-Based Performance Analysis." Accepted for publication in Proceedings of the 10th International Conference on Software Engineering and Knowledge Engineering (SEKE'98), June, 1998.

Vaziri, M., Lynch, N., Wing, J. "Proving the Correctness of a Controller Algorithm for the RAID Level 5 System." Proceedings of the International Symposium on Fault-Tolerant Computing, June 1998. Also published as CMU School of Computer Science Technical Report CMU-CS-98-117, March 1998.

Wing, J., Ockerbloom, J. "Respectful Type Converters." Submitted to IEEE Transactions on Software Engineering, May 1998. Also published as CMU School of Computer Science Technical Report CMU-CS-98-130.

Allen, R., Douence, R., Garlan, D. "Specifying and Analyzing Dynamic Software Architectures." Proceedings of the 1998 Conference on Fundamental Approaches to Software Engineering (FASE'98), March, 1998.

Leavens, G., Wing, J. "Protective Interface Specifications." Formal Aspects of Computing, March, 1998.

Jackson, D., Ng, Y., Wing, J. "A Nitpick Analysis of Mobile IPv6." CMU Technical Report CMU-CS-98-113, March, 1998.

Garlan, D. "Higher-Order Connectors." Proceedings of Workshop on Compositional Software Architectures, January, 1998.

Wang, Z. "Separating Application Logic from Architectural Concerns - Beyond Object Services and Frameworks." Proceedings of Workshop on Compositional Software Architectures, January, 1998.

Vaziri-Farahani, M., Lynch, N., Wing, J. "Proving the Correctness of a Controller Algorithm for the RAID Level 5 System." Accepted for publication in Fault-Tolerant CS, 1998.

DeLine, R. "Understanding Changes to Software Component Packaging." Submitted to the 5th International Conference on Software Reuse, December, 1997.

Garlan, D., Monroe, R., Wile, D. "ACME: An Architecture Description Interchange Language." Proceedings of CASCON'97, November, 1997.

Melton, R., Garlan, D. "Architectural Unification." Proceedings of CASCON'97, November 1997.

Garlan, D., Tomayko, J., Gluch, D. "Agents of Change: Educating Future Leaders in Software Engineering." IEEE Computer, November, 1997.

Zaremski, A., Wing, J. "Specification Matching of Software Components." ACM Transactions on Software Engineering and Methodology, October, 1997.

Jackson, D., Ng, Y., Wing, J. "A Nitpick Analysis of Mobile IPv6." Submitted to Formal Aspects of Computing, September, 1997.

Allen, R., Garlan, D., Ivers, J. "Formal Modeling and Analysis of Architectural Standards." Submitted for publication, September, 1997.

Kindred, D., Wing, J. "Closing the Idealization Gap with Theory Generation." Proceedings of the DIMACS Workshop on Cryptogaphic Protocol Design and Verification, Rutgers, NJ, September, 1997. (extended abstract)

Allen, R., Garlan, D., Douence, R. "Specifying Dynamism in Software Architectures." Proceedings of the Workshop on Foundations of Component-Based Software Engineering (FASE), Zurich, Switzerland, September, 1997.

Shaw, M., Clements, P. "A Field Guide to Boxology: Preliminary Classification of Architectural Styles for Software Systems." COMPSAC `97, August, 1997.

Wing, J. " Subtyping for Distributed Object Stores." Proceedings of the Second IFIP International Workshop onFormal Methods for Open Object-based Distributed Systems (FMOODS), University of Kent at Canterbury, July, 1997, pp. 305-318. (invited paper)

Allen, R., Garlan, D. "A Formal Basis for Architectural Connection." ACM Transactions on Software Engineering and Methodology, July, 1997.

DeLine, R., Zelesnik, G., Shaw, M. "Lessons on Converting Batch Systems to Support Interaction." Proceedings of the 19th International Conference on Software Engineering, May, 1997, pp.195-204.

Allen, R. "A Formal Approach to Software Architecture." Ph.D. Thesis, Carnegie Mellon University, May, 1997. CMU Technical Report CMU-CS-97-144.

Ng, Y. "A Nitpick Specification of IPv6." B.S. in Computer Science, May 1997.

O'Callahan, R., Jackson, D. "Lackwit: A Program Understanding Tool Based on Type Inference." Proceedings of the 19th International Conference on Software Engineering, May, 1997, pp. 338-348.

Jackson, D., Jha, S., Damon, C. "Isomorph-free Model Enumeration: A New Method for Checking Relational Specifications." ACM Transactions on Programming Languages and Systems, accepted, to appear.

Garlan, D., Wang, Z. "A Case Study in Software Architecture Interchange." Submitted for publication, February, 1998.

Dingel, J., Garlan, D., Jha, S., Notkin, D. "Towards a Formal Treatment of Implicit Invocation." Accepted for publication in Formal Aspects of Computing.

Wing, J., Vaziri-Farahani, M. "A Case Study in Model Checking Software Systems." Science of Computer Programming, Vol. 28, 1997, pp. 273-299.

Robert O'Callahan successfully proposed his PhD thesis entitled "Scalable Program Analysis and Understanding Based on Type Inference," March 16, 1998.

John Ockerbloom successfully defended his PhD thesis entitled "Mediating Among Diverse Data Types," January 20, 1998.

Craig Damon successfully proposed his PhD thesis entitled "Selective Enumeration," October 27, 1997.

Talks, lectures, presentations, and workshops represent some of the best means for transitioning research that is performed in the academic environment. The following are the opportunities we pursued during the last fiscal year for transitioning our research to selected audiences.

Mary Shaw:

Keynote Address.
Fifth International Symposium on Assessment of Software Tools & Technologies
Pittsburgh PA, June 1997.

David Garlan (invited lecture):
Software Architecture: Practice and Potential.
Oregon Graduate Institute
Beaverton OR, June 1997.

Robert Monroe:
EDCS Demo Days
Aesop Demonstration, Demonstration of Integration of Aesop/ACME/UniCon
Seattle, WA, July 1997

Mary Shaw and Robert DeLine:
EDCS Demo Days
UniCon Demonstration, Demonstration of Integration of UniCon/ACME/Aesop
Seattle, WA, July 1997

Darrell Kindred:
EDCS Demo Days
Revere Demonstration
Seattle, WA, July 1997

Craig Damon:
EDCS Demo Days
Nitpick Demonstration
Seattle, WA, July 1997

Jeannette Wing (invited speaker):
Subtyping for Distributed Object Stores
Second IFIP International Workshop on Formal Methods for Open Object-based Distributed Systems (FMOODS)
University of Kent at Canterbury, July, 1997

Jeannette Wing (invited panelist):
Panel on Funding for Software Research
COMPSAC `97
Washington, DC, August, 1997.

Mary Shaw (invited panelist):
Internet Interactive Learning
COMPSAC `97
Washington, DC, August, 1997.

David Garlan (invited panelist):
Architectural Languages and Design Environments: From Research to Practice.
SEI Symposium
Pittsburgh, PA, August, 1997.

Zhenyu Wang:
A Framework for Software Architecture Debugging Environments
Information Sciences Institute (ISI)
University of Southern California (USC), August 1997.

Darrell Kindred and Jeannette Wing (workshop):
Closing the Idealization Gap with Theory Generation
DIMACS Workshop on Cryptogaphic Protocol Design and Verification
Rutgers, NJ, September 1997.

David Garlan:
Software Architecture: Practice and Potential.
University of Washington
Seattle WA, September 1997.

David Garlan:
Software Architecture: Practice and Potential.
University of California at Berkeley
Berkeley, CA, September 1997.

David Garlan:
An Overview of Architecture Description Languages.
Intel Corporation
Santa Clara, CA, September 1997.

David Garlan:
Software Architecture Research at CMU.
Hewlett Packard Laboratories
Palo Alto, CA, September 1997.

Robert Monroe (presentation):
Armani (to) Martin Griss
Hewlett Packard Laboratories
Palo Alto, CA, September 1997.

David Garlan and Robert Allen (Tutorial):
Modeling and Analysis of Software Architecture
SIGSOFT `97 Foundations of Software Engineering/European Software Engineering Conference
Zurich, Switzerland, September 1997

Robert Monroe (demonstration):
Aesop and ACME (to) Rockwell Executives
Carnegie Mellon University,
Pittsburgh, PA, September 1997.

Gregory Zelesnik (presentation/demonstration):
Composable Software Systems and UniCon (to) Rockwell Executives
Carnegie Mellon University
Pittsburgh, PA, September 1997.

Robert Monroe (demonstration):
Aesop and ACME (to) Rhoda Novak of The Aerospace Corporation
Carnegie Mellon University
Pittsburgh, PA, September 1997.

Gregory Zelesnik (demonstration):
UniCon (to) Rhoda Novak of The Aerospace Corporation
Carnegie Mellon University
Pittsburgh, PA, September 1997.

Jeannette Wing
DARPA ITO PI Meeting
Austin Texas, November 10-12, 1997

Jeannette Wing
CISE Advisory Committee meeting
National Science Foundation (NSF)
November 29 - December 1, 1997

David Garlan (invited talk):
EDCS Research at CMU
Lockheed-Martin
Atlanta, GA, December 1997

David Garlan (DARPA Planning Workshop):
AITS/EDCS Meeting
Washington, D.C., January 23, 1998.

Jeannette Wing (invited talk):
Formal Methods: Past, Present, and Future
Distinguished Lecture Series
University of Washington, February 19, 1998.

Mary Shaw (invited talk):
Architecture Description Languages (ADLs) and UniCon
IBM
Toronto, Canada, February 24, 1998.

David Garlan (DARPA Planning Workshop):
Demo Days Planning Meeting
Melbourne, FL, February 10-11, 1998.

David Garlan (DARPA Planning Workshop):
ACS/EDCS Meeting
Washington, D.C., March 11, 1998.

David Garlan (DARPA Planning Workshop):
EDCS Spring Meeting
Los Angeles, CA, March 16-17, 1998.

Jeannette Wing:
NSF CISE Advisory Board
Washington, D.C.
April 28-30, 1998

Jeannette Wing:
OOPSLA program committee
Seattle, Washington
June 7-8, 1998

Jeannette Wing:
DARPA, visit with David Tennenhouse
Washington, D.C.
June 11, 1998

Jeannette Wing:
Model Checking and Security Protocols, workshop associated with Logic in Computer Science
Bloomington, Indiana
June 25, 1998
 

Another way we transition our research is to collaborate with other ARPA and EDCS projects around the country. By collaborating with academic partners, we leverage against the research done by others and expand the context in which our research is performed and applied. By collaborating with industrial partners, we transition the ideas, approaches, languages, and tools to a sector that can apply them to real world problems. The feedback we receive is invaluable in that it grounds us in the context of the real world.
 

Lockheed-Martin (Creps)

We provided our prototypes to Lockheed-Martin for integration, and worked with them to develop sample applications.

We provided the language reference manual for Version 3.0 of ACME to Lockheed-Martin.

Worked with Paul Kogut of Lockheed Martin to define a collaborative demonstration for the EDCS Demo Days conference in July, 1998 involving CMU technology.

We began collaborative work with Carolyn Talcott and Jose Meseuger on modeling Wright in Maude.

Lockheed-Martin made significant progress on incorporating and integrating Aesop and ACME into a technology demonstration for the July EDCS meeting.

Worked with Dick Creps at Lockheed Martin to continue to transition CMU EDCS technology.

Stanford University (Luckham)

CMU created an ACME-based translator from Wright to Rapide. This tool uses the Rapide analysis and display tools.

SRI (Moriconi)

CMU worked with the developers of SRI's SADL to make sure that ACME can handle the constraints associated with architectural style and refinement.

University of Texas (Batory)

CMU held discussions on how Batory's notion of architectural refinement compares with DeLine's flexible component packaging and whether Batory's generator technology is a good tool to support DeLine's thesis work.

USC/ISI (Balzer)

Wang worked with Bob Balzer and Dave Wile at ISI to produce a software architecture debugging environment.

USC/ISI (Wile)

CMU extended their ADL tools (for Wright, UniCon, and Aesop) to read and write ACME specifications. This work leverages the ACME language definition, the ACMELib infrastructure, and some of the ACME-based tools.

University of Massachussets (Osterweil/Clarke)

CMU worked with UMASS to combine the static checking capabilities of Wright with those of Flavors/INCA.

MCC

MCC expressed interest in integrating Nitpick into Quest.

University of Washington (Notkin)

Garlan collaborated with Notkin to develop formal models for reasoning about Implicit Invocation Architectures.

CMU (Scherlis)

O'Callahan held discussions with Scherlis' student Chan about applying a Java version of Lackwit to help them do code analysis.

CMU (Falhman)

CMU held discussions with the Gwydion project on how to incorporate some form of architecture description view and/or formally derived/described properties of software systems into their hypercode system.

We met with Paul Hudak (Yale) to discuss his proposals for higher-order, polymorphic extensions to ACME.

CMU has transitioned the original UniCon tool suite (released 1996) to over 275 locations around the world.

The following tools are available for public release, and are all accessible on the Web.

 
System UniCon
Purpose Toolset for creating, manipulating, analyzing, and compiling software architecture descriptions written in the UniCon architecture description language (ADL)
Environment Linux, SunOS 4.1.3, Solaris 5.4, 5.5 platforms; Also requires installation of Odin (make-like system construction utility, available in the public domain - see http://www.cs.cmu.edu/~UniCon)
Point of Contact UniCon-Distribution@cs.cmu.edu
URL http://www.cs.cmu.edu/~UniCon

 

Coming soon (UniCon 2):

New language and toolset. New language features include improved type checking, improved support for adding connector types, evolvable specifications, support for adding component types, and improvements in multi-level definition handling. The toolset runs on Windows '95 and Windows NT platforms, and can build systems for these platforms and Unix platforms. You must purchase a license for Visio Professional 5.0, and you must acquire Microsoft's free Java SDK Version 2.01 or higher in order to run the new tools.

 

System Nitpick
Purpose Tool for analyzing designs which are described in a Z-like specification language called NP.
Environment any Macintosh computer
Point of Contact Craig A. Damon (cdamon@cs.cmu.edu)
URL http://www.cs.cmu.edu/~nitpick

 

System Aesop
Purpose Toolkit and framework that allows software architects to quickly and easily generate customized, "style-specific" software architecture design environments
Environment SunOS 4.1.3 (Has been ported to Solaris by Aesop users, but not yet included with the CMU Aesop distribution).
Point of Contact David Garlan (garlan@cs.cmu.edu)
URL http://www.cs.cmu.edu/~able/aesop

 

System ACME
Purpose Software architecture interchange language that supports the interchange of architectural descriptions among a wide variety of architecture description languages (ADLs) and their associated toolsets.
Environment The ACME Tool Developer's Library (AcmeLib), which includes extensible ACME parsers and unparsers, is written in C++ and available for Unix and PC platforms. The primary environment requirement is a modern C++ compiler.

AcmeStudio is an extensible, customizable graphical editor for Acme-based software architecture descriptions. It is built on top of the C++ version of the Acme Tool Developer's Library (AcmeLib) and supports both customized architectural visualization and integration with external analysis tools.

There is now a Java version of AcmeLib. It provides an extensible Acme parser that produces an object-oriented representation of an Acme design that can be queried, manipulated, and analyzed by automated tools, as well as unparsed to a textual format for interchange with other ADL's. The AcmeLib supports inter-ADL translation.

The Java AcmeLib is written entirely in Java. The only requirement for making use of the library is a Java virtual machine for Java 1.1 or higher. Significant subsets of the library are Java v1.0.2 compatible as well.

Point of Contact David Garlan (garlan@cs.cmu.edu)
URL http://www.cs.cmu.edu/~acme

 

System Revere
Purpose Analysis tool for cryptographic protocols.
Environment Requires Standard ML of New Jersey, version 109.29 or higher (available for Windows 95/NT and most Unix variants)
Point of Contact Darrell Kindred (dkindred@cs.cmu.edu)
URL http://www.cs.cmu.edu/~revere

 

System Lackwit
Purpose Tool for reverse-engineering programs to recover information about the flow and use of data
Environment SunOS, Linux, Alpha OSF 3.2, or Ultrix
Point of Contact Robert O'Callahan (roc@cs.cmu.edu)
URL http://www.cs.cmu.edu/~roc/Lackwit.html

 


Brought to you by the

Composable Software Systems Research Group of the School of Computer Science

at Carnegie Mellon University.

Email: Maintainer

Modified: 17-Aug-1998