-
Notifications
You must be signed in to change notification settings - Fork 9
/
01-software-process.tex
287 lines (255 loc) · 10.1 KB
/
01-software-process.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
\section{Softwarový proces}
\begin{description}
\item[Softwarový proces] Aktivity, které je potřeba uskutečnit k tomu, aby software vznikl.
Jedná se o jejich souslednost a opakování, o vstupy a výstupy jednotlivých aktivit a jejich nároky.
\item[Model životního cyklu SW] Viz. Softwarový proces.
\item[Software process improvement] Ladění a vylepšování procesu softwaru.
\end{description}
\subsection{Nutné aktivity}
\begin{itemize}
\item Specifikace - co bude systém dělat.
\item Architektura a design - z jakých částí se systém bude skládat.
\item Implementace - vlastní provedení systému.
\item Validace - otestování systému.
\item Další rozvoj - úpravy systému na základě měnících se požadavků.
\end{itemize}
\subsection{Model životního cyklu - SDLC}
\begin{enumerate}
\item Analýza požadavků
\item Specifikace požadavků
\item Vývoj software
\item Integrace a nasazení
\item Provoz a údržba
\item Zhodnocení výkonnosti
\end{enumerate}
\subsection{Modely vývoje}
\subsubsection{Vývoj dle plánu}
\begin{itemize}
\item Aktivity jsou plánovány dopředu.
\item Pokrok je měřen porovnáním stavu a plánu.
\item Větší režie v případě změn.
\end{itemize}
\textbf{Waterfall}
\begin{itemize}
\item Oddělené fáze
\begin{itemize}
\item Analýza požadavků
\item Design
\item Implementace
\item Testování
\item Provoz a údržba
\end{itemize}
\item Výhody
\begin{itemize}
\item Jasně definovaný plán
\item Predikovatelnost (čas, rozsah, cena)
\item Snadná koordinace práce
\end{itemize}
\item Nevýhody
\begin{itemize}
\item Nutné pochopení požadavů už na začátku
\item Reakce na změny
\item Rychlost dodávky
\end{itemize}
\item Spolupráce se zákazníkem
\begin{itemize}
\item V přesně definovaných okamžicích
\item Lze dop
\end{itemize}
\end{itemize}
\textbf{Iterativní vývoj}
\begin{itemize}
\item Oproti vodopádu:
\begin{itemize}
\item Několik verzí systému
\item Jednotlivé verze se dělají vodopádem
\end{itemize}
\item Výhody
\begin{itemize}
\item Jasně definovaný plán
\item Predikovatelnost
\item Snadná koordinace
\item Zákazník má přístup k verzím/prototypům
\end{itemize}
\item Nevýhody
\begin{itemize}
\item Je nutné chápat co klient chce již na začátku
\end{itemize}
\end{itemize}
\textbf{Spirálový model}
Iterace dělena na 4 kvadranty:
\begin{itemize}
\item plánování,
\item odhad rizik,
\item inženýrství,
\item hodnocení.
\end{itemize}
\subsubsection{MDA - Model Driven Architecture}
\begin{itemize}
\item Využívá UML
\item Model nezávislý na počítačovém zpracování (CIM)
\item Model nezávislý na platformě (PIM)
\item Model specifický pro platformu (PSM)
\item Zdrojový kód aplikace (Implementace)
\end{itemize}
\subsubsection{Agilní vývoj}
\begin{itemize}
\item Plánování je jen po malých částech.
\item Snadné změny směru v případě změny požadavků.
\end{itemize}
\subsection{Různé pohledy na modely vývoje}
\subsubsection{Flexibilita}
\begin{description}
\item[Flexibilita] Reakce na změny. Určuje rychlost a finanční náklady na provedené změny.
\end{description}
\begin{itemize}
\item Vodopád
\begin{itemize}
\item Nepružný
\item Vysoké náklady
\end{itemize}
\item Iterativní
\begin{itemize}
\item Lze zakomponovat změny do další iterace
\item Náklady nižší než u vodopádu
\end{itemize}
\item Agilní
\begin{itemize}
\item Snadné změny, jsou očekávané
\item Náklady velmi nízké
\end{itemize}
\end{itemize}
\subsubsection{Predikovatelnost}
\begin{description}
\item[Predikovatelnost] Dopředu známá cena a datum dokončení.
\end{description}
\begin{itemize}
\item Vodopád
\begin{itemize}
\item Velmi dobře předvídatelný, vývoj podle plánu
\end{itemize}
\item Iterativní
\begin{itemize}
\item Době předvídatelný, vývoj podle plánu
\end{itemize}
\item Agilní
\begin{itemize}
\item Těžko předvídatelný, plán jen na krátké období
\end{itemize}
\end{itemize}
\subsubsection{Architektura a design}
\begin{description}
\item[Architektura a design] Správnost navržení systému, dodržování principů návrhu.
\end{description}
\begin{itemize}
\item Vodopád
\begin{itemize}
\item Velmi dobrá architektura
\end{itemize}
\item Iterativní
\begin{itemize}
\item Velmi dobrá architektura
\item Možnost zanesení chyb v dalších iteracích
\end{itemize}
\item Agilní
\begin{itemize}
\item Často špatná architektura
\item Riziko zanesení problému v každé iteraci
\end{itemize}
\end{itemize}
\subsubsection{Implementace}
\begin{description}
\item[Prostor pro dodání kvalitního díla. Požadavky na programátory.]
\item[Quality assurance] Zkráceně QA, týká se obecně všech procesů od návrhu po dokumentaci.
Cílem je ujistit se, že je produkt vytvářen s odpovídající kvalitou.
\end{description}
\begin{itemize}
\item Vodopád
\begin{itemize}
\item Kvalitní, hodně prostoru pro QA
\item Dodržují se coding standards, časté revize
\end{itemize}
\item Iterativní
\begin{itemize}
\item Dostatek prostoru pro QA
\item Revize, coding standards
\item Riziko zanesení problému v dalších iteracích
\end{itemize}
\item Agilní
\begin{itemize}
\item Nutný kvalitní tým
\item Riziko nekvalitní práce, pokud není čas na revize
\end{itemize}
\end{itemize}
\subsubsection{Dokumentace}
\begin{description}
\item[Dokumentace] Dokument s informacemi o implementaci a nasazení systému.
\end{description}
\begin{itemize}
\item Vodopád
\begin{itemize}
\item Kvalitní dokumentace
\end{itemize}
\item Iterativní
\begin{itemize}
\item Nutno dodržet napříč verzemi
\end{itemize}
\item Agilní
\begin{itemize}
\item Často nekvalitní
\item Obtížné udržet napříč sprinty
\end{itemize}
\end{itemize}
\subsubsection{Spolupráce se zákazníkem}
\begin{description}
\item[Součinnost zákazníka] Jak moc a často se musí zákazník podílet na projektu.
\end{description}
\begin{itemize}
\item Vodopád a Iterativní vývoj
\begin{itemize}
\item V přesně definovaných okamžicích
\item Lze dobře plánovat
\end{itemize}
\item Agilní
\begin{itemize}
\item Nutné v průběhu celého projektu
\item Riziko selhání, pokud spolupráce není dobrá
\end{itemize}
\end{itemize}
\subsubsection{Smlouva na dodávku}
\begin{description}
\item[Smliuva na dodávku] Určuje jestli bude dílo dodáno za fixní cenu ve stanovený čas.
\end{description}
\begin{itemize}
\item Vodopád
\begin{itemize}
\item Ano
\end{itemize}
\item Iterativní
\begin{itemize}
\item Ano, ošetřuje se rozsah verzí
\end{itemize}
\item Agilní
\begin{itemize}
\item Ne, požadavky nejsou známy dopředu
\item Aktuální modely nákupu tomu nejsou nakloněny
\end{itemize}
\end{itemize}
\subsection{Fáze projektu}
\subsubsection{Primární činnosti}
Tvoří hodnoty produktu.
\begin{itemize}
\item Modelování business modelu zákazníka
\item Sběr požadavků
\item Analýza a design
\item Implementace
\item Testování
\item Nasazení
\end{itemize}
\subsubsection{Podpůrné činnosti}
Tvoří se stále po dobu běhu projektu. Zaobalují primární činnosti.
\begin{itemize}
\item Změnové a konfigurační řízení
\item Projektové řízení
\item Správa prostředí
\end{itemize}