OiZPI Część 5 narzędzia CASE w materiałach wykorzystano: K.Subieta: Budowa i integracja systemów informatycznych A.Kobieliński: Inżynieria Oprogramowania I.Sommerville: Software Engineering IBM Rational: RUP™
Konspekt bieżącego wykładu Narzędzia CASE Zarządzanie procesem formułowania wymagań Metodyka budowy modelu procesów biznesowych
Narzędzia CASE Przeznaczenie i funkcje Architektura Przykłady
Narzędzia CASE - definicje Tradycyjnie przez CASE rozumiało się narzędzia, które wspomagają ogólnie rozumiane wytwarzanie oprogramowania oraz koncentrują się na głównie na fazach analizy i projektowania oraz bezpośrednim wykorzystaniu wyników tych faz w implementacji. Obecnie narzędzia CASE obejmują definiowanie wymagań, czasem implementację, testowanie i uruchamianie, organizację pracy zespołu) W przyszłości CASE będą wykorzystywane w fazie strategicznej oraz w czasie konserwacji oprogramowania (modelowania organizacji, procedury, organizacja pracy w przedsiębiorstwie, przepływ dokumentów, reinżynieria biznesowa) Integracja poszczególnych elementów CASE Semantyka modeli wykorzystywanych w CASE Interfejs graficzny w CASE Inżynieria odwrotna Integracja z otoczeniem programistycznym - narzędzia, metodyki, zarządzania projektami, ORSZBD, OSZBD Projektowanie systemów: - Klient-Serwer - Obiektowych - Komponentowych - Multimedialnych - Eksperckich Projektowanie rozproszonych baz danych Dostosowanie narzędzia CASE do projektu (customization) Elementy sztucznej inteligencji (?) dziś jutro wczoraj
Narzędzia CASE - podział
Korzyści ze stosowania narzędzi CASE Podniesienie jakości realizowanego systemu Usprawnienie komunikacji Produktywność Sformalizowana metodyka realizacji SI Łatwiejsza konserwacja SI Lepsze zarządzanie projektem Inne 5 10 15 20 25 30 35 % respondentów
Wielośrodowiskowe narzędzie I-CASE programistyczne A Środowisko programistyczne B Pakiet typu Lower-CASE dla środowiska A Pakiet typu Lower-CASE dla środowiska B Jądro systemu. Uniwersalny pakiet Upper-CASE Pakiet typu Lower-CASE dla środowiska C Pakiet typu Lower-CASE dla środowiska D Narzędzia CASE stosują różne techniki wizualizacji projektów, w szczególności notacje diagramów encja-związek (ER), OMT, UML i inne. Obecnie większość producentów określa swoje środowiska jako I-CASE (Integrated-CASE). Są to narzędzia łączące w sobie możliwości Lower-CASE i Upper-CASE. Stosunek narzędzi CASE do konkretnych metodyk i notacji jest dość różny. Istnieje grupa narzędzi uniwersalnych, które umożliwiają pracę z wieloma notacjami i wieloma metodykami. Istnieją również narzędzia CASE przypisane do konkretnych produktów, np. Oracle CASE. Wiele narzędzi CASE łączy elementy znane z wielu metodyk z własnymi pomysłami Przykłady narzędzi CASE (są ich dziesiątki): Oracle CASE, EasyCASE, CASE 4.0, ObjectiF, Select OMT Professional, System Architect, ObjectTeam, Paradigm Plus, Rational Rose, Select Enterprise Wiele narzędzi jest niczym więcej niż wyspecjalizowanymi edytorami graficznymi Środowisko programistyczne C Środowisko programistyczne D Źródło: K.Subieta wykł.
Składowe architektury CASE Środowisko implementacji Moduł inżynierii odwrotnej Generatory kodu Moduł projektowania interfejsu użytkownika Sprzęgi do narzędzi RAD Moduł pracy sieciowej Moduł importu/ eksportu danych Repozytorium danych Moduł zarządzania pracą grupową Moduł kontroli poprawności Moduł zarządzania konfiguracjami Moduł kontroli jakości Generatory dokumentacji technicznej Edytory diagramów Generatory raportów Źródło: K.Subieta wykł.
Edytor notacji graficznych Funkcje Tworzenie, edycja i wydruk diagramów wykorzystywanych w fazach określania wymagań. Tworzenie i edycja powiązań pomiędzy poszczególnymi symbolami i diagramami oraz nawigowanie po sieci powiązanych diagramów. Ocena Ergonomia pracy. Diagramy graficzne są jednym z podstawowych narzędzi pracy w fazach analizy i projektowania. Powinny one pozwalać analitykom i projektantom skupić się na pracy, a nie na “zmaganiach” z edytorem. Możliwość kontrolowania ilości informacji prezentowanej graficznie. Jakość i możliwość formatowania wydruków. Wykrywanie na bieżąco konstrukcji niepoprawnych. Zapewnienie spójności informacji umieszczonych na różnych diagramach Źródło: K.Subieta wykł.
Repozytorium (słownik) Funkcje Ewidencja danych o realizowanym projekcie Wprowadzenie oraz edycja specyfikacji modelu i projektu, a także innych informacji związanych z przedsięwzięciem. Wyszukiwanie pożądanej informacji Ocena Możliwy dostęp z programów zewnętrznych, możliwość wykorzystania w powiązaniu z narzędziami 4GL Jakość serwera zarządzającego SZBD SQL, ODBC, itd. W niektórych narzędziach CASE użytkownik ma możliwość rozbudowania struktury repozytorium oraz wprowadzania własnych funkcji działających na repozytorium. Źródło: K.Subieta wykł.
Pozostałe moduły narzędzi CASE (1) Moduł kontroli poprawności: Pewne błędy mogą być wykrywane na bieżąco w trakcie edycji diagramów i słownika danych., np. uczynienie klasy swoja własną specjalizacją. Moduł kontroli jakości: Pewne systemy pozwalają na automatyczną ocenę pewnych miar jakości projektu. Dotyczy to szczególnie złożoności oraz stopnia powiązania składowych. Generator raportów: Służy do przygotowania raportów na podstawie zawartości słownika danych. Niektóre raporty są parametryczne. Narzędzia CASE zawierają sporo gotowych generatorów raportów. Niektóre z nich pozwalają na definiowanie własnych. Generator dokumentacji technicznej: Moduł służący do przygotowania dokumentacji technicznej złożonej z szeregu diagramów. Swobodne formatowanie dokumentów. Przykładowe dokumenty. Łatwe i efektywne uaktualnienie dokumentacji po dokonaniu zmian w projekcie. Źródło: K.Subieta wykł.
Pozostałe moduły narzędzi CASE (2) Generatory kodu: Narzędzia służące do generacji kodu w rozmaitych językach programowania. Często generują szkielety, które muszą być uzupełnione przez użytkownika dodatkowym kodem. Wygenerowany kod jest uzupełniony o komentarze i inne informacje. Może także zawierać pewne elementy do modyfikacji. Nazwy użyte w projekcie przechodzą do wynikowego kodu. Moduł zarządzania wersjami: Umożliwia kontrolę różnych wersji projektu powstających ze względu na konieczność grupowego wprowadzania zmian oraz na wskutek zastosowania wielu środowisk. Moduł projektowania interfejsu użytkownika: Dotyczy projektowania dialogów, okien, menu. Zaletą jest wykorzystanie informacji znajdujących się w słowniku danych. Pozwala to np. na automatyczne wygenerowanie dialogu do edycji pewnej struktury danych. Moduł inżynierii odwrotnej Źródło: K.Subieta wykł.
Przyczyny trudności z narzędziami CASE Traktowanie narzędzi CASE wyłącznie jako generatorów kodu. Nie jest to efektywne przy braku rzetelnego podejścia do analizy i projektowania ponieważ: nakłady na implementację stanowią tylko ok. 15-30% całych nakładów, koszt błędów popełnionych w fazie implementacji jest stosunkowo niewielki a ponadto istnieją inne, tańsze narzędzia programistyczne (RAD) Nieznajomość metodyki analizy i projektowania. Narzędzia CASE nie zwalniają z myślenia, wiedzy i doświadczenia. Niewłaściwa organizacja i zarządzanie przedsięwzięciem. Nieuporządkowanie prac, brak planu, brak właściwych ocen, brak monitorowania postępu, itd. Zbyt wysokie oczekiwania w stosunku do narzędzia CASE. Może ono wprawdzie zredukować koszty (twierdzi się, że co najwyżej o 50%) ale koszt wdrożenia jest wysoki, efekty pojawiają się z pewnym opóźnieniem, wymaga dyscypliny w przedsięwzięciu. Narzędzie CASE nie przesądza w auto-magiczny sposób o powodzeniu projektu. Zastosowanie obiektowego CASE niekoniecznie oznacza “nowoczesność” projektu. Stosowanie narzędzi CASE często przynosi znikome efekty. Źródło: K.Subieta wykł.
Przeszkody we wdrażaniu CASE Brak współpracy kierownictwa Brak doświadczenia z systemami CASE Brak integracji z istniejącymi narzędziami Nieodpowiednia organizacja prac projektowo/programowych Brak dowodów przydatności CASE Brak metodyki projektowania SI Niezgodność z istniejącą praktyką Obawa przed zmianami Brak akceptacji klienta 2 4 6 8 10 12 14 % respondentów
Rozkład kosztów realizacji SI Metody tradycyjne “ad hoc” Metody i narzędzia CASE Planowanie Analiza Projektowanie Konstrukcja Wdrożenie Konserwacja Źródło: K.Subieta wykł.
LBMS Systems Engineer Oprogramowanie pochodzi z drugiej połowy lat 90-tych, wspiera metodologię strukturalną Obejmuje ewidencja problemów, wymagań, rozwiązań zdarzenia transakcje słownik danych elementarne model procesów (diagramy DFD, PHD, PDD) model danych (diagram ERD) projektowanie interfejsu (UNIX, Windows) generator skryptów baz danych Narzędzie spójne w warstwie narzędziowej jak i koncepcyjnej ty powiązać z poprzednim wykładem
Architektura systemu LBMS Systems Engineer klasyczny model klient-serwer klient: Windows 95/98 serwer: SQLBase (Gupta/Centura) ty powiązać z poprzednim wykładem Wszystkie dane o projekcie, a więc wymagania, role użytkowników, tabele, modele itp. przechowywane są w tzw. repozytorium projektu, zarządzanym przez profesjonalny, komercyjny DBMS (SQL Base, ORACLE).
LBMS Systems Engineer
Rational Suite Enterprise Jeden z najsilniejszych pakietów CASE dostępnych na rynku Wspiera metodologię obiektową i język UML Wspiera model cyklu RUP (Rational Unified Process) dostarczając wiedzy niezbędnej do zarządzania projektem w oparciu o artefakty Wbudowana integracja z Visual C++, obecnie środowiskiem .NET Generatory kodu wysokiej jakości Wspiera nowoczesne (choć w naszych realiach rzadko stosowane) rozwiązania typu JAVA, CORBA Wada – dotyczy wszystkich obiektowych CASE – problem trwałości obiektów (obiektowe bazy danych ciągle na wczesnym etapie rozwoju) Wada – rezygnacja z zewnętrznego generatora raportów - integracja pakietu z zewnętrznymi narzędziami Microsoft Office
Enterprise Architect Producent – Sparx Systems Silna współpraca z OMG Wsparcie dla UML, SysML, BPMN, MDA Wsparcie dla pracy grupowej (baza danych, system kontroli wersji) Generatory kodu źródłowego i DDL Audyt modelu
Enterprise Architect Przykład 1 – tworzenie i zawartość modelu Przykład 2 – praca grupowa z bazą SQL Przykład 3 – praca grupowa z zastosowaniem SVN Przykład 4 – generowanie i synchronizacja kodu (c++) Przykład 5 – generowanie i synchronizacja DDL (SQL) Przykład 6 - audyt projektu