Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!leah!rpi!batcomputer!cornell!rochester!pt.cs.cmu.edu!sei!rsd From: rsd@sei.cmu.edu (Richard S D'Ippolito) Newsgroups: comp.software-eng Subject: Software Architecture and Models Message-ID: <3091@ae.sei.cmu.edu> Date: 28 Mar 89 19:24:34 GMT References: <1014@afit-ab.arpa> Reply-To: rsd@sei.cmu.edu (Richard S D'Ippolito) Distribution: na Organization: Software Engineering Institute, Pittsburgh, PA Lines: 66 In article <1014@afit-ab.arpa> William A. Bralick writes: >It seems to me that architecture (as in buildings, not computer systems :-) >should provide a useful set of lessons for software engineers. The parallels >between software engineering and architecture (especially for a large, unique >building) are striking -- both are labor intensive, lengthy, expensive, >prone to schedule slippages and cost overruns, require not only a sound >design but also good management practices, both can benefit from standardized >parts, etc. Has any formal attempt been made to draw on (this pun >is intentionally left blank) architecture as a model for solving some >of the problems in software engineering? I am currently the project leader of a group here at the SEI called Software Architecture and Modeling. Our primary focus for the last three years has been to apply traditional engineering practices and techniques to the development of software. Most notable among these techniques is the practice of modeling. I have found building design (architectural engineering) to be a particularly fruitful source of examples, parallels, and metaphors when describing the uses and value of software models. We have been able to show improvements in the software design process in several large-scale Ada projects by developing and applying engineering models. These models are just what you'd think they are -- architectural components representing model solutions to the recurring problems encountered in the various domains. As model solutions, they have known performance characteristics and structural style, and be applied with other models of the same style to create the system architecture. In effect, one obtains reuse at the design level, as opposed to the component level. For example, in the flight-simulator domain, we developed a model for connecting and updating the objects in a system[1]. This model was used as the architectural base for the electrical and engine systems within the simulator. In the C3I domain, we have produced a model for translating and validating incoming messages[2]. This model is being used on one large-scacle project and is being considered for another. Addtionally, we are developing models for Ada real-time embedded systems and are presenting general papers on the uses of models for software development. One, in particular, that we will present soon discusses the use models using examples from building architecture[3]. So, to summarize an answer to your question, yes, we have made a formal attempt to introduce the design practices of architects and other engineers to software development. Rich [1] An OOD Paradigm for Flight Simulators. CMU/SEI-87-TR-43. [2] A Model Solution for C3I Message Translation and Validation. CMU/SEI-89-TR-12. Due June, 1989. [3] Software Development Using Models. To be published as part of the Internation Workshop on Software Specification and Design, Pittsburgh, May, 1989. -- --------------------------------------------------------------------------- Ideas have consequences. RSD@sei.cmu.edu Richard Weaver ---------------------------------------------------------------------------