W 2011 roku jeden z wpisów o łamaniu zasad kończyłem słowami:

Łamanie zasad UML nie jest dobrym pomysłem. Od lat sprawdza mi się porzekadło, że ?jeżeli czegoś nie potrafimy narysować to znaczy, że jeszcze tego nie rozumiemy?. Maskowanie braku wiedzy o tym ?jak?, kolejnymi nowymi symbolami to tylko ?sprzedawanie? problemu dalej, bo jaki problem projektowy rozwiązuje stworzenie aktora Czas?.  Analityk to ktoś, kto analizuje by ?zrozumieć?? a nie zapisuje jak dyktafon słowa np. zamawiającego.1

Dwa tygodnie temu pisałem:

…w ramach zająć jakie prowadzę na uczelni (studia niestacjonarne) są wykłady i laboratoria z obszaru analiz i modelowania z użyciem sformalizowanych notacji (UML, BPMN, SBVR). To znaczy, że mam co roku kontakt co najmniej z kilkudziesięcioma osobami zajmującymi się praktycznym stosowaniem tych notacji. W ogromnej większości przypadków dostrzegam ten sam problem: brak wiedzy i zrozumienia pojęcia abstrakcji i umiejętności modelowania warstwy abstrakcyjnej analizowanego podmiotu2.

Formalizm

Jak już wspominałem przy okazji pisania o UML 2.5, formalizm jest podstawą dowodu poprawności tworzonych modeli. Jest podstawą spójności i niesprzeczności całej konstrukcji, jaką jest model określonej rzeczywistości w przypadku analizy, lub model przyszłej implementacji w przypadku projektowania.

Każda sformalizowana notacja to zestaw elementów mających określone nazwy i zasady łączenia (semantyka i syntaktyka). Notacja to określony metamodel a konkretne diagramy  – modele, to instancje tego metamodelu. Metamodel to nic innego jak teoria mówiąca, że dany system pojęć w sposób zupełny opisuje rzeczywistość z określonej perspektywy (w określonym paradygmacie), a to znaczy, że dana konkretna rzeczywistość da się wyrazić w postaci modelu wykonanego z użyciem tej notacji zgodnie z założonym paradygmatem.

Cztery poziomy abstrakcji w MOF.

Powyższe opisano na stronie OMG3 w postaci specyfikacji MOF4 (patrz rozdz. 8. Language Formalism) stanowiącej fundament pozostałych notacji na OMG.org.

Generalnie notacja to zbiór elementów strukturalnych oraz przestrzeń pojęciowa (pojęcia, ich definicje i syntaktyka), z której czerpiemy nazwy dla elementów struktury.

Notacje konkretne (UML, BPMN, SysML, itp.) to tak zwane profile, czyli dodatkowe systemy pojęciowe rozszerzające profil standardowy MOF.

Profil MOF jest bardzo ubogi, to w końcu fundament pozostałych notacji (nazywany także meta-metamodel).  Generalnie MOF operuje pojęciem elementu struktury, każdy element jest klasyfikatorem opisywanym z pomocą jego cech i operacji. Instancjami klas są obiekty (lub instancje klas metamodeli). Elementy (instancje) są tworzone przez tak zwane fabryki, są one także elementami j.w. Wszystkie elementy struktury modeli mają identyfikatory, są nimi unikalne nazwy. Źródłem nazw jest model pojęciowy zwany przestrzenią pojęciową (przestrzeń nazw, namespace). Konkretne notacje i profile mają swoje dedykowane dziedzinowe przestrzenie nazw.  Specyfikacja każdej notacji opartej na MOF zawiera określony zestaw pojęć, z których część ma postać graficzną (notacja), część postać tak zwanych stereotypów a część postać nazw parametrów. Zestaw ten uzupełniają tak zwane słowa kluczowe, mające narzucone znaczenie. Pojęcia te są zastrzeżone, są integralną częścią notacji i co do zasady nie wolno ich re-definiować.  W UML opisano to tak5:

22 Standard Profile
22.1 Summary
The Standard Profile specifies a set of predefined standard stereotypes. A conforming tool shall support all of the stereotypes in the Standard Profile. […]
Annex C: Keywords
(normative)
UML keywords are reserved words that are an integral part of the UML notation and normally appear as text annotations attached to a UML graphic element or as part of a text line in a UML diagram. In UML, keywords are used for three different purposes:
1 To distinguish a particular UML concept (metaclass) from others sharing the same general graphical form. For instance, the ?interface? keyword in the header box of a classifier rectangle is used to distinguish an Interface from other kinds of Classifiers.
2 To distinguish a particular kind of relationship between UML concepts (meta-association) from other relationships sharing the same general graphical form. For example, dashed lines between elements are used for a number of different relationships, including Dependencies, relationships between UseCases and an extending UseCases, and so on.
3 To specify the value of some modifier attached to a UML concept (meta-attribute value). Thus, the keyword ?singleExecution? appearing within an Activity signifies that the ?isSingleExecution? attribute of that Activity is true.
Keywords are always enclosed in guillemets (?keyword?), which serve as visual cues to more readily distinguish when
a keyword is being used.

To właśnie słowa kluczowe (ich dodawanie zgodnie z zasadami tworzenie przestrzeni pojęciowych) są narzędziem rozszerzania notacji, metodą jest stosowanie stereotypów a całość nazywa się profilowaniem i polega na tworzeniu dodatkowych typów dla już istniejących pojęć. Nowym stereotypom można nadawać postać graficzną (notacja) pod warunkiem, że symbole te nie będą kształtem kolidowały z już używanymi (patrz: semiotyka).

Profilowanie

Profil to zestaw typów pojęć (stereotypów) i związków między (struktur) rozszerzających już dostępne w danej notacji pojęcia i elementy, metodą budowania ich dodatkowych taksonomii (specjalizacje) a nie re-definiowania ich!

Mechanizm rozszerzania opisano wprost np. w notacji BPMN w rozdz 2.2.3 Visual Appearance6:

The following extensions to a BPMN Diagram are permitted:
? New markers or indicators MAY be added to the specified graphical elements. These markers or indicators could be used to highlight a specific attribute of a BPMN element or to represent a new subtype of the corresponding concept.
? A new shape representing a kind of Artifact MAY be added to a Diagram, but the new Artifact shape SHALL NOT conflict with the shape specified for any other BPMN element or marker.
? Graphical elements MAY be colored, and the coloring MAY have specified semantics that extend the information conveyed by the element as specified in this International Standard.
? The line style of a graphical element MAY be changed, but that change SHALL NOT conflict with any other line style REQUIRED by this International Standard.
? An extension SHALL NOT change the specified shape of a defined graphical element or marker (e.g., changing a square into a triangle, or changing rounded corners into squared corners, etc.).

Czyli: można dodawać podtypy pojęć istniejących, należy zagwarantować semiotyczną poprawność ich ewentualnych reprezentacji graficznych: nie mogą one ani graficznie ani pojęciowo kolidować z dotychczasowymi elementami. Robi się to z pomocą tak zwanego diagramu profilu UML. W dobrych narzędziach CASE można profilować, z użyciem diagramu profilu i stereotypów, każdą notację. Nie wolno niczego re-definiować!

Te zasady pozwalają na zachowanie jednoznaczności, wymienialności wykonanych modeli  pomiędzy różnymi narzędziami CASE, jednoznaczność treści w całym procesie analizy i projektowania. Umieszczenie na początku dokumentacji (lub w załącznikach) własnego profilu, jest elementem tej dokumentacji i wręcz obowiązkiem jej autora. To zapewnia zrozumiałość i jednoznaczność. Zwrócę uwagę, że notacja BPMN jest także oparta na specyfikacji MOF i UML (profil BPMN jest dokumentowany w UML) i można ją rozszerzać z użyciem stereotypów.

Zakończenie

W tym miejscu niestety muszę stwierdzić, że wiele osób nie przestrzega tych zasad, co jest niczym innym jak niepoprawnym stosowaniem tych notacji. Stosowanie własnych konwencji, niezgodnych z metamodelem, przede wszystkim pozbawia nas możliwości kontroli poprawności modeli, a odbiorców możliwości jednoznacznej interpretacji.

Rozczarowuje więc nieco treść publikacji:

Restrykcyjne pilnowanie składni jest dobre bo utrzymuje model w standardzie. Nie mniej jednak w wielu firmach metamodel jest wypadkową notacji, przyzwyczajeń oraz złożoności danej organizacji. To sprawia, że modele nie trzymają się ortodoksyjnie standardu. To nie jest objaw braku wiedzy. To wynik świadomego dostosowania standardu do potrzeb firmy.7

Z pierwszym zdaniem cytatu wypada się zgodzić, ale tylko z pierwszym. Metamodel – poprawnie wykonany – z zasady nie może być niespójny i nie może być jakąkolwiek wypadkową czy kompromisem. Przyzwyczajenia do łamania zasad stosowania notacji w organizacji są tak samo szkodliwe jak łamanie zasad ruchu drogowego: ktoś taki staje się nieprzewidywalny. Czy to objaw braku wiedzy? Nie wiem, ale na pewno objaw braku odpowiedzialności i braku profesjonalizmu.

Dostosowanie notacji do potrzeb danej organizacji, czy wręcz dziedziny, to częsta potrzeba i dlatego profilowanie jest integralną częścią każdej notacji. Łamanie zasad zawsze będzie tylko łamaniem zasad, jeżeli robi to nieprofesjonalny pracownik danej organizacji, można mu to wybaczyć, jednak nie powinien tego robić ktoś, kogo przedmiotem pracy jest profesjonalna usługa. Owszem, klienci nie raz naciskają i wtedy analityk, dobry jak kierowca, albo mimo to stosuje zasady i wskazuje dlaczego, albo rozstaje się z pasażerem …

Niestety wiele audytów, jakie wykonuję, pokazuje, że łamanie zasad nie jest takie rzadkie, i prędzej czy później stwarza poważne kłopoty, bo nawet jeżeli autor diagramu przymknie na coś oczy, to na pewno nie zrobi tego żaden kompilator, ani biegły w sądzie, gdyby doszło do sporu o jakość dokumentów i jej wpływ na krach projektu.

Dlatego nie należy wyłączać pilnowania składni…  Jeżeli narzędzie ma wady w tym obszarze, należy zmienić narzędzie… lub samemu wejść w rolę kontrolera składni.

__________________
1.
Czas nie jest aktorem systemu. IT-Consulting.pl. https://it-consulting.pl//2011/11/27/czas-nie-jest-aktorem-dla-systemu/. Published November 27, 2011. Accessed July 2, 2018.
2.
Żeliński J. BPMN… IT-Consulting.pl. https://it-consulting.pl//2018/06/18/mit-o-notacji-bpmn/. Published June 2, 2018. Accessed July 2, 2018.
3.
OMG.org. OMG. https://www.omg.org/. Published July 2, 2018. Accessed July 2, 2018.
4.
MOF. OMG. https://www.omg.org/spec/MOF. Published November 1, 2016. Accessed July 2, 2018.
5.
OMG? Unified Modeling Language? (OMG UML?) Version 2.5.1.
6.
Business Process Model and Notation (BPMN) Version 2.0.2.
7.
Jak wyłączyć zasady pilnowania składni połączeń w Enterprise Architect 14? Michał Wolski. . Published June 25, 2018. Accessed July 2, 2018.

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 2 komentarzy

  1. Michał Wolski

    Jarku świetny tekst. Podpisuję się pod nim obiema rękami. Mój wpis na blogu był bardzo techniczny i odnosił się do ułomności ostatniego wydania Enterprise Architect, gdzie zaszyto niekompletny metamodel.
    Wskazywałem tylko drogę wyjścia z trudnej sytuacji, gdy po aktualizacji nie można było zrobić czegoś co jest w standardzie. Najbardziej bolało mnie to w ArchiMate, co też opisałem ?.

    Wracając do Twojej wypowiedzi. Tak samo jak Ty uważam, że każde odejście od standardu generuje problemy porównywalne z łamaniem zasad ruchu drogowego. Wiem też, że czasem tak samo, jak przewożąc ładunki ponadnormatywne (domy, elementy wiatraków, czołgi itp.) łamie się, w ustalony sposób, zasady ruchu drogowego. Podobnie w firmach stosuje się różne rozwiązania rozszerzające notację. Popieram te działania, które są wykonane w ustalony, nieprzypadkowy i niechaotyczny sposób.

    W moim przekonaniu zaproponowane przez Ciebie profilowanie to najlepsza droga. Spisanie zasad modelowania w danej organizacji, w rozumieniu czego i jak używamy też jest pomocne , choć czasem trochę “rozszerza” standard. Takie właśnie postępowanie rozumiem jako świadome dostosowania (rozszerzanie) standardu do potrzeb firmy. Pozdrawiam serdecznie Ciebie i Twoich Czytelników :-). Michał.

    1. Jaroslaw Zelinski

      Cytowanie Twojego tekstu było przykładem tego, ze klienci naciskają, co potwierdzasz ;), myślę, że co do zasad obaj się zgadzamy :). Pozdrawiam 🙂

Dodaj komentarz

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