Seminar on Design and Architecture Patterns
Rossi: Architecture Design III
The goal of this lab is to finalize the creation of the architecture after two sessions on components identification and creation. Note, you can a mix of the different OCL specifications created by teams last year here: https://drive.google.com/file/d/1BMeh3H_oEFiNPZ96FoYkzWWonb2VICAv/view?usp=sharing
Lesson outline
- We
will follow the approach highlighted by Barbora Bühnová for the deployment. In particular:
- System and architecture description - CoCoME Software Architecture example, hope you read it from last time :)
- If
you were wondering about those extra requirements modeled as
statistical properties, you can look at the reason - Palladio Component
Model: https://www.palladio-simulator.com/tools/screencasts/
- Some Architecture recommendations from Bühnová's students from some previous edition of the course - in IS folder
- Some Architecture inspiration from Bühnová's students from some previous edition of the course - in IS folder
- The task will be to derive the final component and deployment diagrams of your project.
- Ensure that there is possibility to go from the Use Cases to perform the interactions with your system through the components. You might consider dividing your components into layers (e.g., front-end, business functionality, data access layer). You might even consider adding Façade components for coordinating other components. Overall, try to finalize the whole component diagram so that it can be considered in sync with the Use Cases and the class diagram & the interfaces defined there. The following is just an example (also, the interfaces should be named, as you have the connection with the operations in the class diagram):
Chyba: Odkazovaný objekt neexistuje nebo nemáte právo jej číst.https://is.muni.cz/el/fi/podzim2022/PV167/um/architecture/samples_rossi/SampleCompDiagram.png
- You can consider to show one *inner* component definition
(Fig.5 of the CoCoME PDF) - e.g., is there any analysis processing
sub-component, metrics calculation sub-component, what about the quality
configuration / management, etc... The following is just an example. All the sub-components in the Analysis Component cannot be deployed independently on the other machines/nodes (of course, sub-components might be deployed on different processors):
Chyba: Odkazovaný objekt neexistuje nebo nemáte právo jej číst.https://is.muni.cz/el/fi/podzim2022/PV167/um/architecture/samples_rossi/InnerComponent.png - Add a deployment diagram
about how you would distribute the components (similarly to Fig.14 of
the CoCoME PDF - but also based on your experience with software
architectures and the architecture recommendations / inspirations linked
above. The example in CoCoME is more a monolithic system, but you can go into more a kind of distributed and message-driven architecture). Questions that come up here are: how do we deploy the different components to the physical devices? Are there any quality concerns in some parts of the system, so that we need some load balancer, redundancy in terms of replica of some nodes and/or proxy for accessing some parts of the system? If you read the CoCoME method, defining the Transfer Objects (TOs) is an important part of the process - of course defining all of them can be very time consuming, still, at least done partially, can give some insights about the best way to structure the communication between interfaces.
Chyba: Odkazovaný objekt neexistuje nebo nemáte právo jej číst.https://is.muni.cz/el/fi/podzim2022/PV167/um/architecture/samples_rossi/SampleDeploymentDiagram.png
- Ensure that there is possibility to go from the Use Cases to perform the interactions with your system through the components. You might consider dividing your components into layers (e.g., front-end, business functionality, data access layer). You might even consider adding Façade components for coordinating other components. Overall, try to finalize the whole component diagram so that it can be considered in sync with the Use Cases and the class diagram & the interfaces defined there. The following is just an example (also, the interfaces should be named, as you have the connection with the operations in the class diagram):
- Next week each team will present the project .
- By Mon 5.12.2022, 23:59
- upload the final
architectural representation (1. the class diagram with interfaces /
packages, 2. the component diagram, 3. the deployment diagram) in the
folder of this week. Note: if you export the
diagram as an image *do not take a screenshot* just go to
Project->Export->Active Diagram as Image... you can then select
the format (jpg/png/etc...) and even export in 300dpi or higher
resolution). Alternative way, just go to Tools->Doc Composer drag
& drop the diagrams needed and then on the top right Save as PDF...
Folder: 10 - Architecture Design III - upload the *final* document with all the diagrams created during the semester.
Folder: 11 - Final Project
- upload the final
architectural representation (1. the class diagram with interfaces /
packages, 2. the component diagram, 3. the deployment diagram) in the
folder of this week. Note: if you export the
diagram as an image *do not take a screenshot* just go to
Project->Export->Active Diagram as Image... you can then select
the format (jpg/png/etc...) and even export in 300dpi or higher
resolution). Alternative way, just go to Tools->Doc Composer drag
& drop the diagrams needed and then on the top right Save as PDF...
- Before the presentation on 7.12.2022:
- upload *your presentation* (PDF format) covering the analysis, design, and architectural aspects of your project. Try to cover the aspects of the project to stay within a 10min time limit, in particular the motivations of the choices made.
Folder: 11 - Final Presentation
- upload *your presentation* (PDF format) covering the analysis, design, and architectural aspects of your project. Try to cover the aspects of the project to stay within a 10min time limit, in particular the motivations of the choices made.