Narzędzia i metody
wspomagające projektowanie
SI
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
wystąpieniu na konferencji w Waszyngtonie. 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ć zarówno
proste pakiety
związane z jedną fazą cyklu życia, z jej wybranymi
procesami (workbenches), jak i
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).
Identyfikacje 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
wysokieg
opoziomu
Narzędzia
CASE
niskiego
poziomu
Rys. 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 przepływu danych (data flows
diagrams, DFD), diagramy związków encji (entity-
relationship diagrams, ERD) czy diagramy
struktury (structure diagrams, SD), np. The Visible
Analyst Workbench (VAW) firmy Visible Systems
Corporation, Information 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, np. 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
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 Magica niczym się nie różnią
od innych, natomiast projektanci i programiści pracujący z tym
pakietem mogą znacznie wydajniej wykonywać swoje działania.
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. Ponieważ
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
• Komputerowe wspomaganie tworzenia SI może być
wprawdzie 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.
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. 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.
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).
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. Ogólna architektura zintegrowanego narzędzia CASE
Terminale
Repozytoriu
m
Stacje
robocze
Import
/ekspo
rt
Lokalne
narzędzia CASE
Inne
system
y
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.
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).
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.
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.