Published using Google Docs
Seminarium SOVA
Updated automatically every 5 minutes

SOVA Seminarium magisterskie i badawcze

Nazwa

Skrócony opis

Pełny opis

Przykładowe tematy prac magisterskich

Pomysły Maćka Broniarza

Pomysły Cezarego Bartoszuka

Pomysły Grześka Timoszuka

Nazwa

Skrócony opis

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. 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.

Pełny opis

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

Przykładowe tematy prac magisterskich

  1. Użycie grafowych algorytmów grupowania w realizacji zadań wywiadu architektonicznego
  2. Analiza i ładowanie do hurtowni architektonicznej kodu programów w językach z silnymi typami.
  3. Analiza i ładowanie do hurtowni architektonicznej kodu programów w językach z luźnymi typami, np. duck typing
  1. statycznie w oparciu o graf
  2. dynamicznie z pomocą kieckera
  1. Formułowanie i wyznaczanie wartości miar oprogramowania w grafowym modelu hurtowni architektonicznej.
  2. Detect Tartars before they surround your camp. Sposoby wykrywania złych tendencji w przedsięwzięciach informatycznych
  3. Język do definiowania ograniczeń w grafie
  1. trzeba z Robertem porozmawiać
  2. trzeba co najmniej sprawdzić czy jest coś co chcemy sprawdzać a nie daje tego np.: sonar
  1. zmiany w organizacji struktury projektu w celu maksymalizacji określonych metryk (coupling factor)
  1. pakiety robione wg zależności a nie podział std podział funkcjonalny
  2. jaki to będzie miało wpływ na
  1. grafowy edytor kodu w javie (idea piszemy w javie - np edytor jak w ecl zapisujemy w grafie)
  1. duże i trudne
  2. trzeba by zrobić praktycznie pełny parser Javy (albo chocia obecny mocno poszerzyć)
  3. praca mocno inżynierska

Pomysły Maćka Broniarza

"Technologie ICT w rozwiązaniach Cloud Computing"

Pomysły Cezarego Bartoszuka

Pomysły Grześka Timoszuka

  1. Wykrywanie bad smelli/antywzorców projektowych w grafowym modelu hurtowni architektonicznej.
  2. Dodawanie nowych języków (np.: Scala, Groovy)  programowania do grafowaego modelu hurtowni architektonicznej.
  3. Dodanie do zależności wynikających z IoC (np.: Spring)  do grafowaego modelu hurtowni architektonicznej i analiza wpływu tych informacji na hurtownię.
  4. Zdefiniowanie i dodanie nowych metryk (np.: Pokrycie kodu testami ale na poziomie metod)  w oparciu o grafowy model hurtowni danych.
  5. Dodanie do grafowego modelu hurtowni danych informacji na temat modelu danych (np.: JPA, Hibernate) i analiza wpływu tych informacji na hurtownię.
  6. Automatyczne generowanie diagramów UML na podstawie danych zawartych w grafowej hurtowni danych.
  7. Wtyczka do IDE (np Elipse, IDEA), która pozwala składować kod programu od razu w grafowej hurtowni danych.
  8. Dodanie języka do definiowania ograniczeń i wymagań w grafowej hurtowni danych. Proste ograniczenia to np.: zakaz używania klasy/pakietu/biblioteki w projekcie, zakaz zmiany interfejsu. Proste wymagania to np.: liczba testów dla każdej
  9. wzorce projektowe na grafie
  1. trudne
  2. heurystyki?
  1. poszukiwanie nietestowanych scieżek wywołań