< Nazad na kurseve
Uvod u softversko inženjerstvo
Učimo razvoj softvera. Učimo da analiziramo zahteve, osmišljamo rešenja i projektujemo softver. Učimo da prepoznajemo obrasce i primenjujemo oprobane metode razvoja softvera.
Znanje programiranja je uslov za efektivno praćenje kursa.
Uvod
- Kako napraviti neboder od slame i pruća?
- Uvod u softversko inženjerstvo
- Softverska arhitektura i softverski dizajn
- Verovali ili ne
Objektno orijentisano programiranje
- Objektno-orijentisano programiranje
- Nasleđivanje klasa
- Polimorfizam
- Kontrola pristupa
- Ograničenja nasleđivanja
- Kompozicija vs nasleđivanje
- Komponente i njihovo korištenje
Temeljni principi projektovanja
- Razdvajanje briga
- Princip isključive odgovornosti
- Apstrakcija i neponavljanje koda
- Ekapsulacija i skrivanje informacija
- Otvoren/zatvoren princip
- Princip zamene Barbare Liskov
- Princip podele interfejsa
Projektni obrasci
- Ispravan kod nije dovoljan
- Projektni obrasci
- Fasada (facade)
- Adapter (adapter)
- Posmatrač (observer)
- Jedinac (singleton)
- Fabrika (factory)
- Strategija (strategy)
- Kompozicija (composite)
- Komanda (command)
- Model–view–controller (MVC)
- Vežba: Implementiraj MVC obrazac
Faza razvoja softvera
- Proces razvoja softvera
- Analiza problema
- Slučajevi korišćenja (use cases)
- Korisničke priče (user stories)
- Izrada specifikacije
- Projektovanje modela
- Detektovanje elemenata sistema
- UML notacija
- Izgrada dijagrama klasa
- Izrada dijagrama toka
- Pisanje programa
- Prevođenje koncepata u softverske klase
- Testiranje softvera
- Dokumentacija programa
- Održavanje softvera
Mrežna arhitektura
- Distribuirani sistemi
- Klijent-server model
- Višeslojna arhitektura
- Model ravnopravnih partnera
- Projektovanje web aplikacija