Ova knjiga objedinjuje i sažeto opisuje najvažnije koncepte za svakoga ko se bavi softverskim inženjerstvom, od studenata računarskih fakulteta i početnika u oblasti programiranja do iskusnih softverskih inženjera koji žele da upotpune svoje znanje u ovoj oblasti.
Sadržaj knjige je aktuelan i obuhvata neophodno znanje koje bi profesionalni softverski inženjeri trebalo da poseduju. Za početnike u oblasti softverskog inženjerstva ova knjiga je najbrži put kojim mogu da nauče najbitnije neophodne koncepte u ovoj oblasti. Iskusni softverski inženjeri mogu da koriste knjigu za planiranje i razvoj projekta, kao i samo upravljanje projektom.
SadržajUvodTerminologija
Proces razvoja softvera
Inženjerstvo zahtevaAnaliza i prikupljanje zahteva 9
Razumevanje potreba korisnika
Definisanje vizije projekta
Analiza i modelovanje poslovnog domena
Modelovanje poslovnih objekata
Modelovanje poslovnih slučajeva korišćenja
Modelovanje poslovnih procesa
Validacije poslovnih modela
Definisanje korisničkih zahteva
Zahtevi
Validacija zahteva
Tehnike dokumentovanja zahteva Upravljanje zahtevima i promenama
Konfiguracija zahteva
Promene zahteva
Odobravanje promena
Sledljivost zahteva
Procene vremena i napora na osnovu zahteva
Zaključak
Arhitektura i dizajnInicijalni dizajn
Domenski model
Dizajn korisničke interakcije
Modelovanje podataka
Arhitektura softvera
Osnovni arhitekturni principi Slojevita organizacija koda
MV arhitekturni stilovi
CQRS
Arhitekture zasnovane na porukama i događajima
Mikrokernel arhitektura
Arhitekture distribuiranih aplikacija
Detaljni dizajn
Dizajn interakcija softverskih komponenti
Dizajn softverskih komponenti
Fizički dizajn podataka
Zaključak
Razvoj programskog kodaRadno okruženje
Razvoj prototipa Funkcionalni prototip
Arhitekturni prototip
Kodiranje Standardi kodiranja
Konkurentno i distribuirano programiranje Asinhrono programiranje
Programiranje tokova podataka
Deklarativno programiranje
Refaktorisanje
Analiza i pregled koda
Jedinično testiranje
Proces razvoja koda
Planiranje iteracije
Implementacija funkcionalnosti Definicija kraja posla
Operacioni razvoj (DevOps) Otkrivanje defekata
Kontrola i praćenje verzija koda
Osnove GIT sistema
Grananja
Distribuirana kontrola koda
Integracija koda
Kontinualna integracija
Isporučivanje koda
Podešavanje okruženja
Kontinualna isporuka
Zaključak
TestiranjeTest infrastruktura
Test podaci
Funkcionalno testiranje
Identifikacija test slučajeva
Dizajn test slučajeva
Implementacija automatskih testova
Izvršavanje test slučajeva
Testiranje sigurnosti
Testiranje performansi
Test opterećenja
Stres test
Razvoj zasnovan na testovima
Manuelno i istraživačko testiran
Upravljanje defektima
TrijažaStanja problema
Zaključak
Upravljanje projektomPlaniranje
Identifikacija projektnih zadataka
Procene vremena i budžeta
Definisanje procesa razvoja softvera
Kreiranje plana razvoja
Praćenje i kontrola Taktičko praćenje aktivnosti
Strateško praćenje aktivnosti
Upravljanje procesom isporuke
Kvantitativno praćenje napretka
Upravljanje rizicima
Identifikacija i analiza rizika
Prevencija rizika
Mitigacija rizika