Base Knowledge
Students should have fundamental knowledge and practical experience in software programming, including software modeling and design, usability, front-end web development with React, and Java programming.
Teaching Methodologies
The course revolves around a software development project, carried out in coordination with the Distributed Programming (PD) course: GPS teams develop a web application built with React, which consumes REST services developed by PD teams.
The theoretical classes aim to present the topics covered and the corresponding study materials.
The lab classes are intended for learning the processes and tools, as well as for holding meetings between teacher and working groups, including project and sprint planning meetings, review and retrospective meetings, backlog refinement meetings, progress monitoring meetings, etc. These meetings provide clarifications and collect feedback on the progress of the work, the materials produced and the tools used.
Students carry out the work weekly, in groups, both inside and outside the classroom, and consult the teachers throughout the week, either in person or via forums, chat and video call. During the progress meetings, the groups participate in classroom sessions and, in exceptional cases, may participate via video call.
The work consists of planning, organizing, carrying out and monitoring an agile software development project, which must be carried out throughout the semester, and is permanently monitored.
The course is mainly supported by Microsoft Teams and GitLab, which are used for communication between students and teachers and for project management support. Each team maintains its own GitLab repository for the project’s documentation, code and tests.
The use of generative Artificial Intelligence tools is permitted and encouraged throughout the project (documentation, code and tests), subject to responsible-use principles – verification, understanding, disclosure, and efficient use.
On the MS Teams platform, the following are regularly made available:
- The tasks to be completed by each group and/or student, both within the scope of the project and in preparation for the theoretical classes
- The submission activities for the deliverables, as well as the feedback and evaluation of each group
- Other communications, through discussion forums and chat
Learning Results
The Software Project Management course aims to provide students with a practical and integrative experience in software development. In this course, students apply the knowledge acquired throughout the study programme, in areas such as requirements, software architecture, usability, programming and testing, working as a team to develop a complete software project, in coordination with back-end external teams. The focus is on the application of good software engineering practices, project management and agile methodologies, promoting collaboration, informed decision-making and the delivery of a functional and quality software product.
Upon completion of this course, students should have acquired the following skills:
- Describe software development as an engineering discipline, using appropriate terminology;
- Carry out a software project as a team, following defined processes and good software engineering practices;
- Plan a software development project using estimates, task scheduling, and resources’ allocation;
- Apply the best practices of quality management, risk management, team management and stakeholder management;
- Manage a software project, monitoring and controlling its progress, ensuring deliveries within the planned deadlines and costs and managing stakeholders’ expectations;
- Demonstrate knowledge of software development processes and methodologies, as well as the principles and fundamentals of improving software processes to new situations;
- Apply generative Artificial Intelligence tools responsibly and reflectively in software development, retaining understanding of and responsibility for the code and documentation produced.
Program
- Traditional and Agile Software Development Lifecycle
- Scrum, Waterfall, hybrid models
- Software project planning
- Vision & Scope, requirements, user stories, release and sprint planning, estimation
- Agile software project management
- backlog management, risk management, team and stakeholder management, sprint reviews
- Quality management
- quality plan, reviews, testing, version management, process improvement, CI/CD
- Software architecture and design
- domain modelling, API design, service integration patterns
- Integration with external services
- consuming REST APIs, LLM API integration, API contract definition
- Responsible and effective use of AI in software engineering
- prompt engineering, AI agents, output verification, critical evaluation, ethical considerations
Curricular Unit Teachers
João Carlos Costa Faria da CunhaGrading Methods
The final grade consists of two components:
- Project - 12 points
- Theoretical evaluation - 8 points
The Project grade is based on the mark assigned to the group, adjusted by an individual factor that reflects the student's performance throughout the semester and peer assessment, resulting in an individual grade.
The group grade is awarded continuously, distributed across the following 7 evaluation moments:
- KOM (Kick-Off Meeting) - 20%
- 5 sprints - 5x12% = 60%
- Final presentation - 20%
The evaluation of the Project is exclusively continuous, with no possibility of grade improvement.
Additionally, there is a non-mandatory individual bonus: a student, or small group, may present a practice or technical solution relevant to the project, which may be worth up to 0.5 points on the individual grade, without affecting the group grade or replacing any deliverable.
The grade of the Theoretical component will correspond to the better of the following:
- The exam grade
- Theoretical classes activities (25%) + exam grade (75%)
Students may improve the grade of the Theoretical component in the Appeal Exam or Special Exam, if they are eligible to take them, and may retain the marks obtained in the theoretical classes activities.
Additional oral exams may be used as a further evaluation tool whenever necessary to clarify doubts or address suspected cases of fraud or plagiarism.
Obtaining 40% or more in each component is mandatory for passing the course.
Internship(s)
NAO
Bibliography
Recommended
- Schwaber, K., & Sutherland, J. (2020). The Scrum guide: The definitive guide to Scrum: The rules of the game. Scrum.org. https://scrumguides.org/docs/scrumguide/v2020/2020-Scrum-Guide-US.pdf, https://scrumguides.org/docs/scrumguide/v2020/2020-Scrum-Guide-Portuguese-European.pdf
- Shore, J., & Warden, S. (2008). The art of agile development. O’Reilly Media. 1A-7-78 (ISEC)
- Stellman, A., & Greene, J. (2006). Applied software project management. O’Reilly Media. 1A-7-73 (ISEC)
- Sommerville, I. (2011). Software engineering (9th ed.). Pearson Education. 1A-7-107 (ISEC)
Complementary
- Project Management Institute. (2017). A guide to the project management body of knowledge (PMBOK guide) and the standard for project management (6th ed.). Project Management Institute. 2A-4-82 (ISEC)
- White, J., Fu, Q., Hays, S., Sandborn, M., Olea, C., Gilbert, H., Elnashar, A., Spencer-Smith, J., & Schmidt, D. C. (2023). A prompt pattern catalog to enhance prompt engineering with ChatGPT. arXiv:2302.11382.
- Mircea, M., Schmid, E., Droste, J., & Schneider, K. (2026). How do software engineering students use generative AI in real-world capstone projects? An empirical baseline study. EASE 2026, Glasgow, Scotland, UK.