Software Design – CSIS 643

CG • Section 8WK • 11/08/2019 to 04/16/2020 • Modified 07/28/2020

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.

Prerequisites

CSIS 505 and CSCI 611

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.

Measurable Learning Outcomes

Upon successful completion of this course, the student will be able to:

  1. Discuss the relevance of course material and the use of software design to a biblical worldview. (PLO-1)
  2. Recognize major architectural styles in existing software systems. (PLO-3)
  3. Assess software design alternatives for a problem. (PLO-2)
  4. Use existing definitions and development tools to expedite such tasks. (PLO-2)
  5. Apply domain knowledge to specialize an architecture for a particular family of applications. (PLO-3)
  6. Recognize how to manage software projects by being able to plan, manage, and control a software project. (PLO-2)

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 Module/Week 1.

Discussion Board Forums (4)

Discussion boards are collaborative learning experiences. Therefore, the student is required to create a thread in response to the provided prompt for each forum. Each thread must be at least 400 words and demonstrate course-related knowledge. In addition to the thread, the student is required to reply to the threads of at least 2 classmates. Each reply must be at least 200 words. Each thread and reply must include at least 1 citation in current APA format.

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:

Architecture Part 1

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 Part 2

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. Architecture Part 2 must include at least 15 fully developed models of at least 8 different types. The paper must include at least 6 scholarly articles as references in addition to the course textbook and the Bible.

The student will add Architecture Part 1 to Architecture Part 2 to create the Architecture Part 2 submission. The final submission will be 16–20 pages (not including models) and contain at least 15 models and at least 16 scholarly articles as references.

Implementation

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.

Utility Tree Analysis

The student will complete an interactive activity in which he or she will be given a set of architecturally significant requirements (ASR) to evaluate in terms of business value and quality attributes.

Peer Evaluation

The student will provide a reflection thread of at least 400 words and an attachment of his or her final project. In addition to the thread, the student will conduct a peer review of the projects of least 2 classmates. Each peer review must be at least 200 words.