Zaawansowane projektowanie obiektowe: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Bwalter (dyskusja | edycje)
Nie podano opisu zmian
Bwalter (dyskusja | edycje)
Linia 40: Linia 40:


=== Moduły ===
=== Moduły ===
# Wprowadzenie do przedmiotu [Wykład [[media:zpo-1-wyk.ppt|PPT]] | [[media:zpo-1-wyk.pdf|PDF]] | [[zpo-1-wyk-toc|wiki]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/zpo-1-wyk/player.html SWF]], [Test [[media:zpo-1-test.txt|TXT]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/qm/ZPO%2001%20-%20output/quizmaker.html SWF]], [Lab [[zpo-1-lab|wiki]]]
# Wprowadzenie do przedmiotu [Wykład [[media:zpo-1-wyk.pdf|PDF]] | [[zpo-1-wyk-toc|wiki]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/zpo-1-wyk/player.html SWF]], [Test [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/qm/ZPO%2001%20-%20output/quizmaker.html SWF]], [Lab [[zpo-1-lab|wiki]]]
# Przykład biblioteki obiektowej - Java Collections [Wykład [[media:zpo-2-wyk.ppt|PPT]] | [[media:zpo-2-wyk.pdf|PDF]] | [[zpo-2-wyk-toc|wiki]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/zpo-2-wyk/player.html SWF]], [Test [[media:zpo-2-test.txt|TXT]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/qm/ZPO%2002%20-%20output/quizmaker.html SWF]], [Lab [[zpo-2-lab|wiki]]]
# Przykład biblioteki obiektowej - Java Collections [Wykład [[media:zpo-2-wyk.pdf|PDF]] | [[zpo-2-wyk-toc|wiki]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/zpo-2-wyk/player.html SWF]], [Test [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/qm/ZPO%2002%20-%20output/quizmaker.html SWF]], [Lab [[zpo-2-lab|wiki]]]
# Testowanie jednostkowe [Wykład [[media:zpo-3-wyk.ppt|PPT]] | [[media:zpo-3-wyk.pdf|PDF]] | [[zpo-3-wyk-toc|wiki]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/zpo-3-wyk/player.html SWF]], [Test [[media:zpo-3-test.txt|TXT]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/qm/ZPO%2003%20-%20output/quizmaker.html SWF]], [Lab [[zpo-3-lab|wiki]]]
# Testowanie jednostkowe [Wykład [[media:zpo-3-wyk.pdf|PDF]] | [[zpo-3-wyk-toc|wiki]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/zpo-3-wyk/player.html SWF]], [Test [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/qm/ZPO%2003%20-%20output/quizmaker.html SWF]], [Lab [[zpo-3-lab|wiki]]]
# Metryki obiektowe [Wykład [[media:zpo-4-wyk.ppt|PPT]] | [[media:zpo-4-wyk.pdf|PDF]] | [[zpo-4-wyk-toc|wiki]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/zpo-4-wyk/player.html SWF]], [Test [[media:zpo-4-test.txt|TXT]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/qm/ZPO%2004%20-%20output/quizmaker.html SWF]], [Lab [[media:zpo-4-lab.doc|DOC]] | [[zpo-4-lab|wiki]]]
# Metryki obiektowe [Wykład [[media:zpo-4-wyk.pdf|PDF]] | [[zpo-4-wyk-toc|wiki]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/zpo-4-wyk/player.html SWF]], [Test [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/qm/ZPO%2004%20-%20output/quizmaker.html SWF]], [Lab [[media:zpo-4-lab.doc|DOC]] | [[zpo-4-lab|wiki]]]
# Wprowadzenie do refaktoryzacji [Wykład [[media:zpo-5-wyk.ppt|PPT]] | [[media:zpo-5-wyk.pdf|PDF]] | [[zpo-5-wyk-toc|wiki]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/zpo-5-wyk/player.html SWF]], [Test [[media:zpo-5-test.txt|TXT]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/qm/ZPO%2005%20-%20output/quizmaker.html SWF]], [Lab [[zpo-5-lab|wiki]]]
# Wprowadzenie do refaktoryzacji [Wykład [[media:zpo-5-wyk.pdf|PDF]] | [[zpo-5-wyk-toc|wiki]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/zpo-5-wyk/player.html SWF]], [Test [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/qm/ZPO%2005%20-%20output/quizmaker.html SWF]], [Lab [[zpo-5-lab|wiki]]]
# Katalog przekształceń refaktoryzacyjnych cz. I [Wykład [[media:zpo-6-wyk.ppt|PPT]] | [[media:zpo-6-wyk.pdf|PDF]] | [[zpo-6-wyk-toc|wiki]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/zpo-6-wyk/player.html SWF]], [Test [[media:zpo-6-test.txt|TXT]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/qm/ZPO%2006%20-%20output/quizmaker.html SWF]], [Lab [[zpo-6-lab|wiki]]]
# Katalog przekształceń refaktoryzacyjnych cz. I [Wykład [[media:zpo-6-wyk.pdf|PDF]] | [[zpo-6-wyk-toc|wiki]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/zpo-6-wyk/player.html SWF]], [Test [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/qm/ZPO%2006%20-%20output/quizmaker.html SWF]], [Lab [[zpo-6-lab|wiki]]]
# Katalog przekształceń refaktoryzacyjnych cz. II [Wykład [[media:zpo-7-wyk.ppt|PPT]] | [[media:zpo-7-wyk.pdf|PDF]] | [[zpo-7-wyk-toc|wiki]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/zpo-7-wyk/player.html SWF]], [Test [[media:zpo-7-test.txt|TXT]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/qm/ZPO%2007%20-%20output/quizmaker.html SWF]], [Lab [[zpo-7-lab|wiki]]]
# Katalog przekształceń refaktoryzacyjnych cz. II [Wykład [[media:zpo-7-wyk.pdf|PDF]] | [[zpo-7-wyk-toc|wiki]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/zpo-7-wyk/player.html SWF]], [Test [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/qm/ZPO%2007%20-%20output/quizmaker.html SWF]], [Lab [[zpo-7-lab|wiki]]]
# Katalog przekształceń refaktoryzacyjnych cz. III [Wykład [[media:zpo-8-wyk.ppt|PPT]] | [[media:zpo-8-wyk.pdf|PDF]] | [[zpo-8-wyk-toc|wiki]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/zpo-8-wyk/player.html SWF]], [Test [[media:zpo-8-test.txt|TXT]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/qm/ZPO%2008%20-%20output/quizmaker.html SWF]], [Lab [[zpo-8-lab|wiki]]]
# Katalog przekształceń refaktoryzacyjnych cz. III [Wykład [[media:zpo-8-wyk.pdf|PDF]] | [[zpo-8-wyk-toc|wiki]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/zpo-8-wyk/player.html SWF]], [Test [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/qm/ZPO%2008%20-%20output/quizmaker.html SWF]], [Lab [[zpo-8-lab|wiki]]]
# Wzorce projektowe, cz. I [Wykład [[media:zpo-9-wyk.ppt|PPT]] | [[media:zpo-9-wyk.pdf|PDF]] | [[zpo-9-wyk-toc|wiki]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/zpo-9-wyk/player.html SWF]], [Test [[media:zpo-9-test.txt|TXT]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/qm/ZPO%2009%20-%20output/quizmaker.html SWF]], [Lab [[zpo-9-lab|wiki]]]
# Wzorce projektowe, cz. I [Wykład [[media:zpo-9-wyk.pdf|PDF]] | [[zpo-9-wyk-toc|wiki]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/zpo-9-wyk/player.html SWF]], [Test [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/qm/ZPO%2009%20-%20output/quizmaker.html SWF]], [Lab [[zpo-9-lab|wiki]]]
# Wzorce projektowe, cz. II [Wykład [[media:zpo-10-wyk.ppt|PPT]] | [[media:zpo-10-wyk.pdf|PDF]] | [[zpo-10-wyk-toc|wiki]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/zpo-10-wyk/player.html SWF]], [Test [[media:zpo-10-test.txt|TXT]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/qm/ZPO%2010%20-%20output/quizmaker.html SWF]], [Lab [[zpo-10-lab|wiki]]]
# Wzorce projektowe, cz. II [Wykład [[media:zpo-10-wyk.pdf|PDF]] | [[zpo-10-wyk-toc|wiki]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/zpo-10-wyk/player.html SWF]], [Test [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/qm/ZPO%2010%20-%20output/quizmaker.html SWF]], [Lab [[zpo-10-lab|wiki]]]
# Wzorce projektowe, cz. III [Wykład [[media:zpo-11-wyk.ppt|PPT]] | [[media:zpo-11-wyk.pdf|PDF]] | [[zpo-11-wyk-toc|wiki]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/zpo-11-wyk/player.html SWF]], [Test [[media:zpo-11-test.txt|TXT]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/qm/ZPO%2011%20-%20output/quizmaker.html SWF]], [Lab [[zpo-11-lab|wiki]]]
# Wzorce projektowe, cz. III [Wykład [[media:zpo-11-wyk.pdf|PDF]] | [[zpo-11-wyk-toc|wiki]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/zpo-11-wyk/player.html SWF]], [Test [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/qm/ZPO%2011%20-%20output/quizmaker.html SWF]], [Lab [[zpo-11-lab|wiki]]]
# Programowanie aspektowe [Wykład [[media:zpo-12-wyk.ppt|PPT]] | [[media:zpo-12-wyk.pdf|PDF]] | [[zpo-12-wyk-toc|wiki]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/zpo-12-wyk/player.html SWF]], [Test [[media:zpo-12-test.txt|TXT]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/qm/ZPO%2012%20-%20output/quizmaker.html SWF]], [Lab [[zpo-12-lab|wiki]]]
# Programowanie aspektowe [Wykład [[media:zpo-12-wyk.pdf|PDF]] | [[zpo-12-wyk-toc|wiki]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/zpo-12-wyk/player.html SWF]], [Test [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/qm/ZPO%2012%20-%20output/quizmaker.html SWF]], [Lab [[zpo-12-lab|wiki]]]
# Programowanie komponentowe [Wykład [[media:zpo-13-wyk.ppt|PPT]] | [[media:zpo-13-wyk.pdf|PDF]] | [[zpo-13-wyk-toc|wiki]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/zpo-13-wyk/player.html SWF]], [Test [[media:zpo-13-test.txt|TXT]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/qm/ZPO%2013%20-%20output/quizmaker.html SWF]], [Lab [[zpo-13-lab|wiki]]]
# Programowanie komponentowe [Wykład [[media:zpo-13-wyk.pdf|PDF]] | [[zpo-13-wyk-toc|wiki]] | [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/zpo-13-wyk/player.html SWF]], [Test [http://elearning.cs.put.poznan.pl/mediawiki/flash_files/zpo/qm/ZPO%2013%20-%20output/quizmaker.html SWF]], [Lab [[zpo-13-lab|wiki]]]
 


=== Literatura ===
=== Literatura ===

Wersja z 09:09, 21 sie 2006

Forma zajęć

Wykład (30 godzin) + laboratorium (30 godzin)

Opis

Celem wykładu jest przedstawienie zadań i metod projektowania obiektowego. Pierwszy obszar wiedzy dotyczy wzorców projektowych, ich genezy, zastosowań oraz przykładów wykorzystania. Drugi obszar dotyczy refaktoryzacji oprogramowania, pozwalającej efektywnie wspomagać procesy pielęgnacji kodu źródłowego. Ponadto wykład obejmuje zagadnienia metryk obiektowych, testowania obiektowego oraz programowania aspektowego.

Sylabus

Autor

  • Bartosz Walter

Wymagania wstępne

  • Programowanie obiektowe
  • Inżynieria oprogramowania

Zawartość

  • Wprowadzenie do obiektowości
    • mechanizmy obiektowe
    • odpowiedzialność obiektów
    • kryteria oceny jakości
  • Przykład biblioteki obiektowej - Java Collections
  • Testowanie jednostkowe
    • JUnit 4.x
    • TestNG
    • Obiekty zastępcze
  • Metryki obiektowe
    • McCabe
    • Chidamber&Kemerer
    • MOOD (e Abreu)
    • R. Martin
  • Wzorce projektowe (3 wykłady)
  • Refaktoryzacja oprogramowania (4 wykłady)
    • wprowadzenie,
    • bad code smells,
    • katalog Fowlera
  • Programowanie aspektowe
    • AspectJ
  • Programowanie komponentowe
    • Rozwiązywanie zależności
    • Dependency Injection

Moduły

  1. Wprowadzenie do przedmiotu [Wykład PDF | wiki | SWF], [Test SWF], [Lab wiki]
  2. Przykład biblioteki obiektowej - Java Collections [Wykład PDF | wiki | SWF], [Test SWF], [Lab wiki]
  3. Testowanie jednostkowe [Wykład PDF | wiki | SWF], [Test SWF], [Lab wiki]
  4. Metryki obiektowe [Wykład PDF | wiki | SWF], [Test SWF], [Lab DOC | wiki]
  5. Wprowadzenie do refaktoryzacji [Wykład PDF | wiki | SWF], [Test SWF], [Lab wiki]
  6. Katalog przekształceń refaktoryzacyjnych cz. I [Wykład PDF | wiki | SWF], [Test SWF], [Lab wiki]
  7. Katalog przekształceń refaktoryzacyjnych cz. II [Wykład PDF | wiki | SWF], [Test SWF], [Lab wiki]
  8. Katalog przekształceń refaktoryzacyjnych cz. III [Wykład PDF | wiki | SWF], [Test SWF], [Lab wiki]
  9. Wzorce projektowe, cz. I [Wykład PDF | wiki | SWF], [Test SWF], [Lab wiki]
  10. Wzorce projektowe, cz. II [Wykład PDF | wiki | SWF], [Test SWF], [Lab wiki]
  11. Wzorce projektowe, cz. III [Wykład PDF | wiki | SWF], [Test SWF], [Lab wiki]
  12. Programowanie aspektowe [Wykład PDF | wiki | SWF], [Test SWF], [Lab wiki]
  13. Programowanie komponentowe [Wykład PDF | wiki | SWF], [Test SWF], [Lab wiki]

Literatura

  1. E. Gamma i in.: Wzorce projektowe. Elementy oprogramowania obiektowego wielokrotnego użytku, WNT, 2005
  2. B . Eckel: Thinking in Java, Helion, 2003
  3. M. Fowler: Refaktoryzacja. Ulepszanie struktury istniejącego kodu. WNT, 2006
  4. B. Henderson-Sellers: Object-oriented metrics. Measures of complexity. Prentice Hall, 1995.