21
Objektni softverski inžinjering Prof. dr Pere Tumbas [email protected]

Objektni softverski inžinjering

Embed Size (px)

DESCRIPTION

Objektni softverski inžinjering:Prof. dr Pere Tumbas2012-11-03-predavanje-01

Citation preview

  • Objektni softverski ininjering

    Prof. dr Pere [email protected]

  • Softver i softverski ininjering

    Softverski proizvod i softver - skup raunarskih programa, datoteka i dokumentacije namenjenih realizaciji odreenih zadataka (JUS ISO 9127/94).

    Softverska podrka - rad na odravanju softvera i pratede dokumentacije u funkcionalnom stanju.Pruaju je proizvoa, predstavnik, distributer i dr.

  • Softver i softverski ininjering

    Softverski ininjering - primena sistematinog, disciplinovanog i merljivog pristupa razvoju, uvoenju i odravanju softvera.

    Softverski ininjering - primena ininjeringa, naunih i matematikih principa i metoda u ekonominoj proizvodnji kvalitetnog softvera.

    Fritz Bauer, 1968.

  • Istorijat razvoja softvera

    Prva etapa: proizvoai hardvera za sopstvenu raunarsku opremu izrauju softver, specifian softver batch orijentacije, sopstvenim kadrovima, niski trokovi,..

    Druga etapa: opteupotrebiv softver, iroke namene i on-line orijentacije, softverske kude, ...

    Trea etapa: softver za distribuirane sisteme, univerzalni softver sa jedinstvenim nainom koridenja i smanjenim trokovima primene, grafiki korisniki interfejs, ...

    etvrta etapa: softver za primenu na PC povezanim u mreu, pojava novih tipova informacionih sistema, korisnici i samostalno razvijaju softver, koridenje Interneta, ...

  • Faktori razvoja softvera:

    Eksplozija informacija,

    Pojava softverskih kuda,

    Raznovrsna i brojna primena raunara,

    Potreba za lakoupotrebivim i jeftinim softverom,

    Brze i stalne promene u drutvu,

    Zahtevi za visokim nivoom kvaliteta softvera,

    Brza realizacija odnosno krade vreme dostupnosti,

    Zahtevi za univerzalnom primenom, ...

  • Zahtevi trita - uslov industrijske proizvodnje softvera:

    Opta primenljivost softvera (zadovoljenje razliitih potreba),

    Razvoj softvera uz raunarsku podrku i CASE,

    Realizacija jeftinijeg softvera za korisnika obzirom na veliki broj kupaca,

    Krade vreme realizacije softvera,

    Savremeniji i delotvorniji softveri realizovani od strunijih i kompetentnijih osoba,

    Visok nivo kvaliteta softvera, ...

  • Strukturu softverskog ininjeringa ine:

    Razvojni principi,

    Metodi,

    Sredstva (alati) i

    Procedure (postupci).

    Izbor uslovljen: individualnim i kreativnim postupkom razvoja, razliitodu sistema za koji se softver razvija i razliitodu okruenja, nepostojanja recepta za izbor.

  • Razvojni principi - odreuju nain izvrenja rada.

    Opti principi

    Modelovanje - koje podrazumeva izbor modela, rukovanje razliitim nivoima detaljnosti modela,vezu modela prema stvarnosti, nezavisnost pogleda na celoviti sistem,...

    Apstrakcija - kao rezultat modelovanjem steenih rezultata, daje specifikaciju modela koja je nedvosmislena, razumljiva, jedinstvena, nezavisna od sistema i lako izmenljiva,

  • Opti principi

    Iteracija - ponovljiv ciklus aktivnosti koji je uzrokovan razliitim razlozima: nemogudnost definisanja informacionih zahteva u jednom prolazu usled nepoznavanja ili stalnog usavravanja zahteva od korisnika, veliki broj neoekivanih situacija, duina perioda razvoja, potreba za finim usaglaavanjem, doterivanjem i preciziranjem, podizanje nivoa kvaliteta proizvoda, ....

  • Opti principi

    Arhitektura - dekomponovanje sloene strukture proizvoda na njegove segmente odnosno arhitekturu bilo u analizi i dizajnu, bilo u odravanju.

    Razlozi za strukturiranje su: laka razumljivost sloenih sistema, jednostavnije organizovanje razvojnog procesa, laka ugradnja elemenata u celinu sistema, upravljiviji su kompleksni i sloeni sistemi.

  • Opti principi

    Arhitektura izraava: elemente sistema, njihovu organizaciju, ponaanje strukturnih elemenata, zajedniko ponaanje, nain meusobne povezanosti, organizovanje u sloenije celine i dr.

    Dokumentovanje - , ..

  • Razvojni principi - odreuju nain izvrenja rada.

    Metodoloki koraci - definiu redosled izvrenja aktivnosti, njihove ulaze i izlaze.

    Preskriptivni modeli (model vodopada, ikrementalni model),

    Razvojni modeli (model prototipskog razvoja, spiralni model),

    Specijalizovani modeli,

    Model sjedinjenog procesa,

    Modeli agilnog razvoja.

  • Metodi - propisani sistematski naini u izvravanju pojedinih zadataka razvoja softvera.

    Mogu se kombinovati i ne postoji najbolji.

    Strukturiraju se po razliitim kriterijumima a najede prema fazama razvoja informacionog sistema.

    Pravilan izbor podrazumeva minimalne trokove i visoki kvalitet proizvoda.

  • Alati - su automatizovana ili poluautomatizovana podrka metodima.

    CASE tehnologije - posebna vrsta alata.

    Procedure su sistemi metoda i alata u realizaciji razvoja informacionog sistema.

    Opredeljuje ih - priroda problema i oekivanje korisnika.

    Definiu - redosled metoda/koraka, rezultate -izlaze koraka, kontrole radi obezbeenja kvaliteta realizacije koraka.

  • Metodologije - sainjavaju brojne komponente koje definiu:

    Kako projekat dekomponovati na faze?

    Koji zadaci se reavaju u kojim aktivnostima?

    Koji se izlazi dobijaju u svakoj fazi?

    Kada i pod kojim uslovima se oni dobijaju?

    Koja ogranienja se moraju uzeti u obzir?

    Koje osobe de biti angaovane?

    Kako de se rukovoditi projektom i kako de se isti kontrolisati?

    Koja se sredstva podrke mogu primeniti?

  • STRADIS

    BSP

    Yourdon SystemsMethod

    SADT

    ISAC

    James Martin IE

    Gane and Sarson

    SSADM

    De Marco

    RAD

    SDM - Pandata

    Lorensen

    Martin and Odell

    RUP

    XP

    SCRUM

    FDD

    Crystal

  • Znaaj softverskog ininjeringa

    Sistematski pristup razvoju, implementaciji, odravanju softvera kroz ivotni ciklus,

    Razliito kombinovanje metoda, alata i procedura.

  • Ciljevi softverskog ininjeringa

    Izrada pouzdanog softvera,

    Izrada softvera prema originalnim specifikacijama,

    Izrada softvera prilagodljivog promenama,

    Izrada softvera koji se moe ponovo upotrebiti,

    Izrada softvera koji zadovoljava korisnika,

    Razvoj izveden na vreme i efektivno sa aspekta trokova.

    Razvoj koji zadovoljava korisnike zahteve i

    Razvoj koji obezbeuje kvalitetan proizvod.

  • Karakteristike softverskog ininjeringa

    Jedinstvenost i kompleksnost

    Maksimum principa i ciljeva softverskog ininjeringa, Funkcionalnost (korektno i tano),

    Performantnost (vreme pristupa, protok, brzina,..)

    Temeljitost u analizi zahteva,

    Upotreba metodologija i CASE alata,

    Razvoj odgovarajude dokumentacije za operativni rad i odravanje,

    Sposobnost prilagoavanja promenama,

    Dobro definisani korisniki interfejs,

    Efektivnost,....

  • Razvoj softvera u praksi

    Korisnik se bavi svojim svakodnevnim poslom, govori argonski, ne veruje u promene,

    este izmene korisnikih zahteva,

    Kompleksan posao,

    Veliki broj greaka u testiranju, dosta vremena i novca za njegovu ispravku,

    Timski rad, koji nije familijaran softver ininjerima,

    Veliki obim dokumentacije prati sloenost posla, dr.

  • Hvala na panji!