RPP 1-2-3 Flashcards
(24 cards)
Faze razvoja programskog proizvoda
PADITO
Planiranje
Analiza
Dizajn
Implementacija
Testiranje
Odrzavanje
Što je Programsko Inžinjerstvo
Programsko inženjerstvo je
inženjerska disciplina koja se bavi
svim aspektima razvoja softvera, od
početne konceptualizacije, do
uporabe i održavanja.
Značajke dobrog softvera
- korisniku isporučuje željenu funkcionalnost po zahtijevanim performansama
- održiv (maintainable)
- pouzdan (dependable)
- koristan i jednostavan za korištenje (usable).
Krivulja neispravnosti hardvera
prikazana je u obliku slova U, što označava kako su u početku vremena male neispravnosti, međutim vremenom
neispravnosti rastu, s obzirom da se hardver troši.
Krivulja neispravnosti softvera
prikazuje kako je softver osmišljen i razvijen, ali ne proizveden u tvornici te se u pravilu ne može istrošiti. S
obziro na objašnjeno krivulja prikazuje kako s vremenom neispravnosti padaju i postaju konstanta, odnosno dolazi do neispravnosti u
određenom vremenu te se tada reagira i ispravlja neispravnost i tako kontinuirano.
Discipline programskog inženjerstva
UPNU
- Uvod u programsko inženjerstvo
- Pouzdanost i sigurnost softvera
- Napredno programsko inženjerstvo
- Upravljanje softverom
Procesni model
Procesni model predstavlja
putokaz za razvoj programskih
proizvoda – definira tijek
aktivnosti, akcija i zadataka, te
stupanj iteracija, rezultate i
organizaciju rada.
Navedi Preskriptivni procesni modeli
● Evolucijski
● Vodopadni
● Konkurentni
● Inkrementalni
Agilni pristup
Agilni pristup razvoju softvera utemeljen je na filozofiji koja potiče zadovoljstvo korisnika i ranu inkrementalnu isporuku programskog proizvoda, te podrazumijeva male, ali izrazito motivirane projektne timove, neformalne metode i jednostavnost razvoja
12 Agilnih principa vj znati 4 samo
1) Rana i kontinuirana isporuka programskog proizvoda
2) Prihvaćanje zahtjeva za promjenom
3) Isporuka funkcionalnog programskog proizvod u kratkim intervalima
4) Svakodnevni timski rad
5) Motivirani pojedinci
6) Komunikacija licem-u-lice
7) Mjerenje napretka
8) Održiv razvoj
9) Tehnička izvrsnost i dobar dizajn
10) Jednostavnost
11) Samoorganizirajući timovi
12) Razmišljanje o načinima postizanja veće učinkovitosti
NAbroji Agilne metode
Ekstremno programiranje (XP),
Scrum,
DSSD,
Agilno modeliranje (AM),
Agilni objedinjeni proces (AUP)
Ekstremno programiranje
agilna razvojna metoda koja koristi moćne tehnike i skup pravila za česte isporuke softvera, fokusirajući se na planiranje, dizajn, kodiranje i testiranje kako bi osigurala brz i kvalitetan razvoj
Opiši SCRUM
Scrum je agilni okvir za razvoj softvera koji koristi skup uzoraka procesa kako bi timovi mogli brzo i prilagodljivo isporučivati proizvode u kratkim vremenskim rokovima, unatoč čestim promjenama zahtjeva i kritičnom poslovanju.
Razvojni zadaci SCRUM-a
Backlog – Popis svih zadataka i zahtjeva potrebnih za razvoj proizvoda, koji se kontinuirano ažurira i prioritizira.
Sprintevi – Kratki, vremenski ograničeni razvojni ciklusi (obično 1-4 tjedna) u kojima se implementiraju i testiraju zadaci iz backlog-a.
Scrum sastanci – Redoviti timski sastanci (npr. daily stand-up sastanci) na kojima se raspravlja o napretku, preprekama i planovima za daljnji rad.
Demonstracije – Prezentacija dovršenih funkcionalnosti nakon svakog sprinta, gdje tim pokazuje što je razvijeno i dobiva povratne informacije od dionika.
3 vrste rizika programskog proizvoda
Projektni
Poslovni
Tehnicki
Projektni rizici: odnose se na potencijalne probleme vezane uz budžet, raspored, osoblje, resurse, dionike i zahtjeve, te njihov utjecaj na projekt
Tehnički rizici: obuhvaćaju probleme vezane uz dizajn, implementaciju, sučelje, verifikaciju i održavanje, te tehničke neizvjesnosti i zastarjelosti
Poslovni rizici: odnose se na rizik tržišta, strateški rizik, rizik prodaje, rizik upravljanja i proračunski rizik
Dizajn arhitekture softvera
Dizajn arhitekture softvera
* Provodi se u ranoj fazi procesa dizajna sustava
* Predstavlja vezu između zahtjeva i samog procesa dizajna sustava
* Često se provodi paralelno s nekim aktivnostima specifikacije
* Uključuje identifikaciju važnih komponenti sustava i njihove povezanosti Strukturiranje sustava
Nabroji i objasni slojeve višeslojne aplikacijske
arhitekture
Sloj prezentacije
* Prezentacija rezultata obrade korisnicima
* Prikupljanje korisničkih naredbi i ulaznih podataka
- Sloj obrade (aplikacijski sloj)
- Sadržava specifičnu funkcionalnost aplikacije (npr. u bankarskom sustavu bi
to bile funkcionalnosti tipa otvaranja i zatvaranja računa) - Sloj upravljanja podacima
- Upravljanje podacima i bazama podataka
Objasnit o otvorenim, zatvorenim i izoliranim slojevima
Izoliranost / zatvorenost slojeva nalaže prolazak zahtjeva kroz svaki prethodni sloj do odredišnog sloja
Dodavanje otvorenog sloja kojeg se može preskakati ako ga se pojedini zahtjevi ne tiču
Otvoreni sloj – Omogućuje preskakanje slojeva u višeslojnoj arhitekturi, što znači da komponenta može izravno komunicirati s bilo kojim slojem ispod sebe.
Zatvoreni sloj – Zahtijeva da svaki zahtjev prolazi kroz sve slojeve redom, osiguravajući bolju kontrolu i modularnost, ali smanjujući fleksibilnost.
Izolirani sloj – Ne izlaže svoje funkcionalnosti drugim slojevima, koristi se interno unutar sustava bez direktne komunikacije s ostalim slojevima.
Arhitektura tankog klijenta
Arhitektura tankog klijenta – klijent je sloj prezentacije, server je sloj obrade i upravljanje podacima
→ koristi se pri migriranju postojećih legacy sustava na klijent-server arhitekturu
→ primjena: sustav intenzivne obrade bez upravljanja podacima, podatkovno intenzivni sustavi s malo ili nimalo aplikacijske
obrade, legacy sustavi u kojima je odvajanje sloja obrade od sloja podataka nemoguće
→ nedostaci: opterećenje servera obradom i opterećenje mreže prijenosom podataka
* Obrada i upravljanje podacima se izvršavaju na serveru
* Prikaz podataka se izvršava na klijentu
- Legacy sustavi gdje je odvajanje sloja obrade od sloja podataka nepraktično ili nemoguće
- Sustavi intenzivne obrade bez upravljanja podacima
- Podatkovno intenzivni sustavi s malo ili nimalo aplikacijske obrade
Arhitektura debelog klijenta
Arhitektura debelog klijenta – klijent je sloj prezentacije i sloj obrade, server je upravljanje podacima
→ primjenjiva u novim sustavima u kojima su mogućnosti klijenta poznate unaprijed
→ primjena: COTS aplikacije namijenjene klijentima, procesorski zahtjevna obrada, stabilna funkcionalnost i sustav održavanja
→ nedostaci: komplicirana za održavanje, nove verzije aplikacije moraju biti instalirane na sve klijente
Navedi uzorke dizajna
Lazy load
Singleton
Observer
Factory
MVC
Lazy load
* predstavlja uzorak dizajna koji omogućava odgođeno izvršavanje/učitavanja/dohvaćanje
podataka ili objekata
Singleton
kontrola broja objekata spojenih na bazu
MVC
omogućava implementaciju višeslojne arhitekture
Daj 2 primjera mehanizma kako poboljšati Performanse (nefunkcionalni zahtjev)
Lazy load (omogućava odgođeno izvršavanje/učitavanje/dohvaćanje podataka, LINQ)
Singleton (kontrola broja objekata spojenih na bazu)
Indeksiranje
Paginacija
Asinkrone operacije
Lazy load – objasni
- predstavlja uzorak dizajna koji omogućava odgođeno izvršavanje/učitavanja/dohvaćanje podataka ili objekata
- specifičan uzorak dizajna za LINQ
- bitan kod rada s podacima
- Koji uzorak dizajna ima istu ideju kao i dogadaj u #C
- Observer
- uzorak dizajna koji omogućava obavještavanje pretplaćenih slušatelja o događaju koji se dogodio
- kod rada s podacima, važno je obavijestiti objekte da su nastale promjene na podacima i slično