Tvorba software

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(Návrh: Podrobnější popis)
(Kompletní přepracování - fáze 1)
Řádka 1: Řádka 1:
 
[[Category:VSE]][[Category:Informatika]][[Category:Programování]][[Category:Softwarové inženýrství]]
 
[[Category:VSE]][[Category:Informatika]][[Category:Programování]][[Category:Softwarové inženýrství]]
 
+
<!--
== Softwarové inženýrství ==
+
*Vědecká disciplína, zabývá se metodikou a postupy efektivní práce a spolupráce v týmu při tvorbě SW.
+
 
+
 
+
 
== Tvorba SW zahrnuje postupy ==
 
== Tvorba SW zahrnuje postupy ==
 
; Analýza
 
; Analýza
Řádka 26: Řádka 22:
  
 
Viz také: [[Algoritmus]].
 
Viz také: [[Algoritmus]].
 +
-->
  
== Profese ==
 
*Informatik
 
**vědec
 
**zabývá se algoritmy (například: řadícími algoritmy,...)
 
**převody algoritmů, vztahy mezi nimi
 
**složitost algoritmů,...
 
*Softwarový inženýr (vývojář) ~ analytik
 
** Provádí analýzu úlohy.
 
** Komunikuje se zákazníkem.
 
** Řídí spolupráci v týmu
 
*Kodér ~ programátor
 
**aplikuje obecné algoritmy na konkrétní úlohu
 
**zapisuje v programovacím jazyce
 
*Tester
 
** Po '''celou''' dobu projektu ověřuje správnost vytvořených materiálů.
 
  
 
== Fáze projektu ==
 
== Fáze projektu ==
=== Formulace zadání ===
+
 
*vyřešte, které úlohy máte řešit
+
=== Formulace slovního zadání ===
 +
* Slovní formulace toho, co se má vyřešit.
 +
* Rozsah několika vět až odstavců.
 +
* Z&nbsp;tohoto popisu vychází analýza, zadání se při ní dále zpřesňuje.
 +
* Formuluje zákazník nebo jiný zadavatel.
 +
 
 
=== Analýza ===
 
=== Analýza ===
*Charakteristika:
+
; Charakteristika:
**Vědní disciplína: Softwarové inženýrství
+
* Vědní disciplína: Softwarové inženýrství
**Profese: analytik + tester
+
* Profese: analytik + tester
**Výsledek: zadání
+
* Výsledek: formalizované zadání (teoreticky ideálně až formální popis [[Algoritmus#Problém|problému]])
*Jaká data potřebujeme?
+
; Řešíme:
*Co s nimi provádíme?
+
* Jaká data potřebujeme?
*řešíme věci a akce z reálného světa
+
* Jaké operace nad daty provádíme?
**tomu odpovídá i terminologie
+
* Které skupiny (typy) uživatelů budou se systémem interagovat?
 +
* Jaké výstupy budeme po systému požadovat?
 +
* S&nbsp;jakými dalšími systémy má náš systém spolupracovat?
 +
; Testujeme:
 +
* Soulad se slovním zadáním.
 +
* Pokrytí všech funkcí slovního zadání.
 +
* Soulad jednotlivých částí:
 +
** Nejsou v&nbsp;datech položky, se kterými nepracuje žádná operace?
 +
** Mají všechny operace potřebná data v&nbsp;datech?
 +
** Odpovídá popis operací charakteru zpracovávaných dat (datový slovník)?
 +
** Odpovídá popis dat formátu, v&nbsp;jakém nám budou navazující systémy poskytovat data?
 +
<div class="Poznamka">
 +
V&nbsp;rámci analýzy řešíme věci a akce z reálného světa, tomu odpovídá i terminologie. Minimálně používáme specializované pojmy ze světa IT, výstupům by měl rozumět i zákazník.
 +
</div>
 +
<div class="Varovani">
 +
Zatím se '''NE'''bavíme o:
 +
* softwarovém či hardwarovém způsobu řešení,
 +
* algoritmech,
 +
* způsobu ukládání dat,...
 +
</div>
 +
 
 
=== Návrh ===
 
=== Návrh ===
 
*Charakteristika:
 
*Charakteristika:
Řádka 63: Řádka 70:
 
** Jak rozdělit jednotlivé části řešení mezi třídy a metody (strukturu tříd, přiřazení atributů a metod). Které entity reálného světa budou popsány samostatnými třídami, které budou figurovat jako atributy jiných tříd.
 
** Jak rozdělit jednotlivé části řešení mezi třídy a metody (strukturu tříd, přiřazení atributů a metod). Které entity reálného světa budou popsány samostatnými třídami, které budou figurovat jako atributy jiných tříd.
 
** Dále jaké pomocné třídy je potřeba zavést pro realizaci programu (okna, tlačítka, posluchače,...).
 
** Dále jaké pomocné třídy je potřeba zavést pro realizaci programu (okna, tlačítka, posluchače,...).
** Algoritmus, který budeme řešit úkoly jednotlivých metod.
+
** [[Algoritmus]] (obecný postup) řešení jednotlivých dílčích úkolů.
 
* Podle typu úlohy převládá svou složitostí buď:
 
* Podle typu úlohy převládá svou složitostí buď:
 
** Návrh struktury &mdash; skladové systémy, evidence zaměstnanců apod., kde algoritmy bývají poměrně triviální a je hlavně třeba správně postihnout požadované chování a vztahy mezi entitami.
 
** Návrh struktury &mdash; skladové systémy, evidence zaměstnanců apod., kde algoritmy bývají poměrně triviální a je hlavně třeba správně postihnout požadované chování a vztahy mezi entitami.
Řádka 81: Řádka 88:
 
*úpravy
 
*úpravy
 
=== Vyřazení z provozu ===
 
=== Vyřazení z provozu ===
 +
 +
 +
== Profese ==
 +
*Informatik
 +
**vědec
 +
**zabývá se algoritmy (například: řadícími algoritmy,...)
 +
**převody algoritmů, vztahy mezi nimi
 +
**složitost algoritmů,...
 +
*Softwarový inženýr (vývojář) ~ analytik
 +
** Provádí analýzu úlohy.
 +
** Komunikuje se zákazníkem.
 +
** Řídí spolupráci v týmu
 +
*Kodér ~ programátor
 +
**aplikuje obecné algoritmy na konkrétní úlohu
 +
**zapisuje v programovacím jazyce
 +
*Tester
 +
** Po '''celou''' dobu projektu ověřuje správnost vytvořených materiálů.
  
  
Řádka 88: Řádka 112:
 
*Psát spoustu klíčových slov je triviální a zdržuje.
 
*Psát spoustu klíčových slov je triviální a zdržuje.
 
*V počátcích zdržuje i klikání v ArgoUML či jiném modeláři.
 
*V počátcích zdržuje i klikání v ArgoUML či jiném modeláři.
 +
  
 
== Pojmy ==
 
== Pojmy ==
Řádka 98: Řádka 123:
 
**jaké nástroje použít
 
**jaké nástroje použít
 
**jaké produkty vyrobit
 
**jaké produkty vyrobit
 +
* Softwarové inženýrství
 +
** Vědecká disciplína, zabývá se metodikou a postupy efektivní práce a spolupráce v týmu při tvorbě SW.
 +
** Zahrnuje i návrh grafického rozhraní a jeho zákonitosti.

Verze z 19. 10. 2015, 10:10


Obsah

Fáze projektu

Formulace slovního zadání

Analýza

Charakteristika
Řešíme
Testujeme

V rámci analýzy řešíme věci a akce z reálného světa, tomu odpovídá i terminologie. Minimálně používáme specializované pojmy ze světa IT, výstupům by měl rozumět i zákazník.

Zatím se NEbavíme o:

  • softwarovém či hardwarovém způsobu řešení,
  • algoritmech,
  • způsobu ukládání dat,...

Návrh

Implementace

Nasazení

Údržba

Vyřazení z provozu

Profese


Proč začínat na papíře/obrázku?


Pojmy

Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje