Software Architecture And Design
William J. Hankley
Abstract
Open-access reader
William J. Hankley
Abstract
Open-access reader
Abstract NOTE: The first page of text has been automatically extracted and included below in lieu of an abstract 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
OpenAlex reports 4 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
Abstract NOTE: The first page of text has been automatically extracted and included below in lieu of an abstract 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
Key concepts: Computer science, Software engineering, Capstone course, Software development, Software construction, Software system, Software design description, Programming language