Narzędzia
wspomagające projektowanie SI
Jolanta Sala Halina Tańska
Narzędzia CASE
Podstawy inżynierii systemów wspomaganej komputerowo CASE
• Określenie CASE (Computer Aided System Engineering – wspomagana komputerowo inżynieria
oprogramowania) po raz pierwszy użyto w 1981 lub 1984 (J. Manley z Carnegie Mellon University).
• W Europie stosuje się czasami skrót IPSE (Integrated Project Supporting Environment) zwłaszcza w stosunku do inżynierii oprogramowania lub kierowania projektami.
• Rocznie powstaje kilkadziesiąt nowych narzędzi CASE.
• Narzędziem CASE mogą być
– proste pakiety związane z jedną fazą cyklu życia, z jej wybranymi procesami (workbenches),
– wielomodułowe środowiska (environments) wykorzystywane w wielu fazach cyklu życia, wielu aspektach wytwarzania i
utrzymania systemu.
Klasyfikacja narzędzi CASE
W zależności od tego, w jakiej fazie cyklu życia systemu narzędzia są użytkowane wyróżnić można:
– Narzędzia wysokiego poziomu (upper CASE tools) – narzędzia wspomagające identyfikację i selekcję projektu, inicjację i planowanie projektu, analizę i projektowanie; zwykle są niezależne od środowiska implementacji;
– Narzędzia niskiego poziomu (lower CASE tools) – narzędzia wspomagające implementację (konstrukcję, kodowanie, testowanie, instalację) i utrzymanie
systemu; zwykle są związane z konkretnym środowiskiem implementacji;
– Narzędzia wykorzystywane w wielu fazach cyklu
życia systemu (cross life cycle CASE tools).
Identyfikacja projektu i selekcja Inicjacja projektu i planowanie
Analiza
Definicja Strukturalizacja Generowanie i wybór potrzeb potrzeb rozwiązań alt.
Projektowanie
Projektowanie logiczne Projektowanie fizyczne
Implementacja
Kodowanie Dokumentowanie Testowanie Szkolenie Instalacja
Utrzymywanie
Narzędzia CASE wysokiego poziomu
Narzędzia CASE niskiego poziomu Związek między narzędziami CASE a cyklem życia systemu
Klasyfikacja narzędzi CASE
Z punktu widzenia funkcjonalności wśród narzędzi CASE (lub ich modułów) można wyróżnić:
– Narzędzia diagramujące (diagramming tools);
– Generatory form ekranowych i raportów (form and report generators) lub moduły projektowania interfejsu użytkownika;
– Narzędzia analityczne (analysis tools);
– Generatory dokumentacji (documentation generators);
– Generatory oprogramowania (code, programs generators) i zintegrowane środowisko programistyczne;
– Narzędzia wspomagające zarządzanie przedsięwzięciami;
– Narzędzia inżynierii odwrotnej;
– Narzędzia wspomagające weryfikację, walidację i testowanie oprogramowania;
– Narzędzia modelowania i analizy organizacji;
– Zintegrowane narzędzia CASE (Integrated CASE, I-CASE) lub zintegrowane środowisko wytwórcze (Integrated Development Environments, IDE).
Narzędzia diagramujące
• Pozwalają wizualizować system i jego komponenty.
• Są one szczególnie efektywne przy prezentowaniu przepływów danych, struktur danych czy struktur programów.
• Wiele popularnych narzędzi CASE pozwala kreślić:
diagramy PU, diagramy klas, diagramy aktywności,
diagramy sekwencji, diagramy przepływu danych (data flows diagrams, DFD), diagramy związków encji (entity- relationship diagrams, ERD), diagramy struktury
(structure diagrams, SD),
• Przykłady CASE:
– The Visible Analyst Workbench (VAW) firmy Visible Systems Corporation,
– nformation Engineering Facility (IEF) firmy Texas Instruments, – Systems Development Workbench (SDW) firmy Cap Gemini
PANDA.
Generatory form ekranowych i raportów
• Pozwalają automatycznie tworzyć interfejs użytkownika.
Automatycznie generowane formy i raporty są szczególnie przydatne podczas prototypowania.
• Wiele narzędzi CASE pozwala tworzyć skomplikowany graficzny interfejs użytkownika (graphical user interface, GUI) np. VISION Flashpoint firmy Sterling Software, IEF firmy Texas Instruments.
• Wiele narzędzi pozwala także automatycznie generować kod programów dla form ekranowych i raportów w różnych językach programowania, np. PowerBuilder firmy Sybase,
• natomiast inne są przeznaczone tylko dla jednego języka
programowania czy środowiska, np. generator Paradox for Windows generuje tylko kod ObjectPAL.
• Generatory form ekranowych i raportów mogą być
samodzielnymi narzędziami lub też, elementami
zintegrowanych środowisk wytwarzania systemów.
Narzędzia analityczne
• Pozwalają generować raporty ułatwiające identyfikowanie możliwych niespójności,
redundancji czy braków w diagramach, formach ekranowych i raportach.
• Narzędzia analityczne są zwykle elementami
zintegrowanych środowisk wytwarzania systemów,
• Przykłady CASE:
– Excelerator firmy Intersolv,
– PowerDesigner firmy Sybase.
Generatory dokumentacji
• Są narzędziami, które pozwalają łatwo tworzyć w
standardowych formatach zarówno dokumentację
techniczną, jak i użytkową. Jest to szczególnie ważne ze względu na utrzymanie systemu, gdyż system bez
odpowiedniej dokumentacji jest praktycznie nie do utrzymania.
• Generatory dokumentacji są zwykle częścią
wielomodułowych pakietów CASE, np. w pakiecie Oracle 9i Designer firmy Oracle czy SDW firmy Cap Gemini
PANDA.
• Bardzo praktyczny i łatwy w obsłudze jest generator
dokumentacji pakietu PowerDesigner firmy Sybase, który pozwala skorzystać ze standardowych formatów
dokumentacji lub też zdefiniować własne (możliwość
tworzenia standardów wewnątrzorganizacyjnych), w języku
angielskim lub innym w formacie RTF lub HTML.
Generatory oprogramowania
• Są narzędziami, które pozwalają generować kod źródłowy programów na podstawie diagramów i form użytych do reprezentacji systemu.
• Zwykle generują one kod w określonym języku programowania, dla określonego środowiska sprzętowo-programowego.
Najpopularniejsze są generatory języków COBOL i C++ oraz definicji baz danych w SQL, np. Visible Developer firmy Visible Systems Corporation, PowerBuilder firmy Sybase.
• Rozwój podejścia obiektowego przyczynił się do rozwoju
zintegrowanych środowisk programistycznych, które bazując na technice drag & drop (wybór obiektu z dostępnej palety i
umieszczenie go w odpowiednim miejscu), pozwala tworzyć
aplikacje z gotowych komponentów (które są fragmentami kodu programu).
• Szczególną popularność zdobył pakiet Borland Delphi firmy Inprise Corporation, który wykorzystując język Object Pascal, pozwala
dzięki szerokiej gamie gotowych komponentów i mechanizmów dostępu do baz danych, tworzyć efektywnie aplikacje pracujące w środowisku systemu operacyjnego Windows.
1/2
Bezkodowe generatory aplikacji
• Środowiska te pozwalają tworzyć rozwiązania w zakresie baz danych bez zagłębiania semantyki języków
programowania, gdyż w tym przypadku rola programisty polega na wprowadzaniu parametrów, a nie na pisaniu programów.
• Szczególne miejsce wśród tych generatorów zajmuje pakiet Magic eDeveloper firmy Magic Software Enterprises, które można zaliczyć do narzędzi typu RADD (Rapid Application Development and Deployment).
– Narzędzie to nie generuje programów w postaci wykonywalnego kodu, lecz tworzy zbiór tabel zapisanych w tzw. pliku kontrolnym.
Logika aplikacji, definicje typów danych, struktury bazy danych,
formularzy i raportów są opisane w jednym zintegrowanym słowniku.
Stosując maszynę wirtualną (engine) sterowaną danymi, Magic
czyta sterującą bazę danych (plik kontrolny) i wykonuje odpowiednie operacje.
– Dla użytkownika końcowego aplikacje wykonane w środowisku Magic niczym się nie różnią od innych, natomiast projektanci i programiści pracujący z tym pakietem mogą znacznie wydajniej wykonywać swoje działania.
2/2
Wspomaganie w zakresie zarządzania przedsięwzięciami
• Takie narzędzia, jak MS Project firmy Microsoft czy SLIM firmy Quantitative Software Management pozwalają na
wspomaganie planowania i kontroli zasobów (w różnych układach), harmonogramowanie, symulowanie i
estymowanie różnych wielkości związanych z realizacją projektu.
• Inną kategorię narzędzi wspomagających zarządzanie
przedsięwzięciami stanowią narzędzia kontroli i zarządzania konfiguracją. Dzięki mechanizmom wersjonowania pozwalają one zarządzać składowymi projektów (systemów), np. kodem źródłowym, diagramami, dokumentami, i w sposób
kontrolowany udostępniać członkom zespołu poszczególne komponenty. Do tej grupy narzędzi zalicza się: Visual
SourceSafe firmy Microsoft i Rational ClearCase firmy Rational.
• Praca grupowa jest nierozerwalnie związana z wymianą
informacji, to można w niej stosować także pakiety ogólnego przeznaczenia takie jak, MS Outlook i MS Net-Meeting firmy Microsoft czy Lotus Notes firmy IBM.
Narzędzia inżynierii odwrotnej
• Wspomagają tworzenie specyfikacji projektowych (modeli) na podstawie kodu programów oraz plików baz danych, a także synchronizują różne elementy projektów (modeli, dokumentacji).
• Dzięki mechanizmom inżynierii odwrotnej znacznie ułatwione jest utrzymywanie spójności projektów (dokumentacji i implementacji) oraz odtwarzanie
(tworzenie) dokumentacji technicznej systemu (również z innych przedsięwzięć), gdy jest ona niezbędna.
• Elementy inżynierii odwrotnej można spotkać m.in. w pakietach PowerDesigner firmy Sybase (moduł
DataArchitect) i Rational Rose firmy Rational (moduł Data
Modeler).
Narzędzia wspomagające weryfikację, walidację i testowanie oprogramowania
• Narzędzia wspomagające weryfikację, walidację i
testowanie oprogramowania (Computer Aided Software
Testing, CAST) pozwalają znacznie podnieść wydajność procesu poprawiania błędów w oprogramowaniu.
• Umożliwiają one m.in. generowanie danych i skryptów testowych, rejestrowanie oraz obserwowanie stanów i wartości zmiennych.
• Najbardziej zaawansowane pakiety tego typu, np.
– CANTATA firmy IPL czy zestaw narzędzi firmy Rational (Rational Visual PureCoverage, Rational Test Suite, Rational Visual Quantify i inne), wspomagają testowanie oprogramowania w różnych
aspektach i są pisane w innych językach programowania (C, C++, ADA, Java, Visual Basic).
– Jeden z modułów zestawu narzędzi firmy Rational – Rational
TestManager – pozwala planować, projektować, implementować i wykonywać testy, a następnie je analizować.
Narzędzia modelowania i analizy organizacji
• Są wykorzystywane we wczesnych fazach cyklu życia systemu i wspomagają m.in. budowanie struktur,
modelowanie i reinżynierię procesów biznesowych . Reprezentatywnymi przykładami narzędzi tego rodzaju są np. ARIS firmy IDS Scheer i ADONIS firmy BOC.
• Nie są to typowe narzędzia CASE, ale raczej
zorientowane procesowo systemy zarządzania
wiedzą, jednak ich umiejętne wykorzystanie pozwala
wspomóc proces budowy systemu informatycznego i
podnieść jego jakość.
Uwarunkowania CASE - integracja
• Komputerowe wspomaganie tworzenia SI może być
realizowane za pomocą pojedynczych narzędzi CASE,
jednak coraz powszechniej korzysta się z wielomodułowych pakietów, które w całym cyklu życia systemu wspomagają wiele aspektów projektowania.
• W ostatnich latach twórcy narzędzi CASE, dążąc do otwartości, stosują standardowe bazy danych oraz
narzędzia konwertujące dane i ułatwiające wymianę (komunikację) z innymi produktami.
• Zintegrowana i standardowa baza danych, nazywana
repozytorium (repository) lub encyklopedią centralną (central encyclopedia), jest podstawową metodą integracji narzędzi i kluczowym czynnikiem umożliwiającym efektywne użycie CASE w skomplikowanych i dużych projektach.
• Repozytorium może zawierać dane o projektowanym
systemie i przebiegu procesu projektowania; poprzez te dane komunikują się wszystkie narzędzia (moduły) wykorzystywane w cyklu życia systemu.
1/7
Encyklopedia centralna (repozytorium)
Diagramy
Ekrany i raporty
Wyniki analizy i testowania
Biblioteka standardów Kod źródłowy
i wynikowy Informacje
o projekcie
Dokumentacja
Rys. 2. Elementy systemu zapamiętane w repozytorium
Elementem repozytorium może być np. słownik danych, który zawiera definicje wszystkich typów danych wykorzystywanych w aplikacjach danej organizacji, lub baza wiedzy w postaci wskazówek, wzorców i definicji standardów.
2/7
Repozytorium
• Repozytorium (encyklopedia centralna) jest podstawą
zintegrowanych środowisk komputerowo wspomaganej inżynierii systemów I-CASE (Integrated CASE).
• Środowiska te łączą w sobie możliwości narzędzi zarówno wysokiego jak i niskiego poziomu.
• Obecnie celem producentów narzędzi CASE jest m.in.
dostarczanie rozwiązań o jak największych możliwościach, tak aby korzystało z nich jak najwięcej użytkowników.
• Stąd pakiety CASE mają coraz więcej modułów i mechanizmów w znacznym stopniu automatyzujących różne działania w procesie wytwarzania systemu i zapewniając wymianę danych z
otoczeniem.
– Przykładem takiego rozbudowanego środowiska jest Oracle9i Designer firmy Oracle, który zawiera m.in. moduły procesów
biznesowych, modelowania danych i funkcji (modele przepływów danych, hierarchia funkcji, model związków encji), modelowania i
generowania baz danych, modelowania i generowania formularzy i raportów, wersjonowania i zarządzania konfiguracją.
– Moduły te są integrowane wokół repozytorium, którego zasoby są udostępniane i zarządzane przez wiele specjalistycznych narzędzi (m.in. nawigator obiektów i menedżer zależności).
3/7
Dane Reguły
Narzędzie CASE
Generatory kodu i baz
danych
Narzędzia prototy- powania Modele Edytory Kontrola
spójności
Kontrola wersji
Raporty Analizy
Graficzne interfejsy ekranowe
Wspomaganie zarządzania
projektami
Kontrola konfiguracji Rys.3. Ogólna architektura zintegrowanego narzędzia CASE
Terminale
Repozytorium
Stacje robocze
Import/
eksport
Lokalne narzędzia CASE
Inne systemy
4/7
Podejście obiektowe i UML
• Rozwój podejścia obiektowego i standardu UML wymusiły także rozwój narzędzi CASE nakierowanych na ich
wspomaganie.
• Takie pakiety jak Rational Rose firmy Rational czy Select Enterprise firmy Aonix pozwalają na modelowanie i
wspieranie budowania komponentowych aplikacji klient- serwer z wykorzystaniem standardu UML.
• Aktualnie popularne jest komercyjne narzędzie CASE Enterprise Architect firmy Sparx Systems, które jest
wszechstronne i łatwe w użytkowaniu oraz ArgoUML firmy Tigrit z kategorii narzędzi opensource.
• Podobnie jak w innych zaawansowanych środowiskach, możliwe jest budowanie różnych modeli, generowanie kodu, skryptów SQL i dokumentacji, realizowanie działań inżynierii odwrotnej i wymiana danych z otoczeniem
(import/eksport danych do/z innych narzędzi).
5/7
Wykorzystanie zintegrowanego środowiska
• Tworzenie SI z wykorzystaniem jednolitego, zintegrowanego środowiska CASE jest sytuacją bardzo komfortową.
• Zdarza się jednak, że w procesie tym projektant musi
posługiwać się narzędziami bez centralnego repozytorium i
wtedy konieczna jest wymiana danych między poszczególnymi modułami.
• Stosuje się wówczas jedną z następujących metod:
– Ręczne wprowadzanie specyfikacji zawartych w jednym
repozytorium do drugiego – jest to sytuacja najmniej pożądana.
– Przekonwertowanie zawartości jednego repozytorium do
pewnego uniwersalnego formatu (np. zbiory tekstowe ASCII), a następnie zaimportowanie tego do innego repozytorium – wymaga to pewnego nakładu pracy, pewne specyfikacje mogą być utracone podczas konwersji.
– Konwertowanie specyfikacji między różnymi repozytoriami z użyciem wbudowanych narzędzi poprzez standardowe formaty wymiany danych między narzędziami CASE.
– Zapewnienie bezpośredniego czytania repozytorium innego narzędzia – jest to możliwe tylko wówczas , gdy producent
narzędzia CASE udostępnia formaty baz danych.
6/7
Uwarunkowania TSI
• Znajomość struktury bazy danych pozwala na dynamiczne łączenie narzędzi CASE i tworzenie parazintegrowanych środowisk z modułów, które pierwotnie były samodzielne i niezależne.
• Poszczególni producenci umożliwiają takie działania,
dostarczając różnych mechanizmów komunikacji i kształtowania środowisk.
• Przykładowo Oracle Designer udostępnia interfejs programowy (API) zapewniający dostęp zewnętrznym narzędziom do
swojego repozytorium, a biblioteka Open Tools API umożliwia dodawanie nowych funkcjonalności do zintegrowanych
środowisk programistycznych Borland C++ Builder i Borland Delphi. Pozwala to połączyć zalety i możliwości różnych
narzędzi i tworzyć niestandardowe rozwiązania o dużym potencjale.
• Swobodny dostęp do danych przez repozytorium centralne oraz różne rozwiązania importu/eksportu mogą umożliwić integrację techniczną, jednak tym, co rzeczywiście konsoliduje proces wytwarzania SI jest metodologia.
7/7
Klasyfikacja narzędzi CASE
Z punktu widzenia funkcjonalności wśród narzędzi CASE (lub ich modułów) można wyróżnić:
– Narzędzia diagramujące (diagramming tools);
– Generatory form ekranowych i raportów (form and report generators) lub moduły projektowania interfejsu użytkownika;
– Narzędzia analityczne (analysis tools);
– Generatory dokumentacji (documentation generators);
– Generatory oprogramowania (code, programs generators) i zintegrowane środowisko programistyczne;
– Narzędzia wspomagające zarządzanie przedsięwzięciami;
– Narzędzia inżynierii odwrotnej;
– Narzędzia wspomagające weryfikację, walidację i testowanie oprogramowania;
– Narzędzia modelowania i analizy organizacji;
– Zintegrowane narzędzia CASE (Integrated CASE, I-CASE) lub zintegrowane środowisko wytwórcze (Integrated Development Environments, IDE).