• Software Architecture

    • Software Architecture is a part of the engineering process for building applications and it is a core subject for a Computer Engineer.This course is part of the Software Engineering field and it is transverse to the Specific Training Module (Software Engineering).Within this field are also the subjects as Software Engineering, Software Design, Quality, Validation and Verification of Software Requirements Engineering and Modeling in Software Engineering Process.

      With the support of the Lifelong Learning Programme of the European Union.

      Computer Science School Logo
  • Study Materials
    • Lectures and Seminars

      In this page you can find Lectures and Seminars. There exist 13 lectures and 4 seminars.

      Lectures 1, 2, 5, 6 and 11 are widely developed. The other lectures have only a introductory video.

      On the other hand, only seminars 1 and 3 are published.


        • Colored icons on lectures and seminars, means full contents have been published.
        • Grey icons on lectures and seminars means either only introductory video or nothing have been published.
    • Lectures

    • Part I. Software Architecture definition and basic concepts

      Definition and basic concepts of Software Architecture. Definitions of Software Architecture. The software architect and the stakeholders. Software Architecture description and validation. Viewpoints and perspectives in Software Architecture. Software Architecture documentation.

    • 1. Introduction to Software Architecture

      This topic will consist of an introduction to Software Architecture and a general revision of the techniques and methods usually employed in architecture. It will also deal with the most noteworthy aspects of the architecture, in order to define a common language with the rest of the topics of this subject.

    • 2. Describing architectures

      The study and description of architectures demands some basic concepts, such as the views, the viewpoints and the perspectives.
      These elements will be studied first, and then we will proceed to define the models for the description of architectures and some methodologies employed in carrying out the process of Software Architecture.
    • 3. Modelling Architectures

      For the objectives of architectural model, a similar methodology to ABC will be used: that is tos ay, an ADD (Attribute-Driven Design) method (Bass et al. 2003) (COMP 7.2 Designing the Architecture).
      Before the introduction of the ADD, it is necessary to revise the concepts of quality attribute and quality scenario.

    • 4. Elements Related to Documentation

      The next few paragraphs will be devoted to revising the most common elements in software architectures and the ways to document them.

    • Part II. Software Architecture Taxonomies

      Architecture styles. Architecture patterns. Business architectures.

    • 5. Introduction to Architecture Taxonomies

      Describe the main styles and patterns in Software Architecture.
      Get to know the contexts in which they may be applied.

    • 6. Allocation

      The allocation refers to the techniques for constructing, deploying and distributing software. The equivalent in traditional architecture would be studying the different techniques for constructing buildings.

    • 7. Modularity

      Pattern/styles that define the structure of the application.

    • 8. Behavior: components and connectors

      The following section includes a catalog of patterns/architectural styles related to the components and connectors of the system (Clements, y otros, 2011). The components and connectors describe the behavior of the system during runtime. The styles and the patterns are related to the analysis, conceptual and logical design views (Garland, y otros, 2003). Each pattern/style is briefly described and the references in which they appear are indicated.

    • 9. Integration

      The integration between computer systems is the great challenge that Computer Science will face in the next years. This chapter describes the main styles of integration of applications.
      Integration patterns for business applications are described in (Hohpe et al. 2004), which may be implemented with Apache Camel (Ibsen et al. 2011).

    • 10. Business Architectures

      This sections revises the main business computer systems.

    • Part III. Software Architecture Based on Models

      Model driven architecture. Model definition. Specific domain languages.

    • 11. Model-based Software Architecture

      Introduction and Goals: Describing and defining the concept of model and its application to the definition of the architecture of a system. Introducing the concept of specific-domain languages.

    • 12. Model Drive Architecture – MDA

      The Model Driven Architecture (MDA) is the standard of the Object Management Group (OMG) and it is a methodology defined by the use of a set of standards that we will develop in the following sections, and which are also defined by the OMG.

    • 13. Domain-Specific Languages (DSL)

      Definition: Computer Science traditionally worked with GPLs (General Purpose Languages). Programming languages are an artificial language designed to express processes that may be carried out by computers.

    • Seminars

    • Seminar I. UML

      This topic will deal with the basic tools need to make an architecture.
      First, we will revise in broad strokes the UML (Unified Modelling Language) from the point of view of the elements that help with the description of an architecture.

    • Seminar II. Construction of the documentation

      Documenting the architecture is not a trivial task, since the documentation has several objectives that must be accomplished. The most important one is communicating information about the decisions that had been taken to the stakeholders.

    • Seminar III. BPM - Business Process Management

      BPM is a technique to manage the business process lifecycle by means of workflows. It provides mechanisms for processes modelling, management, optimization and execution.

    • Seminar IV. Case examples

      The following sections will be devoted to the study of the solution of an architecture. The goal is to have a brief reference or guide to the development of the practice.