Module also offered within study programmes:
General information:
Name:
Obiektowe metody projektowania systemów
Course of study:
2017/2018
Code:
RIA-1-510-s
Faculty of:
Mechanical Engineering and Robotics
Study level:
First-cycle studies
Specialty:
-
Field of study:
Acoustic Engineering
Semester:
5
Profile of education:
Academic (A)
Lecture language:
Polish
Form and type of study:
Full-time studies
Course homepage:
 
Responsible teacher:
Malawski Maciej (malawski@agh.edu.pl)
Academic teachers:
Malawski Maciej (malawski@agh.edu.pl)
Module summary

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
M_U001 Umiejętność tworzenia oprogramowania w języku Java i posługiwania się wzorcami projektowymi oraz technikami komponentowymi. IA1A_W13 Activity during classes,
Project
M_U002 Umiejętność stosowania zasad inżynierii oprogramowania, testowania i refaktoryzacji kodu oraz użycia narzędzi do pracy zespołowej. IA1A_W13 Project
Knowledge
M_W001 Znajomość metod obiektowej analizy oraz projektowania systemów przy pomocy języka UML. IA1A_W13 Activity during classes,
Project
M_W002 Znajomość podstawowych zagadnień programowania w języku Java. IA1A_W13 Project
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
Others
E-learning
Skills
M_U001 Umiejętność tworzenia oprogramowania w języku Java i posługiwania się wzorcami projektowymi oraz technikami komponentowymi. - - - + - - - - - - -
M_U002 Umiejętność stosowania zasad inżynierii oprogramowania, testowania i refaktoryzacji kodu oraz użycia narzędzi do pracy zespołowej. - - - - - - - - - - -
Knowledge
M_W001 Znajomość metod obiektowej analizy oraz projektowania systemów przy pomocy języka UML. + - - + - - - - - - -
M_W002 Znajomość podstawowych zagadnień programowania w języku Java. - - - - - - - - - - -
Module content
Lectures:

  • Podstawy analizy i projektowania obiektowego, modelowanie oraz projektowanie systemów przy pomocy klas, obiektów oraz relacji między nimi.
  • Wstęp do języka Java, różnice między Java a C++.
  • Wprowadzenie do w języka UML, modelowanie zależności statycznych i dynamicznych, diagramy przypadków użycia, klas, sekwencji, stanu, kolaboracji, aktywności, komponentów.
  • Programowanie generyczne na przykładzie Java Collections Framework.
  • Wzorce projektowe: Singleton, Factory, Adapter, Facade, Composite, Proxy, Observer, Visitor oraz Strategy. Wzorzec MVC – model view controller.
  • Elementy programowania komponentowego: zasady kompozycji, zależności między obiektami, lekkie kontenery (inversion of control).
  • Podstawy obiektowego programowania systemów równoległych i rozproszonych na przykładzie Java RMI oraz współbieżnych kolekcji.
  • Testowanie oprogramowania na przykładzie biblioteki Junit, zasady refaktoryzacji kodu.
  • Narzędzia do współpracy zespołowej, systemy kontroli wersji (Git).
  • Programowanie aplikacji mobilnych w Javie (wstęp do platformy Android)

Project classes:

  • Podstawy analizy i projektowania obiektowego, modelowanie oraz projektowanie systemów przy pomocy klas, obiektów oraz relacji między nimi.
  • Wstęp do języka Java.
  • Wprowadzenie do w języka UML, modelowanie zależności statycznych i dynamicznych, diagramy przypadków użycia, klas, sekwencji, stanu, kolaboracji, aktywności, komponentów.
  • Programowanie generyczne na przykładzie Java Collections Framework.
  • Wzorce projektowe: Singleton, Factory, Adapter, Facade, Composite, Proxy, Observer, Visitor oraz Strategy. Wzorzec MVC – model view controller.
  • Elementy programowania komponentowego: zasady kompozycji, zależności między obiektami, lekkie kontenery (inversion of control).
  • Testowanie oprogramowania na przykładzie biblioteki Junit, zasady refaktoryzacji kodu.
  • Narzędzia do współpracy zespołowej, systemy kontroli wersji (SVN).

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 60 h
Module ECTS credits 2 ECTS
Contact hours 15 h
Participation in lectures 15 h
Completion of a project 30 h
Additional information
Method of calculating the final grade:

Ocena końcowa = 20% wykład + 80% projekt

Wykład:

  • Obecność: 2x lista
  • Aktywność
    Projekt:
  • Program
  • Dokumentacja
  • Użycie narzędzi
Prerequisites and additional requirements:

Wymaganie wstępne: umiejętność programowania strukturalnego w językach C, C++ lub Python.

Recommended literature and teaching resources:
  1. Thinking in Java, Bruce Eckel: http://www.mindview.net/Books/TIJ/
  2. Java Tutorial: http://java.sun.com/docs/books/tutorial/
  3. The Essence of Object-Oriented Programming with Java™ and UML; Bruce E. Wampler, Addison Wesley, 2002
  4. Wzorce Projektowe; Erich Gamma, Richard Helm, Ralph Johnson, John Vissides; WNT 2008
  5. Thinking in Patterns with Java, Bruce Eckel: http://mindview.net/Books/TIPatterns/
  6. Refaktoryzacja. Ulepszanie struktury istniejącego kodu: Kent Beck, Martin Fowler, William Opdyke, Don Roberts, Wydawnictwa Naukowo Techniczne, Marzec 2006
  7. UML w kropelce, wersja 2.0; Martin Fowler, LTP Oficyna Wydawnicza , Październik 2005
Scientific publications of module course instructors related to the topic of the module:

Additional scientific publications not specified

Additional information:

None