Programų sistemų gyvavimo ciklo modeliai

Slides:



Advertisements
Similar presentations
Muzikos ženklų karuselė
Advertisements

Vaizdinė užduotis. Kuriose iš šių valstybių galima pamatyti tokius gyvenamuosius namus? Jemene Tanzanijoje Mongolijoje Indonezijoje A B C D 1.
Network address translation Tinklo adresų vertimas
PROJEKTAS LIETUVOS IR NORVEGIJOS POLICIJOS BENDRADARBIAVIMAS IR GEBĖJIMŲ STIPRINIMAS KOVOJANT SU SMURTU ARTIMOJE APLINKOJE IR SMURTU LYTIES PAGRINDU.
SYSTEM OF PROGRAMMING BUDGET
Smart none of us are as smart as all of us. smart none of us are as smart as all of us.
Ekstremalus programavimas (XP)
Programų sistemų gyvavimo ciklo procesai
Kaip parengti ir pristatyti mokslinį straipsnį
Įvadas Testavimo įrankių naudojimas padaro testavimą lengvesnį, efektyvesnį ir produktyvesnį, padeda valdyti procesą Reikalinga žinoti kokias užduotis.
1 paskaita: Įvadas į 3D grafiką OpenGL GLSL = OpenGL Shading Language
Darbą parengė: Viktorija Drūteikaitė IT2
SSGG (SWOT): Organizacijos stiprybės ir silpnybės, galimybės ir grėsmės (nustatymas, grupavimas, vertinimas, rezultatas) Pagrindinė literatūra: Lietuvos.
MAUDYKLŲ VANDENS KOKYBĖS STEBĖSENOS
Robert Andruškevič AT27D.   Tai yra operacinė sistema, daugiausia naudojama išmaniuosiuose telefonuose, nors ją galima įdiegti ir kituose mobiliuosiuose.
CLIL, MY OPEN WINDOW ON THE WORLD AROUND ME
Video kūrimas su Windows Movie Maker 2.0
ISO/IEC Pagrindiniai gyvavimo ciklo procesai
Elektroninių viešųjų paslaugų teikimo pavyzdžių analizė
CC BY-SA mascil consortium 2014
Geros ir blogos projektų valdymo praktikos
Kūrybingumo kompetencija: ugdymo ir vertinimo dermės paieškos
Panevėžio pataisos namai
LIETUVOS VARTOTOJŲ GALIMYBĖS NAUDOTIS VISATEKSTĖMIS DUOMENŲ BAZĖMIS
PHP „CodeIgniter“ karkaso saugumas
RUP Rational Unified Process
Pagrindinės sąvokos Hipertekstas ir multimedija
Skyrius 1: Paskirstytos informacinės sistemos
Atliko: Jokūbas Rusakevičius VU MIF PS 3k 3g
R paketas ir jo įdiegimas
JavaScript kalbos apžvalga
inovatyvioms mokykloms
IPod MENIU.
Paprasti skaičiavimai. Uždavinių sprendimas
Kas yra arduino ? Parengė:Karolis Šumskis ir Mokytoja ekspertė Elena Šišenina.
Atvirojo kodo elektronika
Programų sistemų inžinerija
Failai ir jų tvarkymas.
Programų sistemų gyvavimo ciklo procesai
Rinkos dalyvių CEREMP registracija Procesas ir pagrindiniai žingsniai
Tekstiniai uždaviniai
Programų sistemų inžinerija
Saulius Ragaišis, VU MIF
Suvestinis NDLTD katalogas
Programų sistemų inžinerija
Programų sistemų inžinerija
Mokesčių ir teisės darbo grupė: 2014 m. aktualijos
Programų kūrimo metodai
Virtualus kompiuteris
Funkcijos 9 paskaita.
Operacinė sistema Testas 9 klasė
VANDEX SUPER Hidroizoliacinis sluoksnis
Lina Bloveščiūnienė, ALEPH 500 LABT Lina Bloveščiūnienė,
Studijų pasirinkimas Lietuvoje ir užsienyje: ką svarbu žinoti?
Priešinės liaukos vėžio ankstyvosios diagnostikos programa 2009
Programų sistemų gyvavimo ciklo modeliai
PARTNERIŲ PAIEŠKA UŽSIENYJE
3D skenavimo metodas, jo privalumai. Kam reikalingi avalynės įdėklai?
Pertrauktys (Interrupts)
Projektas “Saugesnis internetas”
Daugelio dokumentų sąsaja (angl. Multiple document interface)
Judrus projektų portfelio valdymas
Windows Ribbon Framework
Tyrimų rezultatų interpretacija
Klaipėdos Simono Dacho progimnazija
Klaviatūra.
Grupinio darbo programinė įranga Lotus Notes
Pranešėjas Jurij Kuznecov
Presentation transcript:

Programų sistemų gyvavimo ciklo modeliai

Programų sistemos gyvavimo ciklo modelis Apibrėžia: Programinės įrangos kūrimo ir plėtros etapų seką Perėjimo iš vieno etapo į kitą kriterijus Atsako į du pagrindinius klausimus: Ką turime daryti toliau? Kiek ilgai tai turime daryti? Proceso modelis nėra programų kūrimo metodas Pagrindinė gyvavimo ciklo (proceso) modelio paskirtis – apibrėžti programinės įrangos kūrimo ir plėtros etapų seką bei nustatyti kriterijus perėjimui iš vieno etapo į kitą. Kriterijai apima vieno etapo užbaigimo kriterijus ir kito etapo pradžios kriterijus, tai yra – kas turi būti atlikta (pasiekta), kad etapas galėtų būti laikomas baigtu ir kokių įeičių reikia, kad kitas etapas galėtų prasidėti. Programų kūrimo metodo fokusas – kaip įvykdyti kiekvieną fazę (nustatant duomenis, valdymo ar „panaudojimo“ hierarchijas; dekomponuojant funkcijas; priskiriant reikalavimus) ir kaip apiforminti kiekvienos fazės darbo produktus (struktūrinėmis diagramomis; būsenų diagramomis ir pan.)

Kokius gyvavimo ciklo modelius žinote? Krioklys Spiralinis Inkrementinis ...

Istorija 1950 - Code-and-fix model 1956 - Stagewise model (Bengington ) 1970 - Waterfall model (Royce) 1971 - Incremental model (Mills) 1977 - Prototyping model (Bally and others) 1988 - Spiral model (Boehm)

Waterfall Waterfall kaip sąvoka (ir kaip siūlomas IS įgyvendinimo būdas) atsirado iš Winston W. Royce straipsnio Pats W.W.Royce apie Waterfall sakė, kad jį ne taip suprato, o jo paties nuomonė yra: „I believe in this concept, but the implementation described above is risky and invites failure.“ (iš to paties straipsnio) O tapo įteisintas dėl žmogiško poreikio turėti lengvai suprantamą (racionalų) sprendimą: vs.

Waterfall „Klasikinis“ modelis Intuityvus, „sveiku protu pagrįstas“ modelis Ar tikrai? Klasikinis – ne tobulumo, kaip graikų klasikinės skulptūros, o įprastumo prasme Sveiku protu grįstas – greičiau intuityviai sukonstruotas pagal tuo metu įprastą didelės sistemos gyvavimo ciklą Abejokite ir kvestionuokite ginčykite tai, kas atrodo intuityvu arba „visi taip daro“, arba „visi sako, kad taip reikia daryti“!

Krioklio gyvavimo ciklo seka Fazės darbo rezultatas „Plaukimas prieš srovę“ – grįžimai Įprastinė nuostata – fazės nepersidengia, o fazės veiklos pradedamos vykdyti pabaigus ir parašais patvirtinus ankstesnės fazės rezultatus Laikas

Privalumai Lengva suprasti ir pradėti naudoti. Plačiai naudojamas ir žinomas (teoriškai) Įtvirtina teisingus įpročius: apibrėžimą prieš projektavimą, projektavimą prieš kodavimą Nustato pateiktis ir tarpinius taškus Įtvirtina dokumentavimą visos veiklos metu, egzistuoja dokumentų standartai. Gerai veikia ir brandiems produktams, ir silpnoms komandoms.

Trūkumai Idealizuotas ir neatitinkantis realybės. Neatspindi iteratyvios tiriančiojo kūrimo (exploratory development) prigimties. Pagristas nerealistišku tikėjimu apie galutinius reikalavimus projekto pradžioje Programinė įranga pateikiama gale projekto, taip pavėlinant jos teikiamą naudą (finansinis trūkumas!) ir rimtas klaidas atrandant tik gale.

Trūkumai (2) Sudėtinga integruoti rizikų valdymą Sudėtinga (daug darbo) daryti pakeitimus dokumentuose ir tokiu būdu atlikti „grįžimus prieš srovę“ pagal procesą. Dideli administraciniai kaštai, per brangūs mažoms komandoms.

Code-and-Fix / Hakinimas Neformali pradinio produkto idėja Hakinam, kol gauname maždaug tinkamą produktą (arba baigiasi laikas arba pinigai) Jokio planavimo

Privalumai Jokių administravimo kaštų Progresas matomas anksti. Nereikia modelio žinių ar patirties – bet kas gali taip dirbti! Naudingas mažiems bandomiesiems (proof of concept) projektams, gali būti naudojamas kaip rizikos valdymo pratimas (architectural spike)

Trūkumai Pavojingas! Nėra kontrolės Nėra planavimo Nėra terminų Klaidas sudėtinga pastebėti ir pataisyti Netinkamas dideliems projektams dėl komunikacijų ribojimų, chaotiškumu.

Spiralinis modelis Kadangi reikalavimus sudėtinga surinkti, galima būtų kurti programinę įrangą eksperimentavimo keliu: 1. Implementuoti kažkiek kodo (PĮ) 2. Tikrinti, ar tenkina visus reikalavimus 3. Jei ne, kartoti nuo 1, kitaip baigti.

Spiralinis modelis 1988 B. Boehm sukūrė spiralinį modelį kaip iteratyvųjį modelį, kuriame įdėta rizikos analizė ir rizikos valdymas Esminė idėja: kiekvienoje iteracijoje identifikuoti ir išspręsti didžiausio rizikos laipsnio sub-problemas (uždavinius).

Spiralinis modelis

Spiralinis modelis Kiekviename cikle įvykdomas krioklys: Nustatyti iteracijos tikslus Apibrėžti apribojimus Sugeneruoti alternatyvas Identifikuoti rizikos veiksnius Suvaldyti rizikos veiksnius Implementuoti sekantį produkto lygį Suplanuoti sekantį ciklą

Privalumai Realistiškumas: modelis tiksliai atspindi iteratyvią programų kūrimo projektų su neaiškiais reikalavimais prigimtį Inkorporuoja krioklio ir greitojo prototipavimo privalumus Išsamus modelis leidžia geriau valdyti (mažinti) riziką Leidžia gerą projekto matomumą.

Trūkumai Reikalauja techninių kompetencijų, kad realiai veiktų rizikos valdymas Netechniniai vadovai prastai supranta modelį, todėl nėra plačiai naudojamas Sudėtingas modelis, reikalaujantis kompetentingų profesionalių vadovų. Iš to ir dideli administravimo kaštai. B. Boehm papildytas modelis: The Incremental Commitment Spiral Model http://greenbay.usc.edu/csci577/fall2012/uploads/readings/ep/What_is_ICSM.pdf

Greitasis prototipavimas Esminė idėja: Užsakovai yra netechniniai žmonės, kurie dažnai nežino, ko nori ar gali gauti. Greitasis prototipavimas (Rapid prototyping) fokusuojasi į reikalavimų analizę ir validavimą Dar sutinkami pavadinimai: customer oriented development, evolutionary prototyping

Greitasis prototipavimas Reikalavimų surinkimas Greitas projektavimas Kartoti kiek reikia Prototipo kūrimas Prototipo peržiūra su užsakovu Galutinio produkto kūrimas

Privalumai Minimizuoja nekorektiškų reikalavimų tikimybę ir su tuo susijusią riziką Labai tinkamas, kai reikalavimai kinta ar nėra patvirtinti Reguliarus matomas progresas padeda valdyti projektą Padeda anksti pardavinėti (marketinguoti) produktą

Trūkumai Nestabilus ar prastai realizuotas prototipas linkęs virsti galutiniu produktu. Reikalauja nuolatinio ir intensyvaus užsakovo bendradarbiavimo: Kainuoja užsakovui pinigus Reikalauja pasišventusių užsakovų Sudėtinga pabaigti, jei užsakovas pasitraukia Gali būti pernelyg specifiškas vienam užsakovui, duoda neuniversalų produktą

Trūkumai (2) Sudėtinga numatyti, kiek truks projektas Lengva degraduoti į hakinimo procesą, jeigu tik neužtikrinami tinkamas reikalavimų analizė, projektavimas, užsakovo grįžtamojo ryšio gavimas.

Judrusis programavimas (Agile) Agile manifesto: Individuals and interactions over processes and tools Working software over documentation Customer collaboration over contract negotiation Responding to change over following a plan

Pagrindiniai principai Nuolatinis programinės įrangos implementavimas ir pateikimas Nuolatinis bendradarbiavimas su užsakovu Nuolatinis reagavimas į pasikeitimus Bendradarbiavimas svarbu Kodas rašomas paprastai, kad atitiktų tik specifikaciją, bet nieko daugiau

Pranašumai Lengvas metodas, tinkamas mažiems ir vidutiniams projektams Užtikrina gerą komandos bendradarbiavimą Orientuotas į galutinį veikiantį produktą Iteratyvus Pagrįstas reikalavimų, tinkamų testavimui, rinkimu ir nuolatiniu kokybės užtikrinimu

Trūkumai Sudėtinga išplėsti dideliems projektams Reikalauja kompetencijos, kad nedegraduotų į hakinimą Programavimas poromis (XP) brangus Sudėtinga konstruoti automatizuotus testus, reikalingi specifiniai įgūdžiai.

COTS COTS = Commercial of the Shelf Principas: minimaliomis priemonėmis „suklijuoti“ veikiantį sprendimą iš egzistuojančių komercinių (arba ne) programinės įrangos paketų Duomenų bazės, elektroninės lentelės, teksto procesoriai, web portalai ir turinio valdymo sistemos, ir pan.

Privalumai Pigus, greitas sprendimas, leidžiantis nuolatinę evoliuciją Gali duoti visą reikalingą bazinį funkcionalumą Gerai apibrėžtas projektas, lengva vykdyti

Trūkumai Gaunamas ribotas funkcionalumas Shareware, freeware, open source, komercinių produktų licencijavimo iššūkiai Licencijų mokesčiai Sudėtingas naujinimas ir paketų versijų kėlimas

Apibendrinimas Sistemų gyvavimo ciklų tipai pagal struktūrą: Nuoseklusis Evoliucinis Inkrementinis Chaotiškas (ad-hoc)

Modifikacijos ir kombinacijos Literatūra: Visual Explanation of Models

Modifikacijos ir kombinacijos Literatūra: Visual Explanation of Models

Proceso modelių praktinė sėkmė Tik nuomonė / iliustracija, bet jokiu būdu ne bendru atveju teisingas įvertinimas!

How Successful are different software development paradigms?

How Successful are different software development paradigms?

How Successful are different software development paradigms?

How Successful are different software development paradigms?

How Successful are different software development paradigms?

Inkrementinis vs. iteratyvus Nukosėta iš http://www.slideshare.net/peterantman/user- story-workshop-39391611

Incremental Release Strategy Minimal Viable Release Big Product Idea Incremental Release Strategy Minimal Viable Release Product Backlog built from small stories