Software Engineering

Academic year
Subject Area
Computer Science
Language of Instruction
Mode of Delivery
ECTS Credits
1st Cycle Studies

Recommended Prerequisites

Object-Oriented Programming; Algorithms and Data Structures.

Teaching Methods

Theoretical classes with detailed presentation, using audiovisual means, of the concepts and principles, and solving of basic practical exercises to illustrate the practical interest of the subject and exemplify its application to real cases.

Theoretical-practical classes where the students, supervised by the staff member, solve practical exercises, which require the combination of different theoretical concepts and promote critical reasoning in the presence of more complex problems.

Laboratory classes  for the realization of a software project developed in group.

Learning Outcomes

1. Motivation for the problems involved in software development

2. Motivation for the need to apply different approaches in different types of projects

3. Use of techniques of project management (Gantt and PERT/CPM diagrams, risk analysis)

4. Software development using iterative and incremental approaches

5.Importance and use of UML.

Work Placement(s)



1. Introduction to Software Engineering.

The nature of software. Kinds of software. Quality of software.

2. Introduction to software development process.

Requirements elicitation and analysis. Design. Implementation. Software testing.

Waterfall development. Iterative and evolutive development.

3. Introduction to software project management.

Management activities. Project planning. Project scheduling. PERT/CPM and Gantt diagrams. Risk managements in software projects. Risk identification, analysis, planning and monitoring.

4. UML Language

Use case diagrams. Class diagrams. Introduction to OCL (Object Constraint Language). Object diagrams. Interaction diagrams. Sequence Diagrams. Activity diagrams. State diagrams. Deployment diagrams. Mapping UML into code.

Head Lecturer(s)

Mário Alberto da Costa Zenha Rela

Assessment Methods

Project: 40.0%
Exam: 60.0%


B. Bruegge e A. Dutoit. Object-Oriented Software Engineering Using UML, Patterns, and Java (3ª Ed.).

I. Sommervile, Software Engineering 9.

OMG Unified Modeling Language (OMG UML): Superstructure, v2.3.

I. Jacobson, G. Booch e J. Rumbaugh, The Unified Modelling Language Reference Manual.

I. Jacobson, G. Booch e J. Rumbaugh, The Unified Modelling Language User Guide.

M. Fowler, UML Distilled: A Brief Guide to the Standard Object Modelling Language (3ª Ed.).