About This Course
Students will explore with various notations and formalisms as they learn the relationship between these structures and key quality attributes and their impact on system implementation. The use of various notations is explored, with a focus on UML, and the role of architecture and detailed design specifications are considered from the perspective of risk management.
Course objectives include:
• Use risk management processes, methods and techniques as the basis for deciding what to express and how best to express it, as well as what does not need documenting.
• Draft detailed design documents consistent with a specified architecture for moderate to small systems using UML design notations.
• To design module interfaces to support concurrent design and development by teams.
• Develop draft architecture documents for moderate to small systems employing one or more views.
• Demonstrate understanding design intent required to implement modules, subsystems and systems.
• Create views to capture and communicate key aspects of a design element for a specific and targeted audience
• Use architectural styles and design patterns.
• Describe how software architecture and design can be used during software maintenance as well as describing major issues involved.
• Discuss architecture styles and the relationship each has with various standard quality attributes and design patterns, as well as the advantages and disadvantages of their use.
After completing this course, students will be able to demonstrate the following knowledge, assessed through class discussions and assessments:
• The importance of taking a risk-based approach to software development.
• Why doing so aids an organization in determining how much architecture is enough for a given project.
• Given a requirements document, students will be able to identify risks and discuss how to mitigate them.
• How software architecture can be used to ensure quality goals will be met.
• Be able to discuss the purpose for creating different views of software architecture and be able to contribute to discussions in determining which are appropriate for a given project.
• Knowledgeably discuss architectural choices, the short-term and long-term consequences associated with each choice and the rationale for selecting one choice over the others.
• What encapsulation means and why it is important to preserve architectural integrity
Students will also be able to identify the flow of a system solution, from requirements to quality attributes and architectural structures to design patterns and detailed design, to implementation, testing, integration, sustainment and future reengineering as required to extend a system’s life.
This is paragraph 2 of the long course description. Add more paragraphs as needed. Make sure to enclose them in paragraph tags.