tema 1 Šta je softversko inženjerstvo? · 1 humboldt university berlin, university of novi sad,...

55
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” Tema 1 Šta je softversko inženjerstvo?

Upload: others

Post on 05-Sep-2019

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

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”

Tema 1Šta je softversko inženjerstvo?

Page 2: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

2

DAAD project „Joint Course on Software Engineering“ © 2

1. Šta je softversko inženjerstvo ?

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, ...

Page 3: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

3

DAAD project „Joint Course on Software Engineering“ © 3

Predmet ...

konstrukcija kompajlera

baze podataka

softversko inženjerstvo

Prevođenje programskih jezika višeg nivoa u mašinske jezike

upravljanje složenim i strukturiranimkoličinama podataka

?

Page 4: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

4

DAAD project „Joint Course on Software Engineering“ © 4

Oblast softverskog inženjerstva:Šta joj pripada ?

„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

Page 5: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

5

DAAD project „Joint Course on Software Engineering“ © 5

Oblasti softverskog inženjerstva:iz udžbenika, istraživačkih radova, konferencija:

(bez redosleda, delimično se preklapa)

Modeli životnog ciklusaSoftverski procesi(CMM, ISO 9000)Upravljanje konfiguracijomProcena trudaUpravljanje projektimaUpravljanje kvalitetom“Cleanroom” softverskoinženjerstvoReverzno inženjerstvoShvatanje programa(razumevanje programa)Softverska metrikaSoftverska arhitekturaOdržavanje softvera

Inženjerstvo zahtevaSpecifikacija softveraPonovno korišćenjeVerifikacija programaDokumentovanje softveraSI “bazirano-na-znanju”Sistematsko testiranjePravljenje prototipovaCASE alatiProgramski jezici za SIObjektna-orijentisanost (analiza, dizajn, programiranje, testiranje)Ekstremno programiranjeProgramiranje u parovima

Page 6: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

6

DAAD project „Joint Course on Software Engineering“ © 6

Computer-Zeitung 25/96 (20. June 96)

Razvoj softveraostaje mešavina metodaRazvoj softvera kao nauka i kao praktičnaaktivnost imaju nešto zajedničko: heterogenost.

Razvoj softveraostaje mešavina metodaRazvoj softvera kao nauka i kao praktičnaaktivnost imaju nešto zajedničko: heterogenost.

Page 7: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

7

DAAD project „Joint Course on Software Engineering“ © 7

Softversko inženjerstvouvodne definicije

„Softversko inženjerstvo ... bavi se ekonomičnimrazvojem softvera visokog kvaliteta“

(Pagel / Six 1994, p. 49)

„SE je inženjerska disciplina koja se bavi praktičnim problemima razvoja velikih softverskihsistema“

(Sommerville 1992, 4. ed., p. v)

Page 8: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

8

DAAD project „Joint Course on Software Engineering“ © 8

1. What is 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, ...

Page 9: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

9

DAAD project „Joint Course on Software Engineering“ © 9

Anketiranje mladihinformatičara koji rade u praksi, od strane Nemačkog informatičkog udruženja 1993

značaj podoblasti informatike(prvo najznačajnije podoblasti)

3.593.353.263.103.103.092.99 2.962.812.602.562.502.422.412.362.362.322.312.271.871.681.641.641.581.531.371.301.271.151.131.061.040.880.850.810.810.810.63

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

rezultatPodoblasti informatike

Page 10: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

10

DAAD project „Joint Course on Software Engineering“ © 10

Anketiranje iz 1993 (detaljnije)

3.593.353.263.103.103.092.99 2.962.812.602.562.502.422.412.362.362.322.312.271.87

Timski radUpravljanje projektimaSoftversko inženjerstvoVođstvoBaze podataka RetorikaKomunikacioni sistemi / računarskemrežeOsiguravanje kvalitetaStrukture podataka i efikasni algoritmiOperativni sistemiErgonomija softveraUpravljanje poslovimaOsnove algoritama / složenostOsnove matematike i logikeDistribuirani sistemiNaučni radni metodiBezbednost podatakaInformacioni sistemiKoncepti programskih jezikaArhitektura računara

scorePodoblasti informatike

Aktivnosti tokomrazvoja softvera

Podoblastisoftverskog inženjerstva

Page 11: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

11

DAAD project „Joint Course on Software Engineering“ © 11

Süddeutsche Zeitung No. 120 /page V1/1

25.5.1996

Zadaci softverskih inženjera u svetlu ponuda za posao

Menadžer projekta

Kao menadžer projekta odgovorni ste za kreiranje složenih projektnih aplikacija za naše korisnike u industriji i zaupravljanje.

Glavni cilj je zadovoljan korisniku smislu ekonomično obavljenog projekta ...

Menadžer projekta

Kao menadžer projekta odgovorni ste za kreiranje složenih projektnih aplikacija za naše korisnike u industriji i zaupravljanje.

Glavni cilj je zadovoljan korisniku smislu ekonomično obavljenog projekta ...

Page 12: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

12

DAAD project „Joint Course on Software Engineering“ © 12

računar Zeitung 16.10.97

Vaši zadaci:

• Analiza tehničkih zahteva• Projektovanje aplikacije• Programiranje• Testiranje i garancija kvaliteta• Instalacija u ciljnom okruženju

Vaši zadaci:

• Analiza tehničkih zahteva• Projektovanje aplikacije• Programiranje• Testiranje i garancija kvaliteta• Instalacija u ciljnom okruženju

Vaš profil:

• iskustvo u COBOL-u• znanje:

UNIX, Open VMS, OS/400• SQL i baze podataka, npr. Oracle• Komercijalno znanje

Vaš profil:

• iskustvo u COBOL-u• znanje:

UNIX, Open VMS, OS/400• SQL i baze podataka, npr. Oracle• Komercijalno znanje

Page 13: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

13

DAAD project „Joint Course on Software Engineering“ © 13Süddeutsche Zeitung 15.12.96

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

Page 14: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

14

DAAD project „Joint Course on Software Engineering“ © 14

Softver

Softver =

osobine softvera:• nema otpadaka tokom rada softvera• starenje (softver se stalno ažurira)

posle 10 godina upotrebe i ažuriranja, ne postoji ni jedna originalna linija koda (Pagel, Six p. 35)

• dugotrajna upotrebau proseku 10 - 15 godina (Wallmüller 90, p. 3)i do 30 godina (Hausi Müller)

• jednostavan za kopiranje ( takođe i grešaka)

• težak za merenje (metrike: kvalitet, kvantitet)

• relativno složen

programi, podaci, dokumentacija

Page 15: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

15

DAAD project „Joint Course on Software Engineering“ © 15

Složenost 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)

Page 16: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

16

DAAD project „Joint Course on Software Engineering“ © 16

Povećana složenost softvera

MDI: milioni instrukcija objektnog kôdaEWSD: elektronski telefonski sistem Digital-a

1960 1970 1980 1990 200060 MOI

50 MOI

40 MOI

30 MOI

20 MOI

10 MOI

EWSD zaBB-ISDN

SPACEŠATL

APOLOEWSD-APSWM4.2

KONTROLA MISIJE NA MESEC

GEMINI

MERCURY

EWSD-APSDBP-14

7% godišnjiprirastproduktivnosti

Page 17: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

17

DAAD project „Joint Course on Software Engineering“ © 17

Ali: „Softverska rešenja traževisoku preciznost“ (Denert, s. 4)

Softver je …

• sklon greškama• ponaša se drugačije od očekivanog

• završen prekasno• skuplji nego što je planirano

• neprimenljiv

veoma često: propast projekta

Page 18: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

18

DAAD project „Joint Course on Software Engineering“ © 18

Primeri softverskih problema

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).

Page 19: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

19

DAAD project „Joint Course on Software Engineering“ © 19

Primeri softverskih problema - nastavak

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”).

Page 20: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

20

DAAD project „Joint Course on Software Engineering“ © 20

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%

Page 21: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

21

DAAD project „Joint Course on Software Engineering“ © 21

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.

Mynatt, 1990

Page 22: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

22

DAAD project „Joint Course on Software Engineering“ © 22

Pitanje: srazmera grešaka

Srazmera grešaka= broj grešaka u 1000 linija 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

Page 23: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

23

DAAD project „Joint Course on Software Engineering“ © 23

Značaj softverske industrije

3000

2500

2000

1500

1000

500

za ceo svet, u milijardama US$

800 8001100

13201620

2850 2900

vojska &

odbrana

mašinska

industraija

autoindustrija

hemijska

industrija

tekstilna

industrija

informatika

Izvor: G.Koch, Evropska IT Konferencija (EITC), Brüssel, Jun 1994

turizam

Page 24: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

24

DAAD project „Joint Course on Software Engineering“ © 24

1. Šta je softversko inženjerstvo ?

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, ...

Page 25: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

25

DAAD project „Joint Course on Software Engineering“ © 25

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)

Page 26: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

26

DAAD project „Joint Course on Software Engineering“ © 26

1. Šta je softversko inženjerstvo ?

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, ...

Page 27: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

27

DAAD project „Joint Course on Software Engineering“ © 27

Istorijasoftverska kriza:pojam od sredine 60-ihsredinom 60-ihcene softvera postaju veće nego cene hardvera (slika)

NATO konferencije 1968, 69:definicija pojma softverskog inženjerstva

velike prednostiali: i danas imamo kriza softveracene softvera (širom sveta)1985: 140 milijardi dolara1995: 435(poređenje: budžet Nemačke 1992: 430 milijardi DEM)(Balzert, Yourdon)

Page 28: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

28

DAAD project „Joint Course on Software Engineering“ © 28

Troškovi hardvera i softvera100

80

60

40

20

1955 1960 1969 1976 1985

Hardver

Softver

Page 29: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

29

DAAD project „Joint Course on Software Engineering“ © 29

1. Šta je softversko inženjerstvo ?

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, ...

Page 30: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

30

DAAD project „Joint Course on Software Engineering“ © 30

Definicije softverskog inženjerstva

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).

Page 31: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

31

DAAD project „Joint Course on Software Engineering“ © 31

Softversko inženjerstvo nije posebno polje informatike

Šta nije

konstrukcija kompajlera

računarske komunikacije

baza podataka

veštačka inteligencija

.

.

.

softversko inženjerstvo

Ludewig, SEUH 97, p. 11 f.

softversko-inženjerstvo

konstrukcija kompajlera

računars

ke ko

munikacij

e

baza

poda

taka

vešt

ačka

inte

ligen

cija

..

.

Šta zaista jeste

Page 32: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

32

DAAD project „Joint Course on Software Engineering“ © 32

1. Šta je softversko inženjerstvo ?

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, ...

Page 33: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

33

DAAD project „Joint Course on Software Engineering“ © 33

Studentski razvoj softvera

„Uobičajeni“ studentski pogled na životni vek softvera

Modesitt, LNCS 750, p 42

Čitanjezadatka

(dan 1)

Kodi-ranje

(dan 1 ... n - 2)

Traženjegrešaka(dan n - 1)

Dokumen-tovanje(dan n - ε)

Preda-vanje(dan n)

Page 34: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

34

DAAD project „Joint Course on Software Engineering“ © 34

Distribucija aktivnosti projektau funkciji veličine projekta

0%10%20%30%40%50%60%70%80%90%

100%

1024

051

2025

6012

80 640

320

160 80 40 20 10

veličina projekta (funkcijski bodovi)

kodiranje

otklanjanje grešaka

administriranje

upravljanje i podrška

Yourdon, 1993, p. 151

Page 35: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

35

DAAD project „Joint Course on Software Engineering“ © 35

1. Šta je softversko inženjerstvo ?

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, ...

Page 36: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

36

DAAD project „Joint Course on Software Engineering“ © 36

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 ...)

Page 37: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

37

DAAD project „Joint Course on Software Engineering“ © 37

Softverski dokumenti(Sommerville, Softversko inženjerstvo, 5-to izd., s. 17)

Završni sistem i dokumentacijaPrijemni testIzveštaj o testiranju sistemaTestiranje sistema

Izveštaj o testiranju integracijeKonačno uputstvo za upotrebu

Integraciono testiranjeIzveštaj o testiranju modulaTestiranje modulaIzveštaj o testiranju elemenataTestiranje elemenata Programski kodKodiranje

Specifikacija dizajnaPlan testiranja elemenata

Detaljni dizajn

Specifikacija interfejsaPlan integracionog testiranja

Dizajn interfejsa

Specifikacija arhitekturePlan prijemnog testiranja

Dizajn arhitekture

Funkcionalna specifikacijaPlan prijemnog testiranjaSkica uputstva za upotrebu

Specifikacija zahtevaDokumenat zahtevaDefinisanje zahteva

Studija izvodljivostiSkica zahteva

Analiza zahtevaIzlazni dokumentiActivnost

Page 38: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

38

DAAD project „Joint Course on Software Engineering“ © 38

Softverski dokumenti(IEEE standardi)

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

Page 39: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

39

DAAD project „Joint Course on Software Engineering“ © 39

1. Šta je softversko inženjerstvo ?

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, ...

Page 40: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

40

DAAD project „Joint Course on Software Engineering“ © 40

Ciljevi ovog kursa(... i šta ne nudimo)

1. Uvod u SI2. Opšti pregled SI

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 ...

Page 41: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

41

DAAD project „Joint Course on Software Engineering“ © 41

Softversko inženjerstvo u posebnim kursevima

Deo I: Uvod u SIDeo II: Inženjerstvo zahteva11. Osnovni koncepti pogleda

orijentisanog ka stanju12. Osnovni koncepti pogleda

orijentisanog ka scenariu13. Objektno-orijentisana analiza14. Formalna specifikacija i verifikacija

programaDeo III: Dizajn17. Objektno-orijentisani dizajnDeo IV: Implementacija i testiranje19. Sistematično testiranjeDeo VI: Napredni problemi21. Softverska metrika23. Reverzno inženjerstvo24. Kvalitet procesa razvoja softvera i

njegova standardizacija24. Ergonomija softvera25. Upravljanje projektima

Inženjerstvo zahteva (SEI, Pittsburgh, USA)Petri mreže (Reisig, HU)

Formalni metodi u razvoju softvera (SEI, Pittsburgh, USA)

Objektno-orijentisani razvojsoftvera (sa UML) (Fischer, HU)

Arhitektura softvera (SEI)Metodi testiranja softvera(Spillner, Bremen)CAME-alati (Dumke, Magdeburg)Softversko reinženjerstvo (Koschke, Stuttgart)PSP (SEI)CMM (SEI)

Ergonomija softvera (Wandtke, Inst. of psychology, HU)Upravljanje projektima (SEI, Pittsburgh, USAč DMI, Novi Sad, SCG)

Page 42: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

42

DAAD project „Joint Course on Software Engineering“ © 42

1. Šta je softversko inženjerstvo ?

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, ...

Page 43: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

43

DAAD project „Joint Course on Software Engineering“ © 43

Literatura (1)Udžbenici: • I. Sommerville: Software Engineering (742 strana),

6. ed. Addison-Wesley, 2001• H. Balzert: Lehrbuch der Software-Technik,

Spektrum-Verlag, Vol. 1: 1996, Vol. 2: 1998 (769 strana),Vol. 1 (2nd ed.): 2001 (1136 strana)

• B.-U. Pagel, H.-W. Six: Software Engineering.Addison-Wesley (895 strana), 1994 (na nemačkom)

• E. Braude: Software Engineering, An Object-Oriented Perspective, Wiley & Sons, 2001

• R. Pressman: Software Engineering, A Practitioner‘s Approach, European Adaptation (840 strana), McGraw-Hill, 5th ed., 2000

• J. Marciniak: Encyclopedia of Software Engineering, Vol. 1, 2 (1453 strana), Wiley & Sons, 1994

• IEEE Standards Collection, Software Engineering, 1994 Edition

Page 44: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

44

DAAD project „Joint Course on Software Engineering“ © 44

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.

Page 45: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

45

DAAD project „Joint Course on Software Engineering“ © 45

Literatura (2)

Č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.

Page 46: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

46

DAAD project „Joint Course on Software Engineering“ © 46

najznačajnijameđunarodnakonferencija

Page 47: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

47

DAAD project „Joint Course on Software Engineering“ © 47

Page 48: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

48

DAAD project „Joint Course on Software Engineering“ © 48

Page 49: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

49

DAAD project „Joint Course on Software Engineering“ © 49

Page 50: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

50

DAAD project „Joint Course on Software Engineering“ © 50

Page 51: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

51

DAAD project „Joint Course on Software Engineering“ © 51

Page 52: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

52

DAAD project „Joint Course on Software Engineering“ © 52

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 [...]

Page 53: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

53

DAAD project „Joint Course on Software Engineering“ © 53

SEI: Institut za softversko inženjerstvoDetalj: Upravljačke prakse

Page 54: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

54

DAAD project „Joint Course on Software Engineering“ © 54

ESI: Evropski softverski institut(Osnovna stranica: http://www.esi.es)

Page 55: Tema 1 Šta je softversko inženjerstvo? · 1 Humboldt University Berlin, University of Novi Sad, University of Plovdiv, University of Skopje, University of Belgrade, University of

55

DAAD project „Joint Course on Software Engineering“ © 55

‘Joint MSc studies in SE’, perun.im.ns.ac.yu/msc-se/