Project
MOD
Academic software engineering project focused on the design and implementation of a relational database system for managing a software repository and its associated testing activities.
The project addresses the problem of organizing software projects, their internal structure, versioning, and test execution data in a coherent and traceable way, following formal database design methodologies.
The system models a software repository where projects are described through metadata stored in a database, while the actual source code is maintained in the file system. Each software project can have multiple releases, and each release is structured into modules or packages, which may further contain classes and methods. This hierarchical representation allows the system to reflect real-world software architectures while keeping the database focused on metadata and relationships rather than source code storage.
A central aspect of the project is the integration of software testing management into the repository model. Test cases are treated as first-class entities and are associated with specific projects and releases. Each test case can be executed multiple times, and the system records detailed information about every execution, including execution number, date, outcome, and author. This enables historical tracking of test results across different versions of the same project.
The database is designed to also track which software structures are affected by each test execution. Through dedicated association tables and database triggers, the system automatically records the packages, classes, methods, or modules involved whenever a test is executed. This feature supports impact analysis, allowing developers to understand which parts of the software are exercised or affected by specific tests.
From a design perspective, the project follows a rigorous methodology. It includes a full conceptual design based on UML class diagrams, later restructured to reduce redundancy and improve normalization, as shown in the redesigned class diagram. This is followed by logical design, resulting in a complete relational schema with primary keys, foreign keys, integrity constraints, and check constraints. Advanced database features such as triggers are used to enforce business rules and maintain consistency automatically.
The logical model is implemented using SQL, with explicit constraints to ensure data validity, such as controlled values for structure types and test outcomes. Example datasets and representative SQL queries are provided to demonstrate typical use cases, including retrieving project releases, analyzing test outcomes over time, and aggregating testing data per project.
To complement the database layer, a Java desktop application is developed as a user-friendly interface for interacting with the system. The application supports authentication, database connection configuration, and full CRUD operations on all entities. Through a structured graphical interface, users can insert, modify, delete, and search data while being guided by validation messages to prevent incorrect input.
Use arrows to browse media