Month: March 2024

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 [zotpressInText item=”{5085975:Y86V5TMQ}”].

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 [zotpressInText item=”{5085975:E9MDNWLY}”] 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

[zotpressInTextBib style=”apa” sortby=”author” sort=”ASC”]

Wprowadzenie

Najczęściej w toku analiz posługujemy się pojęciem model, rzadziej mechanizm. Rzecz w tym, że pojęcie mechanizm pojawia się gdy chcemy coś wyjaśnić, np. “mechanizm generowania upustu na fakturze”.

Ale tu uwaga! Model (schematy blokowe, wzory itp.) to dokumentacja, opis chroniony prawem autorskim. Mechanizm to to, co zrozumieliśmy czytając te dokumentację (model), bo mechanizm to chronione know-how. Treść wniosku do Urzędu Patentowego to model (opis), ale to co patentujemy to wymyślony/opracowany mechanizm.

Mechanizm a model

Mechanizm [zotpressInText item=”{5085975:LKGQJ85W}”] i model [zotpressInText item=”{5085975:XQ6DNBN8}”] w nauce to bliskie sobie pojęcia, np. tak opisywane:

Modelowanie polega na abstrahowaniu od szczegółów i stworzeniu idealizacji tak, by skupić się na istocie danej rzeczy. Dobry model opisuje wyłącznie mechanizm. […] Glennan argumentował, że mechanizmy są sekretnym połączeniem, którego Hume szukał między przyczyną a skutkiem: “Mechanizm zachowania jest złożonym systemem, który wytwarza to zachowanie poprzez interakcję wielu części, gdzie interakcję między częściami można scharakteryzować za pomocą bezpośrednich, niezmiennych uogólnień odnoszących się do zmian”

[zotpressInText item=”{5085975:LKGQJ85W}”]

Popatrzmy jak te pojęcia definiuje oficjalny Słownik Języka Polskiego:

mechanizm «sposób, w jaki coś powstaje, przebiega lub działa»
model «konstrukcja, schemat lub opis ukazujący działanie, budowę, cechy, zależności jakiegoś zjawiska lub obiektu»

Słownik Języka Polskiego (https://sjp.pwn.pl/)

Jak widać bardzo podobnie. Pojęcie diagram jest definiowane w literaturze anglojęzycznej:

diagram: prosty plan przedstawiający maszynę, system lub pomysł itp., często rysowany w celu wyjaśnienia, jak to działa

(https://dictionary.cambridge.org/)

W literaturze naukowej (anglojęzyczna) pojęcie modelowania jest definiowane jako:

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

Graficznie ten model pojęciowy mozna to zobrazować jako diagram:

Pojęcia: diagram, model i mechanizm oraz regulujące je obszary prawa (opr. własne autora)

Pozostaje kwestia pojęć: zjawisko (ktore chcemy opisać, wyjaśnić) oraz jego wyjaśnienie. Dane zjawisko to określone, zaobserwowane fakty. Najczęściej opisujemy jest literalnie lub tworzymy ich statystykę. Craver tak obrazuje związek miedzy zjawiskiem a mechanizmem jego powstawania:

Modelowanie to tworzenie opisu mechanizmu wyjaśniającego obserwowane fakty. Fakty to wiedza pozyskana od ekspertów dziedzinowych, to np. dane pomiarowe (źródłowe) i ich statystyka, dają one wyłącznie informacje o występowaniu określonych zjawisk, statystyki jako takie nie stanowią sobą żadnego modelu ani wyjaśnienia obserwowanego zjawiska. Statystyka może wskazać prawidłowości w obserwowalnych faktach związanych z badanym zjawiskiem (Phenomenon) ale statystyka nie wyjaśnia mechanizmu ich powstania (Mechanism). Zwraca na t uwagę Cravier na diagramie Wizualna reprezentacja mechanizmu (Craver & Tabery, 2019). Teoria wyjaśniająca to idealizacja, opis mechanizmu powstawiania obserwowanych faktów (Weisberg, 2007). Metanalizy nie podważają w żadnym stopniu wyników wykonanych badań, są one - ich wyniki - z zasady traktowane jako fakty. Metaanaliza ma za cel jedynie zbudować nadrzędny model wyjaśniający, którego celem jest wyłącznie opisanie (a czasami odkrycie) mechanizmu danego zjawiska. Podstawą tworzenia modelu dedukcyjnego jest idealizacja rozumiana jako model zbudowany z kluczowych dla badanego zjawiska faktów i elementów (Matthews, 2004).
[zotpressInText item=”{5085975:D54YCRZ2}”]

Górna elipsa to nasze obserwacje: bodziec i skutek i elipsa to zapis faktów, ich statystyka. Statystyka jednak nie jest modelem, jest tylko statyką, zbirem danych o faktach, nie stanowi ona żadnego wyjaśnienia ich powstawania.

Dolna elipsa to mechanizm wyjaśniający powstawanie, inicjowanego bodźcami, zaobserwowanego efektu (faktów zebranych w statystyce). Jest to wyjaśnienie tego jak efekt (fakty, skutek) powstaje. To mechanizm powstania tego co obserwujemy. Ten mechanizm (wyjaśnienie) obrazujemy (można wyrazić jako) jako model, który można wyrazić np. schematem blokowym.

W nauce mówimy, że mechanizm to wyjaśnienie wrażone jako model “czegoś”:

Jak na razie było bardzo “abstrakcyjnie”, więc pokażmy jakieś przykłady.

Przykłady

Teoria Kopernika

Przykładem, który zapewne zna każdy jest Teoria Kopernika. Poniższy diagram pokazuje: po lewej u góry zapis obserwacji Nieba niesłusznie często nazywany modelem (statystycznym). To tak zwane epicykle: zobrazowanie obserwacji dróg planet i gwiazd na niebie, zaobserwowane z Ziemi. Po prawej na dole heliocentryczny układ słoneczny, ten diagram to model, który wyjaśnia mechanizm powstawania epicykli, czyli pętli jakie wykonują na niebie obserwowane gwiazdy i planety.

Regulator Watt’a

Inny przykład: regulator Watta. Poniżej model tego regulator:

Oryginalny schemat, regulatora Watt’a opisujący jego konstrukcję.

Opis mechanizmu we wniosku patentowym był tekstem podobnym do tego:

Jeśli maszyna jest w spoczynku to ciężarki (kulki) są na samym dole, a przepustnica jest całkowicie otwarta. Jeśli maszyna parowa zacznie pracować. Obracające się koło maszyny parowej połączone jest z regulatorem obrotów – kulki zaczynają się obracać. Na kulki regulatora działają dwie siły. Siła grawitacji przyciągająca kulki pionowo w dół oraz siła odśrodkowa odciągająca kulki na zewnątrz, co przy takiej konstrukcji regulatora powoduje unoszenie się kulek ku górze. Unoszące się kulki powodowały zamykanie się przepustnicy, a to skutkowało mniejszą ilością pary dostarczanej do maszyny parowej. Maszyna zwalniała, malała więc siła odśrodkowa, kulki opadały w dół więc przepustnica się otwierała i tym samym dostarczała więcej pary do maszyny.

https://pl.wikipedia.org/wiki/Regulator_od%C5%9Brodkowy_obrot%C3%B3w

Schemat opisujący ten regulator:

Schemat opisujący mechanizm działania Regulatora Watt’a

Mechanizm wyjaśniający działanie tego regulatora to systemu z ujemnym sprzężeniem zwrotnym:

Ujemne sprzężenie zwrotne jako mechanizm wyjaśniający działanie regulatora Watt’a.

Regulator Watt’a to właśnie ujemne sprzężenie zwrotne. Na powyższym diagramie PROCES to maszyna parowa, wielkością na wejściu jest para wodna mająca określone ciśnienie, wielkością na wyjściu jest prędkość obrotowa wału napędowego maszyny parowej. Wzrost prędkości obrotowej wału powoduje zmniejszenie ciśnienia pary zasilającej maszynę parową, co z kolei powoduje zmniejszenie prędkości obrotowej wału i tym samym otwarcie zaworu pary na wejściu i ponowny wzrost prędkości obrotowej. Zjawisko doprowadzi do ustalonej (ustabilizowanej) prędkości wału z małymi jej wahaniami.

Zegar

Typowy analogowy zegar (jego tarcza) wiszący na niejednej ścianie w domu (lub zamontowany na niejednej wieży) wygląda jak poniżej:

Tarcza zegara

Możliwa konstrukcja takiego zegara na wieży:

Przykładowa konstrukcja odwzorowująca mechanizm zegarowy

Mechanizm pomiaru czasu jaki stosujemy, wyjaśniający wskazanie na tarczy zegarowej, stanowiący podstawę konstruowania zegarów, wyrażony jako model w notacji UML:

Model wyrażający mechanizm pomiaru czasu

Mechanizm działania maszyny

(źr.:

Powyżej po lewej diagram opisujący mechanizm działania sortownika, jest to model działania tego sortownika. Po prawej stronie sortownik, który jest skomplikowanym urządzeniem, realizującym mechanizm działania opisany na diagramie po lewej. Gdyby to urządzenie było patentowane, wniosek patentowy zawierał by schemat po lewej a nie rysunki konstrukcyjne maszyny po prawej.

Model pojęciowy

Wiedzę dziedzinową modelujemy jako Słownik pojęciowy, ten zaś można wyrazić graficznie w postaci taksonomii i związków syntaktycznych. Architektura kodu aplikacji wyrażona graficznie to jej model, dodanie do mniej diagramów opisujacych np. scenariusze przypadków użycia to także element tego modelu. Całość jednak opisuje mechanizm realizacji wymagań funkcjonalnych.

Poniżej po lewej model pojęciowy, on ne jest jednak mechanizmem realizacji wymagań funkcjonalnych. Po prawej model (fragment) architektury aplikacji, uzupełniony o diagram sekwencji był by modelem opisującym mechanizm realizacji określonej funkcjonalności.

[zotpressInText item=”{5085975:29NZ6BRG}”]

Prawo autorskie

Jednym zdaniem: powyższe obrazki, jako grafikę, chroni prawo autorskie.

Podsumowanie

Jak widać czasami łatwo pomylić pojęcia model i mechanizm, można jednak powiedzieć, że model to schemat obrazujący coś, zaś mechanizm to wyjaśnienie zjawiska (tego jak coś powstaje jak działa). Mechanizm można zobrazować w postaci modelu. Jeżeli dążymy by model był idealizacją, to wtedy właśnie:

Modelowanie polega na abstrahowaniu od szczegółów i stworzeniu idealizacji tak, by skupić się na istocie danej rzeczy. Dobry model opisuje wyłącznie mechanizm.

[zotpressInText item=”{5085975:LKGQJ85W}”]

Dla “zabawy”, w ramach ćwiczeń proponuję studiowanie tych opisówpatentów:
– jest schemat
– który jest modelem
– opatentowanego mechanizmu

https://www.wipo.int/patents/en/2023-patent-picks.html

Źródła

[zotpressInTextBib style=”apa” sort=”ASC”]