SylabUZ

Generate PDF for this page

Foundations of Software Modelling - course description

General information
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
Course information
Semester 5
ECTS credits to win 7
Course type optional
Teaching language polish
Author of syllabus
  • dr inż. Łukasz Hładowski
Classes forms
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

Aim of the course

- 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

Prerequisites

Programowanie obiektowe, Inżynieria oprogramowania

Scope

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.

Teaching methods

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

Learning outcomes and methods of theirs verification

Outcome description Outcome symbols Methods of verification The class form

Assignment conditions

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%

Recommended reading

  1. Martin R.C.: Czysty kod. Podręcznik dobrego programisty, Helion, Gliwice 2010,

  2. Martin R.C.: Czysta architektura. Struktura i design oprogramowania. Przewodnik dla profesjonalistów, Helion 2018,

  3. Roman A,.: Testowanie i jakość oprogramowania. Modele, techniki, narzędzia, PWN 2017,

  4. Beck K.: TDD. Sztuka tworzenia dobrego kodu, Helion, Gliwice 2014,

  5. Freeman E., Freeman E., Bates B., Sierra K.: Wzorce projektowe – Rusz głową!, Helion, Gliwice 2010,

  6. Larman C.: UML i wzorce projektowe. Analiza i projektowanie obiektowe oraz iteracyjny model wytwarzania aplikacji. Wydanie III, Helion, Gliwice 2011.

Further reading

  1. Martin R.C., Martin M.: Agile. Programowanie zwinne: zasady, wzorce i praktyki zwinnego wytwarzania oprogramowania w C#, Helion 2008,

  2. Seidl, M., Scholz, M.: UML @ Classroom: An Introduction to Object-Oriented Modeling, Springer 2015,

  3. Way J.: Laravel Testing Decoded, Leanpub 2013.

Notes


Modified by dr inż. Łukasz Hładowski (last modification: 20-04-2022 22:38)