Read more about the article Kiedy maszyna stanowa a kiedy jednak status?
Autorstwa Clemens PFEIFFER - Praca własna: CANON PowerShot G7, CC BY 2.5, https://commons.wikimedia.org/w/index.php?curid=1441506

Kiedy maszyna stanowa a kiedy jednak status?

Różnica między stanem a statusem obiektu

Wstęp

Od czasu do czasu wpadają mi maile z pytaniami jak to:

Chcę zamodelować dynamiczne zachowanie / stany smartfona (np. wyłączenie smartfona, inicjalizacja, tryb czuwania, użycie) w diagramie maszyny stanów SysML. Dla stanu użytkowania istnieją również podstany takie jak dzwonienie, latarka lub robienie zdjęć. Nie jestem pewien czy powinienem modelować te podstany, a jeśli tak, to jak mogę je modelować (szczególnie biorąc pod uwagę fakt, że każdy z tych podstanów może zmieniać się w inny, jak również mogą one działać równolegle).
Moim zdaniem są różne opcje:
1.) Po prostu uwzględnić je jako aktywność w użyciu stanu
2.) Wymodelować je w oddzielnym diagramie maszyny stanów
3.) Modelować je w oddzielnym diagramie aktywności (czy mozna użyć diagramu aktywności zamiast diagramu maszyny stanowej?)

Takie i podobne pytania pojawiają się w mailach do mnie często, ale zanim na nie odpowiem tu, opiszę czym jest model (diagram) maszyny stanowej. Pokażę także dlaczego, np. próby wdrażania obiegów dokumentów na bazie wzorca “maszyny stanowej” sprawiają ogromne kłopoty, lub po prostu się nie udają.

Na początek to, co znajdziemy np. w Longman English Dictionary:

status: a situation at a particular time, especially in an argument, discussion etc. (sytuacja w określonym czasie, zwłaszcza w kłótni, dyskusji itp.)
state: the physical or mental condition that someone or something is in (stan fizyczny lub psychiczny, w jakim znajduje się ktoś lub coś)

źr.: Longman English Dictionary https://www.ldoceonline.com/

Tak więc generalnie status to ogląd obiektu z zewnątrz, stan to cecha obiektu. Innymi słowy moja choroba to mój stan, ale moja niezdolność do pracy to aktualny mój status (wynika on nie z choroby, a z ustalenia, że chorzy nie pracują, to nie to samo). Zapraszam do lektury.

(więcej…)

Czytaj dalejKiedy maszyna stanowa a kiedy jednak status?

Transformacja Cyfrowa a dziedzictwo IT

Wstęp

Transformacja cyfrowa, jest przez dostawców technologii informatycznych, najczęściej definiowana jako integracja technologii cyfrowej z działalnością firmy. Poniżej wybrane definicje, które najczęściej znajdujemy w sieci:

Transformacja cyfrowa definiuje się jako integrację technologii cyfrowej ze wszystkimi obszarami funkcjonowania firmy. Dzięki niej możliwe jest wykorzystanie gromadzonych danych do tworzenia innowacyjnych usług i poszerzenia dotychczasowej oferty.

Cyfrowa transformacja to nic innego jak integracja technologii cyfrowej we wszystkich obszarach działalności firmy oraz zmiana sposobu, w jaki działasz i zapewniasz klientom wartość. To także zmiana kulturowa, która wymaga od organizacji ciągłego rzucania sobie wyzwań, eksperymentowania, ale również godzenia się z porażką. Transformacja cyfrowa jest procesem nieuniknionym, niezależnie od rozmiaru przedsiębiorstwa.

Transformacja cyfrowa odnosi się do procesów i strategii wykorzystania technologii cyfrowej do radykalnej zmiany sposobów, w jakie przedsiębiorstwa prowadzą działalność i obsługują klientów. Termin ten stał się w epoce cyfryzacji wszechobecny. Spowodowane jest to tym, że każda organizacja ? niezależnie od jej rozmiaru i branży ? coraz bardziej opiera się na danych i technologii, aby zwiększać wydajność swojej działalności i zapewniać wartość swoim klientom.

Ogólne idee wiedzy jako fundamentu nowej gospodarki i informacji jako najważniejszego zasobu wypełniają się treścią i rodzą nowe pojęcia: smart devices i weareables, Big Data, mobilność, chmura obliczeniowa, platformy społecznościowe, bio- i nanotechnologie, Internet of Things, energia odnawialna czy share economy?

Dominuje “integracja technologii cyfrowej z działalnością firmy”. Osobiście jestem zwolennikiem tezy, że nie tyle firmy co generalnie człowieka. Czym jest tu sama integracja technologii z działalnością człowieka? Maszyny nie myślą, jednak przetwarzają dane. Człowiek nadaje znaczenie danym, potrafi je także przekształcać. Cyfrowa transformacja to proces przenoszenia przetwarzania danych z człowieka na maszyny: to już nie my ludzie wyszukujemy dokumenty w archiwach, robi to elektroniczne archiwum, nie my ludzie obsługujemy klientów za ladą, coraz częściej robi to Internetowy Sklep. Cyfrowa transformacja to właśnie proces przenoszenia części pracy z człowieka na maszyny.

Aby transformacja cyfrowa była w ogóle możliwa, musimy przenieść te dane (treści, informacje) z papieru “do komputera”, w sposób nieniszczący obecnych możliwości i pozwalający na tworzenie nowych.

Trzeba też zniwelować posiadany dług technologiczny. Dług technologiczny to posiadane dziedzictwo, to zapóźnienie, to pozostawanie w tyle za trwającym postępem technologicznym. Dług taki ma bardzo wiele firm. Co z nim zrobić i jak z niego wyjść?

(więcej…)

Czytaj dalejTransformacja Cyfrowa a dziedzictwo IT

Opis wymagań z użyciem Gherkin – czyli dużo korniszonów…

Wstęp

Zostałem niedawno zapytany czy pomogę bo “mamy już ponad 150 przypadków użycia w dokumentacji…”. Myślę sobie, to niemożliwe, nie ma tak wielkich systemów (wycena okazała się w efekcie pięciokrotnie zawyżona tylko dlatego, że użyto metody zorientowanej na “user story”).

(więcej…)

Czytaj dalejOpis wymagań z użyciem Gherkin – czyli dużo korniszonów…

Odpowiedzialność projektanta systemu

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.

(więcej…)

Czytaj dalejOdpowiedzialność projektanta systemu

Architektoniczne wzorce projektowe w analizie i projektowaniu modelu dziedziny systemu

Wprowadzenie

W artykule o aplikacjach webowych, ponad rok temu, pisałem:

Generalnie klu­czo­wą cechą micro-ser­wi­sów, czy­nią­cą z nich tak zwa­ną zwin­ną archi­tek­tu­rę, jest cał­ko­wi­ta wzajemna nie­za­leż­ność imple­men­ta­cji poszcze­gól­nych usług aplikacyjnych. (źr.: Aplikacje webowe i mikroserwisy czyli architektura systemów webowych).

Przy innej okazji pisałem o wzorcach:

Wzorce pro­jek­to­we to bar­dzo waż­na część ??zawo­du? ana­li­ty­ka i archi­tek­ta opro­gra­mo­wa­nia. […] Generalnie wzor­ce są to ska­ta­lo­go­wa­ne stan­dar­dy i dobre prak­ty­ki . (Obiektowe wzorce projektowe )

Szkolenia dla analityków poprzedzam ankietami przed szkoleniowymi, jak do tej pory żadna nie zawierała pytań o wzorce projektowe: ani tego że są używane ani tego, że są celem szkolenia, niemalże każdy deklaruje albo, że używa UML lub, że chce zacząć używać UML, nawet gdy są to programiści. Zauważyłem, że wzorce projektowe w świadomości analizy biznesowej i projektowania (OOAD) “nie istnieją”. Wśród programistów, jeżeli jest spotykana, to wiedza o wzorcach przydatnych w tworzeniu bibliotek i narzędzi, często też powielane są wyuczone stare i złe praktyki programistyczne rodem z lat 60-tych (np. praktyki SmallTalk, patrz dalej).

Z drugiej strony od wielu lat znane są techniki MDA (Model Driven Architecture) czy MBSE (Model Based System Engineering), które w różnych formach, ale jednak wskazują, że najskuteczniejsza forma wyrażania wymagań wobec rozwiązania to projekt architektury i logiki dziedzinowej (model) działania aplikacji . O projektowaniu poprzedzającym implementację pisze sie od dość dawna, metody obiektowe i dobre praktyki znane są od lat .

Autorzy BABoK praktycznie od początku istnienia tego wydawnictwa, zwracają uwagę na tak zwaną “białą skrzynkę”, czyli wymagania wyrażone w postaci wewnętrznej struktury produktu, wskazując, że to znacznie skuteczniejsza metoda definiowania wymagań wobec rozwiązania, niż tak zwana “czarna skrzynka”, czyli tradycyjne, i jednak mniej skuteczne, wymagania wyrażone tylko jako cechy funkcjonalne i poza-funkcjonalne. Pamiętajmy, że adresatem wymagań jest zawsze dostawca produktu!

(więcej…)

Czytaj dalejArchitektoniczne wzorce projektowe w analizie i projektowaniu modelu dziedziny systemu

Koniec treści

Nie ma więcej stron do załadowania