Ogólna Teoria Systemów a analiza

Wprowadzenie

Niedawno pisa­łem o pew­nej innej książ­ce, jej autor opi­sał sys­te­mo­we podej­ście do ana­li­zy przed­się­bior­stwa. Napisałem mię­dzy inny­mi wte­dy, że:

Rzecz w tym, że poję­cie ?ana­li­za sys­te­mo­wa? jest uży­wa­ne naj­czę­ściej (jak obser­wu­ję, pra­wie zawsze) w zna­cze­niu ana­li­zy i pro­jek­to­wa­nia opro­gra­mo­wa­nia (sys­te­my IT) co jest błędem.Tak zwa­ne ?cało­ścio­we myśle­nie? (holi­stycz­ne) to uzna­nie, że sys­tem to nie tyl­ko opro­gra­mo­wa­nie. (Źródło: Systems Thinking czy­li ana­li­za sys­te­mo­wa orga­ni­za­cji | Jarosław Żeliński IT-Consulting)

Tak więc pora na ciąg dalszy.

Ogólna Teoria Systemów

Książka ta, Ogólna Teoria Systemów , cze­ka­ła u mnie na swój czas, i docze­ka­ła się. Literatura o teo­rii sys­te­mów nie jest zbyt boga­ta nie­ste­ty, w Polsce to głów­nie pozy­cje Sienkiewicza, Cempela , i chy­ba naj­bo­gat­sza w treść pra­ca zbio­ro­wa pod kie­run­kiem Findeisena . Dla tych, któ­rzy nie wie­dzą, ogól­na teo­ria sys­te­mów to dzie­ło bio­lo­ga (Ludwig von Bertalanffy). Egzemplarz książ­ki, któ­ry mam przed sobą, to dwu­dzie­ste papie­ro­we wyda­nie! Teraz więc pora na książ­kę twór­cy tej teorii.

Nie będę tym razem stresz­czał ani oce­niał tej książ­ki, po pro­stu każ­dy kto ma sło­wo System” w nazwie zawo­du lub zakre­sie obo­wiąz­ków, i chce tę pra­cę” wyko­ny­wać z peł­nym zro­zu­mie­niem i dobrze, powi­nien tę teo­rie znać i rozu­mieć. Tu tyl­ko poka­żę o co chodzi”.

Definicja sys­te­mu w róż­nych, ale bar­dzo bli­skich sobie, for­mach brzmi:

zło­żo­ny obiekt wyróż­nio­ny w bada­nej rze­czy­wi­sto­ści, sta­no­wią­cy całość two­rzo­ną przez zbiór obiek­tów ele­men­tar­nych (ele­men­tów) i powią­zań (związ­ków i rela­cji) mię­dzy nimi

System bywa tak­że nazy­wa­ny zor­ga­ni­zo­wa­ną zło­żo­no­ścią”. Klasyczna ogól­na teo­ria sys­te­mów opar­ta jest na mate­ma­tycz­nych mode­lach (rów­na­niach), opi­su­ją­cych reak­cję każ­de­go ele­men­tu sys­te­mu, i sys­te­mu jako całość, na okre­ślo­ne bodź­ce. Mechanizm dzia­ła­nia (zacho­wa­nia się) sys­te­mu to wyni­ko­wy wzór”. W meto­dzie nauko­wej zestaw takich mate­ma­tycz­nych rów­nań nazy­wa się mode­lem” lub po pro­stu teo­rią wyja­śnia­ją­cą. Równania opi­su­ją­ce te ele­men­ty to, zależ­nie od zło­żo­no­ści sys­te­mu, [[rów­na­nia linio­we]] (pro­ste) lub [[rów­na­nia nie­li­nio­we]]. W kolej­nych aka­pi­tach wyja­śnię jaki to ma zwią­zek (a ma!) z mode­lo­wa­niem organizacji.

GeneralSystemTheoryMathematicalProblems

Klasyfikacja mate­ma­tycz­na sys­te­mów jak pro­ble­mów do roz­wią­za­nia (źró­dło: recen­zo­wa­na książka):

Powyższa tabli­ca poka­zu­je zesta­wie­nie rodza­jów rów­nań wyma­ga­nych do opi­sa­nia zacho­wa­nia sys­te­mu. Wiersze to kolej­no pro­ste rów­na­nia alge­bra­icz­ne, pro­ste i zło­żo­ne rów­na­nia róż­nicz­ko­we. W kolum­nach mamy ilość rów­nań (układ rów­nań) opi­su­ją­cych dany sys­tem (odpo­wia­da to zło­żo­no­ści całe­go bada­ne­go systemu).

Banalnie pro­ste” sys­te­my moż­na opi­sać jed­nym, pro­stym rów­na­niem linio­wym. Systemy uzna­wa­ne za łatwe” do ana­li­zy to te, dają­ce się opi­sać pro­stym ukła­dem kil­ku rów­nań linio­wych lub jed­nym rów­na­niem róż­nicz­ko­wym. Systemy wyma­ga­ją­ce do ich opi­su (zamo­de­lo­wa­nia) ukła­du bar­dzo wie­lu rów­nań linio­wych lub nawet kil­ku poje­dyn­czych róż­nicz­ko­wych, sta­ją bar­dzo trud­ne, a w mia­rę rosną­cej ilo­ści rów­nań (zło­żo­no­ści sys­te­mu), są po pro­stu nie­moż­li­we do roz­wią­za­nia meto­dą inną niż sta­ty­stycz­na (ite­ra­cje i bada­nie rezul­ta­tów). Pisząc ana­li­za” mamy tu na myśli moż­li­wość nie tyl­ko opi­sa­nia tymi rów­na­nia­mi sys­te­mu (bo to nie musi być trud­ne) ale ich (tych rów­nań) roz­wią­za­nie (przy­po­mi­nam: to wie­le rów­nań z wie­lo­ma zmiennymi).

System otwarty i jego model

Idźmy dalej :). Podstawowym mode­lem sys­te­mu otwar­te­go jest układ sprzę­że­nia zwrot­ne­go (źr. opi­sy­wa­na książka):

GeneralSystemTheorySimpleFeedback

Diagram może wyglą­da dość ana­chro­nicz­nie ale pamię­taj­my, że książ­kę napi­sa­no w 1969 roku. Nie zmie­nia to fak­tu, że tak wła­śnie wyglą­da ogól­ny model sys­te­mu. Jest to sys­tem otwar­ty, to zna­czy taki, któ­ry ma inte­rak­cje ze swo­im oto­cze­niem (sys­tem zamknię­ty nie ma takich inte­rak­cji, takich nie będzie­my tu rozpatrywali).

A teraz popa­trz­my na pro­sty, ele­men­tar­ny, model sys­te­mu otwar­te­go wyko­na­ne­go z uży­ciem nota­cji UML :

System jako mechanizm

Każdy sys­tem moż­na zde­fi­nio­wać jako jakiś mecha­nizm”, któ­ry jakoś” reagu­je na bodź­ce. Gdy mówi­my o tak zwa­nej meto­dzie nauko­wej ana­li­zy to zna­czy, że sta­wia­my hipo­te­zę wyja­śnia­ją­cą zacho­wa­nie sys­te­mu. Ta hipo­te­za to nic inne­go jak model tego sys­te­mu czy­li opis mecha­ni­zmu jego dzia­ła­nia. Teoria nauko­wa (tak zwa­na teo­ria wyja­śnia­ją­ca) to model pozwa­la­ją­cy na wyja­śnie­nie zaob­ser­wo­wa­nych (nie musi ich być wie­le) zacho­wań sys­te­mu i prze­wi­dy­wa­nie przy­szłych jego zacho­wań (reak­cji na bodź­ce). Teoria taka jest uzna­wa­na za popraw­ną do cza­su wska­za­nia zacho­wa­nia (reak­cji na bodziec), któ­re­go model (teo­ria) nie wyja­śnia (to nazy­wa­my fal­sy­fi­ka­cją teorii).

Pokażmy powyż­szy model w nowej posta­ci”, w nota­cji UML, sprzę­że­nie zwrot­ne uwi­docz­nio­ne na dia­gra­mie z książ­ki, może wyglą­dać tak:

Schemat prostego sprzężenia

Powyższy dia­gram UML jest odwzo­ro­wa­niem pre­zen­to­wa­ne­go (cyto­wa­ne­go) powy­żej dia­gra­mu obra­zu­ją­ce­go sprzę­że­nie zwrot­ne. Mam nadzie­ję, że widać podo­bień­stwo do, nie raz tu (w moim blo­gu) pre­zen­to­wa­nych, mode­li opi­su­ją­cych sce­na­riusz przy­pad­ku uży­cia (któ­ry jest bodź­cem ini­cjo­wa­nym przez akto­ra). Powyższy dia­gram, to pro­sty sys­tem, któ­ry ma pew­ną cechę: każ­dy kolej­ny taki sam bodziec spo­wo­du­je dokład­nie taką samą reak­cję sys­te­mu. Niestety taki model nie nada­je się do więk­szo­ści zasto­so­wań zwią­za­nych z tak zwa­nym biz­ne­sem, i nie tyl­ko. Dlaczego? Ten model to wyjaśni:

Pełna wewnętrzna struktura systemu

Tu mamy tak zwa­ny model sys­te­mu z pamię­cią. Eureka :), to nasze apli­ka­cje. Systemy spo­łecz­ne spo­ty­ka­ne wokół nas to z regu­ły sys­te­my z pamię­cią, kolej­ne reak­cje sys­te­mu to efekt bodź­ca jaki się poja­wi i wcze­śniej­szych zapa­mię­ta­nych reak­cji (histo­rii). Jak widać takie same bodź­ce mogą wywo­ły­wać inne reak­cje w przy­pad­ku sys­te­mu z pamię­cią. Tak dzia­ła­my my (uczy­my się), tak dzia­ła więk­szość apli­ka­cji biz­ne­so­wych (zbie­ra dane). Systemów bez pamię­ci tak­że mamy wokół sobie wie­le. Od zegar­ka czy pro­ste­go kal­ku­la­to­ra (wyni­ki pod­sta­wo­wych ope­ra­cji mate­ma­tycz­nych nie zale­żą histo­rii obli­czeń) do robo­tów kuchen­nych i wie­lu podob­nych, nawet nie raz bar­dzo zło­żo­nych ele­men­tów gospo­dar­stwa domo­we­go i nie tylko.

Nieco inną pró­bę two­rze­nia mode­lu cyber­ne­tycz­ne­go z uży­ciem UML poję­li Panetto i Petin .

Biznes jako system

Jakim rodza­jem sys­te­mu jest apli­ka­cja biz­ne­so­wa? Mamy tu – w biz­ne­sie – w zasa­dzie wyłącz­nie pro­ste ope­ra­cje mate­ma­tycz­ne (rów­na­nia linio­we) takie jak wyli­cza­nie war­to­ści, podat­ku VAT i sumy do zapła­ty fak­tu­rach, wiel­ko­ści obro­tów w mie­sią­cu czy roku, sald kont itp. Złożoność apli­ka­cji biz­ne­so­wych tkwi w ilo­ści pro­stych obli­czeń i licz­by ich wza­jem­nych zależ­no­ści (ukła­dy wie­lu rów­nań linio­wych). Model obiek­to­wy (jak naj­bar­dziej ade­kwat­ny do mode­lo­wa­nia sys­te­mów, biz­ne­so­wych też) to takie ato­mo­we” obiek­ty sys­te­my”, każ­dy z ope­ra­cja­mi (meto­da: mecha­nizm reago­wa­nia obiek­tu na bodziec czy­li na komu­ni­kat do nie­go kie­ro­wa­ny) i pamię­cią (war­to­ści atry­bu­tów). Projektowanie (porząd­ko­wa­nie) archi­tek­tu­ry apli­ka­cji to pano­wa­nie nad zło­żo­no­ścią całe­go takie­go sys­te­mu, pil­no­wa­nie by jego opis nie stał się ukła­dem wie­lu rów­nań nie­li­nio­wych (uni­ka­nie wewnętrz­nych sprzę­żeń, wywo­łań wie­le do wie­lu” itp. czy­li tak zwa­ne­go spa­ghet­ti”).

Przy pró­bach mode­lo­wa­nia zło­żo­nych sys­te­mów skła­da­ją­cych się z ludzi i ich narzę­dzi pra­cy zaczy­na­ją się pro­ble­my. Organizacje mode­lu­je­my na pew­nym pozio­mie ogól­no­ści, takim by abs­tra­ho­wać od spe­cy­fi­ki kon­kret­nych przy­pad­ków i warun­ków i reali­za­cji, te szcze­gó­ły (zmien­ne) jeste­śmy zmu­sze­ni pomi­nąć, gdyż w prze­ciw­nym wypad­ku popraw­ny model nie był­by w sta­nie powstać z uwa­gi na jego zło­żo­ność. Tu model poka­zu­je klu­czo­we zacho­wa­nia, o któ­rych wie­my, że muszą się poja­wić i są prze­wi­dy­wal­ne (bo. np. wymu­szo­ne pra­wem, regu­la­mi­nem itp.). Model orga­ni­za­cji, dają­cy się testo­wać musi więc pomi­jać wszel­kie szcze­gó­ły, spe­cy­ficz­ne dla kon­kret­nej sytu­acji. Poziom zło­żo­no­ści mode­lu pro­ce­su biz­ne­so­we­go powi­nien więc utrzy­my­wać taką postać (nota­cja BPMN) :

Model procesów biznesowych

Z uwa­gi na przyj­mo­wa­ną powszech­nie defi­ni­cję pro­ce­su: aktyw­ność two­rzą­ca war­tość, prze­kształ­ca­jąc stan wej­ścia w stan wyj­ścia, na mode­lu takim muszą być uwi­docz­nio­ne pro­duk­ty każ­dej aktyw­no­ści (i jej wej­ścia). Więcej o mode­lo­wa­niu pro­ce­sów biz­ne­so­wych moż­na prze­czy­tać w innych publi­ko­wa­nych tu arty­ku­łach.

W toku ana­li­zy i pro­jek­to­wa­nia klu­czo­wym ele­men­tem jest testo­wa­nie mode­li. Model to hipo­te­za brzmią­ca: tak to dzia­ła”. Zarówno model sce­na­riu­sza przy­pad­ku uży­cia (dia­gram sekwen­cji, bo tyl­ko te się testu­je, dia­gra­my przy­pad­ków uży­cia to lista usług a nie ich reali­za­cje, tu może­my testo­wać naj­wy­żej ich kom­plet­ność), jak i wcze­śniej opra­co­wa­ne mode­le pro­ce­sów biz­ne­so­wych, się testu­je. Test taki pole­ga na pró­bie wyka­za­nia wad (pró­ba fal­sy­fi­ka­cji) mode­lu. Odbiór takiej doku­men­ta­cji nie pole­ga więc (nie powi­nien) na udo­wad­nia­niu przez auto­ra (jak?), że to dobry model, pole­ga na pró­bie wska­za­nia wad doku­men­ta­cji (np. odbior­ca wska­że w orga­ni­za­cji dzia­ła­nia, któ­rych nie opi­su­je model). Dokładnie tak samo prze­bie­ga­ją testy akcep­ta­cyj­ne dostar­czo­ne­go opro­gra­mo­wa­nia: opro­gra­mo­wa­nie jest dobre, chy­ba że w toku testów (skoń­czo­nej ich ilo­ści!) nie zadzia­ła ono zgod­nie z opi­sa­nym wyma­ga­niem (zade­kla­ro­wa­nym rezultatem).

Systemy spo­łecz­ne, z uwa­gi na ogrom czyn­ni­ków mają­cych wpływ na nie, moż­na opi­sy­wać wyłącz­nie sta­ty­stycz­nie a ich mode­le są jedy­nie przy­bli­żo­ne, nie są to teo­rie w ści­słym tego sło­wa zna­cze­niu (np. tak zwa­ne pra­wo popy­tu i poda­ży nie jest teo­rią nauko­wą) bo nie da się prze­wi­dy­wać zacho­wa­nia takie­go sys­te­mu, nie da się nawet wyli­czyć praw­do­po­do­bień­stwa tego co i czy się wyda­rzy, moż­na co naj­wy­żej osza­co­wać (w zasa­dzie jest to bar­dziej wróż­ba) i cze­kać. Opisałem to przy oka­zji komen­to­wa­nia mody na big data.

Niestety otwar­te sys­te­my zło­żo­ne takie jak spo­łe­czeń­stwa, ryn­ki czy nawet zło­żo­ne apli­ka­cje to zło­żo­ność opi­sa­na w pra­wej dol­nej czę­ści tabe­li na począt­ku tego tek­stu. Są to sys­te­my dla nas nie­prze­wi­dy­wal­ne, moż­na mówić o zro­zu­mie­niu kon­kret­nych ich ele­men­tów ale nie o roz­wią­zy­wa­niu cało­ści”. To jak chmu­ry, zna­my zasa­dy ter­mo­dy­na­mi­ki, budo­wę ato­mów i czą­stek pary wod­nej, ale zło­żo­ność np. chmu­ry burzo­wej (licz­ba nie­li­nio­wych rów­nań ja opi­su­ją­cych) to taki układ rów­nań” nie­moż­li­wy do roz­wią­za­nia, moż­na mówić co naj­wy­żej o ite­ra­cyj­nym pod­sta­wia­niu”, i tak dzia­ła­ją symu­la­to­ry pogo­dy (te pro­gno­zy nadal, jak wie­my, są krót­ko ter­mi­no­we i obar­czo­ne nie małym błę­dem). Analogiczna sytu­acja ma miej­sce np. na gieł­dach walut czy akcji, pro­gno­zo­wa­nie ich kur­sów to lote­ria (co wyka­za­no w nauce nie raz, a mimo to entu­zja­ści ana­li­zy tech­nicz­nej nie wierzą ;)).

Tak więc orga­ni­za­cja, któ­ra pla­nu­je zakup i wdro­że­nie opro­gra­mo­wa­nia, to sys­tem skła­da­ją­cy się z ludzi, mecha­ni­zmów ich dzia­ła­nia (ich umie­jęt­no­ści i zakre­sy obo­wiąz­ków, sta­wia­ne zada­nia) oraz narzę­dzi pra­cy, któ­re tak­że są sys­te­ma­mi: to opro­gra­mo­wa­nie i ich śro­do­wi­sko. Czy moż­na prze­wi­dy­wać ich zacho­wa­nie? Nie. Ale moż­na opra­co­wać model takiej orga­ni­za­cji i ze zro­zu­mie­niem sta­rać się nią kie­ro­wać ([[podej­mo­wa­nie decy­zji]]). Wymagania na opro­gra­mo­wa­nie może być listą ocze­ki­wań przy­szłych użyt­kow­ni­ków ale to sta­now­czo za mało, sku­tecz­ne wyma­ga­nie to żąda­ny model sys­te­mu jakim jest pla­no­wa­na do wdro­że­nia aplikacja.

Szukając goto­we­go opro­gra­mo­wa­nia na ryn­ku, two­rzy­my ogól­niej­szy model tego co potrze­bu­je­my (blo­ki funk­cjo­nal­ne, kom­po­nen­ty) i szu­ka­my, i raczej będą to dobra­ne dzie­dzi­no­we apli­ka­cje niż jeden mono­lit pasu­ją­cy do mode­lu naszej orga­ni­za­cji … Teraz, mam nadzie­ję, wie­my dla­cze­go nie­try­wial­ne opro­gra­mo­wa­nie, dla osią­gnię­cia wyso­kiej jego jako­ści, musi­my testo­wać (ite­ra­cyj­ne poda­wa­nie bodź­ców) bo nie jest moż­li­we udo­wod­nie­nie (wyli­cze­nie) tego na pod­sta­wie tyl­ko tre­ści kodu.

A teraz zachę­cam do lek­tu­ry książ­ki, otwo­rzy oczy na wie­le zja­wisk któ­re wokół sie­bie obserwujemy.

Źródła

Cempel, C. (2006). Teoria i inży­nie­ria sys­te­mów. ITE – PIB, Radom.
Sienkiewicz, P. (1994). Analiza sys­te­mo­wa: pod­sta­wy i zasto­so­wa­nia. Wydaw. Bellona.
Findeisen, W. (Ed.). (1985). Analiza sys­te­mo­wa – pod­sta­wy i meto­do­lo­gia. Państw. wydawn. nauk.
OMG​.org. (2017, December). Unified Modeling Language (UML) [OMG​.org]. UML. https://​www​.omg​.org/​s​p​e​c​/​U​ML/
OMG​.org. (2014, January). Business Process Model and Notation (BPMN). https://​www​.omg​.org/​s​p​e​c​/​B​P​MN/
Panetto, H., & Petin, J. F. (2005). Metamodelling of pro­duc­tion sys­tems pro­cess models using UML ste­reo­ty­pes. International Journal of Internet and Enterprise Management, 3(2), 155. https://​doi​.org/​1​0​.​1​5​0​4​/​I​J​I​E​M​.​2​0​0​5​.​0​0​7​638
Bertalanffy, L. van. (2003). General sys­tem the­ory: foun­da­tions, deve­lop­ment, appli­ca­tions (Rev. ed., 14. paper­back print). Braziller.

Inne artykuły na podobny temat

Dodaj komentarz

Twój adres email nie zostanie opublikowany

Komentuj i zadawaj pytania autorowi.

Identyfikator *
E-mail *
Witryna internetowa

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