SWT-571 Software Design and Architecture

This course provides students with a solid foundation in software engineering and develops their knowledge and skills related to contemporary software development processes, methods, and practices. The goal of this course is to develop the student's ability to understand, design, develop, and implement complex programs using current architectural frameworks and design methodologies. In this course students will develop the expertise to reason about programs of moderate size. Topics include the software development life cycle, requirements engineering, modeling, software testing, and quality assurance. Additional topics, include: design patterns, modularity, code reuse, application program interface (API) design, assertions, invariants, separation of concerns, programming patterns, debugging, profiling, asynchronous programming, event-driven programming, metaprogramming, and graphical user interfaces (GUI). Students in the course will work in teams to develop fairly large projects that include a project plan, formal specifications, design artifacts, program documentation, and a fully functional software system.

Credits: 3

Offered in Jul 2020, Oct 2020, Jan 2021

Preview the Online Syllabus new window
(Please visit the University bookstore to view the correct materials for each course by semester as the contents of the actual online syllabus may differ from the preview due to updates or revisions)