Abstract
One reason that hardware design is more systematic than software design is that hardware designers have reached agreements about the description levels for design artifacts. We hypothesize that quality and productivity in software development would be improved if software designers were to arrive at similar agreements. As a first step, we look at representations related to software architecture.
Since software architecture is an emerging field, the research community has developed little consensus on the definition of architecture except that architecture describes the structure of a system as composed from its subcomponents, and the interactions among them. To help us identify pragmatic issues related to architecture, we have surveyed a variety of systems to understand their structure and their use. In our study, we observed that many systems have more than one structure addressing different concerns related to system construction, functional and non-functional characteristics, and the development environment.
Based on these observations, we propose several different representation levels for software architecture. We briefly describe issues arising from multiple representations of software.
Preview
Unable to display preview. Download preview PDF.
References
Barbacci, M.R., Weinstock, C.B., Wing, J.M.: Programming at the processor-memory-switch level. In Proceedings of the 10th International Conference on Software Engineering, IEEE Computer Society Press (April 1988) 19–28
Bell, C.G., Newell, A: Computer Structures: Readings and Examples. McGraw-Hill (1971)
Crocker, S.D. et al.: Function-oriented protocols for the ARPA computer network. In Proceedings AFIPS, Spring Joint Computer Conference (1972)
Delisle, N., Garlan, D.: Applying formal specification to industrial problems: A specification of an oscilloscope. IEEE Software (September 1990)
DeRemer, F., Kron, H.: Programming-in-the-large versus programming-in-the-small. IEEE Transactions on Software Engineering, SE-2, 2 (June 1976) 80–86
Feiler, P.: Configuration management models in commercial environments. Technical Report CMU/SEI-91-TR-7, Carnegie Mellon University (1991)
Feldman, S.I.: Make — a program for maintaining computer programs. Software — Practice and Experience 9 (November 1979) 255–265
Fischer, H.D.: Special features of a computer-based German reactor protection system. In Proceedings of Fault-Tolerant Computing Systems, Springer-Verlag, Nürnberg (September 1991) 266–287
Garlan, D., Shaw, M.: An introduction to software architecture. V. Ambriola and G. Tortora, editors, In Advances in Software Engineering and Knowledge Engineering, Volume I, World Scientific Publishing Company, New Jersey (1993)
Greenberg, M., Soni, D.: Change Assistant: An editor for programming-in-the-large (in preparation)
Hatley, D.J., Pirbhai, I.A.: Strategies for Real-Time System Specification. Dorset House Publishing, New York (1988)
Katz, R.H.: Information Management for Engineering Design. Springer-Verlag (1985)
Lange, R., Schwanke, R.W.: Software architecture analysis: A case study. In Proceedings of the Third International Workshop on Software Configuration Management, Trondheim, Norway, ACM Press (June 1991)
Narayanaswamy, K., Scacchi, W.: Maintaining configurations of evolving software systems. IEEE Transactions on Software Engineering SE-13, 3 (March 1987)
Perry, D.E., Wolf, A.L.: Foundations for the study of software architecture. ACM SIG-SOFT Software Engineering Notes 17, 4 (October 1992) 40–52
Prieto-Diaz, R., Neighbors, J.M.: Module interconnection languages. The Journal of Systems and Software 6, 4 (November 1986) 307–334
Purtilo, J.M.: The polylith software bus. Technical Report UMIACS-TR-90-65, University of Maryland (May 1990)
Royce, W.: TRW's Ada process model for incremental development of large software systems. In Proceedings of the 12th International Conference on Software Engineering, IEEE Computer Society Press (March 1990) 2–11
Scheifler, R.W., Gettys, J.: X window system. Digital Press, Bedford, MA (1990)
Shaw, M.: Larger scale systems require higher level abstractions. In Proceedings of the Fifth International Workshop on Software Specification and Design, IEEE Computer Society, Software Engineering Notes 14, 3 (May 1989) 143–146
Soni, D.: Intelligent support for software maintenance. In Siemens Review, (Spring 1991) 14–18
Soni, D., Nord, R.L., Hsu, L.: An empirical approach to software architectures. In Proceedings of the Seventh International Workshop on Software Specification and Design, IEEE Computer Society (December 1993) 47–51
Tichy, W.: Software development control based on module interconnection. In Proceedings of the Third International Conference on Software Engineering, IEEE Computer Society Press (May 1979) 29–41
Wolf, A.: Language and tool support for precise interface control. Technical Report COINS-TR-85-23, University of Massachusetts (1985)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Soni, D., Nord, R.L., Hsu, L., Drongowski, P.J. (1996). Many faces of software architecture. In: Lamb, D.A. (eds) Studies of Software Design. WSSD 1993. Lecture Notes in Computer Science, vol 1078. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0030516
Download citation
DOI: https://doi.org/10.1007/BFb0030516
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-61285-8
Online ISBN: 978-3-540-68434-3
eBook Packages: Springer Book Archive