Proponowane tematy prac magisterskich z inżynierii

Transkrypt

Proponowane tematy prac magisterskich z inżynierii
Proponowane tematy prac magisterskich z inŜynierii oprogramowania
Lata: 2008/2009
Opiekun: dr inŜ. Lech Madeyski
E-Mail: lech [<dot>] madeyski [<at>] pwr [<dot>] wroc [<dot>] pl
WWW: http://madeyski.e-informatyka.pl
Prowadzący: dr inŜ. Lech Madeyski
Temat 1: Praktyka Test-Driven Development – studium przypadku (ang. Test-Driven
Development – a case study)
Programowanie poprzez testy TDD (ang. Test-Driven Development) jest nową i zdobywającą
popularność (np. w projektach Eclipse, czy Fitness) praktyką wytwarzania oprogramowania
wypromowaną przez metodykę XP (ang. eXtreme Programming), ale stosowaną równieŜ
w innych metodykach. Celem pracy jest:
• Dokonanie przeglądu literaturowego i praktyczne zapoznanie się z praktyką TDD.
• Realizacja dowolnego projektu informatycznego dla realnego klienta (najchętniej w
firmie wytwarzającej oprogramowania) lub tylko nadzór nad projektem, w którym
zastosowana zostanie praktyka TDD.
• Analiza wpływu praktyki TDD na wytworzone oprogramowanie i sam proces
wytwarzania oprogramowania.
Rodzaj pracy: praktyczno-teoretyczna
Wymagania: Wymagana dobra znajomość Javy, Eclipse IDE. Mile widziane dobra znajomość
JUnit. Znajomość Fit/Fitness i umiejętność tworzenia pluginów do Eclipse będą dodatkowymi
atutami. Mile widziane doświadczenie w realizacji większych projektów, chęć do pracy oraz
bierna znajomość języka angielskiego.
Liczba realizatorów: Praca jest przeznaczona dla jednej osoby.
Uwaga: Mile widziany udział w realnym projekcie.
Prowadzący: dr inŜ. Lech Madeyski
Temat 2: Praktyka Acceptance Test-Driven Development – studium przypadku w środowisku
przemysłowym (ang. Acceptance Test-Driven Development – a case study)
Programowanie poprzez testy akceptacyjne ATDD (ang. Acceptance Test-Driven
Development) jest nową i zdobywającą popularność praktyką wytwarzania oprogramowania
wypromowaną przez metodykę XP (ang. eXtreme Programming), ale stosowaną równieŜ w
innych metodykach. Celem pracy jest:
• Dokonanie przeglądu literaturowego i praktyczne zapoznanie się z praktyką ATDD.
• Realizacja dowolnego projektu informatycznego dla realnego klienta (najchętniej w
firmie wytwarzającej oprogramowania) lub tylko nadzór nad projektem, w którym
zastosowana zostanie praktyka ATDD.
• Analiza wpływu praktyki ATDD na wytworzone oprogramowanie i sam proces
wytwarzania oprogramowania.
Rodzaj pracy: praktyczno-teoretyczna
Wymagania:
Wymagana dobra znajomość Javy, Eclipse IDE. Mile widziane dobra znajomość JUnit.
Znajomość Fit/Fitness i umiejętność tworzenia pluginów do Eclipse będą dodatkowymi
atutami. Mile widziane doświadczenie w realizacji większych projektów, chęć do pracy oraz
bierna znajomość języka angielskiego.
Liczba realizatorów: Praca jest przeznaczona dla jednej osoby.
Uwaga: Mile widziany udział w realnym projekcie.
Prowadzący: dr inŜ. Lech Madeyski
Temat 3: Testowanie Mutacyjne (ang. Mutaton Testing)
Omówienie: Testowanie jest kluczową metodą zapewnienia jakości tworzonego
oprogramowania. Testowanie mutacyjne jest zaś bardzo obiecującą metodą badania jakości
testów. Praca obejmuje:
• Przegląd literatury.
• Stworzenie lub rozwinięcie istniejącego narzędzia do testowania mutacyjnego o nowe
(wskazane przez promotora) mutacje dla języka Java.
• Zapewnienie wysokiej wydajności procesu testowania.
• Empiryczną ocenę zaimplementowanych mutacji i wskazanie zbioru
najefektywniejszych mutacji.
Rodzaj pracy: praktyczno-teoretyczna
Wymagania: chęć do pracy i zdolność do twórczego działania, wysokie umiejętności
programistyczne i dobra znajomość Javy oraz bierna znajomość języka angielskiego.
Znajomość AspectJ będzie dodatkowym atutem.
Liczba realizatorów: Praca jest przeznaczona dla jednej osoby.
Uwaga: MoŜliwa współpraca z przemysłem.
Prowadzący: dr inŜ. Lech Madeyski
Temat 4: Algorytm Wykrywania Mutantów Ekwiwalentnych w Procesie Testowania
Mutacyjnego (ang. Equivalent Mutants Detection in Mutation Testing Process)
Omówienie: Testowanie jest kluczową metodą zapewnienia jakości tworzonego
oprogramowania. Testowanie mutacyjne jest obiecującą metoda badania jakości testów.
Problem wykrywania ekwiwalentnych mutantów jest jednym z istotniejszych problemów
związanych z procesem testowania mutacyjnego. Dlatego celem pracy jest:
• Zapoznanie się z istniejącymi rozwiązaniami problemu.
• Rozwinięcie (jako oddzielny komponent programowy) istniejącego narzędzia do
testowania mutacyjnego o mechanizm efektywnego wykrywania ekwiwalentnych
mutantów.
• Empiryczną ocenę efektywności zaproponowanego rozwiązania.
Rodzaj pracy: praktyczno-teoretyczna
Wymagania: chęć do pracy i zdolność do twórczego działania, wysokie umiejętności
programistyczne i dobra znajomość Javy oraz bierna znajomość języka angielskiego.
Znajomość AspectJ będzie dodatkowym atutem.
Liczba realizatorów: Praca jest przeznaczona dla jednej osoby.
Uwaga: MoŜliwa współpraca z przemysłem.
Prowadzący: dr inŜ. Lech Madeyski
Temat 5: Architektura Sterowana Testami (ang. Test-Driven Architecture)
Omówienie: Pomysł badawczy dotyczy zastosowania testowania mutacyjnego do poprawy
jakości projektu i architektury tworzonego oprogramowania.
Celem pracy jest:
• Praktyczna implementacja koncepcji architektury sterowanej testami, której celem jest
wykrywanie problemów projektowych i architektonicznych w systemach obiektowych
(i ewentualnie aspektowych) tworzonych na platformie Java, bazując na procesie
testowania mutacyjnego.
• Empiryczna ocena stworzonego rozwiązania.
Rodzaj pracy: praktyczno-teoretyczna
Wymagania: chęć do pracy i zdolność do twórczego działania, wysokie umiejętności
programistyczne i dobra znajomość Javy, bierna znajomość języka angielskiego. Znajomość
AspectJ będzie dodatkowym atutem.
Liczba realizatorów: Praca jest przeznaczona dla jednej osoby.
Uwaga: MoŜliwa współpraca z przemysłem.
Prowadzący: dr inŜ. Lech Madeyski
Temat 6: Metryki dla Systemów Obiektowych w Języku Java (ang. Metrics for Object
Oriented Systems in Java)
Omówienie: Metryki kodu są stosowane do ilościowej oceny produktów i procesów
wytwarzania oprogramowania. Badania naukowe słuŜą potwierdzeniu uŜyteczności
zaproponowanych metryk.
Celem pracy jest:
• Przegląd metryk stosowanych w kontekście systemów obiektowych.
• Zaproponowanie metryk pomocnych w ocenie wybranych atrybutów jakości
oprogramowania tworzonego w Javie.
• Implementacja w języku Java lub rozszerzenie istniejącego narzędzia do obliczania
zaproponowanych metryk.
• Empiryczna ocena uŜyteczności metryk do oceny jakości oprogramowania.
Rodzaj pracy: praktyczno-teoretyczna
Wymagania: chęć do pracy i zdolność do twórczego działania, wysokie umiejętności
programistyczne i dobra znajomość Javy, bierna znajomość języka angielskiego. Znajomość
AST będzie dodatkowym atutem.
Liczba realizatorów: Praca jest przeznaczona dla jednej osoby.
Uwaga: MoŜliwa współpraca z przemysłem.
Prowadzący: dr inŜ. Lech Madeyski
Temat 7: Przewidywanie Błędów w Oprogramowaniu na Podstawie Metryk Kodu (ang.
Software Metrics for Predicting Faults)
Omówienie: DuŜe firmy wytwarzające oprogramowanie borykają się z ogromnymi kosztami,
których przyczyną są błędy wykrywane dopiero podczas uŜytkowania systemu. Kluczowym
zagadnieniem jest moŜliwość wskazywania tych fragmentów systemu (często klas), które
powinny być poddane inspekcji ze względu na duŜe prawdopodobieństwo wystąpienia
błędów.
W ramach pracy naleŜy:
• Scharakteryzować metody zapewniania jakości tworzonego oprogramowania oraz
narzędzia umoŜliwiające zgłaszanie błędów (ang. bug trackers).
• Zaimplementować narzędzie współpracujące z systemem zgłaszania błędów.
• Empirycznie zbadać wybrane projekty wskazując metryki, które mogą słuŜyć do
wskazywania klas, które powinny być poddane inspekcji ze względu na duŜe
prawdopodobieństwo wystąpienia błędów.
Rodzaj pracy: praktyczno-teoretyczna
Wymagania: chęć do pracy i zdolność do twórczego działania, wysokie umiejętności
programistyczne i dobra znajomość Javy, bierna znajomość języka angielskiego.
Liczba realizatorów: Praca jest przeznaczona dla jednej osoby.
Uwaga: Mile widziany udział w realnym projekcie.
Prowadzący: dr inŜ. Lech Madeyski
Temat 8: Systematyczny Przegląd Badań Empiricznych Dotyczących Praktyki
Programowania Poprzez Testy (ang. Systematic Review of Test-Driven Development Studies)
Omówienie: Programowanie poprzez testy (ang. Test-Driven Development - TDD) jest bardzo
waŜną praktyką metodyki XP. Metoda systematycznego przeglądu jest uznaną w medycynie
a od niedawna równieŜ w inŜynierii oprogramowania metodą rozpoznania, oceny
i interpretacji istniejącego stanu badań. Celem pracy jest zaplanowanie, przeprowadzenie
i udokumentowanie systematycznego przeglądu przeprowadzonego w sposób wskazany przez
promotora.
Rodzaj pracy: teoretyczna
Wymagania: bardzo dobra znajomość języka angielskiego, chęć do cięŜkiej pracy i gotowość
do korzystania z bibliotek (w szczególności elektronicznych).
Liczba realizatorów: Praca jest przeznaczona dla jednej osoby.
Prowadzący: dr inŜ. Lech Madeyski
Temat 9: Badanie Zachowań Programistów Stosujących Praktykę Test-Driven Development
(ang. An Exploratory Study of How Developers Perform Development Activities in TestDriven Development)
Omówienie: Programowanie poprzez testy TDD (ang. Test-Driven Development) jest nową
i zdobywającą popularność (stosowaną np. w projekcie Eclipse) praktyką wytwarzania
oprogramowania wypromowaną przez metodykę XP (ang. eXtreme Programming).
Szczegółowa analiza aktywności programisty ma szanse wskazać pomysły na nowe
narzędzia, które pomogą programistom realizować stojące przed nimi zadania bardziej
efektywnie. W ramach pracy naleŜy:
• Przygotować stosowną infrastrukturę programową umoŜliwiającą kolekcjonowanie
aktywności programistów.
• Przeprowadzić badanie z wykorzystaniem praktyki TDD.
• Przeanalizować uzyskane dane i wskazując ewentualne moŜliwości i pomysły na
nowe narzędzia, które mają szanse pomóc programistom realizować stojące przed
nimi zadania bardziej efektywnie.
Rodzaj pracy: teoretyczna
Wymagania: chęć do pracy i zdolność do twórczego działania, wysokie umiejętności
programistyczne i dobra znajomość Javy, bierna znajomość języka angielskiego.
Wymagania: Wymagana dobra znajomość Javy, Eclipse IDE. Mile widziane dobra znajomość
JUnit i umiejętność tworzenia pluginów do Eclipse. Mile widziane doświadczenie w realizacji
większych projektów, chęć do pracy oraz bierna znajomość języka angielskiego.
Liczba realizatorów: Praca jest przeznaczona dla jednej osoby.
Uwaga: Mile widziany udział w realnym projekcie.