Go to:
Esta página em português Ajuda Autenticar-se
IEEE Authorship and Open Access Symposium
Today is sunday
You are here: Start > L.EIC017

Software Engineering

Code: L.EIC017     Acronym: ES

Classification Keyword
OFICIAL Informatics Engineering and Computing

Instance: 2021/2022 - 2S

Active? Yes
Responsible unit: Department of Informatics Engineering
Course/CS Responsible: Bachelor 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
L.EIC 0 Syllabus 2 - 6 52 162

Teaching Staff - Responsibilities

Teacher Responsibility
Ademar Manuel Teixeira de Aguiar
João Carlos Pascoal Faria

Teaching language



This course aims to acquaint students with the engineering and management methods necessary for the cost-effective development and maintenance of high-quality complex software systems.

Learning outcomes and competences

At the end of the semester, students should:

    • be capable of describing the principles, concepts and practices of software engineering and software life cycle;
    • be acquainted with and be capable of applying the required tools and techniques to carry out and manage the various tasks in the development of high quality software;
    • be capable of explaining the development methods and processes of different types of software systems.


Working method



1. INTRODUCTION: large scale software development chalenges; objectives and scope of software engineering; history of software engineering.

2. SOFTWARE PROCESS: concept of software process; process models; process activities; agile methods; example of the Rational Unified Process.

3. SOFTWARE PROJECT MANAGEMENT: software estimation; project planning, monitoring and control; agile and classic agile project managament.

4. REQUIREMENTS ENGINEERING: software requirements; the requirements document; requirements engineering process; requirements modeling with UML; user interface prototyping.

5. SOFTWARE DESIGN: architectural design; architectural modeling with UML; reuse (components, frameworks and product lines); detailed design.

6. SOFTWARE CONSTRUCTION: integrated development environments; rapid development environments; model-driven development environments; continuous integration; version control; agile development with XP.

7. SOFTWARE VERIFICATION AND VALIDATION: basic concepts; unit, integration, system and acceptance testing; software inspections and reviews; defect tracking; static code analysis.

8. SOFTWARE EVOLUTION: evolution processes; dynamics of program evolution; software maintenance; legacy systems; reverse engineering and software re-engineering.

9. PROCESS IMPROVEMENT: software process lifecycle; performance measurement; the CMMI maturity model; retrospectives.

Mandatory literature

Ivar Jacobson, Bud Lawson, Paul mcMahon, Michael Goedicke; Software Engineering Essentialized (http://semat.org/web/book)
Ian Sommerville; Software engineering (9th edition), Addison-Wesley, 2011. ISBN: 9780137035151

Complementary Bibliography

Russ Miles & Kim Hamilton; Learning UML 2.0, O'Reilly, 2006. ISBN: 0-596-00982-8
Silva, Alberto Manuel Rodrigues da; UML, metodologias e ferramentas CASE. ISBN: 989-615-009-5
Humphrey, Watts S; A discipline for Software engineering. ISBN: 0-201-54610-8

Teaching methods and learning activities

Theoretical classes will be based on the oral presentation of the themes and description of problems, as well methodology analysis and solutions/good practices.

Theoretical-practical classes will be based on a small software development project, in groups, encompassing a written part (development report, including text and models about the project) and the software developped  (source code).

- TP1 (Trabalho escrito) - Development Report, including documentation about all software development project phases, written in a perspective of the present development team, for an eventual future development team.

- TP2 (Trabalho prático) - Software, including all source code developed by the group, published in github/gitlab, with instructions to install and run.

Evaluation Type

Distributed evaluation with final exam

Assessment Components

Designation Weight (%)
Trabalho escrito 30,00
Trabalho prático ou de projeto 35,00
Exame 35,00
Total: 100,00

Amount of time allocated to each course unit

Designation Time (hours)
Elaboração de projeto 28,00
Estudo autónomo 50,00
Frequência das aulas 56,00
Trabalho escrito 28,00
Total: 162,00

Eligibility for exams

Minimum of 40% in each evaluation component.

Not exceed the absence limits and actively participate in the practical works that will be subject to evaluation.

Students dispensed from attendance rules must, in time periods defined with teachers, present the evolution of their works, and participate in the final presentations sessions as the regular students. 

Calculation formula of final grade

FG = 65% TP + 35% E

FG: Final Grade
TP: Grade for the report of the group assignment (report + software) 

E: Grade for the final exam

Final grades higher than or equal to 18 pts
may require an oral examination touching all aspects of the course.

Minimum of 40% in each evaluation component.

Special assessment (TE, DA, ...)

These students must however accomplish with the above considerations about realization and evaluation of works. 

Classification improvement

Development of alternative works in the next course term.


It is recommended that, for attending this course, students have completed LPOO.

Important dates:

  • Week of 9 a 13/NOV: intermediate delivery of the TP (iinformal qualitative evaluation);
  • Week of 14 to 18/DEC: final delivery of the TP (formal final evaluation);
Recommend this page Top
Copyright 1996-2021 © Faculdade de Engenharia da Universidade do Porto  I Terms and Conditions  I Accessibility  I Index A-Z  I Guest Book
Page generated on: 2021-09-19 at 23:42:29