Dzięki narzędziom CASE projekty tworzy się dokładniej, a praca nad diagramami, sprawdzanie ich poprawności oraz śledzenie wykonanych testów jest prostsze i szybsze.
1. Wstęp
Narzędzia CASE (czyli Computer Aided Software Engineering lub Computer Aided System Engineering) to systemy komputerowe, przeznaczone do wspomagania rutynowych czynności procesu tworzenia oprogramowania. Dzięki nim projekty tworzy się dokładniej, a praca nad diagramami, sprawdzanie ich poprawności oraz śledzenie wykonanych testów jest prostsze i szybsze.Kiedyś takie systemy wykorzystywały modele strukturalne procesów. Dzięki rozwojowi metod obiektowych, twórcy tych systemów wprowadzali także takie modele, lecz używali różnych metodologii. Dopiero gdy wymyślono UML – stał się on dobrym standardem, a jego obsługa implementowana jest we wszystkich liczących się CASEach.
Kiedyś systemy były wykonywane w technologii z góry wybranej – wybrać trzeba było środowisko systemowe, język programowania czy też bazę danych. Teraz można wybrać kilka technologii (J2EE, .NET) i oprzeć się na kilku silnikach bazodanowych (lub też zuniwersalizować kwestię wyboru bazy danych).
2. Podział narzędzi CASE
Systemy CASE można podzielić według faz cyklu życia systemu na: Upper-CASE i Lower-CASE, a także według zakresu zastosowań na pakiety narzędziowe oraz pakiety zintegrowane.Upper-CASE wspomaga pierwsze fazy budowy systemu – analizę organizacyjną i funkcjonalną i procesową, modelowanie funkcji, procesów, obiektów, modelowanie struktur i potrafi tworzyć wszelkie diagramy. Te narzędzia zajmują się bardziej opisem i modelowaniem rzeczywistości, modelowaniem struktury systemu, bez wszelkich faz implementacji.
Lower-CASE natomiast wspomaga rzeczywiste budowanie oprogramowania – modelowanie bazy danych, generowanie kodu i testy.
Czasami wyróżnia się także systemy Middle-CASE, które pozwalają określić samą strukturę systemu informatycznego, oraz Integrated-CASE, czyli systemy łączące Upper- i Lower-CASE.
3. Funkcje
Od systemów CASE wymagamy bardzo wiele. Wspomaganie w każdej fazie cyklu projektu jest inne i wymaga różnych funkcjonalności. Można jednak wyróżnić kilka standardowych modułów, których istnienie świadczy o zaawansowaniu danego systemu i spełnieniu wymagań użytkownika.- Słowniki danych (repozytoria) – bazy wszelkich danych o tworzonym systemie wraz z narzędziami edytującymi, zarządzającymi i wyszukującymi te dane.
- Edytor Notacji Graficznych – program graficzny, umożliwiający tworzenie i edycję diagramów dla faz określania wymagań systemu, analizy i projektowania. Powinien też umożliwiać powiązania między symbolami w modelu a innymi, zdekomponowanymi modelami, oraz wydruk tych diagramów.
- Moduł Kontroli Poprawności – narzędzie do wykrywania i poprawiania błędów w diagramach i repozytoriach. Bardzo często działa w czasie rzeczywistym, co znacząco wpływa na komfort pracy.
- Moduł Kontroli Jakości – narzędzie do oceny pewnych ustalonych miar jakości projektu – np. stopnia złożoności lub powiązań składowych modelu.
- Generator Raportów – narzędzie tworzące dowolny raport na podstawie danych z repozytorium.
- Generator Kodu – narzędzie transformujące projekt na szkielet kodu w wybranym języku programowania. Usprawnia pracę programistów, pozwala na zautomatyzowanie pewnych fragmentów kodu, a także na uzupełnienie kodu o dodatkowe informacje ze słownika danych.
- Generator Dokumentacji Technicznej – generator ustandaryzowanych dokumentów, zawierających specyfikację, opisy faz projektu, diagramy oraz wybrane raporty.
- Moduł Projektowania Interfejsu Użytkownika – narzędzie do projektowania menu, okien dialogowych oraz innych elementów interfejsu użytkownika.
- Moduł Inżynierii Odwrotnej – narzędzie pozwalające odtworzyć słownika danych oraz diagramów, na podstawie kodu źródłowego lub struktury bazy danych.
- Moduł Importu/Eksportu Danych – narzędzie służące do wymiany danych z innymi CASE'ami czy też innymi programami.
- Moduł Zarządzania Pracą Grupową – narzędzie umożliwiające współpracę grupy osób podczas pracy nad projektem.
4. Popularne narzędzia
- Eclipse – darmowe, otwarte środowisko programistyczne dla Javy, które za pomocą platformy modelowania Eclipse (Eclipse Modeling Framework) może posłużyć do budowania oprogramowania, wykorzystując także UML. EMF posiada także generator kodu.
- NetBeans – otwarty projekt zawierający wiele narzędzi wspomagających tworzenie oprogramowania. Dodatkowo "Enterprise Pack" umożliwia modelowanie UML oraz użycie schematów XML.
- StarUML – otwarta, dostępna na zmodyfikowanej licencji GPL platforma UML/MDA dla systemu Windows, która umożliwia import projektów z takich komercyjnych aplikacji jak Rational Rose czy Borland Together. Zapewnia forward i reverse engineering kodu w Javie, C# i C++.
- Borland Together – rodzina programów integrujących środowisko IDE Javy z narzędziami do UMLa. Posiada m.in. funkcje modelowania danych, szablony kodu, generator dokumentacji, czy też moduł weryfikacji kodu.
- Enterprise Architect - profesjonalne narzędzie, działające na platformach Windows i Linux. Obsługuje UML 2.0.
- IBM Rational Rose – jedno z najstarszych, profesjonalnych narzędzi. Bardzo rozbudowane, obsługujące UML 2.0.
Licencja: Creative Commons - użycie niekomercyjne - na tych samych warunkach