26
DOC. DR. EMIR SKEJIĆ Softverski inženjering 1

softverski inženjering

  • Upload
    ansob1

  • View
    116

  • Download
    6

Embed Size (px)

DESCRIPTION

Sistemska okruženja,Elementi sistema

Citation preview

Page 1: softverski inženjering

D O C . D R . E M I R S K E J I Ć

Softverski inženjering1

Page 2: softverski inženjering

2

Osnovne informacije o predmetu

Page 3: softverski inženjering

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

Page 4: softverski inženjering

Preduslovi za slušanje predmeta

Osnovno poznavanje programiranja

4

Page 5: softverski inženjering

Obaveze studenata

Redovno pohađanje predavanja Dozvoljena su 2 neopravdana izostanka

Redovno pohađanje vježbi Dozvoljen je samo 1 neopravdan izostanak

5

Page 6: softverski inženjering

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

Page 7: softverski inženjering

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

Page 8: softverski inženjering

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

Page 9: softverski inženjering

D O C . D R . E M I R S K E J I Ć

9

Uvodno predavanje

Page 10: softverski inženjering

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

Page 11: softverski inženjering

Jednostavan program11

"Napisati program za dobijanje liste rezultata testa, izračun ocjena i ispis izvještaja o rezultatima"

Page 12: softverski inženjering

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

Page 13: softverski inženjering

Š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

Page 14: softverski inženjering

Definicija softverskog inženjeringa14

IEEE definicija:Primjena sistematičnog, discipliniranog, kvantifikabilnog pristupa razvoju, funkcioniranju i održavanju softvera

Page 15: softverski inženjering

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)

Page 16: softverski inženjering

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"

Page 17: softverski inženjering

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

Page 18: softverski inženjering

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

Page 19: softverski inženjering

Troškovi u IT-u19

Održavanje softvera

Održavanje hardvera Razvojsoftvera

1955 1980-e

100%

Ukupni

trošak

Page 20: softverski inženjering

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

Page 21: softverski inženjering

Sistematičan proces21

Problem

Modeli

Rješenje

Analiza

Dizajn

Razvoj

Testiranje

Page 22: softverski inženjering

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

Page 23: softverski inženjering

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

Page 24: softverski inženjering

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

Page 25: softverski inženjering

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)

Page 26: softverski inženjering

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