background image

Narzędzia i metody 

wspomagające projektowanie 

SI

background image

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.

background image

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).

background image

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

background image

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).

background image

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.

background image

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.

background image

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.

background image

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.

background image

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

background image

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. 

background image

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.

background image

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).

background image

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ć.

background image

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ść.

background image

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.

background image

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.

background image

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). 

background image

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

 

background image

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).

background image

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.

background image

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.


Document Outline