Inżynieria oprogramowania semestr V Tematy projektów
Kategoria I (tematy 1 osobowe)
1. Referat na temat Rational Unified Process (dokładny opis metodyki i procesu produkcji oprogramowania)
2. Referat na temat Extreme Programming (dokładny opis metodyki I procesu produkcji oprogramowania)
3. Referat na temat Capability Maturity Model (CMM) (dokładny opis metodyki I procesu produkcji oprogramowania)
4. Przygotowanie grafiku projektu uwzględniającego podział pracy, zależności pomiędzy zadaniami, przydział ludzi do zadań, itp. dla produktu zdefiniowanego przez podanie specyfikacji wymagań
5. Referat na temat Feature Driven Development - lekka metodyka tworzenia oprogramowania
6. Opracowanie referatu na temat narzędzi wspomagających zarządzanie zmianami (wymagań, kodu) w procesie produkcji oprogramowania
7. Opracowanie referatu na temat metod estymacji pracochłonności. Metoda COCOMO II (w szczególności przykłady tzw. calibration cases)
8. Opracowanie referatu na temat metod estymacji wielkości kodu. Metoda COSMIC function point
9. Przeprowadzenie integracji narzędzia do kontroli wersji CVS z interfejsem web’owym. Utworzenie dokumentacji dla administratora umożliwiającej instalację i konfigurację interfejsu web’owego dla narzędzia CVS.
10. Referat na temat narzędzi umożliwiających tworzenie scentralizowanej polityki prowadzenia backupów
Kategoria II (tematy dla grup 2 osobowych)
1. Przegląd i ewaluacja (na stworzonym przykładowym programie) narzędzi do automatycznego testowania graficznego interfejsu użytkownika (GUI)
2. Przegląd i ewaluacja (na utworzonej wcześniej przykładowej specyfikacji wymagań) narzędzi służących do zarządzania wymaganiami (DOORS, RequisitePro, ...)
3. Wybrane metryki dotyczące jakości oprogramowania (np. Length of code (logical LOC, physical LOC,…) , cyclomatic complexity, depth of conditional nesting)
4. Opracowanie raportu omawiającego podobieństwa i różnice metodyk Extreme Programming i Rational Unified Process
5. Opracowanie raportu opisującego główne założenia lekkich metodyk produkcji oprogramowania
6. Opracowanie referatu omawiającego dostosowanie praktyk Extreme Programming do wymagań norm ISO dla oprogramowania
7. Opracowanie referatu na temat narzędzi wspomagające modelowanie biznesowe
Inżynieria Oprogramowania
Grzegorz Młynarczyk WSZiB
Semestr V 1 z 3
8. Opracowanie referatu na temat techniki zarządzania ryzykiem w projektach informatycznych
9. Opracowanie referatu porównującego metody i techniki testowania oprogramowania
10.Referat na temat narzędzi przeprowadzających statyczną analizę kodu źródłowego (zgodność ze standardami kodowania, kontrola poprawnej inicjalizacji, nazewnictwo stałych itp.)
Kategoria III (tematy dla grup 2-3 osobowych)
1. Implementacja narzędzia obliczającego wybraną metrykę dla programu zapisanego w wybranym języku oprogramowania (np. Java)
2. Implementacja narzędzia generującego diagram klas w UML-u dla danego programu w wybranym języku (Java/C++)
3. Opracowanie referatu (przykłady wykorzystania, testowe programy) na temat narzędzi wspomagających weryfikację, testowanie i walidację oprogramowania (ze szczególnym uwzględnieniem testowania aplikacji uruchamianych na serwerach zgodnych ze specyfikacją J2EE oraz platformie .NET)
4. Metody lokalizowania oprogramowania. Ewaluacja dostępnych narzędzi wspomagających proces lokalizacji (przy użyciu prostej przykładowej aplikacji).
Na podstawie zgromadzonych materiałów utworzenie własnego narzędzia dla wybranego języka programowania.
5. Implementacja narzędzia umożliwiającego pomiar czasu spędzonego przez indywidualne osoby przy poszczególnych czynnościach projektowych (centralna baza danych, możliwość automatycznego generowania raportów dla podanego okresu czasu, grupy osób, itp.)
6. Implementacja dla wybranego języka programowania narzędzia wykonującego statyczną analizę kodu według jednego z kryteriów (np. cyclomatic complexity)
7. Projekt i implementacja narzędzia integrujące się z systemem Bugzilla umożliwiającego automatyczne przyjmowanie zgłoszeń za pośrednictwem poczty email i przypisywanie ich w bazie Bugzilli jako nowe zgłoszenie problemu (email, automatyczne nadawanie ID każdemu zgłoszeniu, generacja odpowiedź w postaci email)
8. Opracowanie techniki szybkiej implementacji interfejsu WWW (zbiór dynamicznie generowanych stron html) bazującego na udostępnionym WebService (znalezienie istniejących bibliotek i opracowanie techniki ich użycia lub stworzenie własnych bibliotek i opracowanie techniki ich użycia
9. Zabranie informacji o aplikacjach komercyjnych bądź OpenSource wspomagających prace przy tworzeniu oprogramowania począwszy od etapu analizy a skończywszy na wsparciu technicznym. Aplikacje tego typu realizują przynajmniej jedna z podanych funkcji:
a. zarządzanie błędami/zgłoszeniami (zgłaszanie błędów, komentowanie przypisanie błędu do osoby, zmiana statusu np. na “usunięty”.
Przykładowe aplikacje to bugzilla, DCL itp.)
Inżynieria Oprogramowania
Grzegorz Młynarczyk WSZiB
Semestr V 2 z 3
b. zarządzanie czasem pracy (rejestracje czasu pracy pracownika, rejestracje czasu pracy w obrębie konkretnego zadania generowanie raportów np. timecardów)
c. planowanie pracy (zbieranie zadań, grupowanie, szacowanie czasu wykonania, przydzielanie do konkretnych członków grupy projektowej.
Przykładowa aplikacja: XPlanner, MS Project)
d. wymiana informacji (dokumentów i nie tylko) (komunikacja bezpośrednia jak w ICQ czy Gadu-Gadu, tworzenie notatek, przechowywanie dokumentów, rożnego rodzaju powiadomienia o zmianach w dokumentach/notatek, tworzenie własnych list “todo” itp.
Przykładowa aplikacja: rożne implementacja WIKI)
Każdy z projektów z kategorii II i III powinien zostać dostarczony wraz z odpowiednią dokumentacją projektową obejmującą między innymi: analizę i specyfikację wymagań, harmonogram realizacji, projekt techniczny architektury, dokumentację wdrożeniową. Dokładny zakres określony zostanie dla każdego z projektów w trakcie zajęć projektowych.
Inżynieria Oprogramowania
Grzegorz Młynarczyk WSZiB
Semestr V 3 z 3