Go to:
Esta página em português Ajuda Autenticar-se
Formação regular da Biblioteca |fevereiro a maio
Today is sunday
You are here: Start > EIC0048

Site map
Edifício A (Administração) Edifício B (Aulas) - Bloco I Edifício B (Aulas) - Bloco II Edifício B (Aulas) - Bloco III Edifício B (Aulas) - Bloco IV Edifício C (Biblioteca) Edifício D (CICA) Edifício E (Química) Edifício F (Minas e Metalurgia) Edifício F (Minas e Metalurgia) Edifício G (Civil) Edifício H (Civil) Edifício I (Electrotecnia) Edifício J (Electrotecnia) Edifício K (Pavilhão FCNAUP) Edifício L (Mecânica) Edifício M (Mecânica) Edifício N (Garagem) Edifício O (Cafetaria) Edifício P (Cantina) Edifício Q (Central de Gases) Edifício R (Laboratório de Engenharia do Ambiente) Edifício S (INESC) Edifício T (Torre do INEGI) Edifício U (Nave do INEGI) Edifício X (Associação de Estudantes)

Software Systems Architecture

Code: EIC0048     Acronym: ASSO

Classification Keyword
OFICIAL Software Engineering

Instance: 2014/2015 - 2S Ícone do Moodle

Active? Yes
E-learning page: https://moodle.fe.up.pt/
Responsible unit: Department of Informatics Engineering
Course/CS Responsible: Master in Informatics and Computing Engineering

Cycles of Study/Courses

Acronym No. of Students Study Plan Curricular Years Credits UCN Credits ECTS Contact hours Total Time
MIEIC 25 Syllabus since 2009/2010 4 - 6 56 162

Teaching - Hours

Recitations: 3,00
Type Teacher Classes Hour
Recitations Totals 1 3,00
Ademar Manuel Teixeira de Aguiar 3,00

Teaching language

Suitable for English-speaking students


BACKGROUND As the dimension and complexity of software systems grows, it becomes more important to understand them at more advanced abstraction levels. The architecture of a software system describes the global structure in terms of its components, external proprieties and its interrelations. For medium and big-dimension systems, to chose the right architecture becomes crucial to the success of its development.

SPECIFIC AIMS This course aims to introduce the concepts of software architectures, design patterns and topics directly related, such as the software components’ one. Furthermore, it aims to teach how to design, understand and evaluate software systems architectures both at the level of abstraction of macro-architecture and micro-architecture. All this to familiarize the students with the fundamental concepts of software architecture, the proprieties and applicability of the different architecture styles, the most popular design patterns, software components, reusable architectures and the relations of all these concepts with the software reuse.

PERCENTAGE DISTRIBUTION Scientific component: 50% Technologic componente: 50.

Learning outcomes and competences

LEARNING OUTCOMES At the end of the year, the students must be able to:

* Recognize the main architecture styles existent for software systems.

* Make a precise description of an architecture.

* Idealize different alternative architectures to solve the same problem and evaluate (justifying) which is the best one in terms of design and reuse.

* Recognize and understand several design patterns.

* Understand and apply several methods and techniques of software reuse.

* Build a medium-dimension software system following a requirement and architecture specification, selecting and applying design patterns and using a component-based development method.

* Use development definitions and tools to make the previous tasks more efficient.

Working method


Pre-requirements (prior knowledge) and co-requirements (common knowledge)

PREVIOUS KNOWLEDGE The students should have previous knowledge and experience on software development, object-oriented programming and software engineering.


Introduction: *Software Design: fundamental concepts and principles. *What is the software architecture? *Software architecture’s importance. *Examples of micro and macro architectures: design patterns, frameworks and production lines. Architecture Styles Design Patterns: *Software patterns’ origins. *Types of software patterns: architecture patterns, design patterns, idiomatic structures. *Examples of Architecture Patterns: POSA patterns. *Examples of Design Patterns: GoF patterns. Software Architectures: *Quality Architectures and Attributes. * Architecture styles, reference models and architectures: pipes and filters, data abstraction, object-orientation, even-based systems, layered systems, repositories, interpreters, process-control systems. *Design, evaluation and refinement of software architectures. *Representation and Documentation of software architectures. *Reuse of software architectures: production lines, frameworks, software components. Study Cases *Simple architectures’ study. *Study of complex technological architectures (J2EE, .NET).

Mandatory literature

Erich Gamma... [et al.]; Design patterns. ISBN: 0-201-63361-2

Complementary Bibliography

Bass, Len; Software Architecture in Practice. ISBN: 0-201-19930-0

Teaching methods and learning activities

Theoretical classes – formal exposition of contents and final presentation and discussion of the projects developed by the students during the semester. As to focus the students’ attention on the main topics, little questions on those topics will be developed out of classes. During the semester, the students will have the chance to put the knowledge transmitted in practice by doing short exercises, simulation games and incremental development of a medium-dimension project. The questions, exercises and project will encourage the students to complement the knowledge transmitted with other resultant of the individual research done on the course contents.

Evaluation Type

Distributed evaluation without final exam

Assessment Components

Designation Weight (%)
Participação presencial 10,00
Teste 30,00
Trabalho escrito 30,00
Trabalho laboratorial 30,00
Total: 100,00

Amount of time allocated to each course unit

Designation Time (hours)
Estudo autónomo 20,00
Frequência das aulas 42,00
Trabalho laboratorial 100,00
Total: 162,00

Eligibility for exams

Test – 50% Project – 50%

Calculation formula of final grade

Final Grade = (Test x 30%) + (Project x 60%) + (Individual evaluation x 10%).

Special assessment (TE, DA, ...)

Similar to the ordinary students’ one.

Classification improvement

The final classification can be improved with an improvement exam and/or project evolution.


The course implies knowledge of software engineering and experience in software systems development.

Recommend this page Top
Copyright 1996-2019 © Faculdade de Engenharia da Universidade do Porto  I Terms and Conditions  I Accessibility  I Index A-Z  I Guest Book
Page generated on: 2019-05-19 at 22:35:38