Jacek Matulewski
Inżynieria oprogramowania

Zajęcia mają charakter konwersatorium, na którym studenci kolejno przedstawiają referaty dotyczace języka projektowania UML, wzorców projektowych, metodyk wytwarzania i testowania oprogramowania.

Zaliczenie zajęć: 1) wygłoszenie referatu, 2) kolokwium (ocena).

Referaty [txt]
Zadania [txt]
Kody źródłowe

Tematy referatów:

  1. Język UML
    1. UML w Visual Studio i StarUML
    2. Modelowanie wymagań. Diagramy przypadków użycia
    3. Diagramy aktywności (czynności i akcje, węzły decyzyjne, połączenia, zdarzenia, sygnały)
    4. Diagramy klas (widoczność, stan/atrybuty, operacje, części statyczne). Architektura systemu
    5. Związki między klasami. Ograniczenia. Klasy abstrakcyjne. Interfejsy. Szablony
    6. Diagramy obiektów
    7. Diagramy sekwencji (zdarzenia, sygnały, komunikaty), diagramy komunikacji i diagramy czasowe
    8. Diagramy komponentów. Architektura systemu
    9. Maszyna stanów i jej diagramy
    10. Diagramy pakietów. Porządkowanie architektury
    11. Generowanie kodu na podstawie UML. Studium przypadku
  2. Wzorce projektowe
    1. Referaty obejmujące jeden lub kilka wzorców z książki tzw. gangu czworga [3,4]
      • Wzorce konstrukcyjne: budowniczy (builder), fabryka (factory) i metoda wytwórcza, prototyp (prototype), signleton
      • Wzorce strukturalne: adapter, dekorator, fasada, kompozyt, most, pełnomocnik (proxy), pyłek (flyweight)
      • Wzorce operacyjne: interpreter, iterator, łańcuch zobowiązań, mediator, metoda szablonowa, obserwator, odwiedzający (visitor), pamiątka (memento), polecenie (command), stan, strategia
    2. Wzorce architektoniczne
      • Architektura warstwowa (dwu- i trójwarstowe)
      • Model-View-Controller (MVC), Model-View-Presenter (MVP) i Model-View-ViewModel (MVVM)
      • Program sterowany zdarzeniami (EDA, event-driven architecture)
      • Architektura zorientowana na usługi (SOA)
      • Modelowanie danych (data modelling), odwzorowanie obiektowo-relacyjne (ORM)
      • DDD Building Blocks: obiekt, struktura, procedura, funkcja (Artykuł Sławomira Sobótki)
  3. Metodyki wytwarzania i utrzymywania aplikacji.
    1. Cykl życia projektu informatycznego
    2. Modele "pisz i poprawiaj" oraz kaskadowy
    3. Modele zwinne i ekstremalne.
    4. SCRUM
    5. Narzędzia używane w SCRUM
    6. Domain-driven design (DDD) - angażowanie ekspertów spoza IT do projektowania systemu informatycznego
  4. Testowanie oprogramowania
    1. Testy jednostkowe (VS, NUnit)
    2. Testy funkcjonalne (czarnej skrzynki), integracyjne, systemowe
    3. Testy wydajnościowe i jakościowe


Minimalna lista zagadnień, które powinien znać każdy profesjonalny programista (wg. wujka Boba czyli Roberta C. Martina):


Linki:
Tutoriale UML
UML Quick Reference Guide (No Magic)
http://wazniak.mimuw.edu.pl/index.php?title=In%C5%BCynieria_oprogramowania
http://pl.wikipedia.org/wiki/In%C5%BCynieria_oprogramowania
UML w Visual Studio
Pluralsight - Jesse Liberty
Design Patterns Library With Examples
Materiały szkoleniowe dot. DDD firmy Bottega
Niraj Bhatt – Architect's Blog - MVC vs. MVP vs. MVVM

StarUML Pobieranie


Książki:

  1. Russ Miles, Kim Hamilton UML 2.0. Wprowadzenie, Helion 2007
  2. Stanisław Wrycza, UML 2.1. Ćwiczenia, Helion 2007
  3. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides Inynieria oprogramowania: Wzorce projektowe (Wyd. II) Warszawa: WNT, 2008
  4. Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides Wzorce projektowe. Elementy oprogramowania obiektowego wielokrotnego użytku, Helion 2010
  5. Martin Fowler Architektura systemów zarządzania przedsiębiorstwem. Wzorce projektowe, Helion 2005
  6. Microsoft Application Architecture Guide (2nd Edition), wersja papierowa i elektroniczna
  7. A.J. Shenhar, D. Dvir Nowe spojrzenie na zarządzanie projektami, APN Promise 2008
  8. Garofalo Raffaele Budowanie aplikacji biznesowych za pomocą Windows Presentation Foundation i wzorca Model View ViewModel, APN Promise 2011
  9. Josh Smith Advanced MVVM (darmowy pdf)
  10. Kenneth S. Rubin Scrum. Praktyczny przewodnik po najpopularniejszej metodyce Agile, Helion 2013


Referaty:

Prowadzący     Prezentacja (PDF/PPT)     Pliki     Data
UML:
Mateusz Lamparski UML w Visual Studio Diagram: Straż pożarna (VS) 28.02.2014, 7.03.2014
Łukasz Gorzel Diagramy klas Plik .uml 28.02.2014, 7.03.2014
Michał Telus Diagramy klas - związki między klasami Diagram klas (StarUML)
Diagram klas - zależności (StarUML)
Prezentacja powiązań klas (VS)
Sprostowanie
7.03.2014
Alina Suchomska Diagramy przypadków użycia
Diagramy aktywności
Diagram aktywności: Składanie podania o urlop (StarUML) 14.03.2014
Natalia Rybarczyk Diagramy komponentów. Architektura systemu Diagram w VS 21.03.2014
 
Wzorce projektowe:
Łukasz Kiełczykowski Wzorce operacyjne: strategia, metoda szablonowa Projekty VC++/VC# 21.03.2014
Szymon Licau Wzorce konstrukcyjne: singleton, budowniczy, metoda wytwórcza, fabryka abstrakcyjnaBrak prezentacji!!! Projekt VC++Brak kodów C#!!! 4.04.2014
Łukasz Demski Wzorce strukturalne: Adapter, fasada, dekorator, kompozyt, pełnomocnik, most Projekt VC++
Projekt VC++ (ŁD)
Kody Java (ŁD)
11-25.04.2014
Wojciech Szymecki Wzorce architektoniczne: architektura warstwowa, MVC, MVP 23.05.2014
Patryk Każmierkiewicz Testy jednostkowe Projekt VC#Brak kodów C++ 23.05.2014
 
Metodologie wytwarzania oprogramowania:
Łukasz Dzwonkowski Modele zwinne i ekstremalne wytwarzania oprogramowania 23.05.2014
Julia Zajda SCRUMNiedokończony referat - brak pokazu SCRUM 30.05.2014
Mateusz Tamborek, Mariusz Zych SOA (Service Oriented Architecture) 9.06.2014