softverski inženjering
DESCRIPTION
Sistemska okruženja,Elementi sistemaTRANSCRIPT
D O C . D R . E M I R S K E J I Ć
Softverski inženjering1
2
Osnovne informacije o predmetu
Nastavno osoblje
Nastavnik: Doc. dr. Emir Skejić Lokacija: Fakultet elektrotehnike, kancelarija 203 E-mail: [email protected]
Web stranica predmeta: www.fe.untz.ba/nastava
Asistent: mr. sc. Emir Mešković Lokacija: Fakultet elektrotehnike, kancelarija 208 E-mail: [email protected]
3
Preduslovi za slušanje predmeta
Osnovno poznavanje programiranja
4
Obaveze studenata
Redovno pohađanje predavanja Dozvoljena su 2 neopravdana izostanka
Redovno pohađanje vježbi Dozvoljen je samo 1 neopravdan izostanak
5
Način bodovanja i ocjenjivanje
Zadaće iz programiranja: 30% Međuispit: 30% Završni ispit: 30% Prisustvo predavanjima: 5% Prisustvo vježbama: 5%
6
Način bodovanja i ocjenjivanje
Konačna ocjena se formira kao zbir osvojenih bodova Od 54 do 63 dovoljan (6) Od 64 do 73 dobar (7) Od 74 do 83 vrlo dobar (8) Od 84 do 93 odličan (9) Od 94 do 100 izvrstan (10)
7
Literatura8
Osnovna literatura Materijali s predavanja i vježbi u pdf formatu "Software Engineering: A Practitioner's Approach" 5th Ed.
by Roger S. Pressman, Mc-Graw-Hill, 2001
Dodatna literatura "Software Engineering" by Ian Sommerville, Addison-
Wesley, 2001 Bilo kakvi korisni sadržaji koji se mogu pronaći na
Internetu
D O C . D R . E M I R S K E J I Ć
9
Uvodno predavanje
Ciljevi predavanja10
Definirati proces softverskog inženjeringa Razumjeti važnost softverskog inženjeringa Razmotriti bitne karakteristike softvera Razumjeti da kvalitet različitih aplikacija može biti
različito evaluiran
Jednostavan program11
"Napisati program za dobijanje liste rezultata testa, izračun ocjena i ispis izvještaja o rezultatima"
Tipični pristupi12
Sjesti za računar i odmah napisati program Pronaći stari program i modificirati ga Prodiskutovati s prijateljima kako to uraditi Zamoliti predavača za više informacija o programu
Šta je softverski inženjering13
Softver programi koji obezbjeđuju funkciju i performansu strukture podataka za manipulaciju informacijama dokumenti koji opisuju operacije i upotrebu programa
Inženjering Disciplina koja primjenjuje naučne i tehničke metode u
dizajnu i produkciji proizvoda
Definicija softverskog inženjeringa14
IEEE definicija:Primjena sistematičnog, discipliniranog, kvantifikabilnog pristupa razvoju, funkcioniranju i održavanju softvera
Još jedna definicija softverskog inženjeringa15
Praktična primjena naučnih spoznaja u dizajnu iizgradnji računarskih programa i pripadajuća dokumentacija potrebna za razvoj, funkcioniranje i održavanje istih. (Boehm)
Ciljevi softverskog inženjeringa16
Poboljšati kvalitet softverskih proizvoda Povećati zadovoljstvo kupaca Povećati produktivnost Povećati zadovoljstvo poslom
Softverski inženjering nije programiranje. Programiranje je važan dio softverskoginženjeringa.
"Ovo nije kurs programiranja"
Historijska pozadina17
U počecima razvoja računarstva programi su pisani da bi hardver radio
Programiranje nije bilo disciplina, više hobi ili"umjetničko izražavanje"
Međutim, razvoj računara je zahtijevao izradu većih programa, npr. kompajlera i operativnih sistema
Programiranje postaje profesija
Karakteristike programa18
Prije su programi bili mali i izrađivao ih je samo jedan stručnjak (programming in the small) za određeni algoritam. Ulaz su bili numerički podaci a izlaz je bio slat na printer. Otkrivanje grešaka (troubleshooting) se radilo na memorijskom i registarskom nivou.
Danas su programi veliki i kompleksni, a pišu ih grupe ljudi (programming in the large).
Troškovi u IT-u19
Održavanje softvera
Održavanje hardvera Razvojsoftvera
1955 1980-e
100%
Ukupni
trošak
Softverska kriza20
Veliki programski projekti su zahtijevali da mnogoprogramera zajedno radi
Projekti nisu završavani na vrijeme, a koštali su više nego što je početnim budžetom bilo predviđeno –softverska kriza
Razvijene su metode softverskog inženjeringa da bi se ovi problemi prevazišli
Sistematičan proces21
Problem
Modeli
Rješenje
Analiza
Dizajn
Razvoj
Testiranje
Karakteristike softvera22
Softver se razvija ili gradi, a ne proizvodi u klasičnom smislu
Softver se ne "troši" Većina softvera se gradi za jednog kupca (custom-
built), a ne iz postojećih komponenti
Šta je dobar softver? 1/223
Softver je nematerijalan Dobar softver je subjektivan Neke osobine koje se koriste da bi se ocijenio softver:
Ispravnost: program zadovoljava svojespecifikacije.
Pouzdanost: program zadovoljava svoje namijenjene funkcije.
Upotrebljivost: trud potreban za učenje, rukovanje, pripremu ulaza i interpretaciju izlaznih podataka.
Integritet: Kontrola pristupa neautoriziranimosobama.
Šta je dobar softver? 2/224
Efikasnost: količina potrebnih računarskih resursa. Održivost: trud potreban da se lociraju i isprave greške
u operativnim programima. Prenosivost: trud potreban da se program prenese iz
jednog hardverskog/softverskog okruženja u drugo. Testabilnost: trud potreban za testiranje programa
kako bi se osiguralo da isti obavlja svoje namijenjene funkcije.
Interoperabilnost: trud potreban da se upare programi. Ponovna upotrebljivost: ponovna upotreba programa u
drugim aplikacijama.
Softverske aplikacije25
Sistemski softver Real-time softver Poslovni softver Inženjerski i naučni softver Ugrađeni softver Softver za personalne računare (Personal Computer
Software) Softver za vještačku inteligenciju (Artificial
Intelligence Software)
Reference26
"Software Engineering: A Practitioner's Approach"5th Ed. by Roger S. Pressman, Mc-Graw-Hill, 2001
"Software Engineering" by Ian Sommerville, Addison-Wesley, 2001