Software Requirements Specification: Wildlife Areas Habitat Conservation Plan
Software Requirements Specification: Wildlife Areas Habitat Conservation Plan
Specification
Version 1.1
May 10, 2007
Prepared by:
GeoNorth LLC
Prepared for:
Washington Department of Fish and Wildlife
Document Revision History
1.1. Purpose
This Software Requirements Specification (SRS) describes the functional and nonfunctional
requirements for Release 1.0 of the Habitat Conservation Plan’s (HCP) Activities Management
Application. Members of the project team that will implement and verify correct functioning of the
system will use this document as a guide. Unless otherwise noted all requirements specified
here are Mandatory and committed for Release 1.0.
Environment Standards
Desktop Operating System: Microsoft Windows 2000 SP4 or XP
Directory Services: LDAP
GIS: ArcGIS 9.2
GIS License: ArcView or Better ArcGIS Editor
Disconnected Database Types: Personal (MS Access)
Email: Groupwise (Outlook soon)
Office Applications: Microsoft Office (2000)
ArcSDE: ArcSDE 9.1 (ArcSDE 9.2 soon)
SQL Server Version 2000 (Migrating to 2005 soon)
CO- 4 Variables will be created using camel case (creating compound words or phrases in which
the words are joined without spaces and are capitalized within the compound with the first
letter of the variable lowercase).
CO- 5 Variables referencing ArcObjects com classes, interfaces, or objects will not be
abbreviated and will be dimensioned using a camel case naming convention. Do not use
pointers such as m_p or g_p as a prefix to ArcObjects classes/interfaces.
CO- 6 Do not use prefixes to variables such as int, str, lng, etc.
CO-7 In-line documentation for coding, flow chart and/or diagram – what each module does,
who did it and when it was done
Stimulus: User chooses the activity edit type (tabular or spatial) prior to editing.
Response: The system will set the edit environment based upon the type of activity edit.
Stimulus: When a spatial edit is selected, the user digitizes the new activity from scratch
or copies a feature from an existing layer. (See requirements)
Response: System creates a new activity feature and prompts the user if he/she wants to
digitize another.
Stimulus: When a tabular edit is selected, the user creates an activity record without
creating spatial data.
Response: The system will create and track the pending activity record in the database.
Stimulus: User chooses Event Type and creates a new activity record.
Response: The system creates a new activity record based on the activity event type, sets
the default values in the form.
Stimulus: User enters data in the form using text boxes and dropdown boxes.
Response: The system will require the confidence source to be set when entering data.
Stimulus: The user creates an activity record prior to creating spatial data.
Response: The tool will create a new activity record without linked spatial data.
Stimulus: User defines activity (ies) that are associated with the current editable activity
record.
Response: The system will store the list of activity (ies) associated with the activity feature
in a database table. All currently selected features are unselected.
Stimulus: The user optionally creates records for associated activities (if not completed
already)
Response: The system saves the current editable record and starts a new edit session for
the new activity. For those associated activities that records are not created
are displayed on the “To Do” list.
Stimulus: The user associates activities that are recorded to the current editable Activity
Record.
Response: The tool will record the association of a activity records with the selected
features on the map. In the case of coincidental features in a selection, the
user will be required to use existing tools in ArcGIS to deselect unwanted
records.
Stimulus: User selects the option to duplicate the spatial feature and/or attributes of the
activity record for the next new feature.
Response: The system will create a new feature by duplicating spatial features and/or
duplicate attribute records.
Stimulus: User chooses which fields (attributes) to be propagated into a new record.
Response: The system will propagate the selected field attribute values to the next record
created.
Stimulus: The user uses spatial tools to modify the spatial features of the activity record.
Response: The tool should activate the ArcGIS Editing tools for the user.
Edit.Functionality.Other The tool shall provide the same functionality found in the create
feature functionality.(Section 4.1)
Edit.Form.Functionality The tool shall allow the user to perform edits in the same form as
adding and querying data.
Edit.Select.Spatially The system shall provide the user with the ability to select
activity features through a spatial enabled user interface.
Edit.Select.Attribute The tool shall provide the user with a method to select an activity
feature based upon its attribute values.
Edit.Modification.Date The tool shall auto-populate the Modification Date field in the
activity feature class.
Edit.Modifcation.By The tool shall auto-populate the Modification By field in the
activity feature class.
SRS v1.1.doc - 10 - Printed on: 5/11/2007 10:03:00 AM
4.3. Query Activity Features
4.3.1. Description and Priority
This section describes the query functionality required by the Activities Management Tool.
(Mandatory)
Stimulus: The user uses the location query tool to query data.
Response: The system will automatically filter the activity form with the selected features.
Stimulus: The user may use the ArcGIS attribute query tool to query data.
Response: The system will automatically filter the activity form with the selected features.
Stimulus: The user uses the ArcGIS spatial selection tool to query data.
Response: The system will automatically filter the activity form with the selected features.
Stimulus: The user selects more than one feature or activity record.
Response: The tool should provide basic VCR style record navigation. (See section 4.3)
Query.Form.Functionality The tool shall allow the user to perform edits in the same form as
adding and querying data.
Query.Controls.Query The tool shall perform a query of the activity data when a user
selects a value from a dropdown list and when a user enters a
value in a text box.
Query.Controls.Navigation The tool shall provide controls that provide the easy navigation of
a selected set of records.
Query.Controls.Feature The tool shall zoom to and highlight the current activity record
displayed in the query/edit form if linked to spatial data.
Stimulus: When the system detects identical record ids with different modification dates
in spatial and/or tabular records, the user will be prompted to reconcile the
modified records.
Response: The system will post the selected data by the user to the enterprise database.
Stimulus: The user selects from a list the lookup table to modify.
Response: The system will load the appropriate lookup table into an edit form.
Stimulus: The user edits the lookup values in the form (Add/Modify).
Response: The system will modify the lookup table information.
PK MEASUREMENT_DESC_LUT_Id SMALLINT
ACTIVITY_SUBCLASS_LUT ACTIVITY_TYPE_Desc VARCHAR(65)
Obsolete_Flag BIT ACTIVITY_PR_CODE_R MEASUREMENT_DESC_LUT_Desc VARCHAR(50)
PK ACTIVITY_SUBCLASS_LUT_Id SMALLINT Obsolete_DT DATETIME Obsolete_Flag BIT
PK,FK1 ACTIVITY_Id INTEGER
PK,FK2,I2 PR_CODE_LUT_Id SMALLINT Obsolete_DT DATETIME
ACTIVITY_SUBCLASS_Desc VARCHAR(60)
Obsolete_Flag BIT ACTIVITY_CLASS_LUT
Obsolete_DT SMALLINT
PK ACTIVITY_CLASS_LUT_Id SMALLINT
PR_FUNDING_Code CHAR(10)
FREQUENCY_LUT
I1 PR_FUNDING_Desc VARCHAR(50)
PK,I2 FREQUENCY_LUT_Id SMALLINT Obsolete_Flag BIT
Obsolete_DT DATETIME
ARCHIVE_TYPE_LUT I1 FREQUENCY_Code SMALLINT
FREQUENCY_Desc VARCHAR(25)
PK ARCHIVE_TYPE_LUT_Id SMALLINT
Obsolete_Flag BIT NEXT_ID
Obsolete_DT DATETIME
ARCHIVE_TYPE_Desc VARCHAR(25) ACTIVITY_OCCURENCE_D
Obsolete_Flag BIT
Obsolete_DT DATETIME PK,I2 ACTIVITY_OCCURENCE_Id INTEGER SOURCE_METHOD_LUT
I1 Next_Id INTEGER
FK1 ACTIVITY_Id INTEGER PK,I1 SOURCE_METHOD_LUT_Id SMALLINT
Begin_Date DATETIME
End_Date DATETIME SOURCE_METHOD_Desc VARCHAR(50)
FK3,I3 Date_CONFIDENCE_SOURCE_Id INTEGER Obsolete_Flag BIT
Duration_Days INTEGER Obsolete_DT DATETIME
Create_DFWuser_Id VARCHAR(50) Entity Legend
Create_DT DATETIME
Mdfy_DFWuser_Id VARCHAR(50)
Mdfy_DT DATETIME
CONTACTS_D Data Table
ARCHIVE_TYPE_LUT_Id SMALLINT PK CONTACTS_Id INTEGER
Many different types of activities occur on WDFW owned and managed lands. These activities can be
classified as one of three broad types of activities: recreation, operation and maintenance, or
enhancement and restoration. Each of the activities can be more specifically described as participating
in a class of activities and a subclass of activities. Class and Subclass provide for a more detailed set of
distinguishing characteristics.
Activities may optionally be identified as being subject to regulations or polices. This could include
Washington Administrative Codes (WACs), Revised Code of Washington (RCW), WDFW Rules and
Regulations, local government ordinances, and Federal Laws.
Activities can occur on either a regular or periodic basis, within a calendar year or across many years.
The duration of an activity can be described by the number of days that each event of an activity occurs.
The frequency of activity can be described by it annual reoccurrence. Activities can both occur
individually or be associated with one or more other activities.
Information about activities will be collected from a variety of sources and will be based on a variety of
data collection methods and procedures. Each may have higher or lower confidence associated with
them.
Each confidence source may have some combination of the name of the source, document name, web
reference, date, contact information and a source confidence designation of:
• A Legal Description
• Empirical Data
• Expert Opinion
• Best Professional Judgement
• Modeled Data
Each activity will be designated as occurring within a described WDFW administrative area. The
designations will be hierarchical, going from Region to Complex; Complex to Wildlife Area; and Wildlife
Area to Wildlife Area Unit. Some activity areas may not be currently assigned to the hierarchy and
designated as being unassigned.
Each activity can be measured in terms of the intensity of effort that is applied. These metrics will be
expressed in terms of the quantity, units, and measure. For instance 100 (quantity) pounds (unit) per
acre (measure) or 10 (quantity) people (unit) per campsite (measure). An activity can have zero or more
measured efforts. Metrics will only be collected at the Activity level. Individual occurrences of an activity
will inherit the metrics of the parent activity. If it is important to apply a different level of effort, then a new
activity will need to be created in order to capture a variance in the metrics. The system should support
propagating existing core activity attributes into a new activity in order to minimize the need for new data
entry when the only significant change is effort. A highly desired functional property of the application
would be to allow the user to place checkboxes next to those fields that should be propagated into the
new record.
Activities often are associated with other activities. Many activities can be associated with one activity
and the one activity can be associated with one or more other activities. This results in a many-to-many
relationship between activities. The system will need to support several workflows around the process of
associating activities. This includes
• Creating activity records prior to creating spatial data
• Linking existing spatial data to an activity
Each activity will be managed as both tabular data and spatial data. One requirement is that the system
support creating tabular records for activities independent of the process of creating the spatial data that
must be linked to the activities. This will allow for creating a placeholder for more specific information
that will be collected during visits for satellite offices.
In order to reduce application development cost, a strategy has been identified for managing records
that are no longer needed due to a change in information, methods, or mistakes. This application deals
with both tabular and spatial data that is linked through an application assigned primary key, which is
carried in both the tabular and spatial records. It would be costly to develop an application that manages
deletions of both the tabular and spatial data. Not to mention that features could be deleted outside the
application. Each record in the Activity, Activity Association, and Activity Occurrence tables will be
attributed as being in some stage of archival state (e.g. Not Archived, Archived with Delete, Archived,
etc). This level of attribution will support a better understanding on the reason for making a record
inactive.
At beginning of a session (when application is first initiated) user will be prompted to set default options
for confidence and methods sources.
Inventory sessions will occur in the field and be disconnected from the SQL database. The application
and the tabular and spatial records will be “checked out” to the inventory biologist and used on a laptop.
While data is “checked out” that particular data on the SQL database will be editable. When data is
“checked in” the application will need to: 1) reconcile and update the SQL database with new additions
to look up tables that may have occurred when disconnected, and 2) reconcile and update any new
and/or modified activities records.