Studium osiągalności.

Slides:



Advertisements
Podobne prezentacje
TRADYCYJNE METODY PLANOWANIA I ORGANIZACJI PROCESÓW PRODUKCYJNYCH
Advertisements

Modelowanie przypadków użycia
Projektowanie w cyklu życia oprogramowania
Inżynieria Oprogramowania 10. Szacowanie kosztu oprogramowania cz. 2
Złożoność procesu konstrukcji oprogramowania wymusza podział na etapy.
Role w zespole projektowym
Analiza ryzyka projektu
Badania operacyjne. Wykład 1
Referat 3. Planowanie zadań i metody ich obrazowania
Studia Podyplomowe IT w Biznesie Inżynieria Oprogramowania
Co UML może zrobić dla Twojego projektu?
Tomasz Jabłoński Michał Ziach
Cykle życia oprogramowania
DOKUMENTACJA KOSZTORYSOWA
Podstawy Inżynierii Oprogramowania
Wstęp do programowania obiektowego
Projektowanie i programowanie obiektowe II - Wykład IV
Projektowanie - wprowadzenie
Dalsze elementy metodologii projektowania. Naszym celem jest...
Analiza, projekt i częściowa implementacja systemu obsługi kina
Wykład 4 Analiza i projektowanie obiektowe
Wykład 5 UML - Unified Modeling Language
Wykład 2 Cykl życia systemu informacyjnego
Szacowanie złożoności oprogramowania
Zarządzanie projektami
C.d. wstępu do tematyki RUP
POJĘCIE ALGORYTMU Pojęcie algorytmu Etapy rozwiązywania zadań
Podstawy programowania
Diagramy obiegu dokumentów a UML w modelowaniu procesów biznesowych
Wykład 1 – część pierwsza
Microsoft Solution Framework
Zarządzanie jakością projektu
Sporządzamy biznesplan
Rational Unified Process Implementacja Aleksandra Reiman, gr. I-52.
Mgr Mirosław Przewoźnik. Fundusz Inicjatyw Obywatelskich powstał w 2005 r. w celu pobudzania oraz wspierania rozwoju inicjatyw obywatelskich. W okresie.
Dr Karolina Muszyńska Na podst.:
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
Modelowanie obiektowe Diagramy UML – diagram przypadków użycia
Unified Modeling Language - Zunifikowany Język Modelowania
Wprowadzenie do UML dr hab. inż. Kazimierz Subieta profesor PJWSTK.
UML W V ISUAL S TUDIO Mateusz Lamparski. UML D EFINICJA Unified Modeling Language (UML) to graficzny język do obrazowania, specyfikowania, tworzenia i.
Analiza kluczowych czynników sukcesu
1 Moduł IV. Obszar formułowania zadań budżetowych typu B.
Moduł III Definiowanie i planowanie zadań typu P 1.
METODY PODEJMOWANIA DECYZJI
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Zarządzanie zagrożeniami
Studium osiągalności. Rozmiar projektu (np. w punktach funkcyjny projektu w porównaniu do rozmiaru zakładanego zespołu projektowego i czasu Dostępność.
Studium osiągalności. Rozmiar projektu (np. w punktach funkcyjny projektu w porównaniu do rozmiaru zakładanego zespołu projektowego i czasu Dostępność.
Proces tworzenia oprogramowania Proces tworzenia oprogramowania jest zbiorem czynności i związanych z nimi wyników, które prowadzą do powstania produktu.
Przykłady analiza i projektowanie
Podstawy zarządzania projektami Karta projektu
Projektowanie obiektowe. Przykład: Punktem wyjścia w obiektowym tworzeniu systemu informacyjnego jest zawsze pewien model biznesowy. Przykład: Diagram.
Projekt modułu Nazwa całego projektu Nazwa modułu Imię i Nazwisko Inżynieria Oprogramowania II dzień, godzina rok akademicki W szablonie na niebiesko zamieszczone.
Warstwowe sieci jednokierunkowe – perceptrony wielowarstwowe
Fundusz Inicjatyw Obywatelskich Konkurs FIO 2016 Ministerstwo Pracy i Polityki Społecznej Departament Pożytku Publicznego 1.
Budowa i integracja systemów informacyjnych Wykład 4 Faza strategiczna mgr inż. Rafał Hryniów P olsko J apońska W yższa S zkoła T echnik K omputerowych.
(c) InMoST 2006 Plan szkolenia ▪ Wprowadzenie (9:00-10:30): Czym jest szacowanie? (MO) Systematyczne podejście do planowania (ŁO) Planowanie, a kalendarz.
Cykle życia oprogramowania oraz role w zespole projektowym Autor: Sebastian Szałachowski s4104.
Inżynieria systemów informacyjnych
Budowa i integracja systemów informacyjnych
Inżynieria Oprogramowania Laboratorium
{ Wsparcie informacyjne dla zarządzania strategicznego Tereshkun Volodymyr.
Wykład 1 – część pierwsza
[Nazwa projektu] Analiza zamknięcia
Cykl życia oprogramowania
JavaBeans by Paweł Wąsala
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Zapis prezentacji:

Studium osiągalności

Studium osiągalności Rozmiar projektu (np. w punktach funkcyjny projektu w porównaniu do rozmiaru zakładanego zespołu projektowego i czasu Dostępność zasobów (budżet, personel, kadra) Ograniczenia czasowe (końcowe daty ukończenia projektu, wdrożenia itd.) Warunki wstępne niezbędne do realizacji projektu Dostępność oprogramowania oraz narzędzi do rozwoju oprogramowania Dostępność sprzętu i sieci Dostępność technologii oraz know-how Dostępność specjalistów wewnątrz firmy oraz zewnętrznych ekspertów Dostępność usług zewnętrznych, kooperantów i dostawców Dostępność powierzchni biurowej, środków komunikacyjnych, zaopatrzenia itp.

Harmonogram przedsięwzięcia Nazwa zadania Marzec Kwiecień Maj Czerwiec Wstępne zbieranie wymagań Budowa prototypu Ocena prototypu Opracowanie wymagań Analiza Projekt dziedziny problemu Projekt interfejsu użytkownika Projekt bazy danych Ustalenie planu czasowego dla poszczególnych faz i zadań (diagram Gantta)

Ocena rozwiązań W fazie strategicznej rozważa się kilka rozwiązań z powodów wielości celów przedsięwzięcia (czyli kryteriów oceny) lub niepewności (niemożliwości precyzyjnej oceny spodziewanych rezultatów). Częste kryteria oceny to: koszt, czas realizacji, niezawodność, możliwość ponownego użycia, przenośność na inne platformy, wydajność (szybkość).

Prezentacja i porównanie poszczególnych rozwiązań Rozwiązanie A B C Koszt (tys. zł) Czas (miesiące) Niezawodność (błędy/tydzień) Ponowne użycie (%) Przenośność (%) Wydajność (transakcje/sek) 120 33 5 40 90 0,35 80 30 9 75 0,75 175 36 13 1 Oszacowanie wartości podanych w tabeli może być trudnym problemem

Wybór rozwiązania Usunięcie rozwiązań zdominowanych, tj gorszych według wszystkich kryteriów (lub prawie wszystkich). Normalizacja wartości dla poszczególnych kryteriów (sprowadzenie do przedziału [0,1]) Przypisanie wag do kryteriów (również może być trudne)

Przykład: łączna ocena za pomocą sumy ważonej Rozwiązanie A B C Wagi Koszt (tys. zł) Czas (miesiące) Niezawodność (błędy/tydzień) Ponowne użycie (%) Przenośność (%) Wydajność (transakcje/sek) 0,58 0,5 1 7,74 0,75 0,62 9,17 1,5 3 2 Formuła: (najgorsze – średnie)/(najgorsze- najlepsze): (175 – 120)/(175 – 80) = 0,58 Najlepszy jest projekt B

Drzewa ryzyka Wierzchołki drzewa odpowiadają sytuacjom, w których mogą zajść pewne zdarzenia. Krawędzie oznaczają przejścia do nowych sytuacji. Krawędziom są przypisane prawdopodobieństwa. Każdy scenariusz zdarzeń (liść w drzewie) jest związany z kosztem. Przykład Firma chce przystąpić do przetargu. Przygotowanie oferty przetargowej jest kosztowne. Firma może przetarg wygrać lub przegrać. Zatrudnienie dodatkowego eksperta zwiększa szansę firmy.

Rys. Przykładowe drzewo ryzyka Zatrudnienie eksperta Zatrudniono eksperta 0,8 Nie znaleziono eksperta 0,2 Przetarg Przetarg Sukces 0,9 Porażka 0,1 Sukces 0,5 Porażka 0,5 Zysk -10 +45 -20 +55 Oczekiwany zysk 45*0,8*0,9 + (-20)*0,20*0,1+55*0,2*0,5 + (-10)*0,2*0,5= 35,3 Rys. Przykładowe drzewo ryzyka

Szacowanie kosztu oprogramowania Szacowanie kosztów przeprowadza się dla każdego z alternatywnych rozwiązań. Na koszt oprogramowania składają się następujące główne czynniki: Koszt sprzętu będącego częścią tworzonego systemu Koszt wyjazdów i szkoleń Koszt zakupu narzędzi Nakład pracy Trzy pierwsze czynniki są dość łatwe do oszacowania. Oszacowanie kosztów oprogramowania jest praktycznie utożsamiane z oszacowaniem nakładu pracy.

Techniki oszacowania nakładów pracy Modele algorytmiczne – wymagają opisu przedsięwzięcia przez wiele atrybutów liczbowych i/lub opisowych. Odpowiedni algorytm lub formuła matematyczna daje wynik. Ocena przez eksperta. Doświadczenie osoby z dużą precyzją potrafią oszacować koszt realizacji nowego systemu. Ocena przez analogię (historyczna) – wymaga dostępu do informacji o poprzednio realizowanych przedsięwzięciach. Metoda polega na wyszukaniu przedsięwzięcia o najbardziej zbliżonych charakterystykach do aktualnie rozważanego i znanym koszcie i następnie oszacowanie ewentualnych różnic. Wycena dla wygranej – koszt oprogramowania jest oszacowany na podstawie kosztu oczekiwanego przez klienta i na podstawie kosztów podawanych przez konkurencję. Szacowanie wstępujące – przedsięwzięcie dzieli się na mniejsze zadania, następnie sumuje się koszt poszczególnych zadań.

Algorytmiczne modele szacowania kosztów Historycznie, podstawą oszacowania jest rozmiar systemu liczony w liniach kodu źródłowego. Metody takie są niedokładne, zawodne, sprzyjające patologiom. Obecnie stosuje się wiele miar o lepszych charakterystykach. Miary te, jakkolwiek niedokładne i oparte na szacunkach, są jednak konieczne. Niemożliwe jest jakiekolwiek planowanie bez oszacowania kosztów. Miary dotyczą także innych cech projektu i oprogramowania, np. czasu wykonania, jakości, niezawodności itp. Podstawą wszystkich miar są szacunki, które mogą być obarczone znacznym błędem, nierzadko o rząd wielkości. Obowiązuje zasada patrzenia na ten sam problem z wielu punktów (wiele różnych miar) i zdrowy rozsądek.

Metoda szacowania kosztów COCOMO (COnstructive COst Model) COCOMO jest oparte na kilku formułach pozwalających oszacować całkowity koszt przedsięwzięcia na podstawie oszacowanej liczby linii kodu. Jest to główna słabość tej metody, gdyż: Liczba ta staje się przewidywalna dopiero wtedy, gdy kończy się faza projektowania architektury systemu; jest to za późno Pojęcie „linii kodu” zależy od języka programowania i przyjętych konwencji Pojęcie „linii kodu” nie ma zastosowania do nowoczesnych technik programistycznych, np. programowania wizyjnego COCOMO oferuje kilka metod określanych jako podstawowa, pośrednia i detaliczna Metoda podstawowa: prosta formuła dla oceny osobomiesięcy oraz czasu potrzebnego na całość projektu Metoda pośrednia: modyfikuje wyniki osiągnięte przez metodę podstawową poprzez odpowiednie czynniki, które zależą od aspektów złożoności Metoda detaliczna: bardziej skomplikowana.

Metoda punktów funkcyjnych Metoda punktów funkcyjnych oszacowuje koszt projektu na podstawie funkcji użytkowych, które system ma realizować. Stąd wynika, że metoda ta może być stosowana dopiero wtedy, gdy funkcje te są z grubsza znane. 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”. Punkty funkcyjne mogą być następnie modyfikowane zależnie od dodatkowych czynników złożoności oprogramowania Istnieją przeliczniki punktów funkcyjnych na liczbę linii kodu, co może być podstawą metody COCOMO

Metoda Delphi Metoda Delphi zakłada użycie kilku niezależnych ekspertów, którzy nie mogą się ze sobą w tej sprawie komunikować i naradzać. Każdy z nich szacuje koszty i nakłady na podstawie własnych doświadczeń i metod. Eksperci są anonimowi. Każdy z nich uzasadnia przedstawione wyniki. Koordynator metody zbiera wyniki od ekspertów. Jeżeli znacznie się różnią, wówczas tworzy pewne sumaryczne zestawienie (np. średnią) i wysyła do ekspertów do ponownego oszacowania. Cykl jest powtarzany aż do uzyskania pełnej zgodności pomiędzy ekspertami.

Kluczowe czynniki sukcesu Szybkość pracy Zaangażowanie kluczowych osób ze strony klienta Uchwycenie (ogólne) całości systemu

Faza strategiczna Faza strategiczna (studium osiągalności) jest wykonywana zanim podejmowana jest decyzja o realizacji przedsięwzięcia. Nazywana jest także strategicznym planem rozwoju informatyzacji.

Czynności w fazie strategicznej: dokonanie serii rozmów (wywiadów) z przedstawicielami klienta określenie celów przedsięwzięcia z punktu widzenia klienta określenie zakresu oraz kontekstu przedsięwzięcia ogólne określenie wymagań, wykonanie zgrubnej analizy i projektu systemu propozycja kilku możliwych rozwiązań (sposobów realizacji systemu) oszacowanie kosztów oprogramowania analiza rozwiązań prezentacja wyników fazy strategicznej przedstawicielom klienta oraz korekta wyników określenie wstępnego harmonogramu przedsięwzięcia oraz struktury zespołu realizatorów określenie standardów, zgodnie z którymi realizowane będzie przedsięwzięcie

Faza strategiczna - współpraca z klientem Ważnym elementem fazy strategicznej jest jasne określenie celów przedsięwzięcia z punktu widzenia klienta. Nie zawsze są oczywiste, stąd wiele nieporozumień pomiędzy klientem a wykonawcą Ważne jest określenie ograniczeń klienta (finansowych, infrastruktury, zasobów ludzkich, czasu wdrożenia)

Zakres i kontekst przedsięwzięcia Zakresu przedsięwzięcia: określenie fragmentu procesów informacyjnych zachodzących w organizacji, które będą objęte przedsięwzięciem. Na tym etapie może nie być jasne , które funkcje będą wykonywane przez oprogramowanie, a które przez personel, inne systemy lub standardowe wyposażenie sprzętu. Kontekst przedsięwzięcia: systemy, organizacje, użytkownicy zewnętrzni z którymi tworzony system ma współpracować.

Decyzje strategiczne wybór modelu, zgodnie z którymi będzie realizowane przedsięwzięcie wybór technik stosowanych w fazie analizy i projektowania wybór środowiska implementacji wybór narzędzia CASE określenie stopnia wykorzystania gotowych komponentów podjęcie decyzji o współpracy z innymi producentami lub zatrudnieniu ekspertów

Składowe języka modelowania składnia - określa jakie oznaczenia wolno stosować i w jaki sposób je ze sobą łączyć; semantyka - określa co należy rozumieć pod przyjętymi oznaczeniami; pragmatyki - określa w jaki sposób należy dopasować wzorzec notacyjny do konkretnej sytuacji i problemu.

Dla każdej fazy cyklu metodyka wyznacza: role uczestników projektu; scenariusze postępowania; reguły przechodzenia do następnej fazy; produkty, które powinny być wytworzone, m.in. modele, kod, dokumentacja itd.; notację, której należy używać.

Notacja Notacja to zbiór oznaczeń i jest wykorzystywana do dokumentowania wyników poszczególnych faz projektu (pośrednich i końcowych), ułatwiając komunikację zarówno między członkami zespołu projektowego, jak i między zespołem projektowym a klientem. Do najważniejszych rodzajów notacji zalicza się: notacje tekstowe; specyfikacje - ustrukturyzowany zapis tekstowy i numeryczny; notacje graficzne.

Model a diagram model jest pewną abstrakcją projektowanego systemu, widzianą z określonej perspektywy na określonym poziomie szczegółowości; diagram służy do opisania modelu; dany model może być opisany za pomocą wielu diagramów, zaś dany element modelu może pojawiać się na wielu diagramach opisujących ten model.

Modele w fazie analizy w obiektowości: Model przypadków użycia, który opisuje funkcjonalność systemu widzianą z perspektywy jego przyszłych użytkowników. Model ten jest przedstawiany w postaci diagramu przypadków użycia. Model obiektowy, który opisuje statyczną budowę systemu, czyli jego strukturę. Model ten jest przedstawiany w postaci diagramu klas i diagramu obiektów. Główna różnica pomiędzy diagramem klas a diagramem obiektów jest taka, że diagram klas przedstawia klasy oraz może przedstawiać obiekty, podczas gdy diagram obiektów przedstawia obiekty, a nie przedstawia klas. Model dynamiczny (model zachowania), który służy do zidentyfikowania metod niezbędnych systemowi do realizacji jego zadań. Model ten jest przedstawiany w postaci m.in. diagramów stanów i diagramów komunikacji.

Perspektywy Perspektywa pojęciowa (koncepcyjna) - model przedstawia wyłącznie pojęcia funkcjonujące w dziedzinie problemowej. Perspektywa projektowa - uwzględniane jest oprogramowanie, z tym, że ważny jest interfejs, a nie implementacja. Perspektywa implementacyjna, która związana jest bezpośrednio z programowaniem.

Zasady odnoszące się do modeli konstruując model należy uwzględniać jedną, wyraźnie określoną perspektywę; aby poprawnie zinterpretować model, należy widzieć z jakiej perspektywy został on skonstruowany; modele, tak jak i całość projektu, zawsze powstają w sposób iteracyjny i przyrostowy.

Co powinniśmy znać z UML-a? Przypadki użycia i scenariusze: Porozumienie między użytkownikami i analitykami Porozumienie między analitykami i deweloperami Porozumienie między analitykami i testerami Diagramy interakcji (sekwencji i współpracy): Porozumienie między architektami i projektantami Porozumienie między projektantami i programistami Diagramy komponentów i montażu: Wspólny obraz całego systemu dla wszystkich deweloperów (kierowników, architektów, projektantów, programistów) Diagramy klas

Ścieżka od wymagań do kodu Wszystkie artefakty (produkty) procesu inżynierii oprogramowania powinny tworzyć jednoznaczną ścieżkę. Efekt: jednoznaczne powiązanie wymagań użytkownika z kodem, który je realizuje. Model dynamiczny systemu Model dynamiczny podsystemów Użytkownik Kod Wymagania funkcjonalne Architekt Projektant Model statyczny Model statyczny podsystemów Programista Analityk

Wymagania w języku UML Model przypadków użycia służy do modelowania wymagań funkcjonalnych systemu. Model przypadków użycia należy uzupełnić (poza standardem UML) o wytyczne dotyczące pisania scenariuszy.

Model przypadków użycia Podstawą modelu przypadków użycia są 2 elementy: aktor oraz przypadek użycia. Aktor odpowiada roli, jaką może pełnić w stosunku do budowanego systemu jakiś obiekt zewnętrzny (lub ich grupa). Przypadek użycia opisuje konkretny sposób w jaki można używać system. Przypadek użycia rozpoczyna się interakcją aktora z systemem, a kończy wymiernym efektem dla aktora. Każdy przypadek użycia zawiera swój sformalizowany opis tekstowy. System rejestracji pojazdów Wydrukuj listę pojazdów Rejestruj pojazd Rejestracja pojazdu: Zdarzenie inicjujące: rejestrator wybiera opcję rejestracji Oczekiwany wyniki: system dokonuje rejestracji Opis słowny: przypadek użycia polega na tym, że rejestrator podaje dane pojazdu, zatwierdza te dane, po czym system zapamiętuje dane w bazie danych i drukuje potwierdzenie