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:
  • 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
  • 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 weekNote: 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
  • 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