Narzędzie MetaCASE

Narzędzie metaCASE to rodzaj oprogramowania aplikacyjnego, które daje możliwość tworzenia jednej lub więcej metod modelowania, języków lub notacji do wykorzystania w procesie tworzenia oprogramowania . Często rezultatem jest narzędzie do modelowania dla tego języka. Narzędzia MetaCASE są zatem rodzajem środowiska językowego, ogólnie uważanego za skupione na graficznych językach modelowania.

Inna definicja: narzędzia MetaCASE to narzędzia programowe, które wspierają projektowanie i generowanie narzędzi CASE . Ogólnie rzecz biorąc, narzędzia metaCASE powinny zapewniać ogólne komponenty narzędzia CASE , które można dostosować i utworzyć w określonych narzędziach CASE. Celem narzędzi metaCASE jest przechwycenie specyfikacji wymaganego narzędzia CASE, a następnie wygenerowanie narzędzia na podstawie specyfikacji.

Przegląd

Szybki przegląd narzędzi CASE

aplikacji na dużą skalę to bardzo skomplikowany proces, który nie jest łatwy w obsłudze. Firmy programistyczne muszą mieć dobry system współpracy w zespołach rozwijających i bardzo wymagana jest dobra dyscyplina.

Niemniej jednak wykorzystanie narzędzi CASE to nowoczesny sposób na przyspieszenie tworzenia oprogramowania i zapewnienie wyższego poziomu projektowania aplikacji. Istnieją jednak inne kwestie, o których należy pamiętać. Przede wszystkim użycie tych narzędzi nie gwarantuje dobrych rezultatów, ponieważ są one zazwyczaj duże, złożone i niezwykle kosztowne w produkcji i adaptacji.

Narzędzia CASE można sklasyfikować jako front-end lub back-end w zależności od fazy rozwoju oprogramowania, którą mają wspierać: na przykład narzędzia do analizy i projektowania „front-end” w porównaniu z narzędziami wdrożeniowymi „back-end”. W przypadku inżyniera oprogramowania pracującego nad konkretnym projektem aplikacyjnym wybór narzędzia CASE zazwyczaj zależy od takich czynników, jak rozmiar projektu, zastosowana metodologia , dostępność narzędzi, budżet projektu i liczba zaangażowanych osób. W przypadku niektórych zastosowań odpowiednie narzędzie może nie być dostępne lub projekt może być zbyt mały, aby z niego skorzystać.

Narzędzia CASE obsługują stałą liczbę metodologii, ale organizacje zajmujące się tworzeniem oprogramowania dynamicznie zmieniają przyjęte metodologie.

Szybki przegląd narzędzi metaCASE

Produkty MetaCASE to zazwyczaj wysoce wyspecjalizowane środowiska programistyczne, które tworzą niestandardowe narzędzia (zestawy) na podstawie ogólnego opisu wymaganych narzędzi.

Innymi słowy, technologia metaCASE podchodzi do automatyzacji metodologii z dynamicznej perspektywy.

Narzędzia MetaCASE umożliwiają definiowanie i konstruowanie narzędzi CASE, które wspierają dowolne metodologie. Konfigurator narzędzi CASE najpierw określa pożądaną metodologię i dostosowuje odpowiednie narzędzie CASE. Następnie programiści używają tego narzędzia CASE rozwijać systemy oprogramowania. Zaletą tego podejścia jest to, że to samo narzędzie jest używane z różnymi metodologiami, co z kolei zmniejsza krzywą uczenia się, aw konsekwencji koszty. Każda pożądana metodologia może zostać zautomatyzowana lub zmodyfikowana przez rozwijającą się organizację, która zapewnia dynamiczne możliwości w dzisiejszym dynamicznym i konkurencyjnym świecie. Z innej perspektywy technologia ta może być wykorzystywana jako praktyczne narzędzie nauczania, biorąc pod uwagę skrócony czas rozwoju i nauki, który odpowiada okresom kursów akademickich.

Różnice między narzędziami metaCASE i CASE

Większość narzędzi CASE do modelowania obiektowego jest w dużym stopniu oparta na metodzie UML . Metoda określa również inne narzędzia CASE , takie jak sposób tworzenia, sprawdzania i analizowania modeli oraz generowania kodu . Na przykład narzędzie może generować definicje CORBA IDL tylko wtedy, gdy język modelowania może odpowiednio określać i analizować interfejsy zgodne z CORBA . Jeśli narzędzie (i metoda) ich nie generuje, to oferuje bardzo małe lub żadne wsparcie dla prac nad projektowaniem i implementacją interfejsu.

Podczas korzystania z metod programiści często napotykają podobne trudności. Nie mogą odpowiednio określić domeny i systemu w fazie rozwoju, ponieważ metoda nie zapewnia pojęć ani notacji dla danego zadania. Użytkownicy końcowi mogą mieć trudności z odczytaniem i zrozumieniem modeli, ponieważ nie znają koncepcji modelowania. Zazwyczaj mają również trudności z odwzorowaniem pojęć i semantyki używanych w modelach na ich domenę aplikacji . Po utworzeniu modeli, które nawet nie ilustrują odpowiednio domeny aplikacji, narzędzie nie dostarcza niezbędnych raportów ani nie generuje wymaganego kodu.

Potrzebna jest zatem możliwość łatwego uchwycenia specyfikacji dowolnej metody, a następnie automatycznego generowania narzędzi CASE na podstawie tych specyfikacji. Później, gdy sytuacja w domenie aplikacyjnej ewoluuje i zmienia się środowisko programistyczne, możesz stopniowo aktualizować obsługę metod w swoim narzędziu CASE. To właśnie oferuje technologia metaCASE.

Jak działa metaCASE

Tradycyjne narzędzia CASE opierają się na architekturze dwupoziomowej: projekty systemów są przechowywane w repozytorium , którego schemat jest programowany i kompilowany do narzędzia CASE . Ta zakodowana na stałe część określa, jakiego rodzaju modele można tworzyć i jak można je analizować. Co najważniejsze, tylko dostawca narzędzi może modyfikować metodę, ponieważ jest to ustalone w kodzie. Technologia MetaCASE usuwa to ograniczenie, zapewniając elastyczne metody.

Osiąga się to poprzez dodanie jednego poziomu powyżej poziomu metody.

Narzędzia MetaCASE oparte są na trzypoziomowej architekturze:

  1. Najniższy poziom, modelowy, jest zbliżony do poziomu narzędzi CASE. Zawiera projekty systemów jako modele.
  2. Poziom środkowy zawiera model metody, czyli metamodel. Metamodel zawiera koncepcje, reguły i notacje diagramów danej metody. Na przykład metamodel może określać pojęcia, takie jak klasa i dziedziczenie , jak są one powiązane i jak są reprezentowane. Jednak zamiast być osadzonym w kodzie w narzędziu, jak w stałym narzędziu CASE, metoda jest przechowywana jako dane w repozytorium. Stosowanie metamodeli stało się ostatnio bardziej popularne. Wiele książek o metodach zawiera obecnie metamodele ich metody i kilka ważnych innowacji, takich jak XMI , są oparte na metamodelach. W przeciwieństwie do narzędzia CASE, narzędzie metaCASE umożliwia użytkownikowi modyfikowanie metamodelu. Dlatego metaCASE opiera się na elastyczności specyfikacji metody.
  3. Osiąga się to poprzez posiadanie trzeciego, wyższego poziomu, który obejmuje język metamodelowania do określania metod. Ten poziom jest zakodowaną na stałe częścią oprogramowania metaCASE.

Wszystkie trzy poziomy są ze sobą ściśle powiązane: model jest oparty na metamodelu, który z kolei jest oparty na języku metamodelowania. Oczywiście żadne modelowanie nie jest możliwe bez pewnego rodzaju metamodelu. Ta struktura zależności jest podobna do struktury między obiektami , klasami i metaklasami w niektórych obiektowych językach programowania .

narzędzia metaCASE

To jest lista aktualnie dostępnych narzędzi metaCASE; wiele innych narzędzi do modelowania może również oferować pewną miarę funkcjonalności metamodelowania

Realne korzyści z używania narzędzi metaCASE

Jackson dostrzega istotną różnicę między domeną aplikacji a jej kodem: dwa różne światy, każdy z własnym językiem, ekspertami, sposobami myślenia itp. Gotowa aplikacja stanowi punkt przecięcia tych światów. Trudnym zadaniem inżyniera oprogramowania jest zbudowanie pomostu między tymi światami, a jednocześnie rozwiązywanie problemów w obu światach.

Badania empiryczne konsekwentnie pokazują, że tylko około połowa wszystkich projektów rozwojowych wykorzystuje metody. Wśród stosujących metody ponad 50% albo modyfikuje metody, aby lepiej pasowały do ​​ich potrzeb, albo nawet opracowuje własne metody

W standardowym narzędziu CASE metoda obsługiwana przez narzędzie jest ustalona: nie można jej zmienić. W narzędziu metaCASE istnieje pełna dowolność zmiany metody, a nawet opracowania zupełnie nowej metody. Zarówno modele, jak i metamodele (opisy metod) są przechowywane w repozytorium jako elementy pierwszej klasy. Pozwala to organizacji na opracowanie metody, która odpowiada ich sytuacji i potrzebom oraz przechowywanie i rozpowszechnianie tej wiedzy wśród wszystkich programistów. Następnie narzędzie i metoda prowadzą programistów, zapewniają im wspólne ramy do pracy i integrują pracę całego zespołu.

Prototypy badawcze, a nawet komercyjne narzędzia metaCASE istnieją od wielu lat, ale dopiero niedawno pojawiły się narzędzia dojrzałe, przyjazne dla użytkownika i stabilne zarówno dla twórcy metody, jak i użytkownika metody. Jednym z najbardziej znanych i używanych narzędzi metaCASE jest MetaEdit+ .

Poniższa lista przedstawia kilka sposobów wykorzystania tych narzędzi w ramach tworzenia oprogramowania:

  • może zredukować czas i koszty opracowania środowiska wspomaganego komputerowo
  • może wspierać formalne metody tworzenia oprogramowania
  • może być używany jako narzędzie do modelowania systemów informatycznych
  • może wspierać tworzenie szerokiej gamy języków modelowania
  • może wspierać CASE i modelowanie szkoleń językowych
  • może wspierać porównanie i integrację języka modelowania

Narzędzia te powinny również posiadać następujące cechy:

  • umożliwienie użytkownikom tworzenia wsparcia metod dla własnych metod inżynierii oprogramowania z niską krzywą uczenia się
  • mieć łatwe w użyciu graficzne narzędzia CASE do obsługi prostych i wydajnych interakcji użytkownika
  • mieć możliwość sprawdzenia spójności modelu, nawet w czasie wykonywania
  • mieć możliwość generowania standardowych raportów
  • posiadać narzędzie do zarządzania złożonością, które zapewnia ograniczone widoki i szczegółowe reprezentacje modelu
  • posiadać zaawansowane dialogi wejściowe do tworzenia i modyfikowania danych modelu
  • posiadać konfigurowalną obsługę wielu metod

Zobacz też