Advertisement
Guest User

Untitled

a guest
Jan 18th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.57 KB | None | 0 0
  1. **2**
  2.  
  3. SDLC (sw dev lifecycle)
  4. * zkoumání potřeb
  5. * specifikace požadavků
  6. * design, vývoj, testování
  7. * nasazení, integrace
  8. * support
  9. * vyhodnocení
  10.  
  11. process activities
  12. * požadavky
  13. * analýza/návrh
  14. * implementace, testing
  15. * supporting (podpůrné)
  16. * management
  17. * prostředí (environment)
  18. * deployment (nasazení)
  19.  
  20. requirements engineering (EASV-E dropping) [SRS - software requirements specification]
  21. * proces SI, který zahrnuje všechny aktivity týkající se návrhu, dokumentování a udržování souboru požadavků na počítačový systém
  22. * elicitation - schůzky, pozorování uživatelů
  23. * analysis - přemýšlení, debaty, poznámky
  24. * specification - dekompozice, psaní v notaci
  25. * verification - schůzky, čtení textu, wireframy, bitva
  26. * specifikace požadavků je potřeba pro techniky (aby věděli co dělat), sepsání smlouvy (co je předmětem) a též nedílná součást dokumentace
  27. * od požadavků se odvíjí cena
  28.  
  29. rozsah prací (scope) - *všechny závazky*
  30. * funkce, features, integrace s ostatními systémy
  31. * výkonnost, bezpečnost
  32. * zákazník (chce všechno co není explicitně NE) x dodavatel (dělá jenom ANO) => konflikt
  33.  
  34. typy požadavků
  35. * vždy se ptám stakeholderů - zainteresovaných osob
  36. * funkcionální požadavky
  37. * požadavky na rozhraní
  38. * UI, UX, software, hardware, komunikační, ...
  39. * nefunkční požadavky
  40. * výkon, bezpečnost, škálovatelnost, dostupnost, ...
  41. * další
  42. * lokalizace, legislativa
  43.  
  44. požadavky na požadavky
  45. * srozumitelné
  46. * jednoznačné
  47. * kompletní
  48. * nevylučují se navzájem
  49. * dle priority
  50. * lze je ověřit
  51.  
  52. forma specifikace
  53. * strukturovaný dokument doplněný o modely, obrázky, diagramy
  54. * v CASE nástroji (EA)
  55. * nebo katalog požadavků
  56.  
  57. modelování
  58. * model GUI (wireframe)
  59. * jednoduché na pochopení
  60. * dílčí verifikace specifikace požadavků zákazníkem
  61. * UML
  62. * prostřeedek k reprezentaci SW na úrovni analýzy, návrhu a částečně realizace
  63. * nutné znát u zákazníka
  64. * use cases
  65. * scénáře, dobré jako doplněk
  66.  
  67. dokumentace
  68. * měla by být aktualizovaná a přesná => drahá záležitost
  69. * možnost trasovat změny (EA - SVN)
  70. * UML diagramy se užívají protože omezuje blbosti (papír snese všechno)
  71. * nepojmou zadání, požadavky, big picture, souvislosti
  72. * obchodní požadavek není cíl
  73. * je to první úroveň fixace scope, cesta ke správnému řešení
  74.  
  75. **3**
  76.  
  77. Rational Unified Process IECT
  78. * iterační proces vývoje software
  79. * symbolizován grafem, který ukazuje 6 technických (+ 3 netech) disciplín a podíl na práci v závislosti na čase
  80. 1. inception
  81. * LCO - ujasněny požadavky zákazníka, odsouhlasen rozsah, cena, harmonogram projektu
  82. * identifikována rizika, stanovena mitigační (zmírňující) strategie
  83. 2. elaboration
  84. * LCA - víme jak to, co zákazník požaduje, budeme vytvářet, detailní kontrola výběru architektury
  85. * stanoven iterační plán pro další fázi, testovací přístupy
  86. * řešení hlavních rizik
  87. 3. construction
  88. * IOC - konec konstrukce, systém je funkční a prošel alfa testem
  89. * poskytneme systém zákazníkovi, je sepsána uživatelská příručka
  90. 4. transition
  91.  
  92. software architecture
  93. * realizace nefunkčních požadavků
  94. * programovací paradigmata, ...
  95. * MVC
  96. * model - spravuje data, logiku, pravidla
  97. * view - poskytuje / vykresluje data uživateli
  98. * controller - přijímá vstup a převádí jej na příkazy pro model/view
  99. * pipes and filters
  100. * pipe - konektor, převádí data mezi filtery
  101. * filter - filtruje data (X vstupů, Y výstupů)
  102. * př. unixové programy, kompilátory
  103. * big ball of mud
  104. * neexistující architektura, spaghetti code
  105. * event driven
  106.  
  107. software design
  108. * relizace funkčních požadavků
  109. * design patterns, refactoring
  110.  
  111. framework
  112. * znovupoužitelný návrh pro SW systém, diktuje architekturu systému
  113. * určuje jak dekomponovat systém a jak budou jednotlivé části komunikovat
  114. * frozen spots - neměnné části
  115. * hot spots - zajišťují rozšiřitelnost (abstraktní třídy)
  116. * vs library
  117. * inversion of control
  118. * rozšiřitelnost
  119. * nemodifikovatelnost
  120.  
  121. integrace
  122. * file transfer
  123. * soubory jsou univerzální, aplikace nezávislé
  124. * problematický formát, out of sync
  125. * shared database
  126. * odpadají problémy se synchronizací
  127. * nutno vytvořit univerzální schéma, bottleneck
  128. * remote procedure call
  129. * aplikace vlastní data, ostatní se dotazují
  130. * výkonový rozdíl mezi lokálním a vzdáleným voláním, silné vazby
  131. * messaging
  132. * když se něco stane, tak to pošli
  133. * mnoho malých paketů
  134.  
  135. **4**
  136.  
  137. self-documenting code
  138. * sebelepší kód nenahrazuje dokumentaci
  139. * problémy - význam big picture, conditions
  140.  
  141. **5**
  142.  
  143. software testing
  144. * zkoušení / simulace provozu SW
  145. * analýza s cílem najít chyby
  146.  
  147. testing objectives
  148. * mají za cíl najít chyby v požadavcích, designu, docs, kódu co nejdřív
  149. * test oracle - mechanismus pro určení zda SW prošel daným testem
  150. * test case - množina podmínek, za kterých se určí zda systém funguje nebo ne
  151. * test plan - strategie testů, co a jak testovat, odpovědnost
  152.  
  153. typy testů
  154. * co testujeme za konfigurační jednotku
  155. * unit testy
  156. * integrační testy
  157. * systémové testy
  158. * akceptační testy
  159. * jaký aspekt testujeme
  160. * funkční, výkonnostní, bezpečnostní, ...
  161. * s jakým cílem testujeme
  162. * regresní testy
  163. * kvalifikační testy
  164.  
  165. timeline testů
  166. * při commitu na VCS -> rychlé testy
  167. * při tvoření buildu na CI -> všechny automatické testy
  168. * na testovací platformě -> výkonové a jiné nefunkční testy, manuální testy
  169. * při dodávce -> kvalifikační testy
  170.  
  171. pozitivní test
  172. * funguje co fungovat má
  173.  
  174. negativní test
  175. * nefunguje co fungovat nemá
  176. * zkouší se i edge cases
  177.  
  178. black box
  179. * testujeme oproti rozhraní
  180. * obecnější, není nutné často upravovat
  181.  
  182. white box
  183. * strukturální testy
  184. * přihlížíme k implementaci
  185.  
  186. partitioning
  187. * rozdělení testů do tříd ekvivalence
  188. * provádění různých testů ze stejné třídy ekvivalence je redundantní
  189. * vybírá se nejvhodnější reprezentant skupiny (nejv. pravděpodobnost odhalení chyby)
  190.  
  191. testovací techniky
  192. * definují, které testy jsou zajímavé
  193. * př. user, risk-based
  194. * function testing - izolované testování každé funkce
  195. * specification-based testing - test software proti každému tvrzení v docs
  196. * risk based testing - problémy hledat u věcí dělaných na poslední chvíli, nových a komplexních funkcí, nejasnostech, ...
  197. * scenario testing - jede se podle scénáře, jak by uživatel mohl používat program
  198. * user testing - testy dělají samotný uživatelé
  199.  
  200. požadavky na testy
  201. * pomoct učinit ship/no-ship rozhodnutí
  202. * najít důležité bugy
  203. * ověřit interoperabilitu s jinými produkty
  204. * minimalizovat náklady na technickou podporu
  205. * změřit kvalitu
  206.  
  207. kdy testovat
  208. * příliš brzo -> zbytečná ztráta času, nestabilní software
  209. * příliš pozdě -> deadliny, odfláknutí testů
  210.  
  211. bugtracking
  212. * evidence všech issues
  213. * tickety musí obsahovat info, jak issue nasimulovat
  214.  
  215. rozsah testování
  216. * výsledky - našli jsem X chyb
  217. * produkt - otestovali jsme Y% řádků kódu
  218. * kvalita testování - beta testeři našli Z chyb, failujou nám regresní testy
  219. * projektová historie - v této fázi máme otevřeno W issues, u minulého projektu to bylo podobně
  220. * nejlepší je kombinace více metrik
  221.  
  222. automatické testování
  223. * stejná data, stejný test lze spustit na více konfiguracích
  224. * mají smysl typicky v budoucnu (ROI)
  225. * užití u CI, konfiguračních testů, přípravě testovacího prostředí
  226.  
  227. **6**
  228.  
  229. dokumentace
  230. * abychom něco nezapomněli
  231. * komunikační prostředek
  232. * zdroj do budoucna, pro uživatele a administrátory, údržbu
  233. * dokumenty procesu - popis procesu vývoje a údržby SW (plány, odhady, reporty)
  234. * dokumenty produktu
  235. * uživatelská dokumentace - seznam funkcí, screenshoty (za ručičku), pro adminy i BFU
  236. * systémová dokumentace - requirements, architektura, reporty z testů, known bugs, závislosti
  237. * je nutné ji udržovat konzistentní
  238.  
  239. quality assurance
  240. * množina aktivit, cílem je zajistit kvalitu produktu systematickým a věrohodným způsobem
  241. * uvažujeme na všech úrovních, od organizace až po jednotlivce
  242. * testování
  243. * statické vs dynamické
  244. * přezkoumání
  245. * projektu, kódu, nabídky
  246.  
  247. kvalita
  248. * mít spokojeného zákazníka
  249.  
  250. **7**
  251.  
  252. softwarový produkt
  253. * úplný soubor počítačových programů, dokumentace a dat, určený pro dodání uživateli
  254.  
  255. softwarová položka
  256. * jakákoliv identifikovatelná položka sw produktu
  257.  
  258. konfigurační řízení
  259. * zajištění plného řízení konfigurace sw produktu a související dokumentace v průběhu lifecycle
  260. * cíl - zajistit řád a pořádek v konfiguraci sw produktu
  261. * evidence všech částí sw produktu
  262. * identifikace všech částí sw produktu i celku
  263. * provádění změn nad sw produktem daný sw nepoškodí
  264. * možnost získat přehled o stavu konfigurace
  265.  
  266. plán konfiguračního řízení
  267. * introduction - účel, rozsah, způsob a podmínky použití
  268. * SCM (sw config. management) management - organizace, odpovědnosti, autority, politiky, procedury
  269. * SCM activities - řízení verzí a změn
  270. * SCM schedules - koordinace s dalšími projektovými aktivitami
  271. * SCM resources - nástroje, způsob použití, hardware a lidské zdroje (HR)
  272. * SCMP (plan) maintenance
  273.  
  274. změnové řízení
  275. * řízení rozsahu nad rámec původně domluveného rozsahu
  276.  
  277. version control
  278. * umožňuje práci na více verzích současně a ve více lidech
  279. * návrat k předešlé verzi
  280. * centrální VCS
  281. * centralizované repo, lokální kopie
  282. * všechno jde do master branch
  283. * důraz na synchronizaci, tracking, zálohování
  284. * distribuovaný VCS
  285. * každý má své vlastní repo
  286. * důraz je kladen na sdílení změn
  287.  
  288. patch
  289. * oprava buildu
  290. * branch, oprava, merge do masteru
  291.  
  292. **8**
  293.  
  294. nutné dovednosti
  295. * vyrobit a nainstalovat dodávku
  296. * připravit ji pro instalaci zákazníkem
  297. * dodat systém jako celek
  298. * dokázat rychle a levně opravit drobnost
  299. * poradit si s různými typy prostředí (db server, os,...)
  300.  
  301. **9**
  302.  
  303. maintenance
  304. * typy
  305. * corrective - oprava nalezené chyby
  306. * preventive - prava latentních chyby
  307. * adaptive - příspůsobení měnícímu se prostředí
  308. * perfective - zvyšování výkonu, udržovatelnosti
  309. * nutno respektovat architekturu, nezavádět nové koncepty!
  310. * problém s obměnou dev týmu, závislost na konkrétních osobách, knowhow
  311. * měla by být efektivní a předvídatelná
  312.  
  313. miniwaterfall
  314. * typický lifecycle u údržby
  315. * požadavek - identifikace - analýza - design - implementace - systémové testy - akceptační testy - deployment
  316.  
  317. vývojové prostředí
  318. * mělo by se podobat produkci
  319. * CI / smoke testing (zběžný test kontrolující základní funkcionalitu, zda je sw připraven na další testy [aka jestli nehoří :)])
  320. * v produkci se opravují kritické chyby, všechno ostatní jde mimo a pak prochází akceptací
  321.  
  322. **10**
  323.  
  324. komunikace se zákazníkem
  325. * ukazovat stav
  326. * sdělovat rizika
  327. * řešit sporné části
  328.  
  329. projekťák
  330. * musí umět vytvořit a udržovat plán s výhledem do budoucna
  331. * musí mít jasno (a měřit)
  332. * termíny
  333. * závazky (first-party i third-party)
  334. * rizika
  335. * současný stav řešení
  336. * musí umět efektivně rozdělovat práci (aby lidi věděli co dělat)
  337. * musí často komunikovat se zákazníkem ohledně stavu
  338. * interní reporting (technický i cashflow)
  339. * zodpovědnosti
  340. * scope projektu
  341. * time management
  342. * effort (team)
  343. * quality (chyby v kódu, refactoring obfuskací)
  344.  
  345. **11**
  346.  
  347. odhady
  348. * je nutné provést dekompozici projektu
  349. * dle počtu řádků
  350. * dle GUI obrazovek
  351. * dle use cases
  352. * dle požadavků
  353. * dle změnových řízení
  354. * alternativa: dle předešlého projektu
  355.  
  356. historie projektu
  357. * jedná se zejména o investici do budoucna - schopnost odhadovat
  358. * manhours, kalendářní čas, velikost týmu
  359. * pracnost jednotlivých typů činností
  360. * počty (obrazovky, tabulky)
  361. * charakteristika systému
  362. * problémy, rizika
  363. * vše dalšího co se může časem hodit
  364.  
  365. měřící metriky
  366. * time - kalendářní čas
  367. * size - rozsah
  368. * effort - pracnost
  369. * quality - jakost
  370. * vhodné pro historii projektu (časové odhady, tvorba nabídky)
  371.  
  372. **12**
  373.  
  374. softwarový process
  375. * množina aktivit potřebých k vývoji software
  376. * obsahuje
  377. * specifikace - co bude systém dělat
  378. * architektura - z jakých kostek bude postaven
  379. * implementace
  380. * validace - ověření jestli dělá to co má
  381. * další rozvoj - dodatečná úprava systému
  382. * plan-driven (plánování hodně dopředu)
  383. * agilní (plánování po malých částech, snadná změna kurzu)
  384.  
  385. model sw procesu
  386. * popis procesu z určité perspektivy
  387. * waterfall
  388. * oddělené fáze
  389. * req analysis - design - coding - testing - maintenance
  390. * + predikovatelný (vím kdy co dostanu), jasný plán, snadná koordinace, prostor pro QA, docs
  391. * - nutno mít vše rozvrhnuto už na začátku, pomalé reakce a dodávka
  392. * iterativní
  393. * několik verzí systému
  394. * jednotlivé verze se dělají waterfallem
  395. * + prototypy, rychlejší reakce na změny (zbytek stejný jako u vodopádu +/-)
  396. * - docs nutné udržovat u každé verze zvlášť
  397. * scrum / agile
  398. * kašle na dokumentaci (jede příliš rychle), agilně reaguje na změny
  399. * náklady na změny nízké
  400. * - vím co dostanu jenom v rámci sprintu (krátké období)
  401. * - riziko zanesení problému v každém sprintu
  402. * - riziko nekvalitní práce (není prostor na QA)
  403. * - zákazník se musí podílet na projektu po celou dobu
  404. * - nejsou známy dopředu požadavky
  405.  
  406. co použít
  407. * na velké systémy - iterativní
  408. * na malé systémy, housebreeding, popř. části projektu - agilní
  409. * agilní není synonymum pro chaos!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement