Wprowadzenie

Wśród wielu stron WWW jest także ta: Modeling Languages (źródło poniżej). Tym razem autorka w tekście “On comparing modelling languages”, porównuje kilka wybranych, jak je nazwała, “języków modelowania”. Autorka nazywa modelem urządzenia diagramy map myśli i modele pojęciowe, co jest moim zdaniem złym podejściem. Teza, że ontologia to projekt oprogramowania też nie wytrzymuje prostych testów.

Modelowanie

Najpierw sprawdźmy co oznaczają w literaturze pojęcia model i modelowanie:

modelować coś, aby stworzyć kopię lub opis działania, sytuacji itp., aby móc je przeanalizować przed przystąpieniem do prawdziwego działania.

https://www.oxfordlearnersdictionaries.com/definition/english/model_2?q=modeling

W poprzednim artykule na powiązany temat pisałem:

Graficznie ten model poję­cio­wy mozna zobra­zo­wać jako diagram: Pojęcia: dia­gram, model i mecha­nizm oraz regu­lu­ją­ce je obsza­ry pra­wa (opr. wła­sne autora)

żr.: Mechanizm działania vs model systemu vs diagram – Jarosław Żeliński IT-Consulting

W komentowanym tekście skupię się na poniższej grafice:

Figure 1. Two example diagrams about espresso machines: a mind map and a conceptual data model. If you have no idea about what or how to compare yet: before reading about the comparisons, can you describe differences between these two examples?

Source: On comparing models

Jak zawsze, warto uporządkować znaczenie pojęć używanych w opracowaniu:

konceptualizacja: stworzyć w umyśle wyobrażenie o czymś
koncepcja: idea lub zasada związana z czymś abstrakcyjnym
pojęcie: słowo lub wyrażenie używane jako nazwa czegoś, zwłaszcza związane z określonym typem języka
model pojęciowy (the conceptual model): jest reprezentacją systemu, zjawiska lub problemu, który pokazuje kluczowe pojęcia, zmienne, relacje i założenia. Może być wyrażony za pomocą słów, diagramów lub innych form i pomaga kierować pytaniami badawczymi, hipotezami, metodami i analizą
ontologia: lista pojęć i kategorii w obszarze tematycznym, która pokazuje relacje między nimi

na podstawie https://www.oxfordlearnersdictionaries.com/

Jak widać, model pojęciowy to sposób wyrażenia ontologii. To bardzo ważne w tym, i nie tylko tym tekście.

Poniżej tak zwana mapa myśli, często stosowane narzędzie do notowania wyników burz mózgów

Powyższy diagram nic nie mówi o tym jak działa to urządzenie i jak je skonstruować.

Automatyczny ekspres do kawy

Realnie taki express wygląda tak:

Zdjęcie realnego urządzenia bez obudowy (https://coffeecave.pl/blog/blog-1/z-czego-sklada-sie-i-jak-zbudowany-jest-ekspres-do-kawy)

Schemat blokowy opisujący działanie ekspresu do kawy:

Mechanizm działania (https://www.elektroda.pl/rtvforum/topic3786108.html)

Elementy z jakich zbudowany jest zaparzacz kawy:

Lista komponentów (https://north.pl/baza-porad/budowa-ekspresu-do-kawy/)

Powyższe to jedno zdjęcie i dwa diagramy. Zdjęcie obrazuje realne urządzenie. Schematy pokazują odpowiednio: mechanizm działania oraz części składowe realnego urządzenia.

Prosze zwrócić uwagę, że każdy z tych obrazów ma inny cel. Każda z tych grafik, jako określona forma wyrażenia pewnej treści, to przedmiot prawa autorskiego. Mechanizm działania, wyrażony jako model, z pomocą diagramu jak wyżej, może być np. przedmiotem patentu, jednak hipotetyczny wniosek patentowy nie mógłby zawierać ani zdjęcia ani listy elementów określonej konstrukcji (wcielenie wynalazku w życie). Musiał by zawierać opis mechanizmu działania wyrażony np. w postaci jak powyżej .

To co nazwano “software design”

“Conceptual data model” (żr.: On comparing models)

Czym jest powyższy model? Jeżeli, jak uważa autorka jet to “koncepcyjny model danych”, to spodziewam się atrybutów każdego z tych pojęć. Powyższy diagram nie opisuje tego co można zapisać w jakiejkolwiek bazie danych (związek zawierania sie generalizacja). Odtworzenie tej konstrukcji w kodzie z pomocą języka takiego jak C++/C# czy Java jest możliwe, o ile elementy na tym diagramie będą zawierały operacje pozwalające skorzystać z tej konstrukcji, pozostaje pytanie jak. Owszem jest to możliwe ale bardzo trudne i skomplikowane (prostym testem będzie próba narysowania diagramu sekwencji dla tej architektury), dlatego powyższy schemat, odtworzony w kodzie, nie będzie symulatorem takiego ekspresu, będzie bardzo kosztowną atrapą.

Model ekspresu

Przypomnijmy schemat:

Pytanie: który z powyższych diagramów opisuje (wyjaśnia) mechanizm działania ekspresu do kawy? Wygląda na to, że żaden. Więc jaki model powinien powstać?

Przyjętym w inżynierii systemów (MBSE) sposobem postępowania jest dwuetapowy proces:

  1. definiowanie typów bloków funkcjonalnych: powstaje Block Definition Diagram,
  2. oraz projektowanie wewnętrznej konstrukcji systemu (tu urządzania), powstaje Internal Block Diagram

Poniżej oba te diagramy:

Block Definition Diagram

Diagram definicji bloków bywa nazywany metamodelem systemu na wzór diagramów klas w UML. Jednak w terminologii notacji SysML to pojęcie nie jest używane. Poniżej model urządzenia:

Internal Block Diagram

Po uzupełnieniu go diagramem aktywności byłby pełnym opisem mechanizmu jego działania. Jedynym miejscem, gdzie mógł by się tu pojawić komputer (i programowanie) jest moduł realizujący wybór receptury i jej wykonanie (sterowanie zaparzaczem).

Kończąc, przyznam, że nie wiem co autorka miała na myśli pisząc, że jej diagram to model danych…

Bibliografia

Jarosław Żeliński

Jarosław Żeliński: autor, badacz i praktyk analizy systemowej organizacji: Od roku 1991 roku, nieprzerwanie, realizuje projekty z zakresu analiz i projektowania systemów, dla urzędów, firm i organizacji. Od 1998 roku prowadzi samodzielne studia i prace badawcze z obszaru analizy systemowej i modelowania (modele jako przedmiot badań: ORCID). Od 2005 roku, jako nieetatowy wykładowca akademicki, prowadzi wykłady i laboratoria (ontologie i modelowanie systemów informacyjnych, aktualnie w Wyższej Szkole Informatyki Stosowanej i Zarządzania pod auspicjami Polskiej Akademii Nauk w Warszawie.) Oświadczenia: moje badania i publikacje nie mają finansowania z zewnątrz, jako ich autor deklaruję brak konfliktu interesów. Prawa autorskie: Zgodnie z art. 25 ust. 1 pkt. 1) lit. b) ustawy o prawie autorskim i prawach pokrewnych zastrzegam, że dalsze rozpowszechnianie artykułów publikowanych w niniejszym serwisie jest zabronione bez indywidualnej zgody autora (patrz Polityki Strony).

Dodaj komentarz

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.