NOTA: tolgo dalle note perché non mi sembra importante.
Introduction to system design
Packages vs diagrams 🟩-
- Packages fisica implementazione, perché è una cosa utile per lo sviluppo
- Diagrams logica visualizzazione perché aiuta solamente a comprendere meglio come funziona il sistema in toto.
Components
What is a component (3) 🟨
È una entità totalmente indipendente che funziona a sé, un esempio è il dll, dynamically loaded libraries presente nei sistemi di windows. Una cosa è che espongono interfacce per interagirci, e questi possono essere utilizzati per creare sistemi complessi.
Quindi riassumendo:
- Indipendenza da altri software (almeno è contenuto)
- Presenza di interfacce per interagirci
- Risolvono un certo problema specifico (appunto isolato)
Se ho questo allora posso rappresentare la struttura in esecuzione con i diagrammi di sopra, a seconda di come li carico scarico e simili.
Difference with collaboration diagrams 🟥+
nel nostro caso è una dipendenza esterna non è una estensione ereditaria come potrebbe sembrare se lo analizziamo come class diagram.
Ci permette lo stesso di creare diagrammi che rappresentano in che modo i singoli oggetti comunicano con altri.
#### Stereotypes 🟥 Capire un po' meglio questa parte.Node
What is a node 🟩
Sono una risorsa computazionale, quindi con CPU e memoria per poter eseguire qualcosa. Un esempio sono micro-controllori per temperatura, smart-home e simili. Questo è qualcosa di base se vogliamo andare ad analizzare cose come sistemi distribuiti e nodi di computazione in quel punto.
Difference with components (1) 🟩
I componenti rappresentano il pacchetto logico per una esecuzione, quindi sono più strutturali, astratti, rappresentano in che modo esegue un certo sistema. Mentre i nodi sono rappresentazione fisica esecuzione, in cui effettivamente eseguono qualcosa, prima solo per rappresentarlo, quindi deployment di ciò
Real Time UML
Una delle caratteristiche fondamentali dei real time è che hanno garanzia di esecuzione entro tot tempo, questa è una cosa anche indagata per gli schedulers, vedi Scheduler#SISTEMI A REALTIME (non fare)
Time events (3) 🟨
- Change event: rappresentano il momento in cui una azione è avvenuta e quindi probabilmente deve essere gestito un cambio di stato in questo caso.
- Time Event: descrivono quanto deve essere fatto un evento, per esempio
- Fra 5 minuti
- alle 12 P.M.
- Timing costraints entro quanto tempo deve essere fatto (o ogni quanto).
- Solo che manca un linguaggio per esprimere questi constraints.
Esempio:
Object Contraint Language
Introduzione a OCL🟥
è un linguaggio di modellazione utilizzato per modellare in modo non ambiguo tutte le pre e post condizioni per un linguaggio. È un linguaggio puro. Secondo Succi è utile quando facciamo i test durante il progetto.