‘Progettazione SW in ambito Industriale’
Attivita’ di supporto al corso ‘Ingegneria del SW’
Esempio di progetto di un sistema di
misura secondo la metodologia OO ed il linguaggio standard per la
modellizzazione UML.
Data: Febbraio 2005 Autore: Ivana Montelli
L’ evoluzione degli ambienti di sviluppo e la conseguente complessita’ delle applicazioni da sviluppare ha portato alla standardizzazione di alcune metodologie per supportare gli analisti e progettisti di sistemi sw nel loro lavoro. Una delle tecniche piu’ diffuse ed utilizzate in ambiente di progettazione di SW industriale e’ l’‘Analisi e Progettazione Orientata agli Oggetti’ (Object-Oriented Analysis and Design o OOAD). Queste lezioni presenteranno passo passo le fasi salienti di un progetto SW industriale che ha sposato questa metodologia.
Il progetto tratta di un sistema di misura (parte SW), completamente sviluppato secondo la metodologia OO (Object Oriented) con l’ausilio del linguaggio standard di modellizzazione UML.
La metodologia applicata e qui rappresentata e’ tratta da tecniche OMT (Rumbaugh) e OOSE(Jacobson).
Presentazione delle tecniche per modellizzazione SW
· Ricerca requisiti dell’ utente per un certo problema
· Come effettuare l’ analisi in termini di diagrammi statici e dinamici
· Come trasformare i risultati dell’ analisi in una forma implementabile, usando tecniche OOP (Object Oriented Programming)
Prerequisiti:Una buona comprensione di OOP.
Programma
Introduzione al progetto di un sistema di misura.
Cos’e’ una macchina di misura
Qual’e’ il suo campo di applicazione
Un esempio di sistema di misura
OOAD-Prima parte. Analisi.
Introduzione. OOP Vantaggi/ svantaggi.
Analisi. Applicazione delle fasi di analisi SW al progetto sistema di misura:Use Case Analisi Requisiti (Use Case Requirements Analisys)
Ricerca Attori (Finding Candidate Objects) Stesura Glossario (Preparing a Data Dictionary)
Object Modeling (Message, Methods, Attributes,Classes,links, associations, constraints,
inheritance)Dynamic Modeling (Interactions Diagrams & State
Transition Diagrams)
OOAD-Seconda parte. Progettazione.
System Design Technical Architecture Application Architecture (basic design principles,
metric and design patterns and framework)
Object Design Representation: implementing associations,
constraints, inheritanceOptimization
Persistence: Mapping the OM onto a relational DB
Introduzione al progetto di un sistema di misura.
What Measuring machine stands for?
La macchina di misura
E’ un dispositivo meccanico, manuale(movimento da operatore) o automatico(movimento da motori), governato da un controllo FW e da un’ applicazione SW,per effettuare controlli di misura e di tolleranza di pezzi meccanici e superfici, posti alla fine della loro linea di produzione. Esistono varie linee di macchine di misura, dalle piu’ piccole, per il controllo di piccoli pezzi meccanici, fino ai robot di misura che sono in grado di controllare l’ intera carrozzeria di una macchina. Il campo di applicazione della MdM e’ molto vasto, comprende quasi tutta la produzione industriale( metalmeccanica, automotive, sanitaria…)
Il sistema di misura
E’ l’ applicazione Firmware e Software che, avvalendosi di una interfaccia grafica molto evoluta, guida l’ operatore a rilevare le figure geometriche, presenti sui pezzi da controllare, per ottenere i loro valori di misura e di tolleranza.
Il sistema di misura puo’ essere utilizzato per effettuare controllo
manuali, controlli automatici, la completa simulazione delle operazioni, il controllo di superfici (usato in carrozzeria).
Sistema di misura manuale
Questa applicazione fornisce la possibilita’ di controllare un pezzo su una macchina di misura manuale. Il sistema non lo richiede, ma puo’ essere provvisto di un modello CAD e una database dei dati teorici degli elementi geometrici di base e delle tolleranze associate.
Sistema di misura automatico
Questo sistema fornisce la possibilita’ di creare, eseguire, effettuare il debug passo-passo ed editare il programma di misura su macchina di misura automatica. Il sistema richiede la presenza di un modello CAD ed un database dei valori teorici degli elementi geometrici di base e delle relative tolleranze. La programmazione puo’ essere supportata da istruzioni di controllo di flusso, il processo di misura automatico puo’ essere supportato da cicli di misura semi-automatici.
Componenti principali di un sistema di Misura SW
• Librerie matematiche per i calcoli:– Elementi geometrici di base– Relazioni– Tolleranze ISO
• DB raccolta dati• Visualizzatore dati (report output grafico, output tabellare)• Gestore degli elementi • Configuratore macchina• Configuratore SW di misura• Programma o Piano di misura• CAD
Questo caso di studio si riferira’ all’ interazione tra la categoria di oggetti ‘Elementi di Misura’ ed il loro contenitore ‘Programma di Misura’ ed alcuni altri componenti del sistema di misura.
OOAD-Prima parte.Introduzione
Caratteristiche.
La metodologia OO organizza le applicazioni in modo non dipendente daidati e dalle funzioni, bensi’ in modo dipendente dagli oggetti, cheincapsulano sia i dati che le funzioni.
Vantaggi.
Un primo vantaggio di questa tecnica e’ evidente, e’ proprio che i dati sono‘incapsulati’. I dati contenuti in un oggetto possono essere raggiunti solo attraverso funzioni, che ‘guidano’ la programmazione dell’ oggetto stesso.Inoltre il passaggio da Analisi a Progettazione a Codifica e’ molto lineare, sitratta di successive aggiunte di dettagli ed estensioni. Ed in ultimo e’ chequesta tecnica puo’ essere introdotta facilmente anche in un’ organizzazione di altro tipo, una parte nuova sviluppata con tecnica OO puo’ essere fatta per lavorare benissimo con altri sistemi.
Svantaggi.Questa tecnologia sembra essere ancora immatura, non tutto il mondo industriale e’ pronto per adottarla. Per cui ci sono pochi esperti.
Inoltre la tecnica richiede un tempo iniziale abbastanza lungo prima di dare dei risultati tangibili, e questo non sempre e’ ben accetto dai datori di lavoro, poco disponibili a comprendere il significato reale di una fase di analisi e quindi ad accollarsene i costi.
Regole.Sono 4 le regole da seguire nella fase di analisi
1) L’ analisi risponde alle domande ‘COSA’. La progettazione rispondera’ alle domande ‘COME’.
2) Non effettuare mai la progettazione prima di avere esaurito la fase di analisi
3) Partire sempre da una chiara descrizione dei concetti e pensare in modo naturale.
4) Comunicare intensamente con i collaboratori e ricordarsi che analisi e progettazione sono processi iterativi e creativi.
ANALISI applicata al progetto di un sistema di misura. Sviluppo secondo UML
Raccolta Requisiti.
• Ricerca ed organizzazione Informazioni.
• Attesa di documenti di specifica ed attiva collaborazione nel portare a termine la stesura. Questo e’ un punto iterativo, i documenti incominciano ad essere preparati visionati e discussi(sessioni di brainstorming)
• Prestare attenzione alle indagini marketing/commerciali con senso critico costruttivo
• Fare tesoro della propria esperienza e se non se ne ha studiare molto.
Use Case Analisi Requisiti.
Un caso d’uso e’ un modo specifico di uso del sistema indagandoalcuni suoi percorsi di funzionalita’.Trovare i casi d’uso aiuta adidentificare come il sistema verra’ usato dagli attori in gioco e qualiservizi dovra’ provvedere.
Normalmente un caso d’ uso ha un percorso principale e alcunipercorsi alternativi. Prima si descrive il percorso principale, chedescrive il caso d’uso, poi i percorsi alternativi che sono varianti delpercorso principali o percorsi di caso d’ errore.
Stesura Glossario (Preparing a Data Dictionary).
Assolutamente fondamentale comprendere bene, e condividere con i collaboratori, il significato dei termini adottati, specialmente se il gruppo e’ internazionale, come spesso capita.
Per ogni oggetto individuato provare a rispondere alle domande:
‘Cos’e?’
‘Cosa fa?’.
Ricerca Attori (Finding Candidate Objects).
Ricerca di una lista di oggetti rilevanti per il contesto di progetto.Per questa ricerca puo’ essere utile un’ analisi lessicale del problema, secondo quest’ approccio tutti i nomi che occorrono nel problema sarebbero oggetti. Un altro approccio puo’ essere quello del ‘BrainStorming’, tutti i partecipanti al progetto esprimono la propria idea sugli oggetti del sistema. Pertanto si effettuano liste di candidati e si discutono insieme i loro ruoli, fin quando tutti sono convinti di avere individuato gli oggetti del sistema.Di sicuro gli oggetti rappresentano un oggetto nel mondo reale, hanno uno stato ed un comportamento, hanno un ben definito ciclo-vita, hanno un’ identita’.
CMM
Manual Inspection
CMM System
Operatore
Simulation
Program execution
MachineCalibration&Configuration
Controllo
Auto Inspection
Output Reports
Program DebugExecution
«uses» «uses»
Molto utile, nella fase di ricerca dei casi d’ uso, avvalersi anche di tabelline come nella figura seguente, che aiutano nella ricerca degli attori coinvolti nel caso d’uso, e nello studio dei possibili percorsi: primari, secondari e d’errore.
Use Case Machine Calibration & Configuration Descrizione La calibrazione e la configurazione della macchina e’ la prima
operazione che viene eseguita dopo avere connesso la meccanica, l’ HW ed il computer con il sistema di misura. L’ operatore deve accendere tutto il sistema e eseguire il programma di misura, scegliere nel menu che gli si presentera’ le attivita’ di calibrazione e configurazione.
Attori coinvolti Macchina, Controllo, Operatore Dove Sala Collaudo Assunzioni La macchina deve essere stata completamente prodotta e il controllo
HW funzionante Precondizioni L’ operatore deve essere in grado di agire sul programma di misura
al fine di effettuare le operazioni richieste Postcondizioni La macchina potra’ ricevere i dati di calibrazione e configurazione
che rimarranno tali fino a quando non verra’ decisa una variazione. Il sistema di misura permettera’ di effettuare altre operazioni.
Percorso Primario Il sistema non e’ancora stato inizializzato, l’ operatore segue passo passo la procedura che lo portera’ a completare la calibrazione e la configurazione del sistema
Percorso Secondario Il sistema e’ gia’ stato calibrato e configurato, all’ operatore appaiono gia’ i dati della precedente sessione. Si possono azzerare o parzialmente modificare.
Percorso di Errore Non e’ possibile comunicare con il controllo per ricevere i parametri e trasmettere i dati di calibrazione. Puo’ essere un problema di versione FW oppure un problema di comunicazione: cavi sbagliati, ecc. Comunicare con l’ assistenza.
Anche se questo tipo di diagramma non viene frequentemente citato dai libri di testo, e’ molto importante nella fase di elenco dei componenti principali di un sistema.
Package Diagram
MainAppl
CADOutputReports
CADVIEWER
MachineConfiguration
ControlDriverGeoFeatureEditor
ToleranceEditor
Program
ProgramViewer
TolerangeFeatureMathEngine
PathPoints
PathPointsEditor
PathPointsViewer
Package Diagram
Object Modeling
Objects, Message, Methods.
L’ unico modo che hanno gli oggetti per comunicare tra loro e’ spediremessaggi. I messaggi possono essere usati per:• richiedere di effettuare un calcolo e restituire un risultato all’ oggetto client. • restituire un valore al contenuto dell’ oggetto server (metodo get)• cambiare il contenuto dell’ oggetto derver, cambiando il suo stato o valore
(memto set)
Gli oggetti influenzano e sono influenzati dagli altri.I metodi sono I servizi che gli oggetti forniscono.I messaggi sono le richieste di un servizio(ovvero I messaggi attivano metodi)
Oggetto:
Elemento di misura
Oggetto:
Driver di comunicazione
Dove attraverso il Method1 dall’ oggetto Elemento di misura viene richiesto, al driver di comunicazione,di portare la macchina alle coordinate teoriche passate come parametro nel method1. Il driver comandera’ il movimento al controllo elettronico e la macchina rilevera’ il punto reale corrispondente alle coordinate teoriche richieste. A questo punto il driver puo’ spedire un messaggio all’oggetto Elemento di misura con le coordinate reali. L’ oggetto di misura aggiungera’ questo punto reale per effettuare il calcolo di misura.
Attributes,Classes.Gli Attributi sono usati per gestire le informazioni associate ad un oggetto emantenute all’ interno dell’ oggetto. Gli attributi possono essere definiti comecontenitori per puri valori.Esempio: l’ oggetto ‘Elemento di misura’, nominato prima, avra’ sicuramente unattributo ‘Nome’ o ‘Etichetta’, che conterra’ il valore ‘Cerchio27’. I valori appartengono sempre ad un certo dominio di definizione. Il dominio diappartenenza stabilisce la struttura di un insieme di valori e le operazioni adEssi applicabili.Le Classi sono la descrizione di un insieme di oggetti che hanno proprieta’ esemantica comuni. Per proprieta’ comuni si intendono metodi comuni, attributi,relazioni e vincoli. Per Semantica comune si intende che non e’ sufficiente che 2oggetti abbiano gli stessi attributi per appartenere alla stessa classe.La notazione adottata per la descrizione grafica delle classi e’ la notazione OMT.
Elemento di misuraNome: String
Calcola();Get_Teorici();Set_Teorici();Get_Misurati();
Links, associations, aggregations, constraints, inheritance.Un link specifica una connessione fisica o concettuale tra oggetti. Un linke’ bidirezionale .Come una classe e’ una descrizione di un insieme dioggetti un’Associazione e’ la descrizione di un insieme di links conproprieta’ e semantica comuni. Un link puo’essere definito come unasingola instanza di un’ associazione.
La molteplicita’ di associazione specifica quante instanze di una classe possono essere contemporaneamente relazionate ad una unica istanza diuna classe:
OggettoElemento Cerchio
OggettoElemento Piano Oggetto
Program
Programma Elementi Misura
Un’ aggregazione e’ una relazione del tipo ‘e’ parte di’, dove gli oggettiche rappresentano i componenti sono aggregati in categorie.
I vincoli sono restrizioni sui valori che gli oggetti, gli attributi, le classi, i links, le associazioni possono assumere.I vincoli possono essere impliciti o espliciti. Quelli impliciti sono gia’ insitinell’ object model, per esempio la Molteplicita’ di associazione. Laformulazione di vincoli espliciti puo’ essere fatto usando linguaggionormale informale.L’ ereditarieta’ (inheritance) e’ una relazione del tipo ‘e’ un tipo di’ tra unaClasse di tipo superiore ed una sotto-classe.
Elementi Misura Elemento Piano
Programma Elementi Misura
Dynamic Modeling
Si tratta di modellizzare la struttura dinamica del sistema includendo: lacomunicazione tra oggetti e come lo stato di ogni oggetto viene modificatodal flusso di questa comunicazione. Un oggetto puo’ cambiare il proprio Stato a causa di un cambiamento del valore di un attributo.La fase di modellizzazione dinamica include un insieme di diagrammi‘Interactions’ e ‘State Transition’ per ogni classe con significativocomportamento dinamico. Come gia’ detto, il solo modo che hanno glioggetti per comunicare tra di loro sono I messaggi. I messaggi richiamano Imetodi, che possono restituire una risposta. Lo scopo di questa fase e’ diesprimere quali sono le possibili sequenze di messaggi e le risposte nelsistema
MeasAppl
Insert
CProgram
CProtocol
SetOutputData
COutputReport
Send
CElementoMisuraExec
ReceiveData
ChangeStatusReceive
ChangeStatus
Status
Interactions Diagrams
I diagrammi di interazione sono il modo piu’ formale per rappresentare i casi d’ uso che sono stati sviluppati durante la fase della raccolta requisiti.In un diagramma di interazione c’e’ sempre la nozione di ‘Tempo’. Ogni oggetto e’ rappresentato da una linea verticale, la notazione e’ nominare gli oggetti con lo stesso nome della classe. Non tutti gli oggetti necessitano di essere rappresentatida questo tipo di diagramma. I messaggi e le risposte sono rappresentati da lineeorizzontali, la direzione e’ indicata dalla freccia.
MainAppl COutputReportCElementoMisuraCProgram
m_OpenProgram
CProtocol
m_InsertElementoMisura
m_Create
m_link
m_link
m_Exec
m_Exec
m_IncrPointer
GetOutputData
SendOutputProtocol
ReceiveControlData
SendOutputData
ControlError
StopExec()StopExec()()
ControlError
State Transition Diagrams
Un diagramma ‘State Transition’ (STD) rappresenta il persorso degli stati e le transizioni di stato che possono avvenire in un oggetto.Anche questotipo di diagramma non e’ applicato a qualsiasi tipo di oggetto, ma solo perquelle classi che hanno un comportamento dinamico Rilevant. Ildiagramma va letto a partire dal blocco di partenza (cerchio nero). Lafreccia tra questo cerchio ed il primo stato rappresenta la creazione dell’oggetto. Il cerchio nero con anello significa che l’ oggetto e’ statodistrutto e segna la fine del diagramma.
[OpenProgram
]
EDIT
RUN
ERROR
[COMPUTEproblems]
[ EndExec()][ Exec()]
EMERGENCY
[ Recover]
[ CONTROL Error][ Recover]