U ovom uvodnom poglavlju najprije ćemo objasniti osnovne pojmove koji se susreću u softverskom inženjerstvu. Zatim ćemo detaljnije govoriti o modelima koji ugrubo opisuju kako bi se trebao odvijati proces razvoja softvera. Dalje ćemo govoriti o danas relevantnim metodama razvoja softvera, koje profinjavaju i konkretiziraju pojedine modele. Na kraju ćemo istaći da softversko inženjerstvo ima i svoj menadžerski aspekt, dakle da se u okviru razvoja softvera pojavljuje i problematika upravljanja složenim projektima.
Softverski proces je skup aktivnosti i pripadnih rezultata čiji cilj je razvoj ili evolucija softvera. Osnovne aktivnosti unutar softverskog procesa su: utvrđivanje zahtjeva, oblikovanje, implementacija, verifikacija i validacija, te održavanje odnosno evolucija. Metoda razvoja softvera je profinjenje i konkretizacija odabranog modela za softverski proces. Metoda uvodi specifičnu terminologiju. Također, ona dijeli osnovne aktivnosti u pod- aktivnosti te propisuje što se sve mora raditi unutar pojedine pod-aktivnosti. Dalje, metoda uvodi konkretan način dokumentiranja rezultata pod-aktivnosti (dijagrami, tabele, pseudo- jezik, … ), te daje naputke vezane uz organizaciju rada, stil oblikovanja, stil programiranja, i tako dalje. Više o metodama razvoja softvera bit će rečeno u Potpoglavlju 1.3. CASE alati (Computer Aided Software Engineering) su softverski paketi koji daju automatiziranu podršku za pojedine aktivnosti unutar softverskog procesa. Obično su napravljeni u skladu s određenom metodom razvoja softvera, implementiraju pravila iz te metode, sadrže editore za odgovarajuće dijagrame, te služe za izradu odgovarajuće dokumentacije. Dijele se u dvije vrste. · Upper-CASE alati daju podršku za početne aktivnosti unutar softverskog procesa, kao što su specifikacija i oblikovanje. · Lower-CASE alati podržavaju samu realizaciju softvera, dakle programiranje, verifikaciju i validaciju, te eventualno održavanje.
Kad smo govorili o softverskom produktu rekli smo da se on sastoji od računalnih programa i pripadne dokumentacije. Dakle, razvoj softvera ne svodi se samo na razvoj programa nego također i na sastavljanje dokumenata koji prate te programe. Dokumentacija je sastavni i nezaobilazni dio onoga što softverski inženjeri proizvode. Dokumentacija softvera može se podijeliti u dvije kategorije. · Sistemska dokumentacija namijenjena je softverskim inženjerima ili članovima razvojnog tima, opisuje zahtjeve ili građu ili funkcioniranje sustava, te omogućuje sam razvoj softvera i njegovo kasnije održavanje. · Korisnička dokumentacija namijenjena je korisnicima, omogućuje im da koriste sustav, te opisuje funkcije sustava na njima razumljiv način. U daljnjim poglavljima opisat ćemo nekoliko primjera dokumenata koji spadaju u sistemsku dokumentaciju. Na primjer to su sljedeći dokumenti. · Dokument o zahtjevima. Opisuje zahtjeve na sustav, dakle što sustav treba raditi i uz koja ograničenja. · Dizajn sustava (projektna dokumentacija). Nastaje kao rezultat oblikovanja sustava. Opisuje kako sustav treba biti građen, te kako treba raditi da bi obavio svoje funkcije. · Plan testiranja. Sadrži primjere test podataka i odgovarajućih očekivanih rezultata. Služi nakon bilo kakve promjene programa za provjeru da li je sačuvana dotadašnja funkcionalnost programa. · Izvorni tekst programa, pisan u programskom jeziku i nadopunjen odgovarajućim komentarima. Nastaje kao rezultat implementacije sustava i na najizravniji način dokumentira sustav. Kad god koristimo neki generički softverski produkt, na primjer operacijski sustav ili paket za uredsko poslovanje ili sustav za upravljanje bazom podataka, susrećemo se s raznim dokumentima koji spadaju u korisničku dokumentaciju. Evo nekoliko primjera takvih dokumenata. · Funkcionalni opis. Namijenjen je evaluatorima sustava, dakle osobama koje će odlučiti da li da se koristi taj sustav ili neki drugi. Daje se grubi opis što sustav može a što ne može raditi. Priloženi su primjeri, tabele i dijagrami. Ne objašnjavaju se operativni detalji. · Vodič za instalaciju. Namijenjen je sistem-administratoru ili korisniku. Opisuje instalaciju sustava na zadanoj vrsti računala. Sadrži opis distribucijskog medija, definiciju minimalne hardverske i softverske konfiguracije potrebne za pokretanje sustava, proceduru instaliranja i podešavanja. · Uvodni priručnik. Namijenjen je novim korisnicima. Daje neformalni uvod u sustav, te opisuje njegovu „normalnu“ upotrebu. Pisan je u formi „tečaja“, sadrži mnogo primjera, te uputa kako izbjeći uobičajene greške. · Referentni priručnik. Namijenjen je iskusnim korisnicima. U potpunosti, te na vrlo precizan način dokumentira sve funkcije sustava, sve oblike njegove upotrebe, sve greške koje mogu nastupiti. Nije u formi tečaja. Stil je formalan, struktura je stroga. Snalaženje u tekstu osigurano je preko indeksa pojmova. · Priručnik za administriranje. Namijenjen je sistem-administratorima ili operatorima. Opisuje aktivnosti poput backup-a, upravljanja resursima, praćenja performansi, podešavanja rada, evidentiranja korisnika, postavljanja zaštite. Izradu dokumentacije jednim dijelom je moguće automatizirati ili barem olakšati korištenjem CASE-alata. No za konačno oblikovanje dokumenata potrebni su nam standardni uredski alati poput tekst procesora ili alata za crtanje dijagrama. Osim u obliku dokumenata (bilo papirnatih bilo elektroničkih) dokumentacija može postojati i u on-line obliku, dakle ona može biti izravno dostupna iz samog softvera kojeg opisuje.
Uvod u softversko inženjerstvo
Softverski proces, metode i alati
Dokumentacija softvera
Quer criar suas próprias Notas gratuitas com a GoConqr? Saiba mais.