From a968cd921cb5f7815832a2416f800ce82711ef66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?El=C3=ADas=20Llera=20Garc=C3=ADa-Ria=C3=B1o?= Date: Sun, 19 Feb 2023 20:31:15 +0100 Subject: [PATCH] First version of the building block --- docs/05_building_block_view.adoc | 207 ++---------------- .../BuildingBlockLvl1.drawio.png | Bin 0 -> 19309 bytes .../BuildingBlockLvl2.drawio.png | Bin 0 -> 35336 bytes 3 files changed, 22 insertions(+), 185 deletions(-) create mode 100644 docs/images/5-BuildingBlock/BuildingBlockLvl1.drawio.png create mode 100644 docs/images/5-BuildingBlock/BuildingBlockLvl2.drawio.png diff --git a/docs/05_building_block_view.adoc b/docs/05_building_block_view.adoc index df24089..e881b9a 100644 --- a/docs/05_building_block_view.adoc +++ b/docs/05_building_block_view.adoc @@ -3,204 +3,41 @@ == Building Block View -[role="arc42help"] -**** -.Content -The building block view shows the static decomposition of the system into building blocks (modules, components, subsystems, classes, -interfaces, packages, libraries, frameworks, layers, partitions, tiers, functions, macros, operations, -datas structures, ...) as well as their dependencies (relationships, associations, ...) +The LoMap application is mainly divided into two modules with very differentiated behaviour: the WebAPP and the RestAPI. Each of the modules has several components, focused in smaller functionalities. -This view is mandatory for every architecture documentation. -In analogy to a house this is the _floor plan_. +=== Black box view -.Motivation -Maintain an overview of your source code by making its structure understandable through -abstraction. +==== Level 1 +The LoMap application is divided into two modules, each of which interact with different external services. -This allows you to communicate with your stakeholder on an abstract level without disclosing implementation details. +image:5-BuildingBlock/BuildingBlockLvl1.drawio.png["Building block level 1"] -.Form -The building block view is a hierarchical collection of black boxes and white boxes -(see figure below) and their descriptions. +.WebApp +The web app is the module responsible for managing the communication with the user. It will manage the GUI by means of different views, some of which will access an external API to implement a visual map. It will communicate with the Rest API (described later on) with http requests. -image:05_building_blocks-EN.png["Hierarchy of building blocks"] +At this point of development, we have decided that this component will also be responsible to communicate the application with the user POD to manage operations such as the login and potentially more stored data, although this decision could change during the development process. -*Level 1* is the white box description of the overall system together with black -box descriptions of all contained building blocks. +.RestAPI +The rest API will manage the business logic and access to the information stored in the database. At this point of development, we are also exploring the option of accessing the data stored in the PODs from this component. -*Level 2* zooms into some building blocks of level 1. -Thus it contains the white box description of selected building blocks of level 1, together with black box descriptions of their internal building blocks. +It will receive the petitions of the web app (described before), process them, access the necessary information and return a response in form of data. -*Level 3* zooms into selected building blocks of level 2, and so on. -**** -=== Whitebox Overall System +==== Level 2 -[role="arc42help"] -**** -Here you describe the decomposition of the overall system using the following white box template. It contains +Each of the previously mentioned modules is divided into smaller components, whose behaviour is described in this section. - * an overview diagram - * a motivation for the decomposition - * black box descriptions of the contained building blocks. For these we offer you alternatives: +image:5-BuildingBlock/BuildingBlockLvl2.drawio.png["Building block level 2"] - ** use _one_ table for a short and pragmatic overview of all contained building blocks and their interfaces - ** use a list of black box descriptions of the building blocks according to the black box template (see below). - Depending on your choice of tool this list could be sub-chapters (in text files), sub-pages (in a Wiki) or nested elements (in a modeling tool). +.Views +Component responsible for rendering the GUI. +.Solid access +Component in charge of accessing the user solid POD. Right now this component is in the Web App module, but it could change during the development of the project. - * (optional:) important interfaces, that are not explained in the black box templates of a building block, but are very important for understanding the white box. -Since there are so many ways to specify interfaces why do not provide a specific template for them. - In the worst case you have to specify and describe syntax, semantics, protocols, error handling, - restrictions, versions, qualities, necessary compatibilities and many things more. -In the best case you will get away with examples or simple signatures. -**** +.Facade +Component in charge of receiving the petitions and manage them. Responsible for the business logic. -_****_ - -Motivation:: - -__ - - -Contained Building Blocks:: -__ - -Important Interfaces:: -__ - -[role="arc42help"] -**** -Insert your explanations of black boxes from level 1: - -If you use tabular form you will only describe your black boxes with name and -responsibility according to the following schema: - -[cols="1,2" options="header"] -|=== -| **Name** | **Responsibility** -| __ | __ -| __ | __ -|=== - - - -If you use a list of black box descriptions then you fill in a separate black box template for every important building block . -Its headline is the name of the black box. -**** - - -==== - -[role="arc42help"] -**** -Here you describe -according the the following black box template: - -* Purpose/Responsibility -* Interface(s), when they are not extracted as separate paragraphs. This interfaces may include qualities and performance characteristics. -* (Optional) Quality-/Performance characteristics of the black box, e.g.availability, run time behavior, .... -* (Optional) directory/file location -* (Optional) Fulfilled requirements (if you need traceability to requirements). -* (Optional) Open issues/problems/risks - -**** - -__ - -__ - -_<(Optional) Quality/Performance Characteristics>_ - -_<(Optional) Directory/File Location>_ - -_<(Optional) Fulfilled Requirements>_ - -_<(optional) Open Issues/Problems/Risks>_ - - - - -==== - -__ - -==== - -__ - - -==== - -... - -==== - - - -=== Level 2 - -[role="arc42help"] -**** -Here you can specify the inner structure of (some) building blocks from level 1 as white boxes. - -You have to decide which building blocks of your system are important enough to justify such a detailed description. -Please prefer relevance over completeness. Specify important, surprising, risky, complex or volatile building blocks. -Leave out normal, simple, boring or standardized parts of your system -**** - -==== White Box __ - -[role="arc42help"] -**** -...describes the internal structure of _building block 1_. -**** - -__ - -==== White Box __ - - -__ - -... - -==== White Box __ - - -__ - - - -=== Level 3 - -[role="arc42help"] -**** -Here you can specify the inner structure of (some) building blocks from level 2 as white boxes. - -When you need more detailed levels of your architecture please copy this -part of arc42 for additional levels. -**** - - -==== White Box <_building block x.1_> - -[role="arc42help"] -**** -Specifies the internal structure of _building block x.1_. -**** - - -__ - - -==== White Box <_building block x.2_> - -__ - - - -==== White Box <_building block y.1_> - -__ +.DB access +Component in charge of accessing the database. Reads, stores, updates and deletes information. diff --git a/docs/images/5-BuildingBlock/BuildingBlockLvl1.drawio.png b/docs/images/5-BuildingBlock/BuildingBlockLvl1.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..48fdfb39cd3c48796c0964f7c912ac1d7a9897fb GIT binary patch literal 19309 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
ponl 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 xEZHo5{2r2b-!{s-p0oL2w< literal 0 HcmV?d00001