Article Preview
TopIntroduction
During the past decades agriculture has experienced substantial structural and technological changes. Currently, agricultural production is organized around large farms that can afford applying new technologies. At the same time, social consciousness about environmental issues is very strong. Land management is a complex process and to manage it successfully it requires that special attention should be paid to environmental issues while designing and developing agricultural and environmental information systems.
On the one hand, the advent of the Internet has opened vast opportunities for communication and business opportunities within the agricultural and environmental communities. On the other hand, it has substantially increased the amount of information farmers and territory managers need to analyze and synthesize to successfully administrate all the multi-facets of the agricultural production and land management. This new complex environment requires new and complex approaches to carry on farm production and land governance. Complex systems are not easy to design and develop unless a rigorous methodology and the right tools are used. Therefore, it is imperative that modern software engineering approaches be used in agriculture and environment-related areas.
Since the earliest days of software engineering, many methodologies have been designed and used to create better software. An important event that significantly influenced the software engineering world was the use of visual modeling tools. Modeling is a well-known engineering discipline as it helps one to understand reality. Models of complex systems are built because it is difficult to understand such a system in its entirety. Models are needed to express the structure and the behavior of complex systems. Using models makes it possible to visualize and better control system’s architecture (Papajorgji & Shatar, 2004).
In the early 90s there were several modeling languages used by the software engineering community. The most well-known methodologies were Booch, Jacobson, (Object-Oriented Software Engineering) and Rumbaugh’s (Object Modeling Technique). Other important methods were Fusion (Coleman et al., 1994), Shllaer-Mellor (Shlaer & Mellor, 1988), and Coad-Yourdon (Coad & Yourdon, 1991). All these methods had different strengths and weaknesses. An important event occurred in the mid 1990s when Booch, Jacobson, and Rumbaugh began adopting ideas from each other that led to the creation of the Unified Modeling Language or as it is known best, the UML (OMG, 2009b). Details about UML will be presented.
They define a software development process as the set of activities needed to transform a user’s requirements into a software system (see Figure 1).
Figure 1. Software development process (Jacobson, Booch, & Rumbaugh, 1999).
The various “ingredients” needed in the process of developing computer applications are presented in Figure 2. This model is called the 4 Ps model (Jacobson, Booch, & Rumbaugh, 1999). This model shows that the Result of a Project is a Product which requires different types of ingredients:
- •
People (actors) in order to describe the analyzed domain and People to develop and manage the Project (analysts, designers, programmers, etc.).
- •
A method (Process) to conduct the development following a framework (Templates) defining, organizing and explaining the successive steps of the development.
- •
Tools to facilitate the expression of the needs, the modeling, the project planning, the programming, and so forth.
Figure 2. Computer application development (Jacobson, Booch, & Rumbaugh, 1999).