Język modelowania - Modeling language
Język modelowania jest jakiś sztuczny język , który może być używany do wyrażania informacji lub wiedzy lub systemy w strukturze , która jest wyznaczona przez spójny zestaw zasad. Reguły służą do interpretacji znaczenia elementów konstrukcji.
Przegląd
Język modelowania może być graficzny lub tekstowy.
- Języki modelowania graficznego wykorzystują technikę diagramów z nazwanymi symbolami, które reprezentują koncepcje i linie łączące symbole i reprezentują relacje oraz różne inne zapisy graficzne reprezentujące ograniczenia.
- Języki modelowania tekstu mogą wykorzystywać ustandaryzowane słowa kluczowe wraz z parametrami lub terminami i wyrażeniami języka naturalnego w celu tworzenia wyrażeń interpretowalnych przez komputer.
Przykładem graficznego języka modelowania i odpowiadającego mu tekstowego języka modelowania jest EXPRESS .
Nie wszystkie języki modelowania są wykonywalne, a ich użycie niekoniecznie oznacza, że programiści nie są już potrzebni. Wręcz przeciwnie, wykonywalne języki modelowania mają na celu zwiększenie produktywności wykwalifikowanych programistów, aby mogli rozwiązywać trudniejsze problemy, takie jak przetwarzanie równoległe i systemy rozproszone .
W literaturze pojawia się wiele języków modelowania.
Rodzaje języków modelowania
Typy graficzne
Przykładowe języki graficznego modelowania z zakresu informatyki, zarządzania projektami i inżynierii systemów:
- Drzewa zachowań to formalny, graficzny język modelowania używany głównie w inżynierii systemów i oprogramowania . Powszechnie używany do jednoznacznego przedstawienia setek, a nawet tysięcy wymagań języka naturalnego, które są zwykle używane do wyrażania potrzeb interesariuszy dla zintegrowanego oprogramowania na dużą skalę systemu.
- Notacja modelowania procesów biznesowych (BPMN i format XML BPML) jest przykładem języka modelowania procesów .
- Teoria CK składa się z języka modelowania procesów projektowych.
- DRAKON to uniwersalny język modelowania algorytmicznego do określania systemów intensywnie korzystających z oprogramowania, schematycznej reprezentacji algorytmu lub procesu krokowego oraz rodziny języków programowania .
- EXPRESS i EXPRESS-G (ISO 10303-11) to międzynarodowy standardowy język modelowania danych ogólnego przeznaczenia .
- Extended Enterprise Modeling Language (EEML) jest powszechnie używany do modelowania procesów biznesowych na wielu warstwach.
- Schemat blokowy to schematyczne przedstawienie algorytmu lub procesu krokowego.
- Język modelowania Fundamental Modeling Concepts (FMC) dla systemów intensywnie korzystających z oprogramowania.
- IDEF to rodzina języków modelowania, która obejmuje IDEF0 do modelowania funkcjonalnego, IDEF1X do modelowania informacji, IDEF3 do modelowania procesów biznesowych, IDEF4 do projektowania zorientowanego obiektowo i IDEF5 do modelowania ontologii.
- Jackson Structured Programming (JSP) to metoda programowania strukturalnego oparta na zależnościach między strukturą strumienia danych a strukturą programu.
- LePUS3 to zorientowany obiektowo wizualny język opisu projektu i formalny język specyfikacji , który jest odpowiedni przede wszystkim do modelowania dużych programów zorientowanych obiektowo ( Java , C++ , C# ) i wzorców projektowych .
- Lifecycle Modeling Language to otwarty standard dla inżynierii systemów, który obsługuje cały cykl życia systemu : etapy koncepcyjne, użytkowania, wsparcia i wycofania.
- Modelowanie ról obiektowych (ORM) w dziedzinie inżynierii oprogramowania jest metodą modelowania koncepcyjnego i może być wykorzystywane jako narzędzie do analizy informacji i reguł.
- Sieci Petriego wykorzystują wariacje dokładnie jednej techniki tworzenia diagramów i topologii, a mianowicie grafu dwudzielnego . Prostota jego podstawowego interfejsu użytkownika z łatwością umożliwiła obszerną obsługę narzędzi przez lata, szczególnie w obszarach sprawdzania modeli, symulacji zorientowanej graficznie i weryfikacji oprogramowania.
- Notacja Southbeach to wizualny język modelowania używany do opisywania sytuacji w kategoriach agentów, które są uważane za przydatne lub szkodliwe z perspektywy modelarza. Notacja pokazuje, w jaki sposób agenci wchodzą ze sobą w interakcje i czy ta interakcja poprawia, czy pogarsza sytuację.
- Język specyfikacji i opisu (SDL) to język specyfikacji ukierunkowany na jednoznaczną specyfikację i opis zachowania systemów reaktywnych i rozproszonych.
- SysML to język modelowania specyficznego dla domeny dla inżynierii systemów, który jest zdefiniowany jako profil UML (dostosowywanie).
- Unified Modeling Language (UML) to język modelowania ogólnego przeznaczenia , który jest branżowym standardem określania systemów intensywnie korzystających z oprogramowania. UML 2.0, aktualna wersja, obsługuje trzynaście różnych technik tworzenia diagramów i ma szerokie wsparcie narzędzi.
- Platforma modelowania zorientowanego na usługi (SOMF) to holistyczny język do projektowania modeli architektury na poziomie przedsiębiorstwa i aplikacji w przestrzeni architektury korporacyjnej, wirtualizacji, architektury zorientowanej na usługi (SOA), przetwarzania w chmurze i nie tylko.
- Opis architektury język (ADL) to język używany do opisania i reprezentuje architekturę systemów o systemie .
- AADL (AADL) to język modelowania, który obsługuje wczesne i powtarzane analizy architektury systemu pod kątem właściwości krytycznych dla wydajności za pomocą notacji rozszerzalnej, struktury narzędziowej i precyzyjnie zdefiniowanej semantyki.
Przykłady języków modelowania graficznego w innych dziedzinach nauki.
- EAST-ADL to język modelowania specyficzny dla domeny, przeznaczony do projektowania systemów samochodowych.
- Energy Systems Language (ESL), język, którego celem jest modelowanie energetyki ekologicznej i ekonomii globalnej.
- IEC 61499 definiuje język modelowania specyficznego dla domeny, dedykowany do dystrybucji systemów pomiarowych i sterowania procesami przemysłowymi.
Typy tekstowe
Modele informacyjne mogą być również wyrażane w sformalizowanych językach naturalnych, takich jak gellish. Gellish ma warianty języka naturalnego, takie jak Gellish Formal English i Gellish Formal Dutch ( Gellish Formeel Nederlands ) itp. Gellish Formal English to język reprezentacji informacji lub język modelowania semantycznego, który jest zdefiniowany w Gellish English Dictionary-Taxonomy, który ma postać taksonomię-ontologię (podobnie dla niderlandzkiego). Gellish Formal English nadaje się nie tylko do wyrażania wiedzy, wymagań i słowników, taksonomii i ontologii, ale także informacji o poszczególnych rzeczach. Wszystkie te informacje są wyrażone w jednym języku i dlatego mogą być zintegrowane, niezależnie od tego, czy są przechowywane w bazach danych centralnych, rozproszonych czy federacyjnych. Modele informacyjne w Gellish Formal English składają się ze zbiorów wyrażeń Gellish Formal English, które wykorzystują terminy języka naturalnego i sformalizowane zwroty. Na przykład model informacji geograficznej może składać się z wielu wyrażeń języka żelijskiego w języku formalnym, takich jak:
- the Eiffel tower <is located in> Paris - Paris <is classified as a> city
natomiast wymagania informacyjne i wiedzę można wyrazić na przykład w następujący sposób:
- tower <shall be located in a> geographical area - city <is a kind of> geographical area
Takie wyrażenia z języka żelsko-formalnego używają nazw pojęć (takich jak „miasto”) i fraz, które reprezentują typy relacji (takie jak „jest położony w” i „jest sklasyfikowany jako a⟩), które należy wybrać z słownika taksonomii żeludzkiego języka angielskiego ( lub własnego słownika domeny). Gellish English Dictionary-Taxonomy umożliwia tworzenie bogatych semantycznie modeli informacji, ponieważ słownik zawiera ponad 600 standardowych typów relacji i zawiera definicje ponad 40000 pojęć. Model informacyjny w Gellish może wyrażać fakty lub składać oświadczenia, pytania i odpowiedzi.
Bardziej szczegółowe typy
W dziedzinie informatyki pojawiły się ostatnio bardziej specyficzne typy języków modelowania.
Algebraiczny
Języki modelowania algebraicznego (AML) to języki programowania wysokiego poziomu służące do opisywania i rozwiązywania problemów o dużej złożoności dla obliczeń matematycznych na dużą skalę (tj. problemów typu optymalizacji na dużą skalę). Jedną ze szczególnych zalet AML, takich jak AIMMS , AMPL , GAMS , Mosel , OPL i OptimJ, jest podobieństwo ich składni do matematycznego zapisu problemów optymalizacji. Pozwala to na bardzo zwięzłą i czytelną definicję problemów z dziedziny optymalizacji, która jest wspierana przez pewne elementy języka, takie jak zbiory, indeksy, wyrażenia algebraiczne, potężny indeks rzadki i zmienne obsługujące dane, ograniczenia o dowolnych nazwach. Sformułowanie algebraiczne modelu nie zawiera wskazówek, jak go przetwarzać.
Behawioralne
Języki behawioralne są zaprojektowane do opisywania obserwowalnego zachowania złożonych systemów składających się z komponentów, które działają współbieżnie. Języki te koncentrują się na opisie kluczowych pojęć, takich jak: współbieżność, niedeterminizm, synchronizacja i komunikacja. Podstawy semantyczne języków behawioralnych to rachunek procesów lub algebra procesów .
Specyficzne dla dyscypliny
Język modelowania specyficznego dla dyscypliny (DspM) koncentruje się na elementach wynikowych powiązanych z określonym etapem cyklu życia oprogramowania. Dlatego taki język oferuje odrębne słownictwo, składnię i notację na każdym etapie, takim jak odkrywanie, analiza, projektowanie, architektura, skrócenie itp. Na przykład w fazie analizy projektu modelarz stosuje określoną notację analityczną, aby dostarczyć diagram propozycji analizy. Jednak w fazie projektowania logiczny zapis projektu jest używany do zobrazowania relacji między jednostkami oprogramowania. Ponadto najlepsze praktyki w zakresie języka modelowania dla danej dyscypliny nie uniemożliwiają praktykom łączenia różnych notacji na jednym diagramie.
Specyficzne dla domeny
Modelowanie specyficzne dla domeny (DSM) to metodologia inżynierii oprogramowania służąca do projektowania i tworzenia systemów, najczęściej systemów informatycznych, takich jak oprogramowanie komputerowe. Polega ona na systematycznym użyciu graficznego języka specyficznego dla domeny (DSL) do reprezentowania różnych aspektów systemu. Języki DSM zwykle obsługują abstrakcje wyższego poziomu niż języki modelowania ogólnego przeznaczenia, więc wymagają mniej wysiłku i mniej szczegółów niskiego poziomu, aby określić dany system.
Specyficzne dla frameworka
Ramy specyficzny język modelowania (FSML) jest rodzajem języka specyficzne dla domeny modelowania, który jest przeznaczony do ram aplikacji obiektowego. FSML definiują dostarczane przez framework abstrakcje jako koncepcje FSML i rozkładają abstrakcje na funkcje. Funkcje reprezentują etapy implementacji lub wybory.
Koncepcję FSML można skonfigurować, wybierając funkcje i podając wartości dla funkcji. Taka konfiguracja koncepcji reprezentuje sposób, w jaki koncepcja powinna być zaimplementowana w kodzie. Innymi słowy, konfiguracja koncepcji opisuje, w jaki sposób należy uzupełnić framework, aby stworzyć implementację koncepcji.
Modelowanie informacji i wiedzy
Połączone dane i inżynieria ontologiczna wymagają „języków gospodarza” do reprezentowania jednostek i relacji między nimi , ograniczeń między właściwościami jednostek i relacji oraz atrybutów metadanych . JSON-LD i RDF to dwa główne (i semantycznie prawie równoważne) języki w tym kontekście, przede wszystkim dlatego, że wspierają reifikację i kontekstualizację zdań, które są podstawowymi właściwościami wspierającymi logikę wyższego rzędu niezbędną do rozumowania o modelach. Typowym przykładem takiego rozumowania jest transformacja modelu .
Zorientowany obiektowo
Języki modelowania obiektowego to języki modelowania oparte na ustandaryzowanym zestawie symboli i sposobach ich rozmieszczania w celu modelowania (części) obiektowego projektowania oprogramowania lub projektowania systemu.
Niektóre organizacje intensywnie wykorzystują je w połączeniu z metodologią tworzenia oprogramowania, aby przejść od wstępnej specyfikacji do planu wdrożenia i przekazać ten plan całemu zespołowi programistów i interesariuszy. Ponieważ język modelowania jest językiem wizualnym i na wyższym poziomie abstrakcji niż kod, używanie modeli zachęca do generowania wspólnej wizji, która może zapobiec problemom związanym z odmienną interpretacją na późniejszym etapie rozwoju. Często do konstruowania tych modeli używane są narzędzia do modelowania oprogramowania, które następnie mogą być zdolne do automatycznego tłumaczenia na kod.
Wirtualna rzeczywistość
Język Virtual Reality Modeling Language (VRML), przed 1995 rokiem znany jako Virtual Reality Markup Language, jest standardowym formatem plików do przedstawiania trójwymiarowej (3D) interaktywnej grafiki wektorowej, zaprojektowanym specjalnie z myślą o sieci WWW.
Inni
- Język opisu architektury
- Język modelowania twarzy
- Język modelowania generatywnego
- Język modelowania Java
- Promela
- Język modelowania Rebeca
- Język modelowania usług
- Język modelowania usług internetowych
- X3D
Aplikacje
Różne rodzaje języków modelowania są stosowane w różnych dyscyplinach, w tym informatyce , zarządzaniu informacją , modelowaniu procesów biznesowych , inżynierii oprogramowania i inżynierii systemów . Języki modelowania mogą być użyte do określenia:
- wymagania systemowe,
- struktury i
- zachowania.
Języki modelowania mają być używane do precyzyjnego określania systemów, tak aby interesariusze (np. klienci, operatorzy, analitycy, projektanci) mogli lepiej zrozumieć modelowany system.
Bardziej dojrzałe języki modelowania są precyzyjne, spójne i wykonywalne. Oczekuje się, że nieformalne techniki tworzenia diagramów zastosowane z narzędziami do rysowania dostarczą użytecznych graficznych reprezentacji wymagań systemowych, struktur i zachowań, które mogą być przydatne do komunikacji, projektowania i rozwiązywania problemów, ale nie mogą być używane programowo. Oczekuje się jednak, że wykonywalne języki modelowania zastosowane z odpowiednią obsługą narzędzi zautomatyzują weryfikację i walidację systemu , symulację i generowanie kodu z tych samych reprezentacji.
Jakość
Przegląd języków modelowania jest niezbędny, aby móc określić, które języki są odpowiednie dla różnych ustawień modelowania. W terminach ustawienia uwzględniamy interesariuszy, dziedzinę i powiązaną wiedzę. Ocena jakości języka jest środkiem, który ma na celu osiągnięcie lepszych modeli.
Ramy oceny
Tutaj jakość języka jest określana zgodnie z ramami jakości modeli SEQUAL opracowanymi przez Krogstie, Sindre i Lindland (2003), ponieważ jest to struktura, która łączy jakość języka z ramą ogólnej jakości modeli. W tym kontekście do opisu jakości języka wykorzystywanych jest pięć obszarów, które mają wyrażać zarówno konceptualną, jak i wizualną notację języka. Nie będziemy zagłębiać się w szczegółowe wyjaśnienie podstawowych ram jakości modeli, ale skoncentrujemy się na obszarach używanych do wyjaśnienia ram jakości języka.
Adekwatność domeny
Struktura określa zdolność do reprezentowania domeny jako stosowności domeny. Stwierdzenie adekwatności może być nieco niejasne, ale w tym konkretnym kontekście oznacza zdolność do wyrażenia . W idealnym przypadku powinieneś być w stanie wyrazić tylko rzeczy, które są w domenie, ale być wystarczająco silnym, aby uwzględnić wszystko, co jest w domenie. To wymaganie może wydawać się nieco surowe, ale celem jest uzyskanie wizualnie wyrażonego modelu, który zawiera wszystko, co dotyczy domeny i wyklucza wszystko, co nie jest odpowiednie dla domeny. Aby to osiągnąć, język musi dobrze rozróżniać, które notacje i składnie są korzystne do zaprezentowania.
Odpowiedniość uczestnika
Aby ocenić adekwatność uczestnika, staramy się określić, jak dobrze język wyraża wiedzę posiadaną przez interesariuszy. Wiąże się to z wyzwaniami, ponieważ wiedza interesariuszy jest subiektywna. Wiedza interesariuszy jest zarówno ukryta, jak i jawna. Oba rodzaje wiedzy mają charakter dynamiczny. W tych ramach pod uwagę brany jest tylko typ wiedzy jawnej. Język powinien w dużym stopniu wyrażać całą jawną wiedzę interesariuszy dotyczącą dziedziny.
Adekwatność modelarza
W ostatnim akapicie stwierdzono, że wiedza interesariuszy powinna być prezentowana w dobry sposób. Ponadto konieczne jest, aby język był w stanie wyrazić całą możliwą wiedzę jawną interesariuszy. Żadna wiedza nie powinna pozostać niewyrażona z powodu braków w języku.
Adekwatność zrozumiałości
Adekwatność zrozumiałości zapewnia, że aktorzy społeczni rozumieją model dzięki konsekwentnemu używaniu języka. Aby to osiągnąć, ramy zawierają zestaw kryteriów. Ogólne znaczenie, jakie mają one wyrażać, polega na tym, że język powinien być elastyczny, łatwy do zorganizowania i łatwy do odróżnienia różnych części języka wewnętrznie, jak również od innych języków. Poza tym cel powinien być tak prosty, jak to tylko możliwe, a każdy symbol w języku ma unikalną reprezentację.
Wiąże się to również ze strukturą wymagań rozwojowych. .
Odpowiedniość narzędzia
Aby zapewnić, że faktycznie modelowana domena nadaje się do analizy i dalszego przetwarzania, język musi zapewnić możliwość automatycznego rozumowania. Aby to osiągnąć, musi zawierać formalną składnię i semantykę. Kolejną zaletą formalizacji jest możliwość wykrywania błędów na wczesnym etapie. Nie zawsze język najlepiej dopasowany do aktorów technicznych jest taki sam, jak dla aktorów społecznych.
Adekwatność organizacyjna
Użyty język jest odpowiedni do kontekstu organizacyjnego, np. język jest ustandaryzowany w organizacji lub jest obsługiwany przez narzędzia wybrane jako standardowe w organizacji.
Zobacz też
Bibliografia
Dalsza lektura
- John Krogstie (2003) „Ocena UML przy użyciu ogólnych ram jakości” . SINTEF Telekomunikacja i Informatyka oraz IDI, NTNU, Norwegia
- Krogstie i Solvsberg (2003). Inżynieria systemów informatycznych: modelowanie koncepcyjne w perspektywie jakości . Instytut Informatyki i Nauk Informacyjnych.\
- Anna Gunhild Nysetvold i John Krogstie (2005). „Ocena języków modelowania przetwarzania biznesowego przy użyciu ogólnych ram jakości” . Instytut Informatyki i Nauk Informacyjnych.