Software Architecture Document
Software Architecture Document
Version <1.1>
Conservation Planning Support System Version: <1.1>
Revision History
Date Version Description
<05/15/2003> <1.0> First Draft of the Software Architecture Doc.
<12/04/2003> <1.1> This revised version contains a more complete portion for each of the
design states.
Table of Contents
1. Introduction 4
1.1 Purpose 4
1.2 Scope 4
1.3 Definitions, Acronyms, and Abbreviations 4
1.4 References 4
1.5 Overview 4
3. Architectural Representation 5
3.1 Architectural Views 5
3.2 Architectural Design Patterns 6
3.3 Architectural Style 6
3.4 Architectural Process 6
6. Quality 10
7. Bibliography 10
This document is intended to capture and convey the significant architectural decisions which have been
made in designing and building the system. It is a way by which the systems architect and others involved
in the project can better understand the problems to be solved and how it will be represented with this
system.
The following diagram shows the different steps that will be taken to set and get information from the
MARIA database effort:
1.2 Scope
The scope of this document is the implementation of the CPSS which consist of steps 1 through 9 of the
NRCS National Planning Process.
The major design and implementation constraints for the system are:
1. Simplicity
2. Flexibility
A full list of the system requirements can be seen in the High Level Requirements document.
3. Architectural Representation
3.1 Architectural Views
Modeling, implementing, and documenting a system requires that the system be viewed from different
perspectives. Because of this, the architecture of the CPSS will be represented in a five view approach: Use
Case View, Design View, Process View, Component View, and Deployment View. The following is a brief
description for each of the views:
Use Case
View
Process View Deployment
View
Use Case View: the main purpose of the use case view is to define main drivers of the system, which are
the system requirements.
Design View: this view contains any system definitions as well as class and object diagrams which depict
the services that the system will provide to its end-users.
Process View: this view will display the processes that form the systems mechanism. These will be
represented as collaboration, sequence, and activity diagrams.
Component View: this view will include system and user interface specifications, meaning, the different
components that make up the system.
Deployment View: this view will depict how the different systems hardware nodes will come to life
together as well as how each of the hardware nodes will be installed and deployed.
As seen in the above diagram, requirements, or the use case view, are the main driving force to this and any
software architecture system.
A more detailed map to these five models can be found in the Software System Development Diagram.
The design pattern used to create the CPSS is the MVC (Model View Controller) design pattern. The MVC
design patter clearly separated the web applications behavior, presentation and control. The modularity of
this design pattern allows for easier code reuse, more centralized control, bugs easier to track down and
code easier to modify. The presentation, or view, of the CPSS has been implemented keeping in mind the
Model 2 usage pattern, which makes use of servlets as front controllers and maps incoming request to
specific operation and selects views based on the model and session state. In some steps of the application
the Model 1 pattern, in which a servlets is not used as the front controller, is also used. Some of the sections
of the CPSS where Model 1 architecture is used are the DB Input For and the CPPE tool. These tools are
very simple as far as navigation and a front controller is not needed since the controller is implied through
the higher level container (the CPSS).
As with any other things, a style may be used to satisfy any functional, non-functional or aesthetic needs in
a software system. The CPSS, in particular, follows the three-tier architectural style: presentation tier,
business tier, and data tier. The following is a simple description of what will be included in each of the
tiers:
Presentation Tier
Business Tier
Data Tier
Presentation Tier: used to format and present the information to the user.
Business Tier: used to implement the logic that will drive the system and the reason why the system exists.
Data Tier: in charge of storing the data (databases) and other external services that the system may use.
CPSS follows the Rational Unified Process (RUP), whose goal is to enable the production of the highest
quality software that meets end user needs within a predictable schedule and budget. The RUP is an
iterative process divided into four phases: inception (the establishment of the projects business case),
elaboration (establishment of project plan and system architecture), construction (the system
implementation), and transition (system deployment).
Workflow Phase
Planning
Analysis
&
Design
Design
Implementation
Testing
During the inception phase, the business case and vision documents will be defined for the CPSS. The
business case includes the criteria needed for the successful development of the system, a budget estimate
of the resources needed to complete the system, and a schedule of the major milestones. The vision
document defines the projects problem to be solved, the projects purpose and the projects major
stakeholders. During this phase, a PowerPoint presentation for the entire system will be created which will
serve as a proof-of-concept for the system. This presentation will be reviewed by the major stakeholders
for soundness and feasibility.
During the elaboration phase, the CPSS will have an easy to understand software architectural foundation
and an implemented project plan (this was done first). As previously described, the architectural
foundation is composed of a set of UML diagrams that entirely describes the systems functionality.
During the construction phase, the CPPS will be incrementally and iteratively developed and tested. The
development implies the complete coverage of the software requirements by following the different UML
diagrams defined in the previous phase. At the end of this phase, the CPSS should be a completely
designed, implemented, and tested system that is ready to be deployed for use.
Deployment of the CPSS will occur during the transition phase where the system will be placed on a server
for the use of producers, soil conservationists, and database administrators. Once the beta release of the
CPSS has been released, any system issues that arise will be logged and corrected and a new system
version will be released. This process will continue until all new and legacy system requirements have
been satisfied.
Determine Objectives
Inventory Resources
Analyze Resource
Area Data
Conservationist
Phase II
Soil Formulate Alternatives
Decision Maker
Conservationist (Define Management
System)
Evaluate
Alternatives
Make Decision
Phase III
Farmer Rancher
Implement
the Plan
Evaluate
Make
the Plan
Decisions
The CPSS will implement the architecturally-significant subset of the use cases specified above, which
include the items in Phase II. These use cases are described in the following section.
All implemented use cases have been associated in the Step 5 Base Use Cases.doc.
4.1.1 Use-Case Realizations
This section illustrates how the software actually works by giving a example on how some use-cases
will be used within the system. This section will also examine how the various design structures of the
CPPE contribute to its functionality.
-Under Development!
4.1.1.1 Architecturally Significant Use Cases
The architecturally-significant use cases are those that exercise the most critical parts of the system
architecture and demonstrate the core system functionality. In the case of the CPSS, the architecturally
significant use cases that the ARS will be developing will be those that exist in Phase II of the NPPH:
Formulate Alternatives: shows which management alternatives are available for the producer
Evaluate Alternatives: shows a set of practical and evaluated CMS alternatives for the producer
Make Decision: rank alternatives and select one to implement
These and other sub-use cases are shown and briefly described below:
Formulate
Soil Alternatives Decision Maker
Conservationist (Define Management
System)
Evaluate Alternatives
Make Decisions
Formulate Alternatives
Brief Description: The Soil Conservationist develops alternatives that will achieve the objectives of the
client, solve the identified problems, take advantage of opportunities, and prevent additional problems from
occurring.
Evaluate Alternatives
Brief Description: The effects of each alternative are evaluated and the impacts are described.
Make Decision
Brief Description: The producer determines which alternative(s) to implement and the Soil Conservationist
prepares the necessary documentation.
System Glossary.doc
Static Object Model Diagram.doc
4.2.1 Overview
This subsection will describe the overall decomposition of the CPSS design model as well as the
interactivity that happens between components.
Collaboration Diagram.doc
Sequence Diagram.doc
Activity Diagram.doc
4.4.1 Overview
This subsection will include the various software layers that will exist in the system as well as the
boundaries between these layers.
6. Quality
System quality issues or concerns will go here.
7. Bibliography
Frank Armour, Granville Miller. 2000. Advanced Use Case Modeling: Software Systems. Upper Saddle
River, NJ. 425 pages.
Dean Leffingwell, Don Widrig. 2001. Managing Software Requirements: A Unified Approach.
Indianapolis, IN. 491 pages.
James Rumbaugh, Ivan Jacobson, Grady Booch. 2000. The Unified Modeling Language Reference
Manual. Massachusetts. 550 pages.
Ahuja, L. R., K. W. Rojas, J. D. Hanson, M. J. Shaffer, and L. Ma (eds.). 2000. Root Zone Water Quality
Model. Water Resources Publications LLC. Highlands Ranch, CO. 358 pages.
Hatfield, J.L., J.L. Anderson, E.E. Alberts, T. Prato, D.G. Watts, A. Ward, G. Delin, and R.Swank. 1993.
Management Systems Evaluation AreasAn Overview. Proc. Agricultural Research to Protect Water
Quality. Soil Water Conservation Society, Ankeny, Iowa. Pp.1-15
Hatfield, J.L., D.B. Jaynes, M.R. Burkart, C.A. Cambardella, T.B. Moorman, J.H. Prueger, and M.A. Smith.
1999. Water Quality in Walnut Creek Watershed: Setting and Farming Practices. J. Environmental Quality.
28: 11-24.
Heilman, P., G. Davis, P. Lawrence, J.L. Hatfield, J. Huddleston. 2002. The Facilitator - An Open Source
Effort to Support Multiobjective Decision Making, Integrated Assessment and Decision Support
Proceedings of the 1st biennial meeting of the International Environmental Modelling and Software Society,
Vol. 3: 253-258.
Heilman, P., J.L. Hatfield, M. Adkins, J. Porter and R. Kurth. 2004. Field scale Multiobjective Decision
Making: A Case Study From Western Iowa. Journal of the AWRA, 40 (2) 333:346.
Heilman, P., Hatfield, J.L., Rojas, K., Ma, L., Huddleston, J., Ahuja, L., Adkins, M. 2002. How Good is
Good Enough? What Information is Needed for Agricultural Water Quality Planning and How Can it be
Provided Affordably? Journal of Soil and Water Conservation. v. 57(4): 98-105.
Ma, L., L. R. Ahuja, J. C. Ascough, II, M. J. Shaffer, K. W. Rojas, R. W. Malone, and M. R. Cameira. 2000.
Integrating System Modeling with Field Research in Agriculture: Applications of Root Zone Water Quality
Model (RZWQM). Adv. Agron. 71:233-292.
Onstad, C.A., M.R. Burkart, and G.D. Bubenzer. 1991. Agricultural Research to Protect Water Quality. J.
Soil and Water Conserv. 46:184-188.