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

Ten post ma jeden komentarz

Dodaj komentarz

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