Please enable JavaScript.
Coggle requires JavaScript to display documents.
18. Softwarové inženýrství II (Provoz, údržba a další vývoj systému (fáze…
18. Softwarové inženýrství II
Testování
jednoznačná kontrola?
iterace
určení záběru, výběr testů, sběr dat, nástroje
problémy
špatná komunikace
testy přizpůsobené konkr. produktu
specifikace - nejednoznačná, chybí
nerealistická vstupní data
není možné otestovat vše
začíná stanovením cílů
fáze
release
testovací tým (nevyvíjel), celá aplikace
kompletní verze, před zákazníkem
požadovaná funkcionalita, výkon, nehavaruje
user
koncový zákazník
acceptance - jestli je připraven a může být nasazen v jejich prostřední
development
test syst. během vývoje
unit
jednotky, třídy, objekty, metody (operace, atributy, stavy)
automatizované - JUnit
automaticky
setup
call
assertion
strategie
partition
guideline-based
system
všechny funkce, kombinace
všechny use-case
celek, interakce
component
chyby
zneužití rozhraní
špatné předpoklady
chyby v načasování
guidelines (extrémy)
několik jednotek intergováno - komponenta + rozhraní
test-driven development
nejprve napsané testy, pak kód
kód se píše inkrementálně spolu s testem
přístup - testování a vývoj se překrývá
+
pokrytí kódu testy, regresní testování, zjednodušení, jakoby dokumentace
Validace a verifikace
Validace
samotný produkt
simulace, testování, runtime analýaza, akceptační testy
funkc. podle zákazníka
Verifikace
jednotkové testy, integrační
produkt splňuje funkc. danou specifikací - co jsme chtěli
před validací
test - nad základními daty
testování
správnosti
defektů
statická analýza - nevyžaduje spuštění
autom. atat. anal.
formální verifikace
kontrola systému
model checking
Provoz, údržba a další vývoj systému
oprava chyb
úprava způsobená změnou hw
impl. nových požadavků systému a uživ.
fáze sw provozu
evoluce = impl. nového + oprava chyb
obsluha = oprava chyb, malé změny (chyby/nové prostředí/změna funkcionality)
phase-out = bez aktivní podpory, stále používaný
nezbytnost vývoje SW produktu
údržba často přesahuje cenu vývoje (zejm. custom syst.)
systémové reinženýrství
přepsání/restrukt. části kódu bez změny funkcionality
cíl: jednodušší údržba
vs. refraktoring
změny programu, cíl: zpomalit degradaci časem
bez přidání funkcionality
během údržby vs. reingeneering - během vývoj i evoluce
Role jazyka UML v podpoře analýzy a návrhu SW
diagramy
object
kompletní/částečný pohled na strukturu systému ve spec. dobu
pojmy
objekty (instance) + atributy
spojení mezi objekty
state
dynamicky se měnící objekt - modelování
stavy
podmínky pro přestup
iniciální stav, koncový
může mít akci - provedena při v/v
životní cyklus objektu/komponenty/systému
class
třídy + vztahy, logický pohled
třídy + objekty (instance)
třída = kolekce objektů se shodnou strukturou, chování, vztahy a sémantikou
vztahy
komunikace mezi objekty
asociace
agregace
závislost
dědičnost
násobnost
využití: analýza, implementace
deployment
mapování mezi sw architekturou a fyz. architekturou systému
stereotypy (krychle pro tiskárnu,...)
způsob distribuce funkcionality napříč fyzickými uzly
fyzická alokace částí systému na fyzické zdroje
activity
procesy jako kolekce uzlů a hran
chování ese-case, tříd, rozhraní, komponenty, metody,...)
aktivita = síť uzků spojených hranami
plavecké dráhy - paralelní běh
component
uspořádání a závislosti mezi sw komponentami
komponenta
modulární část systému
zapouzdřuje svůj obsah
nahraditelná
fyzická/logická
zdroj. kódu, binární, spustitelná
use-case
definuje
hranice systému
případy užití (funkcionality požadovaná aktérem, vždy z pohledu aktéra)
aktéry (externí, role, interakce)
rozšíření
generalizace/specifikace aktérů/use-case
include/extends
při specifikaci požadavků
package
elementy logicky org. do skupin - package
vztahy
závislost
generalizace
sequence
interakce, vzájemné chování procesů + pořadí
konkrétní časová sekvence
pojmy
lifeline (simultánní procesy/objekty)
message (prosecy/objekty mvyměňují)
ve všech procesech živ. cyklu vývoje, různé impl.
stand. jazyk pro zobrazení, specifikaci, konstrukci a dokumentaci artefaktů syst.
unified modeling language
modelování = tvorba abstr. modelu systému
pohledy
strukturální: class, object, component, package, deployment
interakční: sequence, communication
externí: use case
behaviorální: activity, state