In collaborazione con
       
 
  
Lo UML è il potente linguaggio standardizzato dall'OMG (Object Management Group ) per specificare, visualizzare, costruire e documentare sistemi Software. L'OMG ha dichiarato che la nuova versione di UML, la 2.0, dovrebbe essere disponibile entro il prossimo Dicembre.
L'architettura EJB è una tecnologia server-side basata su componenti per lo sviluppo  e  l'installazione  di  applicazioni che impiegano componenti distribuiti.  Tale  tecnologia  permette  di  realizzare  sistemi  scalabili,  transazionali, sicuri con una progettazione e realizzazione  dell'infrastruttura  demandata  all'Application  Server.  RUP (Rational Unified  Process)  è  un  Framework  di processo da adattare alle diverse tipologie di progetto. Risponde agli obiettivi primari di  Time-to-market, controllo dei rischi e visibilità dello stato di avanzamento dei lavori. 
Questo articolo si rivolge principalmente ad analisti e progettisti, propone solo  una  configurazione  del  RUP che evidenzia  le  attività  e  gli  elaborati  da produrre  proprio  in  fase  di  analisi  e progettazione. 
Nel  contempo  si  vuole  fornire  al Designer  una  overview dell'estensione del  metamodello  (EJB  Profile)  proposto  dall'OMG  per  modellare  i  componenti  della  tecnologia  EJB.  Quando  si usa l'UML, per la modellazione, molto spesso  ci  si  chiede  quali  diagrammi usare  per  rappresentare  il  sistema.  La scelta  di  una  corretta  metodologia  è cruciale per il buon esito del progetto.
Col  nascere  della  tecnologia  EJB  i progettisti hanno usato notevolmente le estensioni  dell'UML:  constraints (vincoli), tagged values (valori etichettati), stereotypes (stereotipi).
Ma  l'uso  pesante  di  tali  estensioni  ha portato alla nascita di una serie di dialetti  UML che,  oltre  a  mettere  a  rischio  la  comunicabilità  tra  i  Designer ha  portato  a  delle  difficoltà  nel  forward/reverse  engineering dei  Tool  a disposizione,  addirittura  invalidando  a volte il lavoro di modellazione.
Per sopperire a ciò l'OMG ha deciso di lavorare alla standardizzazione  di  una  serie  di  profili,  i  più importanti dei quali sono quello di CORBA e quello degli EJB. Per quest'ultimo ovviamente è stata stretta la collaborazione con SUN Microsystems. 
Una  versione  draft  di  `UML for EJB' è  stata  pubblicata  nel  Dicembre del 2001 (
http://cgi.omg.org/docs/ptc/01-12-04.pdf).  Un  Profilo  rappresenta un    Framework  costituito  da  una  serie di concetti, utilizzati per estendere efficacemente il linguaggio adattandolo alla tecnologia che il profilo vuole rappresentare.  Nella  realizzazione  di  ogni profilo  si  fa  uso  dei  meccanismi  di estensione, e ancora una volta si dimostra l'efficacia di quest'ultimi.
Vediamo  quindi  come  procedere  nelle varie fasi.
Requisiti e Analisi
Vengono  modellate  le  caratteristiche del sistema: 
- 
  Il  primo  passo  consiste  nella  definizione  di  cosa  il  sistema  deve  fare. Questo viene rappresentato mediante il diagramma degli Use Cases, un eventuale documento descrittivo associato ad essi e con delle pagine HTML che oltre  a  rappresentare  un  prototipo  dell'interfaccia  modellano,  mediante  dei Link tra esse, la dinamicità del sistema. 
- 
  Altri  due  documenti  possono  essere associati in questa prima fase: il Glossario che definisce i termini importanti del sistema, e il  Supplementary Specification Requirements contenente i requisiti cosidetti non funzionali:  Usability, Rialibility, Performance e Supportability (URPS).
- 
  Diagramma  delle  classi:  vengono individuate le classi di dominio; le classi vengono etichettate con gli stereotipi Entity (rappresentano le classi di persistenza  del  sistema),  Control (coordinano  il  Business dello Use Case che rappresentano) e Boundary (la classe con la quale gli attori del sistema interagiscono).  L'analista  generalmente  associa  ad  ogni  Use  Case una classe  Control, individua delle classi generiche Boundary e modella con più dettaglio le classi Entity. 
- 
  Diagramma di Sequenza : per gli  Use Cases ritenuti critici e rilevanti viene mostrato almeno lo scenario la cui sequenza delle interazioni va a buon fine ( Happy End). 
Progettazione
Viene modellato come il sistema deve essere realizzato. In questa fase è necessario tener conto della tecnologia che si sta adottando (EJB).
- 
  Grafica:  nella  rappresentazione  grafica  il  Designer tiene conto degli stereotipi, Tagged Values e Constraints del  modello  di  disegno  dell'EJB,  Profile  dell'UML.  Il Profilo EJB è costituito da due componenti: il modello di disegno e il modello di implementazione. Il modello di disegno mostra gli stereotipi relativi alle interfacce degli EJB  (EJBRemoteInterface,  EJBSessionHomeInterface, EJBEntityHomeInterface) e gli stereotipi relativi ai metodi (EJBCreateMethod, EJBFinderMethod, EJBRemoteMethod). Sono previsti molti Tagged Values. Per esempio,  EJBTransAttribute definisce  la  politica  per  la gestione delle transazioni (Supports, Required, Never...). Il modello comprende anche i Constraints. Il modello di implementazione (poco usato!) contiene i diagrammi dei componenti. 
- 
  Uso del Pattern MVC (Model View Controller): vengono  individuati  gli  oggetti  View  (modellati  generalmente mediante pagine JSP che rappresentano le classi Boundary), hanno a che fare con la presentazione, gli oggetti Controller (modellati come descritto nei due punti seguenti con Session Bean) che coordinano, validano le richieste utenti provenienti mediante la view, e gli oggetti Model (modellati con Entity) che rappresentano i dati dell'applicazione e le regole che governano la modifica e la selezione di tali dati.
- 
  Session Bean: il progettista individua le classi Control, nel mondo degli EJB; le classi Control associate agli Use Cases sono implementate come Session Bean. Il Session Bean può essere  Stateless o Stateful. Viene considerato il sistema nel suo complesso e generalmente il numero di classi Control individuate in analisi e quindi di Session Bean da modellare viene ridotto di numero; non si ha più quindi il mapping uno-a-uno tra Use Case e Session Bean.
- 
  Uso del Pattern Session Facade : al fine di ridurre l'accoppiamento tra Client e Business Objects e quindi diminuire le interazioni remote tra Client, e Business Objects migliorando così la Performance di rete, un EJB di tipo Session (Session Facade) si espone al Client con un'interfaccia unificata, fungendo da coordinatore/delegatore per una serie di componenti di Business. Più Use Cases correlati hanno associato uno stesso Session Facade.
- 
  Operazioni: ogni Session Bean implementa le operazioni di Business già rappresentate in analisi; la responsabilità assegnata al Controller in analisi si modella con una o più operazioni in Design.
- 
  Entity  Bean:  vengono  individuate  in  maniera esaustiva le classi di persistenza.
L'aumento  della  complessità  dei  sistemi  da modellare,  il  cambiamento  dei  requisiti  nel tempo, l'affermarsi di nuove tecnologie, l'integrazione  tra  componenti  di  tecnologie  differenti ha fatto sentire sempre più l'esigenza di definire un processo di costruzione del Software  e  l'adozione  di  uno  standard  per  la comunicabilità tra team e Tool differenti. Imparare dal successo degli altri! L'uso di Pattern, valutare i pro e i contro, consente di creare modelli adattabili alle modifiche e all'introduzione di requisiti. Alcuni Pattern possono persino diventare parte integrante del processo. L'UML 2.0 si prepara, tra le diverse novità, anche a definire lo standard per la modellazione secondo il profilo.