Analiza, wizualizacja i optymalizacja oprogramowania 1000-2D11WSI
Seminarium jest przeznaczone dla osób zainteresowanych automatyczną analizą, optymalizacją i refaktoryzacją oraz wizualizacją oprogramowania. Interesują nas zarówno zagadnienia badawcze jak i praktyczne zastosowania oraz studia przypadków. Zajmujemy się opracowaniem podstaw, technik i narzędzi do automatyzacji wymienionych czynności. Stopień trudności powstających prac magisterskich będzie dostosowany do potrzeb konkretnego studenta: od bardzo ambitnych zadań badawczych mających na celu powstanie nowych metodyk i procedur do mniej ryzykownych (ale jakże wdzięcznych!) zadań implementacyjnych przy realizacji konkretnych narzędzi.
W ramach seminarium będziemy także badać wpływ nowych paradygmatów i technologii (np. NoSQL, cloud, HTML5 i Android, nowe języki programowania) na architekturę systemów, ich wydajność, wzorce i anty-wzorce projektowe i architektoniczne. Zdefiniujemy te wzorce oraz opracujemy metody ich wykrywania i refaktoryzacji. Zaprojektujemy narzędzia wspierające automatyzację tych metod. Zaimplementujemy te narzędzia i zweryfikujemy ich użyteczność w praktyce.
Prowadzący seminarium a także biorący w nim udział doktoranci mają doświadczenie w przedsięwzięciach komercyjnych, m.in. w Google, Microsoft i startupach technologicznych.
Tematyka seminarium obejmuje (choć nie jest ograniczona do) następujące tematy:
1. Architektura i projektowanie oprogramowania
2. Wzorce architektoniczne i projektowe z uwzględnieniem nowych technologii
3. Anty-wzorce wydajnościowe i jakościowe
4. Automatyczna refaktoryzacja anty-wzorców, defektów i złych praktyk
5. Automatyczna optymalizacja na poziomie aplikacji, języka oraz maszyny wirtualnej
6. Analiza i prognozowanie jakości oprogramowania
7. Eksploracja oprogramowania
8. Badania empiryczne w inżynierii oprogramowania
9. Synteza programów
10. Wizualizacja oprogramowania
11. Automatyczne generowanie testów
Rodzaj przedmiotu
Założenia (opisowo)
Efekty kształcenia
1. Zna problemy, techniki i narzędzia związane z wytwarzaniem systemów informatycznych
2. Ma pogłębioną wiedzę w dziedzinie inżynierii oprogramowania i zarządzania projektami informatycznymi
3. Ma pogłębioną umiejętność przygotowania wystąpień ustnych oraz prowadzenia prezentacji
4. Potrafi przedstawiać wybrane zagadnienia informatyczne w sposób zrozumiały dla laika
5. Potrafi przygotować prezentację z użyciem narzędzi komputerowych
6. Potrafi przygotować opracowanie naukowe (publikację) z wybranej dziedziny informatyki
7. Potrafi określić kierunki dalszego uczenia się i zrealizować proces samokształcenia
8. Rozumie konieczność systematycznej pracy nad wszelkimi projektami, które mają długofalowy charakter
Kryteria oceniania
Aktywne uczestniczenie w seminarium, wygłoszenie referatu, złożenie pracy magisterskiej, ocena pracy magisterskiej przez promotora i recenzenta
Literatura
Współczesna literatura z tej dziedziny, w tym czasopisma naukowe i dane z Internetu. Szczegóły przedstawia prowadzący na pierwszych zajęciach.
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: