Opis
Celem przedmiotu jest poznanie dobrych praktyk projektowania obiektowego z wykorzystaniem wzorców projektowych oraz zasad SOLID. Oprócz tradycyjnego modelu obiektowości opartej o klasy, omówiona zostanie także obiektowość bezklasowa na przykładzie JavaScript. Dodatkowo studenci dowiedzą się o zagadnieniach przecinających, trudnościach implementacji takich zagadnień w językach obiektowych i sposobie radzenia sobie z nimi przy wykorzystaniu paradygmatu aspektowego. Ostatni moduł wykładu omawia przetwarzanie rozproszone z wykorzystaniem Java RMI, MapReduce oraz Storm.
Wykład
Część wykładowa obejmuje następujące zagadnienia:
- Podstawowe zasady paradygmatu obiektowego – 2h
- Obiektowa analiza i projektowanie – 1h
- Wzorce projektowe – 3h
- Obiektowość bazująca na prototypach – 1h
- Paradygmat aspektowy – 3h
- Test-Driven Development – 1h
- Przetwarzanie rozproszone – 2h
- Chmury obliczeniowe – 2h
Laboratorium
Laboratorium ma charakter programistyczny. W trakcie laboratoriów studenci są zachęcani do praktykowania programowania w parach. Studenci otrzymują 1 punkt za każde pomyślnie ukończone laboratoria, które obejmują następujące zagadnienia:
- Wzorce projektowe – 4h
- Programowania aspektowe w AspectJ – 2h
- Java RMI – 2h
- JavaScript i obiektowość bezklasowa– 2h
- Apache Hadoop – 3h
- Apache Storm – 2h
Do każdego modułu przypisane są dodatkowo zadania domowe za które studenci zdobywają punkty.
Projekt
Projekt koncentruje się głównie na tworzeniu modeli w notacji UML.