CRUISE CONTROL AND MONITORING SYSTEM Case study Luigi Tosetto.

Slides:



Advertisements
Presentazioni simili
Agile e Scrum.
Advertisements

Stima di una funzione di domanda di moneta (2)
Gestione Input Output A. Ferrari.
UML: Use Cases Corso IS I /03
Tesi di Laurea Triennale in Ingegneria Elettronica Applicata
Principi di Programmazione Object-Oriented
A. Stefanel - M: Le leggi della dinamica
Routing Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights Reserved)
Controllo remoto di un robot mobile realizzato con Lego Mindstorms
1 9: Progettazione Architetturale Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,
Analisi dettagliata e design B. Pernici M.G. Fugini AA
Analisi dettagliata e design B. Pernici. Sommario Analisi dettagliata –Separazione interfaccia, controllo, entita Design –Logical view –Progettazione.
Argomenti Avanzati di Sistemi Informativi Approfondimento su Workflow e Web Services: "Gestione delle eccezioni: confronto tra soluzioni per applicazioni.
1 Capitolo 2: Semplificazione, Ottimizzazione e Implicazione.
Convertitore A/D e circuito S/H
Queuing or Waiting Line Models
Semplice regolazione digitale di velocità di un motore in c. c
I File.
DIAGRAMMI DI FLUSSO Notazione grafica usata per descrivere in modo intuitivo le azioni di cui è fatto un algoritmo. Viene usata per descrivere i passi.
Introduzione alla modellazione di sistemi interattivi
Contatore: esempio di circuito sequenziale
L’ingegneria del software
Sistemi di controllo dell’illuminazione
Sistema Real-time: Sistema VISyR Implementazione nellAmbiente di Sviluppo Quartus-II Semplice Applicazione: Prodotto Matrice x matrice Architettura StratiX.
Alcune Istruzioni per la gestione dellI/O (Classe 7) Per la destinazione D0 sono ammessi tutti i tipi di indirizzamento tranne quello immediato. Per la.
Biomeccanica Cinematica Dinamica Statica dei corpi rigidi
Frequency Domain Processing
Project Review Novembrer 17th, Project Review Agenda: Project goals User stories – use cases – scenarios Project plan summary Status as of November.
FASTVID RENTALS: BUSINESS MODELING 1. Business Modeling One of the major problems with most business engineering efforts, is that the software engineering.
A man has decided to include in his home intelligent systems to monitor the home. He installed two water pulse counters into the central water system.
Esercitazioni di Ingegneria del Software con UML
Typical steps in project planning and scheduling To identify the tasks and their durations To evaluate consistency of the task net To evaluate the critical.
Corso di Aggiornamento Tecnico Giugno 2014
Progettazione concettuale di SI basati su Web
Task Structuring [2 a parte] Maurizio Mazza Corso di Ingegneria del Software II.
1 How to generate testing models into MDA approach to software development. A beginner’s point of view. Università degli Studi dell’Aquila Facoltà di Scienze.
Il linguaggio Fortran 90: 3. Procedure e Funzioni
FESR Consorzio COMETA Pier Paolo CORSO Giuseppe CASTGLIA Marco CIPOLLA Industry Day Catania, 30 Giugno 2011 Commercial applications.
Funzionamento della centralina di EASY-CHARGE
Programmazione ad oggetti
SISTEMI DI GESTIONE DI WORKFLOW
Dynamic Modeling in COMET Seconda parte Valentina Cordì.
Class Design In COMET Elena Balladore. Indice Che cos’ è il Class DesignChe cos’ è il Class Design Design delle information hiding classes Design delle.
Diagramma delle Classi
Task Structuring COMET TASK STRUCTURING - Prima parte -
Università Degli Studi di Napoli “ Federico II”
Analisi dettagliata e design
Analisi dei requisiti Il primo passo di “qualsiasi” processo di sviluppo è la definizione dei requisiti  Definizione del Business Model  Solitamente.
Caso di studio Sistema Bancario Seconda parte: Design Vallarino Paola.
SOFTWARE ARCHITECTURAL DESIGN NEL METODO COMET Corso di Ingegneria del Software 2 Anno Accademico Demergasso Daniela.
COMET Elevator Control System Case Study - Prima parte - Elevator Control System Case Study.
Laboratorio di Progettazione A cura di: Arosio Cattaneo Prandi
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Ripasso su Java. Introduzione Per risolvere problemi complessi, i linguaggi di programmazione forniscono costrutti per realizzare nuove funzioni che trasformino.
Siete i proprietari di una squadra di corse NASCAR. E’ l’ultima gara di un’ottima stagione e sarà trasmessa in Mondovisione vecchio sponsor (comunque.
Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 4 -Progettazione del software Ernesto Damiani Università degli Studi.
UML: Introduzione Corso IS I /03 Gianna Reggio Versione 0.0.
 Primo livello: Field Management. A questo livello le informazioni sono relative ai dispositivi di campo  Secondo livello:
Progettazione concettuale di SI basati su Web B. Pernici.
Conversione Analogico/Digitale Le grandezze fisiche che vogliamo misurare variano con continuità in un dato intervallo ed in funzione del tempo: sono descrivibili.
Corso di Sistemi di Trazione
Motori a corrente continua
SUMMARY Applications of synchronous motors and stepper motors RIEPILOGO Applicazioni dei motori sincroni e dei motori passo-passo RIEPILOGO Applicazioni.
Unified Modeling Language. –un linguaggio (e notazione) universale, per rappresentare qualunque tipo di sistema software –uno standard OMG (Object Management.
Gestione delle periferiche. Le periferiche sono dispositivi che permettono le operazioni di input/output.
Corso Operazione Acceleratori 7-9 gennaio 2015 “Criogenia” Maurizio De Giorgi.
Pietro Baldini per il Servizio Radiofrequenza Divisione Acceleratori I SISTEMI RF DI DAFNE Introduzione all’operazione degli Acceleratori dei LNF 8 Gennaio.
SUMMARY Checking RIEPILOGO Verifiche RIEPILOGO Verifiche.
Possibili Argomenti di Tesi Prof. Stefania Santini SINCRO – Sistemi Non Lineari, Conrollo delle Reti e dei Processi
X. Specifications (IV).
Transcript della presentazione:

CRUISE CONTROL AND MONITORING SYSTEM Case study Luigi Tosetto

Indice Descrizione del problema Descrizione informale Funzionalità Funzionalità Controllo del processo Use case model Packages Descrizione use cases Static modeling Classi del mondo reale System context model Dynamic modeling Strutturazione in sottosistemi Collaboration diagrams Subsystem structuring Dipendenze fra sottosistemi Refined static modeling

COMET object-oriented software life cycle model (Requirements Modeling) User Requirements Modeling 1 Analisys Modeling Design Modeling Incremental Software Construction Icremental Software Integration Throwaway Prototyping System Testing 8 Incremental Prototyping Customer COMET object-oriented software life cycle model

Descrizione del problema (informale) Punto di partenza per analisi e design To:Vehicle Systems Engineering Division From:GMU Product Line Marketing Group Subject:Cruise Control and Monitoring System As you might already know, we have decided to incorporate a combined cruise control and monitoring system in next year’s GMU model … never offered before … standard equipment on sport version … increase the perceived value far more than the incremental cost to build it …

Funzioni - Funzionalità Automatic cruise control ACCEL OFF RESUME Attivate e controllate da cruise control lever Calibrazione Impostazione costante di calibrazione Impostazione costante di calibrazione (numero di rotazioni dell’albero motore per miglio) Monitoraggio Monitoraggio della velocità media su display di viaggio (eventuale reset a inizio viaggio) Monitoraggio del consumo medio di carburante su display di viaggio (eventuale reset a inizio viaggio) Notifica di manutenzione

ACCEL – OFF – RESUME ACCEL L’automobile accelera senza l’uso del pedale Dopo il rilascio della leva viene mantenuta la velocità raggiunta OFF Sistema di guida disabilitato Disabilitazione automatica con uso del pedale del freno RESUME Ripristino della velocità precedentemente memorizzata Velocità memorizzata cancellata allo spegnimento del motore

Pressione pulsante Start Calibration all’inizio della misurazione del miglio Pressione pulsante Stop Calibration alla fine della misura Calibration Constant

Manutenzione Ogni 5000 miglia cambio olio Ogni miglia cambio olio e filtro aria Ogni miglia ulteriore manutenzione 1 pulsante di reset per ogni indicatore di manutenzione Su display di manutenzione: a 250 miglia dal prossimo intervento  messaggio intermittente a 50 miglia dal prossimo intervento  messaggio costante sono ammessi messaggi multipli

Nessuna interazione imprevista fra uso sistema di guida e uso di funzioni di monitoraggio Velocità media e consumo medio di carburante possono essere funzioni separate dalle funzioni di manutenzione Ovviamente: sistema real-time Funzioni - Funzionalità

Controllo del processo L’algoritmo di controllo della velocità è attivato attraverso sensori dal conducente Confronta la velocità da raggiungere con quella corrente Aumenta o diminuisce la velocità agendo sulla valvola in input al motore Il motore aumenta o diminuisce il numero di giri dell’albero, che emette un segnale ad ogni rotazione, in base alla posizione della valvola in input Il contatore di giri dell’albero determina nuovamente la velocità corrente

Speed Control algorithm for Cruise Control (no UML notation) Speed Control Engine Enable/Disable Set point: Desired speed Adjustement to throttle value Shaft (wheel) rotation Controlled variable = current speed Pulses from shaftCurrent speed Speed Control algorithm for Cruise Control (no UML notation)

Package Raggruppamento use case per attore Raggruppamento use case per funzionalità descritta Nel nostro caso: raggruppamento per funzionalità Cruise Control Use Case Package Monitoring Use Case Package Use case model Attori Nota: Shaft e Timer sono attori perché agiscono indipendentemente da Driver Driver Technician Shaft Timer

Cruise Control Use Cases Update Shaft Rotation Count Contol Speed Determine Distance and Speed Perform Calibration «use case package» Cruise Control UseCasePackage Shaft Timer Driver

Update Shaft Rotation Count Attore: Shaft Sommario: descrive l’attivazione dello Shaft Rotation Count al termine di ogni rivoluzione dell’albero motore Precondizione: l’auto è in moto Descrizione: ad ogni rivoluzione dell’albero è generato un interrupt, usato per contare il numero di rivoluzioni. Tale valore serve per il calcolo della distanza percorsa e della velocità corrente Alternative: condizione di errore – l’interrupt non è ricevuto Postcondizione: Shaft rotation count aggiornato

Control Speed (1) Attore: Driver Sommario: descrive il controllo del sistema di guida dati gli input del conducente attraverso la leva di controllo della velocità, il freno e i dispositivi di input esterni al motore Precondizione: il conducente ha acceso il motore e sta usando l’auto manualmente Descrizione: (tramite scenario) il conducente sposta la leva su ACCEL mantenendola in quella posizione. Il sistema inizia l’accelerazione automatica e l’auto accelera il conducente rilascia la leva per mantenere la velocità raggiunta. Il sistema smette di accelerare e mantiene la velocità raggiunta dell’auto, che viene memorizzata per riferimenti futuri

Control Speed (2) il conducente usa il freno per disabilitare il sistema di guida automatico. L’auto è sotto il controllo manuale il conducente sposta la leva sulla posizione di RESUME per ripristinare il sistema di guida. Il sistema inizia una accelerazione (o decelerazione) per raggiungere la velocità precedentemente memorizzata quando la velocità memorizzata viene raggiunta questa viene mantenuta dal sistema il conducente sposta la leva sulla posizione OFF. Il sistema disabilita il controllo automatico e l’auto è sotto il controllo manuale il conducente ferma l’auto e spegne il motore

Control Speed (3) Alternative: il conducente interagisce col sistema usando tre dispositivi di input (leva, freno, motore). Input del conducente e reazioni del sistema Leva evento Accel causa accelerazione automatica se non viene premuto il freno evento Cruise può solo seguire evento Accel evento Resume deve essere preceduto da disabilitazione del sistema di controllo e memorizzazione della velocità raggiunta evento Off disabilita sempre il sistema di controllo

Control Speed (4) Freno evento Brake Pressed disabilita il sistema di guida automatico. Il controllo automatico del veicolo non è possibile mentre il freno è premuto. Dopo aver rilasciato il freno il controllo automatico può essere ripristinato Motore evento Engine Off disabilita ogni attività del sistema Postcondizione: auto ferma con motore spento

Determine Distance and Speed Attore: Timer Sommario: permette di calcolare periodicamente la distanza percorsa e la velocità corrente dell’auto Precondizione: l’auto è in moto e lo shaft rotation count è stato aggiornato Descrizione: la distanza totale è aggiornata aggiungendovi quella incrementale. Si calcola l’incremento dello shaft rotation count e si ottiene la distanza incrementale dividendo tale valore per la costante di calibrazione. La velocità corrente si calcola dividendo l’incremento della distanza per l’incremento del tempo Alternative: condizione di errore – l’interrupt non è ricevuto Postcondizione: Shaft rotation count aggiornato

Perform Calibration (1) Attore: Driver Sommario: il conducente preme i pulsanti di Start e Stop calibration per ricalcolare la costante di calibrazione Precondizione: esiste un valore precedente per la costante di calibrazione Descrizione: ci sono due pulsanti per la calibrazione, quello di start e quello di stop. Il conducente preme Start Calibration all’inizio del miglio da misurare. Si attiva il processo di calibrazione. Il conducente preme Stop Calibration alla fine del miglio misurato. Il sistema calcola la costante di calibrazione che è il numero di rotazioni dell’albero motore per miglio

Perform Calibration (2) Alternative: premendo due volte consecutivamente Start Calibration il processo di misurazione ricomincia se il nuovo valore differisce da quello nominale per più del 10%, la costante non viene aggiornata Postcondizione: la costante di calibrazione è stata aggiornata

Note Control Speed e Determine Distance and Speed sono use cases separati perché attivati da attori diversi (anche se il primo necessita del secondo) Determine Distance and Speed e Update Shaft Rotation Count sono use cases separati perché il primo descrive un’attivià periodica, mentre il secondo descrive un’attività dipendente dalla velocità dell’auto Cruise Control Use Case

«use case package» Monitoring UseCasePackage Monitoring Use Cases Reset Trip Speed Driver Timer Technician Reset Oil Maintenance Reset Air Filter Maintenance Reset Major Service Maintenance Reset Trip Fuel Consumption Calculate Trip Speed Calculate Trip Fuel Consumption Check Oil Maintenance Check Air Filter Maintenance Check Major Service Maintenance

Reset Trip Speed Attore: Driver Sommario: il conducente richiede al sistema di reinizializzare il calcolo della velocità media Precondizione: trip average display operativo Descrizione: il conducente preme il pulsante Trip Speed Reset, il sistema reinizializza il calcolo della velocità media e ne cancella il valore precedente dal display Postcondizione: velocità media reinizializzata

Check Maintenance (Oil - Air - Major Service) Attore: Timer Sommario: periodicamente il sistema controlla se è richiesto un servizio Precondizione: distanza dell’ultimo servizio effettuato memorizzata Descrizione: il timer attiva lo use case e il sistema determina la distanza percorsa sottraendola a quella dell’ultimo servizio effettuato. Tale valore viene confrontato con la distanza alla quale occorre ripetere il servizio, se mancano 250 miglia o meno viene mostrato un messaggio intermittente, se siamo entro 50 miglia dalla ripetizione il messaggio è mostrato costantemente Postcondizione: controllo di manutenzione effettuato. Se necessario è stato mostrato un messaggio

Reset Maintenance (Oil - Air - Major Service) Attore: Technician Sommario: il tecnico preme il pulsante Service Reset per indicare che il servizio è stato effettuato Precondizione: il tecnico ha effettuato il servizio Descrizione: il tecnico preme il pulsante Service Reset per indicare che il servizio è stato effettuato e il sistema memorizza la distanza alla quale è stato compiuto Postcondizione: è stata memorizzata la distanza alla quale il servizio è stato compiuto

Altre descrizioni (informali) Calclucate Trip Speed Periodicamente il sistema calcola la velocità media dell’auto Calclucate Trip Fuel Consumption Periodicamente il sistema calcola il consumo medio di carburante dell’auto Reset Trip Fuel Consumption Il conducente preme il pulsante Trip Fuel Consumption Reset per reinizializzare il calcolo del consumo medio di carburante

COMET object-oriented software life cycle model (Analisys Modeling) User Requirements Modeling 1 Analisys Modeling Design Modeling Incremental Software Construction Icremental Software Integration Throwaway Prototyping System Testing 8 Incremental Prototyping Customer COMET object-oriented software life cycle model

Sensori/attuatori CruiseControlLever: sensore per richieste di controllo della velocità Engine: sensore di accensione/spegnimento del motore Brake: sensore del freno Shaft: sensore per rotazioni dell’asse Throttle: attuatore per il controllo automatico della velocità GasTank: sensore per il livello del carburante Static Modeling Classi del mondo reale Per un sistema real-time sono dispositivi di I/O fisici (sensori - attuatori) usati per interagire col sistema Trasformate in classi esterne nel system context model

Static model of problem domain GasTank EngineThrottleShaft CruiseControL Lever Brake Cruise Control I/O Button TripResetButton CalibrationButton MaintenanceReset Button Display Clock TripDisplayMaintenanceDisplay Static model of problem domain Sensore Attuatore Dispositivo input Dispositivo output

System context model Derivato da static model System context class diagram Definisce interfaccia fra sistema e ambiente esterno Descritto tramite class diagram Mostra molteplicità delle associazioni classi esterne-sistema Nota: il conducente non è una classe esterna perché interagisce tramite dispositivi di I/O

Cruise Control and Monitoring System: system context class diagram «system» Cruise Control&Monitoring System «external input device» Cruise ControlLever «external input device» Brake «external input device» Engine «external input device» CalibrationButton «external input device» TripResetButton «external input device» MaintenanceReset Button «external input device» Shaft «external timer» Clock «external output device» Throttle «external input device» GasTank «external output device» Maintenance Display «external output device» TripDisplay Driver Technician Shaft Timer Output to Input to Output to Awakens Cruise Control and Monitoring System: system context class diagram

Strutturazione in sottosistemi «system» CruiseControl &Monitoring System «subsystem» CruiseControl Subsystem «subsystem» Monitoring Subsystem note

Dipendenza: la distanza complessiva è calcolata in Determine Distance and Speed ma usata nel Monitoring Subsystem Monitoring Subsystem può essere diviso in: Averages Subsystem Maintenance Subsystem Strutturazione in sottosistemi

Cruise Control & Monitoring System: major subsystem relationship «subsystem» Cruise Control Subsystem «external input device» Cruise ControlLever «external input device» Brake «external input device» Engine «external input device» CalibrationButton «external input device» TripResetButton «external input device» MaintenanceReset Button «external input device» Shaft «external timer» Clock «external output device» Throttle «external input device» GasTank «external output device» MaintenanceDisplay «external output device» TripDisplay Driver Technician Shaft Timer «subsystem» Monitoring Subsystem «system» Cruise Control &Monitoring System «depends on» Cruise Control & Monitoring System: major subsystem relationship

Collaboration diagrams Cruise Control Subsystem Update Shaft Rotation Count Control Speed (state dependent) Control Speed Determine Distance and Speed Perform Calibration (state dependent) Perform Calibration Monitoring Subsystem Reset/Calculate Trip Speed Reset/Calculate Trip Fuel Consumption Reset/Check Oil Maintenance

Collaboration diagram for Update Shaft Rotation Count use case «external input device» :Shaft «input device interface» :ShaftInterface «entity» :ShaftRotation Count Sh1: Shaft Input Sh1.1: Update Collaboration diagram for Update Shaft Rotation Count use case Subsystem

Collaboration diagram for Control Speed use case «external input device» :CruiseControlLever Collaboration diagram for Control Speed use case «input device interface» :CruiseControl LeverInterface «external input device» :Brake «external input device» :Engine «input deviceinterface» :BrakeInterface «input device interface» :EngineInterface «state dependent control» :CruiseControl «algoritm» :Acceleration «algoritm» :Cruiser «entity» :DesiredSpeed «algoritm» :Resumption «entity» :CurrentSpeed «output device interface» :ThrottleInterface «external output device» :Throttle C1: Accel Input, C2: Cruise Input, C4:Resume input, Off Input C1.1: Accel, C2.1: Cruise, C4.1:Resume, Off C3: Brake Input C3.1: Brake Pressed, Brake Released Engine Input Engine Off, Engine On C1.2: Enable Increase Speed, C2.2: Disable Increase Speed C2.6,C4.11: Enable Maintain Speed, C3.2: Disable Maintain Speed C2.7,C4.12: Read C2.3: Select Desired Speed, Celar Desired Speed C4.2:Enable Resume Cruising, C4.10: Disable Resume Cruising C4.9: Reaced Cruising C4.3: Read C2.8,C4.13: Desired Speed Value C1.5: Throttle Value C1.4: Current Speed Value C1.3: Read C2.11, C3.3, C4.16: Throttle Value C2.10,C4.15: Current Speed Value C2.9, C4.14: Read C2.5: Current Speed Value C2.4: Read C4.5: Read C4.4: DesiredSpeed Value C4.6: Current Speed Value C4.7: Throttle Value C1.6,C2.12,C4.8,C4.17: Throttle Position Subsystem

Collaboration diagram for Control Speed use case (dettaglio) «algoritm» :Resumption «external output device» :Throttle «output device interface» :ThrottleInterface «entity» :CurrentSpeed «algoritm» :Cruiser «state dependent control» :CruiseControl «external input device» :CruiseControlLever Collaboration diagram for Control Speed use case «input device interface» :CruiseControl LeverInterface «entity» :DesiredSpeed C4:Resume input C4.1:Resume C4.11: Enable Maintain Speed C4.12: Read C4.2:Enable Resume Cruising, C4.10: Disable Resume Cruising C4.9: Reaced Cruising C4.3: Read C4.13: Desired Speed Value C4.16: Throttle Value C4.15: Current Speed Value C4.14: Read C4.5: Read C4.4: DesiredSpeed Value C4.6: Current Speed Value C4.7: Throttle Value C4.8,C4.17: Throttle Position

Cruise Control statechart Idle Cruising OffInitial Accelerating C1.2,C2.2: Do/Increase Speed C2.3: Exit/Select Desired Speed Resuming C4.2,C4.10: Do/Resume Cruising Cruising C2.6,C3.2,C4.11: Do/Maintain Speed Engine On/Clear Desired Speed Engine Off Engine Running C1.1: Accel [Brake Off] Automated Control Accel C2.1: Cruise C4.9: Reached Cruising Off C3.1: Brake Pressed Off Resume [Brake Off] Accel [Brake Off] Cruise Control statechart Collaboration

Collaboration diagram for Determine Distance and Speed use case «external timer» :Clock «timer» :DistanceTimer «entity» :CurrentSpeed «entity» :Distance «entity» :ShaftRotation Count «entity» :Calibration Constant D1: Timer Event D1.1: Calculate D1.2: Read D1.3: Calibration Constant Value D1.4: Read D1.5: Shaft Rotation Count Value D1.6: Incremental Distance D1.7: Calculate (incremental Distance) D1.8: Read D1.9: Current Time Collaboration diagram for Determine Distance and Speed use case Subsystem

Collaboration diagram for Perform Calibration use case «external input device» startCalibration Button «state dependent control» :CalibrationControl Ca1: Start Calibration Input Ca1.1: Calibration Start Collaboration diagram for Perform Calibration use case «entity» :Calibration Constant «entity» :ShaftRotation Count Ca1.2: Start, Ca2.2: Stop Ca2: Stop Calibration Input Ca2.1: Calibration Stop «input device interface» startCalibration ButtonInterface «external input device» stopCalibration Button «input device interface» stopCalibration ButtonInterface Ca1.3, Ca2.3: Read Ca1.4, Ca2.4: Shaft Rotation Count Value Subsystem

Statechart for Calibration Control object Collaboration Not Measuring Measuring Mile Ca2.1: Calibration Stop / Ca2.2: Stop Ca1.1: Calibration Start / Ca1.2: Start Calibration Start / Stop Statechart for Calibration Control object

Collaboration diagram for Reset and Calculate Trip Speed use case «external input device» tripSpeedReset Button «algorithm» :TripSpeed S1: Trip Speed Reset Input S1.1: Trip Speed Reset Collaboration diagram for Reset and Calculate Trip Speed use case «output device interface» :TripDisplay Interface «external output device» :TripDisplay S1.6: Initialize, S2.6: Average Speed «input device interface» tripSpeedReset ButtonInterface S2: Timer event S2.1: Calculate «external timer» :Clock «timer» tripSpeedTimer «entity» :Distance S1.2, S2.2: Read Distance S1.3,S2.3: Cumulative Distance S1.5, S2.5: Current Time S1.4, S2.4: Read S1.7,S2.7: Mileage Display Data

Collaboration diagram for Reset and Calculate Trip Fuel Consumption use case «output device interface» :TripDisplay Interface «external input device» :GasTank «algorithm» :TripFuel Consumption F1.4, F2.4: Fuel Input F1.5, F2.5: Fuel Amount Collaboration diagram for Reset and Calculate Trip Fuel Consumption use case «external output device» :TripDisplay F1.8: Initialize, F2.8: Average Fuel Consumption «input device interface» :GasTankInterface F1: fuel Consumption Reset Input F1.1: Fuel Consumption Reset «external input device» fuelConsumption ResetButton «input device interface» fuelConsumption ResetButtonInterface «entity» :Distance F1.6, F2.6: Read F1.7, F2.7: Cumulative Distance F1.9,F2.9: Mileage Display Data «external timer» :Clock F2: Timer Event «timer» fuelConsumption Timer F1.3, F2.3: Read F1.2, F2.2: Read F2.1: Calculate

Collaboration diagram for Reset and Check Oil Maintenance use case «external timer» :Clock «algorithm» :OilChange Maintenance M2: Timer Event M2.1: Check Collaboration diagram for Reset and Check Oil Maintenance use case «output device interface» :Maintenance Display Interface «external output device» :Maintenance Display M1.4,M2.4: Oil Service Status «timer» oilChangeTimer M1: Oil Change Reset Input M1.1: Oil Change Reset «external input device» oilChangeReset Button «input device interface» oilChangeReset ButtonInterface «entity» :Distance M1.2,M2.2: Read Distance M1.3,M2.3: Cumulative Distance M1.5,M2.5: Maintenance Display Data

COMET object-oriented software life cycle model (Design Modeling) User Requirements Modeling 1 Analisys Modeling Design Modeling Incremental Software Construction Icremental Software Integration Throwaway Prototyping System Testing 8 Incremental Prototyping Customer COMET object-oriented software life cycle model

Cruise Control Subsystem Use caseSubsystem Update Shaft Rotation Count Shaft Determine Distance and Speed Distance & Speed Perform CalibrationCalibration Control SpeedAuto Control

Shaft Subsystem Shaft Input Update «external input device» :Shaft «external device interface» :ShaftInterface «entity» :Distance Shaft Rotation Count Value «entity» :ShaftRotation Count «data collection subsystem» :ShaftSubsystem Read «subsystem» :Distance&Speed Subsystem Collaboration

Distance & Speed Subsystem Timer Event Calculate «external timer» :Clock «timer» :DistanceTimer «entity» :CurrentSpeed Read «entity» :Distance «data analysis subsystem» :Distance&Speed Subsystem Incremental Distance Calculate (Incremental Distance) Collaboration «entity» :Calibration Constant «entity» :ShaftRotation Count Read Shaft Rotation Count Value Calibration Constant Value

«state dependent control» :Calibration Control Calibration Subsystem Start Calibration Input «external input device» startCalibration Button «input device interface» startCalibration ButtonInterface «entity» :ShaftRotation Count Start, Stop «data analysis subsystem» :Calibration Subsystem Calibration Strat Collaboration «entity» :Calibration Constant Read Shaft Rotation Count Value «external input device» stopCalibration Button Stop Calibration Input «input device interface» stopCalibration ButtonInterface Calibration Stop

Auto Control Subsystem «external input device» :CruiseControlLever Auto Control Subsystem «input device interface» :CruiseControl LeverInterface «external input device» :Brake «external input device» :Engine «input deviceinterface» :BrakeInterface «input device interface» :EngineInterface «state dependent control» :CruiseControl «algoritm» :Acceleration «algoritm» :Cruiser «entity» :DesiredSpeed «algoritm» :Resumption «entity» :CurrentSpeed «output device interface» :ThrottleInterface «external output device» :Throttle Cruise Control Input Accel, Cruise, Resume, Off Brake Input Brake Pressed, Brake Released Engine Input Engine Off, Engine On Enable Increase Speed, Disable Increase Speed Enable Maintain Speed, Disable Maintain Speed Read Select Desired Speed, Celar Desired Speed Enable Resume Cruising, Disable Resume Cruising Reaced Cruising Read Desired Speed Value Throttle Value Current Speed Value Read Throttle Value Current Speed Value Read Current Speed Value Read Desired Speed Value Current Speed Value Throttle Value Throttle Position Collaboration «control subsystem» :AutoControlSubsystem

Monitoring Subsystem Maintenance Reset Oil Maintenance Check Oil Maintenance Reset Air Filter Maintenance Check Air Filter Maintenance Reset Major Service Maintenance Check Major Service Maintenance Trip Averages Reset Trip Speed Calculate Trip Speed Reset Fuel Consumption Calculate Fuel Consumption SubsystemUse case

Trip Averages Subsystem 1 «external output device» :TripDisplay «external input device» :GasTank «algorithm» :TripFuelConsumption Fuel Input Fuel Amount Trip Averages Subsystem 1 «output device interface» :TripDisplayInterface Initialize, Average Fuel Consumption «input device interface» :GasTankInterface Fuel Consumption Reset Input Fuel Consumption Reset «external input device» fuelConsumption ResetButton «input device interface» fuelConsumption ResetButtonInterface «entity» :Distance Read Cumulative Distance Mileage Display Data «external timer» :Clock Timer Event «timer» fuelConsumption Timer Read Calculate

Trip Averages Subsystem 2 «input device interface» tripSpeedReset Button «external output device» :TripDisplay Trip Averages Subsystem 2 «output device interface» :TripDisplayInterface «entity» :Distance Mileage Display Data «external timer» :Clock «timer» tripSpeedTimer «external input interface» tripSpeedReset ButtonInterface «algorithm» :TripSpeed Current Time Read Timer Event Calculate Initialize, Average Speed Read Cumulative Distance TripSpeed Reset Trip Speed Reset Input

Trip Averages Subsystem «input device interface» tripSpeedReset Button «external output device» :TripDisplay «external input device» :GasTank «algorithm» :TripFuelConsumption Fuel Input Fuel Amount Trip Averages Subsystem «output device interface» :TripDisplayInterface Initialize, Average Fuel Consumption «input device interface» :GasTankInterface Fuel Consumption Reset Input Fuel Consumption Reset «external input device» fuelConsumption ResetButton «input device interface» fuelConsumption ResetButtonInterface «entity» :Distance Read Cumulative Distance Mileage Display Data «external timer» :Clock Timer Event «timer» fuelConsumption Timer Read Calculate «timer» tripSpeedTimer «external input interface» tripSpeedReset ButtonInterface «algorithm» :TripSpeed Current Time Read Timer Event Calculate Initialize, Average Speed Read Cumulative Distance «data analysis subsystem» TripAverage Subsystem TripSpeed Reset Trip Speed Reset Input

Maintenance Subsystem 1 «input device interface» oilChangeReset ButtonInterface «external timer» :Clock «algorithm» :OilChange Maintenance Timer Event Check Maintenance Subsystem 1 «output device interface» :Maintenance Display Interface «external output device» :Maintenance Display Oil Change Status «timer» oilChange Timer Oil Change Reset Input Oil Change Reset «external input device» oilChangeResetButton «entity» :Distance Read Cumulative Distance Maintenance Display Data

Maintenance Subsystem «input device interface» oilChangeReset ButtonInterface «external timer» :Clock «algorithm» :OilChange Maintenance Timer Event Check Maintenance Subsystem «output device interface» :Maintenance Display Interface «external output device» :Maintenance Display Oil Change Status «timer» oilChange Timer Oil Change Reset Input Oil Change Reset «external input device» oilChangeResetButton «entity» :Distance Read Cumulative Distance Maintenance Display Data «timer» airFilter Service Timer «input device interface» airFilterService Reset ButtonInterface «external input device» airFilterService ResetButton «timer» major Service Timer «input device interface» majorService Reset ButtonInterface «algorithm» :AirFilterService Maintenance «algorithm» :MajorService Maintenance «external input device» majorService ResetButton Timer Event Air Filter Service Reset Input Timer Event Major Service Reset Input «data analysis subsystem» :Maintenance Subsystem Check Air Filter Service Reset Check Major Service Reset Air Filter Service Status Read Cumulative Distance Major Service Status Read Cumulative Distance

«subsystem» CruiseControlSubsystem «system» CruiseControl&MonitoringSystem Sottosistemi «subsystem» MonitoringlSubsystem Distance&Speed Subsystem «subsystem» AutoControl Subsystem «subsystem» Calibration Subsystem «subsystem» Shaft Subsystem «subsystem» TripAverages Subsystem «subsystem» Maintenance Subsystem «subsystem»

Sottosistemi (dettaglio) Read(out cumulative Distance) «system» :CruiseControl&MonitoringSystem «subsystem» :CruiseControlSubsystem «subsystem» :MonitoringlSubsystem :Distance&Speed Subsystem «subsystem» :AutoControl Subsystem «subsystem» :Calibration Subsystem «subsystem» :Shaft Subsystem «subsystem» :TripAverages Subsystem «subsystem» :Maintenance Subsystem «subsystem» «entity» :Current Speed «entity» :Distance «entity» :Calibration Constant «entity» :ShaftRotation Count Read(out currentSpeedValue) Read(out calibration ConstantValue) Read(out shaftRotation CountValue) Read(out cumulativr Distance)

Refined Static Modeling

Class diagram for Cruise Control Subsystem «entity» Calibration Constant «entity» ShaftRotation Count «entity» Current Speed «entity» DesiredSp eed «input device interface» BooleanInputDeviceInterface «input device interface» BrakeInterface «input device interface» EngineInterface «input device interface» CruiseControlLeverInterface «state dependent control» CruiseControlStateMachine Notifies «timer» Timer «entity» Distance Triggers Uses «algorithm» SpeedControlAlgorithm Uses Controls Uses «algorithm» Acceleration «algorithm» Cruiser «algorithm» Resumption «output device interface» ThrottleInterface Outputs to «state dependent control» StateMachine «state depandent control» CalibrationControl «input device interface» CalibrationButtonInterface Notifies Controls Uses «input device interface» ShaftInterface Updates Uses Class diagram for Cruise Control Subsystem

Class diagram for Monitoring Subsystem «input device interface» ButtonInterface Resets Class diagram for Monitoring Subsystem «input device interface» CalibrationButton Interface «input device interface» TripResetButton Interface «input device interface» MaintenanceReset ButtonInterface «algorithm» TripAverage «output device interface» TripDisplay Interface «timer» Timer «entity» Distance Uses Triggers «algorithm» TripFuel Consumption «algorithm» TripSpeed «algorithm» Maintenance «algorithm» MajorService Maintenance «algorithm» AirFilter Maintenance «algorithm» OilChange Maintenance Triggers Uses Resets «output device interface» Maintenance DisplayInterface «output device interface» DisplayInterface Displays on