Program ų keitimas ir evoliucijos dėsniai

64
Program Program ų keitimas ir ų keitimas ir evoliucijos dėsniai evoliucijos dėsniai Prof. Robertas Damaševičius, [email protected] Prof. Vytautas Štuikys, [email protected]

description

Program ų keitimas ir evoliucijos dėsniai. Prof. Robertas Damaševičius , [email protected] Prof. Vytautas Š tuikys , v ytautas.stuik [email protected]. Tikslai. Programų keitimo strategijos P rogramų priežiūros principai per keitim o sąvoką Atviro kodo sistem ų evoliucija - PowerPoint PPT Presentation

Transcript of Program ų keitimas ir evoliucijos dėsniai

Page 1: Program ų keitimas ir evoliucijos dėsniai

ProgramProgramų keitimas ir evoliucijos dėsniaių keitimas ir evoliucijos dėsniai

Prof. Robertas Damaševičius, [email protected]

Prof. Vytautas Štuikys, [email protected]

Page 2: Program ų keitimas ir evoliucijos dėsniai

TikslaiTikslai

• Programų keitimo strategijos• Programų priežiūros principai per keitimo sąvoką• Atviro kodo sistemų evoliucija• Programų klasifikacija• PĮ evoliucija• PĮ evoliucijos (Lehmano) dėsniai

Page 3: Program ų keitimas ir evoliucijos dėsniai

TerminijaTerminija

• Keitimas (change) - programinės įrangos sistemos keitimo proceso valdymas

• Modifikavimas (modification) –keitimas siekiant ištaisyti klaidas arba pagerinti charakteristikas

• Adaptavimas/priderinimas (adaptation) – keitimas siekiant pritaikyti prie pasikeitusių išorės reikalavimų

• Evoliucija/tobulinimas (evolution) – palaipsniniai PĮ pokyčiai, kurie veda prie pageidaujamo rezultato

• Evoliucionuojanti sistema – sistema, kuris sugeba keistis savo gyvavimo ciklo metu

Page 4: Program ų keitimas ir evoliucijos dėsniai

Programų priežiūraProgramų priežiūra

• Programos modifikavimas po to, kai ji jau buvo pradėta naudoti

• Paprastai nereikalauja esminių sistemos architektūros pakeitimų

• Pakeitimai yra realizuojami modifikuojant egzistuojančius komponentus arba pridedant naujus komponentus į sistemą

Page 5: Program ų keitimas ir evoliucijos dėsniai

Programų keitimas yra Programų keitimas yra neišvengiamasneišvengiamas

• Atsiranda nauji reikalavimai naudojamoms programoms

• Keičiasi verslo aplinka• Pastebėtos klaidos turi būti ištaisomos• Sistema turi veikti su nauja įranga• Greitis arba patikimumas turi būti didinamas• Evoliucija būdinga didelėms programoms

– Dydis virš 50 KLOC– Programos, kurių kūrimas buvo valdomas

Page 6: Program ų keitimas ir evoliucijos dėsniai

3 programų keitimo strategijos3 programų keitimo strategijos

• Programų priežiūra– pakeitimai yra atliekami atsižvelgiant į pasikeitusius

reikalavimus, tačiau bazinė programos struktūra išlieka stabili

• Architektūros transformacija– Modifikuojama sistemos architektūra (pvz: centralizuota ->

paskirstyta)

• Programų rekonstravimas– naujas funkcionalumas nepridedamas, tačiau sistema

reorganizuojama rekonstruojama, atseit keičiama architektūra, kad būtų galima palengvinti būsimus pakeitimus

• Šios strategijos gali būti taikomos kartu arba atskirai

Page 7: Program ų keitimas ir evoliucijos dėsniai

Priežiūros numatymasPriežiūros numatymas

• Susijęs su sistemos dalių, kurios gali sukelti problemas ir turėti aukštus priežiūros kaštus, įvertinimu– Pakeitimų realizavimas sumažina sistemos

prižiūrimumą– Priežiūros kaštai priklauso nuo pakeitimų skaičiaus

Page 8: Program ų keitimas ir evoliucijos dėsniai

Priežiūros numatymasPriežiūros numatymas

• Prižiūrimumo numatymas– kurios sistemos dalys bus labiausiai keičiamos?– Kurių dalių priežiūra bus brangiausia?

• Sistemos pakeitimų numatymas– kiek galima tikėtis sistemos pakeitimo užklausų?

• Pakeitimo kaštų numatymas– kokie bus sistemos priežiūros kaštai per

metus/gyvavimo ciklą?

Page 9: Program ų keitimas ir evoliucijos dėsniai

Pakeitimų numatymasPakeitimų numatymas

• Norint numatyti pakeitimų skaičių, reikia gerai suprasti sistemos ryšius su aplinka

• Tampriai surištos sistemos turi būti keičiamos kiekvieną kartą, kai pasikeičia jų aplinka

• Faktoriai– sistemos sąsajų skaičius ir sudėtingumas– Kintančių sistemos reikalavimų skaičius– naudojami verslo procesai

Page 10: Program ų keitimas ir evoliucijos dėsniai

Sudėtingumo matavimasSudėtingumo matavimas

• Įvertinus sistemos komponentų sudėtingumą, galima numatyti sistemos prižiūrimumą

• Daugiausiai priežiūros ir pastangų dažniausiai yra skiriama tik nedidelei daliai sistemos komponentų

• Prižiūrimosios programos sudėtingumas priklauso nuo– valdymo struktūrų sudėtingumo– Duomenų struktūrų sudėtingumo– Procedūrų ir modulių dydžio

Page 11: Program ų keitimas ir evoliucijos dėsniai

Proceso įvertinimasProceso įvertinimas

• Procesų charakteristikos gali padėti įvertinti prižiūrimumą– užklausų taisymui skaičius– vidutinis laikas reikalingas įtakos analizei– vidutinis laikas reikalingas pokyčio užklausai realizuoti– Laukiančių pokyčio užklausų skaičius

• Jei šie dydžiai didėja, sistemos prižiūrimumas mažėja

Page 12: Program ų keitimas ir evoliucijos dėsniai

PĮ keitimas ir evoliucijos dėsniai 12

Kas yra programa?

• Mąstymo sukurtas techninis artefaktas• Vykdomoji matematinė formulė• Įrankis (paslauga)• Tekstas atspindintis tikrovę• Informacija

Page 13: Program ų keitimas ir evoliucijos dėsniai

Kas yra programa?

• Programas kuria, rašo ir naudoja žmonės.

• Programos yra didesnių sistemų (ne tik technologinių, bet ir socialinių) komponentai.

• Programų kūrimo procesas yra ne tik techninis, bet ir socialinis procesas susietas su organizacinėmis struktūromis.

• Programuotojai bendradarbiauja grupėse, kurios yra didesnės organizacijos dalis. Šios socialinės struktūros įtakoja jų darbo procesus ir rezultatus.

• Atviro kodo sistemose daug programuotojų bendradarbiauja, dalinasi idėjomis ir prisideda prie jų kūrimo ir tobulinimo

PĮ keitimas ir evoliucijos dėsniai 13

Page 14: Program ų keitimas ir evoliucijos dėsniai

PPĮĮ evoliucijos tyrimai evoliucijos tyrimai

• Programos išeities tekstas yra daugelio programuotojų praeityje atliktų keitimų rezultatas

• Atviro kodo programos yra didelio kiekio informacijos, kurią galima naudoti tiriant programų evoliucijos procesus, šaltinis

• Programų kūrimo procesai gali būti tiriami analizuojant atviro kodo programų saugyklas

• Programų sistemos praeities keitimų tyrimas kartais vadinamas programinės įrangos archaeologija – atskira žinių inžinerijos šaka

PĮ keitimas ir evoliucijos dėsniai 14

Page 15: Program ų keitimas ir evoliucijos dėsniai

Atviro kodo sistemų evoliucijaAtviro kodo sistemų evoliucija

• Atviro kodo sistemos kuriamos pagal laisvesnį PĮ kūrimo vadybos modelį.

• Paprastai proceso pradžioje yra vienas kūrėjas, kuris sprendžia savo problemą ir paviešina savo sprendimą kitiems nemokamai.

• Sprendimas pritraukia kitus vartotojus, iš kurių kai kurie gali prisidėti plėsdami ir tobulindami pradinę sistemą.

• Sistemos evoliucija prasideda kaip atsakas į vartotojų reikalavimus

• Spontanišką kūrėjų bendradarbiavimą palaiko decentralizuotos kūrėjų bendruomenės ir internetinės atviro kodo saugyklų platformos

PĮ keitimas ir evoliucijos dėsniai 15

Page 16: Program ų keitimas ir evoliucijos dėsniai

Evoliucijos mechanizmaiEvoliucijos mechanizmai

• Evolucijos procesas paklūsta paprastiems mechanizmams, kuriems analogijų galima rasti gyvojoje gamtoje:

• 1) variantiškumą didinantys mechanizmai, ir • 2) variantiškumą mažinantys mechanizmai. • Pvz., standartų laikymasis kaip veiklos strategija mažina

variantiškumą, o programų šeimynų kūrimo modelis variantiškumą didina.

• Šiuos mechanizmus taip pat įtakoja psichologiniai, intelektualiniai, socialiniai ir kultūriniai, ekonominiai ir verslo faktoriai.

PĮ keitimas ir evoliucijos dėsniai 16

Page 17: Program ų keitimas ir evoliucijos dėsniai

PPĮ eĮ evoliucijos tyrimo tikslaivoliucijos tyrimo tikslai

• Nustatyti programų evoliucijos etapus ir perėjimų iš vieno etapo į kitą priežastis

• Programų evoliucija – lėtas palaipsninis kitimo procesas ?• Evoliucijos procesas gali turėti daug etapų• Perėjimo (lūžio) taškai tarp skirtingų etapų atspindi

reikšmingus evoliucionuojančios sistemos pokyčius ir skiria du santykinio stabilumo (ar pusiausvyros) periodus

PĮ keitimas ir evoliucijos dėsniai 17

Page 18: Program ų keitimas ir evoliucijos dėsniai

Šuolinė evoliucijaŠuolinė evoliucija

• Stabilumo periodų metu, sistemos architektūra išlieka stabili ir gali tinkamai reaguoti į numatomus reikalavimų pokyčius. Pokyčiai yra maži ir nepažeidžia sistemos architektūrinių apribojimų.

• Evoliucijos eigoje PĮ architektūra palaipsniui degraduoja (dreifuoja) dėl atliekamų priežiūros veiksmų (klaidų ištaisymo arba funkcionalumo modifikavimo)

• Siekiant kovoti su architektūros degradavimu, architektūra turi būti tobulinama. Tai gali būti atliekama palaipsniui (kodo valymas), arba staiga, kai kokybinis pokytis įvyksta per trumpą laiką.

PĮ keitimas ir evoliucijos dėsniai 18

Page 19: Program ų keitimas ir evoliucijos dėsniai

Evoliucijos etapai (fazės)Evoliucijos etapai (fazės)

PĮ keitimas ir evoliucijos dėsniai 19

Page 20: Program ų keitimas ir evoliucijos dėsniai

PĮ keitimas ir evoliucijos dėsniai 20

Programų klasifikacija evoliucijos požiūriu

• S-programos

• P-programos

• E-programos

čia:

S – specifikacija;

P – problema;

E – aplinka (environment)

Page 21: Program ų keitimas ir evoliucijos dėsniai

PĮ keitimas ir evoliucijos dėsniai 21

S-tipo programa

• Programa yra teisinga ta parsme, kad formaliai atitinka savo specifikaciją

• Pvz.:• Matematinės bibliotekos

Page 22: Program ų keitimas ir evoliucijos dėsniai

PĮ keitimas ir evoliucijos dėsniai 22

S-tipo programa

Formal problem

formulation

Solution

PROGRAM

Real world

Manage creation

Provides

Can be related to

Can be interesting to

dominti

S-type

Page 23: Program ų keitimas ir evoliucijos dėsniai

PĮ keitimas ir evoliucijos dėsniai 23

P-tipo programa

• Sprendžia problemas, kur programos vykdymo teisingumą (korektiškumą) apsprendžia vartotojas

• Specifikuoti neįmanoma• Sprendimas gaunamas įteratyviai derinant su

vartotoju

Page 24: Program ų keitimas ir evoliucijos dėsniai

PĮ keitimas ir evoliucijos dėsniai 24

P-type program evolution

Requirement specification

Solution PROGRAM

real world

P-type

Change

Compa- rison

World abstract model

Change

Page 25: Program ų keitimas ir evoliucijos dėsniai

PĮ keitimas ir evoliucijos dėsniai 25

E-tipo programa

• E-tipo programos sprendžia realaus pasaulio problemas

• Sistema yra neatskiriama savo veikimo aplinkos dalis

• Aplinka apsprendžia programos vykdymo rezultatus

• Keičiantis aplinkai, programa turi būti nuolat atnaujinama

Page 26: Program ų keitimas ir evoliucijos dėsniai

PĮ keitimas ir evoliucijos dėsniai 26

E-type program evolution

Requirement specification

Model

Real world

E-type

World abstract model

Change

PROGRAM

Page 27: Program ų keitimas ir evoliucijos dėsniai

PĮ keitimas ir evoliucijos dėsniai 27

Grįžtamasis ryšys

• PĮ evoliucija neįmanoma be grįžtamojo ryšio• PĮ evoliucijos procesai yra daugiaagenčiai,

daugiasluoksniai, daugiacikliai procesai (systemos) su grįžtamuoju ryšiu

Page 28: Program ų keitimas ir evoliucijos dėsniai

PĮ keitimas ir evoliucijos dėsniai 28

PĮ neapibrėžtumo principas

• PĮ pagrista tam tikro ribotu skaičiumi prielaidų, kurios atsispindi programoje

• Pasikeitus aplinkos sąlygooms, prielaidos nustoja galioti

• E-sistema gali būti pagrįsta tam tikru negaliojančių prielaidų skaičiumi

• Todėl E-tipo programos vykdymo rezultatai gali būti neprognozuojami

Page 29: Program ų keitimas ir evoliucijos dėsniai

Programų evoliucijos dinamikaProgramų evoliucijos dinamika

• Nagrinėja sistemų keitimo procesus• Lehman (8-me XX a dešimtmetyje) atliko

empirinį tyrimą ir pasiūlė 5 empirinius dėsnius, • Tinka visoms besivystančioms sistemoms,

tačiau labiau tinka didelių organizacijų kuriamoms didelėms sistemoms

• Vėliau Lehman’as suformulavo dar 3 dėsnius

Page 30: Program ų keitimas ir evoliucijos dėsniai

Programų evoliucijos dėsniai (1)Programų evoliucijos dėsniai (1)

• 1. Nuolatinių pokyčių dėsnis• 2. Augančio sudėtingumo dėsnis• 3. Didelės programos evoliucijos dėsnis• 4. (Organizacinio) stabilumo išsaugojimo dėsnis• 5. Žinojimo (apie pakeitimus) išsaugojimo dėsnis• ***************************************• 6. Didėjančio funkcionalumo dėsnis• 7. Mažėjančios kokybės dėsnis• 8. Tobulinimo procesų grįžtamojo ryšio dėsnis

Page 31: Program ų keitimas ir evoliucijos dėsniai

Lehman‘Lehman‘o dėsniai: 1-asis dėsniso dėsniai: 1-asis dėsnis

– 1. The law of continuing change: A program that is used in a real-world environment necessarily must change or become progressively less useful in that environment

– Reali programa duotoje aplinkoje būtinai privalo keistis arba ji laipsniškai darysis vis mažiau naudinga

Page 32: Program ų keitimas ir evoliucijos dėsniai

Lehman‘Lehman‘o dėsniai: 2-asis dėsniso dėsniai: 2-asis dėsnis

– 2. The law of increasing complexity: As an evolving program changes, its structure tends to become more complex. Extra resources must be devoted to preserving and simplifying the structure.

– Kai tobulinamoji programa keičiama, jos struktūra tampa vis sudėtingesnė. Reikia papildomų resursų, kad būtų galima išsaugoti ir supaprastinti tą struktūrą

Page 33: Program ų keitimas ir evoliucijos dėsniai

Lehman‘Lehman‘o dėsniai: 3-asis dėsniso dėsniai: 3-asis dėsnis

– 3.      The law of large program evolution: Program evolution is a self-regulating process. System attributes such as size, time between releases and the number of reported errors are approximately invariant for each system release.

– Programos tobulinimas yra savireguliuojantis procesas: sistemos atributai (dydis, laikas tarp išleidimo versijų, pastebėtų klaidų skaičius) apytikriai yra invariantiški kiekvienai versijai

Page 34: Program ų keitimas ir evoliucijos dėsniai

Lehman‘Lehman‘o dėsniai: 4-asis dėsniso dėsniai: 4-asis dėsnis

– 4.      The law of organizational stability: Over a program's lifetime, its rate of development is approximately constant and independent of the resources devoted to system development.

– Programos plėtros greitis per josios gyvavimo ciklą yra apytikriai pastovus ir nepriklauso nuo skiriamų resursų.

Page 35: Program ų keitimas ir evoliucijos dėsniai

Lehman‘Lehman‘o dėsniai: 5-asis dėsniso dėsniai: 5-asis dėsnis

– 5.      The law of conservation of familiarity: Over the lifetime of a system, the incremental system change in each release is approximately constant.

– Inkrementinis sistemos keitimas kiekvienoje pateiktyje (versijoje) yra apytikriai pastovus per visą sistemos gyvavimo ciklą.

Page 36: Program ų keitimas ir evoliucijos dėsniai

Lehmano dLehmano dėsnių istorijaėsnių istorija

• I 1974• Continuing Change • E-type systems must be continually adapted else they

become progressively less satisfactory in use• II 1974• Increasing Complexity• As an E-type system is evolved its complexity increases

unless work is done to maintain or reduce it• III 1974• Self Regulation • Global E-type system evolution processes are self-

regulating

Page 37: Program ų keitimas ir evoliucijos dėsniai

Lehmano dLehmano dėsnių istorijaėsnių istorija

• IV 1978 • Conservation of Organisational Stability• Average global activity rate in an E-type process tends to remain

constant over periods or segments of system evolution over its lifetime

• V 1978 • Conservation of Familiarity• In general, the average incremental growth (long term growth rate)

of E-type systems tends to decline• Nauji dėsniai, VI 1991• Continuing Growth • The functional capability of E-type systems must be continually

enhanced to maintain user satisfaction over the system lifetime• Funkcinės sistemų galimybės turi būti nuolatos didinamos

norint patenkinti vartotojo reikalavimus sistemos gyvavimo cikle

Page 38: Program ų keitimas ir evoliucijos dėsniai

TąsaTąsa

• VII 1996• Declining Quality (Kokybės mažėjimo dėsnis) unless rigorously

adapted to take into account changes in the operational environment, the quality of E-type systems will appear to be declining

• Tobulinant sistemą jos kokybė turi tendenciją blogėti. • VIII 1996 • Feedback System (grįžtamojo ryšio dėsnis) (Recognised 1971,

formulated 1996)• E-type evolution processes are multi-level, multi-loop, multi-agent

feedback systems • E-tipo programų tobulinimo procesai yra daugiasluoksnės,

daugiaciklės ir daugiaagentinės grįžtamojo ryšio sistemos (valdomas daugelių agentų)

Page 39: Program ų keitimas ir evoliucijos dėsniai

Lehmano dėsnių suvestinėLehmano dėsnių suvestinė

1) Nuolatinių pokyčių

2) Augančio sudėtingumo

3) Didelės programos evoliucijos

4) Organizacinio stabilumo

5) Žinojimo (apie pakeitimus) išsaugojimo

6) Funkcinių galimybių nuolatinio augimo

7) Kokybės mažėjimo dėsnis

8) Evoliucinių procesų grįžtamojo ryšio dėsnis

Page 40: Program ų keitimas ir evoliucijos dėsniai

Empiriniai Lehmano dEmpiriniai Lehmano dėėsnisniųų tyrimaityrimai

• Dažniausiai tiriamos atviro kodo sistemos, kurių versijų išeities tekstai saugomi atviro kodo saugyklose

• Linux, ...• A. Israeli, D.G. Feitelson. The Linux kernel as a

case study in software evolution. Journal of Systems and Software, 83(3), 2010, 485–501.

PĮ keitimas ir evoliucijos dėsniai 40

Page 41: Program ų keitimas ir evoliucijos dėsniai

LinuxLinux

• Pirma versija – 1994 m• Daugiau nei 800 versijų

– x.0, x.2, x.4 ... – stabilios– x.1, x.3, x.5 ... – testavimo versijos

• Keli tūkstančiai programuotojų• Realizuota C kalba• E-tipo programos pavyzdys

PĮ keitimas ir evoliucijos dėsniai 41

Page 42: Program ų keitimas ir evoliucijos dėsniai

1 dėsnis: Nuolatinis keitimasis 1 dėsnis: Nuolatinis keitimasis

• Failų skaičius

PĮ keitimas ir evoliucijos dėsniai 42

Page 43: Program ų keitimas ir evoliucijos dėsniai

2 dėsnis: Sudėtingumo augimas2 dėsnis: Sudėtingumo augimas

PĮ keitimas ir evoliucijos dėsniai 43

Page 44: Program ų keitimas ir evoliucijos dėsniai

3 dėsnis: savireguliacijos dėsnis 3 dėsnis: savireguliacijos dėsnis

• Interpretuojamas kaip tam tikri augimo šablonai ar tendencijos, pasireiškiančios per ilgą laiką

PĮ keitimas ir evoliucijos dėsniai 44

Page 45: Program ų keitimas ir evoliucijos dėsniai

4 dėsnis: pastangų stabilumo 4 dėsnis: pastangų stabilumo dėsnisdėsnis

PĮ keitimas ir evoliucijos dėsniai 45

Page 46: Program ų keitimas ir evoliucijos dėsniai

6 dėsnis: Nuolatinis augimas6 dėsnis: Nuolatinis augimas

PĮ keitimas ir evoliucijos dėsniai 46

Page 47: Program ų keitimas ir evoliucijos dėsniai

6 dėsnis: Nuolatinis augimas6 dėsnis: Nuolatinis augimas

PĮ keitimas ir evoliucijos dėsniai 47

Page 48: Program ų keitimas ir evoliucijos dėsniai

7 dėsnis: mažėjanti kokybė7 dėsnis: mažėjanti kokybė

PĮ keitimas ir evoliucijos dėsniai 48

Page 49: Program ų keitimas ir evoliucijos dėsniai

Linux ir Lehmano dėsniai: suvestinėLinux ir Lehmano dėsniai: suvestinė

PĮ keitimas ir evoliucijos dėsniai 49

Page 50: Program ų keitimas ir evoliucijos dėsniai

TurskiTurski** modelis modelis

• Aprašomas iteracine lygtimi:

• Lygties sprendinys:čia:

y – sistemos modulių skaičius,

E – sistemos konstanta

• Sistemai didėjant ir sudėtingėjant jos augimas paprastai sulėtėja

PĮ keitimas ir evoliucijos dėsniai 50

21

i

iiy

Eyy

constExy 3 3

* W. M. Turski. Reference model for smooth growth of software systems. IEEE Trans. on Software Engineering, 22(8), August 1996.

Page 51: Program ų keitimas ir evoliucijos dėsniai

PĮ keitimas ir evoliucijos dėsniai 51

Growth trends

declining growth rate trends appropriately modelled by an inverse square model of the form Si+1 = Si + E/S2iwhere Si is the predicted size of the release with sequence number ‘i’, with size measured in appropriate units and E is a model parameter as determined from data on the growth history of the system

Page 52: Program ų keitimas ir evoliucijos dėsniai

Turski modelisTurski modelis

• Tikrovėje: negalioja atviro kodo sistemoms• Pvz., Linux kernelio augimas

PĮ keitimas ir evoliucijos dėsniai 52

Page 53: Program ų keitimas ir evoliucijos dėsniai

PĮ evoliucijos modeliavimas PĮ evoliucijos modeliavimas naudojant tinklų teorijos elementusnaudojant tinklų teorijos elementus

• S. Valverde, R. V. Solé. Logarithmic growth dynamics in software networks. Europhys. Lett., 72 (5), p. 858 (2005) http://iopscience.iop.org/0295-5075/72/5/858/fulltext/

PĮ keitimas ir evoliucijos dėsniai 53

Page 54: Program ų keitimas ir evoliucijos dėsniai

Programa Programa = tinklas= tinklas

• Mazgai – programos komponentai (funkcijos, klasė)

• Ryšiai – komponentų iškvietimas, kintamųjų ir tipų naudojimas, paveldėjimas, ...

PĮ keitimas ir evoliucijos dėsniai 54

Page 55: Program ų keitimas ir evoliucijos dėsniai

Tinklo savybėsTinklo savybės

PĮ keitimas ir evoliucijos dėsniai 55

Page 56: Program ų keitimas ir evoliucijos dėsniai

Evoliucijos modeliavimasEvoliucijos modeliavimas

• XFree86 - provides a client/server interface between the display hardware and the desktop environment for Unix/Linux

PĮ keitimas ir evoliucijos dėsniai 56

Page 57: Program ų keitimas ir evoliucijos dėsniai

Atviro kodo sistemos: 5122 Atviro kodo sistemos: 5122 projektų tyrimasprojektų tyrimas

PĮ keitimas ir evoliucijos dėsniai 57

DESHPANDE, A., AND RIEHLE, D. 2008. The Total Growth of Open Source. In ProceedingsFourth Conference on Open Source Systems (OSS 2008). Springer Verlag, 2008, 197-209.

Page 58: Program ų keitimas ir evoliucijos dėsniai

Evoliucijos vizualizavimasEvoliucijos vizualizavimas

PĮ keitimas ir evoliucijos dėsniai 58

Page 59: Program ų keitimas ir evoliucijos dėsniai

Evoliucijos matricaEvoliucijos matrica

PĮ keitimas ir evoliucijos dėsniai 59

Page 60: Program ų keitimas ir evoliucijos dėsniai

Evoliucijos animavimasEvoliucijos animavimas

• Gource• https://code.google.com/p/gource/ • code_swarm• http://vis.cs.ucdavis.edu/~ogawa/codeswarm/ • http://code.google.com/p/codeswarm

PĮ keitimas ir evoliucijos dėsniai 60

Page 61: Program ų keitimas ir evoliucijos dėsniai

Evoliucijos animacijaEvoliucijos animacija (su Gource) (su Gource)

• Git:http://www.youtube.com/watch?v=GTMC3g2Xy8c

• Python:http://www.youtube.com/watch?v=cNBtDstOTmA

• Symphony2: PHP frameworkhttp://www.youtube.com/watch?v=164Z1gyqk6M

• GNU kompiliatoriushttps://www.youtube.com/watch?v=ZEAlhVOZ8qQ

• LINUXhttps://www.youtube.com/watch?v=pOSqctHH9vY

PĮ keitimas ir evoliucijos dėsniai 61

Page 62: Program ų keitimas ir evoliucijos dėsniai

Evoliucijos animacijos (su Evoliucijos animacijos (su code_swarm)code_swarm)

• Apache• https://vimeo.com/1076588• Python• https://vimeo.com/1093745• Eclipse• https://vimeo.com/1130828

PĮ keitimas ir evoliucijos dėsniai 62

Page 63: Program ų keitimas ir evoliucijos dėsniai

IšvadosIšvados

• Lehman’o dėsniai gėrai aprašo didelių, uždarų, gerai valdomų projektų evoliuciją

• Atviro kodo sistemose veikia kiti dėsniai: socialiniai tinklai, saviorganizacija, vadybos beveik nėra

• Todėl atviro kodo sistemos gali augti žymiai greičiau (eksponentiškai) nei uždaros sistemos

PĮ keitimas ir evoliucijos dėsniai 63

Page 64: Program ų keitimas ir evoliucijos dėsniai

LiteratūraLiteratūra

• Nazim H. Madhavji et al. Software evolution and feedback : theory and practice. John Wiley & Sons Ltd, 2006.

PĮ keitimas ir evoliucijos dėsniai 64