INSTYTUT INFORMATYKI STOSOWANEJ 2013 INŻYNIERIA OPROGRAMOWANIA
Inżynieria Oprogramowania Proces ukierunkowany na wytworzenie oprogramowania Jak? Kto? Kiedy? Co? W jaki sposób? Metodyka Zespół Narzędzia Wymagania Modelowanie Projekt Implementacja Zarządzanie projektami informatycznymi Inżynieria wymagań Modelowanie i analiza obiektowa Projektowanie obiektowe - Wzorce projektowe Zaawansowane programowanie obiektowe Relacyjne i obiektowe bazy danych Projektowanie dynamicznych stron WWW Programowanie sieciowe Programowanie aplikacji webowych
Metodyka, zespół, narzędzia tematyka Metodyki wytwarzania oprogramowania Zwinne (ang. agile), klasyczne Zarządzanie rozwojem oprogramowania od projektu do wdrożenia/dystrybucji Zarządzanie konfiguracją oprogramowania Wersjonowanie, budowanie, zarządzanie zmianą, zarządzanie wydaniami Platformy i narzędzia Relacyjne i obiektowe bazy danych, Java
Wymagania, modelowanie tematyka Inżynieria wymagań Pozyskiwanie, analiza, specyfikacja, zarządzanie Modelowanie przy użyciu notacji UML Modelowanie struktury Modelowanie zachowania Generacja kodu
Projektowanie, implementacja tematyka Projektowanie obiektowe i stosowanie wzorców projektowych Zastosowanie nowoczesnych platform programistycznych (J2EE,.NET) Programowanie aplikacji webowych - języki skryptowe, frameworki MVC Zasady i narzędzia projektowania graficznego interfejsu użytkownika (GUI)
Iteracje Są naturalnym elementem procesu Inżynierii Oprogramowania Wymagania Implementacja Metodyka Zespół Narzędzia Modelowanie Projekt Ale nie programu nauczania
Inżynieria oprogramowania siatka godzin (blok dyplomowania)
Umiejętności Znajomość współczesnych języków programowania Tworzenie aplikacji internetowych i rozproszonych Tworzenie aplikacji bazodanowych Pozyskiwanie i analizowanie wymagań od klientów Tworzenie i odczytywanie modeli (UML) systemów informatycznych Stosowanie wzorców projektowych usprawniających i przyspieszających tworzenie aplikacji Wykorzystywanie różnorodnych narzędzi i środowisk wspomagających rozwój oprogramowania w poszczególnych fazach: projektowanie i modelowanie, programowanie, testowanie, wersjonowanie, zarządzanie zmianą.
Tematyka prac dyplomowych 1. Systemy sztucznej inteligencji: programowanie gry w szachy, wspomaganie decyzji inwestycyjnych na giełdzie, wykrywanie plagiatów. 2. Algorytmy przetwarzania, kompresji i analizy obrazów w medycynie, przemyśle i edukacji. 3. Wspomaganie procesu programowania i zarządzanie oprogramowaniem. 4. Przetwarzanie informacji tekstowej przy użyciu języków skryptowych. 5. Programowanie systemowe w Windows. 6. Wykorzystanie procesorów wielordzeniowych, testy procesorów AMD i Intel. 7. Programowanie grafiki, technologie NVidia CUDA i OpenCL. 8. Aplikacje webowe w zastosowaniach komercyjnych, edukacyjnych, naukowych. 9. Nowoczesne technologie programowania aplikacji WWW: J2EE,.NET, systemy CMS. 10. Programowanie metod numerycznych w tomografii. 11. Bazy danych: Integracja systemów relacyjnych i obiektowych, współczesne tendencje i koncepcje baz danych, rozproszone bazy danych, hurtownie danych, systemy OLAP.
Wykładowcy dr hab. Szymon Grabowski dr inż. Radosław Adamus dr inż. Wojciech Bieniecki dr inż. Tomasz Kowalski dr inż. Jacek Wiślicki mgr inż. Roman Krzeszewski
Bloki Obieralne Przetwarzanie i rozpoznawanie obrazów Grafika i multimedia Grafika sieciowa Programowanie gier
Przetwarzanie i rozpoznawanie obrazów (blok obieralny)
Grafika i multimedia (blok obieralny)
Grafika sieciowa (blok obieralny)
Programowanie gier (blok obieralny)