Software Engineering

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

Recommended Prerequisites

Introduction to Programming and Problem Solving, Multimedia Programming,Internet Tecnology.

Teaching Methods

Project based learning, using a medium-sized software project, executed by multidisciplinary (LEI/LDM) teams. Students have to develop a software product during the semester using concepts, tools and methodologies presented during the lectures a week or two before the deliverables are due. These deliverables focus on the software engineering artifacts (requirements, mockups, architecture and design, quality plan,...), while the laboratory classes focus on assessing the correct usage of processes to ensure the visibility and quality of the work performed.

Learning Outcomes

The student must understand why the complexity of software requires an engineering approach and the different ways to organize the people and activities required to develop a product with quality, namely waterfall, linear and iterative approaches. He or she must understand the differences between them and which one(s) are more adequate for a specific usage context. The student must also be able to use the most common project management techniques, namely PERT/CPM, Gant, Risk analysis and others. Finally, the student must be able to describe the software artifact to be developed using the UML modelling formalism.

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: 50.0%
Exam: 50.0%


1. Essentials of Software Engineering (3rd Ed.), Frank Tsui, Orlando Karam, Barbara Bernal, Jones & Bartlett Learning, 2013, ISBN-13: 978-1449691998 2. UML Distilled (3rd Ed.), Martin Fowler, Addison-Wesley Professional, 2003, ISBN-13: 978-0321193681.