Obsah

Poznámky z předmětu A4M33SEP

Requirements Engineering

schématický pohled

u požadavků je obvykle šedá zóna, neboť každá strana považuje určité věci za jinak důležité, takže někdo to neočekává a druhý ano a pak dochází k nedorozumění atd

každý analytik by si měl položit několik zásadních otázek a byl schopen na ně odpovědět

Architektura a design

softwarový proces - důležité

LCO - life cycle objectives - co to má dělat, co se od toho očekává LCA - life cycle activities - trochu podrobněji rozmyšlené co to má dělat atd, tisky, uživatelské stránky, exporty atd. IOC - initial operation capability - tvorba vlastního produktu, dodání zákazníkovi, například beta provoz, odladění user-friendly etc.první build který se dodává zákazníkovi, má to ořezanou funkcionalitu, kterou již zákazník může používat ke svému businessu

SWEBOK

architektura

design

architektura vs. design

abstraktní datový typ

OOP

pravidla dobrého OOP

tvorba architektury

architektura 4+1

podle IEEE existuje jiné rozlišení co je potřeba dokumentovat, ale lze to docela dobře mapovat proti 4+1

vliv kontextu na architekturu

OO systémy

OO frameworky

Konstrukce

framework vs. knihovna

je potřeba znát cenu projektu - abych nebastlil a neměl nízkou kvalitu ani neměl zlatý kód, což se nedá zaplatit je potřeba dodržovat firemní pravidla, standardy a dobré mravy ctít architekturu psát testy znát základní sw pravidla - vlákna, deadlock atd.

DDD (Domain Driven Development)

MDD (Model Driven Development

TDD - ruku v ruce implementuji a testuji

Refactoring - úprava kódu za účelem zapouzdření, cohesion, coupling, ..

Self-documenting code

Literate programming - programování v jazyku hodně podobném srozumitelné řeči

Technický dluh

QA a Testování

Testování

Základní pravdy

Typologie testů

- testování obvykle 15-20% Man-Day z celkového projektu - patří sem V-Model

kontinuální integrace

Equivalence analysis

Black x White box

Testovací technika

Quality Assurance

Testování ruční

QA - zajištění kvality validace - ověření, zda-li to má dělat to co má smysl a co je užitečné, ideálně validuje zákazník, zkrátka aby to nedělalo zbytečnosti a nesmysly verifikace -ověření, zda-li sw dělá to co má dělat

akceptační testování

kvalifikační testování

TestCase - návod jak otestovat, elementární jednotka, má předpoklady, postup a post-conditions, měl by pokrývat právě jeden případ, ne víc TestScenario - množina TestCase, sdružuje jednotlivé úkoly z praktických důvodů, abychom se neustále nepřihlašovali atd.

smoke testing - celkové otestování je moc pomalé,tak uděláme jen částečné testování toho nejzákladnějšího, je to rychlé

výkonnostní - testujeme, zda-li je to dostatečně rychlé a dává to požadovanou odezvu zátěžové - zkusíme předimenzovat zátěž a zjišťujeme, co se stane, když je zahlcena aplikace - zda-li lehne, zotaví se atd.

lokalizační testování - testování překladů - zda-li je kvalita překladu úplná a bezchybná, protože jinak je to problém

fuzzy testing - testování náhodou, bez jakýchkoliv předpokladů a znalostí

automatické vs. manuální testování

Unit testy

automatické testování

testovací plán

Konfigurační řízení

Issue tracking

řízení změn

Údržba

Smlouva o údržbě, servisní smlouva

Dokumentace

Software project management

best practices - viz slide vazby PM

základní metoda

Organizace práce v týmu

řízení rizik

Historie a měření

nabídka

historie projektů

metriky

Odhad pracnosti

Nabídka a poptávka

Dokumentace