• Classroom
  • Online, Instructor-Led
  • Online, Self-Paced
Course Description

Covers the software design process, from understanding the need or problem, to creating suitable architecture and detailed design solutions, to preserving and evolving the design during implementation and maintenance. The main study topics include: requirements analysis models; user centered design; architecture design through decomposition and composition; architecture styles and architecture tactics for supporting various quality attributes such as security and usability; design for reuse and with reuse; detailed design object-oriented principles (such as SOLID) and design patterns; approaches for evaluating, comparing, and selecting design solutions; standard notations for documenting architecture views, detailed design, and analysis models; and industry standards for creating design deliverables. Students will acquire not only technical knowledge, but also soft skills such as communication, collaborations, critical thinking, leadership, negotiation, and time management.

Learning Objectives

Define concepts of user centered design, software architecture and detailed design, and building-in software quality. Apply engineering principles, methods, techniques, tools, and industry standard notations for developing and documenting software design Analyze and evaluate software design. Implement and deliver software in accordance with its design, in a team environment. Identify software design problems, propose adequate solutions, and analyze their benefits, cost, and limitations.

Framework Connections

The materials within this course focus on the NICE Framework Task, Knowledge, and Skill statements identified within the indicated NICE Framework component(s):

Competency Areas