Tvorba software
Z MiS
(Rozdíly mezi verzemi)
m (→Tvorba SW zahrnuje postupy: Doplněn odkaz na Algoritmus#Problém.) |
(→Návrh: Podrobnější popis) |
||
Řádka 58: | Řádka 58: | ||
*Charakteristika: | *Charakteristika: | ||
**Vědní disciplína: Softwarové inženýrství + Informatika | **Vědní disciplína: Softwarové inženýrství + Informatika | ||
− | **Profese: | + | **Profese: analytik + kodér + tester |
− | + | ||
− | + | ||
**Výsledek: Návrh struktury tříd + algoritmus | **Výsledek: Návrh struktury tříd + algoritmus | ||
− | *Řešíme třídy a metody | + | * Řešíme: |
− | + | ** 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. | |
− | **tlačítka | + | ** 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. |
− | + | * Podle typu úlohy převládá svou složitostí buď: | |
− | *Podle typu úlohy převládá | + | ** Návrh struktury — 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. |
+ | ** Algoritmizace — vědecké výpočty, úlohy hromadného zpracování dat, kde pracujeme často s jednoduchými daty bez vnitřní struktury, ale je třeba je zpracovat ve velkém množství efektivně. | ||
+ | |||
=== Implementace === | === Implementace === | ||
*Charakteristika: | *Charakteristika: |
Verze z 5. 9. 2014, 11:05
Obsah |
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
- Analýza
- Profese: analytik
- Vstup: slovní popis zadání; myšlenka, co je třeba udělat
- Výsledek: problém — formálně popsaný (matematicky přesný) popis zadání.
Slovní popis zadání formalizujeme tak, abychom získali problém. Vstupem je slovní zadání, výstupem je matematicky přesný popis problému.
- Algoritmizace
- Profese: typicky analytik + kodér (může být dále rozděleno)
- Vstup: Popis problému
- Výsledek: algoritmus (obecný postup řešení)
Návrh/nalezení algoritmu pro daný problém.
- Programování/kódování
- Profese: Kodér, tester
- Vstup: Popis algoritmu.
- Výsledek: Zdrojový kód.
Zápis algoritmu v konkrétním programovacím jazyce.
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
Formulace zadání
- vyřešte, které úlohy máte řešit
Analýza
- Charakteristika:
- Vědní disciplína: Softwarové inženýrství
- Profese: analytik + tester
- Výsledek: zadání
- Jaká data potřebujeme?
- Co s nimi provádíme?
- řešíme věci a akce z reálného světa
- tomu odpovídá i terminologie
Návrh
- Charakteristika:
- Vědní disciplína: Softwarové inženýrství + Informatika
- Profese: analytik + kodér + tester
- Výsledek: Návrh struktury tříd + algoritmus
- Řešíme:
- 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,...).
- Algoritmus, který budeme řešit úkoly jednotlivých metod.
- Podle typu úlohy převládá svou složitostí buď:
- Návrh struktury — 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.
- Algoritmizace — vědecké výpočty, úlohy hromadného zpracování dat, kde pracujeme často s jednoduchými daty bez vnitřní struktury, ale je třeba je zpracovat ve velkém množství efektivně.
Implementace
- Charakteristika:
- Vědní disciplína: Programování
- Profese: kodér + tester
- Výsledek: Zdrojový kód
- Píšeme kód, který realizuje algoritmus.
Nasazení
- Instalujeme u zákazníka.
- Zaškolíme obsluhu.
Údržba
- aktualizace
- úpravy
Vyřazení z provozu
Proč začínat na papíře/obrázku?
- Složité věci řešíme první!
- Vymyslet strukturu tříd je složité.
- 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.
Pojmy
- CASE
- Computer-Aided Software Engineering
- Programy pro podporu návrhu software
- metodika
- jaké pracovníky využít
- jaké činnosti vykonat
- jaké nástroje použít
- jaké produkty vyrobit