SWT-5710 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

Delivery Methods

Online

Example Syllabus Link

Preview the Online Syllabus

Semester Offered

Terms Available