SylabUZ
Course name | Foundations of Software Modelling |
Course ID | 11.3-WI-INFP-PMP |
Faculty | Faculty of Computer Science, Electrical Engineering and Automatics |
Field of study | Computer Science |
Education profile | academic |
Level of studies | First-cycle studies leading to Engineer's degree |
Beginning semester | winter term 2022/2023 |
Semester | 5 |
ECTS credits to win | 7 |
Course type | optional |
Teaching language | polish |
Author of syllabus |
|
The class form | Hours per semester (full-time) | Hours per week (full-time) | Hours per semester (part-time) | Hours per week (part-time) | Form of assignment |
Lecture | 30 | 2 | 18 | 1,2 | Exam |
Laboratory | 30 | 2 | 18 | 1,2 | Credit with grade |
Project | 15 | 1 | 9 | 0,6 | Credit with grade |
- ukształtowanie podstawowych umiejętności w zakresie modelowania oprogramowania
- zapoznanie studentów z praktycznym zastosowaniem modelowania programów dla prostych systemów informatycznych
- zapoznanie studentów z prawidłowym sposobem praktycznej implementacji rozwiązania prostego problemu przy wykorzystaniu podstawowych wzorców projektowych
Programowanie obiektowe, Inżynieria oprogramowania
Zagadnienia wprowadzające. Tło i historia współczesnych technik modelowania. Zunifikowany proces cyklu życia aplikacji. Analiza i projektowanie systemowe. Paradygmat obiektowości. Modelowanie obiektowe i jego rola w projektowaniu systemów informatycznych. Diagramy Klasa-Odpowiedzialność-Współpraca (ang. Class-Responsibility-Collaboration, CRC). Procesy wytwarzania oprogramowania.
Wstęp do notacji i diagramów Zunifikowanego Języka Modelowania (UML). Geneza i cele powstania UML. Zakres i struktura warstwowa UML. Modelowanie strukturalne. Podstawowe pojęcia i elementy obiektowości. Klasy, obiekty, abstrakcja, enkapsulacja, dziedziczenie, polimorfizm, komunikacja, relacje i powiązania między obiektami. Statyczne diagramy strukturalne: klas i obiektów. Modelowanie asocjacji między klasami. Agregacja, kompozycja, generalizacja, specjalizacja, zależności i realizacje. Pakiety i podsystemy. Typy i interfejsy. Diagramy implementacyjne: komponentów i wdrożenia. Wymagania i ich specyfikacja. Diagramy przypadków użycia. Analiza i związki między przypadkami użycia: zawieranie, rozszerzenie, grupowanie i uogólnienie. Praca nad przypadkami użycia. Modelowanie behawioralne. Diagramy sekwencji i współpracy. Role i komunikaty. Interakcje i kolaboracje. Analiza stanów systemu. Diagramy stanów i aktywności. Przejścia przepływu. Decyzje. Współbieżność. Sygnały i komunikacja. Praktyczne wykorzystanie narzędzi modelowania w UML-u.
Wzorce projektowe. Formułowanie problemów programistycznych. Przegląd najczęściej stosowanych wzorców konstrukcyjnych, strukturalnych i behawioralnych. Praktyczne wykorzystanie wzorców projektowych. Testowalność. Ogólne spojrzenie na projektowanie, wdrażanie i testowanie oprogramowania.
wykład: burza mózgów, dyskusja, zajęcia praktyczne, wykład konwencjonalny
laboratorium: burza mózgów, praca z dokumentem źródłowym, dyskusja, praca w grupach, zajęcia praktyczne, wykład konwencjonalny
projekt: burza mózgów, praca z dokumentem źródłowym, dyskusja, praca w grupach, zajęcia praktyczne, wykład konwencjonalny
Outcome description | Outcome symbols | Methods of verification | The class form |
Wykład - warunkiem zaliczenia jest uzyskanie pozytywnej oceny z egzaminu przeprowadzonego w formie zaproponowanej przez prowadzącego.
Laboratorium - warunkiem zaliczenia jest uzyskanie pozytywnych ocen ze wszystkich zadań przewidzianych do realizacji w ramach programu laboratorium.
Projekt - warunkiem zaliczenia jest uzyskanie pozytywnych ocen ze wszystkich zadań projektowych, przewidzianych do realizacji w ramach zajęć projektowych.
Składowe oceny końcowej = wykład: 33% + laboratorium: 33% + projekt: 33%
Martin R.C.: Czysty kod. Podręcznik dobrego programisty, Helion, Gliwice 2010,
Martin R.C.: Czysta architektura. Struktura i design oprogramowania. Przewodnik dla profesjonalistów, Helion 2018,
Roman A,.: Testowanie i jakość oprogramowania. Modele, techniki, narzędzia, PWN 2017,
Beck K.: TDD. Sztuka tworzenia dobrego kodu, Helion, Gliwice 2014,
Freeman E., Freeman E., Bates B., Sierra K.: Wzorce projektowe – Rusz głową!, Helion, Gliwice 2010,
Larman C.: UML i wzorce projektowe. Analiza i projektowanie obiektowe oraz iteracyjny model wytwarzania aplikacji. Wydanie III, Helion, Gliwice 2011.
Martin R.C., Martin M.: Agile. Programowanie zwinne: zasady, wzorce i praktyki zwinnego wytwarzania oprogramowania w C#, Helion 2008,
Seidl, M., Scholz, M.: UML @ Classroom: An Introduction to Object-Oriented Modeling, Springer 2015,
Way J.: Laravel Testing Decoded, Leanpub 2013.
Modified by dr inż. Łukasz Hładowski (last modification: 20-04-2022 22:38)