COURSE OBJECTIVES
• The course is design to break down the root cause of inherited software complexity. After an in-depth knowledge to Object Models, their structures, and interactions, the course takes a thorough tour of UML 2.0 using Rational Unified Process (RUP) as development model.
• Software Architecture & Design Patterns are taught as reusable components of the design.
• Several architectural styles, middleware architectures are briefly studied with systems examples to help students understand the concept and offer quick practice
• After the completion of this course student should be able to;
• Describe all important concepts of Software Architecture and design
• Construct software architecture and OO design models (artifacts) for given complex problem in team.
• Investigate existing solutions i.e. architectural styles and software design patterns of a particular complex software system design problem for evaluation.
• Translate the architectural views into an implementable architectural model using CASE tools.
COURSE LEARNING OUTCOMES (CLO)
CLO: 1. Describe all important concepts of Software Architecture and design
CLO: 2. Construct software architecture and OO design models (artifacts) for given complex problem in team
CLO: 3. Investigate existing solutions i.e. architectural styles and software design patterns of a particular complex software system design problem for evaluation.
CLO: 3. Translate the architectural views into an implementable architectural model using CASE tools.
COURSE CONTENTS
• Software Life Cycle & importance of Software architecture
• Software Architecture Styles & Patterns: (, Client Server, Pipe & Filters, Distributed computing architecture, N-Tier, Component Based Architecture, Service oriented architecture)
• Overview of architecture viewpoints and quality attributes
• Functional viewpoint and Information viewpoint
• Use case view: (Use case Model, SSD, Domain Model, UI)
• Logical/Structural View: Role of Analyst & Designer
• Logical/Structural View (contd..): Design Class Diagrams, Object Diagrams, Composite Structure Diagram
• Process/behavior view: Activity Diagrams, Sequence Diagram, Communication diagram
• Process/behavior view (contd..): State(machine) diagram, interaction overview, timing diagram
• Software Design Patterns: Structural Patterns
• Software Design Patterns: Creational Patterns
• Software Design Patterns: Behavior Patterns
• Implementation/ Developer view: Component Diagram, Package Diagrams
• Deployment/Physical view: Deployment diagrams, network topology
• Operational viewpoint
• Introduction to Middleware architecture (CORBA, RMI, and OO middleware, message-oriented middleware)