Software Architecture Concepts

To learn why, how and when to apply various software architectural techniques. This includes understanding the difference between software design and software architecture. To learn and understand how software architecture is envisioned, evaluated and communicated and thereby, to understand the characteristics of a software architect. To understand how and when to apply the latest architectural styles, patterns and techniques by being aware of the trade-offs and pros & cons in applying them to address the requirements of various application system scenarios.

Course outline

  • Architecture in Context & Architectural Concepts
  • Application Types and Categories
  • Information Domains
  • Ownership & Flow Architecture Design Process
  • Software Engineering Tools & Governance
  • Architectural Styles and Patterns
  • Enterprise application Integration (EAI) Patterns and SOA
  • Documenting Architectures
  • Quality Attributes and Quality Attribute Scenarios
  • Cross-Cutting Architectural Concerns
  • Architectural Evolution and Application Refactoring
  • Architecture Analysis (ATAM, CBAM etc.)
  • People, Role & Terms
  • Architectural Case Studies

Eligibility requirements

Degree in Computer Science, IT, Engineering, Science, or a related area
OR
Recognized professional qualification in Computing, IT, Engineering or management
OR
Minimum standards at GCE A-Level as prescribed by faculty and approved by senate and a recognized certification in a related area and at least 3 years relevant experience.

Target group

Engineers and Professionals working on information systems

Duration

14 2-hour lectures and on-line instruction

Start date

May 2016

Resource Personnel

Dr. Indika Perera
PhD (St Andrews), MBS (Colombo), MSc (Moratuwa), BSc Eng. (Hons) (Moratuwa), PGDBM (Colombo), AMIE (SL)
indika@cse.mrt.ac.lk