SEN 565: Software Architecture and Component-Based Design

Offered Under: M.Sc. in Software Engineering (SEN)
Description

High-level architectural designs of software systems and products, strengths and weaknesses of each design style, component-based design, cohesion, interconnection and complexity, middleware, performance analysis and simulation, and COTS components; 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 Object-oriented design, design patterns, and UML; application of domain analysis, impact of platform dependence and independence, relation of software architecture to requirements, domain analysis and the architectural design process, and products in a real-world context.


Prerequisites:
  • None

Course Type Major
Credit Hour 3
Lecture Hour 45
Expected Outcome(s):
  • Use well-understood paradigms for designing new systems.
  • Generate architectural alternatives for a problem and selection among them.
  • Describe a software architecture using various documentation approaches and architectural description languages.
  • Recognize major software architectural styles, design patterns, and frameworks.
  • Design and motivate software architecture for large-scale software systems.
  • Argue the importance and role of software architecture in large-scale software systems.
  • Discuss and evaluate the current trends and technologies such as model-driven and service-oriented architectures.

Suggested Books:
  1. Software Architecture: Foundations, Theory, and Practice by R. N. Taylor, N. Medvidovic and E. M. Dashofy
  2. Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures by Hassan Gomaa

Grading Policy: