Contact Me:

By mail:
Robert T. Monroe
Tepper School of Business
Carnegie Mellon University
5000 Forbes Ave.
Pittsburgh, PA 15218

By phone:

By e-mail:

Stop by my office:
370 Posner Hall
- Google maps
- Mapquest
- Yahoo! maps

Research Interests

My research interests span a broad array of topics and disciplines. I find that many of the most interesting research questions are found in the gaps between well-established research areas. Some of the interesting questions that I have explored include:


Previous Research Projects

I was previously involved in four significant research projects at Carnegie Mellon. The output of the Acme and Armani projects are still used to teach Software Architecture concepts in the ISRI's Masters in Software Engineering program and as a platform for exploring Software Architecture concepts. For the most part, I have declared victory on these projects, written up the results, and moved on. Brief descriptions and links to further information about each of the projects follow.

Armani is a rapidly configurable software architecture design environment that exploits captured software design expertise to assist architects in the design and analysis of software systems. Armani supports an iterative, experimental approach to architecture development and provides a declarative, domain-specific language for capturing design constraints. My dissertation, and an associated language reference manual are the definitive works on Armani. The slides from my dissertation defense provide a quick overview of the Armani project. Although the original Armani system is no longer supported or available for download, I believe that its core architectural specification and design rule verification engine is embedded in the AcmeStudio software architecture design and analysis environment.

Acme is a software architecture interchange language and integration framework through which a diverse set of software architecture description languages and toolsets can exchange design specifications. This interchange capability dramatically increases the reusability and capabilities of standalone design analysis tools. Over time, Acme has also evolved into an effective platform for building new software architecture design and analysis tools. Because of its origins as an interchange medium, tools built on top of the Acme platform can make use of other design tools, languages, and environments that conform to the standard. For an overview of Acme, please see the Acme home page, or our paper on ACME from the CASCON conference

Aesop was a software architecture design environment generator that created custom software architecture design environments tailored to a specific style of architectural design (such as a client-server style or a batch processing style). My work on Aesop included a "Software Shelf" that supported the reuse of architectural designs, patterns, and components independent (though not exclusive) of their implementations. This paper from the 1996 International Conference on Software Reuse provides a good introduction to the Software Shelf concept.

Distributed Web Servers. Three other CMU graduate students and I implemented and tested some early distributed web-servers in 1994. Although the torrid pace of development and evolution in WWW protocols, servers, and networking has made the results rather dated (and almost quaint in their simplicity), we discovered that some very simple distribution schemes proved remarkably effective and scalable. A second interesting finding from this project was that the server bottlenecks were not where we expected them to be. We found that we saturated a 10Mb/s ethernet link long before we swamped the simple httpd server with too many requests. This was true even for requests that returned trivially small responses. Please see Technical Report CMU-CS-95-114 (postscript file) for further details.



Robert Monroe, Andrew Kompanek, Ralph Melton, and David Garlan, "Architectural Style, Design Patterns, and Objects", IEEE Software, January 1997.

Robert T. Monroe, "Rapid Development of Custom Software Architecture Design Environments", CMU School of Computer Science Technical Report CMU-CS-99-161, August 1999.

Robert Monroe, "Capturing Software Architecture Design Expertise With Armani", CMU School of Computer Science Technical Report CMU-CS-98-163, Final revision, September 2000.

Robert Monroe, "Capturing Design Expertise in Customized Software Architecure Design Environments", Proceedings of the Second International Software Architecture Workshop, October 1996.

David Garlan, Robert Monroe, and David Wile, "Acme: An Architecture Description Interchange Language" Proceedings of CASCON '97, November 1997.

Michael Garland, Sebastian Grassia, Robert Monroe, and Siddhartha Puri, "Implementing Distributed Server Groups for the World Wide Web" CMU School of Computer Science Technical Report CMU-CS-95-114.

Robert T. Monroe and David Garlan, "Style-Based Reuse for Software Architectures." Proceedings of the 1996 International Conference on Software Reuse, April 1996.

For a complete listing of all of the ABLE group's publications please see the ABLE project's home page.