Lekkie metodologie wytwarzania oprogramowania Raport z pierwszej iteracji i planowania drugiej iteracji Jakub Nowak Przemysław Warzyński
Historie użytkownika Tytuł: Notatka - okno Numer: 1 Opis: Wyświetlana na pulpicie w ładnym okienku, możliwość dynamicznej zmiany wielkości notatki. Estymata: 5 Priorytet: Must
Historie użytkownika cd. Tytuł: Notatka-zawartość Numer: 2 Opis: Ma zawierać treść notatki oraz tytuł (nie koniecznie) Estymata: 2 Priorytet: Must
Historie użytkownika cd. Tytuł: Notatka – tekst Numer: 3 Opis: Zmieniać wielkość czcionki, treść powinna być zawijana, dla całej notatki powinien istnieć scroll, powinno dać się zmieniać pogrubienie. Estymata: 3 Priorytet: Could
Historie użytkownika cd. Tytuł: Notatka – listowanie Numer: 4 Opis: Powinna istnieć możliwość szybkiego punktowania notatek przy pomocy skrótu klawiszowego. Estymata: 3 Priorytet: Would
Historie użytkownika cd. Tytuł: Notatka – interakcja Numer: 5 Opis: Opis: powinny istnieć skróty klawiszowe dla podstawowych funkcji – kopiuj, wklej zapisz, wytnij, esc, Estymata: 5 Priorytet: Could
Historie użytkownika cd. Tytuł: Notatka - tło Numer: 6 Opis: Tło powinno mieć zmieniany kolor. Estymata: 2 Priorytet: Could
Historie użytkownika cd. Tytuł: Notatka – szybkie stwarzanie notatki Numer: 7 Opis: Powinna tworzyć się notatkę poprzez dwukrotne kliknięcie ikonki aplikacji w tray. Estymata: 2 Priorytet: Could
Historie użytkownika cd. Tytuł: Zamykanie notatek Numer: 8 Opis: Powinien istnieć guzik (zamknij - krzyżyk) po kliknięciu którego notatka znika z pulpitu. Estymata: 2 Priorytet: Would
Historie użytkownika cd. Tytuł: Notatka- usuwanie Numer: 9 Opis: Powinna istnieć możliwość bezpiecznego( z potwierdzeniem) usuwania notatek. Estymata: 4 Priorytet: Must
Historie użytkownika cd. Tytuł: Tray Numer: 10 Opis: Istnieje ikonka działającej aplikacji w tray-u przy pomocy której mamy dostęp do poszczególnych opcji( menu kontekstowe) Estymata: 5 Priorytet: Must
Historie użytkownika cd. Tytuł: Przywrócenie zamkniętych notatek Numer: 11 Opis: Powinna istnieć możliwość przywracania zamkniętych uprzednio notatek. Estymata: 3 Priorytet: Would
Historie użytkownika cd. Tytuł: Synchronizacja notatek Numer: 12 Opis: Powinno dać się posiadać te same notatki na różnych komputerach tak by zmiana na jednym powodowała zmiany na innych. Ale powinno dać się powiedzieć które chcemy wysłać a które nie. Estymata: 20 Priorytet: Must
Historie użytkownika cd. Tytuł: Wysyłanie – odbieranie zaproszeń Numer: 13 Opis: Należy stworzyć mechanizm przy pomocy którego można prosić o możliwość wysyłania notatek do danego użytkownika i akceptowania go lub nie. Estymata: 4 Priorytet: Could
Historie użytkownika cd. Tytuł: Panel konfiguracyjny – dodatkowe opcje Numer: 14 Opis: Po wciśnięciu ikonki aplikacji mają się pokazywać różne opcje konfiguracyjne dotyczące: wyglądu( kolor tła, czcionka, rozmiar itp.), autostartu. Estymata: 3 Priorytet: Must
Historie użytkownika cd. Tytuł: Panel konfiguracyjny - synchronizacja Numer: 15 Opis: Po wciśnięciu ikonki aplikacji mają się pokazywać różne opcje konfiguracyjne dotyczące: adresu miejsca gdzie synchronizowane są notatki, polityki synchronizacji( konflikty wynikające z synchronizacji), sposób działania w przypadku braku połączenia z internetem. Estymata: 10 Priorytet: Must
Historie użytkownika cd. Tytuł: Panel konfiguracyjny - dodawanie użytkowników Numer: 16 Opis: Jako część panelu konfiguracyjnego – powinno zawierać spis użytkowników oraz grupy, którymi możemy odpowiednio zarządzać( dodawać, usuwać). Estymata: 5 Priorytet: Could
Historie użytkownika cd. Tytuł: Dzielenie notatek ze znajomymi. Numer: 17 Opis: Powinien istnieć prosty mechanizm przy pomocy którego można dzielić notatki z określonymi osobami. Estymata: 20 Priorytet: Could
Historie użytkownika cd. Tytuł: Automatyczne włączanie po uruchomieniu komputera Numer: 18 Opis: Należy stworzyć opcje w menu konfiguracyjnym przy pomocy którego można definiować czy aplikacja ma uruchomić się wraz ze startem systemu. Estymata: 3 Priorytet: Would
Historie użytkownika cd. Tytuł: Zamykanie aplikacji Numer: 19 Opis: Powinna istnieć opcja- zakończ, która zakańcza działanie aplikacji definitywnie (zamyka połączenia, nie nasłuchuje na przychodzące informacje od innych użytkowników). Powinna się ona znajdować z menu rozwijalnym ikonki naszej aplikacji w tray-u. Estymata: 2 Priorytet: Should
Historie użytkownika cd. Tytuł: Czarna lista( bany) Numer: 20 Opis: Powinna istnieć możliwość definiowanie listy osób od których nie chcemy otrzymywać notatek. Estymata: 3 Priorytet: Could
Historie użytkownika cd. Tytuł: Oznaczanie notatek z różnych grup. Numer: 21 Opis: Notatki należące do tej samej grupy powinny się różnić od notatek należących do innych grup( np. inny kolor tła). Estymata: 2 Priorytet: Would
Historie użytkownika cd. Tytuł: Otrzymanie nowej notatki. Numer: 22 Opis: Powinien zostać wyświetlony odpowiedni komunikat po otrzymaniu nowej notatki. Estymata: 3 Priorytet: Would
Historie użytkownika cd. Tytuł: Przesuwanie notatek do tła Numer: 23 Opis: Powinien istnieć guzik w trayu przy pomocy, którego można wszystkie notatki przesunać do tła czyli tak aby wszystkie inne okna w systemie operacyjnym znajdowały się przed nimi. Estymata: 4 Priorytet: Would
Plan iteracji Iteracja 1 (Estymata 48) Notatka(nr 1) [5]Notatka-zawartość( nr 2)[2] Notatka-usuwanie(nr 9)[4] Synchronizacja notatek(nr 12)[20] Panel konfiguracyjny- synchronizacja( nr 15)[10] Tray(nr 10)[5] Zamykanie aplikacji (nr 19) [2] Iteracja 2 (Estymata 47) Dodawanie notatek znajomym(nr 13)[20] PK – dodawanie użytkowników( nr 16)[5] Wysyłanie/odbieranie zaproszeń( nr 17)[8] Przywracanie notatek( nr 11)[3] Zamykanie notatek( nr 8)[2] Szybkie stwarzanie notatki(nr 7)[2] Iteracja 3 (Estymata 17) Notatka – tekst( nr 4)[3]Notatka-listowanie (nr 5)[3]Autostart( nr 18)[3] Notatka – tekst(nr 3)[3]Notatka – tło(nr 6)[2] PK- dodatkowe opcje(nr 14)[3]
Rozpiska zadań – Iteracja 1 Notatka( nr 1) Lp.ZadanieEstymata 1Stworzenie okna notatki wyświetlanego na pulpicie.3.5 2Umożliwienie dynamicznej zmiany rozmiaru okna notatki.1.5
Rozpiska zadań – Iteracja 1 cd. Notatka - zawartość( nr 2) Lp.ZadanieEstymata 1Umożliwienie zapisania tekstu w notatce.1 2.Zapisanie treści notatki lokalnie.1
Rozpiska zadań – Iteracja 1 cd. Notatka - usuwanie( nr 9) Lp.ZadanieEstymata 1Usunięcie notatki wraz z jej treścią( lokalnie).1.5 2Dodanie w menu kontekstowym możliwości usuwania notatki.2.5
Rozpiska zadań – Iteracja 1 cd. Synchronizacja notatek( nr 12) Lp.ZadanieEstymata 1Dodanie w menu kontekstowym możliwości wysłania/pobrania oraz usunięcia notatki z serwera Wysłanie notatki na serwer.2.5 3Usunięcie niespójności(na serwerze może istnieć tylko jedna notatka o takiej samej treści) 1.5 4Pobranie notatki z serwera.2.5 5Aktualizacja notatki( aktualizacja treści notatki która jest już na serwerze jeżeli użytkownik wysłał notatkę ze zmieniona treścią) 2 6Usunięcie notatki z serwera.2 7Przygotowanie odpowiedniego serwera.7
Rozpiska zadań – Iteracja 1 cd. Panel konfiguracyjny - synchronizacja( nr 15) Lp.ZadanieEstymata 1Stworzenie GUI panelu konfiguracyjnego.4.5 2Umożliwienie wprowadzania adresu serwera.1 3Ustalenie polityki synchronizacji( na życzenie, co jakiś czas)3 4Ustalenia zachowania aplikacji w przypadku braku połączenia z serwerem. 1.5
Rozpiska zadań – Iteracja 1 cd. Tray (nr 10) Lp.ZadanieEstymata 1Stworzenie GUI tray-a.3 2Dodanie menu kontekstowego do tray-a2
Rozpiska zadań – Iteracja 1 cd. Zamykanie aplikacji (nr 19) Lp.ZadanieEstymata 1Dodanie opicji zamykania w menu kontekstowym tray-a0.5 2Poprawne zamkniecie aplikacji1.5
Podsumowanie 1szej iteracji. Zadania przewidziane na pierwszą iterację zostały zrealizowane. W trakcie prac kilka zadań zostało zmienionych aby dostosować je do aktualnych potrzeb: Usuwanie notatki odbywa się poprzez naciśnięcie odpowiedniego guzika na notatce( nie jak zakładano z menu kontekstowego), wydaje nam się że jest to ułatwienie korzystania z notatki a także przyśpieszenie usuwania notatki( odbywa się pojedynczym kliknięciem). Synchronizacja następuje w momencie otwierania i zamykania aplikacji, wydaje nam się to najlepszym i najprostszym rozwiązaniem w związku z tym zrezygnowaliśmy z rozbudowy panelu konfiguracyjnego o opcję ustalenia polityki synchronizacji. Dzięki temu użytkownik w ogóle nie musi przejmować się co dzieje się z jego notatkami na serwerze – wszystko odbywa się automatycznie. Realizacja
Podsumowanie 1szej iteracji cd. Zrealizowana została historia Zamykanie notatek przewidziana początkowo na iterację drugą( istnieje guzik po kliknięciu którego notatka znika z pulpitu). Notatka posiada ładny design, kolorowe tło( początkowo zakładano notatkę jako najprostsze okienko bez zwracania uwagi na wygląd). Oprócz tego zrealizowany został podpunkt szybkie tworzenie notatki – poprzez użycie opcji w tray-u. Rozwiązanie proponowane w historii (podwójne kliknięcie) nie jest możliwe ponieważ funkcjonalność tray-a w swingu w javie 1.6 jest zbyt mała. Wykonana została także część prac dotycząca zmiany koloru tła notatki, jej tekstu oraz czcionki. Ekstra funkcjonalności
Podsumowanie 1szej iteracji cd. Ciężko nam jednoznacznie stwierdzić ile czasu zajęły nam poszczególne zadania z racji ciężkiego ich rozdzielenia podczas prac implementacyjnych. Na pewno synchronizacja jako taka zajęła więcej czasu niż planowaliśmy. Oprócz tego sporo czasu zajęło połączenie poszczególnych funkcjonalności w jedną wspólną całość i dopracowywanie jej poprawnego działania Zadania przewidziane na pierwszą iterację – 48. Dodatkowy czas poświęcony na synchronizację – 5 Zamykanie notatek – 2. Wygląd notatki – 5. Łączenie funkcjonalności oraz dopracowywanie aplikacji - 8 Suma estymat – 68. Suma estymat zrealizowanych zadań.
Podsumowanie 1szej iteracji cd. Problemy pojawiły się podczas tworzenia Web Service, ponieważ nigdy wcześniej z niego nie korzystaliśmy. Udało się stworzyć działający Web Service który może zostać rozbudowany pod kątem naszej aplikacji Podczas testowania Gui napotkaliśmy niewielkie problemy. Chodziło tutaj głównie o szczegóły takie jak nie pojawianie się ikonek na pasku startu oraz przy używaniu alt+taba, konieczność tworzenia własnego komponentu od zera który nie posiadałby typowych guzików zamknij,maksymalizuj, minimalizuj Problemy z frameworkiem do testowania GUI – nie dzialał poprawnie z niewiadomych powodów Problemy z komunikacją (perfidna flaga przy połączeniu FTP z powodu, protokół raz działał raz nie i ciężko było stwierdzić co powoduje błąd) Problem z Tray i jego zbyt mała funkcjonalnością. Dlatego z drugiej iteracji usuwamy historię nr. 7 Zaletą na pewno jest dobre przetestowanie aplikacji Oprócz tego wydaje się nam że aplikacja została dobrze dopracowana pod względem wizualnym – dzięki czemu można przyjemnie z niej korzystać ;) Problemy, zalety
Plan 2giej iteracji Iteracja 2 (Estymata ) [47] Dzielenie notatek ze znajomymi( nr 17)[25]PK – dodawanie użytkowników( nr 16)[8]Przywracanie zamkniętych notatek( nr 11)[3] Czarna lista( nr 20)[3] Oznaczanie notatek z różnych grup( nr 21)[2]Otrzymanie nowej notatki( nr 22)[3] Przesuwanie notatek do tła(nr 23)[3]
Rozpiska zadań – Iteracja 2 Dzielenie notatek ze znajomymi( nr 17) Lp.ZadanieEstymata 1Implementacja zapisu notatki w postaci pliku xml4 2Implementacja protokołu komunikacji poprzez ftp10 3.Dodanie funkcjonalności do interfejsu użytkownika7 4.Integracja z istniejącą wersją aplikacji4
Rozpiska zadań – Iteracja 2 cd. PK – dodawanie użytkowników( nr 16) Lp.ZadanieEstymata 1Stworzenie formatki obsługującej dodawanie i usuwanie użytkowników 6 2Zapis informacji na temat użytkowników w pliku konfiguracyjnym aplikacji 2
Rozpiska zadań – Iteracja 2 cd. Przywracanie zamkniętych notatek( nr 11) Lp.ZadanieEstymata 1Dodanie do menu kontekstowego aplikacji odpowiedniego wpisu. 1 2Wyświetlenie wszystkich notatek( łącznie z tymi uprzednio zamkniętymi ale nie usuniętymi). 2
Rozpiska zadań – Iteracja 2 cd. Czarna lista( nr 20) Lp.ZadanieEstymata 1Umożliwienie umieszczenia osoby na czarnej liście.2 2Odrzucanie notatek wysłanych przez osoby z czarnej listy.1
Rozpiska zadań – Iteracja 2 cd. Oznaczanie notatek z różnych grup( nr 21) Lp.ZadanieEstymata 1Pobranie informacji do jakiej grupy należy notatka.1 2Nadawanie notatce odpowiedniego tło zgodnie z grupą do której notatka należy. 1
Rozpiska zadań – Iteracja 2 cd. Otrzymanie nowej notatki( nr 22) Lp.ZadanieEstymata 1Stworzenie okna informującego o otrzymaniu nowej notatki.2 2Zaznaczenie czy nowa notatka ma być wyświetlana czy odrzucona 1