Nashville, Tennessee
June 22, 2003
June 22, 2003
June 25, 2003
2153-5965
10
8.1021.1 - 8.1021.10
10.18260/1-2--12215
https://peer.asee.org/12215
547
Session Number 2793
On Teaching Software Architecture and Design
William Hankley Kansas State University Manhattan, KS 66506 hankley@cis.ksu.edu
Abstract
This paper describes a sophomore/junior level course on software architecture and design. The course covers general principles of system requirements and conceptual models, not just “programming skills”. Key components of the course include use of UML (Unified Modeling Language) for description of system models, use of CASE (computer aided software engineering) tools for software modeling and development, GUI (graphical user interface) design, case studies of several kinds of software applications, writing skills, and programming assignments. Example systems include typical business data management software, soft real-time control of devices, direct manipulation visual models, and distributed computing. Programming is done primarily using Java, with some work using C++. With the foundation of object oriented structure, there is little difficulty in using the equivalent subset of C++. The course is offered within a track of software engineering (within a computer science/ information systems curricula); however, the course is also taken by electrical and computer engineers and some students from other engineering disciplines. The course is prerequisite to our capstone project course on software engineering. The architecture course does not cover general software engineering topics (such as testing, estimation, and management), but it does provide students in the capstone course with foundation skills for software design and development. This type of architecture and design course should be an appropriate second level course for engineers with a minor emphasis of software.
Introduction
This paper addresses the underlying issue of where and how and why architecture and design fit into the curriculum of courses for majors in computing and for service computing courses, which are often taken by engineering and science majors. Historically, the core courses of computing have dealt with programming, algorithms, and data structures, but very little with architecture and design. This pattern is examined in the next section.
What is software architecture? Within the scope of the course we have developed, the focus is on object-oriented software. Other paradigms for software design and development are discussed but not treated in depth. The implementation language for our core courses is Java, but that is not an essential aspect of the issues of this paper. Within this context, the architecture of a program consists of the selection of user operations, the user interface for operations, and the
Proceedings of the 2003 American Society for Engineering Education Annual Conference & Exposition Copyright © 2003, American Society for Engineering Education
Hankley, W. (2003, June), Software Architecture And Design Paper presented at 2003 Annual Conference, Nashville, Tennessee. 10.18260/1-2--12215
ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 2003 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015