Inżynieria systemów oparta na modelach (MBSE) jest sformalizowaną metodologią, która jest używana do wspierania wymagań, projektowania, analizy, weryfikacji i walidacji związanych z rozwojem złożonych systemów. W przeciwieństwie do inżynierii skoncentrowanej na dokumentach, MBSE stawia modele w centrum projektowania systemu. Zwiększone przyjęcie środowisk modelowania cyfrowego w ciągu ostatnich kilku lat doprowadziło do zwiększonego przyjęcia MBSE. W styczniu 2020 roku NASA odnotowała ten trend, informując, że MBSE “jest coraz częściej przyjmowane zarówno przez przemysł, jak i rząd jako sposób na śledzenie złożoności systemu.” W tym wpisie na blogu przedstawiam krótkie wprowadzenie do MBSE.
Wprowadzenie Bardzo często można w książkach i na blogach spotkać opisy wzorców architektonicznych, wzorców projektowych, dobrych praktyk. Jednak bardzo rzadko autorzy piszą o tym kiedy je stosować. Sam fakt, że jakiś wzorzec "rozwiązuje jakiś problem", co jest celem tworzenia i stosowania danego wzorca, nie mówi nic o tym jak często i kiedy dany problem się pojawia. Komputer może być częścią firmy, samochodu, lodówki, telewizora, może być platformą dla oprogramowania użytkowego albo dla gier komputerowych, ale te - użyte - staja sie częścią tego komputera (gramy na komputerze a nie na…
Wprowadzenie Stale śledzę to co świat nazywa "publikacje naukowe". Niestety notuje powolny upadek nauki, w już w branży informatyki postęp tego upadku jest chyba najszybszy. Regularnie czytam, że w Internecie jest łatwy dostęp do dobrej darmowej wiedzy i publikacji naukowych. Popatrzmy co znalazłem: Szynalski, K., & Różański, D. (2022). Wprowadzenie do modelowania w języku UML. Biuletyn Naukowy Wrocławskiej Wyższej Szkoły Informatyki Stosowanej. Informatyka, 9(1), 31–37. https://bibliotekanauki.pl/articles/2146699.pdf To nie tylko "Darmowa wiedza w Internecie" to "publikacje naukowe", a Panowie autorzy pewnie się (mam nadzieję, że nie) doktoryzują (pozakładali sobie numery ORCID).…
Wprowadzenie Od czasu do czasu dostaję emaile rozpoczynające się od słów: "A tu programista i pisze inaczej". Tym razem dostałem od czytelnika link do tekstu Diagramy klas UML https://web.archive.org/web/20240428033730/https://www.p-programowanie.pl/uml/diagramy-klas-uml). Artykuł ten w zasadzie w całości jest lawiną nieprawdy o UML. Odniosę się do części dotyczącej notacji UML i powiązanych z nią fałszywych treści. Wszystkie cytaty pochodzą z ww. artykułu (inne oznaczono, źródłami). Recenzja Artykuł jest datowany na 30 września 2022. Aktualna wersja notacji UML 2.5.1 pochodzi z Grudnia 2017 roku, kluczowe zmiany: rezygnacja z podziału na Superstructure i Infrastructure, usunięcie…
Wprowadzenie
24 Października 2024 Miała miejsce konferencja Kongres Cyfrowa Transformacja w Biznesie 2024. Zaproszono mnie do wygłoszenia referatu merytorycznego na temat:
Różne podejście do transformacji cyfrowej w obliczu długu technologicznego i systemów legacy. Jak przygotować organizację i jakie zmiany kultury organizacyjnej są niezbędne, aby transformacja cyfrowa mogła zakończyć się sukcesem.
- pojęcie długu technologicznego,
- czym jest dług informacyjny,
- migracja “do nowego” i jak sie do niej przygotować,
- zmiany kultury organizacyjnej czyli co to jest “deployment be design” jako metoda wdrażania,
- czym tu jest sukces czyli jak go zdefiniować.
Poniżej slajdy z prezentacji i krótkie komentarze do kluczowych omówionych tez. Zapraszam na kolejne moje wystąpienia.
(więcej…)
architektura systemu workflow
Wprowadzenie
W 2017 roku napisałem referat na pewną konferencję naukową studentów. Artykuł dotyczył architektury kodu. Jedną z ilustracji była ta:
Artykuł kończyłem słowami:
Nie chodzi więc o to by podzielić oprogramowanie na “składowe, które łączą w sobie możliwość przechowywania danych oraz wykonywania operacji”. Chodzi o to by mechanizm, o dowiedzionej poprawności, zaimplementować w określonej wybranej technologii.Chodzi też o to by nie udawać, że programowanie jako “podzielone na obiekty” partie kodu, nadal korzystające z jednej wspólnej bazy danych, różni się czymkolwiek od “strukturalnego kodu”. Chodzi o to by kod programu faktycznie implementował określony (zbadany i opisany) mechanizm. (źr.: Architektura kodu aplikacji jako pierwszy etap tworzenia oprogramowania – Jarosław Żeliński IT-Consulting)
W 2021 roku opisałem Architektoniczne wzorce projektowe w analizie i projektowaniu modelu dziedziny systemu. Artykuł jest ukierunkowany na ich definicje i modelowanie. Tu kilka słów na temat tego “skąd się biorą i po co”.
(więcej…)
Wprowadzenie Swego czasu opisywałem wzorce projektowe i API (Integracja systemów ERP jako źródło przewagi rynkowej. Projektowanie REST API i scenariuszy). Kluczowym wzorcem jest wzorzec SAGA, czyli sterowanie sekwencją wymiany danych z jednego miejsca. Wzorzec ten to typowy system klient-serwer (usługobiorca-usługodawca) i sprawdza się doskonale, gdy sterowanie z jednego miejsca rozwiązuje wszystkie problemy integracji. Pewnym problem jest tu jednak to, że serwer musi zostać odpytany by klient poznał jego stan, a nie zawsze jest to wystarczające. Opis problemu Wyobraźmy sobie, że mamy system WMS (ang. Warehouse Managements System, zarządzanie magazynami) oraz…
Wprowadzenie Na LinkedIn rozgorzało kilka dyskusji na temat ról w projektach na etapie zawierania umowy i trakcie jej realizacji (tu jedna z nich). Cały czas jednak moim celem jest szukanie przyczyn poniższego stanu rzeczy: Jak widać, ponad 90% projektów średnich i większych, to projekty problematyczne (w tym ok. w ćwierci to projekty zarzucone przed ukończeniem). Projekty problematyczne to przekroczony budżet i niedotrzymany termin. Standardową przyczyną przerwania prac jest wyczerpanie planowanego (dostępnego) budżetu . Nieskromnie napiszę, że od lat jestem w zielonej kolumnie. Bywam też biegłym i ekspertem audytującym dokumenty projektowe,…
Wprowadzenie Artykuł Architektura kodu aplikacji jako pierwszy etap tworzenia oprogramowania napisany w 2017 roku, kończyłem słowami: Nie chodzi więc o to by podzielić oprogramowanie na “składowe, które łączą w sobie możliwość przechowywania danych oraz wykonywania operacji”. Chodzi o to by mechanizm, o dowiedzionej poprawności, zaimplementować w określonej wybranej technologii. https://it-consulting.pl/2017/07/15/architektura-kodu-aplikacji-jako-pierwszy-etap-tworzenia-oprogramowania/ Dokumentowanie i dokumentacja w projektach inżynierii oprogramowania to temat wielu i sporów i nieporozumień. Jednak kluczowymi błędami są najczęściej: teza, że dokumentację tworzymy po zakończeniu prac, teza, że jest to "jedna dokumentacja". ad.1. Niestety to najgorsza forma, bo etap rozwiązywania…
Wprowadzenie Od kilku już lat jestem, jako ekspert, angażowany jako rzeczoznawca do sporządzania opinii na zlecenie sądów (opinia biegłego) lub jednej ze stron sporu (opinia prywatna). Są to spory dotyczące nieudanych dostaw i wdrożeń oprogramowania, nie tylko ERP, bardzo często także dedykowanego. Po tych latach wyłania się pewien wspólny mianownik, łączący te porażki scenariusz: firma dostaje ofertę na dostarczenie i wdrożenie oprogramowania, ma miejsce prezentacja pomysłu, jakieś makiety, jakaś działająca funkcjonalność, przedmiotem oferty jest prezentowane istniejące oprogramowanie z obietnicą jego dostosowania (kastomizacji), lub oferta wykonania dedykowanego oprogramowania, projekt przyjmuje formę…
Friedenthal, S., Moore, A., & Steiner, R. (2015). A practical guide to SysML: the systems modeling language (Third edition). Elsevier, MK, Morgan Kaufmann is an imprint of Elsevier. https://www.sciencedirect.com/book/9780128002025/a-practical-guide-to-sysml
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…
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 i model w nauce to bliskie sobie pojęcia, np. tak opisywane: Modelowanie polega na…
Wprowadzenie Bardzo często na szkoleniach, a także na zajęciach laboratoryjnych z przedmiotu Inżynieria oprogramowania, jestem pytany o przypadki użycia i ich scenariusze. Szczególnie często pada pytanie czy przypadek użycie reprezentuje tylko jeden scenariusz. Przypadki użycia w UML to "dzieło" Ivara Jacobsona . Pierwotnie było to narzędzie do opisu zewnętrznych cech (zachowań) systemu, rozumianych jako jego oczekiwane zachowania, czyli wymagania wobec systemu. Był to tak zwany "opis czarnej skrzynki". Problemem było to, że "czarna skrzynka" mówi CO ale nie mówi JAK. Jacobson opisywał przypadki użycia z pomocą warunków (stanów początkowego i…