Tag Archive : prawo autorskie

Wprowadzenie

Niedawno miała miejsce kolejna moja dyskusja na LinkedIn, która pokazała że prawo własności intelektualnej jest bardzo trudne do przyswojenia, głównie dlatego że – z uwagi na swoją „niematerialność” – wymyka się intuicyjnej i materialnej manierze postrzegania świata przez człowieka. Na to nakłada się przeświadczenie koderów, że z zasady są samodzielnymi twórcami, i niestety wielu prawników także tak uważa. Rzecz w tym, że koder zawsze jest twórcą, ale nie zawsze jest projektantem. Gdy koder nie jest projektantem, jego utwory (kod źródłowy) to utwory zależne od utworów pierwotnych, jakimi są projekty techniczne wyrażone np. z pomocą UML, wzorów matematycznych, algorytmów. Wtedy oczekujemy od koderów, że jako deweloperzy, wykonają świetnie swoje rzemiosło.

Z uwagi na to, że w ekspertyzach, które piszę, często korzystam z celowościowego i systemowego interpretowania umów i prawa, postanowiłem opisać tu analizę ontologiczną tego obszaru inżynierii. Celem jest określenie znaczenia i zasięgu definicji pojęć powszechnie stosowanych w dziedzinie własności intelektualnej. Mam także nadzieję, że pomogę tym Państwu zawierać lepsze umowy na dostawy oprogramowania.

Metoda

Artykuł ma charakter analityczny. Wykorzystano w nim elementy analizy systemowej i ontologię i pojęcie modelowania w nauce.

Rezultaty

Efektem prac jest taksonomia pojęcia własności intelektualnej, model pojęciowy obszaru praw autorskich i opisu projektu lub wynalazku, wyjaśnienie związku między modelem i jego implementacją, oraz wykazanie ścisłego związku między opisem (modelem) mechanizmu a oprogramowaniem, które go realizuje w komputerze. Dla obszaru prawa autorskiego oznacza to ścisły związek między modele jako utworem pierwotnym a implementacją jako utworem zależnym.

Prawo autorskie w inżynierii oprogramowania

Artykuł Prawo autorskie w projektach IT, zakończyłem słowami:

Podsumowując: moż­li­we jest opra­co­wa­nie doku­men­ta­cji opro­gra­mo­wa­nia opi­su­ją­cej (wyma­ga­ny) mecha­nizm jego dzia­ła­nia i archi­tek­tu­rę. Oprogramowanie powsta­łe na bazie takiej doku­men­ta­cji to imple­men­ta­cja pro­jek­tu i sta­no­wi ono odwzorowaniem projektu w spe­cy­fi­ka­cji. Prawo autor­skie jest tu wręcz dosko­na­łym mecha­ni­zmem kon­tro­l­nym nad wyko­naw­cą opro­gra­mo­wa­nia: mając pra­wa mająt­ko­we do pro­jek­tu tech­nicz­ne­go, z zasa­dy dys­po­nu­je­my w peł­ni opro­gra­mo­wa­niem wyko­na­nym na nasze zamó­wie­nie i na pod­sta­wie takiej doku­men­ta­cji. Jeżeli dostaw­ca stwo­rzy zamó­wio­ne opro­gra­mo­wa­nie ina­czej bo po swo­je­mu, to zna­czy tyl­ko tyle, że nie zre­ali­zo­wał zawar­tej umo­wy i nie nale­ży mu płacić.

źr.: Prawo autorskie w projektach IT – Jarosław Żeliński IT-Consulting (polecam przeczytanie tego tekstu przed lekturą dalszej części)

Kluczowa dla inżynierii oprogramowania jest ontologiczna definicja mówiąca, że “komputer to uniwersalny mechanizm” [zotpressInText item=”{5085975:ZCXJ2S7U}”] oraz fakt, że działający, czyli przydatny do czegokolwiek, komputer to: procesor, pamięć i program [zotpressInText item=”{5085975:FY9XT4Q3}”].

Program (oprogramowanie) to obecnie potężny zestaw oprogramowania, podzielonego na komponenty. Są to osobno system operacyjny, standardowe oprogramowanie, środowisko wykonawcze, biblioteki programistyczne, oraz to co ewentualnie powstanie jako dedykowane oprogramowanie realizujące oczekiwany (wymagany) “mechanizm”, zwany potocznie “aplikacją” [zotpressInText item=”{5085975:IQ3YKX86}”]:

Architektura hexagonalna jako granica między aplikacją a jej środowiskiem [zotpressInText item=”{5085975:IQ3YKX86}”]

Powyższe jest bardzo ważne, gdy chcemy “coś” nazwać oprogramowaniem czy wręcz kodem źródłowym: w projektach programistycznych najczęściej jest to jedynie kod źródłowy ww. dedykowanej aplikacji, reszta to gotowe, standardowe produkty.

Całość systemu informatycznego organizacji może się składać z wielu takich zintegrowanych (połączonych) programów. Istotne jest to, że zarówno projekt techniczny aplikacji, jak i projekt techniczny integracji aplikacji, to projekty inżynierskie. Projekty jednakowo chronione prawem autorskim.

Z uwagi na to, że prawo autorskie ma “wydzieloną część” dla utworów takich jak utwory literackie, muzyczne, fotografia czy filmowe, a także projekty budowlane, nie ma osobnej “części” dla inżynierii oprogramowania, stosujemy tu analogie do ww. elementów prawa autorskiego, z czym nie ma żadnego problemu. Kluczowe jest poprawne dedukcyjnie formułowanie celu działania oraz budowanie tych analogii. W prawie mówimy wtedy o wykładni celowościowej i systemowej:

W pra­wie, mie­dzy inny­mi, sto­so­wa­na jest wykład­nia sys­te­mo­wa i celo­wo­ścio­wa (Koszowski, 2019). Obie są pod­sta­wo­wy­mi narzę­dzia­mi ​„napra­wia­ją­cy­mi” to co nazy­wa­my ​„złym pra­wem”. Tam gdzie ście­ra­my sie z dogma­ty­zmem (i dogma­ty­kiem) pra­wa, może­my (i mamy pra­wo) sto­so­wać te wykład­nie. To wła­śnie te dwa narzę­dzia pozwa­la­ją mi ​„wygry­wać” spra­wy dla moich klien­tów, ale nie dla­te­go że ​„jestem lep­szym praw­ni­kiem”, bo nim nie jestem. Dlatego, że te dwie meto­dy pozwa­la­ją – w uza­sad­nio­nych przy­pad­kach i kon­tek­stach – spro­wa­dzać zapi­sy pra­wa do absur­du, co z nie raz koń­czy się w Sądzie wybo­rem wykład­ni sys­te­mo­wej i celo­wo­ścio­wej w miej­sce dogma­tycz­nej.

źr.: Ekspertyza, opinia prywatna, recenzja, opinia biegłego sądowego – Jarosław Żeliński IT-Consulting

Własność intelektualna

Na rządowej stronie promującej wiedzę z tego zakresu znajdziemy:

Własność intelektualna to wytwory ludzkiego umysłu, przedstawione w materialnej postaci, jak utwory literackie, oznaczenia towarów czy wynalazki. Nazywane są dobrami niematerialnymi i stanowią niematerialne składniki majątku firmy. Są to oryginalne i nowatorskie efekty twórczej działalności człowieka.

źr.: https://www.biznes.gov.pl/pl/portal/00367

Kluczem jest tu “materialność”. Ustawowa definicja utworu:

Przedmiotem prawa autorskiego jest każdy przejaw działalności twórczej o indywidualnym charakterze, ustalony w jakiejkolwiek postaci, niezależnie od wartości, przeznaczenia i sposobu wyrażenia (utwór).

U S TAWA z dnia 4 lutego 1994 r. o prawie autorskim i prawach pokrewnych1) Rozdział 1 Przedmiot prawa autorskiego Art. 1. 1.

Tu jest mowa o tym, że utwór – by nim być – musi zostać “ustalony” co jest niczym innym jak jego utrwaleniem. Czyli jeżeli coś jest utworem to:

  1. Musi to być rezultat pracy człowieka (twórcy).
  2. Musi to być przejaw działalności twórczej (utwór musi być oryginalny).
  3. Musi mieć indywidualny charakter (czyli trzeba sobie postawić pytanie, czy takie dzieło już powstało, czy byłoby możliwe, że przypadkiem stworzy je inna osoba).

Słowo projekt ma kilka znaczeń, tu skupimy się na:

projekt: dokument zawierający obliczenia, rysunki itp. dotyczące wykonania jakiegoś obiektu lub urządzenia.

(słownik języka polskiego)

Kluczowe dla całości tego artykułu są:

znak: kształt, któremu przypisuje się określone znaczenie
znaczenie: treść, której znakiem jest wyraz lub wyrażenie

https://sjp.pwn.pl/

Powyższe można zobrazować jako model pojęciowy wraz z językowymi związkami pojęciowymi (predykaty) na podstawie ww. definicji:

Kluczowe pojęcia powiązane z własnością intelektualną (opr. autora)

Tak więc: Dzieło człowieka: utwór, będąc treścią czyli utrwaloną informacją, może stanowić sobą projekt, a także opis wynalazku.

Projekt a utwór

Wynalazki są bardzo dobrym przykładem i zarazem analogią do opisu komputera, gdyż cytowana wyżej definicja: “komputer to uniwersalny mechanizm”, na pewnym poziomie opisu, zrównuje komputer z materialnym mechanizmem.

Wniosek patentowy musi zawierać między innymi opis wynalazku ujawniający jego istotę. Opis wynalazku powinien gwarantować, że zgłoszenie zawiera wystarczające informacje, pozwalające znawcy w danej dziedzinie na odtworzenie rozwiązania w praktyce i pozwalać czytelnikowi zrozumieć wkład, jaki daje wynalazek do dziedziny techniki. Dlatego opis wynalazku i rysunki powinny być spójne, szczególnie, gdy chodzi o wyjaśnienia do elementów rysunków. Opis wynalazku powinien być zredagowany jednoznacznie. Nie podaje się technicznych określeń żargonowych, a jedynie określenia techniczne stosowane w danej dziedzinie techniki.

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

Biorąc zaś pod uwagę fakt, że funkcjonalność komputera jest determinowana przez jego oprogramowanie, można powiedzieć, że o tym czym jest komputer decyduje jego oprogramowanie. Mamy więc abstrakcyjny mechanizm i jego implementacje np. w postaci komputera (program jest jego częścią). Ten mechanizm jest realizowany przez oprogramowanie, a ono jest ciągiem procedur. Tak więc najpierw powstaje opis (model) tego mechanizmu, a na jego podstawie urządzenie mechaniczne (elektro-mechaniczne) lub komputer.

To czy to urządzenie jest komputerem czy przedmiotem w 100% materialnym, praktycznie nie ma znaczenia, tak samo jak nie ma znaczenia to czy urządzenie odmierzające czas (lub sterujące pralką) to komputer czy zestaw kół zębatych. Oprogramowanie ma swoją abstrakcyjną strukturę wewnętrzną, to model mechanizmu jego działania [zotpressInText item=”{5085975:LKGQJ85W}”]. Możliwe jest więc stworzenie schematu blokowego (zestaw schematów) dokumentującego mechanizm realizowany przez stworzone pod jego dyktando oprogramowanie (więcej na ten temat w artykule Model dziedziny jako mechanizm). Taki zestaw diagramów to opis struktury elementów mechanizmu (jego architektura) oraz opis współdziałania tych elementów (zachowanie się systemu):

[zotpressInText item=”{5085975:6LB9NWB7}”]

Przytoczmy jeszcze raz:

Własność intelektualna to wytwory ludzkiego umysłu, przedstawione w materialnej postaci, jak utwory literackie, oznaczenia towarów czy wynalazki. Nazywane są dobrami niematerialnymi i stanowią niematerialne składniki majątku firmy. Są to oryginalne i nowatorskie efekty twórczej działalności człowieka.

źr.: https://www.biznes.gov.pl/pl/portal/00367

Ważna rzecz: materializacja (postać materialna) jako warunek bycia wartością intelektualną. Innymi słowy można chronić tylko to istnieje, utrwalony opis to jego “istnienie”. Tym “utrwaleniem” jest treść czyli dokument (także elektroniczny). Materialność dokumentu to jest utrwalenie (patrz ustawowa definicja utwory: “ustalony w jakiejkolwiek postaci”). To czy będzie to nośnik papierowy czy elektroniczny nie ma znaczenia.

Przedmiot i jego dokumentacja.

Tak więc to co wymyślimy i ma wartość jako informacja to wartość intelektualna. To co utrwalimy np. na papierze czy w pamięci stałej komputera jako plik pdf (lub inny) to dane, te niosą informację, jest nią np. opis konstrukcji. Jeżeli zapis spełnia określone warunki (wykonany przez człowieka i ma indywidualny charakter) to jest to także utwór:

Treść vs. informacja (opr. autora)

Tak więc treść wyrażona w postaci znaków i schematów to sposób wyrazu chroniony prawem autorskim. Informacja o mechanizmie działania to wartość intelektualna.

Prostym dowodem na to jest fakt, że stwierdzenie plagiatu polega na stwierdzeniu zgodności danych a nie jej pojmowania przez człowieka. Dlatego system antyplagiatowy to komputer a nie “ludzie którzy to czytają i rozumieją”.

Popatrzmy na mapę:

Powyższy obrazek to prosta ilustracja tego, że :

  1. jako unikalny obraz (grafika) ta mapa jest chroniona prawem autorskim,
  2. treść tego obrazu – mapy – po jej zrozumieniu przez człowieka, to informacja o tym jak dotrzeć do skarbu; gdyby był to rysunek techniczny urządzenia, pozwalający odtworzyć (wytworzyć) to urządzenie lub przedmiot, mógłby on być elementem np. wniosku patentowego.

Podsumowanie

Ciekawie podsumowuje to Kinsella [zotpressInText item=”{5085975:Y4W6IFZI},{5085975:QAHTAUZ4}”]:

Prawa autorskie, chociaż nie doprowadziły do tak wielu jawnie absurdalnych zgłoszeń, zostały mocno rozciągnięte przez sądy. Pojęcie, pierwotnie mające na celu ochronę prac literackich, zostało tak rozszerzone, iż zawiera takie pisarskie „prace” jak programy komputerowe czy nawet kod maszynowy i kod wynikowy, którym bliżej do elementów maszyn, takich jak krzywka, niż do prac literackich.

Program komputerowy to tekst i jest chroniony prawem autorskim. Wszelkie inne precyzyjne, w tym graficzne, opisy reprezentujące określony mechanizm, np. realizowany z użyciem komputera, to także treść chroniona prawem autorskim. Jeżeli treść zapisana na tych schematach i w tym kodzie źródłowym, opisuje taki sam mechanizm działania, to znaczy że obie te treści opisują ten sam mechanizm. I teksty i rysunki to dokumenty.

Możliwe jest zarówno napisanie kodu programu na podstawie jego precyzyjnego opisu, jak i wykonanie precyzyjnego opisu na podstawie istniejącego już kodu. Pierwsze nazywamy implementacją projektu, drugie dokumentowaniem istniejącego kodu. Określenie tego kto od kogo skopiował opis tego mechanizmu, jest proste: to dająca się dowieść data powstania każdego z tych utworów, bo oba te dokumenty będą utworami w świetle prawa autorskiego. Drugi będzie utworem zależnym pierwszego.

Dodatek

Cały powyższy wywód zasadza się na pojęciu syntaktyki i semantyki treści. Syntaktyka to reguły poprawności zapisu treści. Semantyka to jego rozumienie (interpretacja, odczytanie) przez człowieka.

Ciekawostką jest to, że sama zrozumiała dla człowieka treść nie niesie informacji o tym czy stworzył ją inny człowiek czy maszyna: komputer jako maszyna może generować treść zrozumiałą dla człowieka, wystarczy do tego słownik prawdziwych wyrazów oraz algorytm, który na podstawie reguł – jakimi jest syntaktyka języka – wygeneruje ciągi wyrazów, które dla człowieka stanowią poprawne zdania w jego języku. Analogicznie można generować obrazy. Dlatego właśnie prawo autorskie zawiera klauzulę mówiącą, że autorem w świetle prawa, może być jedynie człowiek.

A co z obrazem lub tekstem wygenerowanym przez maszynę? Nic, maszyna z zasady jest jedynie narzędziem w rękach człowieka.

Poniżej jeden z najsłynniejszych eksperymentów ilustrującym to co nazywamy “sztuczną inteligencją”: człowiek czytając treści dla niego zrozumiałe nie jest w stanie określić czy stworzył je inny człowiek czy maszyna:

Maszyna może wg ustalonych reguł zmienić (przeredagować) treść, ale nie jest w stanie wytworzyć nowych znaczeń. Jeżeli jakieś oprogramowanie wytworzy tekst, obraz lub dźwięk wykorzystując wzorce syntaktyczne i fragmenty treści wytworzonej wcześniej przez człowieka, autorstwo tych treści: człowiek czy maszyna, będą dla człowieka nieodróżnialne. To jest ChatGPT i podobne….

Tak pisze o tym Noam Chomsky:

Ludzki umysł nie jest, jak ChatGPT i jemu podobni, ociężałym silnikiem statystycznym do dopasowywania wzorców, pochłaniającym setki terabajtów danych i ekstrapolującym najbardziej prawdopodobną reakcję konwersacyjną lub najbardziej prawdopodobną odpowiedź na pytanie naukowe. Wręcz przeciwnie, ludzki umysł jest zaskakująco wydajnym, a nawet eleganckim systemem, który działa z niewielkimi ilościami informacji; nie stara się wnioskować o brutalnych korelacjach między punktami danych, ale tworzyć wyjaśnienia.

Noam Chomsky: The False Promise of ChatGPT (The Times, March 8, 2023)

Źródła

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

Wstęp

prawie 10 lat temu pisałem:

Często spo­ty­kam się z róż­ny­mi meto­da­mi uwzględ­nia­nia pra­wa w doku­men­ta­cji wyma­gań. Jakim wyma­ga­niem jest zgod­ność z obo­wią­zu­ją­cym pra­wem? I trud­niej­sze pyta­nie: czy zmia­na pra­wa to zmia­na wyma­gań? Inny aspekt pro­ble­mu to ana­li­za i defi­ni­cja (opis) tej zgod­no­ści z pra­wem. Spotkać moż­na się z meto­dą pole­ga­ją­cą na trak­to­wa­niu każ­de­go (mają­ce­go wpływ na sys­tem) para­gra­fu np. usta­wy jako wyma­ga­nia. Problem zgod­no­ści opro­gra­mo­wa­nia z pra­wem ma dwa aspekty. Zgodność opro­gra­mo­wa­nia z pra­wem pole­ga na tym, że ??opro­gra­mo­wa­nie nie może ogra­ni­czać sto­so­wa­nia pra­wa to jest nie może  wymu­szać swo­imi ogra­ni­cze­nia­mi dzia­łań nie­zgod­nych z prawem?. Ja oso­bi­ście reko­men­du­ję roz­cią­gnię­cie tej defi­ni­cji na ??ani nie powin­no pozwa­lać na łama­nie pra­wa?.  Tu jed­nak wie­lu uwa­ża, że ??zama­wiam narzę­dzie i uży­wam jak chcę, na swo­ja odpo­wie­dzial­ność?. Coś w tym jest, war­to jed­nak zosta­wić ??włącz­nik?.  (źr.: Prawo a wymagania … )

Dzisiaj czytam:

To administrator odpowiada za zabezpieczenia systemów, a więc także za to, że pracownik zdołał skopiować dane osobowe na zewnętrzny nośnik. […] W ocenie WSA w toku postępowania PUODO prawidłowo ustalił, iż w SGGW dopuszczono się licznych uchybień, w szczególności nie przeprowadzono właściwej analizy ryzyka i oceny zagrożeń już na etapie projektowania systemów (privacy by design) oraz nie wdrożono odpowiednich środków zapewniających bezpieczeństwo danych, w tym przed możliwością wyeksportowania danych z systemu na zewnątrz.(źr.: Odpowiedzialność administratora za naruszenie zasady privacy by design)

Rzecz w tym, że administrator, w rozumieniu prawa, to także podmiot zlecający powstanie oprogramowania, które go wspiera w realizacji jego obowiązków, a jednym z tych obowiązków jest egzekwowanie ustalonych zasad. Dzisiaj o tym, że zbieranie “podpisów pod oświadczeniami” to nie jest bezpieczeństwo.

(more…)

Jarosław Żeliński Date. (2021). Metody kastomizacji oprogramowania standardowego – aspekty ekonomiczne: Recenzja. https://doi.org/10.13140/RG.2.2.22292.01927

Wstęp

Publikacja Jędrzeja Wieczorkowskiego (dalej: recenzowane opracowanie) o poniższym tytule [zotpressInText item=”{5085975:ZYYTZS8M}”] ukazała się w 2015 roku:

Jędrzej Wieczorkowski
Instytut Informatyki i Gospodarki Cyfrowej
Szkoła Główna Handlowa w Warszawie
Metody kastomizacji oprogramowania standardowego: aspekty ekonomiczne.

Autor recenzowanego tekstu odnosi sie do skutków ekonomicznych, pomija jednak całkowicie skutki prawne kastomizacji kodu oprogramowania, które mają wpływ na koszty i ochronę wartości intelektualnych. Autor pisze we wstępie:

Celem niniejszego opracowania jest analiza możliwych metod kastomizacji systemów informatycznych zarządzania przeprowadzona z ekonomicznego punktu widzenia, w tym w szczególności opłacalności stosowania oprogramowania standardowego i wykorzystania poszczególnych metod jego adaptacji. […] Kastomizację systemu informatycznego ogólnie należy rozumieć jako jego adaptację do potrzeb konkretnego podmiotu. M. Flasiński określił kastomizację, jako ?konfigurację systemu, osadzenie w systemie za pomocą prac programistycznych dodatkowych funkcjonalności oraz modyfikację istniejących funkcjonalności systemu?

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

Dostarczanie oprogramowania i jego wdrażanie, wiąże się jego ewentualnym dostosowaniem do potrzeb użytkownika. Autor powyższego opracowania, stosując nieprecyzyjne definicje pojęć, wprowadza czytelnika w błąd, opisując przyczyny i konsekwencje związane z szeroko pojętym dostosowaniem oprogramowania do potrzeb użytkownika.

Niestety z tego dokumentu korzysta wielu prawników, nazywając go nie raz nawet “wykładnią”.

(more…)

Wstęp

Dzisiejszy wpis to efekt lektury artykułu Pani Mec. Marty Pasztaleniec na stronie IP Procesowo. Kluczowe dla dzisiejszego wpisu jego fragmenty to:

Programy komputerowe w świetle krajowego prawa autorskiego korzystają ze szczególnej ochrony. Z uwagi na ich specyfikę wyłączono stosowanie niektórych regulacji z ogólnej części prawa autorskiego, w szczególności przepisów dotyczących dozwolonego użytku, który umożliwia w ściśle określonych okolicznościach korzystanie z utworów bez zgody twórcy, a nawet wbrew takiej zgodzie. Co do zasady zatem jakiekolwiek zwielokrotnienie programu komputerowego wymaga zgody twórcy. […]
Spór ma swą genezę w 2005 r. kiedy to Google nabył startup Android Inc i rozpoczął starania by wejść na rynek smartfonów, tworząc platformę do budowy systemów dla urządzeń mobilnych. Platforma w swym założeniu miała być nieodpłatna po to by popularyzować środowisko Google. Jako że język programistyczny Java był wówczas jednym z najbardziej popularnych i powszechnych wśród programistów, Google podjął rozmowy z Sun Microsystems ? twórcą Java ? na temat licencjonowania całej platformy Java. Ostatecznie zdecydował się jednak na budowę własnej platformy. Aby jednak zapewnić jej powszechność i łatwość stosowania wśród programistów zastosowano w nim nazwy funkcji i formatów danych charakterystyczne dla języka Javy. Google de facto opracował własne odpowiedniki funkcji Javy i nadał im nazwy takie same jak w Javie. Oracle, po przejęciu spółki Sun Microsystems, pozwał w 2010 r. Google o naruszenie przysługujących Oracle praw autorskich i patentów. Zarzucono Google skopiowanie blisko 11 500 linii deklaracji API programu Java (co stanowiło 0,4 % deklaracji). […]
Sąd uznał, że działanie Google było ?zgodne z kreatywnym ?postępem?, który jest podstawowym konstytucyjnym celem samego prawa autorskiego?. Według sądu dozwolony użytek pełni więc istotną rolę w rozwoju oprogramowania, a prawo autorskie nie powinno hamować tego rozwoju. (żr.: Dozwolony użytek programów komputerowych ? jak Google pokonał Oracle w USA).

Powyższy tekst wskazuje na dwa ciekawe aspekty oprogramowania, o których dzisiaj napiszę. Pierwszy to tak zwany dozwolony użytek, bardzo często przywoływany w sporach o bezpłatne użycie oprogramowania i zakres tego użycia. Najczęściej dotyczy gier komputerowych ale nie tylko. Drugi to charakter oprogramowania, jakim jest kod źródłowy będący tekstem, oraz efekt ostateczny, jakim jest “komputer realizujący określony mechanizm”, gdzie komputer definiujemy jako “procesor, pamięć i program” [zotpressInText item=”{5085975:CYE2J6CQ}”]. Warto tu zwrócić uwagę na pewien “drobiazg”: autorka (jak wielu innych prawników) traktuje treść programu jako “tekst” i nie raz stosuje analogię do typowych utworów pisanych takich jak proza czy poezja, co jest poważnym błędem. Fragmenty tekstów (esej, praca doktorska, powieść, itp.) bardzo często mają wartość, czego o nie można powiedzieć o oprogramowaniu (nie działa w kawałkach). Owszem, można potraktować fragmenty kodu “literaturowo”, jako przykłady jego struktry i składni (np. literatura na temat wzorców projektowych w inżynierii oprogramowania), jednak nie można mówić o fragmencie kodu, że to “oprogramowanie”, gdyż to z zasady “musi działać”, a jest to możliwe tylko wtedy gdy do komputera załadujemy kompletny program a nie “cytowany fragment”.

(more…)

Wprowadzenie

Od czasu do czasu jestem pytany o to, kiedy używać diagramu aktywności UML. Od 2015 roku specyfikacja UML wskazuje, że diagramy te są narzędziem modelowania metod czyli logiki kodu (dla Platform Independent Model): aktywności (activities) to nazwy metod, zadania/kroki (actions) to elementy kodu (przykłady w dalszej części).

Gdy powstawał UML, diagramy aktywności były używane także do modelowanie procesów biznesowych. W roku 2004 opublikowano specyfikację notacji BPMN, która w zasadzie do roku 2015 “przejęła” po UML funkcję narzędzia modelowania procesów biznesowych. W 2015 roku formalnie opublikowano specyfikację UML 2.5, gdzie generalnie zrezygnowano z używania UML do modeli CIM. Obecnie Mamy ustabilizowaną sytuację w literaturze przedmiotu: BPMN wykorzystujemy w modelach CIM (modele biznesowe), UML w modelach PIM i PSM jako modele oprogramowania (a modele systemów: SysML, profil UML).

Na przełomie lat 80/90-tych rozpoczęto prace nad standaryzację notacji modelowania obiektowego, w 1994 opublikowano UML 0.9, w 2001 roku pojawiają się pierwsze publikacje o pracach nad notacją BPMN, jednocześnie pojawia się Agile Manifesto, od 2004 roku ma miejsce spadek zainteresowania dokumentowaniem projektów programistycznych, w 2004 rok publikowano specyfkację BPMN 1.0, od tego roku ma miejsce wzrost zainteresowania modelowaniem procesów biznesowych, powoli stabilizuje się obszar zastosowania notacji UML. W 2015 roku opublikowano UML 2.5, stosowanie analizy (CIM) i i projektowania (PIM), jako etapu poprzedzającego implementacje, stało się standardem (źr. wykresu: Google Ngram).

Tak więc obecnie:

Nie używamy diagramów aktywności do modelowania procesów biznesowych. Do tego służy notacja BPMN!

Diagram aktywności [zotpressInText item=”{5085975:DCYU6XZJ}”] może być modelem kodu na wysokim lub niskim poziomie abstrakcji, operujemy wtedy odpowiednio aktywnościami (activity) lub działaniami (actions). Te ostatnie to w zasadzie reprezentacja poleceń programu.

Nie ma czegoś takiego jak “proces systemowy”, oprogramowanie realizuje “procedury”.

Projektując oprogramowanie zgodnie ze SPEM [zotpressInText item=”{5085975:IFJKR4D2}”], powstaje Platform Independent Model. W praktyce już na tym etapie programujemy, bo tworzymy logikę i obraz przyszłego kodu. Taka forma dokumentowania pozwala także lepiej chronic wartości intelektualne zamawiającego.

(more…)