Add architecture documentation and functional requirements for Calminer project - Created Building Block View (05_building_block_view.md) detailing system architecture and component interactions. - Developed Runtime View (06_runtime_view.md) outlining key user scenarios and interactions within the system. - Established Deployment View (07_deployment_view.md) describing the infrastructure and mapping of building blocks to deployment components. - Added README.md for architecture documentation structure. - Introduced functional requirements (FR-001 to FR-010) covering scenario management, data import/export, reporting, user management, and collaboration features. - Included templates for documenting requirements to ensure consistency across the project.
222 lines
6.4 KiB
Markdown
222 lines
6.4 KiB
Markdown
# Building Block View
|
|
|
|
## Table of Contents
|
|
|
|
- [Building Block View](#building-block-view)
|
|
- [Table of Contents](#table-of-contents)
|
|
- [Whitebox Overall System](#whitebox-overall-system)
|
|
- [Level 1 Diagram](#level-1-diagram)
|
|
- [API Layer](#api-layer)
|
|
- [Service Layer](#service-layer)
|
|
- [Data Access Layer](#data-access-layer)
|
|
- [Frontend Layer](#frontend-layer)
|
|
- [Database System](#database-system)
|
|
- [Level 2](#level-2)
|
|
- [Level 2 Diagram](#level-2-diagram)
|
|
- [Frontend Components](#frontend-components)
|
|
- [User Interface](#user-interface)
|
|
- [Visualization Module](#visualization-module)
|
|
- [Backend Components](#backend-components)
|
|
- [Authentication Service](#authentication-service)
|
|
- [Reporting Module](#reporting-module)
|
|
- [Simulation Engine](#simulation-engine)
|
|
- [Level 3](#level-3)
|
|
- [Simulation Engine Components](#simulation-engine-components)
|
|
- [Mining Algorithm](#mining-algorithm)
|
|
- [Data Preprocessing](#data-preprocessing)
|
|
- [Result Postprocessing](#result-postprocessing)
|
|
|
|
## Whitebox Overall System
|
|
|
|
This diagram shows the main building blocks of the Calminer system and their relationships.
|
|
|
|
### Level 1 Diagram
|
|
|
|
```mermaid
|
|
graph TD
|
|
APILayer[API Layer]
|
|
ServiceLayer[Service Layer]
|
|
DataAccessLayer[Data Access Layer]
|
|
FrontendLayer[Frontend Layer]
|
|
DatabaseSystem[Database System]
|
|
|
|
APILayer --> ServiceLayer
|
|
ServiceLayer --> DataAccessLayer
|
|
FrontendLayer --> APILayer
|
|
DataAccessLayer --> DatabaseSystem
|
|
```
|
|
|
|
### API Layer
|
|
|
|
The API Layer is responsible for handling incoming requests and routing them to the appropriate services. It provides a RESTful interface for external clients to interact with the Calminer system.
|
|
|
|
_Responsibility:_ Handle HTTP requests and responses.
|
|
|
|
_Interface:_ RESTful API endpoints.
|
|
|
|
_Dependencies:_ Depends on the Service Layer for business logic processing.
|
|
|
|
### Service Layer
|
|
|
|
The Service Layer contains the core business logic of the Calminer application. It processes data, applies mining algorithms, and manages workflows between different components.
|
|
|
|
_Responsibility:_ Implement business rules and data processing.
|
|
|
|
_Interface:_ Service interfaces for communication with the API Layer.
|
|
|
|
_Dependencies:_ Depends on the Data Access Layer for data persistence.
|
|
|
|
### Data Access Layer
|
|
|
|
The Data Access Layer is responsible for interacting with the underlying data storage systems. It provides an abstraction over the data sources and handles all CRUD operations.
|
|
|
|
_Responsibility:_ Manage data storage and retrieval.
|
|
|
|
_Interface:_ Data access interfaces for the Service Layer.
|
|
|
|
_Dependencies:_ Depends on the Database System for persistent storage.
|
|
|
|
### Frontend Layer
|
|
|
|
The Frontend Layer is responsible for the user interface of the Calminer application. It provides a web-based interface for users to create projects, configure parameters, and view reports.
|
|
|
|
_Responsibility:_ Render user interface and handle user interactions.
|
|
|
|
_Interface:_ Web pages and client-side scripts.
|
|
|
|
_Dependencies:_ Depends on the API Layer for backend communication.
|
|
|
|
### Database System
|
|
|
|
The Database System is responsible for storing and managing all persistent data used by the Calminer application, including user data, project configurations, and analysis results.
|
|
|
|
_Responsibility:_ Manage persistent data storage and retrieval.
|
|
|
|
_Interface:_ Database access interfaces for the Data Access Layer.
|
|
|
|
_Dependencies:_ None.
|
|
|
|
## Level 2
|
|
|
|
### Level 2 Diagram
|
|
|
|
```mermaid
|
|
graph TB
|
|
subgraph F[Frontend Layer]
|
|
direction TB
|
|
UserInterface[User Interface]
|
|
VisualizationModule[Visualization Module]
|
|
end
|
|
subgraph A[API Layer]
|
|
APILayer[API Layer]
|
|
end
|
|
subgraph S[Service Layer]
|
|
direction TB
|
|
AuthenticationService[Authentication Service]
|
|
ReportingModule[Reporting Module]
|
|
SimulationEngine[Simulation Engine]
|
|
end
|
|
subgraph D[Data Access Layer]
|
|
DataAccessLayer[Data Access Layer]
|
|
end
|
|
subgraph DB[Database System]
|
|
DatabaseSystem[Database System]
|
|
end
|
|
|
|
DataAccessLayer[Data Access Layer]
|
|
DatabaseSystem[Database System]
|
|
|
|
F --> A
|
|
A --> S
|
|
S --> D
|
|
D --> DB
|
|
```
|
|
|
|
### Frontend Components
|
|
|
|
#### User Interface
|
|
|
|
The User Interface component is responsible for rendering the web pages and handling user interactions.
|
|
|
|
_Responsibility:_ Display data and capture user input.
|
|
|
|
_Interface:_ HTML, CSS, JavaScript.
|
|
|
|
_Dependencies:_ Depends on the API Layer for data retrieval.
|
|
|
|
#### Visualization Module
|
|
|
|
The Visualization Module provides data visualization capabilities, allowing users to view analysis results in graphical formats.
|
|
|
|
_Responsibility:_ Generate charts and graphs.
|
|
|
|
_Interface:_ Chart.js library.
|
|
|
|
_Dependencies:_ Depends on the API Layer for data.
|
|
|
|
### Backend Components
|
|
|
|
#### Authentication Service
|
|
|
|
The Authentication Service manages user authentication and authorization.
|
|
|
|
_Responsibility:_ Handle user login and access control.
|
|
|
|
_Interface:_ Authentication APIs.
|
|
|
|
_Dependencies:_ Depends on the Database System for user data.
|
|
|
|
#### Reporting Module
|
|
|
|
The Reporting Module generates comprehensive reports based on analysis results.
|
|
|
|
_Responsibility:_ Create and format reports.
|
|
|
|
_Interface:_ Report generation APIs.
|
|
|
|
_Dependencies:_ Depends on the Service Layer for data processing.
|
|
|
|
#### Simulation Engine
|
|
|
|
The Simulation Engine performs the core mining simulations and calculations.
|
|
|
|
_Responsibility:_ Execute mining algorithms.
|
|
|
|
_Interface:_ Simulation APIs.
|
|
|
|
_Dependencies:_ Depends on the Data Access Layer for data retrieval and storage.
|
|
|
|
## Level 3
|
|
|
|
### Simulation Engine Components
|
|
|
|
#### Mining Algorithm
|
|
|
|
The Mining Algorithm component is responsible for implementing the core mining logic.
|
|
|
|
_Responsibility:_ Execute mining algorithms on the input data.
|
|
|
|
_Interface:_ Algorithm APIs.
|
|
|
|
_Dependencies:_ Depends on the Data Access Layer for data retrieval.
|
|
|
|
#### Data Preprocessing
|
|
|
|
The Data Preprocessing component handles the preparation of input data for mining.
|
|
|
|
_Responsibility:_ Clean and transform input data.
|
|
|
|
_Interface:_ Data preprocessing APIs.
|
|
|
|
_Dependencies:_ Depends on the Data Access Layer for data retrieval.
|
|
|
|
#### Result Postprocessing
|
|
|
|
The Result Postprocessing component is responsible for formatting and refining the mining results.
|
|
|
|
_Responsibility:_ Prepare final results for presentation.
|
|
|
|
_Interface:_ Result formatting APIs.
|
|
|
|
_Dependencies:_ Depends on the Data Access Layer for data storage.
|