Zajęcia, rok akademicki 2019/2020, semestr 2
Projektowanie obiektowe oprogramowania
Uwaga! W związku z sytuacją epidemiczną, zajęcia będą kontynuowane w formie zdalnej
Wykład skierowany jest do przyszłych architektów i projektantów systemów
informatycznych oraz do wszystkich programistów zainteresowanych
udoskonaleniem swojego warsztatu. Celem wykładu jest zapoznanie
studentów z kanonem współczesnych narzędzi w zakresie projektowania
obiektowego oprogramowania.
Materiał wykładu obejmuje:
- język UML w zakresie wymaganym przez projekty analityczne
i techniczne
- przegląd katalogu refaktoryzacji
- przegląd katalogu wzorców projektowych (GoF) (m.in. Observer,
Builder, Bridge, State, Strategy, Facade, Adapter, Mediator, itd.)
- przegląd katalogu wzorców aplikacyjnych
(m.in. Event Aggregator, Model-View-Controller, Model-View-Presenter, Object-Relational Mapping, Dependency Injection, Mock Object)
- przegląd katalogu wzorców architektonicznych
(m.in. Single Sign-on, SOA, Enterprise Service Bus, Command-Query Responsibility Separation)
Celem pracowni jest praktyczny kontakt z materiałem z wykładu.
Wymagania
Wymagany ukończony kurs języka Java lub C# - wszystkie przykłady będą bazowały na języku C#,
a większość zadań studenci będą rozwiązywali w językach C# lub Java (do wyboru).
Organizacja pracy
Podczas wykładu omawiane są kolejne zagadnienia według programu. Podczas ćwiczeń studenci zgłaszają gotowość do
zaprezentowania rozwiązań wybranych przez siebie zadań, wypełniając wcześniej standardowe paski deklaracji.
Prowadzący sprawdza indywidualnie (lub grupowo dla niektórych zadań, według uznania prowadzącego) rozwiązania wybranych zadań. Obecność na ćwiczeniach jest w związku z tym nieobowiązkowa.
Podstawą zaliczenia jest liczba zgromadzonych punktów.
5.0 | >= 80% |
4.0 | >= 60% |
3.0 | >= 40% |
2.0 | < 40% |
Egzamin
Rankingi cząstkowe (grupa WZY)
Odnośniki do wykładów
- Wykład 1 2020-03-03 Wprowadzenie do projektowania obiektowego
- Wykład 2 2020-03-10 Język UML
Laboratoria
Data ogłoszenia |
Data ważności |
Zestaw zadań |
2020-03-03 |
2020-03-17 |
Zestaw 1 |
2020-03-10 |
2020-03-24 |
Zestaw 2 |
Wykłady
- 2020-03-03, Wprowadzenie do projektowania obiektowego
- Omówienie programu wykładu
- Analiza obiektowa - Unified Process
- Zbieranie wymagań: FURPS+, S.M.A.R.T.
- Przypadki użycia - notacja skrócona, pełna
- Model pojęciowy, techniki tworzenia ("lista kategorii", "metoda fraz rzeczownikowych")
Notatki do wykładu 1
Zestaw 1 (do 2020-03-17)
- 2020-03-10, Język UML
- Diagramy klas
- Diagramy modeli pojęciowych
- Diagramy obiektów (klas)
- Diagramy implementacyjne (struktur relacyjnych)
- Diagramy obiektów
- Diagramy komponentów
- Diagramy sekwencji
- Diagramy czynności
- Diagramy stanów
- Zwięzła ściągawka
Notatki do wykładu 2
Zestaw 2 (do 2020-03-24)
Literatura podstawowa
- Wrycza, Marcinkowski, Wyrzykowski - Język UML 2.0 w modelowaniu systemów informatycznych
- Fowler - Refactoring: Improving the Design of Existing Code
- Gamma, Helm, Johnson, Vlissides: Design Patterns: Elements of Reusable Object-Oriented Software
- B.Martin, M.Martin. Programowanie zwinne: zasady, wzorce i praktyki zwinnego wytwarzania oprogramowania w C#.
- Larman - UML i wzorce projektowe. Analiza i projektowanie obiektowe oraz iteracyjny model wytwarzania aplikacji
- Fowler - Patterns of Enterprise Application Architecture
- Microsoft Patterns & Practices - Application Architecture Guide
Literatura uzupełniająca
- Seeman - Dependency Injection in .NET
- Hohpe, Wolf - Enterprise Integration Patterns
- Betts, Dominguez et al. - Exploring CQRS and Event Sourcing