Software Design – CSIS 643

CG • Section 8WK • 11/08/2019 to 04/16/2020 • Modified 09/05/2023

Course Description

In this course, the student will be introduced to the architectural design of complex software systems and explore how to successfully design complex software systems. Software system design requires an individual to be able to describe, evaluate, and create systems at an architectural level of abstraction. Therefore, this course considers commonly-used software system structures, techniques for designing and implementing these structures, models, and formal notations for characterizing and reasoning about architectures, tools for generating specific instances of an architecture, and case studies of actual system architectures. Students will learn the skills and background needed to properly evaluate the architectures of existing systems and to design new systems in principled ways using well-founded architectural paradigms.

For information regarding prerequisites for this course, please refer to the Academic Course Catalog.

Rationale

The purpose of CSIS 643, Software Design, is to teach the student the concepts of architectural design and to apply these concepts to successfully design complex software systems. This course is important for the student because the quality and longevity of a software system is determined by its architecture, thus making these skills valued by employers.

Course Assignment

Textbook readings and lecture presentations

Course Requirements Checklist

After reading the Course Syllabus and Student Expectations, the student will complete the related checklist found in the Course Overview.

Discussions (4)

The student will complete 4 Discussions in this course. The student will post one thread of at least 400 words and post 2 replies of at least 200 words on his or her classmates' threads. For each thread, students must support their assertions with at least 1 citation in APA format. Each reply must incorporate at least 1 citation in APA format. Any sources cited must have been published within the last five years. Acceptable sources are scholarly articles.

Discussion: Peer Feedback

The student will complete one Peer Feedback Discussion in this course. The student will post one thread including 200 words and an embedded 5-to-10-minute video. The thread and video discuss the architecture and demonstrate how the program conforms to the architecture. The student must then post 2 replies of at least 200 words. The replies are peer reviews on how a classmate’s project conforms to the architecture.

Project

Throughout the course, the student will architect and program a software application utilizing object-oriented techniques and graphical user interfaces using Java. This project will be completed in the following steps:

Business Case Assignment

The student will write a 10–12-page (approximately 300 words per page) paper in current APA format that describes the business case and architecturally significant requirements for the project. The paper must include at least 10 scholarly articles as references in addition to the course textbook and the Bible.

Architecture Assignment

The student will write a 6–8 page (approximately 300 words per page) paper (not including models) in current APA format that describes and justifies the complete architecture and design decisions for the project. The Architecture Assignment must include at least 15 fully developed models of at least 8 different types. The paper must include at least 8 scholarly articles as references in addition to the course textbook and the Bible.

Threat Model Assignment

The student will write a 2-3 page (approximately 300 words per page) paper (not including models) in current APA format that describes and justifies threat models for the project. The Threat Model Assignment must include at least 3 fully developed threat models. The paper must include at least 2 scholarly articles as references in addition to the course textbook, the Bible, and Shevchenko, et al.

Implementation Assignment

This step will display the student’s completed software application, the culmination of the software design and architecture process. The student will submit his or her Java source code and the architecture.