Inżynieria oprogramowania (L)Programowanie i projektowanie obiektowe
Opis przedmiotu:
_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 (wzorców architektonicznych) (m.in. Event Aggregator, Model-View-Controller, Object-Relational Mapping, Dependency Injection, Service Locator, Enterprise Service Bus, Single Sign-on, Mock Object, itd.)
* jakośc oprogramowania: testowanie, metryki
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śc zadań studenci będą rozwiązywali w języku C#.
### Literatura
1. Wrycza, Marcinkowski, Wyrzykowski - Język UML 2.0 w modelowaniu systemów informatycznych
2. Fowler - Refactoring: Improving the Design of Existing Code
3. Gamma, Helm, Johnson, Vlissides: Design Patterns: Elements of Reusable Object-Oriented Software
4. Martin, Micah. Programowanie zwinne: zasady, wzorce i praktyki zwinnego wytwarzania oprogramowania w C#.
5. Larman - UML i wzorce projektowe. Analiza i projektowanie obiektowe oraz iteracyjny model wytwarzania aplikacji
6. Fowler - Patterns of Enterprise Application Architecture
7. Microsoft Patterns & Practices - Application Architecture Guide