Software Architecture Document
|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 (www.emxsys.com).
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.
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.
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
- [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.]
- [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.]
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
This section describes the overall structure of the implementation model, the decomposition of the software into NetBeans modules.
- Initial implementation view depicting NetBeans Modules"
- [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, http://www.emxsys.com.