Abstract
While there are many software engineering courses being offered today, there are few that successfully teach software design in a large system context. Many of the courses present good ideas but neglect concrete design techniques and leave the students ill-equipped to actually do software design. We describe a course whose focus is the design and use of software modules. The course emphasizes practical module specification methods and provides students with experience in the roles of module designer, implementor, tester, and user. We describe the course content and format in detail and summarize our teaching experience. We conclude with recommendations for standardization in software engineering education.
Research supported by the Natural Sciences and Engineering Research Council of Canada under grant A8067.
Preview
Unable to display preview. Download preview PDF.
References
K.H. Britton et al. A procedure for designing abstract interfaces for device interface modules. In Proc. of the Fifth Intl. Conf. on Software Engineering, IEEE, March 1978.
B.W. Boehm. Software engineering. IEEE Trans. Computers, c-25(12), December 1976.
W. Bartussek and D.L. Parnas. Using assertions about traces to write abstract specifications for software modules. In Second Conference of the European Cooperation in Informatics, Springer-Verlag, 1978.
F.P. Brooks. The Mythical Man-Month. Addison-Wesley, 1975.
F.B. Brooks. No silver bullet — essence and accidents of software engineering. IEEE Computer, 20(4), April 1987.
E.W. Dijkstra. The structure of ‘THE'-multiprogramming system. Commun. ACM, 11(5):341–346, May 1968.
E.W. Dijkstra. A Discipline of Programming. Prentice-Hall, Inc., 1976.
S. Feldman. Make — a program for maintaining computer programs. Software — Practice and Experience, 9(3), March 1979.
P. Freeman. Essential elements of software engineering education revisited. IEEE Trans. Soft. Eng., SE-13(11), November 1987.
K.L. Heninger. Specifying software requirements for complex systems: new techniques and their applications. IEEE Trans. Soft. Eng., SE-6(1):2–13, January 1980.
D.M. Hoffman. Practical Interface Specifications. Technical Report DCS-75-IR, University of Victoria, Department of Computer Science, 1988.
R.N. Horspool. C Programming in the Berkeley Unix Environment. Prentice-Hall Canada, 1986.
D.M. Hoffman and R. Snodgrass. Trace specifications: methodology and models (accepted for publication). IEEE Trans. Soft. Eng., 1986.
B.W. Kernighan and P.J. Plauger. Software Tools In Pascal. Addison-Wesley, 1981.
M.J. King and J.P. Pardoe. Program Design Using JSP — a Practical Introduction. Macmillan Publishers Ltd., 1985.
D.L. Parnas. On the criteria to be used in decomposing systems into modules. Commun. ACM, 15(12):1053–1058, December 1972.
D.L. Parnas. On a ‘buzzword': hierarchical structure. In Proceedings of the IFIP Congress 1974, North Holland Publishing Co., 1974.
D.L. Parnas. Use of Abstract Interfaces in the Development of Software for Embedded Computer Systems. NRL Report 8047, Naval Research Laboratory, 1977.
D.L. Parnas. Designing software for ease of extension and contraction. In Proc. of the Third Intl. Conf. on Software Engineering, pages 264–277, IEEE, 1978.
D.L. Parnas and P.C. Clements. A rational design process: how and why to fake it. IEEE Trans. Soft. Eng., SE-12(2):251–257, February 1986.
W.W. Royce. Managing the development of large software systems. In Proc. of the Ninth Intl. Conf. on Software Engineering, IEEE, 1987.
D.M. Weiss. Teaching a software design methodology. IEEE Trans. Soft. Eng., SE-13(11), November 1987.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1988 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Hoffman, D. (1988). An undergraduate course in software design. In: Ford, G.A. (eds) Software Engineering Education. SEI 1988. Lecture Notes in Computer Science, vol 327. Springer, New York, NY. https://doi.org/10.1007/BFb0043597
Download citation
DOI: https://doi.org/10.1007/BFb0043597
Published:
Publisher Name: Springer, New York, NY
Print ISBN: 978-0-387-96854-4
Online ISBN: 978-0-387-34779-0
eBook Packages: Springer Book Archive