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

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

IO - inżynieria oprogramowania

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

Inżynieria oprogramowania wykład III Faza strategiczna

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

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

Zasady organizacji projektów informatycznych

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

Faza Określania Wymagań

Plan. Zapewnienie jakości produktu informatycznego. Zarządzanie jakością i metryki oprogramowania. Podstawowe parametry mierzalne

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

Wstęp do zarządzania projektami

DLA SEKTORA INFORMATYCZNEGO W POLSCE

Etapy życia oprogramowania

Wykład 7. Projektowanie kodu oprogramowania

Testowanie i walidacja oprogramowania

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

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

W poprzedniej prezentacji: Przewodnik po biznesplanie

ZASADY TWORZENIA OPROGRAMOWANIA

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

KARTA PRZEDMIOTU. Projekt zespołowy D1_10

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

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Projekt zespołowy D1_10

KIERUNKOWE EFEKTY KSZTAŁCENIA

Cele przedsięwzięcia

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

Metody wytwarzania oprogramowania. Metody wytwarzania oprogramowania 1/31

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

Inżynieria Oprogramowania w Praktyce

Wykład 1 Inżynieria Oprogramowania

Programowanie zespołowe

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

Fazy modelu cyklu tworzenia

Inżynieria oprogramowania II

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

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

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

Projektowanie BAZY DANYCH

OD JAKOŚCI DO TRWAŁOŚCI REZULTATÓW W PROJEKTACH ERASMUS+

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

KIERUNKOWE EFEKTY KSZTAŁCENIA

Wstęp do zarządzania projektami

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Dlaczego testowanie jest ważne?

Inżynieria Programowania Zarządzanie projektem

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

Metodyka projektowania komputerowych systemów sterowania

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

System wspomagania harmonogramowania przedsięwzięć budowlanych

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

PROJEKTOWANIE. kodowanie implementacja. PROJEKT most pomiędzy specyfikowaniem a kodowaniem

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

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

Egzamin / zaliczenie na ocenę*

Projektowanie systemów informatycznych. Roman Simiński siminskionline.pl. Studium wykonalności

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

SVN. 10 października Instalacja. Wchodzimy na stronę i pobieramy aplikację. Rysunek 1: Instalacja - krok 1

Maciej Oleksy Zenon Matuszyk

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie

IO - Plan wdrożenia. M.Jałmużna T.Jurkiewicz P.Kasprzyk M.Robak. 5 czerwca 2006

Projektowanie systemów informatycznych

Wprowadzenie do systemów informacyjnych

Wstęp do zarządzania projektami

Koordynacja projektów inwestycyjnych

Opis metodyki i procesu produkcji oprogramowania

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

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

Ogólne zasady projektowania algorytmów i programowania

Analiza wielokryterialna wstęp do zagadnienia

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

Projektowanie systemów informatycznych. Roman Simiński siminskionline.pl. Modelowanie danych Diagramy ERD

Projektowanie systemów informatycznych. wykład 6

Zaawansowane programowanie w języku C++

Lista przykładowych tematów egzaminacyjnych INOP12. (bardzo brudny BRUDNOPIS) (przykładowe oznacza Ŝe mogą być takŝe inne pytania...

ĆWICZENIE Lody na drodze Ent-teach Rozdział 6 Zarządzanie Projektami

Oceny z prezentacji INKU011S. Zofia Kruczkiewicz

JAK TO DOBRZE ZROBIĆ

Szczególne problemy projektowania aplikacji internetowych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

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

KARTA PRZEDMIOTU. Algorytmy i struktury danych, C4

Organizacyjny aspekt projektu

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

Usługa: Testowanie wydajności oprogramowania

System harmonogramowania produkcji KbRS

Łatwa czy niełatwa droga do celu? - wdrożenie COSMIC w ZUS

WPROWADZENIE DO UML-a

Feature Driven Development

Rachunek kosztów. Sem. 8 Komputerowe Systemy Elektroniczne, 2009/2010. Alicja Konczakowska 1

MODELE CYKLU śycia OPROGRAMOWANIA

KARTA MODUŁU KSZTAŁCENIA

Podstawy programowania III WYKŁAD 4

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

AKADEMIA GÓRNICZO-HUTNICZA

Case Study. Rozwiązania dla branży metalowej

DESIGNER APPLICATION. powered by

Zapytanie ofertowe

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

Zarządzanie projektami. Wykład 1 - Projekt

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

Transkrypt:

Faza strategiczna określenie wymagań specyfikowanie projektowanie kodowanie implementacja testowanie produkt konserwacja Faza strategiczna Analiza Synteza Dokumentacja Instalacja Faza strategiczna (ang. strategy phase) jest wykonywana zanim zostanie podjęta decyzja o realizacji dalszych etapów przedsięwzięcia. Faza, w której prowadzone są negocjacje z klientem/faza rozważania i planowania produkcji nowego programu Celem tej fazy jest ustalenie możliwości realizacji przedsięwzięcia ale nie tylko.

Czynności w fazie strategicznej rozmowy z klientami (przedstawicielami) cele przedsięwzięcia z punktu widzenia klienta zakres i kontekst przedsięwzięcia ogólne określenie wymagań wykonanie wstępnej analizy i projektu systemu propozycja kilku sposobów realizacji systemu szacowanie kosztów oprogramowania analiza rozwiązań prezentacja wyników analizy klientowi korekta budowa wstępnego harmonogramu określenie standardów wg których będzie realizowane przedsięwzięcie

Czynności w fazie strategicznej Określenie celów przedsięwzięcia z punktu widzenia klienta (jasne zdefiniowanie pozwala uniknąć nieporozumień, nawet jeśli cele są znane dla wszystkich osób zaangażowanych w fazę strategiczną to później niekoniecznie; ważny punkt odniesienia) Określenie zakresu przedsięwzięcia (jaką część działalności klienta ma obsługiwać system) Określenie kontekstu przedsięwzięcia (systemy zewnętrzne z którymi współpracować będzie tworzony system: program, sprzęt, grupa osób, działy firmy)

Czynności w fazie strategicznej Określenie celów, zakresu i kontekstu przedsięwzięcia to zwykle zbyt mało by oszacować złożoność i koszt wykonania systemu Konieczne jest bardziej precyzyjne określenie wymagań, wykonanie modelu systemu oraz wstępnego projektu (najlepiej pełne fazy wymagań, analizy i projektowania ale zwykle nie ma czasu i pieniędzy) W ogólny sposób opisać pełen zakres systemu (określić wszystkie główne wymagania oraz wykonać ogólny model całości systemu) Typowym błędem jest zbyt szczegółowe koncentrowanie się na pewnych fragmentach systemu, z pominięciem ogólnych wymagań.

Decyzje do podjęcia Wybór modelu zgodnie, z którym realizowane będzie przedsięwzięcie Wybór technik stosowanych w fazach analizy 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 i/lub zatrudnieniu ekspertów z zewnątrz Określenie ograniczeń przy których przedsięwzięcie ma być zrealizowane: - Maksymalne nakłady jakie można ponieść na realizację przedsięwzięcia - Dostępny personel - Dostępne narzędzia - Ograniczenia czasowe WYNIKI SĄ PREZENTOWANE KLIENTOWI

Harmonogram przedsięwzięcia Na tym etapie nie jest jeszcze możliwe wyszczególnienie poszczególnych zadań harmonogram jest bardzo ogólny i wymaga uszczegółowienia w dalszych fazach WYKRES GANTTA Wstępne zebranie wymagań Budowa prototypu I II III IV V VI VII VIII IX X XI XII I II III Ocena prototypu Opracowanie wymagań Analiza Projekt interfejsu użytkownika Projekt bazy danych Realizacja bazy danych Implementacja Testy Wdrożenie

Szacowanie kosztów oprogramowania Na koszt oprogramowania składają się następujące 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ą stosunkowo łatwe do oszacowania, natomiast ocena nakładów pracy niezbędnych dla zrealizowania systemu jest bardzo trudna. Szacowanie kosztów oprogramowania jest praktycznie tożsame z szacowaniem nakładów pracy.

Szacowanie kosztów oprogramowania Metody Modele algorytmiczne (techniki te wymagają opisu danego przedsięwzięcia za pomocą szeregu atrybutów liczbowych i opisowych. Odpowiedni algorytm daje w wyniku spodziewany nakład pracy COCOMO) Ocena przez eksperta (doświadczone osoby często z dużą precyzją potrafią oszacować koszt realizacji nowego systemu) Ocena przez analogię (wycena na podstawie wcześniej realizowanych przedsięwzięć. Tu również takie narzędzi jak: sieci neuronowe, systemy ekspertowe) Prawo Parkinsona (prawo, które stwierdza że przedsięwzięcia w tym programistyczne praktycznie zawsze wykonywane są przy założonych nakładach) Wycena dla wygranej (koszt oprogramowania szacowany jest na podstawie oceny możliwości klienta oraz przewidywanych działań konkurentów. Zgodnie z Prawem Parkinsona i tak projekt się zmieści w założonych ramach) Szacowanie Wstępujące (realizację przedsięwzięcia dzieli się na mniejsze zadania, których koszt jest łatwiej ocenić) jeżeli programista wykona w ciągu jednego dnia zadanie, na które dostał tydzień, to potrafi poświęcić pozostałe cztery dni na to, by na karcie graficznej z ośmioma kolorami uzyskać dziewiąty kolor

Algorytmiczne modele szacowania kosztów oprogramowania Modele takie opierają się na założeniu że łatwiej jest oszacować rozmiar systemu niż nakład pracy. Proponuje się modele, które nie opierają się na liczbie instrukcji kodu, np. Metoda punktów funkcyjnych, gdzie szacowane są następujące czynniki: Dane odczytywane przez system i pobierane z systemu Interakcja z użytkownikiem Zewnętrzne interfejsy Pliki wykorzystywane przez system

COCOMO (COst COnstruction MOdel) Jeden z częściej wykorzystywanych modeli oparty na wielu rzeczywistych przedsięwzięciach. (realizowane były bez użycia narzędzi CASE, więc model ten nie jest w pełni adekwatny w przypadku współczesnych przedsięwzięć) Interesujące są czynniki brane pod uwagę oraz ogólna postać zależności pojawiających się w tym modelu. Stosowanie modelu COCOMO wymaga oszacowania liczby instrukcji, z których będzie się składał system.

A=2,4 b=1,05 A=3 b=1,12 A=3,6 b=1,20 COCOMO Rozważane przedsięwzięcie należy zaliczyć do jednej z klas: Przedsięwzięcia organiczne (proste) przedsięwzięcia wykonywane przez stosunkowo małe zespoły, o podobnym, wysokim poziomie umiejętności technicznych. Dziedzina problemu jest dobrze znana. Przedsięwzięcie jest wykonywane za pomocą dobrze znanych metod i narzędzi Przedsięwzięcia półoderwane (średnie) członkowie zespołu różnią się stopniem zaawansowania. Pewne aspekty dziedziny oraz część metod i narzędzi nie jest znana Przedsięwzięcia osadzone (wbudowane) polegają na realizacji systemów o bardzo złożonych wymaganiach. Dziedzina problemu, metody, narzędzia w dużej mierze nieznane. Większość członków zespołu nie ma doświadczenia w takich projektach Podstawowe wyrażenie stosowane w tym modelu to: Nakład [osobomiesiące] = A (KDSI) b

COCOMO Model COCOMO zakłada że znając nakład pracy można oszacować czas realizacji przedsięwzięcia, z czego wynika oczywiście przybliżona wielkość zespołu, który powinien realizować przedsięwzięcie. Przedsięwzięcie organiczne: Czas[miesiącee]=2,5 (Nakład) 0,32 Przedsięwzięcie półoderwane: Czas[miesiącee]=2,5 (Nakład) 0,35 Przedsięwzięcie osadzone: Czas[miesiącee]=2,5 (Nakład) 0,38

COCOMO Otrzymane szacowanie powinny zostać skorygowane za pomocą tzw. Czynników modyfikujących. Tworzy się je biorąc pod uwagę następujące atrybuty przedsięwzięcia: Wymagania wobec niezawodności systemu Rozmiar bazy danych w stosunku do rozmiaru kodu Złożoność systemu, tj. złożoność struktur danych, złożoność algorytmów, stosowanie obliczeń równoległych Wymagania co do wydajności systemu Ograniczenia pamięci Zmienność maszyny wirtualne tj. zmienność sprzętu i oprogramowania systemowego tworzących środowisko pracy Pytanie: Czy nie są to modele opisujące wyłącznie jakieś wyidealizowane przedsiębiorstwo?

Ocena rozwiązań Wybór najlepszego sposobu realizacji przedsięwzięcia jest podstawowym warunkiem końcowego sukcesu. W fazie strategicznej rozważanych jest często kilka możliwych rozwiązań, z których wybiera się najlepsze. Trudności z wyborem rozwiązań: - wielość celów przedsięwzięcia, czyli wielość kryteriów oceny - niepewność, tj. niemożność precyzyjnej oceny rezultatów Przykładowe kryteria oceny to: koszt, czas realizacji, niezawodność, stopień możliwości ponownego wykorzystania fragmentów systemu, przenośność na inne platformy, wydajność.

(rozwiązanie jest zdominowane jeśli istnieje inne rozwiązanie nie gorsze z punktu widzenia żadnego kryterium i lepsze w co najmniej jednym kryterium) Wybór rozwiązania Tabelaryczny zapis rozważanych rozwiązań Rozwiązanie A B C Koszt [tys. Zł] 120 80 75 Czas [miesiące] 33 30 36 Niezawodność [liczba błednych wykonań/tydzień] 5 9 13 Ponowne wykorzystanie [%] 40 40 30 Przenośność [%] 90 75 30 Wydajność [tranakcji/s] 0.35 0.75 1

Wybór rozwiązania Usunięcie rozwiązań zdominowanych (rozwiązanie jest zdominowane jeśli istnieje inne rozwiązanie nie gorsze z punktu widzenia żadnego kryterium i lepsze w co najmniej jednym kryterium) Przydzielenie wag poszczególnym kryteriom Konieczne jest znormalizowanie wartości kryteriów (można je na przykład znormalizować do przedziału [0,1], gdzie 0 oznacza najgorszą wartość, a 1 najlepszą, pozostałym wartościom proporcjonalnie obliczone wartości) Znormalizowane wartości kryteriów przemnożone przez wagi i zsumowane dają łączną ocenę rozwiązań

Wybór rozwiązania Łączna ocena rozwiązań za pomocą sumy ważonej Rozwiązanie A B C Waga Koszt 0.58 1 0 3 Czas 0.5 1 0 2 Niezawodność 1 0,5 0 3 Ponowne wykorzystanie 1 1 0 1 Przenośność 1 0.75 0 1 Wydajność 0 0.62 1 1,5 Łączna ocena 7,74 9,17 1,5

Wybór rozwiązań Niepewność jest czynnikiem utrudniającym wybór najlepszego rozwiązania. Zwykle szacuje się wartość optymistyczną i pesymistyczną i wybiera strategię działania. Nie można w obiektywny sposób stwierdzić która strategia jest lepsza Bardziej racjonalna ocena jest możliwa jeżeli dodatkowo zostaną oszacowane prawdopodobieństwa subiektywne zajścia poszczególnych zdarzeń pod warunkiem wybrania danego rozwiązania.

Wybór rozwiązań Niepewność - przykład Rozwiązanie A B Pesymistyczny koszt [tys. zł] 100 80 Optymistyczny koszt [tys. zł] 40 65 Rozwiązanie A B Prawdopodobieństwo pesymistycznego rozwiązania 0.5 0.2 Prawdopodobieństwo optymistycznego rozwiązania 0.5 0.8 Spodziewany koszt rozwiązania A= koszt pesymistyczny * prawdopodobieństwo Pesymistycznego rozwiązania + koszt optymistyczny * prawdopodobieństwo Optymistycznego rozwiązania = 0.5*100+0.5*40=70 [tys. zł] Spodziewany koszt rozwiązania B= 0.2*80+0.8*65=68 [tys. zł]

Rezultaty fazy strategicznej Udostępniamy klientowi: Raport obejmujący Definicję celów przedsięwzięcia Opis zakresu Opis systemów zewnętrznych Ogólny opis wymagań Ogólny model systemu Opis proponowanego rozwiązania Oszacowanie kosztów Wstępny harmonogram prac Raport oceny rozwiązań, zawierający informacje o rozważanych rozwiązaniach oraz przyczynach wyboru jednego z nich Opis wymaganych zasobów Definicję standardów Harmonogram fazy analizy

Faza określenia wymagań Trudności określania wymagań: Klient z reguły nie wie dokładnie w jaki sposób osiągnąć założone cele Duże systemy są wykorzystywane przez wielu użytkowników Zleceniodawcy i użytkownicy to często inne osoby Wymagania klienta mogą być opisane na różnych poziomach abstrakcji: Definicja wymagań Specyfikacja wymagań Specyfikacja oprogramowania Cdn.