Statechart Diagrams Sviluppo di statechart complessi In COMET

  • Slides: 23
Download presentation
Statechart Diagrams Sviluppo di statechart complessi In COMET

Statechart Diagrams Sviluppo di statechart complessi In COMET

Cosa vedremo… Modellazione statechart complessi Statechart gerarchici Statechart concorrenti Linee guida per sviluppo di

Cosa vedremo… Modellazione statechart complessi Statechart gerarchici Statechart concorrenti Linee guida per sviluppo di statechart Sviluppo di statechart da Use case Sviluppo dello statechart piatto Raffinamento con eventi alternativi Sviluppo degli statechart gerarchici Sviluppo degli statechart concorrenti

Modellazione di statechart complessi Come modellare i vari aspetti di un sistema? Sviluppare più

Modellazione di statechart complessi Come modellare i vari aspetti di un sistema? Sviluppare più statechart da correlare fra loro COMET suggerisce: Decomposizione gerarchica degli stati Utilizzo di statechart concorrenti

Statechart gerarchici COMET: statechart gerarchici UML 1. 3: statechart composti Si utilizza la scomposizione

Statechart gerarchici COMET: statechart gerarchici UML 1. 3: statechart composti Si utilizza la scomposizione gerarchica per ridurre la complessità Statechart gerarchici semanticamente equivalenti agli statechart piatti

Statechart gerarchici Scomposizione di stati Scomposizione in: Superstati Sottostati Scomposizione di tipo “or”: Se

Statechart gerarchici Scomposizione di stati Scomposizione in: Superstati Sottostati Scomposizione di tipo “or”: Se uno stato è attivo, soltanto un suo sottostato è attivo

Scomposizione di stati Superstato Sottostati

Scomposizione di stati Superstato Sottostati

Statechart gerarchici Aggregazione di transizioni Le transizioni possono essere riferite ai sottostati Quelle comuni

Statechart gerarchici Aggregazione di transizioni Le transizioni possono essere riferite ai sottostati Quelle comuni a tutti i sottostati vengono aggregate in un’unica transizione

Statechart concorrenti Scomposizione di tipo “and” Due definizioni: Statechart ortogonali Utilizzati per modellare aspetti

Statechart concorrenti Scomposizione di tipo “and” Due definizioni: Statechart ortogonali Utilizzati per modellare aspetti concorrenti di un sistema Statechart concorrenti Utilizzati solo per la vera concorrenza

Statechart concorrenti Esempio

Statechart concorrenti Esempio

Sviluppo di statecharts Linee guida per lo sviluppo di statecharts Sviluppo di statechart da

Sviluppo di statecharts Linee guida per lo sviluppo di statecharts Sviluppo di statechart da Use Case Esempio

Linee guida per sviluppo di statecharts STATI Nome dello stato deve riflettere un intervallo

Linee guida per sviluppo di statecharts STATI Nome dello stato deve riflettere un intervallo di tempo reale Nome dello stato unico Deve essere possibile uscire da ogni stato Attivazione dei sottostati in base al tipo di scomposizione

Linee guida per sviluppo di statecharts AZIONI EVENTI Non confondere evento (causa) con azione

Linee guida per sviluppo di statecharts AZIONI EVENTI Non confondere evento (causa) con azione (effetto) Nomi di eventi e azioni non ambigui Condizioni sugli eventi hanno valore booleano Azioni e condizioni sono opzionali: da usare solo se necessario

Sviluppo di statechart da Use Case Scegliere percorso tipico nella descrizione fornita dallo Use

Sviluppo di statechart da Use Case Scegliere percorso tipico nella descrizione fornita dallo Use case Evento ambiente - use causa transizione a nuovo stato Azioni, se necessario Considerare sviluppi alternativi Si aggiungono nuovi stati, transizioni e azioni.

Sviluppo di statechart da Use Case Esempio: Control Speed Use Case Attore: Guidatore Riassunto:

Sviluppo di statechart da Use Case Esempio: Control Speed Use Case Attore: Guidatore Riassunto: Questo Use Case descrive il sistema di guida automatico di un’autovettura che viene comandato da guidatore (acceleratore, freno) e componenti del motore Precondizione: Il guidatore ha acceso il motore e sta guidando in modo manuale Descrizione: . . . Postcondizione: vettura ferma, motore spento

Control Speed Statechart Primo sviluppo Si comincia dalla precondizione (stato IDLE) Si aggiungono gli

Control Speed Statechart Primo sviluppo Si comincia dalla precondizione (stato IDLE) Si aggiungono gli stati in base agli eventi esterni Si costruisce uno statechart piatto

Primo sviluppo

Primo sviluppo

Control Speed Statechart Primo raffinamento Si semplifica lo statechart Azioni entry / exit vengono

Control Speed Statechart Primo raffinamento Si semplifica lo statechart Azioni entry / exit vengono associate ai rispettivi stati Si complica lo statechart Si considerano gli eventi e le azioni alternative

Prima raffinamento (si semplifica…)

Prima raffinamento (si semplifica…)

Prima raffinamento (si complica…)

Prima raffinamento (si complica…)

Control Speed Statechart gerarchico Raggruppamento di stati che hanno caratteristiche comuni (Accelerating, Resuming e

Control Speed Statechart gerarchico Raggruppamento di stati che hanno caratteristiche comuni (Accelerating, Resuming e Cruising) Raggruppamento basato anche su aggregazione di transizioni

Statechart gerarchico

Statechart gerarchico

Control Speed Statechart ortogonale Modellazione dei vari aspetti del sistema Si aggiungono altri statechart

Control Speed Statechart ortogonale Modellazione dei vari aspetti del sistema Si aggiungono altri statechart che vengono attivati contemporaneamente

Statechart ortogonale

Statechart ortogonale