SoftwarePractice.org: Home | Courseware | Wiki | Archive

Team 3: Gurgle Earth/Milestone 1: Software Architecture Document

From SoftwarePractice.org

Contents

Introduction

This document covers the early architectural stages of the Gurgle Planet software system. This document's intended audience is for software developers.

System Overview

Purpose

The system to be developed will be a global resource monitoring system, which can be used by the policy makers to find out where resources are being created and consumed.

Context

It is the year 2045. The earth’s resources are at its lowest and its ecology is collapsing. This will continue to happen despite progress in the management of natural resources over the past 50 years.

Leading world powers have agreed change their own consumption in the interests of a global solution. Our company is one of several that has been asked to propose solutions to one part of this problem: a global resource monitoring system.

Objectives

The system must be able to manage and detect classes of ecosystem and the presence of every species of plant and animal.

Water and soil quality data must be collected and analysed.

Oil reserves must be detected and mapped out, as well as all other minerals.

Waste management data needs to be obtained and tracked.

Consumption patterns also need to be analysed.

Effective use of the abovementioned information will require a human interface that conveys the right information at the right level of detail.

If possible, data will be obtained surreptitiously. There will be use of fly-over aircraft, “smart dust” wireless sensors, and satellite imagery in the visible, infrared, and radio spectra.

The Google Earth (a system developed 40 years earlier) will be used as a model for an effective interface.

Stakeholder Narratives

Policy Makers

Peter Watson - Policy maker representing the ActNow Association
Peter works on the board of representatives elected from a range of stakeholders including the Government, Corporations, Scientists, and Environmentalists. This board uses data from Gurgle Planet to decide on policies required in the interests of a "global solution". He wishes to be able to not only view the current situation of our planet but also how it has changed over time. This will allow him to view the policies effects, if any, on the world and make more appropriate decisions in the future.

George Patterson - Elected chairman of Policy makers
George, elected by other policy makers as chairman of the board, will have the final say in all policy decisions. This board will use the data from Gurgle Planet to decide on policies required in the interests of a "global solution". At policy meetings he will be presented with policy proposals from other policy makers. In order to effectively decide on these policies he must be able to verify that information used in the policies are correct. He wishes to compare the information on the policy proposal reports with the information presented on Gurgle Planet.

Governments

Michael Ward - Minister of Environment, Australia
Michael is an elected member of parliament, whose sole goal is to ensure that Australia is aware of its resource consumption, and ensures that Australia is following standards. Michael receives reports on the usage of natural resources each month. The report comes with statistical data(captured by Gurgle Planet) based on creation and consumption of resources in Australian land / water. Through the report, Michael prepares relevant documents from the report, and presents them at the meeting with resource conservation/development staff. Through the meetings, Michael is able to make better recommendations and proposals for resource usage with the help of Gurgle Planet.

Companies

John Do - CEO of BHP Billiton Limited
John is concerned about Gurgle Planet's impact on his business. Competitors will have access to unmapped resources. Smaller mining companies won't have to invest as much as they usually would in finding mineral rich locations. Competitors will also have information on his companies resource intake. Being the leading company in this field he is worried it might lose its competitive edge.

On the other hand, he likes the idea that his company would be able to better monitor its usage of minerals. Such as finding out where there are more resources and thus saving a lot of money. Not only is he saving money but also abiding with Government regulations.

Scientists

Beezul Bub - Wildlife Environmentalist
Beezul uses the Gurgle Earth to monitor variance of fauna in human occupied zones, in hopes to determine whether the settlement are disrupting the ecosystem by overconsumption, or polluting natural habitat. The system also allows real evidence to be used against fishing nations who overfish areas considered to be critical and needs protection, and thus condeming the notion of 'the sea has an unlimited resources'.

Technicians/Administrators

Dire Wolf - Data entry operator
Data entry operation Dire uses the gurgle earth system to manually enter hand measured data which are to be entered into the sytem for displaying. She clearly points out on the user interface, which is the focus on allowing high data entry rate. Usage of shortcuts enhances this entry rate further since frequently used commands are placed in high visibilty areas on the screen.

Styk Scout - datacentre administrator
Styk regularly monitors the gurgle earth health system; he ensures the system maintains uptime, the utilisation is within safe boundaries, and errors are being picked up and corrected before being commited to the storage systems. Styk views all these parameters through a web interface which allows unprecedented access in terms of locality, and allows for easier scalability in adding new and retiring non-relevent parameters.

Engineers/Developers

Chris Dan – security system engineer
Chris Dan is an engineer hired for Gurgle Planet project and is responsible for maintaining and monitoring user information and data on Gurgle Planet system. He updates the security system with new or modified user details. Chris gives new users their new accounts containing username and password, but does not have the authority to create new accounts for data entry personnel. Chris reports to the project manager when a new recruit for data entry has been selected.

Brian Green – software developer
Brian Green queries the project manager for the budget detail on the Gurgle Planet project and reviews the costs associated. Brian performs requirements elicitation after discussions with other developers and potential users. He is responsible for developing and testing of the software behind Gurgle Planet project. Brian is also in charge of maintaining this software.

User Needs

Usage Narratives

Petter Solberg - One of many Policy Makers

Persona: Elected policy maker representing corporations. Makes policy proposals with corporations in mind and presents them at policy meetings
Petter logs into Gurgle planet every morning at work. He is presented with a world map that is colour coded to show the state of the certain sections. He clicks on the locations of interest or enters in coordinates to view detailed information. He is presented with a graph showing changes over time in terms of resources. From this he is able to make policy proposals at the next policy meeting.

Isaac Altium - Board Member of BHP Billiton Limited

Persona: One of several directors in BHP Billiton. Contributes to company decisions at the highest level.
Isaac logs into Gurgle planet before his next board meeting to check his company’s resource usage. He is presented with a world map that is colour coded to show the state of the certain sections. He clicks on the shortcuts to locations owned by BHP or enters their coordinates to view detailed information. He clicks the graph shortcut which presents a graph showing changes over time in terms of resources and other related information. From this along with other information from his own company he is able to contribute more effectively at his meetings.

Tim Wyler - Environmental analyst for WWF

Persona: Tim provides analysed data to help support his research.
Tim loads the Gurgle Planet website and logs into his account. He collects new/changed data then he compares and analyses that with previously stored data in his account to verify any discrepancies. Based on previous and current information he makes a simple assumption of resource usages for next days. He submits newly collected data to Gurgle Earth data entry team. He checks to ensure the data submitted to the team is the same. Time proceeds to have Gurgle Planet website generate a simple graphical report based on Tim’s preferences and he then prepares for meeting with his team.

Quark Bolt - environmental scientist

Persona: plans to monitor the effects of consumption of minerals in relation to electrical consumption, thus use it to present in written journals.
Quark begins the day by logging on to his desktop. He logs into the gurgle earth website and is presented a view of earth as a 2D map, which is detailed in geographic topologies other global events occuring on a daily basis. He clicks on a location and the name of the location is returned. He clicks on a shortcut which shows mineral resources in the area, and clicks on another shortcut to bring up electrical usage of the area. He clicks on the graph shortcut to bring up the graphs presentation interface. He clicks on the comparison button and retrieves the data from last month and compares the data of this month. He then exports the results to a file which can be later used by other applications.

Janni Frust - system data entry operator

Persona: Janni regularly inputs animal sighting counts into the Gurgle Earth database.
Janni enters her office, and turns on her computer. She logs on, and runs the gurgle earth system. She is presented with the data entry screen, and begins entering the co-ordinates of the area she has been assigned to enter data for. She gazes at her sheets of data that has been collected by observers within that area. She begins inputting the data into the system, and saves after finishing the input.

Myron Vault - system administrator

Persona: periodically checks system health to ensure system is stable
The gurgle earth system is used constantly, non stop 24 hours, so regular monitoring is required. Myron opens up a webpage which links to the gurgle earth system health page. Myron logs in and the browser loads a page containing all paramaters of the system status. The page shows the utilisation of the processing and memory, utilisation of the network bandwidth, heat and humdity of the room where the computers are stored, and overall hard disk storage used and utilisation. Myron clicks on a single parameter, and is redirected to a page containing further information on the clicked parameter. It shows a graph of the parameter over a 48 hour period, and also a log of errors that has happened within that 48 hour period.

Virginia Painter - Aircraft flyover data entry operator

Persona: Employee in our company assigned to collecting the aircraft flyover data from the Satellite stations and putting this into Gurgle Planet.
Virginia logs into Gurgle Planet in her office every morning through the intranet. She is presented with the flyover aircraft data entry form. She views the flyover aircraft image and enters in the required information such as coordinates, date and time of capture and temperature. She uploads the related image accordingly and saves her work. She checks the information automatically processed by Gurgle planet as a public user to verify everything is correct. She then moves onto the next image and continues until her batch is complete. This information may then be viewed by scientists and observational changes may be recorded.

Poppin Fres - security system engineer

Persona: Poppin maintains and monitors the security system
Poppin logs onto Gurgle Planet and is presented the administrator's console. The console can only be viewed by Poppin or other authorized personnel. The window contains some numerical data which represents how many users added / deleted / modified since his last login. He verifies the parameter and updates security system accordingly. After that he monitors the security system so intrusions.

Jules Fern - software developer

Persona: Jules performs tests regularly and reports it to project manager
Jules runs Gurgle Planet every week to test system response. To perform the test, Jules logs in as a normal user and checks if system is responding within performance criteria. After all criteria testing has been completed, a form is written and submitted for the project manager to sign off or raised up as critical.

Quality Narratives

Security

Persona: Susan is a policy maker representing GO Planet, an organisation aiming for a greener future.
Susan has a particular interest in the security of the Gurgle Planet system. She is concerned with the integrity of data inputted into Gurgle Planet, in respect to political and commercial interests. It is important that there are ways to protect the integrity of data in the system. Not only does the data have to be correct, it also has to be accurate.

As a policy maker she has some knowledge of how data is gathered and entered into the system. The bribery of data entry operators can not be ignored and she wishes to have this addressed as a security issue. She also suggests that there should be a review panel designed to approve or reject data which can not be obtained surreptitiously. Malicious and unauthorised access to Gurgle Planet was also on her list of security concerns.

There were some suggestions she made in relation to these security concerns. The aforementioned review panel would be one way to prevent false data being entered into the system. Another independent team should be formed to regularly check data on the system in case false or inaccurate data still managed to get through. Another suggestion was to physically protect the system and where the data is stored.

Reliability

Persona: Chris Taylor is one of the researchers working in the Bureau of Meteorology.
Chris works heavily with data, and relies the data to be always available, and at real-time response. He regularly reviews the Gurgle Earth System based on these attributes.

Chris requires the system to be effectively online 24 hours a day, this to ensure his work can remain accurate in predicting climate change. Having the system remaining stable also allows the system to be used by other people at any given time.

System responsiveness is important, as slow response can affect mission-critical systems that rely on the data. Responsiveness can be affected by the amount of users, hardware limitations or inefficient programming. For Chris, it means if immediate changes are being recorded, he therefore assess problems as they appear and notify other important people of critical situations.

Conceptual Architecture

Initial Use-Case Maps


Figure 1 - Initial Conceptual Diagram - Version 1


Figure 2 - Initial Conceptual Diagram - Version 2

Image:Initial Conceptual Diagram Version 3.jpg
Figure 3 - Initial Conceptual Diagram - Version 3

Intranet Connection
Gurgle Planet’s internal organisations network infrastructure. It is assumed this would be secure and private.

Hardware Connection
Connections to the fly-over aircraft, “smart dust” wireless sensors, and satellite imagery in the visible, infrared, and radio spectra are all represented here.

External HTTP Connection
This represents the internet, in which all external data entry operators and clients connect through.

Public Interface
This is the interface viewable by all. Since this system is only viewable by authorised users, users will ideally be presented with login options. Unauthorised users will not be able to progress.

Administration
This component allows for the administrator to modify Public Data. The ability to modify user accounts, check system health, view logs and modify data would be available here.

Client Interface
This component is the interface for general users. Information requested from here would be sent as queries. The queries would primarily request information on:
• World map;
• Zone details;
• Soil and water quality;
• Minerals;
• Ecosystem;
• Waste management;
• Consumption patterns.

User Security
The login details received from Public Interface allows for this component to determine the user type (i.e. general user, external data entry operator or administrator).

Internal Data Entry
The entry of data done within the Intranet is represented here. This data is entered by our companies data entry operators and would already be formatted and verified.

External Data Entry
This component represents the entry of data into the system. Only authorised data entry operators would be involved in this process.

Data Acquisition
The collection of raw data from all hardware devices is represented here. Data would then be sorted in Data Sorting component.

Refer to “Hardware Connections” in this section for more detail on hardware devices.

Presentation Formatting
This component looks after the formatting and presenting of data to the Client Interface. From the information requested, this component should know how what information is to be obtained from the Public data.

Manual Processing
Unprocessed data will be interpreted and verified here manually. The processed data will be stored in Public Data.

Data Sorting
Any data coming into the system will be sorted before it goes to any persistent storage.

Public Data
This storage component represents all data available for the general user. All processed and verified data will belong here. Other data include user accounts, system logs and system health readings.

Unprocessed Data
This component represents all stored data pending to be observed and interpreted or verified before they can be processed into Public data.

Elaborated Use-Case Maps

Event Traced

Image:Event Traced Conceptual Diagram.jpg
Figure 4 - Event Traced Conceptual Diagram

logIn
The user logs in with their details using the Public Interface. The details will be checked by User security where it will determine the user type (i.e. client, administrator or data entry operator.) The user will be presented with the appropriate interface. He/she is now logged in.

Process:
• Retrieve log in details
• Verify user details
• Load the correct interface for the type of user

viewWorld
As the Client interface loads it will automatically query the public data for the world map. This data will be formatted and presented on the client interface. Other queries such as soil and water quality, waste management, minerals and zone information follow the same process as querying for the world map.

Process:
• Retrieve request/query
• Find required data
• Format the data into information
• Present the information on the client interface

modifyData
Administrator sends commands to modify Public Data. This includes account management, system health checks, system logs and system data.

Process:
• Retrieve command
• Locate data
• Modify data
• Present results

aquisitionEntry
Data collected through the hardware connection will be sorted as either unprocessed or processed depending on whether or not the data needs to be interpreted through physical observation. Refer to externalEntry for unprocessed data or internalEntry for processed data.

Process:
• Accept data from hardware connection
• Sort data as either public or unprocessed
• Store either data in their relevant locations

externalEntry
User enters data from an external connection. Data sorting will detect this data to be external and automatically store it in Unprocessed Data. It will set up a task for the review team to process at a later time. Once reviewed and processed manually it will be moved to Public Data.

Process:
• Present data entry form
• Sort data as external
• Store unverified data into Unprocessed data
• Schedule task for review team
• Process data manually and move to public data

internalEntry
Data entered internally is already verified by the company’s review team, hence it will be sorted and go straight to Public Data.

Process:
• Present data entry form
• Sort data as verified
• Store verified data into public data

Stereotyped

Image:Stereotyped Conceptual Diagram.jpg
Figure 5 - Stereotyped Conceptual Diagram

Additional/Modified Components
The Public data has been divided up as follows:
• System (includes system health, logs, backup)
• Ecosystem
• Water and Soil Quality
• Minerals
• Consumption Patterns
• Waste Management

Data Models


Figure 6 - Data Model Diagram

User
Holds the accounts of the users of the system. These can be both internal employees (such as administrators and data enterer's), and external contributers who register with the Gurgle Planet system.

User Privilege
Contains the accessible regions of the Gurgle Planet Eco data store applicable per employee.

User Type
Lookup table for different types of users and security levels (such as administrators, data enterer's, standard querying users).

System Log
Records system log-in activity. This applies to human users of the system and data collecting machines who connect through pre-established protocols.

Machine
List of data collecting machines registered with the system, along with their purpose.

System Health
Provides a log of status information regarding the internal Gurgle Planet network infrastructure, ranging from health checks and status reports of servers, workstations and other dependable devices.

Zone
Defines a sizable region of the Globe, where location and environment quality data is contained. Zones can be set on political boundaries such as countries and stages, or can be abstract (user defined) according to the systems needs.

Location
Defines a smaller manageable size of a Zone, where specific addresses can be referenced to.

Species
Classes of life on the planet from plants to animals.

Animal
List of animals and their state resident in a specified location or zone.

Plant
List of plants and their state resident in a specified location or zone.

Organistion
Organisations who are registered with Gurgle Planet or are researched, ranging from contributors, associates or subjects to determine their waste patterns.

Waste
Types and amounts of waste generated by organizations.

Mineral List
Lookup table of all the different types of minerals that can be found.

Mineral Store
Quantity and quality readings for mineral deposits associated with a location or zone.

Water
Quantity and quality readings for water associated with a location or zone.

Soil
Quantity and quality readings for soil associated with a location or zone.

Air
Quality readings for air and pollution associated with a location or zone.

Execution Architecture

Image:Execution Diagram.jpg
Figure 7 - Execution Diagram

The above diagram represents the overall key events that occur within the Gurgle Planet System. The representation shows components that require specific needs, for instance, the server submits a query to the database, and expects a reply, since this demonstrates reliability of the system; Data must be all there when shown on the user interface, we cannot have null values. This is also held true for the user interface and its communication with the server. But the server can delay transactions between the data handler, because the data handler deals with conditioning the data in the database, or doing maintenance routines.

Data being inputted into the system as external entities, can be regarded as non-critical, since the database can work on it based on priorities and other real time constraints.

Implementation Architecture

Image:Implementation Diagram.jpg
Figure 8 - Implementation Diagram

The architecture as depicted as above represents what components are used, and their interactions with each other. The automated data acquisition component has its separate routine, to ensure it doesn't affect user interfaces, and to streamline data throughput. Having the user interface, data acquisition and databases separated by network allows for scalability, since network infrastructure is robust and can be upgraded as demand grows.

Java is the framework for the user interface, as Java is multi-platform, allowing for maximum userbase, and minimum coding for different platforms. MySQL is used to handle database transactions, and is open source, so its widely supported. The use of Apache to handle HTTP requests is because of its platform stability (it is used by more than 90% of all world HTTP servers) and its modularity which allows for different web applications to be deployed.

Justifications on Architectural Decisions

As outlined in section 4.2.1, security is considered a high priority quality. Considering the information this system presents and the nature of how this information will be used, the integrity of the data is critical. The use of intranet based access to the server system by dedicated data entry operators would eliminate most falsification of data. Other means would be to employ teams to continually review the data at certain points in the system. All data from external sources will be reviewed before storing them into public-related data. The aforementioned decisions go beyond the scope of the software system but are directly related.

General users or clients are only given access to the querying and recieving of information. Information in this instance is data that has been formatted into tables or some structure and presented in the form of text, images and/or graphs.

Each and every external data entry operator will be given a specific zone and typeset (e.g. Ultimo and Water and Soil Quality respectively.) This stops other data entry operators from entering data they are not authorised to do so.

Internal data entry operators are commited to keeping the integrity of data. They will be able to manually format and verify data as they enter the data. This allows for internal entry of data to bypass sorting and go straight to public data.

Data obtained externally through hardware connections such as satellite connections is assumed to be correct and will be granted access to public data.

The process of moving unprocessed data to public data involves reviewing the data for its integrity and formatting the data into the correct structure.

Any data entered in will be timestamped and linked to the user who entered the data. This allows for traceability and accountability.

References

1. Lian Loke and John Reekie, Autumn Semester, 2007, Software Architecture, Lectures at University of Technology, Sydney.

2. John Reekie and Rohan McAdam, March 2006, Software Architecture Primer, Angophora Press.

3. Campwood Software , 2004, Execution Architecture, http://www.campwoodsw.com/mentorwizard/mwoverview/index.html?imported_topic9.htm [Last accessed 20/04/07]

4. Sun, 2004, J2SE 1.5.0 API Documentation, http://java.sun.com/j2se/1.5.0/docs/api/index.html[Last accessed 22/04/07]

5. [unknown] GEOGRAPHY4KIDS.COM, http://www.geography4kids.com/extras/dtop_space/moonearth.html [Last accessed 22/04/07]

Personal tools