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.
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:
- Discuss the relevance of course material and the use of software design to a biblical worldview. (PLO-1)
- Recognize major architectural styles in existing software systems. (PLO-3)
- Assess software design alternatives for a problem. (PLO-2)
- Use existing definitions and development tools to expedite such tasks. (PLO-2)
- Apply domain knowledge to specialize an architecture for a particular family of applications. (PLO-3)
- Recognize how to manage software projects by being able to plan, manage, and control a software project. (PLO-2)
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.
The student will complete 4 Discussions in this course. The student will post one thread of at least 400 words by 11:59 p.m. (ET) on Thursday of the assigned Module: Week. The student must then post 2 replies of at least 200 words by 11:59 p.m. (ET) on Sunday of the assigned Module: Week. 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.
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.
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.
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.
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 by 11:59 p.m. (ET) on Thursday of Module 8: Week 8. 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 by 11:59 p.m. (ET) on Friday of Module 8: Week 8. The replies are peer reviews on how a classmate’s project conforms to the architecture.