DREAM is the final project for the Software Engineering 2 course of the Computer Science and Engineering Master in Politecnico di Milano held in the accademic year 2021-2022. The goal of the project is building a platform meant to satisfy the needs of farmers, agronomists and policy makers of
Telangana, by sharing knowledge among farmers, tracking farmers’ production, allowing farmers to get help, supporting agronomist work, providing data-driven decision tools to agronomists and policy makers
The project is composed of three parts:
● Requirement Analysis and Specification Document (RASD)
● Design Document (DD)
● Implementation and testing (IT)
It is possible to access the three artifacts in the DeliveryFolder, while in the IT folder it is possible to access all the implementation and testing code.
DREAM (Data-dRiven prEdictive fArMing) is an elaboration of an ongoing initiative
promoted by Telangana’s government which is the 11th largest state in India, with about
35 million residents living in 33 districts.
Telangana’s economy, as the Indian economy, is mainly based on agriculture for the
majority conducted by smallholder farmers with less than 2 hectares of farmland.
More than a fifth of the smallholder farm households are below poverty and in the
following years the situation is going to be worse due to climate change. A 4%-26% loss
in net farm income is expected, together with an increase in the food demand as a
consequence of the forecasted population growth.
What Telangana wants is to prevent hitches on their food supply chain that are likely to
occur during critical situations (COVID-19 pandemic is a clear example) by adopting
data-driven policy making and optimizing as much as possible the productivity of their
fragmented agricultural production.
In order to achieve its goal the Telangana’s government needs to assemble as much
meaningful data as possible and to be ready to help farmers in distress with ad-hoc
initiatives, possibly making farmers aware about forthcoming issues and teaching them
how to tackle them
DREAM is meant to satisfy the needs of farmers, agronomists and policy makers of
Telangana, reaching the following 5 goals:
● Sharing of knowledge among farmers
● Tracking farmers’ production
● Allowing farmers to get help
● Supporting agronomist work
● Providing data-driven decision tools to agronomists and policy makers
Chapter 1 gives an introduction about the purpose of the document and the
goals, with its corresponding specifications such as the definitions and
acronyms. Also the scope of the project is described, as well as the world and
shared phenomena. Finally, the revision history of the document and the
references are also available in this chapter.
Chapter 2 contains the overall description of the project. In the product
perspective are included the statecharts of the major functions of the application
and the model description through a class diagram, to better describe what the
project is meant to be. Product functions are also described, to better understand
the functionalities of the system. In the user characteristics section are explained
the types of actors that can use the application. Finally, the domain assumptions
are included.
Chapter 3 represents the body of the document. It contains the interface
requirements, which are hardware interfaces and software interfaces. Then, it
lists some scenarios to show how the system acts in real world situations,
followed by the description of the functional requirements, using use cases and
sequence diagrams. All the requirements necessary in order to reach the goals
are given, linked with the related domain assumptions. Lastly, the non-functional
requirements are defined through performance requirements, design constraints
and software system attributes.
Chapter 4 includes the formal analysis using alloy code, together with some
instances of the built model and the explanation of the performed analysis.
DREAM is a system that, from an architectural point of view, works and follows the client-server paradigm. The client is defined as a thin client, because it is totally dependent on the server, due to the fact that the logic of the system is implemented on it. The client is only responsible for managing the interaction between system and users. The server is defined as a fat server, because it is responsible for the data management and the logic of the system, as well as the interaction with external services.
Chapter 1 gives an introduction about the purpose of the document and the
goals, with its corresponding specifications such as the definitions and
acronyms. Also the scope of the project is described, as well as the world and
shared phenomena. Finally, the revision history of the document and the
references are also available in this chapter.
Chapter 2 describes the architecture of the system. In particular, this section
offers an overview of the system, then it deals more in-depth with descriptions of
the components of the system and how they are used in the application. Finally,
architecture and design decisions are better explained and justified.
Chapter 3 shows how the system appears to the users (mockups) using laptop
or mobile size screens and how the navigation inside the system is organized.
Chapter 4 has the purpose of connecting the RASD and the DD document. It
includes a mapping between the requirements and the design components that
are used to fulfill them.
Chapter 5 provides implementation, integration and testing details.
The purpose of this document is to describe the implementation and
testing of DREAM.
Chapter 1 gives an introduction about the purpose of the document and reports
a summary of the structure of the document
Chapter 2 listes the functionalities that are implemented in the software and
describes the programming languages and development framework adopted to
implement DREAM, analyzing both advantages and disadvantages of such
choices.
Chapter 3 describes the source code structure, both for the frontend and the
backend.
Chapter 4 is devoted to the testing part, and structure and procedure are
explained.
Chapter 5 provides specific details on the installation procedure.
Cognome | Nome | Codice Persona | |
---|---|---|---|
La Greca | Michele Carlo | [email protected] | |
Careddu | Gianmario | [email protected] | |
Zoccheddu | Sara | [email protected] |