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.