CRUISE CONTROL AND MONITORING SYSTEM Case study Luigi Tosetto Indice Descrizione del problema Use case model Strutturazione in sottosistemi Collaboration diagrams Subsystem structuring Classi del mondo reale System context model Dynamic modeling Packages Descrizione use cases Static modeling Descrizione informale Funzionalità Controllo del processo Dipendenze fra sottosistemi Refined static modeling User 1 Requirements Modeling 2 Analisys software life cycle model (Requirements Modeling) COMET object-oriented 5 Modeling 4 Design Modeling 3 6 Incremental Software 7 Construction Throwaway Prototyping 13 12 11 10 Icremental Software Integration 8 Incremental Prototyping 9 15 System Testing 14 COMET object-oriented software life cycle model Customer 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 (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 Funzioni - Funzionalità 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 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) Enable/Disable Set point: Desired speed Speed Shaft (wheel) rotation Adjustement to throttle value Engine Control Controlled variable = current speed Pulses from shaft Current speed Speed Control algorithm for Cruise Control (no UML notation) Use case model 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 Attori Driver Technician Shaft Timer Nota: Shaft e Timer sono attori perché agiscono indipendentemente da Driver Cruise Control Use Cases «use case package» Cruise Control UseCasePackage Update Shaft Rotation Count Shaft Contol Speed Determine Distance and Speed Perform Calibration Driver Timer Cruise Control Use Case 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 Monitoring Use Cases «use case package» Monitoring UseCasePackage Driver Technician Reset Trip Speed Calculate Trip Speed Reset Trip Fuel Consumption Calculate Trip Fuel Consumption Reset Oil Maintenance Check Oil Maintenance Reset Air Filter Maintenance Check Air Filter Maintenance Reset Major Service Maintenance Check Major Service Maintenance Timer User 1 Requirements Modeling 2 Analisys COMET object-oriented software life cycle model (Analisys Modeling) 5 Modeling 4 Design Modeling 3 6 Incremental Software 7 Construction Throwaway Prototyping 13 12 11 10 Icremental Software Integration 8 Incremental Prototyping 9 15 System Testing 14 COMET object-oriented software life cycle model Customer 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 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 Cruise Control I/O CruiseControL Lever Brake Engineof problem domain Shaft Static model Button Sensore Attuatore Dispositivo input Dispositivo output CalibrationButton TripResetButton Clock Display TripDisplay MaintenanceReset Button GasTank MaintenanceDisplay Static model of problem domain Throttle 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 «external input device» 1 Cruise ControlLever «external input device» Technician «external input device» MaintenanceReset Button Shaft 1 Input to Shaft 3 Input to «external input and Monitoring System: system Cruise Control context class diagram device» Brake 1 Input to Input to 1 1 1 1 «system» «external input device» Input to 1 1 Engine Driver Input to «external input device» TripResetButton 1 1 1 1 Output to «external output 1 device» Input to 2 Output to 1 Timer Clock 1 2 CalibrationButton Input to «external input device» 1 Cruise Control&Monitoring System Awakens «external timer» 1 1 Throttle Output to 1 1 «external output device» «external output device» «external input device» TripDisplay Maintenance Display GasTank Cruise Control and Monitoring System: system context class diagram Strutturazione in sottosistemi «system» CruiseControl &Monitoring System «subsystem» «subsystem» CruiseControl Subsystem Monitoring Subsystem note «external input device» «system» 1 1 Cruise Control &Monitoring System Cruise ControlLever «external input device» Shaft Shaft 1 1 «external output «external input Cruise Control & Monitoring System: major subsystem relationship «subsystem» device» 1 device» 1 1 1 1 Cruise Control Throttle Brake 1 «external input device» 1 «subsystem» «external input device» «external input device» Monitoring Subsystem 2 1 CalibrationButton 2 TripResetButton Technician 1 1 «depends on» Engine Driver Subsystem 1 3 1 «external timer» 1 1 1 Clock 1 1 Timer «external input device» GasTank 1 1 «external input device» «external output device» «external output device» MaintenanceReset Button TripDisplay MaintenanceDisplay Cruise Control & Monitoring System: major subsystem relationship Collaboration diagrams Cruise Control Subsystem Update Shaft Rotation Count Control Speed (state dependent) Determine Distance and Speed Perform Calibration (state dependent) Monitoring Subsystem Reset/Calculate Trip Speed Reset/Calculate Trip Fuel Consumption Reset/Check Oil Maintenance User 1 Requirements Modeling 2 Analisys COMET object-oriented software life cycle model (Design Modeling) 5 Modeling 4 Design Modeling 3 6 Incremental Software 7 Construction Throwaway Prototyping 13 12 11 10 Icremental Software Integration 8 Incremental Prototyping 9 15 System Testing 14 COMET object-oriented software life cycle model Customer Cruise Control Subsystem Use case Subsystem Update Shaft Rotation Count Shaft Determine Distance and Speed Distance & Speed Perform Calibration Calibration Control Speed Auto Control Monitoring Subsystem Use case Subsystem Reset Trip Speed Calculate Trip Speed Reset Fuel Consumption Calculate Fuel Consumption Trip Averages Reset Oil Maintenance Check Oil Maintenance Reset Air Filter Maintenance Check Air Filter Maintenance Reset Major Service Maintenance Check Major Service Maintenance Maintenance «system» CruiseControl&MonitoringSystem «subsystem» CruiseControlSubsystem «subsystem» «subsystem» MonitoringlSubsystem Sottosistemi «subsystem» TripAverages Subsystem AutoControl Subsystem «subsystem» Distance&Speed Subsystem «subsystem» Calibration Subsystem «subsystem» Shaft Subsystem «subsystem» Maintenance Subsystem «system» :CruiseControl&MonitoringSystem «subsystem» :CruiseControlSubsystem «subsystem» :MonitoringlSubsystem «subsystem» «subsystem» «subsystem» :TripAverages Subsystem :Maintenance Subsystem Sottosistemi (dettaglio) :AutoControl Subsystem Read(out currentSpeedValue) «subsystem» :Calibration Subsystem «entity» :Calibration Constant «subsystem» :Distance&Speed Subsystem «entity» :Current Speed Read(out calibration ConstantValue) Read(out shaftRotation CountValue) «entity» :Distance Read(out shaftRotation CountValue) «subsystem» :Shaft Subsystem «entity» :ShaftRotation Count Read(out cumulativr Distance) Read(out cumulative Distance) Refined Static Modeling «input device interface» BooleanInputDeviceInterface «input device interface» CruiseControlLeverInterface Notifies «algorithm» Acceleration «algorithm» Cruiser «algorithm» Resumption «state dependent control» StateMachine «input device interface» «input device interface» Class diagram for Cruise Control Subsystem BrakeInterface EngineInterface Notifies «state dependent control» CruiseControlStateMachine Controls «timer» Timer Notifies Controls «entity» DesiredSp Uses eed «algorithm» SpeedControlAlgorithm Triggers Uses Triggers «entity» Current Speed Uses Uses «entity» Distance Uses Outputs to «output device interface» ThrottleInterface «input device interface» CalibrationButtonInterface «state depandent control» CalibrationControl Controls Class diagram for Cruise Control Subsystem Notifies «entity» Calibration Constant «input device interface» ShaftInterface Updates Uses «entity» ShaftRotation Count «input device interface» ButtonInterface «input device interface» CalibrationButton Interface «input device «input device interface»Class diagram interface» for Monitoring Subsystem TripResetButton MaintenanceReset Interface ButtonInterface Resets Triggers Displays on «algorithm» TripAverage Uses «algorithm» TripSpeed «algorithm» TripFuel Consumption «output device interface» TripDisplay Interface Class diagram for Monitoring Subsystem Resets «timer» Timer Triggers «entity» Distance Uses «algorithm» OilChange Maintenance «output device interface» DisplayInterface Displays on «algorithm» Maintenance «algorithm» AirFilter Maintenance «algorithm» MajorService Maintenance «output device interface» Maintenance DisplayInterface