-
Presentation
Presentation
The curricular unit presents the fundamentals of software engineering, in which the concepts are explained, integrated and related in order to facilitate communication between companies and their stakeholders (programmers, managers, business analysts, among others). At the same time, it presents a practical perspective that makes it possible to implement these concepts in the industrial reality, which requires the availability of effective and efficient software products. In the theoretical classes, all stages of the software development process are studied in detail, from a classic and agile perspective. In practical classes, the concepts are placed in the context of real problems with the use and experimentation of CASE that support the work of the software engineer. During the semester, students prepare a Project Plan describing a work for which they have already completed a requirements specification in the Systems Analysis and Design curricular unit.
-
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 Classic Software Development Processes Agile Software Development Processes Software Process Management Software Requirements Engineering Logical and Physical Design of Software Software Coding Software Verification and Validation Software maintenance Software Engineering Challenges Pratical part: The Project Plan HyperText Transfer Protocol (HTTP) JavaScript Document Object Model (DOM) UML state diagrams UML sequence and collaboration diagrams UML component and distribution diagrams Cyclomatic Complexity Unitary tests Complementary topics of software engineering
-
Objectives
Objectives
Know alternative ways to carry out the software development processes (classic and agile) Know how to plan a software project (from a theoretical and practical perspective) Know how to document all the artifacts resulting from each stage of the software development cycle Have an overview of the main software design architectures Know and apply good coding practices Get the basics of testing and documenting tests Know the main maintenance actions and associated tools Acquire practice in using CASE tools to support the various stages of the software development cycle
-
Teaching methodologies and assessment
Teaching methodologies and assessment
Software development and process documentation applying a project based learning approach with other courses (Data Bases and Web Programming).
-
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
-
Office Hours
Office Hours
-
Mobility
Mobility
No