Princípy tvorby softvéru

Letný semester 2015/2016


Prednáčajúci: Robert Lukoťka (na hlavnú stránku), Jana Kostičová, Tomáš Kulich
Prednáška: štvrtok 13:10 F247, pondelok 18:10 F247 každý druhý týždeň
Konzultačné hodiny: po dohode mailom
Adresa: lukotka zavinac dcs.fmph.uniba.sk

Info: priebeh skúšky

Hodnotenie predmetu:

50% skúška
50% domáce úlohy:
DÚ 1
DÚ 2 = DÚ 1
DÚ 3
DÚ 4
DÚ 5 - do skúšky
Domáce úlohy z minulého roka

Program a materiály:

Dátum Téma Požiadavky na skúšku Materiály (*Kurzíva = doplňujúce materiály )
štv 18.2. Životný cyklus informačného systému
Procesy vývoja softvéru
Vodopádový vs. iteratívno inkrementálny model
Rozumieť týmto obrázkom:
Vodopád
Iteratívny vývoj 1, 2
Životný cyklus inf. systému
Procesy vývoja softvéru
RUP - Prehľad
štv 25.2. Trendy vo vývoji softweru 1:
    Triedy v Pythone
        (a JavaScripte a Ruby)
    Objekty sa prepoužívajú
Rozumieť ako fungujú triedy a volania metód v Pythone
Vedieť uviesť niejaké príklady, ako môže byť prílišná objektová-orientovanosť škodlivá
Pridávanie atribútov a funkcií do tried a objektov v Pythone (pokúsim sa zohnať niečo stručnejšie)
prednáška - Stop Writing Classes
pon 29.2. Požiadavky slajdy Inžinierstvo požiadaviek,
Požiadavky
štv 3.3. Trendy vo vývoji softweru 2:
    Funkcionálne programovanie
Pure funkcia
Výhody funkcionálneho programovania
Perzistentné datové štruktúry
Všetko potrebné na vypracovanie DÚ1
Pure funkcia
Purely functional programovanie
Pure datové typy v Pythone
*prednáška - Value Values
*prednáška - Are we there Yet
štv 10.3. Problémy I-I vývoja a črtajúce sa riešenia
Use casy, scenáre, user stories
UML 1
Vedieť nakresliť use case/class/object diagram
Silné stránky a slabiny UML
*Contracting Guidance - USA
Use case
Scenáre
UML
Use Case Diagramy
Class Diagram
Object Diagram
pon 14.3. Configuration management slajdy
štv 17.3. Dependency injection a testovanie Rozumieť týmto obrázkom
Dependency injection
Ako dependency injection pomáha pri testovaní
Čo sú to generátory a na čo môžu byť dobré
Úrovne testovania
* Ako písať testovateľný kód
Dependency injection
Ako nerobiť dependency injection
Generátory
* Python a list comprehension
štv 31.3. UML 2 Vedieť nakresliť activity/sequence diagram
Aspoň trochu vedieť nakresliť state/comunications diagram
Mať základný prehľad o typoch UML diagramov
Vedieť kombinovať diagramy/diagramy z textom aby to dokopy dávalo zmysel
Prehlad UML diagramov
Activity diagrams reference
Sequence diagrams reference
Príklady z prednášky
pon 11.4. Logovanie Vedieť ako zhruba funguje logovanie v Pythone Logovanie v Pythone - Tutorial
Logovanie v Pythone - Good practices
* Logging Cookbook
* Logovanie v knižniciach
štv 14.4. Analýza, dizajn, architektúra Hlavné disciplíny SE
Analýza a dizajn - čo to je a ako sa to tvorí
Čo je to architektúra systému a ako sa tvorí
Dizajnové princípy YAGNI, DRY, Rule of 3
SOLID, Inversion of control
Disciplíny SE
Analýza vs design
Softvérová architektúra
Architektonicky signifikantné požiadavky
* Architektonické štýly a patterny
YAGNI, DRY + WET, Rule of 3
SOLID + vysvetlenie a príklady
Composition over inheritance
Inversion of Control
pon 25.4. GIT Ovládať základnú prácu s GITom teoreticky aj prakticky Slajdy
štv 28.4. Analýza, design, architektúra 2 Mať základnú predstavu o:
Design patterny: Singleton, (Abstract) Factory, Object Pool,
Chain of Responsibility, Command, Iterator, Observer, Strategy,
Template Method, Null Object, Adapter, Composite, Decorator, Proxy
Synchronized, Lock, Semaphore, Blocking Queue, Double Checked Locking, Future. Thread Pool Executor, Promise
DesignPatterns
synchronized, Lock, Semaphore, BlockingQueue
Double Checked Singleton
Java multithreading best practices
Futures ThreadPoolExecutor Promises
štv 5.5. Software engineering management Active object, Reactor
Projektovy management, aktivity a ciele
Estimácie(problémy a metódy)
Active Object, Reaktor
Slajdy s linkami
pon 9.5. Implementácia a integrácia Conding conventions a continuous integration Osnova prednášky s linkami
štv 12.5. Agile Osnova prednášky s linkami Osnova prednášky s linkami
*prednáška - The Land that Scrum Forgot
pon 16.5 Dokumentacia, maintanence slajdy
štv 5 LEAN Osnova prednášky s linkami Osnova prednášky s linkami