Abstract

This paper presents a model for the course architecture and in our software engineering undergraduate program. This course is a part of our efforts in the ABET accreditation preparation. As systems grow bigger, so grows the need for understanding large scale, complex, and distributed systems, software design (including architecture and detailed design) studies how to describe the high-level structure of software systems. It is a discipline whose importance is growing more and more apparent. It is also one of ten essential areas recommended by computing curriculum software engineering (CCSE) 2003. In spite of its importance, there are almost no dedicated courses at the undergraduate level covering this important discipline, although there is definite interest [J. Tomakyo et al., (2004)]. At Southern Polytechnic State University, as part of our BS in software engineering, we have started offering a course on software architecture and design, which focuses on designing software, at the highest level (software architecture) and the detailed level. In this paper we detail the contents and the pedagogical approach of that course. We describe the structure of this course, its knowledge units, which include design principles, design strategies, architectural design and attributes, detailed design, component-oriented design, and design support tools and evaluation. We also describe the topics in each knowledge unit (for example, design patterns is a topic in detailed design). The strategies for choosing design styles and patterns based on the trade-off of system attributes and combinations of various architectural styles and design patterns are also emphasized. We also present assessment of course outcomes, our experience in teaching this course and plans for further enhancements.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call