Visual Paradigm 15.0 Released

Dzisiejszej nocy opu­bli­ko­wa­no wer­sję 15 pakie­tu CASE Visua-Paradigm. Producent tego opro­gra­mo­wa­nia kon­se­kwent­nie pnie się na szczyt roz­wią­zań CASE w swo­jej kla­sie, a jako obser­wa­tor i użyt­kow­nik powiem tak: stra­te­gia jest pro­sta czy­li apli­ka­cja dla ana­li­ty­ka, pro­jek­tan­ta i archi­tek­ta ma udo­stęp­niać naj­wyż­szej kla­sy narzę­dzia do pra­cy ze stan­dar­do­wy­mi nota­cja­mi i zgod­nie z ich spe­cy­fi­ka­cja­mi, wspie­rać poję­cio­we i logicz­ne śla­do­wa­nie pomię­dzy mode­la­mi, w niczym nie ogra­ni­czać ana­li­ty­ka (nie narzu­cać żad­nej meto­dy­ki postę­po­wa­nia), dać narzę­dzia do pra­cy na eta­pie nie­for­mal­nym, wspie­rać cały pro­ces MDA jaki zwin­ne meto­dy pra­cy, i co naj­waż­niej­sze: dać narzę­dzie do komu­ni­ka­cji pomię­dzy uczest­ni­ka­mi projektu.

I taki jest Visual od lat, kolej­ne 15. wcie­le­nie, to jesz­cze wię­cej inte­gra­cji i jesz­cze wię­cej komunikacji:

Feb 27, 2018 – Visual Paradigm International Limited anno­un­ced today the rele­ase of Visual Paradigm 15.0.

Visual Paradigm 15.0 intro­du­ces a num­ber of new featu­res, which includes:

  • Wireflow Diagram
  • Animating paths in Wireflow Diagram
  • STEPS – Efficient design and ana­ly­sis with pre­scri­bed wizards
  • Visual API desi­gner for Swagger-based RESTful API
  • Swagger-based RESTful API generation
  • Visual API desi­gner for API-Blueprint for­mat­ted RESTful API
  • API-Blueprint for­mat­ted RESTful API generation
  • [VP Online] New dia­gram: ER Diagram
  • [VP Online] New dia­gram: Organization Chart
  • [VP Online] New dia­gram: Mind Map
  • [VP Online] New dia­gram: DFD
  • [VP Online] New dia­gram: Venn Diagram
  • [VP Online] New dia­gram: Floor Plan
  • [VP Online] Google Drive integration
  • [VP Online] Real-time syn­chro­ni­za­tion of diagrams
  • [VP Online] Multilingual support
  • [VP Online] Visio dra­wing import
  • [VP Online] Multi-pages support

Enhancements to Visual Paradigm 15.0 includes:

  • Upgraded Hibernate ver­sion to 5.1
  • Improved sta­bi­li­ty in High DPI environments
  • Refined data for­war­ding mecha­nism for TOGAF ADM
  • Supported hiding inter­fa­ce cap­tion in ArchiMate diagram
  • Supported impor­ting sty­les for gene­ra­te deliverables
  • Supported apply­ing Shape Legend on connectors
  • Supported adding one sha­pe to mul­ti­ple layers
  • Supported sen­ding sha­pes from Business Concept Diagram to backlog
  • Supported display­ing para­me­ter of entry/exit/do acti­vi­ty on State Machine Diagram
  • Supported ente­ring seve­ral deli­ve­ra­ble pro­per­ties as variables
  • Introduced new user per­mis­sion option to con­trol who can uplo­ad Just-in-Time Work Items to repository
  • Improved Traditional Chinese support

Source: Visual Paradigm 15.0 Released – ChangeLog – Discuss the Visual Paradigm

OMG’s MetaObject Facility

Końcówka roku, wręcz ostat­ni jego dzień 😉 …

Mając przed ocza­mi kolej­ny pro­jekt badaw­czy, kolej­ny raz gapię się na stro­ny OMG i mała reflek­sja: porząd­ki dobie­ga­ją koń­ca. W arty­ku­le o UML v.2.5. wspo­mi­na­łem, że zre­zy­gno­wa­no w koń­cu z poję­cia agre­ga­cji” (zwa­nej cza­sa­mi sła­bą kom­po­zy­cją”), odcho­dzi się od cał­ko­wi­cie zbęd­nych związ­ków extend” i inc­lu­de” w przy­pad­kach uży­cia (kon­struk­cje te nadal pozo­sta­ją w spe­cy­fi­ka­cji z uwa­gi na kom­pa­ty­bil­ność wstecz narzę­dzi CASE i doku­men­tów jakie w nich są nadal two­rzo­ne lub archi­wi­zo­wa­ne). Paradoksalnie spe­cy­fi­ka­cja UML jest uprasz­cza­na (sta­le tkwi w niej echo pier­wot­ne­go zlep­ku kil­ku nota­cji z lat 99-tych). Oczyma wyobraź­ni widzę jak ktoś, w toku prac nad UML, sta­le wyma­chu­je brzy­twą Ockhama”… 

Czytaj dalej… OMG’s MetaObject Facility”

Język czy notacja czyli co?

Od cza­su do cza­su jestem pyta­ny czy UML, BPMN, itp.. to nota­cje czy języ­ki, a pada­ją nawet pyta­nia czy to meto­dy. Otóż meto­dy na pew­no nie… (np. mamy dwie meto­dy mode­lo­wa­nia pro­ce­sów biz­ne­so­wych: z uży­ciem nota­cji BPMN i nota­cji eEPC). A pozo­sta­łe dwa?

Nie jest to pro­ste. Dzisiaj pój­dę może nie­co na skró­ty dla­te­go wni­kli­wym pole­cam lek­tu­rę przede wszyst­kim na temat semio­ty­ki, logi­ki i rachun­ku zdań.

Język i znaczenie

Na począ­tek kil­ka defi­ni­cji ogól­nych (wszyst­kie sł. j. pol­skie­go PWN):

język
5. ?utrwa­lo­ny spo­łecz­nie zespół zna­ków doty­czą­cych jakichś dzia­łań czło­wie­ka lub wyra­ża­ją­cych jego emo­cje oraz każ­dy układ ele­men­tów rze­czy­wi­sto­ści, któ­re­mu czło­wiek nadał jakąś treść?

Język jest więc okre­ślo­nym zespo­łem norm, są nimi jed­nak nie tyl­ko zna­ki ale tak­że to, co zna­czą i jaką treść nio­są. Wyrażanie emo­cji czy myśli w ogó­le, rzad­ko jest moż­li­we z uży­ciem tyl­ko jed­ne­go zna­ku. Dlatego w toku ich wyra­ża­nia ope­ru­je­my raczej zdaniami:

zda­nie
1. ?myśl wyra­żo­na słowami?
4. log. ?sen­sow­ne wyra­że­nie oznaj­mia­ją­ce pod­le­ga­ją­ce falsyfikacji?

Tu zaczy­na­my powo­li iść w porząd­ko­wa­nie tego o czym piszę. Każde zda­nie (w logi­ce) może być praw­dzi­we lub nie (tau­to­lo­gia jest zda­niem zawsze praw­dzi­wym, czy­li jest zna­ny fakt je fal­sy­fi­ku­ją­cy ale wie­my, że nigdy taki nie wystą­pi). Jeżeli więc, że treść naj­czę­ściej wyra­ża­my sło­wa­mi (a raczej rzad­ko nie jed­nym sło­wem) to zna­czy, że nale­ży umieć odczy­tać zna­cze­nie zło­że­nia wie­lu słów w jed­nym zda­niu. Jak wie­my o zro­zu­mia­ło­ści (zro­zu­mia­łość ozna­cza, że zda­nie ma dla czy­ta­ją­ce­go okre­ślo­ne zna­cze­nie) decy­du­je układ słów w zda­niu, zna­ki inter­punk­cyj­ne itp.

przecinek

Nawet prze­ci­nek ma zna­cze­nie (jest on ele­men­tem języ­ka) w zda­niu złożonym.

Jednoznaczność (zro­zu­mia­łość, zna­cze­nie) zdań jest tak­że efek­tem kontekstu:

kon­tekst
1. ?frag­ment tek­stu potrzeb­ny do dokład­ne­go rozu­mie­nia danych wyra­zów lub wyrażeń?
3. ?zespół jed­no­stek języ­ko­wych, któ­re sta­no­wią oto­cze­nie danej jednostki?
4. ?zespół odnie­sień nie­zbęd­nych do zro­zu­mie­nia utwo­ru lite­rac­kie­go, dzie­ła nauko­we­go itp.?

zakaz dobijania dziobem niejednoznacznoscJeżeli napi­szę Te dwie kro­wy są paskud­ne” to nadal nie ma pew­no­ści o czym mowa. Bez wie­dzy o tym, czy to roz­mo­wa dwóch rol­ni­ków o inwen­ta­rzu, czy też dwóch kole­ża­nek o dwóch innych, nie wie­my. Słowo palant” tak­że ma wię­cej niż jed­no zna­cze­nie i bez kon­tek­stu jego uży­cia nie wie­my o jakie zna­cze­nie cho­dzi (kole­ga czy mało już popu­lar­na gra) :). Bardzo czę­sto to wła­śnie kon­tekst nada­je znaczenie.

Jak widać zro­zu­mie­nie prze­ka­zu nie musi być pro­ste, a komu­ni­ka­cja pro­sta i łatwa (każ­dy kto się choć raz pokłó­cił z powo­du nie­po­ro­zu­mień o tym wie). Kontekstem zaj­mu­je się:

prag­ma­ty­ka
1. ?dział języ­ko­znaw­stwa, któ­re­go przed­mio­tem są spo­łecz­ne i sytu­acyj­ne warun­ki funk­cjo­no­wa­nia języ­ka oraz cele, jakie mówią­cy chce osią­gnąć przez uży­cie okre­ślo­nych wyra­zów i wyrażeń?

Należy pamię­tać, że zna­cze­nie mają nie tyl­ko poje­dyn­cze sło­wa (zna­ki) ale tak­że ich zło­że­nia („pro­ces biz­ne­so­wy” to jed­no poję­cie ale dwa sło­wa). Innymi sło­wy kon­kret­ne poję­cie może być zapi­sa­ne z uży­ciem jed­ne­go lub wię­cej znaków.

sło­wo
1. ?znak języ­ko­wy mają­cy jakieś znaczenie?

Dlatego zło­że­nie kil­ku zna­ków (słów) tak­że jest zna­kiem (defi­ni­cja sło­wa i słowo/pojęcie przez nią defi­nio­wa­ne, nio­są toż­sa­me zna­cze­nie). Słowo (rozu­mia­ne jako zapis: zło­że­nie liter) moż­na zastą­pić sym­bo­lem gra­ficz­nym (iko­na). O tym traktuje

semio­ty­ka
1. ?ogól­na teo­ria zna­ku w pro­ce­sie poro­zu­mie­wa­nia się ludzi?

w tym:

seman­ty­ka
1. ?dział języ­ko­znaw­stwa, któ­re­go przed­mio­tem jest ana­li­za zna­czeń wyrazów?
2. ?dział semio­ty­ki zaj­mu­ją­cy się bada­niem związ­ków, jakie zacho­dzą mię­dzy wyra­że­nia­mi języ­ka a przed­mio­ta­mi, do któ­rych się one odnoszą?

syn­tak­ty­ka
2. ?dział semio­ty­ki bada­ją­cy wza­jem­ne sto­sun­ki i wła­ści­wo­ści budo­wy wyra­żeń języ­ka w pro­ce­sie poro­zu­mie­wa­nia się ludzi?

Zapisując coś: treść, w celu prze­ka­za­nia jej dru­giej oso­bie komu­ni­ku­je­my się:

komu­ni­ka­cja
2. ?prze­pływ infor­ma­cji mię­dzy urzą­dze­nia­mi, np. tele­fo­na­mi lub komputerami?
3. ?prze­ka­zy­wa­nie i odbie­ra­nie infor­ma­cji w bez­po­śred­nim kon­tak­cie z dru­gą osobą?

treść
1. ?to, co jest zawar­te w czy­jejś wypo­wie­dzi; też: to, co prze­ka­zu­je odbior­cy dzie­ło sztu­ki, w prze­ciw­sta­wie­niu do formy?
2. ?to, co sta­no­wi isto­tę, sens czegoś?

Do komu­ni­ka­cji uży­wa­my znaków:

znak
1. ?kształt, któ­re­mu przy­pi­su­je się okre­ślo­ne znaczenie?
2. ?dźwięk, spoj­rze­nie, gest itp. słu­żą­cy do prze­ka­za­nia informacji?

Znak zna­czy, czy­li ma okre­ślo­ne znacz­nie (pamię­ta­my o kon­tek­ście). Znakiem może być wie­le rze­czy (tak­że gest). Znak ma (nie­sie) zna­cze­nie, znak lub ich zło­że­nie tak­że, prze­ka­zu­je okre­ślo­ną treść:

zna­cze­nie
1. ?myśl zawar­ta w czy­jejś wypo­wie­dzi, w czy­imś zacho­wa­niu itp.?
3. ?treść, któ­rej zna­kiem jest wyraz lub wyrażenie?

zna­czyć
1. ?być zna­kiem czegoś?
3. ?umiesz­czać na czymś lub na kimś znak?
4. ?zosta­wiać na czymś znak, ślad?

Na koniec zosta­wi­łem, spor­ne słowo:

nota­cja ?ozna­cze­nie cze­goś umow­ny­mi zna­ka­mi; też: zbiór takich znaków?

Notacja to zbiór zna­ków. Przypomnę też, że język to mie­dzy inny­mi okre­ślo­ny zbiór zna­ków wraz z opi­sem ich zna­czeń (seman­ty­ka) oraz tym, jakie mają zna­cze­nia ich okre­ślo­ne zło­że­nia (syn­tak­ty­ka). Wiemy już, że zna­cze­nie (treść) mają nie tyl­ko poje­dyn­cze sło­wa (to rzad­ko) ale ich kon­kret­ne zło­że­nia (zda­nia). Przekazanie kon­kret­nych, jed­no­znacz­nych tre­ści, poza rzad­ki­mi wyjąt­ka­mi, wyma­ga więc zbu­do­wa­nia kon­kret­nych zdań czy­li zło­żeń słów (zna­ków)”. Innymi sło­wy, nikt chy­ba nie powie, że książ­ka jaką jest słow­nik języ­ka pol­skie­go, wraz z zasa­da­mi gra­ma­ty­ki, to jest język pol­ski”. Język to jed­nak coś wię­cej”. Słowo język jest dość nie­pre­cy­zyj­ne i ozna­cza wręcz pewien zespół norm i spo­so­bów poro­zu­mie­wa­nia się (w tym idio­my, zespo­ły słów mają­ca inne zna­cze­nie niż każ­de z nich z osob­na). Poprawne (sku­tecz­ne) posłu­gi­wa­nie się danym języ­kiem ozna­cza, że adre­sat zro­zu­miał” treść nadaw­cy (mówią­ce­go).

Porządkujemy to wszystko

Zrobiło się cięż­ko :). Poniżej model poję­cio­wy: dia­gram w nota­cji SBVR poka­zu­ją­cy poję­cia i związ­ki mię­dzy nimi. Jednym z klu­czo­wych narzę­dzi w ana­li­zie jest wła­snie ana­li­za poję­cio­wa i budo­wa­nie słow­ni­ka pojęć dla okre­ślo­nej dzie­dzi­ny (tu wię­cej o tym czy jest dia­gram fak­tów opi­sa­ny w nota­cji SBVR).

jezyk-i-notacja-model-pojeciowy

Powyższy model obra­zu­je związ­ki pomię­dzy opi­sa­ny­mi wyżej poję­cia­mi, pre­cy­zu­je tak­że ich zna­cze­nia. Model poję­cio­wy dla danej dzie­dzi­ny (tu mowa o języ­kach i nota­cjach) powi­nien się cecho­wać mię­dzy inny­mi tym, że zna­cze­nia poszcze­gól­nych pojęć powin­ny być roz­łącz­ne, czy­li speł­niać ary­sto­te­le­sow­ską zasa­dę wyłą­czo­ne­go środ­ka” w logi­ce, brzmią­cą: jeże­li coś jest czymś, to nie jest niczym innym”. Dla zacho­wa­nia jed­no­znacz­no­ści zdań, defi­ni­cje pojęć muszą się więc wza­jem­nie wyklu­czać, tak zbu­do­wa­ny słow­nik nazy­wa­my prze­strze­nią nazw” (ang. namespace).

UML i BPMN to język czy notacja?

Skrót UML zawie­ra w sobie sło­wo lan­gu­age” (ang. język). Historycznie tłu­ma­czyć to moż­na tym, że obec­ne 14 typów dia­gra­mów to kon­kret­ne kon­tek­sty oraz narzu­co­ne kon­struk­cje, któ­re moż­na nazwać zda­nia­mi” (widać to szcze­gól­nie w przy­pad­ku dia­gra­mów Przypadków uży­cia czy Rozlokowania). Jednak obec­na spe­cy­fi­ka­cja UML 2.5 porząd­ku­je i to, sło­wo lan­gu­age” w zasa­dzie nie jest w niej sto­so­wa­ne wobec tego co nazwa­no tam mia­nem UML (W zasa­dzie dzi­siaj mogła by nosić nazwę Object-orien­ted Modeling and Notation 🙂 ).

Tak więc język czy nota­cja? To zale­ży od tego czy dana spe­cy­fi­ka­cja” opi­su­je wyłącz­nie sym­bo­le czy też ich okre­ślo­ne, i zale­ca­ne w okre­ślo­nych sytu­acjach, kon­struk­cje oraz ich zna­cze­nie. OMG (chy­ba) sta­ra się to ostat­nio jasno sygna­li­zo­wać: UML to jesz­cze lan­gu­age” ale BPMN to już nota­tion”. Specyfikacja UML zawie­ra okre­ślo­ne, seman­tycz­ne (nazwa­ne) kon­struk­cje, mają­ce okre­ślo­ne zna­cze­nia, zwią­za­ne z kon­kret­ny­mi dia­gra­ma­mi (nazwa dia­gra­mu nada­je kon­tekst uży­tym na nich sym­bo­lom, jest to potrzeb­ne bo pamię­taj­my, że w UML wszyst­ko jest kla­są”). W BPMN nie ma cze­goś takie­go (nawet poję­cie pro­ces biz­ne­so­wy” nie jest czę­ścią BPMN, jest ono zde­fi­nio­wa­ne dopie­ro w Dodatku A jako obja­śnie­nie i dodat­ko­wy kon­tekst, w nota­cji zaś BPMN nie ma sym­bo­lu pro­ces biz­ne­so­wy” 🙂 ). To czy dana spe­cy­fi­ka­cja to tyko opis nota­cji czy tak­że języ­ka, zale­ży więc od kon­kret­ne­go przypadku.

usuwanie dwuznaczosci i niejasnosciNiewątpliwie UML, BPMN, CMMN, SBVR, BMM itp., to wszyst­ko są nota­cje, bo są to spe­cy­fi­ka­cje sym­bo­li, ich zna­czeń oraz okre­ślo­na syn­tak­ty­ka. Natomiast o tym co i jak wyra­ża­ją (i czy w ogó­le ;)) two­rzo­ne z ich pomo­cą dia­gra­my, to już inna kwe­stia… To leży w gestii twór­cy dia­gra­mów. A testem jest mie­dzy inny­mi sku­tecz­ność komu­ni­ka­cji: porów­na­nie tego jaką kon­kret­ną treść chciał prze­ka­zać twór­ca dane­go dia­gra­mu i jaką treść ode­brał czy­ta­ją­cy… Analityk zaczy­na od ana­li­zy poję­cio­wej by unik­nąć nie­jed­no­znacz­no­ści w samym prze­ka­zie. Potem dopie­ro doku­men­tu­je, z uży­ciem mode­li two­rzo­nych z pomo­cą nota­cji, to co zastał oraz pro­jek­tu­je to, co chciał­by by, by powsta­ło spo­sób roz­wią­za­nie pro­ble­mu (tu pole­cam lek­tu­rę arty­ku­łu gdzie pisa­łem o tym, że wyma­ga­nia to pro­jekt).

Niewątpliwie więc wszyst­kie języ­ki pro­gra­mo­wa­nia” są języ­ka­mi: mają skład­nię i każ­de zda­nie coś wyra­ża (rozu­mie to i kole­ga pro­gra­mi­sta i kom­pi­la­tor). Wiele nota­cji jed­nak języ­kiem nie jest. O języ­ku moż­na mówić tyl­ko wte­dy, gdy jest samo­wy­star­czal­ny do wyra­ża­nia okre­ślo­nych myśli i tre­ści, do komu­ni­ko­wa­nia ich. Nie może­my tego raczej powie­dzieć o nota­cjach. Diagramy i mode­le wyko­na­ne z pomo­cą w. nota­cji wyma­ga­ją sto­so­wa­nia np. języ­ka” pol­skie­go, do nada­wa­nia nazw sym­bo­lom i dia­gra­mom, bez cze­go dia­gra­my te były by nie­zro­zu­mia­łe. Uważam więc, że uży­wa­nie wobec nota­cji obli­ga­to­ryj­nie nazwy język, jest poważ­nym nad­uży­ciem… Niektóre nota­cje mają swo­ją wer­sję wyko­ny­wal­ną (tu nawią­zu­je do tego że języ­ki pro­gra­mo­wa­nia są” języ­ka­mi”) o czym nie­daw­no pisa­łem (Analityczne i wyko­ny­wal­ne mode­le) jed­nak pamię­tać, nale­ży nota­cja jako taka nie jest języ­kiem pro­gra­mo­wa­nia”, jest tu raczej for­mą budo­wa­nia mecha­ni­zmu (mode­lo­wa­nie), któ­ry dopie­ro po doda­niu wie­lu para­me­trów (czy­li wpro­wa­dze­niu wie­lu słów” z poza nota­cji) pozwa­la taki model uru­cho­mić”.

MDA – Cztery produkty czyli dwa etapy: wymagania i produkt

Ten arty­kuł moż­na czy­tać na dwa spo­so­by: ana­li­ty­cy czy­ta­ją od dechy do dechy po kolei ;). Menedżerowie i tak zwa­ny biz­nes czy­ta­ją od razu koniec, to jest część Na zakoń­cze­nie, gdy uzna­ją, że nie wie­rzą w te wnio­ski (wyrok) to zaczy­na­ją od począt­ku czy­li czy­ta­ją uzasadnienie :).

Niedawno napi­sa­łem:

Pomiędzy poję­cia­mi abs­trak­cja i model jest pew­na klu­czo­wa róż­ni­ca: abs­trak­cja to poję­cie zaś model to opis mecha­ni­zmu, jego kon­struk­cja, dzia­ła­nie, budo­wa. Prosty przy­kład: nazwa­ne pro­sto­ką­ty na typo­wym dia­gra­mie struk­tu­ry orga­ni­za­cyj­nej to abs­trak­cje komó­rek orga­ni­za­cyj­nych i osób w nich zatrud­nio­nych, pro­sto­ką­ty te wraz z linia­mi je łączą­cy­mi sta­no­wią, jako całość, model pod­le­gło­ści zaso­bów w orga­ni­za­cji. (Źródło: Analiza a mode­lo­wa­nie czy­li ile abs­trak­cji a ile rze­czy­wi­sto­ści | | Jarosław Żeliński IT-Consulting)

Kontynuując temat z innej per­spek­ty­wy powie­my sobie teraz o eta­pach ana­li­zy i pro­jek­to­wa­nia w inży­nie­rii, nie tyl­ko opro­gra­mo­wa­nia, w opar­ciu o MDA ([[Model Driven Architecture]], www​.omg​.org/​mda, pole­cam tak­że poję­cie [[model dri­ven engi­ne­ering]]). Dobra infor­ma­cja dla czy­tel­ni­ków: na koń­cu się wszyst­ko wyja­śni, moż­na pomi­nąć część o MDA 🙂

MDA

Pięć lat temu, jeden z arty­ku­łów o mode­lo­wa­niu i pro­jek­to­wa­niu, koń­czy­łem tymi słowami:

Podsumowując moż­na by powie­dzieć, że eta­py two­rze­nia opro­gra­mo­wa­nia to:

  1. Analiza biz­ne­so­wa, któ­rej pro­duk­tem są: model orga­ni­za­cji (model biz­ne­so­wy) oraz opis tego co ma powstać (opis, wyma­ga­nia na opro­gra­mo­wa­nie). Całość (sfor­ma­li­zo­wa­ne mode­le) pozwa­la na prze­te­sto­wa­nie czy tak okre­ślo­ne wyma­ga­nia speł­nia­ją potrze­by biznesu.
  2. Wytworzenie opro­gra­mo­wa­nia pole­ga­ją­ce na: opra­co­wa­niu szcze­gó­łów archi­tek­tu­ry, roz­wią­za­niu pro­ble­mów tech­nicz­nych (wyma­ga­nia nie­funk­cjo­nal­ne), kodo­wa­niu oraz dostar­cze­niu i wdrożeniu.

Źródło: Hej, Biznesie, to ma być dla biz­ne­su czy­li dla Ciebie! | | Jarosław Żeliński IT-Consulting

Powoływałem się w tym tek­ście wła­śnie na MDA. Czymże to jest? Na stro­nach OMG znaj­dzie­my: Document – ormsc/14 – 06-01 (MDA Guide revi­sion 2.0) Contact: Dr. Jon M. SiegelThis final draft of the revi­sed MDA Guide edi­ted in Boston on 18 June 2014 reflects all AB edits requ­ested at the Reston and Boston AB meetings. (Źródło: OMG Document – ormsc/14 – 06-01 (MDA Guide revi­sion 2.0)

Skorzystam z kil­ku cyta­tów i napi­sze co nie­co o MDA. Poniżej klu­czo­we tezy, nie mia­łem tu ambi­cji lite­ral­ne­go tłu­ma­cze­nia tego doku­men­tu, cho­dzi­ło mi o pryncypia.

This guide descri­bes the Model Driven Architecture (MDA) appro­ach as defi­ned by the Object Management Group (OMG). MDA pro­vi­des an appro­ach for deri­ving value from models and archi­tec­tu­re in sup­port of the full life cyc­le of phy­si­cal, orga­ni­za­tio­nal and I.T. sys­tems (A ?System?, in this con­text, is any arran­ge­ment of parts and the­ir inter­re­la­tion­ships, wor­king toge­ther as a who­le.). The MDA appro­ach repre­sents and sup­ports eve­ry­thing from requ­ire­ments to busi­ness mode­ling to tech­no­lo­gy imple­men­ta­tions. By using MDA models, we are able to bet­ter deal with the com­ple­xi­ty of lar­ge sys­tems and the inte­rac­tion and col­la­bo­ra­tion betwe­en orga­ni­za­tions, people, har­dwa­re, software.

Stosowanie mode­li pozwa­la znacz­nie lepiej radzić sobie ze zło­żo­no­ścią wiel­kich sys­te­mów jaki­mi są orga­ni­za­cje oraz funk­cjo­nu­ją­ce w nich związ­ki mię­dzy ludź­mi, opro­gra­mo­wa­niem i infra­struk­tu­rą. Fakt, że bada­ne orga­ni­za­cje współ­pra­cu­ją z inny­mi, dodat­ko­wo kom­pli­ku­je tę całość.

Models as com­mu­ni­ca­tions vehicles

A fun­da­men­tal value pro­po­si­tion for models and mode­ling is to faci­li­ta­te a team or com­mu­ni­ty coming to a com­mon under­stan­ding and/or consensus.

Jedną z głów­nych ról mode­li, poza ich ana­li­zą, jest komu­ni­ka­cja: komu­ni­ku­je­my innym człon­kom zespo­łu (tak­że klien­tom) to co zro­zu­mie­li­śmy i to cze­go ocze­ku­je­my. Tak więc mode­le są zarów­no opi­sem rze­czy­wi­sto­ści powsta­łym w toku jej zro­zu­mie­nia, są tak­że opi­sem tego co ma powstać, jeże­li chce­my tę rze­czy­wi­stość stworzyć.

[?]Abstraction deals with the con­cepts of under­stan­ding a sys­tem in a more gene­ral way; said in more ope­ra­tio­nal terms, with abs­trac­tion one eli­mi­na­tes cer­ta­in ele­ments from the defi­ned sco­pe; this may result in intro­du­cing a higher level view­po­int at the expen­se of remo­ving deta­il. A model is con­si­de­red more abs­tract if it encom­pas­ses a bro­ader set of sys­tems and less abs­tract if it is more spe­ci­fic to a sin­gle sys­tem or restric­ted set of systems. [?]

Podstawową rze­czą w ana­li­zie jest redu­ko­wa­nie szcze­gó­łów i uogól­nia­nie. Człowiek nie jest w sta­nie ana­li­zo­wać cze­goś co skła­da się z setek detali.

Model Analytics

Once models are cap­tu­red as seman­tic data vario­us ana­ly­tics can be exe­cu­ted across tho­se models inc­lu­ding model vali­da­tion, sta­ti­stics and metrics. Analytics assi­sts in deci­sion making, moni­to­ring and quali­ty asses­sment. OMG MDA Guide rev. 2.0 June 2014 page 2

Modele poję­cio­we i ana­li­tycz­ne słu­żą do zro­zu­mie­nia bada­nej rze­czy­wi­sto­ści. Modele two­rzo­ne (pro­jek­to­wa­nie) słu­żą do testo­wa­nia pomy­słów i podej­mo­wa­nia decy­zji, dalej zaś sta­no­wią opis cech wyma­ga­ne­go roz­wią­za­nia. Modele wyko­ny­wal­ne to inne mode­le ale bazu­ją na mode­lach ana­li­tycz­nych. Poniżej, na bazie MOF ([[Meta Object Facility]]), poka­za­no trzy pozio­my abs­trak­cji (poziom zero­wy to rzeczywistość).

poziomy-abstrakcji

Abstrakcja to uprosz­czo­ny” (pozba­wio­ny zbęd­nych szcze­gó­łów) model okre­ślo­nej rze­czy­wi­sto­ści. Metamodel to mecha­nizm two­rze­nia tej rze­czy­wi­sto­ści w tym tak­że model poję­cio­wy (wię­cej w dal­szej części).

Model (M1) więc jest albo wyni­kiem (pro­duk­tem) ana­li­zy bada­nej rze­czy­wi­sto­ści, albo wyni­kiem (pro­duk­tem) pro­ce­su jej pro­jek­to­wa­nia (pro­jek­to­wa­nia rozwiązania). 

Model Simulation and Execution

Models as data can dri­ve simu­la­tion engi­nes that can assist in both ana­ly­tics and exe­cu­tion of the desi­gns cap­tu­red in models. Simulation assi­sts in the human under­stan­ding of how a mode­led sys­tem will func­tion as well as a way to vali­da­te that models are cor­rect. Models can, in some cases be direc­tly exe­cu­ted ? serving as the ?sour­ce code? for high­le­vel appli­ca­tions that imple­ment pro­ces­ses, data repo­si­to­ries and servi­ce end­po­ints. Model exe­cu­tion pro­vi­des a direct and imme­dia­te path to reali­zing a design with a mini­mum of tech­ni­cal deta­ils being expo­sed. DBMS Schema and pro­cess models are well-known cate­go­ries of (par­tial­ly) exe­cu­ta­ble models.[?]

Modele symu­la­cyj­ne słu­żą do testo­wa­nia hipo­tez i podej­mo­wa­ni decy­zji. Modele wyko­ny­wal­ne, w tym two­rzo­ne auto­ma­tycz­nie na bazie mode­li abs­trak­cyj­nych, to narzę­dzia do two­rze­nia wyko­ny­wal­ne­go kodu. Nie tyl­ko w moim mnie­ma­niu, jest to albo dale­ka przy­szłość (mam na myśli komer­cyj­ne zasto­so­wa­nia) albo wyłącz­nie aka­de­mic­kie bada­nia. Wiem, że są uda­ne pró­by gene­ro­wa­nia dzia­ła­ją­ce­go kodu z mode­li, jed­nak wyma­ga­nia na ilość deta­li, jakie trze­ba zade­kla­ro­wać w tych mode­lach, zbli­ża ich zło­żo­ność do zło­żo­no­ści kodu jaki powsta­je. Nie będzie­my się tu zaj­mo­wa­li mode­la­mi wykonywalnymi.

Cztery produkty

Te dwa opi­sa­ne na począt­ku eta­py do ana­li­za sys­te­mo­wa orga­ni­za­cji (potocz­nie ana­li­za biz­ne­so­wa”) oraz imple­men­ta­cja roz­wią­za­nia. Produkty to …

MDA to archi­tek­tu­ra mają­ca trzy pozio­my mode­lo­wa­nia, nazy­wa­ne od góry” CIM (Computation Independent Model), PIM (Platform Independent Model) i PSM (Platform Specific Model).

Architectural Layers It is use­ful to iden­ti­fy par­ti­cu­lar ?lay­ers? of an archi­tec­tu­re with respect to its level of abs­trac­tion. While the­re can be any num­ber of archi­tec­tu­ral lay­ers, a bro­ad cate­go­ri­za­tion of this con­cept is:

  • Business or doma­in models ? models of the actu­al people, pla­ces, things, and laws of a doma­in. The ?instan­ces? of the­se models are ?real things?, not repre­sen­ta­tions of tho­se things in an infor­ma­tion sys­tem. In MDA doma­in models have histo­ri­cal­ly been cal­led a ?CIM? for ?Computation Independent Model?.
  • Logical sys­tem models ? models of the way the com­po­nents of a sys­tem inte­ract with each other, with people and with orga­ni­za­tions to assist an orga­ni­za­tion or com­mu­ni­ty in achie­ving its goals. [model PIM]
  • Implementation models ? the way in which a par­ti­cu­lar sys­tem or sub­sys­tem is imple­men­ted such that it car­ries out its func­tions. Implementation models are typi­cal­ly tied to a par­ti­cu­lar imple­men­ta­tion tech­no­lo­gy or plat­form. [model PSM].

Model CIM opi­su­je ludzi i ich związ­ki, miej­sca, pra­wa rzą­dzą­ce tym wszyst­kim. Ten model opi­su­je real­ną, bada­ną rze­czy­wi­stość cał­ko­wi­cie abs­tra­hu­jąc od wyko­rzy­sty­wa­nych ewen­tu­al­nie posia­da­nych narzę­dzi infor­ma­tycz­nych (w przy­pad­ku start-up’u lub roz­wo­ju orga­ni­za­cji jest to przy­szła jej postać). Nie jest to model jakie­go­kol­wiek opro­gra­mo­wa­nia ani tego jak ono dzia­ła. Produktem tego eta­pu są: mode­le pro­ce­sów biz­ne­so­wych, spe­cy­fi­ka­cja reguł biz­ne­so­wych, biz­ne­so­wy słow­nik pojęć i mode­le pojęciowe.

Model PIM opi­su­je kom­po­nen­ty apli­ka­cji, ich wza­jem­ne inte­rak­cje, logi­kę dzia­ła­nia tych kom­po­nen­tów (ta część logi­ki opi­sa­nej w mode­lu CIM, któ­ra ma być reali­zo­wa­na w apli­ka­cji). Produktem tego eta­pu są mode­le: przy­pad­ków uży­cia (w tym postać nośni­ków danych, moc­ku­p’y ekra­nów), kom­po­nen­tów, wewnętrz­ne struk­tu­ry kom­po­nen­tów (mode­le dzie­dzi­ny z per­spek­ty­wy wzor­ca MVC), inte­rak­cji, inne jeśli konieczne.

Model PSM to model będą­cy pro­jek­tem wyko­naw­czym. Jest to roz­sze­rze­nie mode­lu PIM, uszcze­gó­ło­wie­nie go wraz z dodat­ko­wy­mi ele­men­ta­mi tech­nicz­ny­mi (reali­zu­ją­cy­mi śro­do­wi­sko, bez­pie­czeń­stwo, wyma­ga­ną wydaj­ność itp.). Kod apli­ka­cji to mate­ria­li­za­cja (imple­men­ta­cja) mode­lu PSM. 

Powyższe, to czte­ry pro­duk­ty powsta­ją­ce w tym pro­ce­sie. Dlaczego pisze o dwóch eta­pach? Poniżej wyjaśnienie.

model-driven-architecture-structure

Diagram obra­zu­je produkty/fazy defi­nio­wa­ne jako MDA. Każdy pro­dukt ana­li­zy to okre­ślo­ny zestaw mode­li. Na dia­gra­mie wska­za­no jakich nota­cji uży­wa się w każ­dym z nich (tu bazu­jąc na nota­cjach rodem z OMG). Tu przy­po­mi­nam to co już nie raz pisa­łem: celem jest zro­zu­mie­nie (i two­rze­nia potrzeb­nych w danym przy­pad­ku mode­li) oraz prze­ka­za­ne tej wie­dzy, a nie two­rze­nie jakichś mode­li i doku­men­tów”. Każdy model, jego powsta­nie, ma okre­ślo­ny cel.

Jeszcze sto­sun­ko­wo nie­daw­no w moich pro­jek­tach zwią­za­nych z opro­gra­mo­wa­niem, wyróż­nia­łem trzy eta­py: ana­li­za orga­ni­za­cji, spe­cy­fi­ka­cja wyma­gań oraz opra­co­wa­nie logi­ki dla dedy­ko­wa­nych kom­po­nen­tów opro­gra­mo­wa­nia. W koń­cu, po kil­ku pro­jek­tach, prze­ko­na­łem się, że ten podział nie dzia­ła”. Dlaczego?

Skoro na eta­pie CIM opra­co­wa­li­śmy mię­dzy inny­mi model logi­ki biz­ne­so­wej dla danej orga­ni­za­cji (w tym regu­ły biz­ne­so­we, słow­nik pojęć) to już ją, te logi­kę, mamy. Okazało się, że ten trze­ci etap” w zasa­dzie jest sztucz­ny, gdyż rze­tel­ne opra­co­wa­nie CIM to tak­że ta” logi­ka. Tu war­to przy­to­czyć diagram:

Swego cza­su pisa­łem tak­że o testo­wa­niu modeli:

W toku dal­szej pra­cy podej­mo­wa­na jest decy­zja o zakre­sie pro­jek­tu. Wskazując to, jakie dzia­ła­nia” ma wspie­rać lub prze­jąć na sie­bie apli­ka­cja (to są wła­śnie przy­pad­ki uży­cia), wska­zu­je­my jaka logi­ka ma być przez tę apli­ka­cję reali­zo­wa­na i kie­dy. Wskazanie zakre­su pro­jek­tu jest więc pierw­szym eta­pem defi­nio­wa­nia logi­ki apli­ka­cji. Jeżeli do tego dodać wie­dzę dzie­dzi­no­wą, np. to któ­re ele­men­ty mogą być współ­dzie­lo­ne a któ­re nie, któ­re powin­ni być cał­ko­wi­cie nie­za­leż­ne itp., powsta­nie tak zwa­ny model dzie­dzi­ny sys­te­mu (logi­ka biz­ne­so­wa i jej struk­tu­ra czy­li archi­tek­tu­ra apli­ka­cji, a kon­kret­nie czę­ści reali­zu­ją­cej logi­kę biznesową).

Na zakończenie

Jak podejść do pla­nów zaku­pu tak­że goto­we­go opro­gra­mo­wa­nia? Czy war­to je pro­jek­to­wać? Oczywiście, że war­to z pro­ste­go powo­du: nie ma zna­cze­nia to, czy przy­szłe opro­gra­mo­wa­nie będzie goto­we czy trze­ba je będzie dopie­ro stwo­rzyć. Ono ma reali­zo­wać taką logi­kę jakiej ocze­ku­je­my. Owszem, jest moż­li­wa decy­zja: sko­ro na ryn­ku nie ma poszu­ki­wa­ne­go pro­duk­tu a stwo­rze­nie dedy­ko­wa­ne­go jest zbyt kosz­tow­ne, to albo rezy­gnu­je­my z zaku­pu albo z okre­ślo­nej logi­ki wewnątrz orga­ni­za­cji. Jednak do pod­ję­cia takiej decy­zji musi­my tę logi­kę znać i mieć udo­ku­men­to­wa­ną (no bo jakoś musi­my ją poka­zać ofe­ren­tom). Ale dostaw­cy opro­gra­mo­wa­nia zawsze ofe­ru­ją ana­li­zę wyma­gań”… To praw­da … A ilu z nich powie, że nie mają Wam nic do zaofe­ro­wa­nia? Ale dedy­ko­wa­ne opro­gra­mo­wa­nie może zapro­jek­to­wać tyl­ko jego wyko­naw­ca”. To dla­cze­go fir­my budow­la­ne nie są dopusz­cza­ne do prac pro­jek­to­wych i architektonicznych?

Dlatego na dia­gra­mie powy­żej, jako moment wybo­ru dostaw­cy opro­gra­mo­wa­nia, wska­za­no ten w któ­rym mamy udo­ku­men­to­wa­ny model logi­ki czy­li PIM. To czy logi­ka taka jest dostęp­na w jakimś pro­duk­cie na ryn­ku czy nie, nie zmie­nia fak­tu, że i tak musi zostać ona opi­sa­na, bez cze­go taki wybór jest nie­moż­li­wy. Czym więc są (czym powin­ny być) wyma­ga­nia na opro­gra­mo­wa­nie? Niestety powin­ny być zwię­złym pro­jek­tem a nie dłu­gą listą cech.

Jeden ana­li­tyk pro­jek­tant mają­cy dobre wspar­cie narzę­dzio­we, jest w sta­nie wyko­nać ana­li­zę i pro­jekt dla dowol­nie dużej fir­my, wystar­czy, że potra­fi two­rzyć abs­trak­cje i zarzą­dzać zło­żo­no­ścią doku­men­ta­cji. Czy kil­ku ana­li­ty­ków zro­bi to nie gorzej i szyb­ciej? Nie znam takie­go przy­pad­ku.… bo im wię­cej osób pro­wa­dzi taką ana­li­zę tym wię­cej pra­cy wyma­ga koor­dy­na­cja i pra­ca nad spój­no­ścią całości.

Na zakoń­cze­nie cytat z pew­nej dyskusji:

I star­ted a com­pa­ny cal­led Nascent Blue that spe­cia­li­zes in MDD for appli­ca­tion deve­lop­ment. We have actu­al­ly had the oppor­tu­ni­ty to com­pa­re MDD to tra­di­tio­nal deve­lop­ment side-by-side on lar­ge pro­jects. Our client set up ?the expe­ri­ment? to col­lect the PM data for ana­ly­sis. It was a lar­ge pro­ject with 5 teams. The results:

1. Our team was less than half the size of the other teams.
2. Our team pro­du­ced more than twi­ce the code of the other teams.
3. Our team achie­ved a 75% reduc­tion in cost.
4. Our team achie­ved a 66% reduc­tion in defect rate.
5. Our team was twi­ce as fast (with half the size).
We have sin­ce got­ten more effi­cient and more advan­ced, so I don?t know what the num­bers are now.
(źr. Model dri­ven pro­duc­ti­vi­ty | LinkedIn).

Manifest Procesu Biznesowego c.d.

?Wszystko powin­no być tak pro­ste jak jest to moż­li­we, ale nie prostsze.? 
(Albert Einstein)

Stosunkowo nie­daw­no (pia­łem o tym już) Roger Burlton (Chairman, Board of Advisors, BPTrends) opu­bli­ko­wał na stro­nie Business Process Trends Manifest Procesu Biznesowego. Podejrzewam, że to efekt lek­kiej” kon­ku­ren­cji z [[Business Rules Group]] i Ronaldem G. Rossem 😉 ale dobrze bo taka kon­ku­ren­cja jest twór­cza a ich (głów­nie Ronald G. Ross BRGroup oraz Paul Harmon z BPTrends) obec­ne ich pole­mi­ki na stro­nach LinkedIn są bar­dzo poucza­ją­ce i myślę, że obie stro­ny na tym zysku­ją, że nie wspo­mną o pozo­sta­łych uczest­ni­kach tych dys­ku­sji. Osobiście doce­niam doro­bek zarów­no Ronalda Rossa jak i Rogera Burltona czy Paula Harmona (ten dru­gi czę­ściej się udzie­la na LinkedIn). Burlton tak wyja­śnia potrze­bę jego – tego mani­fe­stu – powstania:

  • Istnieje wie­le nie­ja­sno­ści doty­czą­cych kon­cep­cji Procesu Biznesowego i jego terminologii.

  • Brakuje aktu­al­nych stan­dar­dów doty­czą­cych fun­da­men­tal­nych pojęć odno­śnie Procesu Biznesowego.

  • Zastosowania kon­cep­cji zwią­za­nych z Procesem Biznesowym sta­ły się zbyt zło­żo­ne, co unie­moż­li­wia ich łatwe zro­zu­mie­nie i sto­so­wa­nie w praktyce.

  • Błędy popeł­nia­ne we wdro­że­niach stra­te­gii Procesu Biznesowego, archi­tek­tu­ry pro­ce­sów, jak rów­nież w ana­li­zie i pro­jek­to­wa­niu Procesu Biznesowego, są rezul­ta­tem nie­zro­zu­mie­nia­po­jęć i prak­tyk doty­czą­cych Procesu Biznesowego.

  • Istnieje potrze­ba pro­fe­sjo­nal­ne­go, uży­wa­ne­go w spo­sób zdy­scy­pli­no­wa­ny, zin­te­gro­wa­ne­go i powta­rzal­ne­go zesta­wu prak­tycz­nych spo­so­bów postę­po­wa­nia doty­czą­cych Procesu Biznesowego.

  • Istnieje potrze­ba, aby Procesy Biznesowe były zarzą­dza­ne jako akty­wa orga­ni­za­cji, któ­re mogą być powszech­nie rozu­mia­ne, współ­dzie­lo­ne i wie­lo­krot­nie wykorzystywane.

  • Bez solid­nej, opar­tej na fun­da­men­tal­nych zasa­dach pod­sta­wy seman­tycz­nej nie może ist­nieć uży­tecz­ny zasób wie­dzy o Procesie Biznesowym.

(źr. BPYtends​.com, ? Prawa autor­skie BPTrends, LLC. – Opracował Roger Burlton. Niniejszym udzie­la się zgo­dy na nie­ogra­ni­czo­ne powie­la­nie i roz­po­wszech­nia­nie tego doku­men­tu pod nastę­pu­ją­cy­mi warun­ka­mi: (a) Umieszczenia w widocz­nym miej­scu praw autor­skich i niniej­szej noty praw­nej. (b) Zaznaczenia, że zawar­tość doku­men­tu jest wła­sno­ścią inte­lek­tu­al­ną BPTrends, LLC. © Żadna z czę­ści niniej­sze­go doku­men­tu, łącz­nie z tytu­łem, tre­ścią, pra­wa­mi autor­ski­mi i niniej­szą notą praw­ną nie może zostać zmie­nio­na, skró­co­na bądź posze­rzo­na w jaki­kol­wiek spo­sób. Komercyjne wyko­rzy­sta­nie tego doku­men­tu, w cało­ści lub czę­ścio­wo, jest ści­śle zabronione.)

Polecam cały doku­ment, do pobra­nia tu: BPManifesto_PL_A4.

Od sie­bie dodam, że moje pra­ce zwią­za­ne z mode­lo­wa­niem orga­ni­za­cji pro­wa­dzą do wnio­sku, że nie moż­li­we jest opi­sa­nie orga­ni­za­cji w jed­nym tyl­ko para­dyg­ma­cie, np. pro­ce­so­wym. W 2012 roku pisałem:

Cieszy mnie ten Manifest tak­że dla­te­go, że moje dąże­nie do pro­sto­ty i for­ma­li­za­cji w posta­ci prag­ma­ty­ki jaką sto­su­ję w swo­jej meto­dy­ce, są zgod­ne z tym Manifestem. (Źródło: Business Process Manifesto | Jarosław Żeliński IT-Consulting).

Skłaniam się ku tezie, że orga­ni­za­cja, jak każ­dy sys­tem otwar­ty, to kil­ka róż­nych aspek­tów jej dzia­ła­nia: struk­tu­ra, dyna­mi­ka, mecha­nizm dzia­ła­nia czy­li regu­ły. Obecne spo­ry pomię­dzy R.Rossem i śro­do­wi­skiem [[Busieness Ruless Group]] a P.Harmonem i Business Process Associates przy­po­mi­na­ją mi daw­ne spo­ry pomię­dzy trze­ma twór­ca­mi obec­ne nota­cji UML (pier­wot­nie każ­dy opra­co­wał swo­ją gru­pę modeli/diagramów dia­gra­mów z okre­ślo­nej per­spek­ty­wy, oryg. ang. [[The Three Amigos, a nick­na­me given to James Rumbaugh, Grady Booch and Ivar Jacobson, deve­lo­pers of Unified Modeling Language (UML)]]).

Wydaje mi się, że obec­ny stan nota­cji UML pozwa­la mode­lo­wać wszel­kie obiek­to­wo zorien­to­wa­ne aspek­ty orga­ni­za­cji sta­no­wią­ce nie­ja­ko mecha­nizm jej dzia­ła­nia, to model obiek­to­wy sys­te­my (w sumie nie ma zna­cze­nia czy będzie on odwzo­ro­wy­wa­ny w apli­ka­cji pod posta­cią Model Dziedziny czy nie). BPMN to nota­cja stric­te biz­ne­so­wa, słu­ży do mode­lo­wa­nia abs­trak­cji jaką jest łań­cuch war­to­ści doda­nej wewnątrz niej. Te mode­le są bar­dzo istot­ne dla zro­zu­mie­nia co i po co się dzie­je”. Nad tym wszyst­kim jest moty­wa­cja czy­li sfor­ma­li­zo­wa­ne pryn­cy­pia: model moty­wa­cji biz­ne­so­wej, są to te ele­men­ty któ­re na naj­wyż­szym pozio­mie opi­su­ją orga­ni­za­cję jako pod­miot na ryn­ku (nie zapo­mi­naj­my, że urzę­dy tak­że uczest­ni­czą w ryn­ku bo mają na nie­go wpływ lub wręcz kształ­tu­ją jako regulator).

Systemowo o ekonomii czyli modele biznesowe

Tym razem coś pozor­nie cał­kiem inne­go niż zwy­kle: żad­nych klas ani pro­ce­sów :). Bardzo rzad­ko o tym (tytuł) pisze, ale nie mało moich pro­jek­tów, tak­że tych zwią­za­nych z wdra­ża­niem IT, zawie­ra w swo­im zakre­sie reko­men­da­cje zwią­za­ne z popra­wą funk­cjo­no­wa­nia przed­się­bior­stwa”. Nie może­my się tu zatrzy­mać na pozio­mie auto­ma­ty­za­cji prze­pły­wu pra­cy i efek­tyw­no­ści inter­fej­su użytkownika„bo to tyl­ko narzę­dzia, a narzę­dzia nie czy­nią suk­ce­su (no, bar­dzo rzadko).

Trzeba mieć świa­do­mość, że popra­wa funk­cjo­no­wa­nia orga­ni­za­cji to nie tyl­ko szyb­szy nowy kom­pu­ter i nowe funk­cjo­nal­no­ści opro­gra­mo­wa­nia. Warto pamię­tać, że nie wyka­za­no żad­nej kore­la­cji pomię­dzy tym, któ­re miej­sce w ran­kin­gach lide­rów ryn­ku zaj­mu­je fir­ma a tym ile wyda­je ona na IT. 

Niedawno pisa­łem cze­go potrze­bu­ją dosta­wy apli­ka­cji biz­ne­so­wych. Dostawcy opro­gra­mo­wa­nia, któ­re ma wspie­rać zarzą­dza­nie firmą…

… Potrzebują bar­dzo zwię­złej i spój­nej doku­men­ta­cji (ale raczej 50-ciu stron niż setek, że nie wspo­mnę o kil­ku tysią­cach, tak ? widy­wa­łem takie), i po stro­nie klien­ta (jed­nej) oso­by, któ­ra ten doku­ment zna, rozu­mie, ma dostęp do klu­czo­wych osób w orga­ni­za­cji. Najchętniej do auto­ra tego doku­men­tu? (Źródło: Kim jest pro­duct owner? | Jarosław Żeliński IT-Consulting)

Problem w tym, że nie jest sztu­ką napi­sać (opi­sać) to co fir­ma robi, sztu­ką jest wie­dzieć i rozu­mieć dla­cze­go tak robi i czy nie może tego robić lepiej. Product Owner to ktoś decy­du­je o tym czym jest wdra­ża­ne opro­gra­mo­wa­nie a naj­lep­szym kan­dy­da­tem jest autor opi­su wyma­gań na ten produkt.

Zawsze mnie zasta­na­wia­ło na jakiej pod­sta­wie dostaw­ca opro­gra­mo­wa­nia, będąc pierw­szy raz w fir­mie swo­je­go poten­cjal­ne­go klien­ta, ma odwa­gę powie­dzieć, że jego opro­gra­mo­wa­nie cokol­wiek popra­wi w tej firmie?

Podmiot gospo­dar­czy to pod­miot dzia­ła­ją­cy na ryn­ku, i w związ­ku z tym pod­le­ga pra­wom eko­no­mii. Szeroko poję­tej eko­no­mii. Bez jej zna­jo­mo­ści i rozu­mie­nia, żad­na ana­li­za biz­ne­so­wa nie ma sen­su! To co widzę pod nazwą Analiza Biznesowa, to nie żad­na ana­li­za biz­ne­so­wa tyl­ko lep­szy lub gor­szy opis (struk­tu­ra) funk­cjo­no­wa­nia fir­my. Dobry opis dzia­ła­nia jest jak opis gry w sza­chy: regu­ły gry, zły opis to kil­ka­set godzin fil­mu nakrę­co­nych nad plan­szą do gry w szachy.

Opis dzia­ła­nia fir­my to opis mecha­ni­zmu jej dzia­ła­nia a nie jej histo­ria. Ta może być dowo­dem popraw­no­ści opi­sa­ne­go mechanizmu. 

Druga waż­na rzecz: jeże­li fir­ma to sys­tem, to jej oto­cze­nie ryn­ko­we jest dru­gim sys­te­mem, albo nad-sys­te­mem (super-sys­te­mem)”, albo jeże­li rynek to sys­tem, to fir­ma jest jed­nym z jego pod­sys­te­mów. To bar­dzo waż­ne, nie zapo­mi­naj­my, że to wszyst­ko – rynek – to sys­tem współ­dzia­ła­ją­cych obiek­tów”. Kluczem jest to rozu­mie­nie mecha­ni­zmu jego dzia­ła­nia, a ten mecha­nizm to pra­wa ekonomiczne.

Dzisiaj sku­pie się na kil­ku aspek­tach, mają­cych duży wpływ na zro­zu­mie­nie tego dla­cze­go fir­ma ma pie­nią­dze (lub zaczy­na ich nie mieć…). Brzmi dziw­nie ale po kolei. Powszechnie spo­ty­ka­nym ter­mi­nem w ana­li­zach biz­ne­so­wy jest model biz­ne­so­wy”. W 2006 roku już pisa­łem, że

Pojęcie mode­lu biz­ne­so­we­go plą­cze się po sie­ci i lite­ra­tu­rze. Praktycznie każ­da fir­ma go ma ale mało, któ­ra wie o tym i potra­fi go udo­ku­men­to­wać. Ma taki model, bo funk­cjo­nu­je na ryn­ku ale ile firm ma te zasa­dy udo­ku­men­to­wa­ne w spo­sób spój­ny i zro­zu­mia­ły dla pra­cow­ni­ków i oto­cze­nia? Osobną kwe­stią jest to, czy aktu­al­ny model jest dobry dla tej fir­my bo oka­zu­je się, że nie raz nie koniecz­nie. Nie raz oka­zu­je się, że aktu­al­ny model pro­wa­dzi pro­stą dro­gą do ban­kruc­twa jed­nak o tym dowia­du­ją się wła­ści­cie­le firm już po fak­cie. (Źródło: Modele biz­ne­so­we | Jarosław Żeliński IT-Consulting)

Popatrzmy na definicje:

Model biz­ne­so­wy – jest to plan, któ­ry two­rzy przed­się­bior­stwo w celu wyge­ne­ro­wa­nia przy­cho­du i mak­sy­ma­li­za­cji zysku ope­ra­cyj­ne­go. Określa rela­cje pomię­dzy uczest­ni­ka­mi ryn­ku, infor­mu­je jak przed­się­bior­stwa dzia­ła­ją, tj. w jaki spo­sób two­rzą war­tość dla klien­tów, towa­ry i usłu­gi oraz z cze­go czer­pią zyski.

Jak poda­je Timmers, model biz­ne­so­wy to struk­tu­ra pro­duk­tu, usłu­gi i prze­pły­wu infor­ma­cji, zawie­ra­ją­ca wyszcze­gól­nie­nie tzw. akto­rów biz­ne­so­wych wraz z ich rola­mi i opi­sem poten­cjal­nych korzy­ści jakie odno­szą. Innymi sło­wy, jest to defi­ni­cja źró­deł przychodów[1].

Amit i Zott okre­śla­ją model biz­ne­so­wy jako zawar­tość, struk­tu­rę i kie­ro­wa­nie trans­ak­cja­mi zapro­jek­to­wa­ny w taki spo­sób, aby two­rzyć war­tość poprzez wyko­rzy­sty­wa­nie szans biznesowych.

Według Portera model biz­ne­so­wy jest opi­sem dzia­łal­no­ści przed­się­bior­stwa, któ­re zapew­nia­ją mu zyski. Sprowadza się to do okre­śle­nia roli orga­ni­za­cji w łań­cu­chu war­to­ści, w jakim działa.

W kom­plek­so­wym uję­ciu cho­dzi o meto­dę przy­ję­tą przez fir­mę, przez reali­za­cję któ­rej będzie ona powięk­szać i wyko­rzy­sty­wać zaso­by tak, aby ofe­ro­wać klien­tom więk­szą war­tość od kon­ku­ren­cji. Dzięki temu przed­się­bior­stwo osią­gnie wyż­sze zyski, a może nawet uzy­ska i utrzy­ma trwa­łą prze­wa­gę konkurencyjną.

Obłój defi­niu­je model biz­ne­so­wy jako ?połą­cze­nie kon­cep­cji stra­te­gicz­nej fir­my i tech­no­lo­gii jej prak­tycz­nej reali­za­cji, rozu­mia­nej jako budo­wa łań­cu­cha war­to­ści pozwa­la­ją­ce­go na sku­tecz­ną eks­plo­ata­cję oraz odno­wę zaso­bów i umie­jęt­no­ści?. Wskazuje, że model biz­ne­so­wy powi­nien odpo­wia­dać na pyta­nia: Co fir­ma będzie robić? Jaki są jej pod­sta­wo­we zaso­by i kom­pe­ten­cje? W jaki spo­sób zaso­by i kom­pe­ten­cje są skon­fi­gu­ro­wa­ne w prak­ty­ce codzien­ne­go dzia­ła­nia? (Źródło: Model biz­ne­so­wy ? Encyklopedia Zarządzania)

Sama głów­na defi­ni­cja w moich oczach nie budzi wąt­pli­wo­ści. Popatrzmy jed­nak na roz­wi­nię­cia róż­nych auto­rów. Timmer mówi, że to struk­tu­ra”. U Amita i Zott’a poja­wia się poję­cie kie­ro­wa­nie”. Porter pisze, że to rola orga­ni­za­cji w łań­cu­chu war­to­ści. To co nazwa­no kom­plek­so­we uję­cie” zawie­ra poję­cie meto­da”. Obłój tak­że raczej opi­su­je struk­tu­rę”. Widać tu więc dwa głów­ne spo­so­by postrze­ga­nia mode­lu biz­ne­so­we­go: (1) jest to struk­tu­ra, (2) jest to mecha­nizm działania.

Osobiście jestem za tym, że model” to mecha­nizm” (ten zawsze zawie­ra swo­ją struk­tu­rę) z bar­dzo pro­ste­go powo­du: model biz­ne­so­wy to tak­że model sys­te­mu jakim jest dana orga­ni­za­cja. Jeżeli uzna­my, że model sys­te­mu to:

przed­sta­wie­nie inte­re­su­ją­cych nas istot­nych wła­ści­wo­ści rze­czy­wi­ste­go (lub two­rzo­ne­go) sys­te­mu w dogod­nej dla nas posta­ci. Model sys­te­mu jest z regu­ły uprosz­cze­niem rze­czy­wi­sto­ści. Powinien zewnętrz­nie zacho­wy­wać się podob­nie jak sys­tem, acz­kol­wiek może mieć inną struk­tu­rę wewnętrz­ną. (Findejsen)

to jeże­li ma się on (model) zacho­wy­wać podob­nie jak sys­tem (mode­lo­wa­ny)”, to model ten musi tak­że zawie­rać mecha­nizm dzia­ła­nia” (zacho­wa­nia, czy­li reak­cje na bodź­ce). Mechanizm dzia­ła­nia opi­su­ją pra­wa” (regu­ły dzia­ła­nia, i te narzu­co­ne i te naturalne).

Tak więc docho­dzi­my do sed­na: model biz­ne­so­wy. poj­mo­wa­ny jak wyżej, musi zawie­rać poza swo­ją wewnętrz­ną struk­tu­rą, tak­że mecha­ni­zmy dzia­ła­nia, to jak się zacho­wu­je w okre­ślo­nych warun­kach. Wynika z tego, że defi­ni­cje mode­li biz­ne­so­wych okre­śla­ją­ce je jako struk­tu­ry” są grun­tu złe. Powodem dla któ­rych two­rzy­my mode­le, jest prze­wi­dy­wa­nie (zacho­wań, reak­cji np. na zmia­ny). Model nie zawie­ra­ją­cy mecha­ni­zmu jego dzia­ła­nia na nic nie reagu­je więc nie posłu­ży do żad­nej analizy.

Na tym tle model (wzo­rzec) Lean Canvas jest wyłącz­nie pew­ną struk­tu­rą, któ­ra może posłu­żyć do oce­ny oce­ny orga­ni­za­cji, ale nie jest to model. Model opar­ty np. na BMM (Business Motivation Model) zawie­ra mię­dzy inny: stra­te­gię, tak­ty­kę, regu­ły biz­ne­so­we, poli­ty­ki dzia­ła­nia, czy­li usta­lo­ne mecha­ni­zmy zacho­wa­nia się (ogra­ni­cze­nia to tak­że mecha­ni­zmy, opi­sa­łem to tu: Strategia, model biz­ne­so­wy, archi­tek­tu­ra kor­po­ra­cyj­na…).

Teraz pora na eko­no­mię ;). Pewnie więk­szość z Was sły­sza­ła o czymś takim jak pra­wo popy­tu i poda­ży” na ryn­ku. Otóż to zna­ne pra­wo ma szer­szy kon­tekst. Jest bar­dzo waż­ne w ana­li­zie biz­ne­so­wej, bo mode­lu­jąc orga­ni­za­cje (przy­po­mi­nam, że model zawie­ra mecha­nizm dzia­ła­nia i zacho­wa­nia czy­li reak­cje na bodź­ce: regu­ły i pra­wa) nale­ży zro­zu­mieć jak się zacho­wu­ją, dla­cze­go, i umieć to zapi­sać (stwo­rzyć model). Jednak sama podaż i popyt to mało. Idąc za Porterem, klu­czem jest poję­cie postrze­ga­nej war­to­ści doda­nej, nie­do­bo­ru czy nasy­ce­nia rynku.

Prawo popy­tu i poda­ży mówi, że w warun­kach nie­zmien­no­ści innych zja­wisk ryn­ko­wych, popyt zmie­nia się z regu­ły w odwrot­nym co cena, a podaż w tym samym kie­run­ku co popyt. Nadwyżka popy­tu nad poda­żą powo­du­je wzrost ceny, nad­wyż­ka poda­ży nad popy­tem jest przy­czy­ną spad­ku ceny. Prawo to jest słusz­nie uzna­wa­ne za pod­sta­wę eko­no­mii, jed­nak ono samo z sie­bie nie daje się sto­so­wać bez­po­śred­nio gdyż, zało­że­nie nie­zmien­no­ści innych zja­wisk ryn­ko­wych” jest na dzi­siaj nie do przy­ję­cia, a same zależ­no­ści nie są jed­nak linio­we. Tak więc to, fun­da­men­tal­ne pra­wo wska­zu­ją­ce na ogól­ny mecha­nizm, jest w warun­kach rze­czy­wi­stych zbyt pro­ste i ogól­ne, jest bez­war­to­ścio­we. Do ana­liz nale­ży użyć mode­li zawie­ra­ją­cych opis mecha­ni­zmu dzia­ła­nia ryn­ku odwzo­ro­wu­ją­cy rze­czy­wi­stość czy­li fakty.

Pierwsza rzecz to cena tego same­go lub takie­go same­go, produktu.

cenaAPopyt

Najprostsza z tych zależ­no­ści, poka­zu­je, że cena spa­da wraz zer wzro­stem popy­tu (bo, jak pamię­ta­my rośnie podaż) rośnie podaż. Jednak nie jest to spa­dek linio­wy i ma okre­ślo­ny próg: jest to koszt pro­duk­tu w miej­scu jego sprze­da­ży. Świadomie nie napi­sa­łem koszt wytwo­rze­nia” bo to nie praw­da. Koszt w miej­scu sprze­da­ży to koszt wytwo­rze­nia plus koszt dys­try­bu­cji plus koszt sprze­da­ży (lokal, wyna­gro­dze­nie sprze­daw­cy, itp.). Dla porząd­ku doda­łem poję­cie dum­pin­gu czy­li sprze­daż po cenie niż­szej od kosz­tów (ele­ment spe­ku­la­cji i nie­uczci­wej kon­ku­ren­cji, w wie­lu kra­jach tyleż zaka­za­ny co trud­ny do udowodnienia).

W mar­ke­tin­gu zna­ne jest poję­cie sub­sty­tu­tu: jest to inny pro­dukt ale nio­są­cy te same korzy­ści kupu­ją­ce­mu: np. (nie zawsze) wypo­ży­cze­nie samo­cho­du jest w okre­ślo­nych sytu­acjach sub­sty­tu­tem jego zaku­pu a tablet­ka prze­ciw bólo­wi zęba może być sub­sty­tu­tem usu­nię­cia bolą­ce­go zęba. Te wszyst­kie niu­an­se nale­ży zawsze zro­zu­mieć two­rząc model biznesowy.

Kolejny wykres to uzu­peł­nie­nie poprzedniego:

cenaANiedobor

Prawo popy­tu i sprze­da­ży, odbie­ra­ne wprost, nie bie­rze pod uwa­gę poję­cia war­to­ści postrze­ga­nej lub mak­sy­mal­nej war­to­ści akcep­to­wa­nej. Przede wszyst­kim nie są to war­to­ści obiek­tyw­ne (w razie wąt­pli­wo­ści zasta­nów­cie się ile Wy jeste­ście skłon­ni zapła­cić za przed­wo­jen­ny zna­czek pocz­to­wy). Należy więc, przed jej osza­co­wa­niem, zde­fi­nio­wać sobie cechy i moty­wa­cję do zaku­pu poten­cjal­ne­go klien­ta. To się nazy­wa defi­ni­cją gru­py doce­lo­wej. Istotne są tak­że warun­ki, np. cena butel­ko­wa­nej wody mine­ral­nej rośnie natych­miast na tere­nach dotknię­tych powo­dzia­mi czy trzę­sie­nia­mi zie­mi (nie­do­bór wody pit­nej wywo­ła­ny kata­kli­zmem). Tak więc wzrost nie­do­bo­ru jest przy­czy­ną wzro­stu cen tyl­ko do pew­ne­go okre­ślo­ne­go pozio­mu: jest nim mak­sy­mal­na war­tość postrze­ga­na (war­tość przy któ­rej jeste­śmy skłon­ni do doko­na­nia wymiany).

Popatrzmy na całość:

cenaAPodaz

(wszyst­kie powyż­sze wykre­sy to opra­co­wa­nie wła­sne autora)

Na tym wykre­sie poka­za­łem wpływ poda­ży na cenę uwzględ­nia­jąc powyż­sze cząst­ko­we zależ­no­ści”. Zaczynając od nie­do­bo­ru (lewa stro­na), cena jest naj­wyż­sza, pro­go­wa (war­tość postrze­ga­na). W mia­rę rosną­cej poda­ży zaczy­na spa­dać. Tu mała uwa­ga: to podaż kształ­tu­je cenę a nie cena podaż 😉 (nie jest to syme­trycz­na zależ­ność). Rosnąca podaż pro­wa­dzi do ceny naj­niż­szej moż­li­wej wyzna­czo­nej przez koszt.

Dopiero na takim wykre­sie moż­na pro­wa­dzić bada­nia”, ten wykres to mecha­nizm dzia­ła­nia ryn­ku (z jakiejś per­spek­ty­wy i w jakimś uprosz­cze­niu). Tłumaczy on np. mecha­nizm akcy­zy: pro­dukt o bar­dzo wyso­kiej postrze­ga­nej war­to­ści, mimo dużej poda­ży (np. alko­hol) może mieć na ryn­ku wyso­ką cenę, za spra­wą Państwa, któ­re poprzez akcy­zę pod­no­si kosz­ty. Jak nie trud­no się domy­śleć, może to zro­bić wyłącz­nie Państwo jako jedy­ny legal­ny mono­po­li­sta. To tak­że tłu­ma­czy, dla­cze­go prak­tycz­nie na całym świe­cie Państwa uzna­ją wszel­kie zmo­wy (kar­te­le, tru­sty) two­rzą­ce mono­po­le, za nie­le­gal­ne dla­te­go, że jest to mecha­nizm spe­ku­la­cyj­ny. Owszem są legal­ne for­my mono­po­lu takie jak paten­ty i pra­wo autor­skie, jed­nak pra­wo dopusz­cza je wyłącz­nie wte­dy, gdy dane dobro nie jest uzna­wa­ne za pod­sta­wo­we dla życia, bo wte­dy wkra­cza Państwowy regu­la­tor. Jaskrawym przy­kła­dem była nie­daw­na idea pań­stwo­we­go pod­ręcz­ni­ka jako odpo­wiedź na zmo­wę cen ich wydawców.

W tym miej­scu mała nie­spo­dzian­ka. Napisałem na począt­ku, że nie będzie dzi­siaj żad­nych klas ani pro­ce­sów, i jest to pra­wie praw­da” :). Otóż, gdy­by­śmy chcie­li mode­lo­wać ana­li­zo­wa­ną fir­mę, mie­li­by­śmy model w posta­ci dwóch obiek­tów: Firma oraz Rynek. Ten dru­gi miał­by ope­ra­cję Za ile kupisz mój pro­dukt”, a wyni­kiem tej ope­ra­cji była by Możliwa Cena Zakupu tego pro­duk­tu, meto­da (mecha­nizm reali­zu­ją­cy tę ope­ra­cję) była by zależ­no­ścią opi­sa­ną tym ostat­nim wykresem.

Tak więc OK, prze­my­ci­łem tu (mam nadzie­ję) waż­ne informacje:
– sama struk­tu­ra to nie model,
– two­rząc jaki­kol­wiek model musi­my rozu­mieć i opi­sać jego zacho­wa­nie, opi­sać mecha­nizm dzia­ła­nia (zacho­wa­nie) każ­de­go ele­men­tu tej struktury,
– dla­te­go model dzie­dzi­ny sys­te­mu, czy w ogó­le model jakie­go­kol­wiek sys­te­mu, to tak na praw­dę obiek­to­wy model, któ­ry nie może być mode­lem ane­micz­nym ([[ane­micz­ny model dziedziny]]),
bez zro­zu­mie­nia mecha­ni­zmu dzia­ła­nia orga­ni­za­cji, wpro­wa­dza­jąc do niej jakie­kol­wiek zmia­ny, szcze­gól­nie wdra­ża­jąc opro­gra­mo­wa­nie, raczej jej zaszko­dzi­cie niż pomo­że­cie.

(dla­te­go też, dia­gra­my ERD i tak zwa­ne mode­le danych, pozba­wio­ne funk­cji, nie są mode­la­mi cze­go­kol­wiek a jedy­nie okre­ślo­nym strukturami).