Skip to content

Commit

Permalink
Start working on C4 model summary #24
Browse files Browse the repository at this point in the history
  • Loading branch information
pintergreg committed Nov 12, 2024
1 parent cb9a8bb commit 58b3eba
Show file tree
Hide file tree
Showing 2 changed files with 101 additions and 0 deletions.
4 changes: 4 additions & 0 deletions lectures/figures/user_statistics/c4_contianer.drawio.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
97 changes: 97 additions & 0 deletions lectures/summary_week04.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
---
title: week 4 summary
author: Gergő Pintér, PhD
date: gergo.pinter@uni-corvinus.hu
lang: en-US
title-slide-attributes:
data-background-color: "#181d37"
data-background-image: ../assets/by-sa.svg
data-background-size: 125px
data-background-position: 1.25rem calc(100% - 1.25rem)
slideNumber: "true"
showSlideNumber: "print"
revealjs-url: "../assets/reveal.js-5.1.0/"
---

# what is the issue with UML?

- closely connected with OOP
- propagates object-oriented modelling
- however the design should not consider the implementation


# C4 model

> overview first, zoom and filter, then details on demand
>
> -- Ben Shneiderman
- hierarchical set of software architecture diagrams
- different levels of abstraction for different audience
- has four levels:
- context, containers, components and code
- popularized by Simon Brown

::: {.text-smaller .mt-2}
this chapter is based on [c4model.com](https://c4model.com/)
:::


## level 1: system context diagram

:::::::::::: {.columns}
::::::::: {.column width="50%" .mt-4}
- shows how the software fits into the world
- [who use it]{.text-smaller}
- [what other software does it interacts]{.text-smaller}
- high diagram
- [technologies, protocols and other low-level details are not important]{.text-smaller}
- similar to use case diagram
- understandable for non-technical people
:::::::::
::::::::: {.column width="50%"}
![](figures/user_statistics/c4_system_context.drawio.svg){width=400}
:::::::::
::::::::::::


## level 2: container diagram

:::::::::::: {.columns .column-gapless}
::::::::: {.column width="50%"}
- zooms into the software system
- shows the containers that make up that software system
- [applications, data stores, microservices, etc.]{.text-smaller}
- technology decisions are also a key part of this diagram
- [what database management system to use, e.g., PostgreSQL]{.text-smaller}
- [what e-mail service to use, e.g., Mailchimp]{.text-smaller}
- [what language to use]{.text-smaller}
- [what UI framework to use]{.text-smaller}

:::::::::
::::::::: {.column width="50%"}
![](figures/user_statistics/c4_contianer.drawio.svg){width=400}
:::::::::
::::::::::::


## level 3: component diagram

:::::::::::: {.columns}
::::::::: {.column width="50%"}


:::::::::
::::::::: {.column width="50%"}
![](figures/user_statistics/c4_component.excalidraw.svg){width=400}
:::::::::
::::::::::::


## level 4: code


# references

::: {#refs}
:::

0 comments on commit 58b3eba

Please sign in to comment.