Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Software Engineering (ES) - NOVA FCT βš™οΈ

Bachelor in Computer Science and Engineering (LEI) | 3rd Year - 1st Semester

This repository contains the documentation and project tracking developed for the Software Engineering (Engenharia de Software) course at the Faculty of Sciences and Technology of the NOVA University of Lisbon (NOVA FCT).

✍️ Authors

68681 - TomΓ‘s Alves - Alvesss04

65871 - Miguel Carmo - MCCProgrammer

67940 - Francisco Pereira - Loupaaa

68264 - Manuel Figueiredo - ManuFigas

68087 - Francisco Figueiredo - Franiquilador

68231 - Tiago Poeira - tpoeira123

πŸ“Œ About the Course and Project

The Software Engineering course focuses on the software development lifecycle, emphasizing agile methodologies, reverse engineering, software architecture, and code quality analysis

Project: Mindustry Open-Source Evolution 🏭

Project Description

The primary objective of this project was to reverse-engineer and extend Mindustry, an open-source tower defense game combined with resource management and Real-Time Strategy (RTS) elements. The team operated as a fictitious company tasked with understanding an unfamiliar, large-scale Java codebase to introduce new functionalities

Development was driven by a Scrum-inspired agile methodology, utilizing weekly sprints, a rotating Scrum Master role, peer-reviewed Git commits, and continuous tracking via Scrumboards and Burndown charts.

πŸ“‚ Project Milestones

  • Milestone 1 - Requirements Engineering: Definition of three non-trivial User Stories to extend the game, alongside the initial project management setup.
  • Milestone 2 - Software Architecture & Quality: Reverse engineering the existing codebase. This involved creating Use Case diagrams, assessing codebase metrics (using IntelliJ's Metrics Tree), identifying Gang of Four (GoF) Design Patterns, and reporting Code Smells with concrete refactoring proposals.
  • Milestone 3 - Implementation & Testing: Writing the Java code to implement the proposed user stories directly into the Mindustry codebase. This phase included adding unit tests, producing detailed Class and Sequence diagrams, and creating a final video demonstration.

🧠 Concepts and Acquired Skills

  • Agile Project Management: Practical application of Scrum methodologies, sprint planning, and backlog management.
  • Reverse Engineering: Navigating, understanding, and modifying a large, undocumented open-source Java repository.
  • Software Design Patterns: Identifying and analyzing GoF patterns to ensure scalable and maintainable object-oriented architectures.
  • Code Quality Assurance: Utilizing software metrics to detect vulnerabilities and actively refactoring code smells.
  • UML Modeling: Designing Use Case, Class, and Sequence diagrams to document system behavior, modularization, and exceptions.

πŸ”— Repositories

πŸ“„ License

Copyright Β© 2026 Alvesss04. All Rights Reserved.

About

FCT NOVA - ES - Software Engineering (Engenharia de Software)

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors