Module also offered within study programmes:
General information:
Name:
Metodyki projektowania i modelowania systemów I
Course of study:
2019/2020
Code:
IETP-2-208-n
Faculty of:
Computer Science, Electronics and Telecommunications
Study level:
Second-cycle studies
Specialty:
-
Field of study:
Electronics and Telecommunications
Semester:
2
Profile of education:
Academic (A)
Lecture language:
Polish
Form and type of study:
Part-time studies
Course homepage:
 
Responsible teacher:
prof. zw. dr hab. inż. Cyganek Bogusław (cyganek@agh.edu.pl)
Module summary

Celem przedmiotu jest zaznajomienie studentów z teorią oraz praktyką prowadzenia złożonych projektów sprzętowo-programowych w realiach przemysłowych. Tematyka jest adresowana do przyszłych projektantów systemów, liderów grup, menadżerów ze znajomością technologii elektroniczno-informatycznych, itd. Na wykłady zapraszani są liczni specjaliści z zaprzyjaźnionych firm, którzy prezentują najnowsze technologie, metodologie oraz trendy związane z charakterem ich działalności.

Description of learning outcomes for module
MLO code Student after module completion has the knowledge/ knows how to/is able to Connections with FLO Method of learning outcomes verification (form of completion)
Skills: he can
M_U001 student zna i potrafi zastosować podstawowe konstrukcje oprogramowania obiektowego ETP2A_U01, ETP2A_U02, ETP2A_U03 Project
M_U002 student potrafi skonfigurować i używać przykładowy system kontroli wersji zasobów projektu, potrafi skorzystać z przykładowego systemu generacji dokumentacji kodu źródłowego, potrafi wykonać podstawowe diagramy UML projektu ETP2A_U01, ETP2A_U02, ETP2A_U03
M_U003 student potrafi interpretować wymogi specyfikacji projektowej, kreować i realizować założenia projektowe ETP2A_U01, ETP2A_U02 Project
Knowledge: he knows and understands
M_W001 student zna przykładowe systemy kontroli wersji dla zarządzania plikami źródłowymi projektu, zna systemy generowania dokumentacji, zna diagramy UML ETP2A_U01, ETP2A_U02, ETP2A_U03 Project
M_W002 student ma pogłębioną i uporządkowaną wiedzę w zakresie klasyfikacji architektur sprzętowych i programowych systemów wbudowanych ETP2A_W01 Activity during classes,
Project
M_W003 student ma wiedzę z metodyki projektowania oprogramowania systemów wbudowanych, zna podstawy programowania obiektowego, rozumie standardy bezpiecznego kodowania C/C++ ETP2A_U01, ETP2A_U02, ETP2A_U03 Project
Number of hours for each form of classes:
Sum (hours)
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
30 18 0 0 12 0 0 0 0 0 0 0
FLO matrix in relation to forms of classes
MLO code Student after module completion has the knowledge/ knows how to/is able to Form of classes
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
Skills
M_U001 student zna i potrafi zastosować podstawowe konstrukcje oprogramowania obiektowego - - - + - - - - - - -
M_U002 student potrafi skonfigurować i używać przykładowy system kontroli wersji zasobów projektu, potrafi skorzystać z przykładowego systemu generacji dokumentacji kodu źródłowego, potrafi wykonać podstawowe diagramy UML projektu - - - + - - - - - - -
M_U003 student potrafi interpretować wymogi specyfikacji projektowej, kreować i realizować założenia projektowe - - - + - - - - - - -
Knowledge
M_W001 student zna przykładowe systemy kontroli wersji dla zarządzania plikami źródłowymi projektu, zna systemy generowania dokumentacji, zna diagramy UML + - - - - - - - - - -
M_W002 student ma pogłębioną i uporządkowaną wiedzę w zakresie klasyfikacji architektur sprzętowych i programowych systemów wbudowanych + - - - - - - - - - -
M_W003 student ma wiedzę z metodyki projektowania oprogramowania systemów wbudowanych, zna podstawy programowania obiektowego, rozumie standardy bezpiecznego kodowania C/C++ + - - - - - - - - - -
Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 75 h
Module ECTS credits 3 ECTS
Udział w zajęciach dydaktycznych/praktyka 30 h
przygotowanie projektu, prezentacji, pracy pisemnej, sprawozdania 45 h
Module content
Lectures (18h):
  1. Wprowadzenie do systemów wbudowanych – 6 godziny

    Wprowadzenie do systemów wbudowanych, Analiza wymogów; Założenia projektowe; Przegląd architektur systemowych; Podział projektu na część sprzętową i programową; Implementacja; Integracja; Zagadnienia bezpieczeństwa funkcjonalnego; Klasyfikacje SIL.

  2. Dokumentacja projektowa i produkcyjna systemów – 4 godziny

    Analiza specyfikacji projektowej; Dokumentacja przedprojektowa; Dokumentacja ścieżki sprzętowej (edytor schematów, vault, zarządzanie listą komponentów); Dokumentacja ścieżki programowej (Doxygen, SVN); Dokumentacja produkcyjna i serwisowa;

  3. Projektowanie systemów – oprogramowanie – 20 godzin

    Metodyka projektowania oprogramowania: modele projektowe (wodospadowy, spiralny), budowa bibliotek, narzędzia CAD; Zarządzanie projektem: SCRUM, test-driven development, planowanie zadań, zarządzanie grupą projektową; Programowanie przez kontrakt; Zarządzanie jakością oprogramowania; Code refactoring; Code profiling oraz akceleracja;

    • Wstęp do projektowania obiektowego: etapy projektowe (requirements, functionality, analysis, design, implementation, testing, maintenance); Unified Modeling Language (UML): diagramy przypadków użycia, aktywności, stanów, sekwencji, klas, rozlokowania, komponentów;
    • Filozofia projektowania obiektowego; Dostępne platformy i języki programowania obiektowego, metody wyboru; Przegląd konstrukcji programowania obiektowego w C++: klasy, dziedziczenie, szablony, STL; Programowanie komponentowe: co to jest komponent, metodologia projektowania komponentów; Narzędzia prowadzenia projektu: platformy (Win – Visual .NET, Linux – Eclipse), planowanie (Microsoft Project), utrzymania źródeł (SourceSafe, CVS);
    • Standardy bezpiecznego kodowania C/C++ na przykładzie MISRA C / IEC 61508.
    • Przegląd typowych bibliotek oferowanych przez dostawców segmentu mikrokontrolerów
    • Systemy operacyjne w systemach wbudowanych

Project classes (12h):
  1. Organizacja systemu kontroli wersji na przykładzie systemu SVN

    • Samodzielna konfiguracja środowiska SVN
    • Podstawy wykorzystania systemu na przykładzie modelowego projektu (wprowadzanie modyfikacji, aktualizacja wersji roboczej, rozwiązywanie konfliktów, blokowanie dostępu, tworzenie i łączenie gałęzi itd.)

  2. Dokumentowanie oprogramowania na przykładzie środowiska Doxygen

    Podstawy wykorzystania systemu na przykładzie modelowego projektu w języku C

  3. Modelowanie systemów z wykorzystaniem standardu UML

    Podstawy wykorzystania systemu na przykładzie modelowego projektu ( diagramy przypadków użycia, aktywności, stanów, sekwencji, klas, rozlokowania, komponentów)

  4. Projekt oprogramowania

    • Podstawy opracowania oraz implementacji hierarchii klas do reprezentacji struktury firmy – Zapoznanie z problemem, modelowanie projektu (UML), implementacja zadania, udokumentowanie projektu, praca w systemie Linux.
    • Używanie bibliotek STL, OpenGL oraz FLTK – Funkcjonalność połączenia internetowego do odczytywania aktualnych kursów walut w danym banku, projekt graficznego interfejsu użytkownika (GUI), wykonanie z FLTK.
    • Wzorce projektowe: SINGLETON, HANDLE-BODY, ADAPTER, PROXY, ITERATOR, COMPOSITE, VISITOR, FACTORY, OBSERVER, COMMAND – Implementacja wzorca projektowego, badanie jego właściwości w wybranej aplikacji.
    • Opracowanie oraz implementacja aplikacji – Użycie poznanych technik, przygotowanie profesjonalnej dokumentacji, modelowanie problemu, implementacja projektu.
    • Stosowanie bezpiecznych standardów kodowania.

Additional information
Teaching methods and techniques:
  • Lectures: Treści prezentowane na wykładzie są przekazywane w formie prezentacji multimedialnej w połączeniu z klasycznym wykładem tablicowym wzbogaconymi o pokazy odnoszące się do prezentowanych zagadnień.
  • Project classes: Studenci wykonują zadany projekt samodzielnie, bez większej ingerencji prowadzącego. Ma to wykształcić poczucie odpowiedzialności za pracę w grupie oraz odpowiedzialności za podejmowane decyzje.
Warunki i sposób zaliczenia poszczególnych form zajęć, w tym zasady zaliczeń poprawkowych, a także warunki dopuszczenia do egzaminu:

Aktywne uczestniczenie w wykładach jest niezbędnym czynnikiem pozytywnego opanowania materiału. Na wykładzie możliwe jest przeprowadzenie kolokwium lub kolokwiów sprawdzających wiedzę. Otrzymanie pozytywnej oceny z tych kolokwiów jest jednym z warunków uzyskania oceny końcowej z przedmiotu.
Warunkiem zaliczenia projektu jest prawidłowe wykonanie zadania projektowego i oddanie go wraz z dokumentacją w wyznaczonym terminie.
Warunkiem otrzymania oceny końcowej jest uzyskanie pozytywnych ocen ze wszystkich form kształcenia uwzględnionych w programie tego przedmiotu.

Participation rules in classes:
  • Lectures:
    – Attendance is mandatory: No
    – Participation rules in classes: Studenci uczestniczą w zajęciach poznając kolejne treści nauczania zgodnie z syllabusem przedmiotu. Studenci winni na bieżąco zadawać pytania i wyjaśniać wątpliwości. Rejestracja audiowizualna wykładu wymaga zgody prowadzącego.
  • Project classes:
    – Attendance is mandatory: Yes
    – Participation rules in classes: Studenci wykonują prace praktyczne mające na celu uzyskanie kompetencji zakładanych przez syllabus. Ocenie podlega sposób wykonania projektu oraz efekt końcowy.
Method of calculating the final grade:

1.Warunkiem uzyskania pozytywnej oceny końcowej jest uzyskanie pozytywnej oceny z laboratorium oraz kolokwium zaliczeniowego z wykładu.
2.Na wykładach możliwe jest otrzymanie oceny za przedstawienie prezentacji wybranego tematu.
3.Obliczamy średnią arytmetyczną av ocen uzyskanych we wszystkich terminach (terminy poprawkowe z wagą 2).
4.Wyznaczmy ocenę końcową OK na podstawie algorytmu:
if AV>=4.75 then OK:=5.0 else
if AV>=4.25 then OK:=4.5 else
if AV>=3.75 then OK:=4.0 else
if AV>=3.25 then OK:=3.5 else
if AV>=3.0 then OK:=3.0

Sposób i tryb wyrównywania zaległości powstałych wskutek nieobecności studenta na zajęciach:

Zaległości powstałe wskutek nieobecności studenta na zajęciach student/ka zobowiązany jest nadrobić we własnym zakresie. Pomocne są tutaj konsultacje z prowadzącym, kursy internetowe lub inne formy przekazu wiedzy.

Prerequisites and additional requirements:

• Podstawy metodyki i technik programowania
• Język C++

Recommended literature and teaching resources:

1. Stroustrup B. Programming. Principles and Practice Using C++. Addison Wesley 2014 (tł. polskie: Programowanie. Teoria i praktyka z wykorzystaniem C++, Helion).
2. Stroustrup B. The C++ Programming Language, 2013 (tł. polskie: Język C++, WNT).
3. Vandevoorde D., Josuttis N.M. C++ Templates. Addison Wesley, 2017 (tł. polskie: C++. Szablony. Vademecum profesjonalisty, Helion).
4. Josuttis N.M. The C++ Standard Library. Addison Wesley, 2012 (tł. polskie: C++. Biblioteka standardowa. Podręcznik programisty, Helion).
5. Lippman S. Essential C++. Addison Wesley, 2012 (tł. polskie: Istota języka C++. Zwięzły opis, WNT).
6. Summerfield M. Programming in Python 3. Addison Wesley, 2009 (tł. polskie: Python 3. Kompletne wprowadzenie do programowania, Helion).

Scientific publications of module course instructors related to the topic of the module:

Cyganek B.: Object Detection and Recognition in Digital Images: Theory and Practice. Wiley, 2013

Additional information:

None