software requirements specification - university of...

77
UTEP Software Engineering 4311 Automatic Weather Station Database Software Requirements Specification Version 1.1 2/11 23 /2009 2009 UTEP Software Engineering

Upload: truongkiet

Post on 11-May-2018

216 views

Category:

Documents


1 download

TRANSCRIPT

UTEP Software Engineering 4311

Automatic Weather Station DatabaseSoftware Requirements Specification

Version 1.12/1123/2009

2009 UTEP Software Engineering

AWSD Software Requirements Specification

Document Control

ApprovalThe Guidance Team and the customer shall approve this document.

Document Change ControlInitial Release: 1/7/09

Current Release: 1/22/09Indicator of Last Page in Document:

Date of Last Review: 2/1/09Date of Next Review: 2/28/09

Target Date for Next Update: 2/25/09NA

Distribution ListThis following list of people shall receive a copy of this document every time a new version of this document becomes available:

Guidance Team Members:Dr. Steve RoachDr. Francois ModaveMs. Evelyn Torres

Customer: Dr. Craig TweedieDepartment of Biology 413 Biology [email protected] (915)-747-8448http://faculty.utep.edu/Default.aspx?alias=faculty.utep.edu/ctweedie

Change SummaryThe following table details changes made between versions of this document

Version Date Modifier Description1.0 1/7/09 Roach Initial release1.0e 1/8/09 Modave Added to definitions 1.3.1

Added analyze data and plot data to sec. 2.1.1Added sections 3.1.1.9 and 3.1.1.10Edited section 3.1.1.11

1.0h 1/23/09 Roach Reviewed data flags and analysis1.0h 1/24/09 Tweedie Reviewed sections 1 and 2, many minor edits1.0i 1/25/09 Roach Completed use cases and corrected analysis1.0j 1/26/09 Modave Added references in bibliography

Corrected reduction, analysis and data plot.1.1a 2/11/09 Roach Flagging specifications1.1a 2/23/09 Roach Revised flagging, added save analysis, removed Plone

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 1

AWSD Software Requirements Specification

TABLE OF CONTENTS

DOCUMENT CONTROL.............................................................................................................................1

APPROVAL.....................................................................................................................................................1DOCUMENT CHANGE CONTROL....................................................................................................................1DISTRIBUTION LIST.......................................................................................................................................1CHANGE SUMMARY......................................................................................................................................1

1. INTRODUCTION..................................................................................................................................5

1.1. PURPOSE AND INTENDED AUDIENCE.................................................................................................51.2. SCOPE OF PRODUCT..........................................................................................................................51.3. DEFINITIONS, ACRONYMS, AND ABBREVIATIONS.............................................................................6

1.3.1. Definitions.................................................................................................................................61.3.2. Acronyms and Abbreviations..................................................................................................10

1.4. OVERVIEW.......................................................................................................................................111.5. REFERENCES....................................................................................................................................11

2. GENERAL DESCRIPTION................................................................................................................12

2.1. PRODUCT PERSPECTIVE...................................................................................................................122.1.1. Product Features....................................................................................................................122.1.2. Descriptions............................................................................................................................132.1.3. Related Products.....................................................................................................................13

2.2. AWSD USE CASES.........................................................................................................................152.2.1. Use Case 1: Login.................................................................................................................16

2.2.1.1. Scenario 1: Login................................................................................................................................162.2.2. Use Case 2: Analyze Weather Data........................................................................................16

2.2.2.1. Scenario 1: Simple Search..................................................................................................................162.2.2.2. Scenario 2: Advanced Search.............................................................................................................172.2.2.3. Scenario 3: Save Search Query...........................................................................................................172.2.2.4. Scenario 4: Reduce Data.....................................................................................................................182.2.2.5. Scenario 5: Plot Data..........................................................................................................................182.2.2.6. Scenario 6: Download Data................................................................................................................192.2.2.7. Scenario 7: Analyze Data...................................................................................................................192.2.2.8. Scenario 8: Replay Analysis...............................................................................................................20

2.2.3. Use Case 4: Upload Data.......................................................................................................202.2.3.1. Scenario 1: Upload Weather Station Data File...................................................................................21

2.2.4. Use Case 5: Create or Modify Weather Station Profile.........................................................222.2.4.1. Scenario 1: Create or Modify Weather Station Profile.......................................................................22

2.2.5. Use Case 6: Edit Weather Data..............................................................................................232.2.5.1. Scenario 1:..........................................................................................................................................23

2.2.6. Use Case 7: Manage Users....................................................................................................232.2.6.1. Scenario 1: Manage Users..................................................................................................................23

2.2.7. Use Case 8: Notify Users........................................................................................................242.2.7.1. Scenario 1: Notify of Changed Query Result.....................................................................................24

2.2.8. Use Case 9: Register..............................................................................................................242.2.8.1. Scenario 1: Register............................................................................................................................25

2.2.9. Use Case 10: System Help......................................................................................................252.2.9.1. Scenario 1:..........................................................................................................................................25

2.3. ACTOR DESCRIPTIONS:....................................................................................................................262.3.1. Guest.......................................................................................................................................262.3.2. Registered User......................................................................................................................262.3.3. Data Provider.........................................................................................................................262.3.4. Administrator..........................................................................................................................262.3.5. Time........................................................................................................................................262.3.6. Datalogger Dataset................................................................................................................262.3.7. Weather Database..................................................................................................................272.3.8. User Database........................................................................................................................27

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 2

AWSD Software Requirements Specification

2.4. GENERAL CONSTRAINTS.................................................................................................................272.5. ASSUMPTIONS AND DEPENDENCIES................................................................................................27

3. SPECIFIC REQUIREMENTS............................................................................................................28

3.1. EXTERNAL INTERFACE REQUIREMENTS..........................................................................................283.1.1. User Interfaces........................................................................................................................28

3.1.1.1. Home Page..........................................................................................................................................283.1.1.2. System Help Page...............................................................................................................................283.1.1.3. Contact Us...........................................................................................................................................283.1.1.4. Register Page......................................................................................................................................283.1.1.5. Login Page..........................................................................................................................................283.1.1.6. Simple Search Page............................................................................................................................293.1.1.7. Advanced Search Page........................................................................................................................293.1.1.8. Results.................................................................................................................................................303.1.1.9. Data Reduction and Analysis..............................................................................................................303.1.1.10. Plot Data.........................................................................................................................................303.1.1.11. Display Plot....................................................................................................................................313.1.1.12. Save Search....................................................................................................................................313.1.1.13. Download.......................................................................................................................................313.1.1.14. Edit User Profile.............................................................................................................................313.1.1.15. Data Provider Home.......................................................................................................................313.1.1.16. Configure Station...........................................................................................................................313.1.1.17. Configure Data Flag Algorithm.....................................................................................................313.1.1.18. Upload Data....................................................................................................................................323.1.1.19. Edit Weather Data..........................................................................................................................323.1.1.20. Administrator Home.......................................................................................................................323.1.1.21. Manage Users.................................................................................................................................323.1.1.22. System Configuration.....................................................................................................................333.1.1.23. Generate Reports............................................................................................................................333.1.1.24. View Report...................................................................................................................................33

3.1.2. Hardware Interfaces...............................................................................................................333.1.3. Software Interfaces.................................................................................................................343.1.4. Communications Interfaces....................................................................................................34

3.2. BEHAVIORAL REQUIREMENTS.........................................................................................................343.2.1. Same Class of User.................................................................................................................343.2.2. Related Real-world Objects....................................................................................................35

3.2.2.1. History................................................................................................................................................353.2.2.2. Data Quality Flag................................................................................................................................363.2.2.3. Reports................................................................................................................................................36

3.2.3. Stimulus...................................................................................................................................363.2.3.1. Home Page..........................................................................................................................................373.2.3.2. System Help Page...............................................................................................................................373.2.3.3. Contact Us...........................................................................................................................................373.2.3.4. Register...............................................................................................................................................373.2.3.5. Login...................................................................................................................................................373.2.3.6. Simple Search.....................................................................................................................................383.2.3.7. Advanced Search................................................................................................................................383.2.3.8. Results.................................................................................................................................................383.2.3.9. Data Reduction and Analysis..............................................................................................................393.2.3.10. Plot Data.........................................................................................................................................393.2.3.11. Display Plot....................................................................................................................................393.2.3.12. Save Search....................................................................................................................................403.2.3.13. Download.......................................................................................................................................403.2.3.14. Data Provider Home.......................................................................................................................403.2.3.15. Configure Station...........................................................................................................................403.2.3.16. Configure Data Flag Algorithm.....................................................................................................413.2.3.17. Upload Data....................................................................................................................................413.2.3.18. Edit Weather Data..........................................................................................................................423.2.3.19. Administrator Home.......................................................................................................................423.2.3.20. Manage Users.................................................................................................................................423.2.3.21. System Configuration.....................................................................................................................42

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 3

AWSD Software Requirements Specification

3.2.3.22. Generate Reports............................................................................................................................423.2.3.23. View Report...................................................................................................................................423.2.3.24. Timer..............................................................................................................................................43

3.2.4. Related Features.....................................................................................................................433.2.4.1. Search..................................................................................................................................................433.2.4.2. Reduction and Analysis......................................................................................................................433.2.4.3. Plotting................................................................................................................................................433.2.4.4. Download............................................................................................................................................433.2.4.5. Upload.................................................................................................................................................433.2.4.6. Mange Users.......................................................................................................................................433.2.4.7. Register...............................................................................................................................................433.2.4.8. System Administration Reports..........................................................................................................433.2.4.9. Notify Users........................................................................................................................................43

3.2.5. Functional...............................................................................................................................443.2.5.1. Data Flagging......................................................................................................................................443.2.5.2. Upload Weather Data..........................................................................................................................44

3.3. NON-BEHAVIORAL REQUIREMENTS................................................................................................443.3.1. Performance Requirements....................................................................................................443.3.2. Qualitative Requirements.......................................................................................................44

3.3.2.1. Availability.........................................................................................................................................443.3.2.2. Security...............................................................................................................................................443.3.2.3. Maintainability....................................................................................................................................443.3.2.4. Portability............................................................................................................................................44

3.3.3. Design and Implementation Constraints................................................................................453.4. OTHER REQUIREMENTS...................................................................................................................45

3.4.1. Database.................................................................................................................................453.4.2. Operations..............................................................................................................................453.4.3. Site Adaptation........................................................................................................................45

4. APPENDIX A: SITE NAVIGATION MAP.......................................................................................46

5. APPENDIX B: METADATA FIELDS FOR HOBO STATIONS...................................................47

6. APPENDIX C: DATABASE................................................................................................................48

7. APPENDIX D: EXAMPLE QUERIES..............................................................................................49

8. APPENDIX E: SAMPLE UPLOAD DATASET...............................................................................50

9. APPENDIX F: CLASS DIAGRAM: DATA......................................................................................LI

10. Appendix G: Data Flagging..............................................................................................................lii

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 4

AWSD Software Requirements Specification

1. Introduction

1.1. Purpose and Intended AudienceThe purpose of the software requirements specification (SRS) is to clearly and precisely define the requirements of the Automatic Weather Station Database (AWSD) system. The intent of this document is to specify the requirements for AWSD and to serve as an agreement between the Software Engineering 4311 Guidance Team from the UTEP Department of Computer Science and the client, Dr. Craig Tweedie, from the UTEP Department of Biology. The SRS shall serve as a reference to the developers in software design, implementation, and maintenance.

1.2. Scope of ProductThe global climate is warming at a rate that has not been seen in at least the last 700,000 years [IPCC 2007]. Ecologists, such as Dr. Craig Tweedie [Tweedie 2008], of the Department of Biology at the University of Texas at El Paso, are interested in modeling and understanding global climate patterns and an understanding how these may impact biota. In particular, climate change scientists are interested in determining human impact on global and local climates, for example, how deforestation impacts climate patterns, or how local social and weather phenomena impact environmental quality, for example, do driving restrictions in summer result in lower local ozone levels? Researchers at UTEP’s Systems Ecology Lab (SEL) [SEL 2008] are engaged in understanding environmental change, plant structure, ecosystem structure, and function in extreme environments, particularly in arctic regions and the Chihuahuan Desert. Collection and analysis of climate data plays a crucial role in helping researchers understand past, present, and future climate change trends and climate change impacts.

As with many research areas, ecologists are gaining access to a broader range of increasingly accurate data that is increasingly being acquired at higher frequencies. However, several challenges have arisen. First, as data collection becomes less expensive and easier to obtain at higher temporal resolutions, more data is available. Dr. Tweedie is in the process of establishing weather stations at a variety of sites, including arctic regions and areas in the desert southwest. The increase in the volume of data has two direct consequences: how can the data be collected and distributed to the scientists who need them, and can the data be trusted to be reliable? Second, scientists require reasonable software support to reduce, manipulate, and interpret the data.

The AWSD system is a proposed software system to provide support for the collection, assessment, distribution, reduction, and manipulation of weather and climate data. The system will allow trusted data providers to upload data from weather stations from any location on Earth. It will give access to users to search for data, perform simple data reduction (such as computing the average daily temperature or total monthly rainfall), and perform several data analysis operations such as plotting the average temperatures at a variety of sites. Users will be able to download data sets and elect to be notified when new data sets are available or data that they have downloaded is modified. AWSD will be web based, providing global access to all of its capabilities.The System will support different levels of authority for the different types of users. A Registered User will be able to run search queries, view data resulting from search queries, analyze results, and download. A Data Provider will have the added capability to upload data collected from the remote weather stations into the system. An Administrator User will have full authority in the system, including the ability to manage the user authorities.EWD AWSD will automatically check data for quality upon upload. This feature offers the data provider with feedback that could potentially lead to changes in the data that was erroneous. The analyze data function provides the user with several options to help the user compare and examine data. The parameters of the quality assurance test will be configurable for each station and each sensor at a given station. In addition to flagging data as faulty, a Data Provider will also be able to edit the data in the database if any corrections need to be made. The system’s intended use will be for research and will be utilized for a range of different research needs. With the increased awareness of global change and the impact that the human race is having on the environment, this

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 5

AWSD Software Requirements Specification

system would be a useful tool for helping for determining and/or monitoring engineering and other solutions to this key problem.

1.3. Definitions, Acronyms, and Abbreviations

1.3.1. DefinitionsTERM DEFINITION3rd Normal Form A stage in the normalization of a relational database, in which each attribute in the

relationship is a fact about a key, the whole key and nothing but the key.Access Level The level of access that a given user has. Access levels are Guest, Registered User,

Data Provider, and Administrator.Active Data Set A dataset upon which further data reduction or analysis is performed. A user

creates an active dataset by executing a query. The active dataset is the result of the query.

Actor Actors are something or someone which exists outside the system under study, and that take part in a sequence of activities in a dialogue with the system to achieve some goal.

Administrator A user who can perform any operation using the system Have all the capabilities of a trusted userData provider. In addition, the Administrator can modify erroneous data and manage other users’ information.

Administrator-flag A type of data flag that can get set by the administrator only.Altitude The height of anything above a given planetary reference plane, esp. above sea

level on earth.Boolean A type of value that can only be true or false.Box plot A graphical depiction of groups of data using the smallest and largest observations,

the median, and the lower and upper quartiles. Checkpoint Information that contains enough information about the state of a system that the

state can be restored (see rollback).Checksum A value used to identify changes to a dataset. A checksum is usually a much

smaller data element added to a dataset, for example, a parity bit or a CRC-16 word.

Class Diagram In Unified Modeling Language (UML), a class diagram is a type of static structure diagram that describes the structure of a system by showing the system's classes, their attributes, and the relationships between the classes.

Cleartext Text that is human readable, for example, HTML or ASCII text. Text that is not encrypted.

Climate data Data representing accumulated weather data over time so that trends and patterns can be discerned.

Commit changes To make changes official and alter the database.Configuration File Contains validation criteria for sensor readings.Content Management System

A computer application used to create, edit, maintain, and publish digital media. In this system, the content is published on the Web.

Context-sensitive input A context-sensitive input’s acceptable values are dependent on the current context of the system.

Corrected data Version of the uploaded data that has been corrected or modified by an administrator.

CSV File A text file format that contains comma-delimited values.Data analysis A tool which will allow the user to perform basic functions on weather data such as

creating graphs, and calculating the mean, median, or mode.Data flags This refers to a field in the database. There exist three types of flags which are:

user-flag, system-flag, and administrator-flag.Data flow diagram A graphical interpretation of the flow of data in the system.Data Frame A data frame is a collection of related variables, with properties similar to that of

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 6

AWSD Software Requirements Specification

linked lists and matrices. Data frames are the standard data structures used for modeling in R

Data Gaps Missing subset of data over a time period due to unavailable weather readings.Data logger An instrument which can be programmed by a computer to record environmental

variables, such as barometric pressure, humidity, temperature, or river discharge.Data logging intervals Time periods in which the HOBO weather stations will record weather data; this

will be programmed to be 10 minutes.Data parameters This refers to a weather station’s configuration, quality check constraints or data

flags.Data Set Is a collection of data, usually presented in tabular form.Data Usage Records System records containing a Registered User’s query download records.Data validation A method to ensure weather data correctness such as ensuring the weather data

from a particular sensor lies within a valid range which depends on the location of the weather station and season.

Database A comprehensive collection of related data organized for convenient access, generally in a computer.

Database Management System

A database management system is software that provides structured access to a database using a structured query language.

Dataflow Diagram A dataflow diagram (DFD) is a graphical representation of the "flow" of data through an information system.

Default value A value assigned to the variable in question if the user does not select a value for it.Dew Point Sensor Measures the temperature at which water vapor begins or would begin to condense. Download The transfer of a file from the online system to a computer.Download Saving data obtained from the system, such as a graph or data set, in the local

machine.Dynamic feature A particular action that is performed in real time, as the user interacts with the

system.Edit Data The process in which data is modified.Encrypt To encode in order to prevent unauthorized use, access, or copying.ER diagram A graphical representation of the relationships between entities.Excel Microsoft Office Excel, a spreadsheet program.Fauna The animals of a particular region or period. It’s listed by species and considered as

a whole.File Extension One or more characters at the end of a filename, usually after a period, used to

indicate the type of file.FireStats FireStats is a tool designed to acquire site analysis information, such as the number

of hits per day. [2]Flag A marking of a data field that indicates the quality of the datum. Indicates the status

of data.Flagged Data Data marked from being suspicious wrong.Flash memory Non-volatile memory that can be electrically erased and reprogrammedFlora The plants of a particular region or period. It’s listed by species and considered as a

whole.Graph A picture (such as a chart or diagram) depicting the relationship between two or

more variables used.Graphical-based interface

The system’s page where the user can select query constraints to specify desired query; the user will have no contact with the query string.

Guest User Visitors to the system who have not been registered.Gust Speed Sensor A hardware that measures a sudden, brief increase in the speed of the wind.Hardware Interface The wires, plugs, and sockets that hardware devices use to communicate with each

other.Histogram plot A bar chart showing the proportion of cases that fall into each of several non-

overlapping categories.HOBO Weather Station HOBO is a registered trademark of Onset Computer Corporation. The weather

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 7

AWSD Software Requirements Specification

station is a data logger designed for multi-channel climate monitoring [Hobo 2008].Hypothesis A prediction of a causal relationship between events or phenomena.Indio Mountains Research Station

38,000 acres of land, owned and managed by the University of Texas El Paso (UTEP). It is located in southeastern Hudspeth County, about 26 miles southwest of Van Horn; commonly referred to as “Indio Ranch.”

Interface A means of communication and interaction between two entities which could be the system and the user, as an example.

Internet literate Someone who is internet literate is a person having experience using a web browser and is familiar with navigating through web sites.

JPEG Joint Photographic Experts Group; a digital image file format.JPEG image An image which has been compressed to a JPEG file type.Kertosis A measure of "the fatness of the tails" of the distribution. A high kertosis says that

outliers are more frequent, and a low kertosis says that outliers are less frequent. Latitude The angular distance north to south from the equator of a point on the earth’s

surface, measured on the meridian of the point, expressed either degrees.Link A selectable feature on a web page that allows a user to navigate from one page

location to anotherA means of navigating from one page to another one.Location A particular geographic area determined by longitude, latitude.Log File System file containing records of transactions, anomalous conditions, and the

occurrence and stimulus leading to user, database, and site errors. Longitude Angular distance east to west on the earth’s surface, measured by the angle

contained between the meridian of a particular place and some prime meridian, as that of Greenwich, England, and expressed either degrees or by some corresponding difference in time.

Map page The system’s page that contains the map of all the weather stations, and the weather station’s properties.

Median The data value half way between the maximum and minimum data values in a setMetadata Data that provides information about other data. In this system, metadata describes

the weather data uploaded such as time, sensor serial number, and weather station serial number.

Modal window A window that prompts for user input and blocks any action in another window until the input is provided. This type of window may be used to warn the user before an irreversible action is taken.

Mode The most common data value in a setNon-administrator user Refers to the provider and/or registered user.Non-modal window A window that operates independently of any other window with respect to user

input (see modal window).Non-volatile memory Memory that can retain stored data even after power has been removed.Notification Log A file containing requests for notification if data upon which a downloaded dataset

was constructed is changed.PLONE Is a free and open source content management system built on top of the Zope

application server [Burton 2008, Plone 2008]. Polynomial Function Functions composed of terms containing constants and variables with constant non-

negative whole number exponents.PostgreSQL An open-source, object-relational database management system (ORDBMS) with

functions that allow blocks of code to be executed by the server [GDG 2008, postgres 2008].

Primary Functions Registered User can query, download, and graph data.A Data ProviderTrusted User can do the same as Registered User and upload data.Administrator can do the same as Trusted UserData Provider, edit data, manage users, and manage sensors.

Primary key An attribute in a database table which is unique, used to identify a record.Prompt A prompt is a request from the system to the user for some action.QQ plot A graphical method for diagnosing differences between two populations, one of

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 8

AWSD Software Requirements Specification

which is a random sample and the other of which is a theoretical distribution.Quality check constraints This refers to the information used to check data quality during uploading which

might refer to an acceptable value range or the like.Quality flags Flags to data that will indicate the quality of that data.Query A command sent to a DBMS to extract or update information in the database. In

this system, queries are sent to the DBMS in SQL.Query constraints Options given by the system to specify the desired query.Query-builder-based Interface

The system’s page where the user can specify the desired query through the selection of query constraints and in which the user will view the query string being created by the system.

R R is an integrated suite of software facilities for data manipulation, calculation and graphical display [R 2004], [R 2008].

Rain Sensor A device that measures the rainfall.Raw data The version of the weather data that was originally uploaded.Registered User A user who can do the same things as a Guest User in addition to performing data

analysis, data upload, and data download.Relative Humidity Sensor

Measures the ratio of the amount of water vapor actually present in the air to the greatest amount possible at the same temperature.

Research Site A research site is any location that has a data logger collecting data.Rollback Return of a system to a known state, for example, returning a database to a known

and stable configuration, typically the state defined by a checkpoint.Acheckpoint. A system rollback is the reverting of selected data elements to previous states.

Sample A small subset of data.Sensor A device that receives and responds to a particular signal. In this system, sensors

measure weather attributes such as temperature, wind speed, and relative humidity.Sensor attributes This refers to a sensor’s serial number, type, weather station it is attached to and the

like.Sensor ID Identification number specifying which sensor a reading came from.Sensor status This refers to one of three states in which a sensor can be at: functional , removed,

or non-functional.Server Software or computer on which the system runs.Session A session tracks the usage of the system by a particular user for the duration of time

that user is actively using the system.Skew The degree of asymmetry of a distribution; the one-sidedness of a distribution.Socket An opening into which a plug or other connection part is design to fit. Spline A function defined piecewise by polynomial functions.State Diagram Is a diagram composed of a finite number of states that represents the behavior of a

system.Statechart diagram A graphical representation that depicts the system’s dynamic behavior through a

finite number of states.Statistical Test A method of making decisions based on data and statistical analysis.String Any sequence of symbols, most often alphanumeric characters and punctuation.Strip plot A plot of one data element vs. time.Symbiotic Sensors A pair of sensors where one sensor’s values can be used deterministically to verify

the other sensor’s data readings.System The website, databases, and their interactions which comprise a means to provide

meaningful output from inputs from users.System-flag A type of data flag that gets set by the system at upload time through the automatic

quality check constraints.Systems Ecology Laboratory

The UTEP laboratory in the Department of Biology at UTEP that is conducting research on systems ecology and I headed by the AWSD client., Dr. Craig Tweedie.

Trusted User Users who have the capability to upload data in addition to the capabilities of a Registered User.

Upload The transfer of data from the user’s machine to the system.

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 9

AWSD Software Requirements Specification

Use Case In software engineering and systems engineering it is a description of a system’s behavior as it responds to a request that originates from outside of that system. The use case technique is used to capture the functional requirements of a system.

Use Case Diagram Is a type of diagram defined by the Unified Modeling Language (UML) and created from a system’s behavior as it responds to a request that originates from outside of that system. The use case technique is used to capture the functional requirements of a system.

Use case Case Sscenario Describes a particular interaction between the system and the user: it describes how the use case function is performed.

User Database The database holding all user account information.User interfaceInterface The user interface displays the application content to the user and accepts input to

initiate actions. Input from the user is typically in the form of mouse button presses and keyboard presses.

User Session Refers to the time frame in which the user is logged into the system.User’s Iinformation Refers to user’s email and password.User-flag A type of data flag that gets set only by the non-administrator user.Weather Data Data describing a local environment at a given time.Weather Database The database holding all raw and modified weather data from the weather stations.Weather Station An installation equipped and used for meteorological observation.Weather Station Attributes

Information describing a weather station, iIncludes the location, model number, type of sensors, and sensor serial numbers.

Weather Sstation Cconfiguration

The AWSD internal representation of weather station attributesThis refers to a weather station’s sensors and status where status refers to its state: functional or not functional.

Weather station properties

This refers to a weather station’s sensors (type and amount of each sensor), location, altitude, and the like.

Web Interface A web interface is the interface to an application hosted on the internet and users access it through a web browser.

Wind Speed Sensor A device that mMeasures the rate of air flow around a weather stationratio of the distance covered by the air to the time taken to cover it.

Zope Zope is an open source web application that contains a transactional object database that can store and custom data, HTML templates, scripts, and a search engine [Zope 2008].

1.3.2. Acronyms and Abbreviations

ASCII American Standard Code for Information Interchange.Avg AverageC Celsius

CMS Content Management SystemCSV Comma Separated Variable

CRC-16 Cyclic Redundancy Check, 16 bitsAWSD Automatic Weather Station Database

Email Electronic mailER Entity Relationship

F FahrenheitGPS Global Positioning System

GUI Graphical User Interface

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 10

AWSD Software Requirements Specification

HTTP Hypertext Transfer ProtocolIMRS Indio Mountains Research Station

In InchesJPEG Joint Photographic Experts Group

KB Kilo BytekPa KiloPascals

Kph Kilometers per hourMax Maximum

Mbar MillibarsMin Minimum

Mm MillimetersmmHG Millimeters Mercury

Mph Miles per hourMps Meters per second

N/A Not applicablePa Pascals

RH Relative HumiditySEL Systems Ecology Laboratory

SMTP Simple Mail Transfer ProtocolSQL Structured Query Language [SQL 2008]

SRS Software Requirements SpecificationTCP Transmission Control Protocol

UI User InterfaceUSA United States of America

UTEP The University of Texas at El Paso

1.4. Overview This document is separated into three sections. Section 2 provides a general description of the system, the use cases for the system, and the assumptions and constraints on the system. Section 3 of this document details all of the specific requirements to the system. The requirements are divided into four sections; external interface requirements, behavioral requirements, non-behavioral requirements, and other requirements. External interface requirements contain the requirements that deal with any type of interface to the system, including user, hardware, software, and communication interfaces. The subsection containing behavioral requirements explains all of what the system must do and the non-behavioral requirements explain other aspects of the system that allow it to perform its required functions. The section for other requirements includes requirements pertaining to the external database of the system, operations and site adaptation.

1.5. References[Bishop 2007] Bishop, C., Pattern Recognition and Machine Learning, Springer, 2007.[Burton 2008] J. Burton, "What is Plone?," Plone, Oct. 30 2007. [Online]. Available:

http://plone.org/about/plone/. [Accessed: Oct. 11, 2008].[Galitz 2007] Galitz, W., The Essential Guide to User Interface Design, Third Edition, Wiley Publishing, 2007.

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 11

AWSD Software Requirements Specification

[GDG 2008] PostgreSQL Global Development Group, “PostgreSQL 8.3.4 Documentation”, PostgreSQL, 2008, Online]. Available: http://www.postgresql.org/files/documentation/pdf/8.3/postgresql-8.3-US.pdf [Accessed: October 11, 2008].

[Hobo 2008] HOBO Weather Station User’s Guide, [Online Document], Available HTTP: http://courses.utep.edu/portals/870/HOBO_weather_station_user_guide.pdf [Accessed December 2008].

[IPCC 2007]Intergovernmental Panel on Climate Change, Climate Change 2007 Synthesis Report, IPCC Plenary XXVII (Valencia, Spain, 12-17 November 2007), http://www.ipcc.ch/pdf/assessment-report/ar4/syr/ar4_syr.pdf [Accessed January 21, 2009].

[MINER 2008] “MInERv1.4.3.doc,” Sep. 3, 2008. [Online]. Available: http://www.courses.utep.edu/portals/870/MInERv1. [Accessed: Oct. 17 2008].

[Plone 2008] The Plone CMS-Open Source Content Management System, 2000-2008, Available at HTTP: http://plone.org/about [Accessed December 2008].

[Postgres 2008] PostgreSQL Global Development Group, 1996-2008, Available HTTP: http://www.postgresql.org/about/ [Accessed December 2008].

[R 2004] Dalgaard, P., Introductory Statistics with R, Springer Verlag, 2004.[R 2008] “What is R?”, Available HTTP: http://www.r-project.org/ [Accessed December 2008].[SEL 2008] University of Texas at El Paso, Systems Ecology Lab, Available HTTP: http://sel.utep.edu/

[Accessed August 2008].[SQL 2008] W3schools.com, 1999-2008, “Introduction to SQL”, http://www.w3schools.com/SQL/sql_intro.asp

[Accessed Deember 2008].[Tweedie 2008] C. Tweedie, Department of Biology and the Environmental Science and Engineering Program,

Making a Database of Automatic Weather Station Data Available Online",http://www.cs.utep.edu/sroach/F08-4310/IntroLectTweedie_080908.ppt [Accessed: November 9,2008].

[Yates 2005] The principle source of material related to data flagging and data quality check is “Probability and Stochastic Processes” by Roy D. Yates (Wiley 2005).

[Zope 2008] Zope Corporation, 2008, “What is Zope?”, Available http://www.zope.org/WhatIsZope [Accessed December 2008].

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 12

AWSD Software Requirements Specification

2. General Description

2.1. Product PerspectiveThe AWSD is briefly described in Section 1. This section provides a more detailed view of the product features, a description of the types of weather stations to be supported initially, and a discussion of the robotic cart system, a similar system under development at the SEL.

2.1.1. Product FeaturesAny individual from any location in the world should be able to use the system as long as the individual has an Internet connection and a web browser. The following list describes the main product features.

Login: Users will log in to access the features of the system. There are three levels of access to the system: Registered User, Data Provider, and Administrator. Users obtain login credentials by registering. Initial credentials can be modified only by an Administrator.

Register: To become a Registered User, the registration process requires that a user provide an email address and some indentifying information. Registration is automated, and an email is sent to the registered user.

Simple Search: The simple search interface is designed to be simple and easy-to-use. This interface allows a Registered User to search for data by location or weather station sensor type.

Advanced Search: The Advanced Search interface allows greater flexibility in specifying search parameters. In this search, it is possible to build complex multi-part queries to answer questions such as “what is the wind speed at weather stations on days when the station receives rain?”

Save Search Query: The system allows a user to save a query for future use or to turn a query into a query template. For example, a user might take a query for finding the maximum temperature on January 1, 2008 and turn it into a query for finding the maximum temperature on a user-specified date.

Reduce Data: Standard data reduction approaches will be implemented. These include finding maxima, minima, averages, standard deviations, and totals for time ranges and time periods. An example data reduction is to compute the average hourly temperature for a weather station over a specified time period.

Analyze Data: Standard data analysis methods will be implemented, including statistical based methods such as median, modes, skews, kurtosis, covariance and correlation of variables, hypothesis testing, and decision making, as well as machine learning based approaches for classification and regression, in particular linear methods.

Plot Data: Standard data plotting methods will be implemented. These methods include the capacity to produce histogram , strip, density, box, and pie charts.

Download Data: Users will be able to download raw, reduced, and/or analyzed data, or plots. Upload Weather Station Data File: Data Providers can upload weather station data for stations for which they

are authorized. The upload process takes a comma separated variable (CSV) file, matches the header information to the weather station profile, runs a data quality algorithm, and stores the data in the weather database.

Create or Modify Weather Station Profile: An Administrator or Data Provider creates a weather station profile to describe the sensors and the data to be collected.

Edit Weather Data: In the event of a systemic or correctable error in data, the system provides Administrators and Data Providers the capability to edit weather data. Raw uploaded data is never deleted, but the data made available for search will be the most recent and most accurate at the time.

Manage Users: The system provides an interface for managing user accounts. This interface allows an Administrator to add or remove access privileges and reset passwords.

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 13

AWSD Software Requirements Specification

Notify of Changed Query Result: The system, on a regular basis, will scan the uploaded and modified data. For users who request the service, the system will notify the user that new data is available or that changes have been made that will alter the results of a saved query.

2.1.2. DescriptionsWeather data is collected at weather stations. One example of an automatic weather station is the HOBO Weather Station, which contains a data logger designed for multi-channel climate monitoring [Hobo 2008]. The data logger records measurements made at each sensor. The sensors currently in use include temperature, rain, wind speed, barometric pressure, and relative humidity. However, the system is expandable, meaning it will be designed to allow additional sensors to be added in the future. A HOBO Weather Station is shown in Figure 1:A HOBO Automatic Weather Station.

The AWSD system will store data using a PostgreSQL [GDG 2008, Postgres 2008] server, and provide worldwide access via internet with the use of a content management system (CMS) such as Plone [Burton 2008, Plone 2008]. (Due to the complexity of Plone, the system will use a simpler CMS for the initial implementation.) as its content management system.

2.1.3. Related ProductsThe SEL is currently developing a related system, a robotic cart system [MINER 2008]. The robotic cart system is designed to automate the collection of weather data and make the data available to climate researchers. The system consists of a cart that drives for several hundred meters along a rail. It stops and collects data at predetermined locations and drives along its route at specified intervals. The data is collected and stored in a data logging device for later upload to the central repository.

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 14

PAR sensorWind Speed

sensor

Solar Radiation Shield

Rain Gauge

Logger

Figure 1: A HOBO Automatic Weather Station

AWSD Software Requirements Specification

The robotic cart system is similar to the AWSD system in that data is uploaded to a central repository and made available over the web. The system differs from the AWSD in that AWSD is designed to allow anyone collecting weather data to upload the data. The mission of AWSD is to provide storage, access, and assurance of weather data so that climate researchers can access and analyze it.

The robotic cart system has the following features in common with AWSD:

1. The use of PLONE as its content management system,2. The use of PostgreSQL as it database management system,3. The manipulation of different types of users,4. The integration of simple data analysis tools, and5. The worldwide accessibility of the data.

The robotic cart system does not support the following, needed features.

1. Data validation method,2. Types and quantities of sensors, and3. A method to auto-create metadata.

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 15

AWSD Software Requirements Specification

2.2. AWSD Use Cases

Figure 2: Use Case Diagram

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 16

AWSD Software Requirements Specification

2.2.1. Use Case 1: LoginUse Case Description: Registered Users, Data Providers and Administrators must log in to the system to access the functions for these actors. To log in, a user must provide an email address and a password. Related Use Cases: All use cases except Register require login.

2.2.1.1. Scenario 1: LoginScenario Summary: Actor provides email address and password to gain access to system.Actors: Administrator, Data Provider, or Registered User; User Database.Preconditions: Actor is viewing the system homepage.Postconditions: The Actor is logged in and has access to the system functions. The system is displaying either the Registered User, the Data Provider, or the Administrator home page.Scenario:

1. The user selects the Login function.2. The system displays a login interface that prompts for a email address and a password.3. The Actor types in his or her e-mail and password (ALT 1).4. The system echoes the characters of the email address, but hides the characters of the password. 5. The Actor submits the email address and password.6. The system queries the User Database for records matching the email address.7. The User Database returns a record matching the email address (ALT 2).8. The system confirms the password (ALT 2).9. The Actor is logged in.10. End of use case.

ALT 1: Actor Cancels Login.A1-1: The system returns to the system homepage.A1-2: End of use case.

ALT 2: Email address or Password do not match.A2-1: The system displays an error message indicating that the login failed and returns to step 2.

2.2.2. Use Case 2: Analyze Weather DataUse Case Description This use case represents the activities of finding and analyzing data. A typical analysis session includes searching for data, reducing the data, plotting the data, and downloading the data to a local machine. Related Use Cases: LoginPreconditions: The Registered User is logged into the system (see Use Case 1).

2.2.2.1. Scenario 1: Simple SearchScenario Summary: A Registered User submits a request to the system for weather data.Actors: Registered User, Weather Database Preconditions: The system is displaying the Registered User homepage.Postconditions: A data set matching the query generated by the Registered User and the system is returned and becomes the active data set.Scenario:

1. The Registered User selects the search option. 2. The system searches the Registered User’s profile for a list of previously accessed weather stations.3. The system searches the Weather Database for searches previously saved by this user (see Scenario 4).4. The system displays a simple search page with a list of previously accessed weather stations and a list

of saved search queries.5. The user selects a set of weather stations for a simple search (ALT 1, ALT 2).6. The system prompts for a time range.7. The user enters a time range.8. The system queries the Weather Database to obtain a list of sensors for the selected weather stations.9. The system prompts for sensor values to be displayed.10. The user selects the sensors.

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 17

AWSD Software Requirements Specification

11. The system generates an SQL query from the information input by the user.12. The system verifies that the query is a safe query, one that does not violate security constraints (ALT

3).13. The system submits the SQL query to the Weather Database.14. The Weather Database returns the results of the query.15. The system displays the results as a table. 16. The system displays options for saving the query (Scenario 3), Reduce Data (Scenario 4), Plot Data

(Scenario 5), or Download Data (Scenario 6).17. End of use case.

ALT 1: User selects an existing saved search query.A1-1: The system scans the saved query. For each query that has a template parameter string, the parameter

string is displayed and the user is prompted to enter a value. A1-2: The Registered User enters constant values for each template parameter.A1-3: The system inserts the input constant values into the SQL query.A1-4: Use case continues with step 12.

ALT 2: User searches for weather stations.A2-1: The system displays an interactive map (such as a google map) with weather station locations marked.A2-2: The Registered User selects weather stations from the map.A2-3: Use case continues with step 6.

ALT 3: The SQL query violates security constraints.A3-1: System alerts the user that the query will modify data or access protected data.A3-2: System adds an entry to the security log file including the generated SQL query, the Registered User’s

email address, and the time the query was attempted.A3-3: Use case continues with step 2.

2.2.2.2. Scenario 2: Advanced SearchScenario Summary: A Registered User wants to create a specialized or more specific search than is available through the simple search mechanism given in Scenario 1. Actors: Registered User, Weather Database Preconditions: The system is displaying the Registered User homepage.Postconditions: A data set matching the query generated by the Registered User and the system is returned and becomes the active dataset.

1. The Registered User selects the advanced search option. 2. The system searches the Registered User’s profile for a list of previously accessed weather stations.3. The system provides options to search the database based on multiple weather stations, data ranges,

metadata keywords, regions, date ranges, and other options including Boolean combinations of these.4. The user enters search criteria.5. The user selects the search option.6. The system constructs an SQL query corresponding to the entered data.7. The system verifies that the SQL query is a “safe” query, i.e., it does not modify data in the database.8. The system executes the query by sending it to the weather database.9. The Weather Database returns the results of the query.10. The system displays the results as a table. 11. The system displays options for saving the query (Scenario 3), Reduce Data (Scenario 4), Plot Data

(Scenario 5), or Download Data (Scenario 6).12. End of use case.

2.2.2.3. Scenario 3: Save Search QueryScenario Summary: A Registered User has created a search query (see Scenarios 1 and 2) that he or she wants to save to rerun at a later time. This step is required if the Registered User downloads data (Scenario 6) and wants to be notified of data changes that affect the results of this query.Actors: Registered User, Weather Database

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 18

AWSD Software Requirements Specification

Preconditions: The Registered User has just completed a search in Scenario 1 or Scenario 2. The system is displaying the search result page. Postconditions: A query or query template has been saved in the Weather Database for reuse.Scenario:

1. The Registered User selects the save search query option.2. The system displays the SQL query that was executed. 3. The system identifies constants in the SQL query and presents them as possible parameters. (For

example, a query that specifies data between 10:00A.M. and 11:00 A.M. for a specific sensor would have the two times and the sensor identified as constants.)

4. The Registered User selects a set of the displayed constants.5. For each of the selected constants, the system prompts for a template parameter string. This string will

be displayed when the query is rerun (see Scenario 1).6. The Registered User enters the requested string.7. The Registered User selects the save option.8. The System prompts for a search query name.9. The Registered User enters the name.10. The system saves the query in the Weather Database (ALT 1).11. The system displays a message saying the search query has been saved.12. The system returns to the query result display.13. End of use case.

ALT 1: The name given is already in use.A1-1: The system displays a message indicating that the search query name is already in use.A1-2: The use case continues with step 8.

2.2.2.4. Scenario 4: Reduce DataScenario Summary: A Registered User has completed a search query and wants to reduce the volume of data by processing the data by, for example, taking the average of a set of data.Actors: Registered User, Weather Database Preconditions: The Registered User has completed a query, and the system is displayingis looking at the results page (see Scenarios 1 and 2). Postconditions: The system is displaying Registered User is looking at a results page with reduced data.Scenario:

1. The Registered User selects the data reduction option from the results page.2. The system displays the data reduction page. On this page, the system lists the weather stations and

the sensors for each weather station.3. The Registered User selects a weather station and a sensor.4. The system displays the data reduction methods that are available. These include average, total,

cumulative total, standard deviation, median, maximum, minimum, and count.5. The Registered User selects the data reduction method.6. The system displays the weather stations and sensors, and annotates the selected sensor with the

reduction method.7. The Registered User repeats steps 3-6 until all of the station and sensor reductions have been

specified.8. The Registered User selects the “Continue” option.9. The system prompts the Registered User to specify the periodicity. (Common values are given in

terms of minutes, hours, days, months, or years.)10. The Registered user specifies the periodicity by giving a numeric value and time units.11. The system generates new results by applying the data reduction method to each of the sensor values

using the given periodicity. 12. The system displays the results in a new results page.13. End of use case.

2.2.2.5. Scenario 5: Plot DataUse Case Summary: The user plots data in one of a variety of forms.

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 19

AWSD Software Requirements Specification

Used by: Download DataActors: Registered UserPreconditions: There is an active dataset (created by executing queries and data reduction).Postconditions:A plot is displayed.

1. The system displays the active dataset.2. The Registered User selects the plot option from the results page.3. The system prompts the user to select the data to be plotted.4. The user selects the data from the active dataset.5. The system prompts the user for the type of plot: histogram, strip, density, box, or pie chart. 6. The user selects a plot type.7. The system creates and displays the plot.8. The system displays the options to edit plot options, including format the plot or save the plot.9. The user selects the edit plot options.10. The user modifies plot parameters.11. The system recreates and displays the plot.12. The user selects to save the plot.13. The system prompts for a file name and location for saving the plot.14. The user enters the file name.15. The system saves the plot.16. End of use case.

2.2.2.6. Scenario 6: Download DataScenario Summary: The user wants to download data.Actors: Registered UserPreconditions: There is an active dataset (created by executing queries and data reduction).Postconditions: The requested data has been saved in a CSV file.Scenario:

1. The system displays the active dataset.2. The user chooses to download the data.3. The system creates a CSV file for download. The CSV file contains a header row and data rows. It

contains a column for each data element in the active dataset, and it contains an additional column to the right of data columns that contains metadata.

4. The system prompts for a file location to store the downloaded data.5. The user provides a file location.6. The system saves the file at the designated location.7. The system prompts the user by asking if the user wants to be notified if the data upon which this

dataset is based changes.8. The user affirms.9. The system saves the query upon which the active dataset was built, re-executes the query, computes a

checksum, and stores the checksum the query, and the user’s email address in the notification log.10. End of use case.

2.2.2.7. Scenario 7: Analyze DataScenario Summary: A Registered User wants to perform some statistical analysis on the data. Actors: Registered UserPreconditions: The system is displaying the results page (see Scenarios 1 and 2). Postconditions: The system is displaying a results page with reduced data.Scenario:

1. The Registered User selects the Analyze Data option from the results page.2. The system displays a list of data analysis algorithms.3. The user selects the correlation coefficient option (ALT 1, ALT 2).4. The system prompts the user to select two columns of data as well as the starting and ending times.5. The user selects the columns and time range.6. The system computes the correlation coefficient and displays a new results page.7. End of use case (ALT 3).

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 20

AWSD Software Requirements Specification

ALT 1: Start Saving Analysis.A1-1: The user selects the option to start saving an analysis sequence. A1-2: The system displays an icon indicating that the analysis sequence is being recorded.A1-3: For each operation that the user performs, the system records the operation so that the analysis can be

replayed (See Scenario 8).A1-4: The use case continues with step 3.

ALT 2: User selects another analysis algorithm.A2-1: The user selects a different analysis algorithm.A2-2: The system prompts for data selections and time ranges, depending on the analysis algorithm.A2-3: The user selects the appropriate data as prompted.A2-4: The system computes the requested data analysis and displays a new results page.A2-5: The use case continues with step 7.

ALT 3: Save Analysis.A3-1: The user selects the icon indicating that the analysis sequence is being saved.A3-2: The system displays the sequence of operations that was executed. A3-3: The system identifies constants in the sequence (such as time ranges) and presents them as possible

parameters. The user selects a set of the displayed constants.A3-4: For each of the selected constants, the system prompts for a template parameter string. This string will be

displayed when the analysis is rerun (see Scenario 8)A3-5: The User enters the requested string.A3-6: The user selects the save option.A3-7: The System prompts for a search query name.A3-8: The user enters the name.A3-9: The system saves the analysis script in the Weather Database.A3-10: The system displays a message saying the analysis script has been saved.A3-11: The system returns to the query result display.A3-12: Use case continues with step 7.

2.2.2.8. Scenario 8: Replay AnalysisScenario Summary: The user wants to perform data analysis that matches a previous data analysis.Actors: Registered UserPreconditions: There is an active dataset (created by executing queries and data reduction). This user has previously saved a data analysis sequence.Postconditions: The Registered User is looking at a results page with reduced data.Scenario:

1. The system displays the active dataset.2. The user selects the option to replay an analysis script.3. The system displays the analysis scripts saved by this user.4. The user selects a script. 5. The system scans the saved script. For each element of the script that has a template parameter string,

the parameter string is displayed and the user is prompted to enter a value. 6. The user enters constant values for each template parameter.7. The system inserts the input constant values into the script.8. The system executes the script on the current data set.9. The system displays the results in a new results page.10. End of use case.

2.2.3. Use Case 4: Upload DataUse Case Description: A Data Provider uploads a data file created by a data logger. Related Use Cases: Create or Modify Weather Station Profile

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 21

AWSD Software Requirements Specification

2.2.3.1. Scenario 1: Upload Weather Station Data FileActors: Data Provider, Weather DatabasePreconditions: Data Provider has a CSV file ready for upload. The Data Provider is logged in (See use case 1) and the system is displaying the Data Provider home page.Postconditions: Data is committed to the database. Erroneous data is flagged. Data is made available to other users immediately.Scenario:

1. The Data Provider selects the “Upload Data” option. 2. The System displays the list of weather stations for this Data Provider. The list of weather stations for

this Data Provider is the list of stations for which this provider is authorized to upload. This is the list of stations for which this Data Provider created profiles and the weather stations to which this Data Provider has been given access (see Create or Modify Weather Station Profile).

3. The user selects a weather station.4. The system displays a file browser dialog.5. The user uses the file browser dialog to identify the file to be uploaded (ALT 1).6. User selects “Upload” option (Alt 1).7. The system reads the header row of the input data file. The system accesses the Weather Database. 8. The system matches each sensor specified in the weather station profile with a column in the header of

the file to be uploaded (ALT 2).9. The system prompts the Data Provider for a start time, and end time, and a time step. The default

values of these will be the first time and last times in the upload data file and the time difference between the first and second data record in the upload data file.

10. The Data Provider modifies the start time, end time, and time interval. The Data Provider submits this data.

11. The system checks the Weather Database for data for this weather station that overlaps the time range specified. None is found (ALT 4).

12. The system generates all of the data time stamps by starting with the initial time and adding a record for each successive time (based on the time interval).

13. The system reads the input data file and adds data to records according to the time stamp of the record. The result of this step is that missing data records are present in the data table, but the data fields are empty.

14. The system runs all of the quality checks for the data set. This includes checks on individual sensor readings as well as checks on sets of readings from a single station. No data is marked by the checks (ALT 5).

15. The system prompts the Data Provider to confirm.16. The Data Provider confirms (ALT 1).17. The system uploads the file to database and displays a message indicating the upload is complete. 18. End of use case.

ALT 1: User Cancels the Operation.A1-1: The system returns to the Data Provider home page.A1-2: End of use case.

ALT 2: The Upload File Header Does Not Match the Weather Station Profile.A2-1: The system displays the unmatched sensors and the upload file header records.A2-2: The system provides an interface for the Data Provider to match header columns with unmatched sensors.A2-3: The Data Provider matches all of the sensors in this weather station’s profile with columns in the upload

data file (ALT 3).A2-4: Use case continues at step 9.

ALT 3: Sensors in Weather Station Profile are Unmatched.A3-1: The system displays a message indicating that upload cannot continue.A3-2: The system returns to the Data Provider home page.A3-3: End of use case.

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 22

AWSD Software Requirements Specification

ALT 4: Duplicate Data Found in Weather DatabaseA4-1: The system displays a message indicating that overlapping data already exists in the database.A4-2: Use case continues at step 10.

ALT 5: Data is Marked by Data ChecksA5-1: The system displays the message associated with the checks. Messages include “data out of range”, “data

missing”, and “data is suspect”. For “suspect” data, an additional message is provided explaining why the data is suspect. For example, in some weather conditions, there is a high probability of the anemometer freezing. In this case, if the wind speed is zero, the wind speed data is suspect because of freezing conditions.

A5-2: Use case continues with step 15.

2.2.4. Use Case 5: Create or Modify Weather Station ProfileUse Case Description: A Data Provider adds or modifies a weather station profile from the systemRelated Use Cases: Upload DataPreconditions: The actor is logged into the system (see Use Case 1).

2.2.4.1. Scenario 1: Create or Modify Weather Station ProfileActors: Data Provider, Weather DatabasePreconditions: The Data Provider is logged in (see Use Case 1) and is viewing the Data Provider homepage.Postconditions: A weather station profile has been either created or modified.Scenario:

1. The Data Provider selects the “Manage Weather Station Profile” option. 2. The System displays the list of weather stations for this Data Provider and a “New Station” option.

The list of weather stations for this Data Provider is the list of stations for which this provider is authorized to upload. This is the list of stations for which this Data Provider created profiles and the weather stations to which this Data Provider has been given access.

3. Data Provider selects “New Station” (ALT 1).4. System displays a form containing the station name, location, description, station serial number, and

data logger serial number. Other information includes photograph, date established maintenance history, calibration history, general notes/comments, purpose of the station, list of references from work at the station, contact information. This information can be used to create a viewable profile for users.

5. The system displays a list of sensors for the weather station. For new stations, this list will be empty. The system also displays the option to add new sensors.

6. The Data Provider modifies the needed elements of the station profile.7. The Data Provider modifies the sensor list. (ALT 2).8. The Data Provider specifies the data elements for upload data files for this weather station. Upload

data files will be CSV files with a single header row that indicates the name and units for a column of data. (See the example input file.) To specify the required data, the Data Provider creates or modifies the list of sensors. Each sensor entry in the weather station profile has a title. When uploading data, the system will search the header for a matching entry. For each sensor, there may be data quality flag constraints that help the system indicate data quality.

9. The system prompts the Data Provider for a list of Data Providers who can upload for this station. The system does not allow the Data Provider to search the list of Data Providers.

10. The Data Provider completes the form and submits the changes to the system (ALT 3).11. The system saves the station information to the weather database.12. The system sends an email to each Data Provider on the upload list a summary of the station profile.13. End of use case.

ALT 1: User Selects an Existing Station.A1-1: The system populates the display with existing information about the selected weather station.A1-2: Use case continues with step 3.

ALT 2: User Selects to Add a Sensor.

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 23

AWSD Software Requirements Specification

A2-1: The system adds a sensor to the sensor list and displays the sensor with blank data fields.A2-2: Use case continues with step 8.

ALT 3: Data Provider Cancels Edits.A3-1: The system cancels the edits and returns to the Data Provider home page.A3-2: End of use case

2.2.5. Use Case 6: Edit Weather DataUse Case Description: A Data Provider has discovered a systematic error in uploaded data and wants to correct it.

2.2.5.1. Scenario 1: Actors: Data Provider, Weather DatabasePreconditions: The Data Provider is logged in (see Use Case 1) and is viewing the Data Provider page.Postconditions: A weather station profile has been either created or modified.Scenario:

1. The Data Provider selects the “Edit Weather Station Profile” option. 2. The System displays the list of weather stations for this Data Provider. The list of weather stations for

this Data Provider is the list of stations for which this provider is authorized to upload. This is the list of stations for which this Data Provider created profiles and the weather stations to which this Data Provider has been given access.

3. Data Provider selects a weather station.4. The system provides a list of the start and end times for datasets uploaded for the selected weather

station.5. The Data Provider selects one or more of the datasets.6. The system prompts for a sensor, a time range, and a function. The function is a regular expression

that will be used to compute new values for the data. An example function is “Current + 2.0”, which adds 2.0 to the each value in the time range selected for the selected sensor.

7. The Data Provider enters the regular expression.8. The system computes new values for the specified sensor for the specified time range. This data is

written to the database. The previous data is marked as “archived”. 9. The system prompts for an explanation.10. The Data Provider enters an explanation.11. The system saves the explanation as part of the metadata for this dataset.12. The system writes the explanation to the system log file.13. End of use case.

2.2.6. Use Case 7: Manage UsersUse Case Description: An Administrator adds or edits user profiles including user permissions. Related Use Cases:

2.2.6.1. Scenario 1: Manage UsersActors: Administrator, User DatabasePreconditions: The Administrator is logged into the system (see Use Case 1). The system is displaying the Administrator home page.Postconditions: User information is successfully saved to the database.Scenario:

1. The Administrator selects to Edit Users. 2. The system displays a dialog allowing the Administrator to search for users based on name, email

address, or email.3. The Administrator searches and selects a user profile to edit (ALT 1, ALT 2).4. The system displays the email address, first name, last name, email address, alternative email, user

role. 5. The Administrator fills out all the information requested and selects to save the information (ALT 1).

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 24

AWSD Software Requirements Specification

6. The system verifies that all required information is present (ALT 3).7. The system saves the user information to the user database.8. End of use case

ALT 1: Administrator Cancels the Operation.A1-1: The system returns to the Administrator home page.A1-2: End of use case.

ALT 2: Administrator Adds a User.A2-1: The Administrator chooses to add a user.A2-2: Use case continues at step 4 with blank values for each field.

ALT 3: Required Information is Missing.A3-1: The system displays a message indicating which information is missing.A3-2: Use case continues at step 4.

2.2.7. Use Case 8: Notify UsersUse Case Description: When data is modified or added to the system such that a Registered User’s saved query will produce results that differ from the results originally downloaded, or if a Registered User has requested notification when data from a weather station is uploaded, then the system will notify this user. The system is expected to run this process once per day at a time scheduled by an Administrator.Related Use Cases: Analyze Data (Download), Upload Data, Edit Weather DataPreconditions: The actor is logged into the system (see Use Case 1).

2.2.7.1. Scenario 1: Notify of Changed Query ResultActors: Time, User Database, Weather DatabasePreconditions: A Registered Users has downloaded data, saved a query, and marked the query with a request to notify if the data changes (see Analyze Data (Download), or a Registered User has requested to be notified when data is uploaded for a specific weather station. Postconditions: The system has sent emails to all Registered Users affected by changes or additions to weather data since the previous execution of the Notify Users process.Scenario:

1. The Time triggers the start of the scenario. 2. The system checks the log of modified and uploaded data. It identifies all of the Weather Database

modifications since the last time the Notify Users process was run.3. The system compares the modifications to the list of stored queries in the Notification Log. It

identifies all of the queries affected by the updates (ALT 1).4. The system sorts the identified queries by email address. For each email address, the system sends one

message to the user’s email address describing the notes in the changes to the database. The message includes the notes for every database change that affects one of this user’s queries.

5. The system updates the date and time that the last Notify process was run.6. The system sends an email to all Administrators indicating that the Notify process ran successfully.7. End of use case.

ALT 1: The weather database has not changed or no queries match the changes.A1-1: End of use case.

2.2.8. Use Case 9: Register Use Case Description: A user must be a Registered User in order to access the data in the weather database. To become a Registered User, a Guest may register.Related Use Cases: Login

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 25

AWSD Software Requirements Specification

2.2.8.1. Scenario 1: RegisterScenario Summary: A Guest provides information and submits a request. Actors: Guest, User DatabasePreconditions: The Guest is viewing the system homepage.Postconditions: A new user is registered and is able to log in.Scenario:

1. The Guest selects the Register option from the system homepage.2. The System displays the terms of service and the options to accept or decline.3. The Guest accepts (ALT 1).4. The System displays the registration page that requests email, password, and user preferences.5. The Guest provides the requested information.6. The Guest selects “Submit” option ( ALT 2 ).7. The System checks the user database to ensure the email address is not blocked (ALT 3).8. The System adds the user’s information to the database and sets the user status to “pending

confirmation”.9. The System sends a confirmation e-mail to the email address provided by the Guest. The email

contains a hyperlink to confirm receipt of the e-mail.10. The user receives the email and follows the hyperlink.11. The system changes the status of the user to “active”.12. End of use case.

ALT 1: User declines terms of service.A1-1: The System returns to the system homepage. A1-2: End of use case.

ALT 1: User selects the “Cancel” option.A2-1: The System returns to the system homepage. A2-2: End of use case.

ALT 1: User email is blocked.A3-1: The System sends an email to the Administrator indicating that a blocked user is attempting to register.A3-2: The system returns to the system homepage.A3-3: End of use case.

2.2.9. Use Case 10: System HelpUse Case Description: A Guest wants to find out about the system or a user wants directions on the use of the system. The system provides a tour consisting of descriptions and examples of features of the system.Related Use Cases: None.

2.2.9.1. Scenario 1: Actors: GuestPreconditions: The system is displaying the system homepage.Postconditions: NoneScenario:

1. The Guest selects the “System Help” option. 2. The system displays a list of features of the system. These include Register, search, reduce and

analyze data, plot data, download data, and upload data.3. The Guest selects a topic.4. The system displays a description of the topic as well as examples. (Note, this description should

include screen shots if possible and scenarios – the client has recommended www.armap.org as a useful model.)

5. The Guest selects “continue”.6. The system returns to the feature list display.

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 26

AWSD Software Requirements Specification

7. The Guest selects “exit”.8. End of use case.

2.3. Actor Descriptions:The following are descriptions of the actors that will interact with the system. The users of the software system will fit into one of the following user roles. Note that a Data Provider is a subclass of Registered User, and thus has all of the capabilities associated with Registered User in addition to the additional capabilities of a Data Provider. Similarly, the Administrator is a subclass of Data Provider. It is anticipated that there will be two-to-four Administrators, one or two dozen Data Providers, and potentially hundreds of Registered Users.

2.3.1. GuestThe Guest is a visitor to the system that will be able to view the capabilities of the system, but not actually use them. Guest users will typically be first time users making an assessment for future use. To be able to download and upload data, guest users will have to register with the system and log in.

2.3.2. Registered UserRegistered users will be researchers needing weather data from the system. These users may include field researchers, modelers, or other experts in environmental and climate issues. We assume that these users are familiar with computers and databases, though we do not assume that these users have experience in constructing SQL queries. The Registered User can search for data, reduce data, plot data, and download data. This user cannot upload or modify data. A Registered user must log on to the system by providing a username and password. We anticipate the system supporting hundreds or thousands of Registered Users in the initial release.

2.3.3. Data ProviderA Data Provider is a trusted user who has the authority to add and modify some weather station configurations and to upload data for those stations. A user with Data Provider permission also has Registered User permissions, so a user designated as a Data Provider will be able to search for data, also.

We expect a Data Provider to be technically adept and to have full understanding of data elements and their relationships. This user will understand the data and metadata and will be able to identify some anomalous conditions such as missing data and defective sensors for the weather stations for which this user is authorized. We anticipate there being as many as a few dozen data providers supported by the initial release of the system.

2.3.4. AdministratorAn Administrator is a user who has that has the authority to add and modify any data in the system including weather data, weather metadata, weather station configurations, data quality flags, user configurations, user authority levels. A user with Administrator permission also has Data Provider permissions, so a user designated as an Administrator will be able to search for data upload data, also.

Administrators hold a high level of trust in the system. They should have domain knowledge, in particular when administering data and sites. We anticipate there being a few (three to five) administrators in the initial release of the system.

2.3.5. TimeThis actor is time and is used to trigger recurring events. For this system, the notification of data changes is triggered once per day.

2.3.6. Datalogger DatasetThe Datalogger Dataset is a data set that is ready to be uploaded into the Weather Database. This dataset is created or obtained by a Data Provider, who is responsible for its upload. This data set is usually in the form of CSV files that match a weather station configuration. Such files may be created by a datalogger. (A sample

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 27

AWSD Software Requirements Specification

dataset from a datalogger is given in Appendix E: Sample Upload Dataset.) However, any file containing data in the appropriate format will be accepted.

2.3.7. Weather DatabaseThe Weather Database is the repository of all weather data and metadata. This will be implemented using the Postgres database management system. All data modifications will occur through the database management system. Data Providers will have permission to upload data. Once data is uploaded, only Administrators will be able to modify it.

2.3.8. User DatabaseThe User Database represents the data records that correspond to users of the system. Data access levels, logins and other user operations will be managed by the Plone content management system.

2.4. General ConstraintsThe system will only allow authorized users to access the data query, utilize data reduction, plotting, uploading tools, and oversee user management functions. The system will be hosted SEL servers in the main UTEP server farm, and data in the system will be stored there.The SEL will provide backup and recovery support for the data and software in the system.The system will be initially created using a simple content management system. However, the long-term goal of this system requires that it be integrated with Plone. Therefore, the system design must provide for replacing the CMS with Plone in the future.The long-term goals for the system include having data uploaded automatically from a variety of stations around the world. The system must allow, in the future, the inclusion of uploads and data searches via web services and grid services.The long-term goals of the system include allowing users to analyze data using a variety of statistical analysis software packages. The design of the system should provide for adding additional software analysis packages.

2.5. Assumptions and DependenciesThe SEL will provide a system running PLONEa Postgres database, R, and the CMS.

The user interfaces for the system will be further specified after executable prototypes have been reviewed by the client. In particular, the prototypes must demonstrate usable interfaces for editing data, plotting data, displaying results, and the advanced search functions.

The plotting functions and options will be a subset of the options provided by the open source software package R.

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 28

AWSD Software Requirements Specification

3. Specific Requirements

3.1. External Interface Requirements

3.1.1. User Interfaces[REQ 1] The system shall use standard user interface controls such as buttons, text boxes, radio buttons, check

boxes, labels, list boxes, spin boxes, combo boxes, sliders, scroll bars, tabs, tool tips, progress bars, and file selection dialogs [Galitz pp 443-552 et al].

[REQ 2] Each page of the system shall have a help option. The help should be most relevant to the page from which help is invoked.

[REQ 3] Each help page shall provide a link to the main help page.[REQ 4] The system shall allow access to an interface depending on the class of the user, according the

description in Table 1: User Access Levels and Permissions.

3.1.1.1. Home Page[REQ 5] The home page shall provide links to the Login, System Help, Contact Us, and Register pages.[REQ 6] The home page shall display a brief description of the goals of the project and an introduction to the

system.

3.1.1.2. System Help Page[REQ 7] In the help interface, the system shall display information on how to use and navigate through the

system. Help shall be available for Register, Update Account, Search, Reduce and Analyze Data, Plot Data, Download Data, and Upload Data.

[REQ 8] The help interface shall provide images of relevant screen capture to help guide a user.[REQ 9] The help interface shall provide an overview of the system for guest users.

3.1.1.3. Contact Us[REQ 10] The contact us page shall display the street and mailing address of the SEL and the email and

office phone numbers of the SEL principle investigators.

3.1.1.4. Register Page[REQ 11] The register page shall provide a form for a Guest user to become a Registered user. The

input fields for this form shall be First Name (required) , Last Name (required), Email (required), Organization/Company , Password (required), and Confirm Password (required).

[REQ 12] The register page shall display a description of why registration is necessary and the privacy policy of the SEL and the AWSD.

3.1.1.5. Login Page[REQ 13] In the log in page, the system shall display two input fields: one for the user’s username and

another one for the user’s password.[REQ 14] In the log in page, the system shall provide a “Forgot password” option.

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 29

AWSD Software Requirements Specification

Figure 3: Simple Search Page

3.1.1.6. Simple Search Page[REQ 15] The simple search page the system shall provide an interface for a user to select or input the

following parameters: Weather station, sensors, sensor units of measure, start date, end date, start time, and end time. An example screen is shown in Figure 3: Simple Search Page.

[REQ 16] The simple search page shall display any stations that this user has either queried in the past or for which this user is authorized to upload data. 

[REQ 17] The simple search page shall provide an interface for searching for weather stations based on station location (longitude and latitude) or from the station’s location on a map.

[REQ 18] The simple search page shall provide a default start and end date to each query. The default start date shall be the earliest date in the weather database and the default end date shall be the current date.

[REQ 19] The simple search page shall provide an interface for searching for modifications to the weather database. This interface shall prompt for a start and end date. The default values of both dates shall be the current date.

3.1.1.7. Advanced Search PageThe advanced search functions are not completely specified. The system developers will need to prototype this function, and the system specification will be completed after the client reviews the prototypes.[REQ 20] The advanced search page shall have a query-builder-based interface that allows the user to

input the query.[REQ 21] The advanced search page shall provide an interface for selecting data based on multiple

stations, data ranges, and matching metadata. [REQ 22] The advanced search page shall provide an interface for selecting day or night. Day or night

shall be obtained from solar time tables using the longitude, latitude, and time zone of the weather station.

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 30

AWSD Software Requirements Specification

3.1.1.8. Results The results page displays the active dataset. The active dataset is produced either by a search (simple or advanced) or by data analysis or reduction. In simplest terms, the active dataset is a table of data.

[REQ 23] The results page shall display the active dataset in tabular form. The first row of the display shall be the column headers.

[REQ 24] The results page shall display options for data reduction, data plotting, and data downloading.

3.1.1.9. Data Reduction and Analysis Data reduction and analysis is potentially a complex and open-ended feature. Items that the clients would like, but are not requesting in this release, include statistical hypothesis tests to choose between two alternatives (for or against test), simple and composite hypotheses, regions of acceptance and regions of rejection, class naming, classification methods, and machine learning (e.g. neural network) classification methods. Refer to [R 2004] and [Bishop 2007] for more information on statistical testing and machine learning, respectively.

[REQ 25] The data reduction page shall provide options for the following operations: select data columns (sensors from weather stations), select data rows (e.g., a time range), select reduction function, or select data analysis function.

[REQ 26] The data reduction page shall display a list of all the weather stations associated with the active dataset,

[REQ 27] For each weather station selected for data reduction, the data reduction page shall display a list of the active sensors on the relevant weather station.

[REQ 28] The data reduction interface shall display a list of reduction functions including minimum, maximum, mean, variance, and standard deviation.

[REQ 29] The data reduction page shall provide an interface for allowing the user to specify Boolean expressions to be entered. For example, a user shall be able to enter an expression that selects all of the times for which the temperature at a specified sensor is greater than some minimum temperature. Examples of queries are listed in Appendix D: Example Queries.

[REQ 30] The data reduction page shall allow user to select one, two, or more columns of data from the active dataset.

[REQ 31] The data reduction page shall allow user to select among the following values to be computed for a single column of data: median, mode, skew, or kurtosis.

[REQ 32] The data reduction page shall allow user to select a specific spline, for a given column of data, as a curve fitting method. User will be able to select an interval, [t0,T], over which the curve fitting method is applied. For the given time interval [t0,T], user will be able to select a partition of the time interval [ti, ti+1] for i=0,…,N-1 with tN = T, and a degree with the polynomial fitting the curve on each subinterval, to specify the spline.

[REQ 33] The data reduction page shall allow user to select either covariance or correlation coefficient to be computed for two columns of data.

[REQ 34] The data reduction page shall allow user to select either covariance matrix or correlation matrix to be computed for 3 or more columns of data.

3.1.1.10.Plot Data[REQ 35] The plot data page shall provide an interface to select options specifying graph parameters. [REQ 36] The plot data page shall allow user to select y and x axis information. [REQ 37] For a single variable, the plot data page shall allow user to select type of graph from the

following types: discrete plot, continuous plot, histogram, density plot, pie chart, and Box plot.[REQ 38] For two or more variables, the plot data page shall allow user to represent a scatterplot graph

or scatterplot matrix of the data.[REQ 39] The plot data page shall have buttons indicating the type of plot to be generated. That is, each

type of plot shall have a button associated with it, and selecting that button shall result in the creation of that type of plot.

[REQ 40] The plot data page shall provide an interface to the options available in R for plots.[REQ 41] The plot data page shall provide an interface allowing the user to specify a title of a graph. 

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 31

AWSD Software Requirements Specification

[REQ 42] The plot data page shall provide a help option which contains instructions on how to generate a graph and what are valid parameters. 

[REQ 43] The plot data page shall provide the user an interface for plotting more than one column of data on the y-axis. Each plot shall have a different y-axis range and y-axis label.

3.1.1.11.Display Plot[REQ 44] The display plot page shall display the plot created by R and the user interactions with the plot

data page.[REQ 45] The display plot page shall display an option for saving a plot. [REQ 46] The display plot page shall support the specification of plot titles, plot axes titles, plot axes

scales, and plot legends.

3.1.1.12.Save Search[REQ 47] The save search page shall provide an interface for saving and naming searches.[REQ 48] The save search page shall allow a user to name a search query for replay. Naming a query

for replay provides the capability to re-execute the identical query.[REQ 49] The save search page shall provide an interface for creating a query template. A query

template is a parameterized query. When this query is replayed, the system prompts the user to specify values for the parameters.

3.1.1.13.Download[REQ 50] The download page shall provide an interface for the user to specify a file location.[REQ 51] The download page shall provide the option to specify that the user be notified if a dataset

changes.

3.1.1.14.Edit User Profile[REQ 52] The edit user profile page shall display the current values of user profile parameters.[REQ 53] The edit user profile page shall provide an interface for modifying current values of user

profile parameters.[REQ 54] The user profile parameters shall include the user email address, password, name, and mailing

address.

3.1.1.15.Data Provider Home[REQ 55] The data provider home page shall provide links to the Simple Search, Configure Station,

Upload Data, and Edit Weather Data pages.

3.1.1.16.Configure Station[REQ 56] The configure station page shall provide an interface for a Data Provider to add or modify

weather station configurations. [REQ 57] The configure station page shall provide an interface for changing the in-service date, the

location, and the sensors on a weather station. It shall also provide an interface for editing metadata for the sensors and weather station.

[REQ 58] The configure station page shall provide a list of sensors for other stations that will allow a user to select a similar sensor from a different station to populate values in the current sensor configuration. Fields in the form for values that must change between sensors (such as the serial number) shall be cleared when the form is initially displayed.

3.1.1.17.Configure Data Flag AlgorithmThe configure data flag functions are not completely specified. The system developers will need to prototype this function, and the system specification will be completed after the client reviews the prototypes.[REQ 59] The configure data flag page shall allow the Data Provider an interface to modify quality

check parameters.

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 32

AWSD Software Requirements Specification

[REQ 60] The configure data flag page shall display the current quality check parameters. [REQ 61] The developers shall prototype this function The system developers shall prototype this

function, and system specification shall be completed pending review by the client.[REQ 62] The system shall use four types of data flagging algorithms: absolute sensor range, maximum

rate of change, maximum unchanged data interval, and sensor combinations.[REQ 63] For absolute sensor range, the system shall provide an interface for specifying the minimum

sensor value, the maximum sensor value, and the units of the sensor values.[REQ 64] For maximum rate of change, the system shall provide an interface for specifying the

maximum rate of change. Maximum rate of change includes a sensor quantity and a time interval. The units of both components must be included. An example is “10.0 degrees C per minute”.

[REQ 65] For maximum unchanged data interval, the system shall provide an interface for specifying a time interval.

[REQ 66] For sensor combinations, the system shall provide an interface for specifying conditions based on two or more sensors.

[REQ 67] The system shall support the data flagging language specified in Appendix G: Data Flagging.

3.1.1.18.Upload Data[REQ 68] The upload data page shall provide an interface for selecting one or more files on the user’s

machine for uploading.[REQ 69] The upload data page shall display a list of weather stations for which the user has authority

to upload data.[REQ 70] The upload data page shall provide an interface for entering notes about the weather station or

the data.[REQ 71] The upload data page shall display the header information for the weather station selected for

upload.[REQ 72] The upload data page shall display the header information from the file being uploaded.[REQ 73] The upload data page shall provide an interface for mapping headers from the upload file to

the headers in the weather station data.

3.1.1.19.Edit Weather DataA suggestion for an interface for editing weather data is given in Figure 4: Suggested Edit Weather Data page.

[REQ 74] The edit weather data page shall provide an interface to select a set of sensors and specify a date range.

[REQ 75] The edit weather data page shall provide an interface to modify data elements for a set of sensors by a constant amount or a percentage.

[REQ 76] The edit weather data page shall provide an interface to enter a regular expression, a mathematical function that computes the new value of sensor readings.

3.1.1.20.Administrator Home[REQ 77] The administrator home page shall provide links to the Simple Search, Data Provider Home,

Configure Station, Edit Weather Data, Upload Data, Manage Users, System Configuration, and Generate Reports pages.

3.1.1.21.Manage Users[REQ 78] The manage users page shall display a list of user names, user emails, user access levels, and

the date and time of last login. [REQ 79] The manage users page shall display a search dialog for filtering the users. The dialog shall

include options for filtering based on user name, user access level, time of last access, and email address.[REQ 80] The manage users page shall provide a mechanism for an Administrator to select a user.[REQ 81] The manage users page shall display all of the information for a selected user and provide an

interface for changing any of the values. Values include First name Last name

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 33

AWSD Software Requirements Specification

Email address Organization (if available) Account type (Registered User or Administrator)

3.1.1.22.System Configuration[REQ 82] The system configuration page shall provide an interface for displaying and changing the time

interval for update notification check.[REQ 83] The system configuration page shall provide an interface for specifying and changing the path

to files required by the system, e.g., the path to the executable image of R.

3.1.1.23.Generate Reports[REQ 84] The generate reports page shall provide an interface for displaying and selecting the reports

listed in Table 2: Administrator Reports

3.1.1.24.View Report[REQ 85] The view reports page shall display the results of generating reports as a table. The same

operations shall be provided as for a Results page.

3.1.2. Hardware Interfaces No hardware interface requirements were identified.

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 34

AWSD Software Requirements Specification

Figure 4: Suggested Edit Weather Data page

3.1.3. Software Interfaces[REQ 86] The system shall use the PostgreSQL database management system to store weather data.[REQ 87] The system shall use the Plone content management system and Zope tools for the web

interface.[REQ 88] The system shall use the R project data processing software for data analysis and plotting.

3.1.4. Communications Interfaces No communications requirements have been identified.

3.2. Behavioral Requirements

3.2.1. Same Class of User[REQ 89] The system shall support four classes of users: Guest, Registered User, Data Provider, and

Administrator. [REQ 90] The system shall treat any user as a Guest until the user has logged in successfully.[REQ 91] Once a user has successfully logged in, the system shall treat the user as a Registered User, a

Data Provider, or an Administrator, according to the user’s access level.

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 35

AWSD Software Requirements Specification

[REQ 92] The system shall restrict access to pages as show by Table 1: User Access Levels and Permissions.

[REQ 93] The system shall allow a Guest to register by filling in a form and submitting it. [REQ 94] As soon as a Guest registers, he or she shall be allowed to log in as a Registered User.[REQ 95] Only an Administrator shall be able to create or promote users with Data Provider or

Administrator rights.[REQ 96] The system shall have at least one Administrator account.[REQ 97] When a Data Provider configures a weather station, he or she shall have the option to allow

other Data Providers the authorization to upload data for this station. By default, the Data Provider who configures a weather station shall have authorization to upload data for that station.

[REQ 98] The system shall allow a Data Provider to upload data only for weather stations for which the Data Provider is authorized.

Table 1: User Access Levels and PermissionsGuest Registered

UserData

ProviderAdministrator

Home Page System Help Contact Us

Register Login

Simple Search Advanced Search

Results Data Reduction & Analysis

Plot Data Display Plot Save Search Download

Edit User Profile Data Provider Home

Configure Station Configure Data Flag Algorithm

Upload Data Edit Weather Data

Administrator Home Manage Users

System Configuration Generate Reports

View Report

3.2.2. Related Real-world Objects[REQ 99] The data stored in the database for each weather station, sensor, and value shall be as listed in

section 6 Appendix C: Database.

3.2.2.1. History [REQ 100] The system shall collect and store the following information:

Each weather station for which data is accessed and the user who accesses the data; Each weather station for which data is uploaded and the Data Provider who uploads the data; The query, date, time, and user associated with each data download; The query, date, time, and user associated with each request for update notification;

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 36

AWSD Software Requirements Specification

The date, time, explanation, and user name for each data set modification;[REQ 101] The system shall collect and store the following information about each weather station:

The in-service date; The addition or modification of each sensor; The location, including the time initially at that location and the time at which the station was

moved; The station out-of-service date;

3.2.2.2. Data Quality FlagData Quality Flags are further described in Appendix G: Data Flagging.

[REQ 102] Data quality flags shall include the following values: suspect, missing data, and data out of range.

[REQ 103] When a data value is flagged according to a data quality algorithm, the flag value shall be set and an additional text message shall be appended explaining the reason for the flag.

[REQ 104] The system shall allow a Data Provider to set data quality algorithms for each sensor.[REQ 105] The system shall allow a Data Provider to set data quality algorithms for types of sensors.[REQ 106] When a Data Provider has specified a data quality algorithm for a sensor, the system shall

execute the algorithm for each data value uploaded for that sensor at the time the data is uploaded.[REQ 107] When a Data Provider sets data quality algorithms for both a type of sensor and an individual

sensor of that type, the system shall execute both algorithms for the data values for that sensor.[REQ 108] Data quality algorithms for each sensor shall include a value range (maximum and minimum

values and units) and a maximum rate of change for a sensor.[REQ 109] Data quality algorithms shall include a comparison of related sensors. An example of such an

algorithm is this algorithm for a windspeed sensor: When the wind speed is 0.0 and the humidity is greater than 90% and the temperature is less than 1.0 degrees Celsius, flag the wind speed as suspect: icing.

3.2.2.3. Reports[REQ 110] The system shall provide Administrators access to the reports listed in Table 2: Administrator

Reports.

Table 2: Administrator ReportsTotal number of visitsTotal number of loginsTotal number of downloadsTotal number of queriesTotal number of uploadsTotal number data points uploadedTotal number of weather stations for which data was uploadedTotal number of registered usersGeographic distribution of registered usersSummary of flagged data

3.2.3. Stimulus[REQ 111] The pages in the system shall support the navigation indicated in Appendix A: Site

Navigation Map. This navigation shall take into account the user’s access level.[REQ 112] Help pages shall open in separate, non-modal windows.[REQ 113] When the user selects the forgot password option, the system shall email a new password to

the user at the email address entered by the user.[REQ 114] If the user is currently logged in, the “Log Out” control shall be enabled.[REQ 115] If the user is not currently logged in, the “Log In” control shall be enabled.[REQ 116] When user selects login, the system shall present the login page.

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 37

AWSD Software Requirements Specification

3.2.3.1. Home Page(This page has no actions other than to transfer to selected pages.)

3.2.3.2. System Help Page(This page has no actions other than to transfer to selected pages.)

3.2.3.3. Contact Us(This page has no actions other than to transfer to selected pages.)

3.2.3.4. Register[REQ 117] When the user inputs a character in the password input field the system shall hide the

character and display a special character instead.[REQ 118] The system shall require new passwords to be at least six characters in length.[REQ 119] If the user inputs a password that does not meet the password requirements, the system shall

display a message informing the user of the password requirements.[REQ 120] If the password and the confirm password input fields do not match, the system shall display a

message informing the user the password input fields do not match. The system shall redisplay the login form with all previously entered data except for the passwords.

[REQ 121] When the user inputs an email address that is not valid the system shall display a message with a sample valid email address. A valid email address uses standard characters a-z, the digits 0-9, and the hyphen and is of the form <user name> @ <domain>. Domain names must have at least two levels, as in “utep.edu”.

[REQ 122] When the user selects the control titled “Register”, if the registration is successful the system shall display a message informing the user of a successful registration and return to the system Home page.

[REQ 123] When the user selects the control titled “Register”, if the registration is unsuccessful the system shall display a message informing the user of an unsuccessful registration.

[REQ 124] When the user selects the control titled “Cancel”, the system shall cancel the registration application and return to the system Home page.

[REQ 125] After a Guest user submits a registration form, the system shall send a notification email to the email address provided by the user at the time of registration.

3.2.3.5. LoginSee also security requirements in section 3.3.2.2.[REQ 126] When the user inputs characters in the password input field, the system shall hide the

character and display a “*” character instead.[REQ 127] When the cursor is in the username text entry control and the user presses the enter key, the

focus shall move to the password text entry control.[REQ 128] When the cursor is in the password text entry control and the user presses the enter key, the

system shall validate the user. The system shall validate the user by comparing the password and email address to the password and email address in the user database. If the validation succeeds, the user shall be logged in. If the validation fails, the system shall display an error message indicating login failure and return to the login page.

[REQ 129] Upon successful login, the system shall display an entry page, depending on the access level of the user. For users with Administrator rights, the Administrator page shall be displayed. For users with Data Provider rights, the Data Provider page shall be displayed. For all other users, the Simple Search page shall be displayed.

[REQ 130] When the user is in the Login page and selects the control titled “Cancel”, the system shall return to the system Home page.

[REQ 131] When the user selects the control titled “Forgot Password”, the system shall reset the user’s password, email the password to the user’s email address, and display a message indicating the password has been sent via email.

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 38

AWSD Software Requirements Specification

3.2.3.6. Simple Search[REQ 132] When the user selects the search option from the Simple Search page, the system shall

construct an SQL query and execute that query by sending it to the DBMS.[REQ 133] When the user selects the search option from the Simple Search page and the user has not

filled in all parameters, the system shall ignore the unfilled parameters in selection.[REQ 134] When the user selects the search option from the Simple Search page, the system shall find all

of the queries and query templates saved by this user. The system shall display this list to the user.[REQ 135] When the user selects a saved query from the list on the Simple Search page, the system shall

execute the saved query.[REQ 136] When the user selects a saved query template from the list on the Simple Search page, the

system shall display the query and prompt for each marked field. The system shall create a query by replacing the marked field with the user-entered text.

[REQ 137] When the user selects the option to search for modifications to the weather databse from the list on the Simple Search page, the system shall execute a query and return the modification notes for all changes to the weather database between (and including) the dates specified by the user.

3.2.3.7. Advanced Search[REQ 138] When the user selects the search option from the Advanced Search page, the system shall

construct an SQL query and execute that query by sending it to the DBMS.[REQ 139] The system shall scan the SQL query for each advanced query to ensure that the query cannot

modify a database value and that there are no buffer overflows possible in the query. [REQ 140] When the system detects an invalid SQL query, it shall log the query in the system log and

report an error to the user.

3.2.3.8. Results[REQ 141] When the system executes a search, the results shall be displayed in the Results page as shown

in Figure 5: Results Interface.[REQ 142] When a search, either simple or advanced, succeeds, the system shall display the data in a data

table as described in Results 3.1.1.8.[REQ 143] The of a search result shall be labeled according to the sensor and units as written in the

weather station configuration.[REQ 144] When viewing the results page and the user selects the column header for a column, the

system shall sort the results table by that column. The first time a user sorts by a column, the values shall be sorted in ascending order. On successive selections, the order shall swap between ascending and descending order.

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 39

AWSD Software Requirements Specification

Figure 5: Results Interface

3.2.3.9. Data Reduction and Analysis[REQ 145] When the user selects a data reduction algorithm, a sensor, and a time interval, the system

shall apply the data reduction algorithm for the time interval to the selected data. The current active dataset shall be set to the result of this data reduction.

[REQ 146] The system shall allow a user to assign a data reduction method to each sensor in an active dataset.

[REQ 147] When viewing the result set in the Data Reduction page, once a data reduction method has been assigned to at least one sensor, the Select Periodicity control shall be enabled.

[REQ 148] When viewing the result set in the Data Reduction page, once a periodicity has been entered, the Reduce Data control shall be enabled.

[REQ 149] When viewing the result set in the Data Reduction page, when the user activates the Reduce Data control, the system shall compute a new result set by applying the selected data reduction method to the selected sensor fields in the current result set. The system shall display the Results page with the new active dataset.

[REQ 150] When the user selects a function for basic data analysis, the system shall display the results of applying the function to data.

[REQ 151] The system shall allow a user to save a script that contains the sequence of actions taken to reduce, analyze, and plot data. The script shall be stored in a form that allows a user to re-execute the analysis on the same data or on different data.

3.2.3.10.Plot Data[REQ 152] The system shall use the software system R to transform data sets into data frames [REQ 153] When the user selects data and a plot type, the system shall, by using R, generate a plot.

3.2.3.11.Display Plot[REQ 154] When R generates a plot, the system shall display the plot in a non-modal window.

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 40

AWSD Software Requirements Specification

3.2.3.12.Save Search[REQ 155] When the user selects to save a search, the system shall provide an interface for naming the

search, saving the exact search, making a template from the search query, and registering the search for notification.

[REQ 156] The system shall only allow a user to save one search under a given search name. The name of the search need only be unique for a given user.

[REQ 157] To create a template for a search, the system shall prompt the user to identify the constants in the search query that the user wants to be able to replace. The system shall store the query with these fields marked.

[REQ 158] When a user registers a search for notification, the system shall save the search, update the notification log file, and save the checksum for the original query.

Figure 6: Display Graph Example Page

3.2.3.13.Download[REQ 159] When the user selects to download a datafile, the system shall create a CSV file containing the

data in the active dataset. The file shall contain a header row, and there shall be a column to the right of all data that contains metadata.

3.2.3.14.Data Provider Home(This page has no actions other than to transfer to selected pages.)

3.2.3.15.Configure Station[REQ 160] When the user selects a weather station in the configure station page, the system shall display

the current settings for the selected station.

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 41

AWSD Software Requirements Specification

[REQ 161] When the user selects a weather station in the configure station page, the system shall find all existing sensors in the database and provide a dropdown list for a user to select.

[REQ 162] When the user selects a sensor from a dropdown list, the system shall display a sensor configuration dialog with values copied from the existing sensor that may be shared. for example, the units of measure. Values that must be changed, such as the serial number, shall be cleared from the sensor form.

[REQ 163] When the user modifies elements in the configure station page, the system shall save the new values for the station in the weather database.

[REQ 164] When the user saves a station configuration, an email summarizing the new station configuration shall be sent to every Data Provider authorized to upload data for the station.

3.2.3.16.Configure Data Flag Algorithm[REQ 165] When the user configures a data flag algorithm, the algorithm shall be associated with a

particular sensor. [REQ 166] The system shall allow more than one data flag algorithm to be associated with a particular

sensor.TBD[REQ 167]

3.2.3.17.Upload Data[REQ 168] When a Data Provider selects to upload data, the system shall guide the user through the

following sequence of activities: Data Provider selects a weather station. Data Provider selects a set of input files. Data Provider specifies a time interval for each input file. The system scans the file header of each input file and the metadata for the weather station. The system attempts to match the columns of input data in upload file with weather station metadata. Data Provider confirms or modifies matching. The system runs the data quality checks. The system displays the results of quality checks. Data Provider confirms upload. The system reads the data and adds the data to the weather database.

[REQ 169] When the system prompts a Data Provider to select a weather station, it shall display a list of all the weather stations for which this Data Provider is authorized to upload data. No other weather stations shall be displayed.

[REQ 170] When the Data Provider selects a weather station from the list of stations, that station becomes the upload target station.

[REQ 171] When the Data Provider selects a file for upload, the system shall scan the file to identify the header elements in the file and the start and end time of the data in the file. The system shall also attempt to identify the time interval for data in the file. This time interval is the default time interval.

[REQ 172] When the system identifies the initial and final time in the upload file and the default time interval, it shall display these to the Data Provider and allow the Data Provider to modify these values.

[REQ 173] When the Data Provider enters or accepts the time interval and initial and final time, the system shall read the header row from the upload file and acquire the data fields specified for the weather station. The system shall attempt to match the elements of the header with the fields in the weather station configuration. The system shall display this matching and provide an interface to allow the Data Provider to modify or add to the match.

[REQ 174] When the Data Provider selects or accepts the matching, the system shall identify any weather station field for which no upload file element has been identified. If such fields exist, the system shall prompt the Data Provider to confirm that no data is available for these fields.

[REQ 175] When the Data Provider accepts the matching of weather station fields to upload file data, the system shall create a data set with empty data values except for the time entries. Time entries shall be computed from the initial and final times and the time step. The system shall then read the upload data file and populate the data set by filling elements of the data set with the data read from the file, taking into account the matching between weather station fields and the upload file.

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 42

AWSD Software Requirements Specification

[REQ 176] When the data from the upload file has been read into a data set, the system shall execute each of the data data flag algorithms associated with a particular sensorquality checks. Data elements failing the data quality checks shall be flagged. Data flagging is described in Appendix G: Data Flagging.

[REQ 177] When the system has completed executing the data quality checks, the system shall display the results of the checking operations to the Data Provider. The system shall prompt the Data Provider to accept or reject the data.

[REQ 178] When the Data Provider accepts the data, the data shall be appended to the weather database and made available to Data Providers. When the Data Provider rejects the data, the system shall transfer to the edit data page.

[REQ 179] When a Data Provider attempts to upload a data file, the system shall verify the data has not already been uploaded.

[REQ 180] While the system is uploading a dataset, the system shall estimate the amount of time required for upload. If the time estimate is more than 1 second, the system shall display a progress bar that indicates the percentage of the file uploaded. This progress bar shall be updated every second.

[REQ 181] As soon as a Data Provider makes a successful upload, the system shall notify the Data Provider of the successful upload.

3.2.3.18.Edit Weather Data[REQ 182] When a Data Provider modifies a dataset using the edit weather data interface, the current

data shall be marked as archived, and new data shall be added to the database.[REQ 183] When a Data Provider enters a formula for editing data, the system shall compute new values

for the sensors based on the formula. New values are saved as the value of the sensor at the given time. Searches shall access the new values unless a search explicitly specifies archived data.

[REQ 184] When a Data Provider modifies a dataset, the system shall require that the Data Provider enter an explanation. The explanation, the date, the time, and the Data Provider’s email address shall be added to the system log file.

3.2.3.19.Administrator Home(This page has no actions other than to transfer to selected pages.)

3.2.3.20.Manage Users[REQ 185] When the user selects the Modify a User Profile option, the system shall provide a search

interface to locate a user profile.[REQ 186] When the user locates a user profile to modify, the system shall display the Edit User Profile

page. This page shall be populated with the selected user’s information.[REQ 187] When the user selects the “Add a User” option, the system shall display the Edit User Profile

page.

3.2.3.21.System Configuration[REQ 188] When the user selects the “System Configuration” option from the System Configurations

page, the system shall display the System Configuration interface.[REQ 189] The system configuration interface shall provide an Administrator the ability to set the time

interval for the notification function.

3.2.3.22.Generate Reports[REQ 190] When an Administrator selects the Reports option, the system shall display the reports in

Table 2: Administrator Reports.[REQ 191] When an administrator selects a report from the administrator reports list, the system shall

generate and display the report according to the description in Table 2: Administrator Reports.

3.2.3.23.View Report[REQ 192] The view report page shall provide an interface to support data reduction as in 3.2.3.9 Data

Reduction, and data analysis as in 3.2.3.9.

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 43

AWSD Software Requirements Specification

3.2.3.24.Timer[REQ 193] User Notification shall be triggered on a regular interval by the system clock according to the

time set in the system configuration. (See also section 3.2.4.9, Notify Users.)

3.2.4. Related Features

3.2.4.1. SearchSee section 3.2.3.6 Simple Search..

3.2.4.2. Reduction and AnalysisSee section 3.2.3.9 Data Reduction.

3.2.4.3. PlottingSee section.3.2.3.10 Plot Data.

3.2.4.4. DownloadSee section3.2.3.13 Download..

3.2.4.5. UploadSee section 3.2.3.17, Upload Data.

3.2.4.6. Mange Users[REQ 194] When an Administrator selects the manage user option, the system shall provide an interface

for searching for users.[REQ 195] When an Administrator selects a user in the manage user interface, the system shall display

the user information, including the user email address, the user’s most recent access time, the number of times the user has accessed the system in the past 90 days, the number of queries executed by the user, the number of data downloads and uploads performed by the user, and the user’s access level.

[REQ 196] The manage users page shall provide an interface for changing the user’s password.[REQ 197] The manage users page shall provide an interface for changing a user’s access level.

3.2.4.7. Register See section 3.2.3.4, Register.

3.2.4.8. System Administration ReportsSee section 3.2.3.22, Generate Reports.

3.2.4.9. Notify UsersThe intent of this requirement is to notify a user if data upon which they depend is changed. Two issues of importance are false positive and false negative assessments. A false positive would indicate to a user that data has changed when in fact they did not. A false negative would not indicate that data has changed when in fact they did. False negatives must be avoided. However, the system should minimize the number of false positives. One acceptable approach is to use a cyclic redundancy check such as CRC-32-IEEE 802.3 or CRC-64-ISO and store the CRC for each query. When the weather database is changed, re-execute the queries and compare the CRCs. This will minimize the false positives and make false negatives extremely unlikely.

[REQ 198] The system shall notify users, via email, when the results of a saved query that has been marked for update notification change due to modification of the weather database, either through the addition of data or modification of data via editing.

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 44

AWSD Software Requirements Specification

[REQ 199] The system shall notify users, via email, when data for a weather station that the user has marked for update notification is uploaded by a Data Provider.

3.2.5. Functional

3.2.5.1. Data Flagging[REQ 200] When data is uploaded or whenever an Administrator or Data Provider wants, a data flagging

check shall be run on the uploaded or selected data set. [REQ 201] The data flagging check shall apply a data flagging algorithm to data for each sensor value,

according to the data flagging algorithm and parameters in the weather station configuration.[REQ 202] The system shall detect if there is missing data in terms of data logging intervals, changes in

data logging intervals at a given station, and will notify the Administrators and the Data Provider. 

3.2.5.2. Upload Weather DataSee section 3.2.3.17, Upload Data.

3.3. Non-behavioral Requirements

3.3.1. Performance Requirements[REQ 203] The system shall support at least 10 simultaneous users making requests for data, uploads, or

administrative tasks.  [REQ 204] The system shall complete 95% of upload and query requests in twenty seconds or less.

3.3.2. Qualitative Requirements

3.3.2.1. Availability [REQ 205] The system shall create a system checkpoint before uploading or editing data.[REQ 206] System checkpoints shall contain enough information to return the weather database to its

current state, i.e., the state prior to any modification.[REQ 207] The system shall provide Administrators with the ability to rollback the database to any

checkpoint.

3.3.2.2. Security[REQ 208] The system shall encrypt the passwords in the DBMS.[REQ 209] The system shall ensure that SQL queries for data search do not modify weather data. [REQ 210] The system shall ensure that only Administrators and Data Providers modify data in the

weather database.[REQ 211] The system shall ensure that only Administrators modify data in the user database.[REQ 212] The system shall log a user off automatically after a time interval (set by the administrator) of

no activity occurs. The default time interval shall be 30 minutes.[REQ 213] The system shall accept as input for login both the username and the password before issuing

any error message on failed login attempt. On login failure, the system shall not indicate which element was incorrect.

[REQ 214] When validating the username and password, passwords shall not be transmitted in cleartext.[REQ 215] The system shall maintain a log file containing the history of queries and data updates and the

associated user, date, and time of changes.

3.3.2.3. MaintainabilityNo requirements related to system maintainability were identified.

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 45

AWSD Software Requirements Specification

3.3.2.4. Portability[REQ 216] The system’s web interface shall be displayable on the following web browsers: Microsoft

Internet Explorer 7, Mozilla Firefox 3.

3.3.3. Design and Implementation Constraints[REQ 217] The system shall be designed so that the content management system can be replaced with

minimal impact on the rest of the system.[REQ 218] The system shall be designed so that the DBMS, Postgres, can be replaced with minimal

impact on the rest of the system.[REQ 219] The system shall be designed so that access to the DBMS and to the data analysis functions

can be integrated with web services so that automated data collection can be supported.[REQ 220] The ZOPE framework shall be installed and configured on the hosting machine.[REQ 221] The system shall require PostgreSQL to be installed and configured on the hosting machine.[REQ 222] The system shall require PHP 2.4.6 to be installed and configured on the hosting machine.[REQ 223] The web interface shall be implemented using Plone [3].

3.4. Other Requirements

3.4.1. Database[REQ 224] The system shall checkpoint an independent set of data prior to uploading new weather data. [REQ 225] The system shall allow the Administrator to rollback the data in the weather database to a

previously checkpointed state. [REQ 226] The system shall keep track of the Data Providers and Administrators by username when data

is uploaded or modified.[REQ 227] The system shall not allow the modification of series serial numbers associated with uploaded

metadata. [REQ 228] The system database shall be third form normalized. [REQ 229] The system shall keep track of provider uploads, this includes date and time uploaded,

provider’s email, and metadata of the data set being uploaded. 

3.4.2. OperationsNo site requirements related to site operations were identified.

3.4.3. Site AdaptationNo site adaptation requirements were identified.

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 46

AWSD Software Requirements Specification

4. Appendix A: Site Navigation Map

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 47

AWSD Software Requirements Specification

5. Appendix B: MetaData Fields for HOBO Stations• Series• Logger info• Model• Serial number• Memory size• Deployment• Series Info• Points Used• First Point• Last Point• Duration• Stats• Wrap Count• Max Value• Min Value• Avg Value• Launch Parameters• Load Time• Launch Time• Logging Time• Sampling Interval• Sub Interval• Triggered Start Flag• Wrap• Battery Type• Start of Sensors• End of Data• Wrap Count• Display Units• Time Zone• Description String• Deployment Notes

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 48

AWSD Software Requirements Specification

6. Appendix C: Database

Entity Description AttributesWeather Station A weather station containing a number of sensors Location (Longitude, latitude, city,

state, zip, Serial Number Altitude Sensor listMetadata (pictures, flora,

descriptions)In-service dateStation NameDescriptionData Logger serial numberPhotographsMaintenance HistoryCalibration HistoryNotesReferences from work on stationContact information

Sensor A device for quantifying attributes of the environment, such as a thermometer, an anemometer, or a barometer.

TypeNotesSerial numberIn-service dateWeather stationUnits

Datum The value read by a sensor at a given time. SensorDate & Time Archive bit (indicating that this is

an archived, as opposed to current corrected, data value)

Data valueData Flag

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 49

AWSD Software Requirements Specification

7. Appendix D: Example Queries

Example queries:1. Calculate the average temperature for January. I need to know if there is missing data.2. What is the average wind speed when it is raining?3. Show me the average temperature and total rainfall for June, July, and August.4. Show me the average temperature and total rainfall for 2008 for all weather stations at Indio.5. Show me the flagged data and which data have been modified. Show me why the data was modified.6. Is temperature from Station A correlated with Temperature from Station B7. What is the monthly thaw degree day values for temperature at Station A8. How many freezing and thawing cycles were documented at Station A.? 9. Calculate the dew point temperature for Station A.10. What was the wind chill at Station A.

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 50

AWSD Software Requirements Specification

8. Appendix E: Sample Upload Dataset

"Plot Title: 1291331 ""#","Time, GMT-07:00","Rain, in()","Wind Speed, mph()","Gust Speed, mph()","Pressure, in Hg()","Temp, °F()","RH, %()"1,01/23/09 10:48:19 PM,0.000,0.00,0.00,26.1444,71.317,34.7002,01/23/09 10:49:19 PM,0.000,0.00,0.00,26.1473,71.317,34.7003,01/23/09 10:50:19 PM,0.000,0.00,1.70,26.1444,71.317,34.6004,01/23/09 10:51:19 PM,0.000,0.00,1.70,26.1444,71.274,34.3005,01/23/09 10:52:19 PM,0.000,0.85,3.40,26.1473,70.974,34.5006,01/23/09 10:53:19 PM,0.000,0.00,3.40,26.1473,68.527,37.6007,01/23/09 10:54:19 PM,0.000,0.00,0.00,26.1473,66.472,40.9008,01/23/09 10:55:19 PM,0.000,0.00,0.00,26.1503,64.589,43.3009,01/23/09 10:56:19 PM,0.000,0.00,0.00,26.1473,62.919,45.70010,01/23/09 10:57:19 PM,0.000,0.00,0.00,26.1532,61.419,48.50011,01/23/09 10:58:19 PM,0.000,0.00,0.00,26.1503,60.003,50.70012,01/23/09 10:59:19 PM,0.000,0.00,0.00,26.1473,58.798,52.70013,01/23/09 11:00:19 PM,0.000,0.00,0.00,26.1503,57.850,54.30014,01/23/09 11:01:19 PM,0.000,0.00,0.00,26.1473,57.204,55.80015,01/23/09 11:02:19 PM,0.000,0.00,0.00,26.1503,56.556,56.90016,01/23/09 11:03:19 PM,0.000,0.00,0.00,26.1503,56.035,58.10017,01/23/09 11:04:19 PM,0.000,0.00,0.00,26.1532,55.819,59.20018,01/23/09 11:05:19 PM,0.000,0.00,0.00,26.1532,55.472,60.00019,01/23/09 11:06:19 PM,0.000,0.00,0.00,26.1532,55.256,59.70020,01/23/09 11:07:19 PM,0.000,0.00,0.00,26.1532,54.909,60.70021,01/23/09 11:08:19 PM,0.000,0.00,0.00,26.1532,54.473,60.70022,01/23/09 11:09:19 PM,0.000,0.00,1.70,26.1562,53.951,61.00023,01/23/09 11:10:19 PM,0.000,0.00,0.00,26.1532,53.645,62.30024,01/23/09 11:11:19 PM,0.000,0.00,0.00,26.1562,53.427,63.80025,01/23/09 11:12:19 PM,0.000,0.00,0.00,26.1562,53.253,64.10026,01/23/09 11:13:19 PM,0.000,0.00,0.00,26.1532,53.121,64.40027,01/23/09 11:14:19 PM,0.000,0.00,0.00,26.1503,52.992,64.60028,01/23/09 11:15:19 PM,0.000,0.00,0.00,26.1591,52.860,65.20029,01/23/09 11:16:19 PM,0.000,0.00,0.00,26.1562,52.772,65.60030,01/23/09 11:17:19 PM,0.000,0.00,0.00,26.1591,52.729,66.00031,01/23/09 11:18:19 PM,0.000,0.00,0.00,26.1591,52.641,66.20032,01/23/09 11:19:19 PM,0.000,0.00,0.00,26.1591,52.554,66.80033,01/23/09 11:20:19 PM,0.000,0.00,0.00,26.1591,52.554,67.00034,01/23/09 11:21:19 PM,0.000,0.00,0.00,26.1621,52.509,67.00035,01/23/09 11:22:19 PM,0.000,0.00,0.00,26.1621,52.466,67.30036,01/23/09 11:23:19 PM,0.000,0.00,0.00,26.1591,52.378,67.10037,01/23/09 11:24:19 PM,0.000,0.00,0.00,26.1621,52.115,66.60038,01/23/09 11:25:19 PM,0.000,0.00,0.85,26.1621,51.940,67.70039,01/23/09 11:26:19 PM,0.000,0.85,2.55,26.1562,51.852,68.50040,01/23/09 11:27:19 PM,0.000,0.85,2.55,26.1562,51.984,69.50041,01/23/09 11:28:19 PM,0.000,0.00,0.85,26.1591,52.072,69.30042,01/23/09 11:29:19 PM,0.000,0.00,0.00,26.1591,52.029,69.10043,01/23/09 11:30:19 PM,0.000,0.00,0.00,26.1591,52.029,69.30044,01/23/09 11:31:19 PM,0.000,0.00,0.85,26.1532,52.029,69.30045,01/23/09 11:32:19 PM,0.000,0.00,0.85,26.1562,52.072,70.00046,01/23/09 11:33:19 PM,0.000,0.00,1.70,26.1532,52.115,69.800

UTEP Software Engineering 2009 5/8/2023 4:47 AM Page 51

Software Requirements Specification

9. Appendix F: Class Diagram: DataIn this class diagram, we explicitly avoid have subclasses of sensor for sensor type. Instead, the type is an attribute.

Software Requirements Specification

10. Appendix G: Data FlaggingThe purpose of data flagging is to alert a user to possible problems with a data element. Data flagging consists of executing one or more tests on a data element and marking the data element when the test succeeds. The test may require that other data elements be consulted. For example, a test may compare a given data element to a previous value or to the current value of a data element from a nearby sensor.

The specification of an algorithm requires that the data element be named and a message indicating the reason for the flag be given. The algorithm specification is shown below.

<ALGORITHM> ::= “flag <SENSOR> as <FLAG> when <BCONDITION> [<MESSAGE>]”

<SENSOR> : A sensor specification that labels a particular sensor and a particular weather station.<FLAG> ::= “suspect” | “missing data” | “data out of range”<MESSAGE> : A text string describing why this field is being flagged.<BCONDITION> ::= <BPRIMATIVE> [ <BOOLOP> <BPRIMATIVE >]*<BPRIMATIVE > ::= ( <EXPRESSION> <COPERATOR> <EXPRESSION> ) <EXPRESSION> ::= <VALUE> [<OP> <VALUE>}*<VALUE> ::= <SENSOR> | <CONSTANT> | <FUNCTION> | ( <EXPRESSION>)<FUNCTION> : A function name and a parameter list; the function names include DELTA, UNCHANGED, AVERAGE<COPERATOR> ::= “>” | “<” | “<=” | “>=” | “!=” | “~=” | “==”<BOOLOP> ::= “and” | “or” | “xor”<OP> ::= “+”, “-“, “*”, “/”

Examples:

Flag “1291331:Temp F” as “data out of range” when (“1291331:Temp F” > 200 F) or (“1291331:Temp F” < -100F)

Flag “1291331:Temp F” as “data out of range” when (DELTA(“1291331:Temp F”) > 20 F/minute)

Flag “1291331:Temp F” as “suspect” when (UNCHANGED(“1291331:Temp F”, 20 minutes)

Flag "1291331:Wind Speed, mph()" as “suspect” when (“1291331:Temp F” ~= 32F) AND ("1291331:RH, %()" > 40 %) AND ("1291331:Wind Speed, mph()" == 0.0) “Possible Frozen Sensor”

Flag GUST1 as “suspect” when (AVERAGE(WSPD1, 30 minutes) / GUST1) > 0.9 AND GUST1 > 5.0 meters per second “Failed Gust_to_Mean Speed Ratio Check”

NOTES:

“~=” is approximately equal. A value x is approximately equal to a value y if x is within 1% of y. DELTA is computed by taking the difference between the current and the previous reading and dividing it by

the time difference between the two readings. UNCHANGED is computed by reading previous sensor readings in order until a previous reading is not equal

to the current reading. The value returned is the time span between since the last unequal sensor reading. The intent is to discover sensors that are not responding. It does not make sense for the time interval specified to be less than the sample rate.

AVERAGE is a function that takes a sensor and a time span and returns the average of the sensor values collected in the past time span.