FAZA STRATEGICZNA. Podstawowe hasło: Nie skupiać się na szczegółach! (na razie) Czynności w fazie strategicznej: Decyzje strategiczne:

Podobne dokumenty
Faza Określania Wymagań

Faza strategiczna. Synteza. Analiza. Instalacja. Faza strategiczna. Dokumentacja. kodowanie implementacja. produkt konserwacja

Inżynieria oprogramowania wykład IV Faza określenia wymagań

Cele przedsięwzięcia

IO - inżynieria oprogramowania. dr inż. M. Żabińska, zabinska@agh.edu.pl

Określanie wymagań. Cele przedsięwzięcia. Kontekst przedsięwzięcia. Rodzaje wymagań. Diagramy przypadków użycia use case diagrams

Zakład Języków Programowania Instytut Informatyki Uniwersytet Wrocławski

Zasady organizacji projektów informatycznych

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Zakład Języków Programowania Instytut Informatyki Uniwersytet Wrocławski

Inżynieria oprogramowania wykład III Faza strategiczna

Etapy życia oprogramowania

Etapy życia oprogramowania. Modele cyklu życia projektu. Etapy życia oprogramowania. Etapy życia oprogramowania

Praktyczne aspekty stosowania metody punktów funkcyjnych COSMIC. Jarosław Świerczek

IO - inżynieria oprogramowania

Specyfikacja wymagań systemowych (może podlegać edytowaniu na kolejnych etapach)

KATEDRA INFORMATYKI STOSOWANEJ PŁ INŻYNIERIA OPROGRAMOWANIA

Inżynieria oprogramowania II

Błędy procesu tworzenia oprogramowania (Badania firmy Rational Software Corporation)

<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0>

Zarządzanie i realizacja projektów systemu Microsoft SharePoint 2010

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?

020 ANALIZA WYMAGAŃ. Prof. dr hab. Marek Wisła

Wprowadzenie do metodologii modelowania systemów informacyjnych. Strategia (1) Strategia (2) Etapy Ŝycia systemu informacyjnego

Metodyka projektowania komputerowych systemów sterowania

Maciej Oleksy Zenon Matuszyk

PLAN ZARZĄDZANIA WYMAGANIAMI PROJEKT <NAZWA PROJEKTU> WERSJA <NUMER WERSJI DOKUMENTU>

Inżynieria wymagań. Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

Spis treúci. 1. Wprowadzenie... 13

5. Wprowadzenie do prawdopodobieństwa Wprowadzenie Wyniki i zdarzenia Różne podejścia do prawdopodobieństwa Zdarzenia wzajemnie wykluczające się i

Inżynieria wymagań. Inżynieria wymagań 1/1

Narzędzia informatyczne wspierające przedsięwzięcia e-commerce

Projektowanie oprogramowania

SIEĆ NEURONOWA DO OCENY KOŃCOWEJ PRZEDSIĘWZIĘCIA (PROJEKTU)

Wykład 8. Testowanie w JEE 5.0 (1) Autor: Zofia Kruczkiewicz. Zofia Kruczkiewicz

Testowanie i walidacja oprogramowania

INŻYNIERIA OPROGRAMOWANIA TESTOWANIE SYSTEMOWE

Diagramy obiegu dokumentów a UML w modelowaniu procesów biznesowych. Stanisław Niepostyn, Ilona Bluemke Instytut Informatyki, Politechnika Warszawska

Standard określania klasy systemu informatycznego resortu finansów

Analiza wielokryterialna wstęp do zagadnienia

Dokument Detaliczny Projektu

Wstęp. Inżynieria wymagań. Plan wykładu. Wstęp. Wstęp. Wstęp. Schemat procesu pozyskiwania wymagań

INFORMATYCZNE SYSTEMY ZARZĄDZANIA

W poprzedniej prezentacji: Przewodnik po biznesplanie

Zarządzanie projektami. Wykład 3 Wyznaczanie zakresu projektu Planowanie projektu

Projektowanie oprogramowania. Wykład Weryfikacja i Zatwierdzanie Inżynieria Oprogramowania Kazimierz Michalik

WPROWADZENIE DO UML-a

SPECYFIKACJA WYMAGAŃ

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym

Projektowanie BAZY DANYCH

APIO. W7 SPECYFIKACJA (UŻYCIA) DOSTĘPU DO DANYCH I SPOSOBU ICH PRZETWARZANIA 1. METODA CRUD 2. LOGIKA FUNKCJI

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

MODELE CYKLU ŻYCIA OPROGRAMOWANIA (1) Model kaskadowy (często stosowany w praktyce do projektów o niewielkiej złożonoś

Cykle życia systemu informatycznego

Jarosław Kuchta Jakość Systemów Informatycznych Jakość Oprogramowania. Pomiary w inżynierii oprogramowania

Wybór systemu IT w przedsiębiorstwie

Jacek Skorupski pok. 251 tel konsultacje: poniedziałek , sobota zjazdowa

Dokument Detaliczny Projektu

Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło

ANALIZA HIERARCHICZNA PROBLEMU W SZACOWANIU RYZYKA PROJEKTU INFORMATYCZNEGO METODĄ PUNKTOWĄ. Joanna Bryndza

Wyznaczanie minimalnej odważki jako element kwalifikacji operacyjnej procesu walidacji dla wagi analitycznej.

Podejście tradycyjne. plan wykonanie sekwencyjna natura wykonywanych zadań

Analiza ryzyka nawierzchni szynowej Iwona Karasiewicz

Metody wytwarzania oprogramowania. Metody wytwarzania oprogramowania 1/31

Przekształcenia widmowe Transformata Fouriera. Adam Wojciechowski

Drzewo wad (2) Dodatkowo możliwe jest przypisanie maszyny/ urządzania/źródła dla każdej z faz procesu

SPECYFIKACJA WYMAGAŃ

Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania w języku C++

Plan. Struktura czynności myślenia (materiał, operacje reguły)

Diagramu Związków Encji - CELE. Diagram Związków Encji - CHARAKTERYSTYKA. Diagram Związków Encji - Podstawowe bloki składowe i reguły konstrukcji

Modelowanie przypadków użycia. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Koordynacja projektów inwestycyjnych

1. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI

Analiza i projektowanie obiektowe 2017/2018. Wykład 3: Model wiedzy dziedzinowej

Wykład 3 Wymagania. MIS n Inżynieria oprogramowania Październik Kazimierz Michalik Akademia Górniczo-Hutnicza im. S. Staszica w Krakowie

Wstęp do zarządzania projektami

PODSTAWY FUNKCJONOWANIA PRZEDSIĘBIORSTW

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

Szczegółowy opis przedmiotu umowy. 1. Środowisko SharePoint UWMD (wewnętrzne) składa się z następujących grup serwerów:

Proces zarządzania danymi

Wykład 7. Projektowanie kodu oprogramowania

ANNEX ZAŁĄCZNIK. wniosku dotyczącego ROZPORZĄDZENIA PARLAMENTU EUROPEJSKIEGO I RADY

Usługa: Audyt kodu źródłowego

Metoda przedwdrożeniowego wymiarowania zmian oprogramowania wybranej klasy systemów ERP

Plan zarządzania projektem

Proces badawczy schemat i zasady realizacji

MODELE CYKLU śycia OPROGRAMOWANIA

Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Wymagania jakości w Agile Programming

Informacje przedstawiane w sprawozdaniach z badań w aspekcie miarodajności wyników

Fazy modelu cyklu tworzenia

Zapewnij sukces swym projektom

Sage ERP X3 dla produkcji

Procesowa specyfikacja systemów IT

Zarządzanie projektem informatycznym

Wymagania pozafunkcjonalne - projektowanie interfejsu użytkownika

Dobór systemów klasy ERP

Sposoby przedstawiania algorytmów

Bezpieczeństwo aplikacji i urządzeń mobilnych w kontekście wymagań normy ISO/IEC oraz BS doświadczenia audytora

In ż ynieria oprogramowania wykład II Modele i fazy cyklu życia oprogramowania

Szablon Planu Testów Akceptacyjnych

Transkrypt:

FAZA STRATEGICZNA Faza strategiczna jest wykonywana zanim podejmowana jest decyzja o realizacji przedsięwzięcia. Jej zadaniem jest określenie celów tworzonego systemu oraz wymagań odnośnie szczegółów jego funkcjonowania. Podstawowe hasło: Nie skupiać się na szczegółach! (na razie) Czynności w fazie strategicznej: 1. Dokonanie serii rozmów z przedstawicielami klienta 2. Określenie celów przedsięwzięcia z punktu widzenia klienta 3. Określenie zakresu oraz kontekstu przedsięwzięcia 4. Ogólne określenie wymagań 5. Propozycja kilku możliwych rozwiązań (sposobów realizacji systemu) 6. Oszacowanie kosztów oprogramowania 7. Analiza i ocena rozwiązań 8. Prezentacja wyników fazy strategicznej przedstawicielom klienta oraz ewentualna korekta wyników 9. Określenie wstępnego harmonogramu przedsięwzięcia 10. Określenie standardów, zgodnie z którymi realizowane będzie przedsięwzięcie Decyzje strategiczne:! Wybór modelu, zgodnie z którym będzie realizowane przedsięwzięcie! Wybór technik stosowanych w fazach analizy i projektowania! Wybór środowiska implementacji! Wybór narzędzia CASE! Ocena możliwości wykorzystania gotowych komponentów! Podjęcie decyzji o współpracy z podwykonawcami lub o zatrudnieniu ekspertów Po stronie klienta warto osobno wyróżnić zleceniodawcę i przyszłych użytkowników. Określenie celów przedsięwzięcia z punktu widzenia klienta nie zawsze jest oczywiste. To powoduje częste nieporozumienia pomiędzy klientem i wykonawcą. 1

OCENA ROZWIĄZAŃ W fazie strategicznej zazwyczaj rozważa się kilka alternatywnych rozwiązań. Stosowane są różne kryteria oceny i różne jednostki miary. Na przykład:! koszt [tys. zł]! czas realizacji [miesiące]! niezawodność [ilość błędów/miesiąc]! możliwość ponownego użycia [%]! przenośność na inne platformy [%]! wydajność [ilość operacji/godzinę] Zebrane informacje o różnych wariantach są prezentowane i porównywane w postaci tabelarycznej. Najpierw usuwamy rozwiązania zdominowane (tzn. gorsze według wszystkich stosowanych kryteriów) Aby umożliwić porównanie pozostałych wprowadzana jest normalizacja wartości dla poszczególnych kryteriów oraz przypisanie wag. Normalizację przeprowadzamy poprzez wyznaczenie wartości skrajnych a następnie wliczenie nowych wartości ocen według formuły: Przykład: x znormalizowane = ( x xmin) ( x x ) max min Oceny końcowe wyznaczamy jako sumę ważoną ocen częściowych. Problemem jest dobór odpowiednich wag (często na wyczucie ). 2

SZACOWANIE KOSZTU OPROGRAMOWANIA Na koszt oprogramowania składa się:! koszt sprzętu będącego częścią tworzonego systemu! koszt zakupu wykorzystywanych narzędzi! koszt szkoleń, wyjazdów! nakład pracy!!! Najtrudniej oszacować pracę. Stąd najczęściej szacowanie kosztów oprogramowania jest utożsamiane z oszacowaniem nakładu pracy Metody szacowania nakładu pracy:! Ocena przez eksperta (na wyczucie),! Przez analogię do poprzednio realizowanych przedsięwzięć,! Wycena dla wygranej oszacowanie na podstawie kosztu oczekiwanego przez klienta i na podstawie kosztów podawanych przez konkurencję.! Przez dekompozycję przedsięwzięcie dzieli się na mniejsze zadania, następnie sumuje się koszt poszczególnych zadań.! Metody algorytmicznie np. model COCOMO lub Function Point Analysis. Polega na opisaniu przedsięwzięcia przez wiele atrybutów liczbowych a następnie odpowiedni algorytm lub formuła matematyczna wyznacza wynik. Metoda COCOMO ( COst COnstruction MOdel ) jest oparta na kilku formułach pozwalających oszacować całkowity koszt przedsięwzięcia na podstawie oszacowanej liczby linii kodu. 3

Metoda COCOMO proponuje proste formuły dla oceny ilości osobomiesięcy pracy oraz czasu potrzebnego na całość projektu: gdzie: n = a n nakład pracy [w osobomiesiącach] x długość ostatecznie dostarczonego kodu źródłowego [w tysiącach instrukcji] a oraz b współczynniki wyznaczone eksperymentalnie: 2.4 a 3.6 1.05 b 1.20 wyższe współczynniki stosowane są w przypadku występowania niepewności. b x gdzie: t = c t optymalny czas wykonania [w miesiącach], n nakład pracy [w osobo-miesiącach], c oraz d współczynniki wyznaczone eksperymentalnie: c = 1.5 0.32 d 0.38 im bardziej dziedzina problemu jest nieznana, tym współczynnik d jest wyższy. Wzory i współczynniki stosowane w tej metodzie są empiryczne. d n Metoda Function Point Analysis (FPA) Metoda punktów funkcyjnych szacuje koszt projektu na podstawie funkcji użytkowych, które system ma realizować. Metoda jest oparta na zliczaniu ilości wejść i wyjść systemu, miejsc przechowywania danych i innych kryteriów. Te dane są następnie mnożone przez zadane z góry wagi i sumowane. Rezultatem jest liczba punktów funkcyjnych. 4

Harmonogram przedsięwzięcia Ustalenie planu czasowego dla poszczególnych faz i zadań. Na przykład w postaci diagramu Gantta: Oszacowanie niepewności i ryzyka Najczęściej za pomocą Drzewa ryzyka, w którym:! wierzchołki drzewa odpowiadają sytuacjom - zdarzeniom.! krawędzie oznaczają przejścia do nowych sytuacji.! krawędziom są przypisane prawdopodobieństwa.! każde zakończenie scenariusza (liść w drzewie) jest opisane kosztem Na podstawie takiego drzewa można oszacować wartość oczekiwaną zysku/kosztu. Podstawowe rezultaty fazy strategicznej W postaci raportu dla klienta zawierającego:! definicję celów przedsięwzięcia! opis zakresu przedsięwzięcia! opis systemów zewnętrznych, z którymi system będzie współpracować! szkicowy opis wymagań! szkicowy model systemu! opis proponowanego rozwiązania! oszacowanie kosztów! wstępny harmonogram prac 5

FAZA OKREŚLANIA WYMAGAŃ (SPECYFIKACJI I ANALIZY) Celem fazy określenia wymagań jest skonstruowanie zbioru wymagań klienta wobec tworzonego systemu. Dokonywana jest zamiana celów klienta na konkretne wymagania zapewniające osiągnięcie tych celów. Błędy popełnione w tej fazie są bardzo kosztowne!! Klient z reguły nie wie dokładnie w jaki sposób osiągnąć założone cele.! Cele klienta mogą być osiągnięte na wiele sposobów.! Duże systemy są wykorzystywane przez wielu użytkowników o niezgodnych (czasem sprzecznych) celach i posługujących się różną terminologią.! Zleceniodawca nie musi być ostatecznym użytkownikiem i może źle rozumieć rzeczywiste potrzeby. Opis wymagań powinien:! być kompletny i niesprzeczny,! opisywać zewnętrzne zachowanie systemu a nie sposób realizacji,! opisywać ograniczenia, w jakich ma pracować system,! opisywać zachowanie systemu, gdy te ograniczenia nie są spełnione,! brać pod uwagę możliwość zmiany wymagań w przyszłości. Dokument określający wymagania powinien zawierać:! cele, zakres i kontekst. Czyli wyniki fazy strategicznej.! wymagania funkcjonalne. Opis funkcji i operacji systemu.! wymagania niefunkcjonalne. Opis ograniczeń sposobu działania.! Model systemu.! Słownik. Wyjaśnienie terminów niejasnych dla którejś ze stron lub niejednoznacznych. Do wszystkich ustaleń należy podawać powody, bo ułatwia to późniejsze wprowadzanie zmian. 6

Metody rozpoznania wymagań! Wywiady przygotowane w postaci listy pytań. Przeprowadzone na reprezentatywnej grupie użytkowników.! Studia na istniejącym oprogramowaniem ( zwłaszcza w przypadku, gdy nowe oprogramowanie zastępuje stare)! Budowanie prototypów systemu działających w zmniejszonej skali lub z uproszczonymi interfejsami. Metody specyfikacji wymagań:! Język naturalny - najczęściej stosowany. Opis taki jest rezultatem wstępnych rozmów z klientem. Wady: niejednoznaczność, utrudnia wykrycie powiązanych wymagań, powoduje trudności w wykryciu sprzeczności.! Formalizm matematyczny (rzadko stosowany).! Język naturalny strukturalny. Język naturalny z ograniczonym słownictwem i składnią.! Tablice, formularze. Wyspecyfikowanie wymagań w postaci tablic, kojarzących różne aspekty.! Diagramy blokowe: forma graficzna pokazująca cykl przetwarzania.! Diagramy kontekstowe: ukazują system w postaci jednego bloku oraz jego powiązania z otoczeniem, wejściem i wyjściem.! Diagramy przypadków użycia: poglądowy sposób przedstawienia aktorów i funkcji systemu. Typowym błędem występującym w tej fazie jest koncentrowanie się na sytuacjach typowych i pomijanie wyjątków oraz przypadków granicznych. 7

WYMAGANIA FUNKCJONALNE Opisują funkcje (czynności, operacje) wykonywane przez system. Funkcje te mogą być również wykonywane przy użyciu systemów zewnętrznych. Formularz wymagań funkcjonalnych - zapis jest podzielony na konkretne pola, co pozwala na łatwe stwierdzenie kompletności opisu oraz na jednoznaczną interpretację Przykład: Nazwa funkcji Edycja dochodów pracownika Opis Funkcja pozwala edytować łączne dochody podatnika uzyskane w danym roku. Dane wejściowe Informacje o dochodach pracowników uzyskane uzyskanych z różnych źródeł: kwoty przychodów, koszty uzyskania, zapłacone zaliczki Źródło danych Dokumenty oraz informacje dostarczone przez podatnika. wejściowych Warunek wstępny Kwoty przychodów i kwoty kosztów są liczbami dodatnimi Warunek końcowy Efekty uboczne Kwota dochodu = kwota przychodu - kwota kosztów Uaktualnienie podstawy opodatkowania Zazwyczaj operacji jest bardzo dużo i trzeba je jakoś uporządkować. Standardowym rozwiązaniem jest wprowadzenie hierarchii wymagań funkcjonalnych poprzez rozbicie funkcji na podfunkcje. Taka hierarchia może być reprezentowana w formacie tekstowym lub graficznym Przykład: 8

WYMAGANIA NIEFUNKCJONALNE Opisują inne ograniczenia, przy których system ma realizować swoje funkcje. Na przykład: wymagania dotyczące formy produktu (rodzaj interfejsu), dotyczące procesu (np. spełnianie norm czy standardów): Cecha Wydajność Użycie zasobów łatwość używania Niezawodność Odporność Przenośność Ograniczenia Liczba transakcji na sekundę Czas odpowiedzi Wymagana pamięć operacyjna lub dyskowa Czas przeszkolenia pracowników Rodzaj i wielkość dokumentacji użytkownika Częstotliwość błędnego wykonania Procent czasu niedostępności systemu Czas restartu po awarii Prawdopodobieństwo zniszczenia danych w wyniku awarii Procent kodu zależnego od platformy Liczba platform, na których działa Koszt przeniesienia na nową platformę 9

DOKUMENT SPECYFIKACJI WYMAGAŃ Wymagania powinny być zebrane w dokumencie - opisie wymagań. Oprócz cech wymienionych na str. 6. ten dokument powinien:! być podstawą szczegółowego kontraktu między klientem a producentem oprogramowania,! pozwalać na weryfikację stwierdzającą, czy wykonany system rzeczywiście spełnia postawione wymagania,! być zrozumiały dla obydwu stron. Przykładowa zawartość dokumentu specyfikacji wymagań Norma ANSI/IEEE Recommended Practice for Software Requirements Specifications 1. Wstęp 1.1. Cel 1.2. Zakres 1.3. Definicje, akronimy i skróty 1.4. Referencje, odsyłacze do innych dokumentów 1.5. Krótki przegląd 2. Ogólny opis 2.1. Walory użytkowe i przydatność projektowanego systemu 2.2. Ogólne możliwości projektowanego systemu 2.3. Ogólne ograniczenia 2.4. Charakterystyka użytkowników 2.5. Środowisko operacyjne 2.6. Założenia i zależności 3. Specyficzne wymagania 3.1. Wymagania funkcjonalne (funkcje systemu) 3.2. Wymagania niefunkcjonalne (ograniczenia). 10