Tym razem mała pole­mi­ka czy­li kontr­pro­po­zy­cja. Celem arty­ku­łu nie jest kry­ty­ka cudze­go pro­jek­tu, dale­ki jestem od tego. Celem jest poka­za­nie, że są roż­ne meto­dy ana­li­zy i pro­jek­to­wa­nia. Czytelnik sam doko­na porów­na­nia i ewen­tu­al­nej oce­ny. Drugim celem jest wska­za­nie pew­nych metod mode­lo­wa­nia, speł­nia­ją­cych obiek­to­wy para­dyg­mat i obiek­to­we meto­dy ana­li­zy i pro­jek­to­wa­nia, w odróż­nie­niu od metod mają­cych nadal pod­sta­wy w ana­li­zie struk­tu­ral­nej. Najpierw cytat z pew­ne­go por­ta­lu (źró­dło pod cytatem):

Kilka słów o tym, co chciał­bym przed­sta­wić: mamy klien­ta (klien­tów), któ­ry skła­da zamó­wie­nia on-line u dostaw­cy pew­nych produktów,u dostaw­cy dostęp­ne jest wie­le pro­duk­tów, o róż­nych cenach, para­me­trach, wadze itp.,zamówienie może się skła­dać z od jed­ne­go do wie­lu produktów,za zamó­wie­nie klient może doko­nać płat­no­ści na 3 róż­ne spo­so­by: kar­tą kre­dy­to­wą, prze­le­wem lub gotów­ką. Mamy więc: Klienta, Zamówienie, Produkt oraz Płatność, co na dia­gra­mie moż­na przed­sta­wić następująco:

źr. Diagram klas ? ?rein­ży­nie­ria? (etap 1) ? Modelowanie pro­ce­sów biz­ne­so­wych.

Tam więc mamy opis, cza­sem nazy­wa­ny magicz­nie: user sto­ry”. Na bazie opi­su powstał dia­gram klas. Tak wła­śnie wyglą­da wie­le ana­liz wyma­gań. Ta jest cał­kiem przy­zwo­ita, więk­szość koń­czy na zare­je­stro­wa­niu tego user sto­ry” i prze­re­da­go­wa­niu go do jakiejś okre­ślo­nej struk­tu­ral­nej posta­ci nazwa­nej następ­nie Wymagania Użytkownika. Kłopot w tym, że – jak wie­lu pew­nie z czy­tel­ni­ków już się prze­ko­na­ło – tak okre­ślo­ne wyma­ga­nia i pro­jekt są w trak­cie imple­men­ta­cji per­ma­nent­nie zmie­nia­ne w takt odkry­wa­nia rze­czy, oczy­wi­stych dla użyt­kow­ni­ka, o któ­rych nam w swo­im user sto­ry” nie powiedział.

Jak już chy­ba każ­dy mój czy­tel­nik wie, pre­fe­ru­je meto­dy for­mal­ne. Tak wiec zamiast mode­lo­wać od razu sys­tem” i brać się za jego imple­men­ta­cję (pierw­szy pro­to­typ? zwin­ne two­rze­nie opro­gra­mo­wa­nia itp.…) bio­rę na tape­tę to user sto­ry” i spraw­dzam jego spój­ność. Jak? Ano two­rze model pro­ce­su, któ­ry to user sto­ry” opi­su­je. I co powstaje?

Jak widać, user sto­ry” jest dziu­ra­we jak ser szwaj­car­ski. Pojawiły się nowe zda­rze­nia i doku­men­ty wraz ze sta­tu­sa­mi. Uzupełnieniem tego dia­gra­mu powin­ny być wzo­ry doku­men­tów oraz ogra­ni­cze­nia np. pro­dukt umiesz­czo­ny na Zamówieniu musi być blo­ko­wa­ny na czas jego prze­twa­rza­nia. Etap obsłu­gi płat­no­ści powo­du­je zdję­cie blo­ka­dy lub zdję­cie z maga­zy­nu, zależ­nie od fina­łu transakcji.

Teraz dopie­ro przy­cho­dzi pora na ana­li­zę o two­rze­nie dia­gra­mu klas a kon­kret­nie mode­lu dzie­dzi­ny. Kandydatami na kla­sy są doku­men­ty, zda­rze­nia i ewen­tu­al­nie role (akto­rzy, a raczej dane o nich). Kandydatem na kla­sę są tak­że regu­ły biz­ne­so­we i ich wyko­naw­cy”. Teraz jest moment na zde­kla­ro­wa­nie się co do sty­lu ana­li­zy i pro­jek­to­wa­nia. Po pierw­sze jako bazy uży­wam wzor­ca MVC i meto­dy­ki opi­su­ją­cej jak two­rzyć ele­ment o nazwie Model w MVC czy­li Domain-Driven Design, któ­rej twór­cą jest Eric Evans.

Po co to robię? Dlaczego pod­no­szę pra­co­chłon­ność ana­li­zy wyma­gań i pro­jek­tu­ję model kon­cep­cyj­ny do testów? Ano po to by błę­dy i nie­spój­no­ści odkryć teraz, bo na eta­pie imple­men­ta­cji ich usu­wa­nie będzie nawet 100 razy droż­sze. Czy takie błę­dy są w pro­jek­tach o uprosz­czo­nych ana­li­zach biz­ne­so­wych (lub wręcz pomi­nię­tych?) Ci co mają takie pro­jek­ty za sobą wie­dzą dosko­na­le, że są i to pra­wie zawsze…

W następ­nej czę­ści przy­pad­ki uży­cia, dia­gram klas czy­li model dzie­dzi­ny oraz ich testowanie.

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

  1. Tomek

    W arty­ku­le pod­su­wa Pan slusz­ne tezy. Natomiast dia­gram pro­ce­su wygla­da tak jak­by sto­so­wal Pan w mysli logi­ke dia­gra­mu aktyw­no­sci UML, zas do zobra­zo­wa­nia wybral Pan nota­cje odcho­dza­ca w stro­ne BPMN. Skad ta nie­kon­se­kwen­cja? Czyzby pro­bo­wal Pan sie dopie­ro prze­ko­nac do nowej nota­cji, spo­so­bu myslenia?

  2. Jarek Żeliński

    Nie do koń­ca mogę się z tym zgo­dzić ;). Diagramem aktyw­no­ści UML było by trud­no (zapew­ne się da ale cie­kaw jestem póź­niej­szej jego zro­zu­mia­ło­ści w gro­nie biz­ne­so­wym”) opi­sać dia­log B2B roz­róż­nia­jąc prze­pływ ste­ro­wa­nia od komu­ni­ka­tów (pomię­dzy pod­mio­ta­mi na ryn­ku nie ma ste­ro­wa­nia, są tyl­ko prze­ka­zy­wa­ne infor­ma­cje! bo nie ma tu rela­cji prze­ło­żo­ny-pod­wład­ny) i prze­pły­wu danych, dla­te­go celo­wo uży­wam na tym eta­pie BPMN (któ­ry się do tego dosko­na­le nada­je). Nie widzę tu żad­nej nie­kon­se­kwen­cji (gdzie ona?). Istotne było poka­za­nie współ­bież­no­ści czyn­no­ści i zda­rze­nia syn­chro­ni­zu­ją­ce. Jak napi­sa­łem: pierw­szy etap to część biz­ne­so­wa, tu jest to mode­lo­wa­nie i testo­wa­nie pro­ce­su zaku­pu reali­zo­wa­ne­go przez klien­ta. Na tym eta­pie nie ma żad­ne­go UML (celo­wo, a nota­cję BPMN testu­ję i uży­wam pra­wie od momen­tu jego poja­wie­nia się). Nie uży­łem celo­wo nawet poję­cia for­mu­larz WWW” gdyż pro­ces ten co do zasa­dy opi­su­je cel czyn­no­ści i jej sce­na­riusz” a nie implementację.

    Tak więc celem tego dia­gra­mu na tym eta­pie było tyl­ko (i aż) prze­te­sto­wa­nie spój­no­ści tre­ści user sto­ry” i uzu­peł­nie­nie jej o bra­ku­ją­ce ele­men­ty. Ten etap nazy­wa­ny jest czę­sto pro­of-of-con­cept na eta­pie opi­su biz­ne­so­we­go. Faktem jest, że dia­gram jest dość szcze­gó­ło­wy jak na pro­ces biz­ne­so­wy ale od cze­go są dekom­po­zy­cje, one pro­wa­dzę do tego pozio­mu szcze­gó­ło­wo­ści jeśli jest taka potrzeba.

    1. Tomek

      oj, to chy­ba już nie będę drą­żył… Activity UMLowe jak naj­bar­dziej sto­su­je pools, komu­ni­ka­cję, nie trze­ba wca­le uży­wać prze­pły­wów ste­ro­wa­nia. Ostatnio (w prze­cią­gu mie­sią­ca) czy­ta­łem arty­kuł o tym jak to nie­po­trzeb­nie UML się tu zbli­ża (widocz­nie to nie Pan pisał).
      Niemniej – prze­ko­nał mnie Pan, że moja obser­wa­cja nie mia­ła pod­staw 😉 W pew­nym sen­sie więc mam odpo­wiedź na moje pyta­nie. Dziękuję 🙂

    2. Jarek Żeliński

      Tak dla porząd­ku: nie negu­ję moż­li­wo­ści dia­gra­mu aktyw­no­ści w obsza­rze pro­ce­sów biz­ne­so­wych, nie uży­wam go do mode­lo­wa­nia pro­ce­sów głow­nie dla­te­go, że BPMN po pierw­sze gene­ru­je kod XPDL (UML nie) i jeże­li mam się zasta­na­wiać jakiej nota­cji użyć w danym momen­cie po pro­tu nie zasta­na­wiam się tyl­ko na eta­pie ana­li­zy biz­ne­so­wej zawsze uży­wam BPMN, jest to czy­sta wygo­da i moja i zama­wia­ją­ce­go tym bar­dziej, że pro­jek­ty z zakre­su inży­nie­rii opro­gra­mo­wa­nia to nie jedy­ne moje pro­jek­ty biznesowe :).

  3. Zastanawiam się czy sto­su­je Pan (czy war­to sto­so­wać) dia­gra­my pro­ce­sów biz­ne­so­wych zarów­no, by opi­sać wszyst­kie waż­ne pro­ce­sy ze świa­ta zama­wia­ją­ce­go, w celu ich zro­zu­mie­nia, jak i póź­niej do prze­te­sto­wa­nia user sto­ries? Czy one się czymś róż­nią (poza przed­sta­wia­nym zakre­sem)? A może to to samo?

    Czy oba potwier­dza Pan z zama­wia­ją­cym? Wydawałoby się, że zatwier­dzi­my to, co jest zapi­sem nasze­go zro­zu­mie­nia, a zapi­su pro­jek­to­wa­nia już nie. Jednak gdzie dokład­nie leży ta gra­ni­ca, któ­ra mówi o tym, co zatrzy­mać dla sie­bie jako część pro­ce­su ana­li­zy i nie zamę­czać klienta?

    1. Jarek Żeliński

      oso­bi­ście z powo­dów semio­tycz­nych” (semio­ty­ka) uży­wam jed­nej nota­cji (sys­tem zna­ków itp.) do jed­ne­go pro­ble­mu, uży­wam BPMN tyl­ko do mode­lo­wa­nia biz­ne­su”, sce­na­riu­sze UC opi­su­ję w punk­tach i dia­gra­mem sekwen­cji. Dzięki temu czy­tel­nik ma per­cep­cyj­ny” roz­dział dzie­dzin (biz­nes – BPMN, sys­tem UML).

  4. Joanna

    Bardzo pro­szę o poka­za­nie dia­gra­mu procesu.
    Aktualnie widzę jedy­nie: „[sin­gle­pic id=64 w=580 h=580 float=center]”

    1. Jaroslaw Zelinski

      To nie­ste­ty pozo­sta­ło­ści po rein­sta­la­cji, któ­rych nie wychwy­ci­łem. Uzupełniłem bra­ku­ją­cy dia­gram. W raze pytań pro­szę tu pisać.

Dodaj komentarz

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