UNA PANORAMICA SUGLI STRUMENTI CASE

Cosa sono, a che servono e quali sono i prodotti migliori

 

Tutti conoscono il proverbio dei figli del ciabattino: il ciabattino era tanto impegnato nel fare scarpe per gli altri che i suoi figlioli vanno a piedi scalzi. Negli ultimi vent'anni, molti ingegneri del software hanno vestito i panni del ciabattino: pur avendo costruito sistemi complessi destinati ad automatizzare il lavoro altrui, essi hanno solo in limitata misura automatizzato il proprio. Di fatto, fino a poco tempo fa, 1'ingegneria del software a stata sostanzialmente un'attività manuale, nella quale il ricorso a strumenti specializzati avveniva solo nelle ultime fasi del processo attraverso l’uso di ambienti integrati di compilazione, linkaggio e debugging.

Oggi, finalmente, gli ingegneri del software possono sfoggiare il loro “primo paio di scarpe”: il CASE, sigla che sta per Computer‑Aided Software Engineering  (ingegneria del software assistita dall'elaboratore).

Certamente questo strumento non è ancora molto sviluppato e di facile utilizzo come lo sono le applicazioni CAD/CAM, ma è uno strumento necessario nella dotazione di uno sviluppatore di software e diventerà col tempo più comodo, più agevole a più adattabile alle esigenze specifiche. Questo sia perché lo sviluppo di strumenti CASE è cominciato solo negli ultimi 25 anni, ma soprattutto perché i programmi CAD / CIM implementano pratiche ingegneristiche che sono state utilizzate manualmente per oltre 100 anni, mentre gli strumenti CASE forniscono  un insieme di tool automatici e semiautomatici che implementano una cultura ingegneristica che è nuova a molte aziende.

Il CASE dà la possibilità di automatizzare compiti prima svolti manualmente e di controllare con più precisione 1o sviluppo. In modo simile agli strumenti dell'ingegneria assistita dall'elaboratore e agli strumenti di progettazione utilizzati in altri settori, gli stru­menti CASE contribuiscono a incorporare 1a qualità nella progettazione.

L’obiettivo a cui si vuole arrivare con l’uso degli strumenti CASE è quello di avere uno sviluppo automatico del software partendo dalla definizione delle specifiche tramite schemi a blocchi o altro.

 

I mattoni del CASE

 

L'ingegneria del software assistita dall'elaboratore va dal semplice strumento che supporta un'attività specifica all'ambiente completo, formato da strumenti, basi di dati, persone, macchine, rete, diversi sistemi operativi, standard e una costellazione di altri componenti. I mattoni del CASE sono rappresentati nella figura sottostante:

 

 

 

 

L'architettura dell'ambiente, composta dalla piattaforma hardware e dal supporto del sistema operativo (che comprende i collegamenti in rete e la gestione di una base di dati) sta alla base del CASE, ma l'ambiente richiede ulteriori elementi. Una serie di servizi di portabilità fa da ponte fra gli strumenti CASE e la loro struttura di integrazione da una parte, e l'architettura dall'altra.

La struttura d'integrazione è una collezione di programmi specializzati che consentono ai vari strumenti CASE di comunicare fra loro, di creare una base di dati di progetto e di unificare la veste esteriore, visibile all'utente (cioè all'ingegnere del software).

I servizi di portabilità consentono la migrazione degli strumenti CASE e della struttura d'integrazione fra piattaforme hardware e sistemi operativi diversi senza interventi significativi.

Gli elementi illustrati in figura formano una base completa per l'integrazione degli strumenti CASE; tuttavia, la maggior parte degli strumenti sul mercato non comprende tutti gli elementi citati, ma  sono in realtà "soluzioni circoscritte", cioè servono una specifica attività (ad esempio la modellazione concettuale), ma non comunicano direttamente con altri strumenti, non sono legati a una base di dati di progetto e non fanno quindi parte di un ambiente CASE integrato (I‑CASE). I singoli strumenti nella maggior parte dei casi sono dotati della capacità di scambio dei dati; questi strumenti producono output in un formato standard, leggibile da altri strumenti. Talvolta, i produttori collaborano a costruire un ponte fra strumenti diversi (ad esempio uno strumento di analisi e progettazione abbinato a un generatore di codice); la sinergia che si produce consente di ottenere risultati difficilmente raggiungibili con i due strumenti separati. Un altro tipo di integrazione si ottiene quando un singolo produttore combina diversi strumenti e li distribuisce come pacchetto. Per quanto efficace, questa soluzione ha in genere il difetto di creare un'architettura chiusa, che preclude l'impiego di strumenti di altri produttori.

 

Caratteristiche e proprietà funzionali di uno strumento CASE

 

Le 11 funzionalità di base di un ambiente CASE sono:

v     La presenza di un Repository.

v     La capacità di mantenere l’integrità dei dati durante tutte le fasi del progetto del SW

v     La presenza di un insieme di tool che guidano l’utente ( softwarista ) durante tutte o quasi le fasi dello sviluppo di un progetto SW

v     La capacità di rendere disponibili all’utente in modo semplice e immediato tutte le informazioni riguardo lo sviluppo e lo stato di avanzamento del progetto

v     Facilità di editare e aggiornare informazioni sul progetto. Esistono vari tipi di editor per questi scopi come editor matriciali per matrici, tabelle e fogli di calcolo, editor di diagrammi di flusso,  editor di diagrammi ad albero strutturati e editor di PDL ( Process Definition Language )

v     Un interfacciaUses-friendly

v     Capacità nel trasformare dati per trasferire informazioni da una forma all’altra

v     Capacità di eseguire analisi sulle informazioni raccolte per aiutare lo sviluppatore nell’organizzare uno sviluppo incrementale del SW, nel trovare inconsistenze e errori in tutto il ciclo di sviluppo

v     Possibilità di personalizzazione e espansione

v     La  presenza di tool di progetto e organizzazione che aiutano il capo progetto nella gestione del progetto relativamente alle priorità di sviluppo e alle risorse di sviluppo disponibili.

v     Capacità di “bridge” cioè di tradurre file prodotti in output da altri strumenti CASE per rielaborarli.

 

 

 

Una tassonomia degli strumenti CASE

 

Gli strumenti CASE si possono classificare secondo la funzione, secondo il ruolo che svolgono come "attrezzi" per i manager o per i tecnici, secondo il loro impiego nelle varie fasi del processo software, secondo l'architettura (hardware e software) dell'ambiente che li supporta oppure secondo la loro origine oppure secondo altri criteri.

Diamo una classificazione degli strumenti CASE secondo le funzioni che questi svolgono:

 

  • Strumenti per l'ingegneria delle informazioni: modellando i requisiti informativi strategici di un'organizzazione, gli strumenti per l'ingegneria delle informazioni forniscono un "metamodello", dal quale si ricavano sistemi informativi specifici. Anziché concentrarsi sui requisiti di un'applicazione specifica, questi strumenti modellano le informazioni e il loro flusso da un settore all'altro di un'azienda. Lo scopo primario è quello di rappresentare gli oggetti‑dato a livello aziendale, le loro relazioni e il modo in cui essi scorrono da un'area all'altra.

 

  • Strumenti per la modellazione e la gestione dei processi: per poter migliorare un processo aziendale (o software), è necessario conoscerlo bene. Gli strumenti per la modellazione dei processi (detti anche strumenti di "tecnologia di processo") permettono di rappresentare gli elementi centrali di un processo e di dare una descrizione del processo stesso.

 

  • Strumenti per la pianificazione dei progetti: gli strumenti in questa categoria si rivolgono a due aree: stime dello sforzo e dei costi di un progetto e pianificazione temporale.

Gli strumenti per le stime calcolano, applicando varie tecniche,  lo sforzo e la durata previsti di un progetto, oltre al numero suggerito di risorse umane necessarie alla realizzazione del progetto nei tempi stabiliti.

Gli strumenti per la pianificazione temporale danno modo al capo progetto di definire i compiti (la struttura di suddivisione del lavoro), di creare il reticolo dei compiti (in genere con mezzi grafici), e di analizzare le loro dipendenze e i loro parallelismi ( possibilità di mandare avanti contemporaneamente più compiti )

 

  • Strumenti per l'analisi dei rischi:  aiutano il progettista all’individuazione dei  rischi potenziali e nello sviluppo di un piano per attenuarli, sorvegliarli e gestirli. Questo  è di enorme importanza nei progetti di grandi dimensioni e i tool aiutano nella compilazione della tabella dei rischi.

 

  • Strumenti per la gestione dei progetti:  gli strumenti di questa categoria sono spesso estensioni dei tool per la pianificazione del progetto e permette di tenere sempre sotto controllo il rispetto della tabella dei tempi del progetto e permette di controllare la qualità del prodotto che si va formando.

 

  • Strumenti per la riconduzione ai requisiti: Spesso un sistema di grandi dimensioni non soddisfa i requisiti fissati dal cliente. L'obiettivo degli strumenti di questa categoria consiste nel fornire i mezzi per isolare i requisiti, a partire dai requisiti emersi inizialmente dalle specifiche ricevute dal cliente e dai colloqui con gli utenti finali del prodotto che sto realizzando. .

 

  • Strumenti per le metriche e per la direzione: sono strumenti che aiutano il manager di progetto nel controllo e nel coordinamento dello sviluppo del progetto e i tecnici nel controllo della qualità dei componenti che stanno realizzando. Essi infatti offrono metriche che danno un indicazione complessiva della produttività e della qualità del prodotto che stiamo realizzando.

 

  • Strumenti per la documentazione: sono strumenti utilizzati per  la produzione di documenti e per il desktop publishing. Rappresentano un notevole passo avanti nella diminuzione dei tempi di sviluppo del progetto in quanto la redazione della documentazione assorbe il 20 – 30 % dello sforzo globale che richiede un progetto e presso la documentazione redatta era insufficiente o insoddisfacente.  .

 

  • Strumenti per la garanzia di qualità: questi strumenti sono in realtà strumenti per le metriche in grado di determinare la conformità del codice sorgente a standard assegnati.

 

  • Strumenti di gestione delle configurazioni software: la gestione delle configurazioni software è al cuore di ogni ambiente CASE. Gli strumenti supportano le cinque attività principali: individuazione, controllo delle versioni, controllo del cambiamento, revisioni e relazioni sullo stato. Tutte queste informazioni sono contenute nella base di dati del progetto chiamata repository.

 

  • Strumenti di analisi e progettazione: gli strumenti di questa categoria assistono nella creazione di modelli del sistema da realizzare. Tali modelli contengono le rappresentazioni dei dati, delle funzionalità e del comportamento (sul piano dell'analisi), oltre alla caratterizzazione dei modelli progettuali dei dati, dell'architettura, delle procedure e delle interfacce. Gli strumenti compiono verifiche di coerenza e validità che possono chiarire la rappresentazione concettuale e contribuire a eliminare gli errori prima che si propaghino alla progettazione o addirittura alla fase di implementazione.

 

  • Strumenti PRO/SIM: Gli strumenti PRO/SIM (prototipazione e simulazione) (Nichols, 1990) consentono di prevedere il comportamento di un sistema real‑time prima di realizzarlo. Essi consentono inoltre di realizzare semplici prototipi del sistema da sottoporre al cliente perché ne possa esaminare le funzionalità, le operazioni e la risposta prima dell'implementazione.

 

  • Strumenti per la progettazione e lo sviluppo di interfacce: questi strumenti sono in via di sparizione perché sostituiti da srumenti più sofisticati e rappresentano una collezione di componenti di una interfaccia utente come menu, pulsanti, finestre, icone, meccanismi di scorrimento, driver di dispositivi vari, e così via.

 

  • Strumenti per la prototipazione: questi strumenti permettono di realizzare un prototipo del progetto contenente anche un ossatura del codice che verrà poi completato in fase di implementazione.

 

  • Strumenti per la programmazione: Questa categoria comprende i compilatori, gli editor e i debugger, disponibili per quasi tutti i linguaggi di programmazione tradizionali. Vi rientrano anche gli ambienti di programmazione orientata agli oggetti, i linguaggi di quarta generazione, gli ambienti di programmazione grafica, i generatori di applicazioni e i linguaggi di interrogazione delle basi di dati.

 

  • Strumenti per l'integrazione e il collaudo: Questi strumenti sono utilizzati per il collaudo del prodotto finale prima del suo rilascio e, secondo un documento la Software Quality Engineering del 1995, essi si possono a loro volta suddividere nelle seguenti sottocategorie:

 

ü      acquisizione dei dati: strumenti che acquisiscono i dati da utilizzare nei collaudi

ü      misurazione statica: strumenti che analizzano il codice sorgente senza eseguire casi di prova ( Es: ATLAS )

ü      misurazione dinamica: strumenti che analizzano il codice sorgente durante l'esecuzione. Questi strumenti possono essere intrusivi o non intrusivi

ü      simulazione: strumenti che simulano l'hardware o altri elementi esterni

ü      strumenti misti: strumenti che rientrano in più categorie.

ü      Strumenti per il collaudo client/server in grado di testare i meccanismi di comunicazione client / server

 

  • Strumenti di reingegnerizzazione: gli strumenti di questa categoria si possono suddividere in tre classi:

 

ü      Strumenti di reverse engineering e specifica: ricevono codice sorgente e generano modelli concettuali e progettuali

ü      Strumenti di ristrutturazione e analisi del codice: analizzano la sintassi del programma, generano un diagramma di flusso del controllo e un programma strutturato.

ü      Strumenti di reingegnerizzazione di sistema in linea: utilizzati per modificare basi di dati in linea (ad esempio per convertire file DB2 in un formato entità‑relazioni).

 

I futuri strumenti di foward e  riverse engineering utilizzeranno gli strumenti dell’intelligenza artificiale, sfruttando anche il fatto che progetti facenti parte della stessa area applicativa presentano tra di loro punti in comune, dei quali si potrà avvalere il calcolatore per avanzare lo sviluppo del progetto, anche se l’intervento del programmatore sarà sempre indispensabile.

 

Ambienti CASE integrati

 

Anche se si può trarre giovamento in una  specifica attività anche dall’uso di un singolo strumento CASE, il vero valore del CASE si ottiene tramite l'integrazione dei vari strumenti.. Fra i van­taggi del CASE integrato detto I-CASE , possiamo citare:

  1. la facilità di trasmissione delle informazioni (modelli, programmi, documenti, dati) da uno strumento all'altro e da un passo all'altro del processo software
  2. la riduzione del lavoro necessario a svolgere le attività ausiliarie, come la gestione delle configurazioni, la garanzia di qualità e la produzione dei documenti
  3. la crescita del grado di controllo sul pro­getto, ottenuta tramite una migliore pianificazione, sorveglianza e comunicazione
  4. un maggior coordinamento fra i membri dello staff impegnato in un progetto.

 

D'altra parte, l'I‑CASE pone anche problemi non trascurabili. L'integrazione esi­ge rappresentazioni coerenti delle informazioni di progetto, interfacce standard fra gli strumenti, un meccanismo omogeneo di comunicazione fra l'ingegnere e gli stru­menti e la possibilità di muoversi fra piattaforme hardware e sistemi operativi diver­si. Alcune soluzioni a questi problemi sono già state proposte, ma gli ambienti I‑CASE completi cominciano a emergere solo ora.

 

Per definire l'integrazione nell'ambito del processo software, si devono stabilire alcuni requisiti per 1'I‑CASE.  Si riportano qui di seguito i requisiti a cui deve soddisfare un ambiente CASE integrato:

 

Ø      fornire un meccanismo per condividere i dati fra tutti gli strumenti che lo compon­gono;

Ø      far sì che la modifica di un elemento si rifletta negli elementi logicamente collegati;

Ø      offrire il controllo delle versioni e la gestione delle configurazioni per tutti i dati coinvolti nel processo;

Ø      consentire l'accesso diretto a tutti gli strumenti dell'ambiente;

Ø      offrire degli strumenti di controllo automatico dell’avanzamento del processo di sviluppo integrando sia i dati sia gli strumenti in una base di dati

Ø      offrire un'interfaccia utente costante su tutti gli strumenti;

Ø      supportare la comunicazione fra i tecnici;

Ø      raccogliere metriche di gestione e tecniche utili per migliorare il processo di sviluppo e il prodotto finale

 

Per soddisfare questi requisiti, i mattoni dell'architettura CASE devono combinarsi senza urti. Come illustrato nella figura seguente, i mattoni fondamentali ‑ architettura, piattaforma hardware e sistema operativo ‑ devono essere "congiunti" tramite un insieme di servizi di portabilità a una struttura di integrazione che soddisfa i requisiti sopra menzionati.

 

In ogni caso, considerando i singoli strumenti CASE di cui si è parlato in precedenza,  si può dire che pochissimi tool operano in totale isolamento. Infatti nella maggior parte dei tool possiamo trovare queste funzioni di integrazione:

Ø      Scambio di dati: i tools sono dotati di meccanismi che permettono lo scambio di dati tra tools diversi, spesso fatto tramite l’uso di un filtro. I traduttori di file da un formato all’altro sono creati o da una cooperazione fra le aziende che commercializzano i vari tool, o creati direttamente dagli utenti stessi e poi messi in vendita o scambiati come shareware

Ø      Management comune dei dati:  i dati provenienti da differenti tool di Computer Aided software engineering possono essere mantenuti in un database comune che può essere centralizzato o distribuito e al quale tutti i tool accedono. Questo database è utilissimo in quanto permette agli sviluppatori che stanno lavorando su parti differenti di una applicazione ( moduli ) di combinare il loro lavoro. Inoltre il database può anche contenere strumenti in grado di rilevare inconsistenze tra le varie parti del progetto.

Ø      Condivisione di dati: i tools che hanno una integrazione al questo livello usano strutture datio e semantiche compatibili e possono avere un accesso immediato ognuno ai dati dell’altro senza bisogno di una traduzione dei dati. Sfortunatamente ci sono pochissimi standard ufficiali e i pochi che ci sono standard de facto poiché sono standard imposti dalle grandi case sviluppatrici di prodotti CASE come DEC, Hewlett-Packard, IBM o Sun.

Ø      Interoperabilita: questo rappresenta il livello più alto di integrazione tra singoli tools. Sono detti interoperabili quei tools che hanno le caratteristiche di condivisione dei dati e di accesso ad un database condiviso

Ø      Integrazione completa: per arrivare a questo livello di integrazione e formare un ambiente CASE (I-CASE) bisogna avere altre due caratteristiche: la gestione dei “metadata” e degli strumenti di facilitazione del controllo. I “metadata” sono informazioni prodotte dai singoli strumenti CASE e includono:

·        La definizione degli oggetti

·        Le relazioni e le dipendenze tra gli oggetti

·        Le regole del software design

·        Informazioni sui processi di sviluppo e su eventi come revisioni, aggiunte, segnalazione di problemi, etc.

           Gli strumenti di facilitazione del controllo abilitano i singoli tool a notificare eventi significativi al resto dell’ambiente ( altri tool, metadata manager, etc ) e a richiedere agli altri tools delle  azioni o dei servizi in seguito all’accadimento di questi eventi.

 

Un ambiente CASE è organizzato a livello e la loro architettura è così:

  • Livello dell’interfaccia Utente che contiene software per la gestione dell’interfaccia uomo-macchina e un insieme di linee guida che conferiscono a tutti gli strumenti la stessa veste grafica
  • Livello degli strumenti che contiene i toos CASE veri e propri e contiene dei servizi che regolano il loro comportamento nell’ambiente. Questo è molto importante soprattutto se si opera in multitasking. Infatti questi servizi si occupano della sincronizzazione e della comunicazione tra i task e regolano il flusso di informazioni tra i tools e i livelli sottostanti
  • Livello di gestione degli oggetti: che fornisce il meccanismo di integrazione degli strumenti
  • Livello di repository condiviso che contiene la base di dati condivisa ( repository )  da tutti gli strumenti e implementa le funzione di controllo e degli accessi alla base di dati.

 

Il repository è spesso un DBMS relazionale o orientato agli oggetti e svolge un ruolo essenziale in un ambiente CASE integrato. Esso infatti garantisce l’integrità dei dati condivisi da tutti gli strumenti, fornisce il meccanismo di condivisione di dati fra i tools e fra i vari sviluppatori che lavorano separatamente al progetto e istituisce un modello dei dati al quale accedono tutti i tools dell’ambiente ( metamodello ).

 

Un repository CASE deve fornire tutte le caratteristiche di un DBMS ( Memorizzazione dei dati senza ridondanze, Accesso ai dati di alto livello, Indipendenza dei dati, controllo delle transazioni, sicurezza, supporto alla multiutenza ) ed inoltre deve fornire meccanismi di gestione di strutture dati sofisticate, meccanismi di controllo di versioni, meccanismi di controllo delle dipendenze tra i vari moduli del progetto SW e un interfaccia semantica verso gli strumenti.

 

I dati contenuti in un repository CASE sono riportati in dettaglio nella tabella seguente:

 

 

 

 

Attualmente l’importanza degli Strumenti CASE è ulteriormente aumentata grazie all’introduzione dell UML ( Unified Modeling Language ) che è un linguaggio appositamente studiato per la creazione di modelli di varia tipologia e creati per obiettivi diversi, proprio come un linguaggio di programmazione o un linguaggio naturale possono essere usati in molti modi diversi. Questo significa che l’UML ci permette di abbandonare i diagrammi di flusso per la definizione di modelli essendo complessi da realizzare e talvolta difficili da gestire.

 

PRODOTTI CASE

Negli ultimi anni sono stati cerati vari tools di sviluppo CASE da varie software house e fra questi i principali, raggruppati per categorie, sono:

1)      Strumenti CASE: basati su metodologia OO:

1.1) Strumenti per l'analisi e la progettazione OO.

·         Object Tool di Object International

·         Objectory di Objective Systems

·         System Architect di Popkin Software

·         Rational Rose di Rational basato sulla tecnologia UML

·         SES Objectbench di SES

·         CodePainter della Zucchetti Software

1.2) Strumenti CASE OO.

·         Object Management Workbench (OMW) di Intellicorp

·         StP/OMT di Interactive Development Environments

·         Ptech di Ptech Inc.

 

2)      Lower CASE

2.1) Strumenti OO per la costruzione di GUI

·        Open Interface di Neuron Data

·        Object Builder di Parc Place

·        MacDialog Editor di Quintus

 

3)      Strumenti Object Oriented ad altissimo livello di Object Tecnology (supportano C++,C# e/o Smartalk)

 

·        Parts Workbench di Digitalk

·        Enfin di Easel Corporation

·        Visual Age di IBM

·        Visual Work di Parc Place

·        Sniff+ di Take Five

·        dBsee++ for C++/MFC della ISA

 

Uno dei più importanti strumenti CASE attualmente presenti sul mercato è il Rational Rose. Tra le caratteristiche più salienti abbiamo:

  • contiene vari strumenti che accellerano e semplificano lo sviluppo del software
  • auita la scrittura di componenti riutilizzabili e in caso di cambiamenti nei componenti, mostra tutti i possibili effetti che questi cambiamenti avranno sul resto del SW
  • aiuta anche nella definizione delle modifiche che devono essere apportate al modello logico in caso di cambiamento dei requisiti che si può avere durante le altre fasi di lavorazione del progetto e calcola gli effetti che queste modifiche avranno sul software in corso di lavorazione
  • supporta lo sviluppo del modello tramite linguaggio UML
  • offre tutti gli strumenti e completo supporto per analisti di dati, creatori di database, sviluppatori Java e creatori di pagine web tramite supporto al nuovo standard di dati XML, al javascript e alla creazione di pagien ASP
  • offre completa interazione con Microsoft Visual Studio supporta MFC e aiuta nello sviluppo di componenti COM, MTS e ADO.
  • Supporta tutte le piattaforme Windows da Win98/ME a WIN NT 4, 2000, XP Professional
  • Supporta le piattaforme Sun Solaris, UNIX e le distibuzioni Linux Red-Hat dalla 6.2 in su
  • Supporta i Databases Oracle ( 7.x e 8.x ) MS SQL Server, IBM DB2 e supporta il linguaggio SQL 2 per l’uso di altri tipi di database
  • Si può integrare ad altri CASE tool e sono disponibili più di 100 add-in per estendere le sue capacità

Rational Rose è incluso nel pacchetto Rational Suite che integra tutti gli strumenti per analista di sistema, lo sviluppatore di software, il collaudatore del sistema e il direttore dello sviluppo del progetto. Ad esempio:

Rational PurifyPlus  questo prodotto permette di generare software con la robustezza, le prestazioni e la qualità che l’utente finale si aspetta. E’ composto da vari tools che operano a livello di codice e che si occupano di trovare e definire con precisione gli eventuali errori di run-time che si possono avere durante l’uso dell’applicazione,  di trovare i punti in cui il software potrebbe essere più efficiente e di testare quei componenti e quelle librerie che sono state prodotte da terze parti e delle quali non si possiede il codice sorgente.

Rational QualityArchitect è una delle estensioni più potenti di rational Rose. Esso permette di testare e validare i componenti software direttamente dai modelli visuali creati sotto Rational Rose. Permette quindi di trovare e risolvere i problemi quando ancora i componenti sono separati permettendo quindi un risparmio di tempo durante la fase di test e una maggiore stabilità del sistema

Rational Test RealTime programma di test dinamnico che osserva il sistema durante il funzionamento e crea un report di tutte le situazioni pericolose che possono portare a un blocco di sistema

Rational ClearCase strumento che aiuta nel controllo delle versioni del SW curando anche l’esattezza delle varie release di SW e tenendo traccia delle versioni e delle patch rilasciate. Aiuta quindi nella manutenzione del pacchetto SW

Rational ClearQuest  

Rational Apex

Sull’interfaccia di Rational Rose ( e soprattutto sulla sua capacità di implementare UML ) si appoggiano anche molti altri CASE come ad esempio VisulAge di IBM.

Un CASE integrato molto importante è invece il CODEPAINTER della Zucchetti sviluppato principalmente per la realizzazione di applicazioni gestionali che devono lavorare in rete.

  • Supporta tutti i S.O. Microsoft® da Win 9x a Win NT, 2000, XP
  • Supporta i DB MS MSDE e SQL Server, Oracle, IBM DB2, Informix implementati su ogni piattaforma
  • Linguaggi di sviluppo: Microsoft Visual Fox Pro e MS Visual Basic
  • Aumenta la produttività dei programmatori
  • Minimizza tempi e costi di progettazione e sviluppo
  • Genera codice sorgente privo di errori e fortemente standardizzato
  • Riduci i costi di manutenzione del tuo software e delle personalizzazioni
  • Mantieni i tuoi progetti sempre aggiornati alla tecnologia
  • Genera applicazioni client/server operanti in modalità transazionale

CODEPAINTER è capace di gestire, organizzare ed automatizzare l’intero ciclo di vita del software, supportando tutte le fasi: Analisi, Pianificazione, Prototipazione, Codifica, Documentazione e Manutenzione. 

CODEPAINTER combina, all’interno di un unico sistema di sviluppo integrato, funzionalità di progettazione di applicazioni e di database con strumenti RAD consentendo veloci prototipazioni e generazione di codice sorgente. Inoltre utilizzando gli strumenti visuali, tutti i prototipi possono essere completati e rifiniti per poi passare alla generazione automatica del codice.

CODEPAINTER introduce in tutte le applicazioni un Application Framework che contiene vari tools per la gestione dei DB, la gestione della sicurezza, etc.

Inoltre CODEPAINTER possiede un potente strumento di documentazione che crea automaticamente e mantiene sempre aggiornata tutta la documentazione tecnica, la guida dell’utente e l’help in linea.

La linea CODEPAINTER incorpora anche al suo interno il prodotto SITEPAINTER appositamente sviluppato per la creazione di sistemi Informativi (interi o parziali ) che devono essere acceduti tramite browser web. Le applicazioni Web generate da SITEPAINTER sono implementate con Java-Servlet dalla parte del server e con pagine HTML più Javascript dalla parte del client. Le Java-Servlet consentono la connessione ai più comuni database server e gestiscono la “Business Logic” del software applicativo; inoltre implementano ed utilizzano il protocollo di comunicazione tra il Client ed il Server. Per il resto l’applicazione SITEPAINTER comprende tutte le funzioni del CODEPAINTER.

SITEPAINTER usa java, javascript e HTML per lo sviluppo delle sue applicazioni e oltre ai S.O. e ai DB supportati da CODEPAINTER, supporta tutti i WEB Server che implementano java e in particolare APACHE, Microsoft Internet Information Server e IBM WebSphere.

Un altro ambiente CASE creato appositamente per lo sviluppo di applicazioni WEB di tipo data-intensive è il W3I3, i cui moduli sono stati sviluppati nell’ambito di alcune tesi di laurea presso il politecnico di Milano. Esso è nato sia dall’analisi dei requisiti principali che un’applicazione del genere deve possedere, sia dalle considerazioni critiche verso applicazioni dello stesso genere. L’architteturra W3I3 è incentrata sulle prestazioni dei componenti run-time (in modo da poter gestire anche elevatissimi volumi di traffico ) sulla interoperabilità ( bisogna consentire il supporto di piattaforme Web eterogenee come MS IIS, ASP, JSP, Java Servlet ), sulla modularità ( in modo da poter aggiungere o modificare rapidamente componenti per adattarsi al rapido sviluppo del Web ) sulla gestione di utenti e gruppi e sulla generazione di codice in molteplici linguaggi come HTML 3.2, HTML 4, HTML per palmtop, Java, WML per telefoni cellulari e BHTML per la TV digitale. L’architettura inoltre garantisce la massima portabilità delle applicazioni create supportando la scrittura del codice in java e la gestione dei dati di input e output in standard XML. Sempre in forza al principio di interoperabilità, si possono inserire nell’architettura molti moduli per la gestione dell’autenticazione di accesso, per il commercio elettronico, per procedure di recupero da errore, etc. Concettualmente l’ambiente CASE W3I3 può essere diviso in tre livelli principali:

·        il livello di progettazione che contiene gli strumenti ( Site Designer e Presentation Manager )  per modellare le applicazioni Web e all’interno delle quali vengono prodotti gli schemi concettuali, i fogli di stile e i modelli di presentazione

·        il livello di pre-esecuzione: contiene gli strumenti che si occupano di processare i fogli di stile e di trasformare la specifica di presentazione astratta in una rappresentazione dipendente dal linguaggio di rete scelto ( es HTML. WML ) e dal linguaggio di script scelto ( es. JSP, ASP ) .

·        il livello di esecuzione che contiene tutti gli strumenti che curano la pubblicazione del sito Web, la gestione delle autorizzazioni di accesso e il collegamento dinamico tra i template e il contenuto informativo delle pagine sono solamente a run-time.