Last updated November 14, 2009 15:01, by Bruce Schubert

Campbell Prediction System

Software Architecture Document

Version 0.2

Bruce Schubert

Revision History

Name Date Reason for Changes Version
Bruce Schubert November 9, 2009 Initial draft. 0.1
Bruce Schubert November 10, 2009 Added deployment diagram. 0.2



This document provides a comprehensive architectural overview of the Campbell Prediction System (CPS) system, using a number of different architectural views to depict different aspects of the system. It is intended to capture and convey the significant architectural decisions which have been made on the system.


This Software Architecture Document applies to the Campbell Prediction System (CPS) software project being developed by Bruce Schubert (

Definitions, Acronyms and Abbreviations

See Glossary.


  1. Vision Document

Architectural Representation

This document presents the architectural as a series of views (RUP/Kruchten 4+1); the use case view, logical view, process view, deployment view, and implementation view. These views are presented as Unified Modeling Language (UML) diagrams.

Architectural Goals and Constraints

There are some key requirements and system constraints that have a significant bearing on the architecture. They are:

  • Java will be used for its cross-platform capabilities.
  • The system will be a NetBeans Rich Client Platform application.
  • The NASA WorldWind Java SDK will be used the terrain visualization; it is OpenGL based and cross platform capable.
  • The VisAD 3D visualization toolkit will be used for 3D analysis and views
  • The Weka data mining toolkit will be used for knowledge discovery.

Use-Case View

A description of the use-case view of the software architecture. The Use Case View is important input to the selection of the set of scenarios and/or use cases that are the focus of an iteration. It describes the set of scenarios and/or use cases that represent some significant, central functionality. It also describes the set of scenarios and/or use cases that have a substantial architectural coverage (that exercise many architectural elements) or that stress or illustrate a specific, delicate point of the architecture.

Main Use-Case Diagram

Logical View

[This section describes the architecturally significant parts of the design model, such as its decomposition into subsystems and packages. And for each significant package, its decomposition into classes and class utilities. You should introduce architecturally significant classes and describe their responsibilities, as well as a few very important relationships, operations, and attributes.]

Process View

[This section describes the system's decomposition into lightweight processes (single threads of control) and heavyweight processes (groupings of lightweight processes). Organize the section by groups of processes that communicate or interact. Describe the main modes of communication between processes, such as message passing, interrupts, and rendezvous.]

Deployment View

This section describes one or more physical network (hardware) configurations on which the software is deployed and run. It is a view of the Deployment Model. It indicates the physical nodes (computers, CPUs) that execute the software, and their interconnections (bus, LAN, point-to-point, and so on.) It includes a mapping of the processes of the Process View onto the physical nodes.

Initial Deployment Diagram

Implementation View

This section describes the overall structure of the implementation model, the decomposition of the software into NetBeans modules.

Initial implementation view depicting NetBeans Modules"

Size and Performance

[A description of the major dimensioning characteristics of the software that impact the architecture, as well as the target performance constraints.]'


[A description of how the software architecture contributes to all capabilities (other than functionality) of the system-- extensibility, reliability, portability, and so on. If these characteristics have special significance, for example safety, security or privacy implications, they should be clearly delineated.]

Copyright © 2009 Bruce Schubert,

  • Mysql
  • Glassfish
  • Jruby
  • Rails
  • Nblogo
Terms of Use; Privacy Policy;
© 2014, Oracle Corporation and/or its affiliates
(revision 20160708.bf2ac18)
Please Confirm