1. týždeň

Úvod

Ciele

  1. Zistiť čo je to softvérové inžinierstvo.
  2. Dozvedieť sa obsah cvičení a podmienky získania zápočtu.

Postup

Krok 1: Softvérové inžinierstvo

Vývoj softvéru sa neskladá len zo samotného programovania. Je to zložitý proces, ktorého sa zvyčajne zúčastňuje viacero ľudí. Na tomto predmete sa budeme venovať práve tým častiam procesu vývoja, ktoré obklopujú písanie kódu.

  1. Systémy pre správu verzií. Zdrojový kód a iné súbory, ktoré sú súčasťou softvérového projektu sa nevytvárajú dokonalé hneď na prvý pokus. Musia sa stále meniť počas procesu vývoja, ale aj neskôr, aby sa prispôsobili meniacim sa požiadavkám a okoliu. Je dôležité mať vždy možnosť vrátiť sa k niektorej staršej verzií a tiež synchronizovať zmeny medzi viacerými vývojármi. Na to slúžia systémy pre správu verzií ako je napríklad Git, ktorému sa budeme venovať najbližšie týždne.
  2. Testovanie softvéru. Vytváraný softvér je potrebné testovať, teda vyskúšať či robí to čo má. Robiť to len ručne je zdĺhavé, zložité. Pritom testovať program sa oplatí po každej zmene, lebo aj napriek snahe programátora sa môže stať, že pri zmene alebo doplnení jednej funkcie pokazí nejakú inú. Preto testy musia byť automatizované, aby v ľubovoľný moment bolo možné ich spustiť a overiť, či sa niečo nepokazilo. To, ako vytvárať takéto automatizované testy, si ukážeme na 4. cvičení.
  3. Prípady použitia a modelovanie systému. Cieľom softvérového projektu v konečnom dôsledku nie je samotný softvér, ale uspokojenie potrieb zákazníka alebo používateľa, vyriešenie jeho problému. Z tohto dôvodu je dôležité hlavne pochopiť tieto potreby a problémy, ktoré sa musia riešiť. Až potom je možne navrhnúť riešenie, ktoré skutočne prinesie úžitok používateľovi. Tomu je potrebné sa venovať ešte pred tým ako sa začne programovať, lebo inak nebudeme vedieť čo programovať. My sa budeme tejto téme venovať na cvičeniach 5 až 8.
  4. Inšpekcia kódu. Automatické testy nezachytia všetko, a preto je potrebné, aby kľúčové časti kódu skontroloval iný programátor. Tento proces sa zvykne nazývať „code review“. Aj napriek všetkým týmto opatreniam program pravdepodobne aj tak bude obsahovať chyby. Informácie o nájdených problémoch a sa musia zaznamenávať a na to slúžia špeciálne nástroje (issue tracking systems). Týmto témam sa budeme venovať od 10. cvičenia.

Krok 2: Zadania a hodnotenie

Úloha 2.1

Krok 3: Domáca úloha

Úloha 3.1

Prečítajte si článok opisujúci rozdiel medzi programovaním a softvérovým inžinierstvom

Úloha 3.2

Preštudujte si články venované použitiu základných Unixových nástrojov:

Využitie nástrojov príkazového riadku je dôležitou časťou práce programátora. Najprepracovanejšie prostredie pre prácu s príkazovým riadkom poskytujú operačné systémy založené na Unix (napr. GNU/Linux, FreeBSD, macOS). Zároveň práve na týchto systémoch pracuje väčšina serverových aplikácií. Preto je nevyhnutné zvládnuť základy práce so systémom Unix.

Úloha 3.3

Pokiaľ je to možné, doneste na budúce cvičenie vlastné notebooky s nainštalovaným systémom Git. Pre operačný systém Windows odporúčame použiť Cmder v úplnej (full) verzií, ktorý v sebe obsahuje Git for Windows a základné unixové príkazy.