-
Presentation
Presentation
The course presents the foundations of Software Engineering, structuring the concepts in an integrated manner to promote effective communication among organizations and their various stakeholders. In parallel, it adopts a practical perspective focused on application in an industrial context. In the theoretical classes, the main stages of the software development process are addressed, considering both classical and agile approaches. In the practical classes, the concepts are applied to problems close to professional reality, using CASE tools. Throughout the semester, students develop a Project Plan for a system previously specified in the course Analysis and Systems Design and, at the end, produce a Project Report documenting the work carried out.
-
Class from course
Class from course
-
Degree | Semesters | ECTS
Degree | Semesters | ECTS
Bachelor | Semestral | 6
-
Year | Nature | Language
Year | Nature | Language
2 | Mandatory | Português
-
Code
Code
ULP452-7341
-
Prerequisites and corequisites
Prerequisites and corequisites
Not applicable
-
Professional Internship
Professional Internship
Não
-
Syllabus
Syllabus
Theoretical part: Introduction to Software Engineering Software development processes (classical and agile) Software process management Requirements engineering Logical and physical software design Coding Verification and validation Software maintenance Current challenges in Software Engineering Practical part: Development of the Project Plan UML modeling (state, sequence, collaboration, component, and deployment diagrams) Document Object Model (DOM) Project Report Cyclomatic complexity Unit testing Complementary topics: Development practices, quality, and testing Software architectures, tools, and supporting infrastructure Formal foundations and emerging trends
-
Objectives
Objectives
Understand the main software development processes, including both classical and agile approaches. Be able to plan a software project, integrating theoretical foundations with practical application. Know how to document the artefacts produced in each phase of the software development life cycle. Gain an overview of the main software architecture design approaches. Understand and apply good coding practices. Acquire the fundamentals of test design, execution, and documentation. Identify the main maintenance activities and the associated supporting tools. Develop practical skills in the use of CASE tools to support the different phases of the software development life cycle.
-
Teaching methodologies
Teaching methodologies
Development and documentation of the software process based on projects (Project-Based Learning), integrating content from other courses (Databases and Web Programming), and including presentations of complementary topics of particular interest to the students.
-
References
References
Sommerville, Ian, Boston - Software Engineering, 10th edition, Boston, Pearson, 2016 Maxin, Bruce; Pressman, Roger - Software Engineering: A Practitioner's Approach, 9th edition, McGraw Hill, 2019 Guerreiro, Sérgio - Introdução à Engenharia de Software, FCA, 2015
-
Assessment
Assessment
Descrição dos instrumentos de avaliação (individuais e de grupo) ¿ testes, trabalhos práticos, relatórios, projetos... respetivas datas de entrega/apresentação... e ponderação na nota final.
Exemplo:
Descrição
Data limite
Ponderação
Teste de avaliação
dd-mm-yyyy
30%
Portfolio
dd-mm-yyyy
40%
(...)
Adicionalmente poderão ser incluídas informações gerais, como por exemplo, referência ao tipo de acompanhamento a prestar ao estudante na realização dos trabalhos; referências bibliográficas e websites úteis; indicações para a redação de trabalho escrito...
-
Mobility
Mobility
No





