Tag Archive : analiza pojęciowa

Wprowadzenie

Ukazała się książka Prawo w IT. Praktycznie i po ludzku [zotpressInText item=”{5085975:SDYYERHD}”]. Jako, że profesjonalnie zajmuję się tak zwanym IT, a z prawem dotyczącym IT mam ogromne doświadczenia jako biegły (ale prawnikiem nie jestem), ta książka od razu po wydaniu wylądowała się na moim biurku. Jak tylko zacząłem czytać zapadła decyzja: napisze recenzję. Czytam bardzo dużo, ale recenzuję (tu na blogu) książki bardzo dobre lub bardzo szkodliwe.

Autor książki, Szymon Ciach (profil LinkedIn: “Attorney-at-law | Counsel @Osborne Clarke Poland | IT & Data”.), profil na Cybergov.pl:

Patron medialny książki ITwiz.

Szymon Ciach
Counsel, Kancelaria Osborne Clarke Poland
Prawnik specjalizujący się w obszarze technologii oraz regulacji rynku finansowego. Posiada szerokie doświadczenie w przygotowywaniu i negocjowaniu umów IT (m.in. umowy wdrożeniowe, utrzymania i rozwoju systemów informatycznych, outsourcingu IT), zarówno na rzecz zamawiających, jak i dostawców. Jest ekspertem w zakresie wdrażania usług chmury obliczeniowej oraz outsourcingu IT w sektorze finansowym. Współtworzył standard wdrażania chmury obliczeniowej w bankowości “PolishCloud 2.0”, w roli Koordynatora Grupy Prawnej przy Związku Banków Polskich. Doradza również w budowie nowych modeli biznesowych na styku finansów i technologii (FinTech), w szczególności w zakresie wykorzystania technologii rozproszonego rejestru (DLT, blockchain). Absolwent WPiA Uniwersytetu Jagiellońskiego, członek Okręgowej Izby Radców Prawnych w Warszawie. Rekomendowany prawnik w sektorze TMT w Polsce (Legal 500 EMEA 2023). (https://cybergov.pl/prelegenci/szymon-ciach/)

Kluczowe pojęcia

W rozważaniach o znaczeniach pojęć od wielu lat kluczem jest tak zwany trójkąt semiotyczny, nazywany także trójkątem Ullmanna [zotpressInText item=”{5085975:RSU5DBMZ},{5085975:ZAV7CQ6P}”]. Poniżej wersja tego trójkąta opisana w publikacji Towards a model for grounding semantic composition [zotpressInText item=”{5085975:ESXILXF4}”].

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

Mamy tu pojęcia Concept (ang. pojęcie, myśl, abstrakcja), Symbol (ang. symbol, znak, reprezentacja, litera oraz słowo z nich zbudowane), Thing (ang. określony przedmiot, sprawa, zdarzenie, coś a także coś do zrobienia) [zotpressInText item=”{5085975:D7RVPITQ}”].

Odnosząc się do pojęć z dziedziny information science (pojęcia informatyka czy technologie informatyczne odnoszą się nieprecyzyjnie do tego co literatura naukowa nazywa w j. ang. information science oraz information technology).

Owszem, Słownik Języka Polskiego (SJP) podaje:

informatyka: «nauka o tworzeniu i wykorzystywaniu systemów komputerowych»

informacja 1. «to, co powiedziano lub napisano o kimś lub o czymś, także zakomunikowanie czegoś», 2. «dział informacyjny urzędu, instytucji», 3. «dane przetwarzane przez komputer»

dane 1. «fakty, liczby, na których można się oprzeć w wywodach» 2. «informacje przetwarzane przez komputer»

Tak więc mamy jednak rozróżnienie, które wielu autorów dostrzega [zotpressInText item=”{5085975:S7UN3N7Y}”].

Trójkąt semiotyczny, w odniesieniu do omawianych terminów, można więc przedstawić tak:

Informacja vs dane vs fakty jako odwzorowanie trójkąta Ullmanna (opr. własne autora)

Model pojęciowy omawianej dziedziny:

Model pojęciowy (ontologia) to model pozwalający zbudować i przetestować system pojęciowy. Cechą poprawnego modelu jest wzajemne wykluczanie się definicji pojęć oraz istnienie typów czyli specjalizacji. Definicja pojęcia to klasyfikator a rzeczy, które spełniają tę definicje to zbiór (taki jak w matematyce) [zotpressInText item=”{5085975:7FREZB72}”]. Poprawny dziedzinowy model pojęciowy (przestrzeń nazw) na diagramie Venna [zotpressInText item=”{5085975:A4TSJUQC},{5085975:XTN432ZI}”] byłby modelem, w którym zbiory obiektów (things) są styczne i żadna granica zbioru nie przecina innej. Inną wersją testu poprawności jest prawo wyłączonego środka: “jeżeli coś jest czymś, to nie jest niczym innym” [zotpressInText item=”{5085975:6LD24N2L}”]. Specjalizacja (typ) to podzbiór:

Definicje pojęć z powyższego modelu:

Definicje na podstawie słownika j. polskiego i cytowanej literatury źródłowej

Na tym tle pojęcie technologie informatyczne mają sens, pojęcie technologie informacyjne w zestawieniu z tym, że informacja to jest to co zrozumiał człowiek, dotyczy wyłącznie procesów myślowych, czyli np. procesów wnioskowania czy “liczenia w pamięci”. Potocznie możemy sobie pozwalać na utożsamianie pojęć dane i informacje, ale w opracowaniach eksperckich, czy wręcz naukowych, już nie [zotpressInText item=”{5085975:S7UN3N7Y}”].

Autor pisze, że (str. 22)

“dane reprezentują fakty i same w sobie nie mają znaczenia. Natomiast informacje to dane, które przez interpretacje odbiorcy nabierają znaczenia…”.

Niestety takie podstawienie sprawy jest nielogiczne i pozbawione sensu. Ullmann i Eco [zotpressInText item=”{5085975:RSU5DBMZ},{5085975:ZAV7CQ6P}”] jasno wykazują (trójkąt semiotyczny): dane to utrwalone znakami zapisy, a informacja to jest to co człowiek zrozumiał poznając je. Tak więc fakty (opis tego co zaszło) to informacja dla człowieka i dane jako utrwalone znaki i symbole. Zwracam uwagę, że encyklopedia w języku chińskim to na pewno dane, jednak niosą one informacje wyłącznie dla ludzi znających język chiński.

Jeżeli, jak pisze autor (str. 23), w kontekście prawnym pojęcia dane i informacje są używane jako synonimy to jest kardynalny błąd tych, którzy to czynią. Co ciekawe w następnym akapicie sam autor pisze, że konieczne jest “odróżnienie informacji od danych”.

Autor wplata znienacka pojęcie przepływu danych, ale nie wyjaśnia co ma to pojęcie wspólnego z danymi, ich ochroną i przetwarzaniem. Fakt zbierania danych osobowych nie jest przepływem danych, a co najwyżej ich utrwalaniem: ktoś informacje o sobie zapisuje (utrwala) w określonym formularzu na papierze lub ekranie komputera. Dostęp (człowieka) do danych to także nie jest przepływ danych. O przepływie danych możemy mówić wyłącznie wtedy, gdy są kopiowane z jednego nośnika na innych nośnik. I nie należy tego mylić ani utożsamiać z przepływem informacji (patrz encyklopedia w języku chińskim).

Stos technologiczny

Ten aspekt systemu informatycznego opisałem w artykule Sprzęt, środowisko, aplikacja, mechanizm. Tu zwrócę jedynie uwagę na kluczowe elementy. Autor prezentuje taką tabelę:

Autor definiuje “stos technologiczny” jako

sposób na opisanie opisanie zestawu technologii i narzędzi informatycznych mających jakiś wspólny mianownik

Autor nie podaje źródła tej kuriozalnej definicji. Najczęściej spotykaną definicją jest (trudno wskazać autora, Google pokazuje dziesiątki stron na to hasło):

stos technologiczny to zestaw elementów budujących stronę internetową lub aplikację. Są to język programowania, frameworki, systemy baz danych, biblioteki front-end i back-end oraz aplikacje połączone za pośrednictwem interfejsów API.

Po pierwsze stos technologiczny to nie aplikacja, ale ona oraz jej środowisko. Generalnie ten stos to sprzęt, sterowniki i szeroko pojęte oprogramowanie:

Obrazek posiada pusty atrybut alt; plik o nazwie image-2.png
[zotpressInText item=”{5085975:3T3PUJZL}”]

Jednak na użytek ochrony wartości intelektualnych w postaci oprogramowania (“Software”) dzielimy je (oprogramowanie) na odrębne aplikacje (SJP, aplikacja: komputerowy program użytkowy). Dlatego to co nazywamy stosem technologicznym przyjmuje bardziej skomplikowaną postać, bo pokazany tu Software to “frameworki, systemy baz danych, biblioteki front-end i back-end oraz aplikacje połączone za pośrednictwem interfejsów API”, i nie zapominajmy o systemie operacyjnym. O potrzebie separacji kodu aplikacji pisałem też w artykule Kastomizacja…

Duża nieprawda to dane jako osobna warstwa i to że są na szczycie tego stosu, bo jest odwrotnie: dane są na nośnikach a te, to hardware. Po drugie system operacyjny, oraz każda aplikacja, zarządza swoimi danymi niezależnie, więc nie są to “jedne dane”.

Autor stawia tezę, że dane to “podstawowy zasób świata IT” a zapomniał, że to za co płacimy najwięcej to aplikacje (np. system ERP) a nie dane. Po drugie często same dane na nośnikach są niemalże bezwartościowe bez logiki (procedury i algorytmy) ich przetwarzania.

Jak widać, dane są zawsze “na dnie” i NIGDY na szczycie “stosu”. Autor na str. 29 pisze, że pojęcie aplikacja stosuje się zamiennie z pojęciem system informatyczny co jest nieprawdą (patrz wyżej, model pojęciowy i stos technologiczny).

Na stronie 44 autor pisze o “środowisku informatycznym”. Najwyraźniej zapomniał czym jest stos technologiczny: TO jest właśnie to środowisko.

Nie miałem tu ambicji i nie było moim celem punktowanie wszystkich błędów, generalnie moim zdaniem cały rozdział Wprowadzenie to pasmo nieprawdy lub złych uproszczeń. Tytuł tego rozdziału to “Świat IT okiem prawnika”, jeżeli to prawda (tak prawnik rozumie IT) to jest to dowód na to, by prawnicy pozostali przy prawie, a inne informacje pozyskiwali, tak jak Sąd: od biegłych.

Umowy IT

Autor wprowadza pojęcie “Umowy IT” i z jednej strony sam stwierdza, że to umowy których przedmiotem są “technologie informacyjne”, zapominając że sam wskazywał na różnice między systemami informacyjnymi a informatycznymi. Pamiętajmy, że “technologią informacyjną” jest także system znaków drogowych na drogach…

Nie przypadkiem na całym świecie mamy prawo karne i cywilne. Sprzęt komputerowy i oprogramowanie to jedne z wielu możliwych przedmiotów umowy cywilno-prawnej. Pamiętajmy, że prawo autorskie i tajemnica przedsiębiorstwa dotyczy szeroko-pojetej treści. To czy jest nią kod źródłowy czy treść trylogii Władca Pierścieni nie ma żadnego znaczenia. Przedmiot zamówienia to (powinna być) treść załącznika do umowy i nie jest to praca dla prawnika (za wyjątkiem umowy z prawnikiem na usługę prawniczą).

Autor pisze, że programy komputerowe podlegają ochronie jak utwory literackie. Owszem, jeżeli ten kod rozumiemy jako tekst (znaki). Niestety mamy także pojęcie “informacja”, np. o mechanizmie naliczania upustów w programie lojalnościowym, i tu ochronie (tajemnica przedsiębiorstwa) podlega mechanizm naliczania upustu, bez względu na formę jego wyrażenia (o ile jest zrozumiała dla czytelnika), a mogą to być schematy blokowe i wzory matematyczne (patrz artykuł Prawo autorskie i wartości niematerialne – analiza systemowa oraz Ochrona wartości intelektualnych i know-how w organizacji – Poradnik). Ten mechanizm można zaimplementować w dowolnym języku oprogramowania, więc będą to “różne teksty o tym samym”. Co to znaczy? To znaczy, że TREŚĆ zeznania świadka morderstwa, jest tą samą treścią bez względu na to czy została utrwalona (dane) w języku francuskim czy języku Aborygenów.

Autor wprowadza pojęcie “Umowy wdrożeniowej”. Nie mam pojęcia po co, skoro to czy dana praca jest wdrożeniem czegokolwiek czy nie jest, jest skutkiem przedmiotu pracy a nie jej nazwy.

Autor pisze o modelu kaskadowym ale opisał ten model jak za czasów komputerów mainframe z lat 70tych ubiegłego wieku: każdy etap dotyczy całego systemu, co w dobie systemów zintegrowanych i komponentowych po prostu nie jest prawdą (patrz artykuł Integracja systemów ERP jako źródło przewagi rynkowej).

W rozdziale Umowy na inne usługi IT autor napisał (str. 195), że “Umowa na usługi programistyczne to najprostsza prawna forma współpracy w zakresie wytwarzania lub rozwoju oprogramowania”. Jak to przeczytałem, to pomyślałem od razu o prawach autorskich, o których autor pisał wcześniej, o różnych formach wyrażenia oprogramowania, o tym, że mamy licencje i przekazanie praw majątkowych, o tym, że stos technologiczny to aplikacja i biblioteki. Usługi programistyczne, a szczególnie ich produkt, to – patrząc na mediacje i spory w sądach – jedna z najtrudniejszych dziedzin w IT i w prawie. Kastomizacja systemu ERP czy dedykowane oprogramowanie napisane z użyciem określonego języka programowania i jego bibliotek, to labirynt. Gdy czytam jak prawnik pisze, że to “najprostsza umowa” to krew mi zamarza.

Podsumowanie

Opisałem wybrane, “ciekawsze” w moim subiektywnym odczuciu, elementy tej książki. Jednak cała ta książka, poza treściami stricte dotyczącymi prawa (a takich jest tam bardzo mało) spowodowała, że czytając tę książkę czułem się jak bym czytał książkę dobrego aktora piszącego swoje wyobrażenia o stolarstwie, bo “scena to deski”.

Opisanie wszystkich wad tej książki zajęło by wiele czasu i stron tekstu, bo niemalże każdy jej rozdział zawiera treści wymagające skomentowania lub wręcz wadliwe. Dlatego z uwagi na charakter i objętość bloga (staram się czas potrzebny na przeczytanie jednego postu nie przekraczał 20 minut) ograniczyłem się kilku wybranych wad, które w moich czynią tę książkę nieprzydatną dla osoby poznającej branżę, a osoba mająca stosowną wiedzę zareaguje podobnie jak ja: odłoży i nie wróci do niej.

Jako osoba, która widziała niejedno nieszczęście wdrożeniowe, nie tylko jako biegły w sądzie, zawsze będę powtarzał: prawnik, który projektuje systemy IT nigdy, nie będzie odpowiadał za ich nieudane wdrożenia, bo nawet gdy na etapie negocjacji umowy ma coś do powiedzenia, to Sąd nigdy nie powoła prawnika jako biegłego w sporze o przedmiot wdrożenia IT. Szanowni Państwo, pamiętajcie o tym, bo to co ja widzę w umowach i w dokumentach sądowych to na prawdę dramat.

A moja rekomendacja? Cóż, odradzam tę książkę prawnikom, korzystając z niej zrobią krzywdę swoim klientom. Prawnikom polecam raczej  Logika dla prawników [zotpressInText item=”{5085975:KVQS3HXD}”]. Branża IT? To tym bardziej nie jest książka dla Was.

Polecam także artykuł Wzorcowe klauzule w umowach IT oraz Przed Tobą wdrożenie systemu IT czyli Polemika z poradami prawników.

Prawnicy, bądźcie prawnikami i uczcie się od sędziów: do zagadnień z poza prawa powołujcie w swoich projektach biegłych (ekspertów).

Źródła

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

Wprowadzenie

Od czasu do czasu jestem pytany czy UML, BPMN, itp.. to notacje czy języki, a padają nawet pytania czy to metody. Otóż metody na pewno nie… (np. mamy dwie metody modelowania procesów biznesowych: z użyciem notacji BPMN i notacji eEPC). A pozostałe dwa?

Nie jest to proste. Dzisiaj pójdę może nieco na skróty dlatego wnikliwym polecam lekturę przede wszystkim na temat semiotyki, logiki i rachunku zdań. Problem w tym, że na co dzień, w biznesie też, nie używamy logiki boolowskiej tylko logiki predykatów pierwszego rzędu zwanej rachunkiem zdań, w systemach informatycznych dla biznesowy też [zotpressInText item=”{5085975:PIXDJHUG},{5085975:GX5YUV53}”].

Język i znaczenie

Na początek kilka definicji ogólnych (wszystkie sł. j. polskiego PWN):

język
5. ?utrwalony społecznie zespół znaków dotyczących jakichś działań człowieka lub wyrażających jego emocje oraz każdy układ elementów rzeczywistości, któremu człowiek nadał jakąś treść?

Język jest więc określonym zespołem norm,  są nimi jednak nie tylko znaki ale także to, co znaczą i jaką treść niosą. Wyrażanie emocji czy myśli w ogóle, rzadko jest możliwe z użyciem tylko jednego znaku. Dlatego w toku ich wyrażania operujemy raczej zdaniami:

zdanie
1. ?myśl wyrażona słowami?
4. log. ?sensowne wyrażenie oznajmiające podlegające falsyfikacji?

Tu zaczynamy powoli iść w porządkowanie tego o czym piszę. Każde zdanie (w logice) może być prawdziwe lub nie (tautologia jest zdaniem zawsze prawdziwym, czyli jest znany fakt je falsyfikujący ale wiemy, że nigdy taki nie wystąpi). Jeżeli więc, że treść najczęściej wyrażamy słowami (a raczej rzadko nie jednym słowem) to znaczy, że należy umieć odczytać znaczenie złożenia wielu słów w jednym zdaniu. Jak wiemy o zrozumiałości (zrozumiałość oznacza, że zdanie ma dla czytającego określone znaczenie) decyduje układ słów w zdaniu, znaki interpunkcyjne itp.

przecinek

Nawet przecinek ma znaczenie (jest on elementem języka) w zdaniu złożonym.

Jednoznaczność (zrozumiałość, znaczenie) zdań jest także efektem kontekstu:

kontekst
1. ?fragment tekstu potrzebny do dokładnego rozumienia danych wyrazów lub wyrażeń?
3. ?zespół jednostek językowych, które stanowią otoczenie danej jednostki?
4. ?zespół odniesień niezbędnych do zrozumienia utworu literackiego, dzieła naukowego itp.?

zakaz dobijania dziobem niejednoznacznosc

Jeżeli napiszę “Te dwie krowy są paskudne” to nadal nie ma pewności o czym mowa. Bez wiedzy o tym, czy to rozmowa dwóch rolników o inwentarzu, czy też dwóch koleżanek o dwóch innych, nie wiemy. Słowo “palant” także ma więcej niż jedno znaczenie i bez kontekstu jego użycia nie wiemy o jakie znaczenie chodzi (kolega czy mało już popularna gra) :).  Bardzo często to właśnie kontekst nadaje znaczenie.

Jak widać zrozumienie przekazu nie musi być proste, a komunikacja prosta i łatwa (każdy kto się choć raz pokłócił z powodu nieporozumień o tym wie). Kontekstem zajmuje się:

pragmatyka
1. ?dział językoznawstwa, którego przedmiotem są społeczne i sytuacyjne warunki funkcjonowania języka oraz cele, jakie mówiący chce osiągnąć przez użycie określonych wyrazów i wyrażeń?

Należy pamiętać, że znaczenie mają nie tylko pojedyncze słowa (znaki) ale także ich złożenia (“proces biznesowy” to jedno pojęcie ale dwa słowa). Innymi słowy konkretne pojęcie może być zapisane z użyciem jednego lub więcej znaków.

słowo
1. ?znak językowy mający jakieś znaczenie?

Dlatego złożenie kilku znaków (słów) także jest znakiem (definicja słowa i słowo/pojęcie przez nią definiowane, niosą tożsame znaczenie). Słowo (rozumiane jako zapis: złożenie liter) można zastąpić symbolem graficznym (ikona). O tym traktuje

semiotyka
1. ?ogólna teoria znaku w procesie porozumiewania się ludzi?

w tym:

semantyka
1. ?dział językoznawstwa, którego przedmiotem jest analiza znaczeń wyrazów?
2. ?dział semiotyki zajmujący się badaniem związków, jakie zachodzą między wyrażeniami języka a przedmiotami, do których się one odnoszą?

syntaktyka
2. ?dział semiotyki badający wzajemne stosunki i właściwości budowy wyrażeń języka w procesie porozumiewania się ludzi?

Zapisując coś: treść, w celu przekazania jej drugiej osobie komunikujemy się:

komunikacja
2. ?przepływ informacji między urządzeniami, np. telefonami lub komputerami?
3. ?przekazywanie i odbieranie informacji w bezpośrednim kontakcie z drugą osobą?

treść
1. ?to, co jest zawarte w czyjejś wypowiedzi; też: to, co przekazuje odbiorcy dzieło sztuki, w przeciwstawieniu do formy?
2. ?to, co stanowi istotę, sens czegoś?

Do komunikacji używamy znaków:

znak
1. ?kształt, któremu przypisuje się określone znaczenie?
2. ?dźwięk, spojrzenie, gest itp. służący do przekazania informacji?

Znak znaczy, czyli ma określone znacznie (pamiętamy o kontekście). Znakiem może być wiele rzeczy (także gest). Znak ma (niesie) znaczenie, znak lub ich złożenie także, przekazuje określoną treść:

znaczenie
1. ?myśl zawarta w czyjejś wypowiedzi, w czyimś zachowaniu itp.?
3. ?treść, której znakiem jest wyraz lub wyrażenie?

znaczyć
1. ?być znakiem czegoś?
3. ?umieszczać na czymś lub na kimś znak?
4. ?zostawiać na czymś znak, ślad?

Na koniec zostawiłem, sporne słowo:

notacja ?oznaczenie czegoś umownymi znakami; też: zbiór takich znaków?

Notacja to zbiór znaków. Przypomnę też, że język to miedzy innymi określony zbiór znaków wraz z opisem ich znaczeń (semantyka) oraz tym, jakie mają znaczenia ich określone złożenia (syntaktyka). Wiemy już, że znaczenie (treść) mają nie tylko pojedyncze słowa (to rzadko) ale ich konkretne złożenia (zdania). Przekazanie konkretnych, jednoznacznych treści, poza rzadkimi wyjątkami, wymaga więc zbudowania  konkretnych zdań czyli “złożeń słów (znaków)”. Innymi słowy, nikt chyba nie powie, że “książka jaką jest słownik języka polskiego, wraz z zasadami gramatyki, to jest język polski”. Język to jednak “coś więcej”. Słowo język jest dość nieprecyzyjne i oznacza wręcz pewien zespół norm i sposobów porozumiewania się (w tym idiomy, zespoły słów mająca inne znaczenie niż każde z nich z osobna). Poprawne (skuteczne) posługiwanie się danym językiem oznacza, że adresat “zrozumiał” treść nadawcy (mówiącego) [zotpressInText item=”{5085975:WBY4QT8K},{5085975:2B7VQZA7},{5085975:42JVE67U}”].

Porządkujemy to wszystko

Zrobiło się ciężko :).  Poniżej model pojęciowy: diagram w notacji SBVR pokazujący pojęcia i związki między nimi. Jednym z kluczowych narzędzi w analizie jest własnie analiza pojęciowa i budowanie słownika pojęć dla określonej dziedziny (tu więcej o tym czy jest diagram faktów opisany w notacji SBVR).

jezyk-i-notacja-model-pojeciowy

Powyższy model obrazuje związki pomiędzy opisanymi wyżej pojęciami, precyzuje także ich znaczenia. Model pojęciowy dla danej dziedziny (tu mowa o językach i notacjach) powinien się cechować między innymi tym, że znaczenia poszczególnych pojęć powinny być rozłączne, czyli spełniać arystotelesowską “zasadę wyłączonego środka” w logice, brzmiącą: “jeżeli coś jest czymś, to nie jest niczym innym”. Dla zachowania jednoznaczności zdań, definicje pojęć muszą się więc wzajemnie wykluczać, tak zbudowany słownik nazywamy “przestrzenią nazw” (ang. namespace).

UML i BPMN to język czy notacja?

Skrót UML zawiera w sobie słowo “language” (ang. język). Historycznie tłumaczyć to można tym, że obecne 14 typów diagramów to konkretne konteksty oraz narzucone konstrukcje, które można nazwać “zdaniami” (widać to szczególnie w przypadku diagramów Przypadków użycia czy Rozlokowania). Jednak obecna specyfikacja UML 2.5 porządkuje i to, słowo “language” w zasadzie nie jest w niej stosowane wobec tego co nazwano tam mianem UML (W zasadzie dzisiaj mogła by nosić nazwę Object-oriented Modeling and Notation 🙂 ).

Tak więc język czy notacja? To zależy od tego czy dana “specyfikacja” opisuje wyłącznie symbole czy też ich określone, i zalecane w określonych sytuacjach, konstrukcje oraz ich znaczenie. OMG (chyba) stara się to ostatnio jasno sygnalizować: UML to jeszcze “language” ale BPMN to już “notation”.  Specyfikacja UML zawiera określone, semantyczne (nazwane) konstrukcje, mające określone znaczenia, związane z konkretnymi diagramami (nazwa diagramu nadaje kontekst użytym na nich symbolom, jest to potrzebne bo pamiętajmy, że w UML wszystko jest “klasą”). W BPMN nie ma czegoś takiego (nawet pojęcie “proces biznesowy” nie jest częścią BPMN, jest ono zdefiniowane dopiero w Dodatku A jako objaśnienie i dodatkowy kontekst, w notacji zaś BPMN nie ma symbolu “proces biznesowy” 🙂 ). To czy dana specyfikacja to tyko opis notacji czy także języka, zależy więc od konkretnego przypadku.

usuwanie dwuznaczosci i niejasnosci

Niewątpliwie UML, BPMN, CMMN, SBVR, BMM itp., to wszystko są notacje (choć niestety mają pewne wady, wytykane w przez niektórych autorów, głownie nadmiarowość), bo są to specyfikacje symboli, ich znaczeń oraz określona syntaktyka. Natomiast o tym co i jak wyrażają (i czy w ogóle ;)) tworzone z ich pomocą diagramy, to już inna kwestia… To leży w gestii twórcy diagramów. A testem jest miedzy innymi skuteczność komunikacji: porównanie tego jaką konkretną treść chciał przekazać twórca danego diagramu i jaką treść odebrał czytający… Analityk zaczyna od analizy pojęciowej by uniknąć niejednoznaczności w samym przekazie. Potem dopiero dokumentuje, z użyciem modeli tworzonych z pomocą notacji, to co zastał oraz projektuje to, co chciałby by, by powstało sposób rozwiązanie problemu (tu polecam lekturę artykułu gdzie pisałem o tym, że wymagania to projekt).

Niewątpliwie więc wszystkie “języki programowania” są językami: mają składnię i każde zdanie coś wyraża (rozumie to i kolega programista i kompilator). Wiele notacji jednak językiem nie jest. O języku można mówić tylko wtedy, gdy jest samowystarczalny do wyrażania określonych myśli i treści, do komunikowania ich. Nie możemy tego raczej powiedzieć o wielu notacjach. Diagramy i modele wykonane z pomocą ww. notacji wymagają stosowania np. “języka” polskiego, do nadawania nazw symbolom i diagramom, bez czego diagramy te były by niezrozumiałe.

Uważam więc, że używanie wobec notacji obligatoryjnie nazwy język, jest poważnym nadużyciem… Niektóre notacje mają swoją wersję wykonywalną (tu nawiązuje do tego że języki programowania są” językami”) o czym niedawno pisałem (Analityczne i wykonywalne modele) jednak pamiętać, należy notacja jako taka nie jest językiem “programowania”, jest tu raczej formą budowania mechanizmu (modelowanie), który dopiero po dodaniu wielu parametrów (czyli wprowadzeniu wielu “słów” z poza notacji) pozwala taki model “uruchomić”.

Czy specyfikacja notacji to “tekst normatywny”

Od czasu do czasu spotykam sie z tezą, że specyfikację notacji należy traktować jak “tekst normatywny”. Czym jest tekst normatywny?

Akt normatywny to tekst, który zawiera normy prawne – sformułowane w języku prawnym i zapisane w postaci przepisów. Zazwyczaj normy prawne mają charakter generalny (tzn. adresaci tych norm nie są indywidualnie określeni – normy mogą być kierowane do np. osób podlegających jurysdykcji państwa lub do grupy osób wyróżnionej ze względu na wspólne cechy – podatnicy, przedsiębiorcy itp.) i abstrakcyjny (co oznacza, że normy zawierają ogólne sposoby postępowania).

(https://www.infor.pl/prawo/encyklopedia-prawa/a/271975,akt-normatywny.html)

Specyfikacja notacji ty wyłącznie semantyka i syntaktyka notacji czyli “sposób zapisywania czegoś umownymi znakami lub symbolami” (SJP), i to bardzo często nadmiarowa (zawiera znaki i symbole, które można stosować zamiennie). Specyfikacje notacji nie zawierają opisu żadnych metod ani sposobów postępowania, dlatego co do zasady nie są to “teksty normatywne”.

Zamiast podsumowania

Źródła

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

Cztery lata temu, na zakończenie pewnej polemiki, napisałem:

Takie podejście, dziedzinowe działy w firmach ? dziedzinowe podsystemy dla nich, w ogóle umożliwia sprawne działanie. Coraz powszechniejsze staje wydzielanie podmiotów zależnych lub ich wchłanianie. Mając jeden wielki System ERP niemożliwe jest ?proste? wydzielenie zależnej spółki logistycznej czy obsługi HR. Nie raz widywałem prawnicze łamanie głowy jako podzielić licencję ERP na kawałki w przypadku pączkowania lub połączyć przy fuzji spółek. Praktyka pokazuje, że oprogramowanie jest tym lepsze im lepiej odwzorowuje świat rzeczywisty organizacji i firm, a ten nie jest monolityczny. Po drugie sam fakt rosnącego znaczenia elektronicznej wymiany danych pomiędzy firmami powoduje, że już nic nie będzie jednym monolitycznym systemem, a na integrację jesteśmy skazani. Czy ona jest zła? Nie, cieszymy się, że można już kupić atrament czy toner innego producenta do posiadanej drukarki, że można użyć uniwersalnej ładowarki do telefonu komórkowego, cieszmy się, że można użyć np. innego HR niż ten od naszego ERP? (Źródło: RE: Duży ERP czy integracja | | Jarosław Żeliński IT-Consulting).

Dzisiaj co nieco o architekturze biznesowej i architekturze IT systemów ERP.

Na początek jednak coś z niedawnej publikacji w COMPUTERWORLD (źr. COMPUTERWORLD Wrzesień 2016, Budowa aplikacji z małą ilością kodu):

Oprogramowanie, które nie tworzy przewagi konkurencyjnej, można kupić. Aplikacje decydujące o satysfakcji klienta coraz częściej daje się stworzyć małym wysiłkiem, z gotowych klocków, dodając trochę własnych pomysłów i kodu. […]

Gartner przewiduje, że w 2020 r. 75% aplikacji będzie tworzonych, a nie kupowanych. Coraz więcej firm odchodzi od nabywania gotowych rozwiązań, idąc w kierunku tworzenia programów z wielu części składowych pochodzących z różnych źródeł. (źr. j.w.)

Na rynku pojawia się coraz więcej specjalizowanych podsystemów dziedzinowych, głównym powodem jest potrzeba dostosowania architektury IT nie tylko do specyfiki firmy ale także do taktyki działania i strategii. Prowadzi to do sytuacji, w której wdrażanie systemów monolitycznych staje trudne, gdyż systemy te cechuje integracja poprzez współdzielenie danych (dzięki czemu moduły są rozłączne). Kolejnym ograniczeniem jest oparcie działania serca całego ERP na dowodach księgowych (faktury, dokumenty magazynowe) co powoduje, że moduł rachunkowości zawsze musi być wdrożony jako pierwszy. To bardzo ogranicza możliwość wpływu na kolejność wdrażania modułów. Praktyka pokazuje, że integrowanie niezależnych podsystemów na poziomie wymiany danych (każdy zawiera specyficzną dla siebie logikę biznesową i inne struktury informacji) jest łatwiejsze niż  próby dostosowywania wielu modułów niewspółdzielonych te same dane zapisane w jednym znormalizowanym modelu. Wydzielanie dziedzinowych, własnych dedykowanych podsystemów, to także jedyny sposób na ochronę własnego know-how.

Poniżej podjąłem próbę uporządkowania obecnego stanu oferowanych na rynku aplikacji.

Model pojęciowy

Podstawowym narzędziem analizy biznesowej jest tworzenie modeli pojęciowych. Są to słowniki pojęć w formie graficznej. Zdefiniowane w słowniku pojęcia na diagramach takich łączy się z pomocą rzeczywistych faktów.

Model pojęciowy architektury systemu ERP
Model pojęciowy architektury systemu ERP

Powyższy diagram to uproszczony model pojęciowy firmy (opr. własne autora, diagram faktów notacji SBVR). Analiza pojęciowa ma dwa podstawowe cele: uporządkowanie pojęć i ich znaczeń oraz wykrycie i opracowanie podziału zakresu działania firmy na spójne dziedzinowe obszary. Powyższy diagram obrazuje  przykładowy produkt takiej analizy. Jest on uproszczony z uwagi na ograniczoną objętość tego artykułu, jednak pokazuje ogólną zasadę tworzenia takiego modelu. Pojęcia w słowniku pojęć biznesowych są odwzorowywane na diagramie (prostokąt) i łączone miedzy sobą kluczowymi dla siebie faktami (zdarzeniami). Na modelach takich pojawiają się skupiska gęsto połączonych ze sobą pojęć, między tymi skupiskami zaś liczba połączeń jest relatywnie mała.  Na diagramie wyróżniono typowe obszary w firmach (od lewej): Produkcja, Logistyka, Zarządzanie produktami, Rachunkowość, Obsługa kontaktów z klientami. Jest to oczywiście bardzo uproszczona wersja, ale pokazuje mechanizm prowadzenia samej analizy pojęciowej. Pojęcia te to nazwy, które opisują przedmioty, działania lub ich cechy. Są wykorzystywane w treści dokumentów np. nazwy pól formularzy, w ich tytułach itp..  Nie należy jednak takich modeli utożsamiać z modelami danych bo nimi nie są. Ten etap analizy pozwala wychwycić ewentualne specyficzne dla danej firmy obszary dziedzinowe a także granice między tymi obszarami, które nie muszą być typowe.

Analiza pojęciowa to przesłanka do opracowania architektury komponentów IT. Założenie podstawowe to uznanie, że każdy wewnętrznie silnie powiązany obszar pojęciowy to ?kandydat? na spójny (i niepodzielny) komponent zaś proste i rzadkie fakty między tymi skupiskami kandydują na miejsca podziału na komponenty i wymiany informacji (interfejsy między podsystemami lub aplikacjami). Praktyka takich analiz pokazuje, że czasem ma sens a czasem jednak nie, umieszczanie np. fakturowania w zakresie systemu CRM (obsługa kontaktów z klientem). Przykładów różnorodności jest znacznie więcej.

Typowe podsystemy IT oferowane na rynku

W tej części krótko opiszemy standardowe podsystemu IT oferowane na rynku. Definicje powstały na podstawie serwisu Encyklopedia Zarządzania mfiles.pl (opisane w kolejności alfabetycznej, patrz takżę: [zotpressInText item=”{5085975:GUF2RNXW}”]).

APS Advanced Planning and Scheduling to systemy, które rozwijają jak dotychczas przede wszystkim jako zakresy funkcji realizowanych w obrębie MRP II. Systemy klasy APS zapewniają bowiem szybszą reakcję całego łańcucha dostaw na zmieniające się potrzeby klientów lub w warunkach pojawiania się dodatkowych, niespodziewanych zamówień. Innym atutem systemów tej klasy jest także integrowanie planów produkcyjnych z planami dystrybucyjnymi (B. Tinham, 2000, s. 17). Jako natychmiastowe korzyści z zastosowania akcentowane są lepsza obsługa klienta oraz redukcja poziomu zapasów.

Specjaliści wdrażający systemy klasy APS podkreślają, że zastosowanie takiego modułu nie stanowi samo w sobie rozwiązania problemu reagowania na nagłe zmiany wielkości zapotrzebowania na oferowane produkty. W dalszym ciągu konieczne jest bowiem permanentne monitorowanie przebiegu procesów produkcyjnych oraz realizacji zadań w obrębie dziedzin wspomagających.

CAD (ang. Computer Aided Design) ? komputerowo wspomagane projektowanie, które ma zastosowanie głównie w inżynierii budowlanej, mechanicznej oraz elektrycznej [P. Nowakowski. 2006, s. 11].

Do głównych zadań systemu CAD należy odpowiednie opracowanie dokumentacji projektowej bazującej na stworzonym modelu trójwymiarowym oraz przygotowywaniu odpowiedniej prezentacji tworzonego obiektu w celu jego demonstracji potencjalnym odbiorcom. [P. Nowakowski. 2006, s. 12]. Na podstawie tak opracowanej dokumentacji projektowej, system CAD ma możliwość bezbłędnego generowania detalicznych list detali i podzespołów. Zarządzanie wersjami projektów pozwala nadzorować, partie i unikalne wykonania produktów.

CRM to system informatyczny umożliwiający implementację strategii CRM (strategię zarządzania kontaktami z klinetami). Najczęściej systemy tego typu mają budowę modułową oraz szereg dostępnych funkcji, a także współpracę z innymi systemami firmy. Ewidencja klientów, grupowanie kontaktów z klientem, zarządzanie projektami i inne, umożliwiają indywidualne podejście do klienta, a także wspomagają dalszą dobrą współpracę z klientem, nawet po odejściu pracownika, który się nim zajmował. System taki powinien współdziałać z pozostałymi systemami w przedsiębiorstwie. (E. Frąckiewicz, 2005, s. 56)

MES (źr. MESA International): “System MES (Manufacturing Execution System) ma na celu dostarczenie informacji, która pozwala na optymalizację operacji produkcyjnych począwszy od procesu zamówienia, aż do etapu dostarczenia produktów gotowych.” Jest to system udostępniający informacje o funkcjonowaniu linii produkcyjne w czasie rzeczywistym, lub quasi-rzeczywistym.

MRPII (ang. Manufacturing Resource Planning, rozwinięty system planowania zasobów wytwórczych przedsiębiorstwa) został opracowany w 1989 r. przez Amerykańskie Stowarzyszenie Sterowania Produkcją i Zapasami (APICS). Jest kontynuacją systemu MRP. Pozwala na planowanie zasobów produkcyjnych, obejmuje sterowanie zasobami i produktami przedsiębiorstwa oraz zarządzanie działalnością firmy także w aspekcie finansowym, uzupełnione o moduły planowania sprzedaży, zarządzania kadrami, stanowiskami roboczymi, gotówką itp. Umożliwiają planowanie działalności przedsiębiorstwa produkcyjnego i dystrybucyjnego (handlowego) [Klonowski, 2004, s. 66-87].

PLM (źr. www.controlengineering.pl) to strategiczne podejście biznesowe, stosujące konsekwentny zestaw rozwiązań do wspierania wspólnego tworzenia, zarządzania, rozpowszechniania oraz stosowania firmowych definicji dotyczących produktu i zakładu, które obejmują całość przedsięwzięcia ? od koncepcji produktu do końca jego ?życia?, integrując zasoby ludzkie, procesy, systemy firmowe oraz informacje. PLM tworzy i zarządza cyfrowo produktem lub całym zakładem, zapewniając firmie i realizowanym przez nią przedsięwzięciom spójną strukturę informacyjną.

Produkcja ogół działań zmierzających do dostarczenia dóbr i usług na rynek.

Rachunkowość finansowa (źr. coin.wne.uw.edu.pl/akocia/rach_fi/Rachunkowosc%20finansowa.ppt) Rejestr zdarzeń gospodarczych. Zdarzenie gospodarcze to fakt, który jest:

  1. udokumentowany,
  2. wyrażony w mierniku pieniężnym,
  3. wywiera wpływ na aktywa, pasywa lub wyniki działalności jednostki gospodarczej,

Podlega rejestracji w księgach rachunkowych. Zdarzenie gospodarcze jest równoznaczne z operacją gospodarczą.

SCADA (źr. systemy-sterowania.pl) (Supervisory Control And Data Acquisition) należy do warstwy nadrzędnej systemu sterowania automatyki przemysłowej. Głównym zadaniem SCADA jest wizualizacja procesu w tzw. czasie rzeczywistym oraz umożliwienie ingerencji w proces ? sterowanie poszczególnymi elementami wykonawczymi, zadawanie parametrów, zmiana nastaw ? z poziomu operatora mającego do dyspozycji stację komputerową. SCADA zawiera najczęściej następujące elementy:

  1. wizualizację procesu w postaci grafik synoptycznych,
  2. archiwizację danych produkcyjnych,
  3. moduł raportowy,
  4. moduł podstawowej analizy i przeglądu danych historycznych,
  5. moduł udostępniania danych wyższym warstwom struktury zarządzania przedsiębiorstwem w celu analizy szczegółowej (systemy MES, ERP, PLM).

WMS  (Warehouse Management System), stanowi kompleksowe rozwiązanie informatyczne (oprogramowanie, urządzenia, usługi i serwis) pozwalające na zarządzanie ruchem produktów na magazynie oraz optymalizujące wykorzystanie przestrzeni magazynowej. Szczególnym zadaniem realizowanym w ramach systemów WMS jest bezbłędna lokalizacja towarów w magazynie oraz kontrola przebiegu obrotu magazynowego. System dostarcza informacji dotyczących stanu magazynowego według wielu różnych kryteriów oraz umożliwia sprawną lokalizację każdej partii towaru i każdej pojedynczej przesyłki. W systemie WMS operator może wygenerować odpowiednią etykietę i oznaczyć nią jednostki towarowe lub w momencie przyjmowania towaru do magazynu przyjąć do systemu informacje zawarte na etykiecie nadanej jej wcześniej przez inny podmiot. 

(https://www.researchgate.net/publication/326224890_Implementing_Shop_Floor_IT_for_Industry_40/figures?lo=1&utm_source=google&utm_medium=organic)

System ten, składający się z wyżej wymienionych podsystemów, przedstawia diagram poniżej.

Model komponentów dziedzinowych ERPII
Model komponentów dziedzinowych ERPII

Na diagramie zobrazowano opisane podsystemy oraz podstawowe elementy komunikacji miedzy nimi. Komunikacja ta to głównie wzajemne ?użycie [danych]? (ich wymiana na  żądanie a nie współdzielenie). Podaż tych aplikacji na rynku potwierdza opisany na początku artykułu, podział na kluczowe podsystemy dziedzinowe. Mamy tu jednak pewne specjalizowane podsystemy, których nie wykazała analiza pojęciowa. Powodem jest to, że powyższa przykładowa i bardzo uproszczona analiza bazowała na standardowych pojęciach i faktach (czyli występujących w każdej firmie produkcyjnej), zaś na rynku mamy także do czynienia z firmami o bardziej rozbudowanej  złożoności działania lub mającej w swojej strategii większą szczegółowość kontroli i planowania w wybranych obszarach dziedzinowych (wymaga to precyzyjniejszej analizy niż ta przedstawiona). Np. podsystem APS to właśnie taki przypadek: jego wdrożenie jest uzasadnione tam, gdzie wymagane są (lub są możliwe) zarządzanie większą ilością szczegółów i większa automatyzacja zarządzania. Podobnie rozwiązania PLM.

Na diagramie tym mamy dość typową architekturę systemu ERP II, która pozwoli lepiej zrozumieć budowę takiego systemu. Sercem firmy produkcyjnej jest Linia produkcyjna. Linia ta jest obsługiwana przez ludzi jednak interfejsem dla pozostałych podsystemów jest MES, podsystem który zamienia wszystkie istotne fakty z ?życia linii produkcyjnej? (systemy czujników i podzespołów wykonawczych) w strumień danych zrozumiałych dla pozostałych podsystemów. Systemy MES w różnej formie, są coraz częściej dostarczane przez producentów maszyn i całych linii produkcyjnych wraz z nimi. Więcej o tym pisałem w niedawnym artykule o Internecie rzeczy (urządzenia elektromechaniczne wraz z oprogramowaniem zbierającym dane i komunikującym się ?ze światem?). Z danych dostarczanych przez MES korzystają systemy monitorowania i zobrazowania informacji SCADA. Z nich korzysta głównie załoga obsługująca linię produkcyjną oraz służby utrzymania ruchu. Elementy zarządzania i planowania zaopatrzenia pojawiają się w podsystemie MRPII, który z MES zbiera dane o bieżącym wykorzystaniu i zużyciu zasobów. Podsystem Produkcja zarządza realizacją zleceń produkcyjnych (zaspokajanie niedoboru produktów własnych w magazynach). Położeniem i ilością produktów w magazynach zarządza WMS. Rachunkowość finansowa zbiera i przetwarza wszelkie fakty księgowe związane z przyjęciami, wydaniami, przetworzeniem, kosztami oraz sprzedażą produktów i kosztami zakupu surowców. Wszelkie kontakty z klientami związane z ofertowaniem, przyjmowaniem zamówień, obsługą dostaw czy reklamacjami obsługuje CRM, który zawsze w większym lub mniejszym stopniu realizuje wewnętrzny obieg dokumentów.

Powyższy opis jest dość ogólny, to świadome gdyż po pierwsze firmy się między sobą różnią, nie raz bardzo istotnie, po drugie aplikacje dziedzinowe także są dość zróżnicowane.

Każda firma, szukając sposobu na uzyskanie przewagi rynkowej, stara się pewne obszary operacyjne budować wg, własnej strategii. To między innymi powoduje, że każde wdrożenie jest inne i nie ma jednej jedynie-słusznej architektury IT.

[2021-09-04] Coraz częściej można sie spotkać z opisami systemów wspierających firmy produkcyjne, w których systemy te to odrębne dedykowane, dziedzinowe aplikacje, zintegrowane w jeden spójny system. Obecnie nie jest to trudne (szybko postępuje standaryzacja integracji). Wszędzie tam gdzie pojawia się specyfika danej firmy należy opracować jej model i stworzyć interfejs dostosowany do standardów obowiązujących standardów. Jednym że standardów jest modelowanie zorientowane na strukturę danych, które zawsze są przekazywane w postaci dokumentów (paczek danych) a nie odwołań do baz danych [zotpressInText item=”{5085975:K63WIBIW}”].

Źródła

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

Niemalże w każdym projekcie spotykam się z dokumentami w różnych formach. Bardzo często spotykam się także z problemami związanymi z ich użyciem w “realu” i ich reprezentacją zarówno w dokumentacji papierowej jak i elektronicznej. Samo pojęcie “dokument” potrafi być trudne do jednoznacznej interpretacji. Najpierw jednak proszę przeczytać ten niedługi artykuł na temat problemów z fotokopią Dowodu Osobistego (można przeczytać na koniec, po przeczytaniu tego wpisu).

Jeśli sądy uznają za zgodne z prawem wykonywanie kserokopii dokumentów tożsamości, to być może należałoby zmienić przepisy ? to odpowiedź Generalnego Inspektora Ochrony Danych Osobowych (GIODO) na praktykę stosowaną przez dużą część przedsiębiorców zawierających umowy z konsumentami. (Źródło: GIODO ukróci kserowanie dowodów osobistych. Trzeba zmienić przepisy – Prawo i wymiar sprawiedliwości – GazetaPrawna.pl – wiadomości, notowania, kursy, praca, emerytury, podatki –)

(more…)