Oblast softverskog inženjerstva: Šta joj pripada ?...Zadaci softverskih inženjera u svetlu ponuda za posao Menadžer projekta Kao menadžer projekta odgovorni ste za kreiranje složenih
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
Humboldt University Berlin, University of Novi Sad, University of Plovdiv,University of Skopje, University of Belgrade, University of Niš, University of Kragujevac
Version: Oct. 23, 2003 (D Sep. 22, 2003)
DAAD Project“Joint Course on Software Engineering”
a) Oblasti softverskog inženjerstva (npr., šta mu pripada) b) Značaj softverskog inženjerstva u praksi –
- problemi razvoja softverac) O veličini softverad) Istorija softverskog inženjerstvae) Nekoliko definicija softverskog inženjerstvaf) Problem uvođenja softverskog inženjerstva u obrazovanjeg) Razlike između razvoja softvera u obrazovnom okruženju
i u praksih) Ciljevi ovog kursai) Literatura, članci, radovi, ...
„Programiranje je relativno mala komponenta oblasti softverskoginženjerstva. Neke druge komponente (uključujući na primer, specifikaciju softvera i projektovanje) su jednako važne.“
Upravljanjeprojektima
Specifikacijasoftvera
Korisničkadokumentacija
Dizajniranjekorisničkog
interfejsa
Dizajniranjesoftvera
Programiranje Testiranje
Hardverskarazmatranja
Softversko inženjerstvoSvet
M. Pont: Softversko inženjerstvo korišćenjem C++ i CASE alata, Addison-Wesley 1996
a) Oblasti softverskog inženjerstva (npr., šta mu pripada) b) Značaj softverskog inženjerstva u praksi –
- problemi razvoja softverac) O veličini softverad) Istorija softverskog inženjerstvae) Nekoliko definicija softverskog inženjerstvaf) Problem uvođenja softverskog inženjerstva u obrazovanjeg) Razlike između razvoja softvera u obrazovnom okruženju
i u praksih) Ciljevi ovog kursai) Literatura, članci, radovi, ...
Timski radUpravljanje projektimaSoftversko inženjerstvoVođstvoBaze podataka RetorikaKomunikacioni sistemi / računarske mrežeOsiguravanje kvalitetaStrukture podataka i efikasni algoritmiOperativni sistemiErgonomija softveraUpravljanje poslovimaOsnove algoritama / složenostOsnove matematike i logikeDistribuirani sistemiNaučni radni metodiBezbednost podatakaInformacioni sistemiKoncepti programskih jezikaArhitektura računaraOsnove pravaSistemi upravljanjeAnaliza i procena računarskih sistemaGrafički i sistemi za vizualizacijuModeliranje i simulacijaFormalni jezici i automatiSistemi u realnom vremenuMultimedijaInformatika i društvoOsnove elektronikeProgramiranje mašinskog nivoaCIMEkspertni sistemiOsnove veštačke inteligencijeElectrična merenjaObrada slikaPrimena veštačke inteligencijePrepoznavanje oblika
Osoba zadužena za razvoj softveraVaši zadaci su:• Analiza zahteva datog sistema• Analiza izvodljivosti i procena truda• Tehničke specifikacije• Proširenje postojećih softverskih modula• Regresiono testiranje i postupci ažuriranja softvera
Osoba zadužena za razvoj softveraVaši zadaci su:• Analiza zahteva datog sistema• Analiza izvodljivosti i procena truda• Tehničke specifikacije• Proširenje postojećih softverskih modula• Regresiono testiranje i postupci ažuriranja softvera
Prepoznatljive karakteristike softvera industrijske snage je da je izuzetno složeno, ako ne i nemoguće, za pojedinca da shvati sve veze u njegovom projektovanju. Prosto rečeno, složenostovakvih sistema prevazilazi intelektialni kapacitet čoveka.(Booch, Objektno-orijentisana analiza i projektovanje, s. 4)
Aerodrom u Denveru: nije mogao biti pušten u rad (nije otvoren) 1994 – softver za sistem za transport prtljaga nije radioSiemens: računovodstveni softver za lekove razvijen za fondove zdravstvenog osiguranja nije bio gotov na vreme (sledstveni troškoviod 1 milijarde DEM - Berliner Zeitung 22.05.96)Deutsche Telekom: pogrešan proračun cene telefonskih impulsa za 1.1.96 (softverska greška: bez praznične tarife – šteta: stotine milionaDEM)F18 ratni avion: tokom vežbe 1983 sa novorazvijenim softverom –nakon prelaska ekvatora, avion se okrenuo naglavačke. Razlog je bila greška u znaku operacije (+ - ) (Wallmüller 1990, s. 1).
Prva svemirska raketa za Veneru: 1979 nije pronašla metu:U Fortran programu, upotrebljena je decimalna tačka, umesto zareza.Gubitak: više stotina miliona dolara (Wallmüller 1990, s. 1).Therac 25 – računarski kontrolisani uredjaj za terapijsku radijaciju: izmedju juna 1985. i januara 1987. 6 ljudi je predozirano (5 od njih je kasnije umrlo) kao posledica nedostajuće softverske sigurnosne brave koja bi trebala da spreči predoziranje (Berry, D.M., “Myths and realities of software development”).
Pitanja: statistika koja se tiče razvoja softvera (1): (Mynatt: Softversko inženjerstvo, s. 1)
1. Razvoj tipičnog softverskog projekta trajea) 1 - 5 b) 6 - 11 c) 12 - 23 d) 24 - 48 meSIci.
2. Za softverski sistem srednje veličine,a) manje od 10 b) 10 - 20 c) 21 - 30 d) više od 30linija izvršnog izvornog koda se tipično proizvede po danu, po osobi tokom celokupnog perioda razvoja sistema.
3. Približan broj grešaka koje se pronađu na svakih 1000 linija izvršnog izvornog koda tokom razvoja softverskog sistema je:a) manje od 30 b) 30 - 40 c) 40 - 50 d) 50 - 60
4. Približan broj grešaka koje se pronađu na svakih 1000 linija izvršnog izvornog koda u isporučenim softverskim sistemima je:a) manje od 4 b) 4 - 8 c) 8 - 12 d) više od 12
5. Koliki je približan procenat softverskih sistema čiji razvoj je započet, koji se konačno i dovrše?a) 90 - 100% b) 80 - 90% c) 70 - 80% d) 60 - 70%
Pitanja: statistika koja se tiče razvoja softvera (2): (Mynatt: Softversko inženjerstvo, s. 1)
6. Cena posedovanja i održavanja softvera je tipičnoia) jedna polovina b) jednaka c) dvostrukacena od cene razvoja softvera.
7. Najveći broj grešaka koje pronađu korisnici u softveru su rezultata) greške programerab) problema u definisanju zahteva ili razumevanju definisanih zahtevac) štamparske grešked) greške u projektovanju
8. Koji procenat procesa razvoja softvera čini programiranje ? a) 99% b) 70% c) 50% d) 20% e) 10%
9. U današnjim softverskim sistemima, sistem se tretira kao velik ako sadrži barem a) 10.000 b) 30.000 c) 50.000 d) 100.000 linija izvršnog izvornog koda.
Zbog rastuće složenosti softvera, srazmera grešaka se od 1977 do 1994 razvijala na sledeći način:a) porasla 10 putab) porasla 2 putac) ostala neizmenjena
a) Oblasti softverskog inženjerstva (npr., šta mu pripada) b) Značaj softverskog inženjerstva u praksi –
- problemi razvoja softverac) O veličini softverad) Istorija softverskog inženjerstvae) Nekoliko definicija softverskog inženjerstvaf) Problem uvođenja softverskog inženjerstva u obrazovanjeg) Razlike između razvoja softvera u obrazovnom okruženju
i u praksih) Ciljevi ovog kursai) Literatura, članci, radovi, ...
Koliko je velik softver ?Klasifikacija softvera u zavisnosti od njegove veličine:mali: do 2000 linija kodasrednji: 2000 – 100.000veliki: 100 000 – 1.000.000veoma veliki: > 1 Mil.(A. Macro, s. 70)
prosečna veličina softvera u svakoj od 100 najvećih kompanija u SAD:35 Mil. linija koda(Hausi Müller, s. 3-12)
recimo, SAD, Ministarstvo odbrane:1,4 milijarda linija koda(raspoređeni u 1.700 centara podataka)troškovi rukovanja ovim sistemima:9 milijardi dolara godišnje(CACM, 5, 1994, s. 26)
a) Oblasti softverskog inženjerstva (npr., šta mu pripada) b) Značaj softverskog inženjerstva u praksi –
- problemi razvoja softverac) O veličini softverad) Istorija softverskog inženjerstvae) Nekoliko definicija softverskog inženjerstvaf) Problem uvođenja softverskog inženjerstva u obrazovanjeg) Razlike između razvoja softvera u obrazovnom okruženju
i u praksih) Ciljevi ovog kursai) Literatura, članci, radovi, ...
a) Oblasti softverskog inženjerstva (npr., šta mu pripada) b) Značaj softverskog inženjerstva u praksi –
- problemi razvoja softverac) O veličini softverad) Istorija softverskog inženjerstvae) Nekoliko definicija softverskog inženjerstvaf) Problem uvođenja softverskog inženjerstva u obrazovanjeg) Razlike između razvoja softvera u obrazovnom okruženju
i u praksih) Ciljevi ovog kursai) Literatura, članci, radovi, ...
1. „Softversko inženjerstvo ... bavi se ekonomskimrazvojem softvera visokog kvaliteta “ (Pagel / Six 1994, strana 49)
2. „SI je inženjerska disciplina koja se bavi praktičnim problemima razvoja velikih softverskih sistema“(Sommerville 92, p. v).
3. „SI je primena sistematskih, disciplinovanih, merljivih pristupa razvoju, rukovanju i održavanju softvera; drugim rečima, primeni inženjerstva na softver“ (IEEE standardnirečnik terminologije softverskog inženjerstva, 1990).
4. „Softversko inženjerstvo je definisani, korak-po-korakproces, koji olakšava specificiranje, projektovanje, implementaciju i testiranje softvera za skup iznetih zahteva, na najbrži i najprofitabilniji mogući način“(Kehoe: ISO 9000-3, 1995, S. 11).
a) Oblasti softverskog inženjerstva (npr., šta mu pripada) b) Značaj softverskog inženjerstva u praksi –
- problemi razvoja softverac) O veličini softverad) Istorija softverskog inženjerstvae) Nekoliko definicija softverskog inženjerstvaf) Problem uvođenja softverskog inženjerstva u obrazovanjeg) Razlike između razvoja softvera u obrazovnom okruženju
i u praksih) Ciljevi ovog kursai) Literatura, članci, radovi, ...
a) Oblasti softverskog inženjerstva (npr., šta mu pripada) b) Značaj softverskog inženjerstva u praksi –
- problemi razvoja softverac) O veličini softverad) Istorija softverskog inženjerstvae) Nekoliko definicija softverskog inženjerstvaf) Problem uvođenja softverskog inženjerstva u obrazovanjeg) Razlike između razvoja softvera u obrazovnom okruženju
i u praksih) Ciljevi ovog kursai) Literatura, članci, radovi, ...
Razvoj softvera u praksipravi kupacpre programiranja: pregovori sa kupcem u cilju raščišćavanja zahtevačeste promene želja kupacanesporazumisloženi zadaci – složen program softver podložan greškamastrogi rokovitimski radvelika količina dokumenata:videti sledeći slajdprogramiranje čini samo 20 % svih aktivnosti projektadugogodišnje korišćenje (10 ... 25 godina) izmene softvera nakon isporuke(nove želje, novi hardver ...)
Plan valjanosti i verifikacije softvera (SVVP) Plan garancije kvaliteta (SQAP) Plan upravljanja softverskom konfiguracijom (SCMP) Plan upravljanja softverskim projektom (SPMP)
Specifikacija softverskih zahteva (SRS) (orijentisanih kupcu i orijentisanih osobi za razvoj) Dokument softverskog dizajna (SDD) (arhitektura i detaljni dizajn) Izvorni kodDokumentacija softverskog testiranja (STD) Uputstvo za upotrebu
a) Oblasti softverskog inženjerstva (npr., šta mu pripada) b) Značaj softverskog inženjerstva u praksi –
- problemi razvoja softverac) O veličini softverad) Istorija softverskog inženjerstvae) Nekoliko definicija softverskog inženjerstvaf) Problem uvođenja softverskog inženjerstva u obrazovanjeg) Razlike između razvoja softvera u obrazovnom okruženju
i u praksih) Ciljevi ovog kursai) Literatura, članci, radovi, ...
pojmovi, metode, alati3. Međuodnosi između pod-oblasti (pomoć pri orijentisanju) 4. Ilustrativni primeri: kontinualni studijski primer5. Ulazak u dubinu: zadaci6. Svest o problemima SI7. Trenutni problemi SI
(metrike, reverzno inženjerstvo, CMM, SI “čiste sobe”, ekstremno programiranje ...)
8. Iskustvo sa softverskim-alatima
Ne nudimo: velike projekte, bez kupaca,bez pregovaranja, bez promena želja, bez strogih rokova ...
a) Oblasti softverskog inženjerstva (npr., šta mu pripada) b) Značaj softverskog inženjerstva u praksi –
- problemi razvoja softverac) O veličini softverad) Istorija softverskog inženjerstvae) Nekoliko definicija softverskog inženjerstvaf) Problem uvođenja softverskog inženjerstva u obrazovanjeg) Razlike između razvoja softvera u obrazovnom okruženju
i u praksih) Ciljevi ovog kursai) Literatura, članci, radovi, ...
Delovi prezentacija koriste materijal iz udžbenika Helmut Balzert, Software Technik (Vol. 1), 2nd edition, Spektrum AkademischerVerlag, Heidelberg 2001.
Ovo se posebno odnosi na lekcije od 4 do 13 i od 15 do 18.
Časopisi:• IEEE Transactions on Software Engineering• IEEE Software• ACM Software Engineering Notes• ACM Transactions on Software Engineering and Methodology
Konferencije: • International Conference on Software Engineering• Conference on Software Engineering Education• Software Metrics Symposium • i mnoge druge.
SEI: Institut za softversko inženjerstvo(Osnovna stranica: http://www.sei.cmu.edu)
O Institutu za softversko inženjerstvo - Dobrodošlica
Institut za softversko inženjerstvo (SEI) je istraživački i razvojni centar koji finansira država i to Departman za odbranu USA kroz službe podsekretara za odbranu zaduženog za nabavke, tehnologiju i logistiku [OUSD (AT&L)]. Ugovor o radu SEI je konkursom dodeljen Carnegie Mellon Univerzitetu u Decembru 1984. Zaposleni u SEI imaju ogromno tehničko i upravljačko iskustvo iz vlade, industrije i akademije.
Zadatak
Departman za odbranu USA osnovao je Institut za softversko inženjerstvo u cilju unapređivanja prakse softverskog inženjerstva, jer je obezbeđivanje kvalitetnog softvera koji se proizvodi u zadatim rokovima i u skladu sa budžetom kritična komponenta odbrambenog sistema USA [...]