This repository contains a complete Requirements Engineering project for a university exam.
The main report is in English, and this README provides a clear guide to what was designed, why it matters, and how to navigate the artifacts.
- Project Goal
- What Was Actually Delivered
- Engineering Method Used
- English Summary
- Why This Repository Is Useful for Requirements Engineering Study
- Learning Outcomes
- Repository Map
The assignment was to model a logistics system that tracks fragile and sensitive products during shipment and storage, with a focus on:
- route and timing visibility
- environmental monitoring (temperature, humidity, vibrations)
- trustable and verifiable tracking data
- secure and role-based data access
- scalable and reusable IoT infrastructure
- A full report:
RequirementsEngineeringReport.md - A complete Objectiver model:
IngDeiRequisiti.ob - A full diagram set in
images/covering all analysis views
This is a design and analysis repository (not an implementation repository).
The work applies Goal-Oriented Requirements Engineering (GORE):
- define high-level goals
- refine them into sub-goals
- identify obstacles and risks
- map goals to operations, responsibilities, and behavior
This creates end-to-end traceability from requirements to system structure and dynamic behavior.
The report is organized into the following analysis layers.
Main goals include:
- CreateOrder
- MinimizeIoTCost
- WriteReadTrackingData
- EnsureStakeholderTrust
Each goal is refined into sub-goals and linked to obstacles (for example invalid addresses, sensor failures, upload issues, unauthorized access) with mitigation strategies.
Representative diagram:
Core domain entities:
- Shipment
- Package
- IoT Device
- Tracking Event Log
- Server
The model shows how shipment data is created, associated, transmitted, and stored.
System responsibilities are distributed across specialized agents:
- AlertManager
- AssetManager
- IntegritySecurityController
- TrackingSoftware
- AuthorizationAuthenticationSystem
This clarifies who monitors what, who controls what, and which operations each agent performs.
Goals are operationalized through concrete actions such as:
- checkAddress
- collectData
- uploadData
- publishData
- provideAPI
- checkRole
The diagrams connect operations to entities and supporting requirements.
Dynamic behavior is modeled with:
- Shipment lifecycle state machine
- IoT device lifecycle state machine
- Sequence flow for anomaly detection and alert handling
This repository can be used as a reference example for a Requirements Engineering course project. It collects the main analysis views in a single set of artifacts and shows their relationships.
- stakeholder needs can be mapped to explicit requirements
- goals, risks, responsibilities, operations, and behavior can be represented consistently
- diagrams can be used to support discussion and verification
- trust, security, and data quality can be treated as part of system definition
For study purposes, the project can be read as an example of:
- goal modeling and goal refinement
- obstacle identification and related mitigation choices
- requirement traceability across multiple views
- responsibility allocation among software agents
- dynamic behavior representation through state and sequence diagrams
| Path | Content |
|---|---|
RequirementsEngineeringReport.md |
Main report |
IngDeiRequisiti.ob |
Source model for Objectiver (binary archive). |
images/goalModel/ |
Goal and obstacle diagrams. |
images/agent/ |
Responsibility view diagrams. |
images/operation/ |
Functional/operationalization diagrams. |
images/behaviourView/ |
State machine and sequence diagrams. |
images/ObjectModel.PNG |
Structural domain model. |
LICENSE |
MIT License. |
- Read
RequirementsEngineeringReport.mdfor complete details. - Open
IngDeiRequisiti.obin Objectiver to inspect the editable model. - Browse
images/for a quick visual walkthrough by view.
- Bazzotti Edoardo (VR518747)
- Xiao Simone (VR519027)
Report date: 04 June 2025.
Distributed under the MIT License. See LICENSE.