1. Wprowadzenie do zarządzania projektami. Warstwy zarządzania i role w projekcie. WBS.
Podstawowe cechy projektu:
- tymczasowość – każdy projekt ma określone terminy rozpoczęcia i zakończenia, czyli ograniczony czas trwania
- unikalność – produkt lub usługa różnią się pod pewnymi względami od innych produktów lub usług, mogą posiadać cechy powtarzalne
- zakończenie projektu – osiągnięcie jego celów, wygaśnięcie przyczyny dla której rozpoczęto projekt
- stopniowe doprecyzowywanie – na początku projektu własności wyróżniające produkt określa się w ogólnym zakresie, w miarę postępu badań następuje definiowanie szczegółowych własności
Zarządzanie projektami [Kerzner H.]:
- planowanie,
- organizowanie,
- kierowanie,
- kontrolowanie,
zasobów organizacji przydzielonych do konkretnego projektu dla zapewnienia osiągnięcia jego celów.
Struktura organizacyjna projektu
• Warstwy zarządzania projektem
– zarząd organizacji
– rada projektu
– kierownik projektu
– kierownik zespołu
• Liczba warstw i zespołów zależy od
– wielkości i kosztu przedsięwzięcia
– technicznej złożoności produktu
– znaczenia przedsięwzięcia
– dostępności personelu
Podstawowe role w przedsięwzięciu
informatycznym
• sponsor/klient
• użytkownik
• kierownik przedsięwzięcia/zespołu
• specjalista ds. jakości, ryzyka
• Role techniczne
– analityk
– projektant
– programista
– administrator
– dokumentalista
WBS:
WBS (Work Breakdown Structure)
• Struktura podziału pracy definiuje pracę do wykonania w
celu ukończenia projektu
• Stanowi zestawienie składników projektu ze względu na
jego główne produkty
podejścia:
zstępujące: od uogólnienia do
szczegółów, od celu projektu do
pojedynczych zadań
• wstępujące: od szczegółów do
uogólnienia, od zadań do celu
pojęcia WBS:
składnik pracy – dyskretny wynik pracy (produkt lub
usługa) lub agregacja logicznie zgrupowanych
wyników
• poziom WBS – lokalizacja składnika pracy w
hierarchicznej strukturze, unikalny numeryczny kod
składnika pracy
• pakiet roboczy – wynik pracy na najniższym
poziomie WBS, główny punkt zarządzania WBS
(np. planowanie zasobów, zapewnianie jakości)
konto kosztowe – sumaryczny składnik pracy o
jeden poziom wyżej niż pakiet (jeden lub kilka
pakietów), określany jako punkt kontrolny
• gałąź – wszystkie składniki pracy poniżej poziomu
0, gałęzie mogą mieć różne długości
Podstawy tworzenia WBS
• Zakres projektu: lista głównych produktów i ich
opis
• Przepływ pracy: sekwencja wykonywania
produktów
• Dostępne zasoby
• Oczekiwania klienta (szybkość realizacji,
podwykonawcy)
• Położenie projektu: niezależność albo priorytet w
grupie projektów
2. Modele cyklu życia produktu i projektu. Kluczowe produkty etapów przedsięwzięcia
informatycznego.
Analiza i definiowanie wymagań --> Projektowanie systemu i oprogramowania --> Programowanie i testowanie jednostek (implementacja) --> Integracja i testowanie systemu --> Instalacja i utrzymanie systemu
Zalety:
Podejście sekwencyjne
Dzieli złożony proces na kilka kroków
Ułatwia śledzenie i kontrolę postępów: każdy krok posiada kryteria przyjęcia i przejścia do następnego kroku
Zapewnia komplet dokumentów
Ogniskuje uwagę na produktach pośrednich
Odpowiedni dla krótko trwających procesów
Wady:
Brak weryfikacji między etapami
Duży odstęp czasu od zakończenia specyfikacji wymagań do wdrożenia
Założenie o wykonaniu poprawnej specyfikacji wymagań na początku prac – eliminuje model z zastosowania do procesu o nieznanych na początku wymaganiach
Nie można przejść do następnej fazy przed zakończeniem poprzedniej
Sprzężenie procesów weryfikacji i walidacji z etapami podstawowymi
Sekwencyjne etapy, których rozpoczęcie zależy od zakończenia poprzedniego
WADY:
-nie uwzględnia optymalności czasowej
Wymagania i projekt są modyfikowane poprzez serie iteracji prowadzących do otrzymania systemu satysfakcjonującego rozwijające się potrzeby klienta
Sesje „sprzężenia zwrotnego” i zasada wzajemnego uczenia się
Zwiększenie zrozumienia definicji wymagań
Łatwiejsze zarządzanie zmianami
Umożliwienie rozpoczęcia tworzenia aplikacji dla podzbioru wymagań - analiza dla każdego produktu częściowego
Wczesna neutralizacja zagrożeń
Zwiększenie możliwości ponownego użycia kodu
Łatwiejsze dostosowanie końcowego produktu do zmieniających się wymagań
powtarzalność faz procesu, umożliwiająca uzyskanie w kolejnych wersjach kompletnego oprogramowania
uzyskanie działającego produktu w każdej wersji rozszerzenia począwszy od rdzenia
uwzględnienie częstych zmian wymagań – ewolucyjna natura oprogramowania
umożliwia zrozumienie trudnych szczegółów wymagań
umożliwia wydanie ograniczonej wersji produktu w przypadku presji czasu, niedostatecznej liczby pracowników
Metoda identyfikowania wymagań stawianych oprogramowaniu
Prototyp jest częściową implementacją systemu, wyrażoną logicznie lub fizycznie, prezentowany za pomocą zewnętrznego interfejsu
Może składać się z ekranów, raportów i menu systemu, faktycznie nie wykonuje wszystkich funkcji systemu
Zalety:
Na etapie analizy pozwala na ustalenie prawdziwych potrzeb klienta, wspomaga weryfikację specyfikacji wymagań,
Na etapie projektowania wspomaga podjęcie decyzji projektowych
Wady:
Trudności w zastosowaniu do dużych systemów lub na poziomie podsystemów
Trudności w określeniu liczby iteracji
Niebezpieczeństwo pozostawienia tymczasowych rozwiązań
Model ewolucyjny, powtarzalność oparta na prototypowaniu
Zastosowanie - do dużych projektów
Każde okrążenie dotyczy jednego elementu produktu: koncepcja, wymagania, projekt, kod
Umożliwia zmiany w rozwoju produktu – zarządzanie zmianami
Konieczność zarządzania ryzykiem
Wczesna eliminacja błędów
Powtórne wykorzystanie wcześniej wykonanych części
Każdy cykl zakończony przeglądem wykonanym przez kluczowych członków zespołu
Wymaga dużej wiedzy i doświadczenia od kierownika procesu
Trudności w opracowaniu i kontroli kontraktu
Wielokrotne powtarzanie ekspertyz analizy ryzyka
Wielokrotne wykonywanie liniowych procesów
Komponent
jednostka programistyczna wykonywalna, która jest niezależnie:
produkowana
sprzedawana
rozbudowywana
posiadająca określone interfejsy i jawne zależności kontekstowe
odpowiada klasie lub zbiorowi kilku klas w programowaniu obiektowym
Składanie z powtarzalnych komponentów
Technika zakłada istnienie gotowych części systemu, nazywanych komponentami
Wykorzystanie podobieństwa tworzonego oprogramowanie do posiadanych komponentów
Możliwość zastosowania na etapie analizy i projektowania narzędzi CASE, a szczególnie na etapie implementacji
Zmniejszenie w znacznym stopniu ryzyka
Zapewnienie standardów
Redukcja nakładów, skrócenie procesu wytwórczego
Konieczność rozwiązywania problemów integracji
Fazy etapu tworzenia w modelu komponentowym
Identyfikacja odpowiednich komponentów
sprawdzenie dostępności komponentów
Wybór dostępnych komponentów
Wytworzenie niedostępnych komponentów
Dodanie nowych komponentów do biblioteki
Konstrukcja n-tej iteracji systemu
szybkie wytworzenie kompletnego produktu
podejście liniowe z iteracją, możliwość wykorzystania prototypowania
wprowadzenie do zarządzania projektem powiązania kwalifikacji i motywacji zespołu z celami uzyskiwanymi w określonym czasie
Modelowanie działalności – opis procesu biznesowego
Modelowanie danych – szczegółowy opis danych
Modelowanie procesów – opracowanie procedur tworzenia, modyfikowania i usuwania obiektów
Generowanie aplikacji – zastosowanie technik czwartej generacji
Testowanie i wdrożenie – testowanie nowych komponentów
Zastosowanie
szybko zmieniające się wymagania
ograniczony czas wykonania
do wybranych części aplikacji
Nie należy stosować do przedsięwzięć
związanych z dużym ryzykiem technicznym, np. nowa technologia,
z wymaganiem wysokiej efektywności
Wymagania
modułowość systemu
zastosowanie narzędzi CASE, gotowych komponentów wielokrotnego użycia
zwiększenie produktywności zespołu
wysoka jakość zasobów
duże zaangażowanie użytkownika w przeglądy
• Narzędzia programistyczne umożliwiające definiowanie różnych cech oprogramowania na wysokim poziomie abstrakcji w celu późniejszego automatycznego wygenerowania
– kodu programu
– struktury bazy danych
– okienkowych systemów interakcji
– dokumentacji
• Pozwalają na skrócenie procesu wytwórczego i zwiększenie wydajności programistów
• Trudne w użyciu
• Niska efektywność automatycznie wygenerowanego kodu
• Wykonanie specyfikacji wymagań systemu w języku formalnym
• Automatyczne przekształcenie formalnej specyfikacji do postaci pseudokodu, a następnie kodu programu w określonym języku programowania
• Poszczególne etapy cyklu życia są realizowane w sposób indywidualny, zależny od złożoności obliczeniowej problemu
• symbol – obiekt abstrakcyjny, np. litera, cyfra, znak graficzny
• alfabet – skończony zbiór symboli (Σ)
• łańcuch (słowo) – skończony ciąg symboli
• język (formalny) - zbiór łańcuchów złożonych z symboli jakiegoś jednego alfabetu (Σ*)
• Przykład
jeżeli Σ = {a}, to Σ* = {e, a, aa, aaa, ...}, gdzie e – słowo puste
• Wysoka niezawodność pod warunkiem bezbłędnej specyfikacji (brak sprzeczności)
• Przeniesienie trudności programowania na etap specyfikacji wymagań
• Prawdopodobna mała efektywność uzyskanego kodu
• Brak uniwersalnych języków formalnej specyfikacji
• Zwinne zarządzanie projektami (ang. Agile Project Management, APD) - zbiór różnych metodyk, określanych jako zwinne bądź lekkie, oraz narzędzi stosowanych w zarządzaniu złożonymi i innowacyjnymi projektami – głównie informatycznymi
• Należą do nich między innymi: metody adaptacyjne, Crystal, SCRUM, eXtreme programming …
• Dokument „Manifesto for Agile Software Development” (2001) zainicjował głębokie przemiany w środowiskach programistycznych, przyjętych też w innych obszarach zarządzania projektami
• Powstanie APD było reakcją na mało elastyczne metody zarządzania projektami informatycznymi, uważane za zbyt sformalizowane i mało efektywne
Cechy
ograniczenie liczby dokumentów
planowanie iteracyjne, w krótszej perspektywie czasowej
ciągła współpraca z klientem
otwartość na zmiany
niewielkie zespoły projektowe
brak wydzielania faz projektowych
zdobywanie wymagań za pomocą wykonywalnego kodu
Zalety
szybkie wydanie działającego produktu, każda budowa trwa od 2-10 tygodni
wykonawca i użytkownik bezpośrednio uświadamiają sobie wymagania (kompletność i spójność)
w dowolnym punkcie procesu tworzenia klient posiada działająca wersję produktu (z ograniczonymi możliwościami)
Nieodpowiednie dla:
zespołów przekraczających 50 osób
produktów wykonujących funkcje krytycznego bezpieczeństwa
kontraktów o ustalonym zakresie
Kluczowe produkty coś tam:
• Wybór modelu odpowiedniego do potrzeb
• Kryteria wyboru modelu
• ryzyko projektu
• czas na wykonanie
• niezawodność produktu
• klarowność i zmienność wymagań
• technologia, rozmiar i złożoność
• interfejs użytkownika
• priorytety użytkownika
• spodziewany czas życia systemu
• interfejsy z istniejącymi lub nowymi systemami
• potencjalna równoległość działania systemów
• Dostosowanie modelu do konkretnego zespołu wytwórczego
• Na różnych etapach projektu może być zastosowany inny model
• Model konceptualny danych
• Diagram hierarchii funkcji
• Tabele powiązań funkcja/encja, funkcja/jednostka, funkcja/cel
• Model przepływu danych, model zależności funkcji, diagram stanów i przejść
• Wymagania wydajnościowe, kontroli i bezpieczeństwa
• Kryteria akceptacji oprogramowania przez użytkownika
• Wstępne parametry sprzętowe
• Wstępna strategia wdrożenia systemu
• Uzgodnione podejście do etapu projektowania i budowy
• Skorygowany plan rozwoju systemu
• Założenia i ograniczenia (koszty, personel, metody i styl pracy, regulacje prawne …)
• Architektura systemu
• Projekt modułów
• Schematy logiczne i fizyczne
• Projekt bazy danych i plików danych
• Szczegółowe wymagania sprzętowe
• Specyfikacje programów
• Szkic instrukcji użytkownika
• Uzgodniona strategia przeniesienia systemu: plan dostarczenia i odbioru, szkolenia, transformacja danych, odejście od starego systemu
• Plan testowania systemu
• Szkic dokumentacji systemu
• Skorygowany plan rozwoju systemu
• Projekt programów
• Dostrojona baza danych
• Działające, przetestowane programy
• Skorygowana strategia przeniesienia systemu
• Wyniki testów systemu
• Zainstalowany sprzęt i oprogramowania, pierwsze oceny wydajności systemu
• Dokumentacja użytkownika
• Dokumentacja operatorska
• Materiały szkoleniowe
• Przeszkoleni użytkownicy i operatorzy
• Zainstalowany i w pełni działający system
• Przeniesione dane
• Raporty o błędach w działaniu systemu
• Przeglądowe sprawozdanie po wdrożeniu
• Urządzenia wsparcia technicznego
• Kompletna dokumentacja systemu
• Zbiory danych zapasowe, archiwalne i do odzyskiwania danych
• Raport kontrolny zmian
• Raport o błędach
• Uzupełnienia do systemu
• Statystyka wydajności systemu
• Nowe wymagania
• Wyniki przeglądów systemu
3. Proces rozpoczęcia projektu: karta projektu, uzasadnienie biznesowe. Zagrożenia i krytyczne
czynniki powodzenia projektu.
• Oficjalna nazwa projektu
• Sponsor projektu
• Kierownik projektu
• Cel projektu
• Uzasadnienie biznesowe realizacji projektu
• Opis wyników na poziomie ogólnym
• Opis organizacji zespołu
• Ramowy terminarz prac
• Zasoby (budżet, personel, dostawcy)
• Cel projektu – jasno określony wynik projektu, wymierne kryteria
które powinien spełniać projekt, aby mógł być uznany za udany,
np. wskaźnik kosztowy, jakościowy
• Przykładowe cele projektu:
Wdrożenie i udostępnienie do użytkowania programu do końca Iego kwartału przyszłego roku.
Przeszkolenie 1000 osób.
• opis i ocena spodziewanych korzyści
– oszczędności wynikające z zatrudnienia
– poprawa wizerunku firmy
– poprawa jakości pracy
• koszty – zakup sprzętu, obsługa systemu, zakłócenia w pracy
• ryzyko związane z realizacją i zaniechaniem
• skutki finansowe - ocena inwestycji
Zagrożenia
bezpośrednie – możliwe do skutecznego opanowania
pośrednie – słabe lub żadne panowanie
Cechy zagrożeń
prawdopodobieństwo wystąpienia ryzyka (powszechność)
wpływ na projekt (dotkliwość)
Zarządzanie ryzykiem projektu
unikanie zagrożenia
przeniesienie zagrożenia
przyjęcie zagrożenia
neutralizacja zagrożenia
opracowanie planu alarmowego
Źródło zagrożeń
P - projektowe (terminy, budżet, zasoby, komunikacja z klientem, wielkość i złożoność)
T - techniczne (trudności wykonawcze)
E - ekonomiczne (produkt niepotrzebny, nieodpowiedni, brak zainteresowania, ograniczenie budżetu)
Przewidywalność
znane (wykrywane na podstawie analizy planu i środowiska)
przewidywalne (odgadywane na podstawie analizy poprzednich projektów)
nieprzewidywalne: zdarzenia losowe
• Funkcjonalność – niepewność spełnienia przez produkt stawianych wymagań
• Koszt – możliwość przekroczenia budżetu projektu
• Pielęgnacja – niepewność związana z możliwością poprawiania, rozszerzania i dostosowania do zmieniających się warunków
• Harmonogram – możliwość niedotrzymania zaplanowanych terminów
• Zmiana
– wymagań klienta
– stosowanych technologii
– docelowego środowiska komputerowego i innych elementów związanych z przedsięwzięciem
• Brak zrozumienia wymagań – zastosuj prototypowanie
• Nieznany sposób integracji z istniejącym systemem – zastosuj prototypowanie i zatrudnij „eksperta”
• Brak doświadczenia w tworzeniu oprogramowania dla platformy .NET – szkolenia
• Duża zmienność wymagań – możliwie szybka budowa architektury wykonywalnej, model ewolucyjny
• Rotacja personelu – szczegółowe dokumentowanie realizacji prac projektowych, motywowanie pracowników
Wybór strategii: akcji albo reakcji
Strategia akcji
Identyfikowanie zagrożeń - opracowanie listy kontrolnej zagrożeń
Szacowanie stopnia zagrożenia projektu
Szacowanie skutków zagrożeń
Ocena ryzyka
Uściślanie zagrożeń
Opracowanie planu zapobiegania, monitorowania i kontrolowania zagrożeń
Opracowanie planów awaryjnych w przypadku fiaska działań zapobiegawczych
• Ustal średnie prawdopodobieństwo wystąpienia zagrożenia
• Ustal wpływ zagrożenia na każdy składnik ryzyka wg klasyfikacji ryzyk (skutki)
• Sporządź (uzupełnij) tabelę zagrożeń
• Oblicz podatność na zagrożenie [E. Hall]: R = P * C, gdzie:
R – podatność na zagrożenie
C – koszt strat poniesionych w wyniku wystąpienia zagrożenia
P – prawdopodobieństwo wystąpienia zagrożenia
STRATEGIA
aktywny udział kluczowych wykonawców, opinie liderów, osób reprezentatywnych, tych co rozumieją potrzeby
wczesna korekta opinii, pomysłów i modelu organizacji
skuteczne sesje zwrotne
ANALIZA
zaangażowany użytkownik
dokładne sprawdzanie kompletności i jakości
identyfikacja wszystkich kluczowych wyników i założeń dla projektu i wdrożenia
dokładność informacji ilościowych dla danych i funkcji
sterowanie dla utrzymania postępu prac (tempa), ustalenie szczegółów, utrzymanie skupienia się zespołu na założeniach, dotrzymywanie terminów z harmonogramu prac
dotrzymanie warunków (ustalić znaczenie słowa „wystarczający”
PROJEKTOWANIE
poznanie możliwości sprzętu i środków implementacji
zrozumienie potrzeb organizacji
podjęcie decyzji handlowych
identyfikacja i rozwiązanie potencjalnych problemów
BUDOWA
zapewnienie jakości i utrzymanie się w harmonogramie
wykonanie rzeczy według wcześniejszych wskazówek (przygotowanie środowiska implementacji)
strojenie bazy danych lub programów
testowanie ograniczeń i wyjątków
DOKUMENTOWANIE
odpowiednia i faktyczna dokumentacja
zadowolenie użytkowników i operatów
akceptacja testów
WDROŻENIE
odpowiednie szkolenie
zadowolenie użytkownika z działania i przyjazności systemu
koordynacja czasowa wdrożenia
dostępna dokumentacja pozwalająca zrozumieć system, jak diagnozować problemy, co robić w przypadku awarii systemu czy sprzętu
zaplanowanie wdrożenia zgodnego z wymaganiami biznesu i zapewnienie dostępności kluczowych użytkowników, twórców i serwisu
zapewnienie integracji lub współdziałania z istniejącym systemem
EKSPLOATACJA
wysoki poziom serwisu
terminowe odpowiedzi na pytania użytkowników
poprawne sterowanie zmianami
4. Planowanie realizacji projektu informatycznego: CPM, CCS. Kontrola realizacji
przedsięwzięcia informatycznego (metoda EVM). Narzędzie Project.
Przedstawienie produktów/zadań za pomocą sieci w formacie:
AON – diagram następstw (węzeł)
AOA – diagram sieciowy (krawędź)
Podstawy
Zakres projektu
Odpowiedzialność
Dostępne zasoby
System zarządzania harmonogramem
CCS:
Diagram sieciowy do harmonogramów z ograniczonymi zasobami
Łańcuch krytyczny - najdłuższa ścieżka zależnych działań i zasobów lub zdarzeń, które nie pozwalają na wcześniejsze zakończenie projektu
Łańcuch krytyczny nie ulega zmianom
Definiowany przez zależności zasobów
Czasy trwania działań szacuje się z 50% prawdopodobieństwem (są znacznie krótsze niż w innych metodach)
Bufory do zabezpieczenia łańcucha krytycznego w trakcie implementacji projektu
Wymaga zespołu dedykowanego do projektu
• Liczba działań w CCS zależy od ich rozmiaru (2-4 tygodni)
• Ważniejsze zapewnienie pełnej listy działań niż dokładne wyznaczenie czasów trwania
Ludzie i zasoby materiałowe narzucają czas trwania działania
Termin startu działania zależy od ustalenia, jakie zasoby są konieczne do jego zakończenia
Sporządzenie imiennej listy zasobów i czasu pracy każdego z nich (np.. 100 godzin pracy programisty)
Charakterystyczna dla CCS technika szacowania czasu trwania - wyklucza uwzględnianie nieprzewidzianych wypadków
Wymagane jest ustalenie kalendarza pracy: liczba dni w tygodniu, liczba godzin w dniu pracy
Zasoby są przydzielane do najdłuższej ścieżki na podstawie analizy zależności między nimi
Zasób flagowy: nowy zasób na ścieżce CC, wskazuje menedżerowi projektu, kiedy nowy zasób rozpoczyna pracę na CC
Stosuje się różne metody motywacji (nagrody) do wcześniejszego wydania wyników i uzyskania rezerw czasu zasobów
Zabezpieczenie przed nieterminowym zakończeniem projektu
Bufor projektu dodawany na końcu CC
Czas trwania bufora projektu: np. 50% czasu trwania CC
Do bufora nie jest przydzielana żadna praca
Bufor zasilający – zabezpieczenie przed ryzykiem działań, które nie są w CC, ale zaangażowanie zasobów może spowodować poślizg działania na CC (bezpośrednia zależność)
Wielkość bufora zasilającego – np.. 50% sumy czasu trwania działań poprzedzających bufor
Do buforów nie jest przydzielana żadna praca
Metoda EV- Śledzenie czasu i kosztów wykonania projektu
Kontrola postępu prac
• tradycyjne podejście
– różnica miedzy wartością kosztów rzeczywistych i wartością kosztów planowych
• nowe podejście
– wycena wartości prac zrealizowanych do momentu t
(wartość produktów, usług)
Metoda wartości uzyskanej projektu
Earned Value (EV)
• standard do pomiaru wydajności projektów
• kontrola realizacji projektu przez porównywanie do chwili t
– zrealizowanego zakresu projektu,
– wykorzystanego czasu,
– poniesionych kosztów
z przyjętymi wartościami w harmonogramie i budżecie w planie bazowym
Warunki zastosowania metody
• zakres projektu (działania podzielone na wystarczająco małe jednostki)
• harmonogram
• planowany budżet
• stosowane jednostki miary: godziny, kwoty, liczba pakietów roboczych
• Metoda EV nie odnosi się do zadań zarządzania projektem !!!
Odchylenia
• kosztowe
CV(t) = EV(t) – AC(t)
EV(t) – wartość uzyskana w momencie t
AC(t) – koszt rzeczywisty w t
• harmonogramowe
SV(t) = EV(t) – PV(t)
PV(t) – koszt planowany w t
Wskaźniki efektywności
• wskaźnik wykonania kosztów
CPI = EV(t)/AC(t)
• wskaźnik wykonania harmonogramu
SPI = EV(t)/PV(t)
Wartości estymowane projektu
• estymacja kosztu zakończenia
EAC = BAC/CPI
BAC – planowany koszt zakończenia projektu(wartość skumulowana)
• estymacja czasu trwania
SAC = BAS/SPI
BAS – planowany czas trwania projektu (wartość skumulowana)
Założenia do szacowania metodą EV w
wersji (0:100)
• wartość uzyskana
– zadanie zakończone stanowi wartość 100% kosztu planowanego
– zadanie rozpoczęte i nierozpoczęte stanowi wartość 0
• koszt rzeczywisty AC może stanowić wartość równą, mniejszą lub większą od kosztu planowanego PV, dla uproszczenia przyjęto AC=PV
Założenia do szacowania metodą EV w
wersji 50:50
• wartość uzyskana
– wykonanie zadania oszacowane na połowę lub więcej stanowi wartość
50% kosztu planowanego zadania
– wykonanie zadania oszacowane na mniej niż 50% kosztu planowanego stanowi wartość 0
– zadanie zakończone stanowi wartość 100% planowanego kosztu zadania
• koszt rzeczywisty AC może stanowić wartość równą, mniejszą lub większą od kosztu planowanego PV, dla uproszczenia przyjęto AC=PV
Założenia do szacowania metodą EV
wersja szczegółowa
• wartość uzyskana liczona wg oceny procentowej planowanej wartości zadania (jako % planowanego kosztu)
• koszt rzeczywisty AC może stanowić wartość równą, mniejszą lub większą od kosztu planowanego PV, dla uproszczenia przyjęto AC=PV
Narzędzie Project???????
5. Miary i metryki oprogramowania
Aspekty mierzenia wielkości
oprogramowania
• długość - aspekt fizyczny
• funkcjonalność – aspekt użytkowy, efekty otrzymywane przez użytkownika w wyniku działania programu
• złożoność – aspekt budowy i użytkowy: strukturalny, obliczeniowy, semantyczny, …
Definicja pomiaru i miary atrybutu
• Pomiar jest procesem, w którym liczby lub symbole są przydzielane do atrybutów wybranego elementu świata rzeczywistego w sposób wyraźnie zdefiniowany za pomocą odpowiedniej reguły
• Miara jest empirycznie i obiektywnie wyznaczoną liczbą lub symbolem przypisanym do elementu, charakteryzowanego specyficznym atrybutem
Miary bezpośrednie i pośrednie
• Miara bezpośrednia - mierzenie atrybutu nie zależy od miary innego atrybutu: długość kodu źródłowego - LOC, funkcjonalność – liczba funkcji, czas trwania procesu - liczba godzin
• Miara pośrednia - mierzenia atrybutu wymaga odwołania się do miary jednego lub kilku innych atrybutów, a nawet innego obiektu: wydajność programisty – LOC/dzień, efektywność testowania – liczba odkrytych błędów/liczba testowanych pozycji
Atrybuty wewnętrzne i zewnętrzne
• Atrybuty wewnętrzne – cechy procesu, produktu, zasobów mierzone bezpośrednio względem danego obiektu: wielkość programu, złożoność programu
• Atrybuty zewnętrzne - cechy procesu, produktu, zasobów mierzone pośrednio, względem relacji danego obiektu ze środowiskiem: wydajność programisty, niezawodność programu, użyteczność
Klasy mierzonych obiektów projektu
• Proces: określone działanie lub zbiór powiązanych działań
• Produkt: artefakty; dokumenty, jako wyniki działań procesu; produkty pośrednie; produkt finalny
• Zasoby: każdy element niezbędny do wykonywania działań procesu
Miary długości
• liczba linii kodu programu LOC (lines of code)
LOC = NCLOC + CLOC
CLOC (commented lines of code) – linie komentarza programu
NCLOC (noncommented lines of code) – linie kodu niekomentarzowe
• liczba linii kodu kodu efektywnego, tj. bez linii komentarza
ELOC
ELOC (effective lines of code) – linie efektywne kodu
Miary długości
• liczba instrukcji źródłowych programu
DSI
DSI (delivered source instructions)
– liczona bez linii komentarza, ale z deklaracjami i nagłówkami
• liczba bajtów (znaków)
• liczba stron dokumentacji
• teoretyczna miara Halsteada
Miary funkcjonalności
• miara Bang DeMarco
• liczba punktów funkcyjnych FP (Function Points) – Albrecht i Symons
• liczba UCP (Use Case Points)
• liczba funkcji wykonywanych przez program
• liczba elementów struktury funkcjonalnej
• liczba elementów struktury informacyjnej
• odpowiedniość zbioru funkcji w odniesieniu do celów i zadań użytkownika
• dokładność otrzymywanych wyników
Miary złożoności
• liczba cyklomatyczna McCabe
• obiektywna miara złożoności Hendersona – Sellersa
• zestaw miar Chidambera i Kemerera
• miary modułowe - Henry i Kafura
6. Metody FP i UCP - przykłady zastosowania do szacowania wielkości oprogramowania.
Metoda stosowana do obliczania wielkości aplikacji tworzonej metodami obiektowymi i z użyciem pojęć języka UML
1. Obliczanie niedopasowanych punktów UUCP (Unadjusted Use Case Point)
2. Obliczanie czynnika złożoności technicznej TCF
3. Obliczanie czynnika złożoności środowiskowej EF
4. Obliczenie końcowych punktów przypadków użycia UCP
• Realizacja etapu w dwóch krokach: A - aktorzy i B - przypadki użycia
• Poziomy złożoności każdego składnika ustalane wg kryteriów podanych w tabelach współczynników wagowych
A. Sumowanie aktorów wg oceny ich złożoności: UUCP(A) = Σ zij * Wi
A. Sumowanie przypadków użycia wg rodzaju transakcji albo klasy oraz oceny ich złożoności
Transakcje: UUCP(UCT) = Σ zij * Wi
Klasy: UUCP(UCC) = Σ zij * Wi
• Obliczanie niedopasowanych punktów przypadków użycia
UUCP = UUCP(A) + UUCP(UCT) albo UUCP = UUCP(A) + UUCP(UCC)
FP metoda
Obliczanie „niedopasowanych” punktów funkcyjnych
Obliczanie wskaźnika poziomu technicznej złożoności
Obliczanie wielkości systemu za pomocą liczby punktów funkcyjnych
a) Wyznaczenie granicy aplikacji
b) Klasyfikacja składowych systemu wg typów funkcyjnych
c) Ustalenie poziomu złożoności dla każdego składnika danego typu funkcyjnego na podstawie macierzy złożoności
a) Obliczenie UFP według wzoru
z_ij – liczba składników i – tego typu j – tej złożoności
w_ij – waga składnika z_ij; i = 1, ...,5; j = 1, 2, 3
• DET – dana elementarna
• RET – logiczny plik danych
• FTR – logiczny plik referencyjny
a) Ustalenie poziomu i liczby stopni wpływu każdej charakterystyki na podstawie tabeli reguł
b) Obliczenie całkowitego stopnia wpływu DI = å c_i; i = 1, ...,14
c) Obliczenie wskaźnika technicznej złożoności: TCF = 0.65 + 0.01DI
FP = UFP * TCF
7. Modele szacowania wymiarów projektu: metoda Albrechta, Halsteada, COCOMO, metody
uproszczone. Rzetelność oszacowania. Standardowa procedura szacowania.
Lista funkcji elementarnych do przykładu
Z111. Przyjmij nowego pracownika
Z113. Awansuj pracownika
Z115. Zwolnij pracownika
Z213. Przydziel pracownika do zadania
Z311. Oceń pracownika za pomocą wskaźnika wydajności
Z411. Sporządź raport o lokalizacji pracowników
Z421. Ustal zadania przydzielone pracownikowi … w dniu …
Etap II i III - obliczenie FP
Etap II
Po ustaleniu poziomu wpływu dla każdej charakterystyki, całkowity stopień wpływu DI (2.b)
DI = 21
Po podstawieniu do wzoru (2.c), wskaźnik technicznej złożoności TCF
Etap III
TCF = 0.65 + 0.21= 0.86
Po podstawieniu obliczonych wielkości UFP i TCF do wzoru na obliczanie FP
(3) otrzymuje się
FP = 65*0.86 = 55.9
Metoda halsteda
Nieliniowy, teoretyczny model nakładów
Halsteada (1)
Zauważono, że istnieje zależność
N = kSs (1)
gdzie
N – długość programu jako całkowita liczba operatorów i operandów
n – słownik programu, jako liczba unikalnych operatorów i
operandów
S – oszacowany rozmiar programu w LOC
k – stała, jako średnia liczba operatorów i operandów przypadająca na linię kodu w danym języku programowania (np..Fortran: 7, PL/S: 5)
Nieliniowy, teoretyczny model nakładów
Halsteada (2)
TW1:
V – wielkość programu
TW2:
V = N*log2(n) (2)
E = D*V (3)
gdzie D – trudność programu
D n1
* N 2
(4)
2 * n2
Nakład E aproksymowany przez
E = N2,28/4 (5)
(3)
TW3:
T - czas na wykonanie projektu
T = E / [s] (6)
gdzie
- liczba elementarnych wyróżnień myślowych na sekundę 5<= <=20
u Halsteada = 18
• COnstructive COst Model
• Narzędzie programowe BYL (Before You Leap)
• Model hybrydowy: łączy metody doświadczalne z elementami wnioskowania statystycznego
• Występuje w postaciach zależnych od
– fazy cyklu życia: wstępna, wczesnego projektowania, zaawansowana faza cyklu
– typu systemu: autonomiczny, częściowo wbudowany, wbudowany
• Nakład pracy (np..osobo-miesiące)
E = a(S)^b*m(X), gdzie: S – prognozowana wielkość systemu (KDSI, KLOC), m(X) – współczynnik wnioskowania, jako sterownik kosztowy, a, b - parametry zależne od typu systemu
T = a(E)^b, gdzie: E – prognoza całkowitego nakładu pracy potrzebnego na realizację
całego przedsięwzięcia w osobomiesiącach a, b – parametry
1. Model kompozycji/wczesnego prototypowania – najwcześniejsza faza cyklu, model odpowiedni dla projektów, w których stosowane są narzędzia GUI, podejście prototypowania oraz rozległego ponownego użycia (ang. reuse), stosowane są punkty obiektowe i prosta formuła nakładów.
2. Model wczesnego projektowania – faza cyklu po uzgodnieniu wymagań, ale przed zdefiniowaniem całej architektury, najczęściej stosowane są punkty funkcyjne transponowane na SLOC.
3. Model po - architekturowy - po utworzeniu architektury i podczas budowy oprogramowania, posiada nowe sterowniki kosztowe i nowe reguły obliczania linii kodu
(SLOC).
• Technika grupowej oceny eksperta jest stosowana w początkowej fazie projektu
• Recenzje grupowe – techniki niestrukturalne
• Technika Wideband Delphi – technika strukturalna
• Każdy członek zespołu samodzielnie szacuje fragmenty projektu
• Spotkanie grupy w celu omówienia i dyskutowania oszacowań
• Obliczenie średniej wielkości oszacowań
• Wielkość średnia oszacowania lub przedziały wielkości muszą być przedyskutowane
• Konieczne jest uzyskanie consensusu – wypracowanie wspólnego oszacowania, akceptowanego przez całą grupę
• Uwaga! Nie należy mechanicznie przyjmować wielkości średniej
Metody uproszczone:
• orzekająca
• ekstrapolacyjna
• próbkowania
• „przedwczesnego zapłonu”
• uśredniania
• Wielkość orzekająca UFP obliczana na podstawie liczby ILF i EIF z metody FP:
oUFP = 35 x ILF + 15 x EIF
• Ekstrapolacja rozmiaru na podstawie wybranego elementu systemu – ILF
• Krok 1: UFP = liczba ILF * a, gdzie a = 11,01 system plikowy; = 14,93 system transakcyjny
• Krok 2: FP = 1,0163*(UFP*TCF)^1,0024
FP = liczba typów encji * a * b * c
• a – 0.8, ponieważ średnio 20% encji podlega grupowaniu
• b – 33, suma składników typu ILF, EI, EO, EQ wg wagi średniej złożoności:
33 = 1*10(ILF)+3*4(C/U/D)+0.5*4(EI)+1*5(EO)+1*4(EQ)
• c – 1.25, ponieważ średnio tylko 75% wymagań jest znanych na początku
– opracowanie prognoz dla trzech scenariuszy: optymistyczny (max), najbardziej prawdopodobny (npd), pesymistyczny (min)
– obliczenie wartości oczekiwanej wg ustalonego rozkładu zmiennej
• Szacowanie aspektów dziedziny informacyjnej
– oszacować przedziały wartości zmiennych prognostycznych - składniki UFP,
– oszacować wartości: optymistyczną, najbardziej prawdopodobną, pesymistyczną
– obliczyć wartości oczekiwane każdej zmiennej, np. dla rozkładu beta
S = (sop+4*sm+sp)/6
– porównać otrzymane wartości oczekiwane z danymi historycznymi mierzonymi za pomocą FP
• Szacowanie współczynnika TCF na poziomie średnim TCF = 1
• Szacowanie FP na podstawie np.. metody trzech punktów FP = 318*1,0 = 318
• Zastosowanie wskaźników otrzymanych przy podobnych przedsięwzięciach, np.:
średnia wydajność - 26,5 PF/om
koszt – 800 zł/PF
• Oszacowanie wielkości projektowych:
nakład = 318/26,5 = 12 osobo-miesięcy
koszt = 318 * 800 = 254 400 zł
Dokładność metody szacowania
• Średnia wielkość błędu względnego
MMRE = suma x(i)/n
gdzie: x (i)= |e(i)-a(i)|/a(i)
e(i) – wartość oszacowana i-tego projektu a(i) – wartość rzeczywista i-tego projektu
n – liczba projektów
i – konkretny projekt
• MMRE<0.25 - miara rzetelności szacowania
• Ocena rzetelności danej metody:
PRED(V) = N/n
gdzie: N – liczba projektów z x(i)<V
n – liczba wszystkich projektów
V – wymagana miara rzetelności szacowań
• PRED(0.25)>0.75 uważa się za dobry wynik
Czynniki dokładności oszacowania nakładów na
projekt informatyczny
• dokładność oszacowania wielkości produktu końcowego
• zmienność wymagań wobec produktu
• znajomość metod obliczania kosztów, terminów i nakładów pracy
• uwzględnienie kwalifikacji wykonawców projektu
• stabilność środowiska projektu
• Wyraźnie określony proces tworzenia oszacowań, obowiązujący na poziomie organizacji
• Standardowa procedura nie pozwala
– na zgadywanie i szacowanie bez przygotowania
– wprowadzanie zmiany oszacowań bez uzasadnienia
• Standardowa procedura sprzyja
– zachowywaniu spójności procesu szacowania
– pozwala na śledzenie wykonanych działań, szczególnie istotne w przypadku błędnych oszacowań
– poprawianiu i doskonaleniu procesu szacowania (procedury)
• Stosowanie obliczeń zamiast subiektywnej oceny
• Stosowanie kilku metod szacowania i porównywanie ich wyników
• Planowane powtórki szacowania w predefiniowanych miejscach projektu
• Określenie potrzeb zmiany wymaganej metody szacowania w trakcie realizacji projektu
• Opis dokładności szacowania
• Określenie warunków dla zastosowania wyników szacowania do ustalenia budżetu projektu
• Wymagania archiwizacji danych procesu szacowania i weryfikowania skuteczności procedury
• Szczegóły standardowych procedur są zróżnicowane ze względu na rodzaj projektu
wielkość: mały, średni, duży
model realizacji oprogramowania: sekwencyjny, iteracyjny
Oszacowanie rozpoznawcze – zatwierdzona definicja produktu
– Wykonanie co najmniej jednego oszacowania przy użyciu każdej z następujących metod:
• Metoda wstępująca przy użyciu WBS
• Metoda zstępująca, przy zastosowaniu podobieństwa do analogicznych projektów
• Metoda przy użyciu składników standardowych: strony WWW, tabele baz danych, reguły biznesowe, ekrany, okna dialogowe, raporty …
– Uzyskanie jednopunktowego oszacowania wielkości nominalnej metodą Wideband Delphi, np.. nakład o wielkości N
– Oszacowanie powinno być przedstawione w postaci przedziału od minus 50% do plus 100% (0.5N do 2N)
• Jednopunktowe oszacowanie nominalne nie powinno być ujawniane
• Oszacowanie to nie powinno być wykorzystywane do ustalania budżetu ani podejmowania zewnętrznych zobowiązań
Oszacowanie budżetu – zakończone projektowanie produktu
– Wykonanie nowego oszacowania przy użyciu dwóch metod:
• Metoda wstępująca przy użyciu WBS
• Metoda przy użyciu składników standardowych
– Wykonanie oszacowania punktów funkcyjnych
• Obliczyć punkty funkcyjne na podstawie specyfikacji wymagań
• Skalibrować otrzymane obliczenia na podstawie danych historycznych
• Oszacować nominalny nakład pracy i harmonogram przy użyciu oprogramowania do szacowania
– Powtarzanie oszacowania do uzyskania zbieżności wszystkich wyników w granicach 5%. Użycie wielkości średniej z tych oszacowań jako oszacowanej wielkości nominalnej N
– Obliczenie nowego przedziału oszacowań jako 0.8N do 1.25N
• Podstawą budżetu powinna być wielkość 1N
• Rezerwa budżetowa 0.25N
• Ujawnić tylko górną granicę 1.25N
• Nie używać tego oszacowania do zewnętrznych zobowiązań
Wstępne oszacowanie zobowiązań – po drugim wydaniu tymczasowym
– Wykonanie nowego oszacowania przy użyciu metody wstępującej
• Utworzenie szczegółowej listy zadań
• Oszacowanie potrzebnego nakładu pracy przez programistów i testerów i innych przy użyciu rozkładu beta (metoda trzech punktów)
• Obliczenie sumy nominalnych oszacowań
– Porównanie otrzymanego wyniku z wynikiem z poprzedniego wydania (krok II).
• Obliczenie nominalnego oszacowania za pomocą wzoru:
(2xgórne oszacowanie +dolne oszacowanie)/3
– Obliczenie nowego przedziału oszacowania jako 1.0N do 1.1N
• Górna granica przedziału może być ujawniona na zewnątrz i użyta do zobowiązań zewnętrznych
• Przedział 1.0N do 1.1N można ujawniać wewnątrz firmy
Końcowe oszacowanie zobowiązań – po trzecim wydaniu tymczasowym
– Porównanie szacowanego wyniku z faktycznym wynikiem z poprzedniego wydania (krok III).
• Obliczenie poprawionego oszacowania nominalnego za pomocą wzoru: pozostały nakład pracy = planowany pozostały nakład pracy/(faktyczny dotychczasowy nakład pracy/planowany dotychczasowy nakład pracy)
• Dodanie wszystkich zadań pominiętych w kroku III
– Użycie sumy powyższych dwóch składników jako nowego nominalnego nakładu pracy N
• Wartość nominalna 1.0N może być ujawniona na zewnątrz
• Zewnętrzne zobowiązania mogą być ustalone na 1.0N
• Przedział od 0.9N do 1.1N może być podany do użytku wewnętrznego (plus/minus 10%)
• Ponowne oszacowanie projektu – w trakcie realizacji w odpowiedzi na duże zmiany w jego założeniach
• Zakończenie projektu
– Zebranie i archiwizacja danych o faktycznych rezultatach projektu
– Sprawdzenie dokładności każdego oszacowania
• Analiza głównych przyczyn wszystkich poważnych błędów
• Ocena możliwości uzyskania takiej samej dokładności oszacowań mniejszym wysiłkiem
• Propozycje zmian w standardowej procedurze szacowania
8. Metodyki adaptacyjne/zwinne: metoda Scrum.
Podstawowe założenia:
• iteracje – najczęściej 30-dniowe przedziały czasowe - sprint
• przyrostowe tworzenie oprogramowania
• empiryczna kontrola procesu: przejrzystość, kontrola, adaptacja
• samorganizujący się zespół projektowy
Narzędzia: SpiraPlan® - Scrum Project Management
Właściciel produktu
• Jest właścicielem definicji sukcesu.
• Kieruje produktem od sprintu do sprintu, aby zapewnić największy zwrot z inwestycji i dostarczyć pewną wartość dla organizacji.
• Zarządza wskaźnikiem ROI (return on investment) poprzez określenie priorytetów oraz publikację planów. Jest jedynym właścicielem zaległości produktu. Określa plan rozwoju projektu poprzez wyznaczanie priorytetów zaległości.
• Eliminuje błędy wielu szefów, różnych opinii i zakłóceń.
Mistrz
• Jedna osoba z zespołu wciela się w rolę mistrza ułatwiającego codzienną pracę zespołu. Mistrz nie robi nic innego, całe jego obciążenie to pełnienie roli Mistrza w pełnym wymiarze czasu pracy.
• Mistrz jest odpowiedzialny za zapewnienie, że zespół żyje wartościami i pracuje zgodnie z regułami metody Scrum.
• Jest tarczą zespołu projektowego dla agresywnych klientów, upewniając się, że zespół nie wychodzi ponad zobowiązania aktualnego sprintu.
• Mistrz staje się odpowiedzialny za usuwanie wszelkich przeszkód, które są zgłaszane przez zespół podczas spotkań.
• Rola mistrza jest zwykle pełniona przez kierownika projektu lub kierownika zespołu technicznego, ale może to być każda osoba z zespołu zarządzania projektem.
Członek zespołu projektowego – tzw. „świnki”
• Właściciel produktu
• Mistrz
• Wykonawcy: architekt, programista, analityk, tester, ekspert …
Pozostali interesariusze projektu – tzw. „kurczaki”,
• nie posiadają formalnej odpowiedzialności
• są zainteresowani projektem,
• biorą udział w spotkaniach przeglądu sprintu,
• podczas spotkań nie mogą mówić, co zespół powinien zrobić
BACKLOG (lista zaległości) produktu – rejestr produktowy
• Lista wymagań funkcjonalnych i niefunkcjonalnych projektu, ułożonych według priorytetów z przewidywanym czasem na ich zakończenie i wdrożenie.
• Szacunki są podawane w dniach i są bardziej precyzyjne dla wyższych pozycji w kolejce zaległości produktu.
• Priorytety pozycji powinny być ustalone na podstawie największej wartości dla firmy, obliczone za pomocą metody ROI.
• Ta lista w trakcie realizacji rozwija się i zmienia.
BACKLOG sprintu – rejestr zaległości sprintu
• Rejestr zadań, które zespół Scrum zobowiązuje się wykonać całkowicie w bieżącym sprincie.
• Pozycje zaległości sprintu pochodzą z rejestru zaległości produktu.
• Zespół kieruje się priorytetami ustalonymi przez właściciela produktu i swoimi oszacowaniami dotyczącymi czasu ich wykonania.
• Krytyczne jest to, że to sam zespół wybiera pozycje z listy zaległości, ponieważ to zespół zobowiązuje się do zakończenia tych zadań.
Sprint
• Sprint jest to czas przeznaczony na opracowanie jednego przyrostu produktu. Jest to metoda „time boxing: czas, koszt i zakres, ważniejszy jest zakres niż poślizg w dacie zakończenia.
• Sprint obejmuje projektowanie, programowanie, testowanie i dokumentowanie.
• Tylko po rozpoczęciu sprintu zespół może dodawać lub usuwać elementy z rejestru zaległości sprintu.
• Jeżeli osiągnięcie celu sprintu nie ma sensu, to następuje tzw. Nadzwyczajne zakończenie sprintu.
Sprint wydania
• Wydanie oprogramowania do działania (produkcji) wymaga specjalnego sprintu, nazywanego „sprintem wydania”.
• Do tego sprintu jest dedykowany zespół sprintu wydania
Spotkanie planowania sprintu
• Celem jest ustalenie rejestru zaległości sprintu
• Właściciel produktu opisuje właściwości o najwyższym priorytecie, a zespół decyduje, do czego może się zobowiązać i co może dostarczyć w danym sprincie. Odbywa się to w ciągu dwóch kolejnych spotkań (4 godziny),
• Zespół planuje zadania do wykonania, których zbiór tworzy rejestr zaległości sprintu
• Codzienne spotkanie trwające 15 minut, ważne jest aby odbywało się codziennie w tym samym miejscu i czasie.
• Podczas spotkania zespół siedzi w kręgu naprzeciwko siebie i każdego członka zespołu dotyczą następujące trzy pytania:
1. Co zrobiłeś od ostatniego spotkania?
2. Co będziesz robił od teraz do następnego spotkania?
3. Jakie problemy przeszkadzają Ci w wykonywaniu pracy?
• Na koniec każdego sprintu odbywa się spotkanie przeglądowe sprintu. Podczas tego spotkania zespół Scrum demonstruje, co zostało zakończone w fazie tego sprintu. Zwykle jest to forma prezentacji nowych funkcji.
• Zaleca się, aby spotkania przeglądowe sprintu było nieformalne, z zasady zakazuje się slajdów programu PowerPoint i pozwala na poświęcenie nie więcej niż dwie godziny czasu na przygotowanie
się do tego spotkania. Spotkania nie mogą stać się uciążliwe dla zespołu, powinny być naturalnym wynikiem sprintu.
• Uczestnicy spotkania przeglądowego sprint: właściciel produktu, zespół Scrum, mistrz, zarząd, klienci i inżynierowie z innych projektów.
• Podczas tego spotkania projekt jest porównywany z celem sprintu ustalonym podczas spotkania planowanie sprintu. Najlepiej jest, gdy zespół zakończy każdą pozycję z rejestru produktów dla tego
sprintu, ale ważniejsze jest osiągnięcie celu sprintu.
• To spotkanie jest wykorzystywane przez mistrza do omówienia zakończonego Sprintu i ma na celu określenie, co można zmienić w następnym Sprincie, by praca była przyjemniejsza i bardziej
produktywna.
• Dyskusja może dotyczyć wszystkiego, co wpływa na pracę zespołu: procesy, praktyki, komunikację, środowisko, narzędzia.
• Retrospektywa Sprint jest ważnym narzędziem, które pozwala zespołowi na ciągłą poprawę w całym cyklu życia projektu.
• Scrum powinien być postrzegany jako ramy, które powinny być odpowiednio dostosowane do danego projektu, zespołu i konkretnej sytuacji.
• Zapewnia najwyższe wartości firmy na wczesnym etapie projektu, unikając jednocześnie nierealistycznych wymagań i niepotrzebnej pracy
• Poprawia satysfakcję klienta
• Dostarcza podejścia kierowanego przez klienta
• Skupia się na szybkości dostawy
• Zapewnia otwartość i przejrzystość dla klientów
• Usuwa przeszkody w sposób priorytetowy i systematyczny
• Poprawia utrzymanie pracowników przez umożliwienie oraz promowanie samorządności, komunikacji w zespole, naukę i rozwój
• Efekty firmy Microsoft ze Scrum: czterokrotny wzrost średniej wydajności i dwanaście razy lepsza jakość
• Kaskadowy model zarządzania projektem bazuje na dokładnie zdefiniowanej metodyce, najpierw z góry określone wymagania, logiczny podział pracy, estymacja, planowanie, a następnie rozpoczęcie realizacji, w której ogranicza się zmiany, jako zagrożenie dla planu
• W Scrum oczekuje się zmian, co oznacza, że końcowy wynik będzie produktem, który w większym stopniu spełni potrzeby klientów na zakończenie projektu.
• W Scrum zakłada się, że nastąpią znaczące zmiany linii bazowej w trakcie realizacji projektu.
• Jest to nieprzewidywalne środowisko zarządzania projektami, do którego zaleca się wykorzystywanie metod empirycznych, a nie deterministycznych.
9. Jakość i modele jakości produktu informatycznego
• Stopień zrozumienia i odkrycia potrzeb w trakcie definicji wymagań
• Stopień przekształcenia definicji wymagań w produkt informatyczny
• Stopień wspierania produktu
• Stopień, w jakim produkt odpowiada wymaganiom sprecyzowanym i domniemanym
Zbiór charakterystyk pozwalających na stwierdzenie zadowolenia w odniesieniu do wywnioskowanych potrzeb.
Zbiór charakterystyk i relacji między nimi, które stanowią podstawę dla specyfikacji wymagań jakości
i oceny jakości.
Podejście hierarchiczne
• McCalla
• Boehma
• FURPS
• ISO 9126
• Dromeya
Podejście wielowymiarowe
• Ortega, Perez, Rojas
• Funkcjonalność
• Łatwość użytkowania
• Niezawodność
• Wydajność
• Łatwość wspierania
Trzy modele wyróżnione ze względu na etapy cyklu życia:
• model wymagań
• model projektu
• model implementacji
Wprowadza dodatkową charakterystykę:
• dojrzałość procesu
Jako konsensus między różnymi modelami na podstawie modelu McCalla
Trzy poziomy
• charakterystyki
• podcharakterystyki
• metryki
9126 – 1: model jakości
9126 – 2: metryki zewnętrzne
9126 – 3: metryki wewnętrzne
9126 – 4: metryki jakości użytkowej
• Jakość wewnętrzna to ogół cech oprogramowania z wewnętrznego punktu widzenia.
• Jest mierzona i oceniana podczas projektowania i kodowania w stosunku do wymagań określonych w specyfikacji wymagań (modele statyczne i dynamiczne) i kodzie źródłowym programu, przy użyciu metryk wewnętrznych.
• Miara ilościowa, stosowana do mierzenia atrybutu lub charakterystyki produktu informatycznego, wyprowadzonej pośrednio lub bezpośrednio z produktu
• Stosowana do produktu w postaci źródłowej, podczas projektowania i kodowania na wczesnym etapie rozwoju
• Jakość zewnętrzna to ogół cech oprogramowania z zewnętrznego punktu widzenia.
• Mierzona i oceniana względem uruchamianego programu podczas testowania w środowisku symulowanym i na danych testowych, przy użyciu metryk zewnętrznych.
• Podczas testowania większość usterek powinna być wykryta i usunięta, jednak niektóre błędy, po zakończeniu testowania, nadal mogą zostać.
• Miara ilościowa, stosowana do mierzenia atrybutu lub charakterystyki produktu informatycznego, wyprowadzonej z zachowania całego systemu lub jego części
• Stosowana do produktu w postaci wykonywalnej, podczas testowania lub działania, w późniejszym etapie rozwoju lub po wprowadzeniu do procesu eksploatacji
Zdolność produktu do umożliwienia określonym użytkownikom osiągnięcia wyspecyfikowanych celów w zakresie
• efektywności,
• produktywności,
• bezpieczeństwa,
• satysfakcji
w specyficznym kontekście użycia.
10. Wybrane aspekty projektowania: projekt formularza ekranowego i papierowego, projekt
raportu, reguły projektowania relacyjnej bazy danych. Zasady projektowania interfejsu
użytkownika.
• Podział okna na sekcje funkcjonalne
• Zależność tematyczna między wywołującymi się oknami
• Zasady prezentacji tekstu
• grupowanie informacji wg zadanego kryterium (tytuły)
• wyodrębnianie tekstu (wybór czcionki: rodzaj, rozmiar, kolor)
• Elementy graficzne: obramowania, różne kolory tła (unikać deseni), ikony
• Dźwięk do ostrzegania i potwierdzania
• Unikanie złożonych elementów graficznych (np. ruchomych)
• Przestrzeganie standardowych konwencji kolorowania
• Kolory - podkreślenie ważności niektórych danych i poprawa czytelności
• Dostateczna ilość miejsca w polu
• Pola wyboru
• Instrukcje wypełniania pól
• Ustalenie kolejności i grupowanie pól
• Formularze samokopiujące
• Unikanie zbędnych pytań
PROJEKT RAPORTU
• Funkcje wyszukujące i przekształcające informacje z bazy danych w celu dostarczenia wiedzy użytkownikowi
• Postać raportu zależy od:
– rodzaju użytkownika
– przeznaczenia danych
– sposobu korzystania z danych
• Specyfikacja funkcji wydawniczej:
– kryteria wyboru danych
– lista przeszukiwanych tabel i relacji
– sposób sortowania wyszukanych danych
– algorytm otrzymywania danych pochodnych
układ i format danych
Podstawowe składniki raportu
• dane identyfikacyjne: nazwa, krótki opis, data sporządzenia, numer wersji
• prezentowane dane, np. układ tabelaryczny, wykresy, komentarze …
• stronicowanie, kontynuacja strony
• zakończenie raportu
Reguły projektowania relacyjnej bazy danych(Z INTERNETU)
Proces projektowania relacyjnej bazy danych składa się z wielu elementów. Do najważniejszych należą:
ustalenie jakie informacje będą przechowywane w bazie,
z ilu i jakich tabel składa się baza,
jakie informacje gromadzone są w każdej z tabel - należy określić nazwy pól, typ przechowywanych danych oraz inne właściwości
Zasady projektowania tabel bazy danych:
normalizacja tabel - zbiór reguł, które należy stosować podczas projektowania tabel
pierwsza postać normalna dotyczy tabeli, której pola zawierają informację elementarną (czyli taką, której nie można rozdzielić na mniejsze), np. tabela, w której pole zawieraj imię i nazwisko nie jest w pierwszej postaci normalnej
redundancja danych to wielokrotne powtarzanie informacji - należy unikać projektując tabele
• Minimalizacja interakcji
• Zachowanie stylu interakcji systemów używanych i akceptowanych przez użytkownika
• Możliwość wyboru kolejności wykonania operacji lub anulowania
• Pomoc: wartości domyślne, znana użytkownikowi terminologia, tytuły ekranów, znaki zachęty, podpowiedzi (najlepiej kontekstowe)
• Obsługa błędów:
- zachowanie reguł integralności przedsiębiorstwa (transakcja, wyłączność, równoległe systemy),
- pomoc użytkownikowi w naprawie błędu lub kontynuacja działania (komunikat o błędzie i podpowiedź dalszego działania)