Zarządzanie projektem informatycznym

Slides:



Advertisements
Podobne prezentacje
SKUTECZNOŚĆ i EFEKTYWNOŚĆ SYSTEMU
Advertisements

Wymagania stawiane oprogramowaniu
Modelowanie przypadków użycia
Projektowanie w cyklu życia oprogramowania
Role w zespole projektowym
Analiza ryzyka projektu
1 / 47 WARSZAWA 2005 Przemysław Siekierko Stanisław Andraszek Rational Unified Process.
Referat 3. Planowanie zadań i metody ich obrazowania
Wymagania stawiane oprogramowaniu
Procesy Inżynierii Wymagań
Projektowanie Aplikacji Komputerowych
SYSTEM ZARZĄDZANIA JAKOŚCIĄ
Struktura SYSTEMU Jacek Węglarczyk.
Co UML może zrobić dla Twojego projektu?
Dokumentowanie wymagań w języku XML
Copyright © Jerzy R. Nawrocki Zbieranie wymagań Analiza systemów informatycznych Wykład.
Proces inżynierii wymagań
Cykle życia oprogramowania
Jarosław Kuchta Jakość Systemów Informatycznych
Jakość systemów informacyjnych (aspekt eksploatacyjny)
Rational Unified Process
Projektowanie i programowanie obiektowe II - Wykład IV
Projektowanie - wprowadzenie
Dalsze elementy metodologii projektowania. Naszym celem jest...
Wykład 2 Cykl życia systemu informacyjnego
C.d. wstępu do tematyki RUP
„Plant a Future” metoda projektu w bibliotece szkolnej
Inżynieria Oprogramowania
Model przestrzenny Diagramu Obiegu Dokumentów
Wykład 1 – część pierwsza
Kompleksowe zarządzanie jakością informacji (TIQM)
Microsoft Solution Framework
Metodyki zarządzania projektami
Zarządzanie projektami
Dr Karolina Muszyńska Na podst.:
Program Operacyjny Kapitał Ludzki
Modelowanie obiektowe Diagramy UML – diagram przypadków użycia
Planowanie przepływów materiałów
Propozycja projektu Andrzej Ziółkowski.
Moduł III Definiowanie i planowanie zadań typu P 1.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Komputerowe wspomaganie projektowania
Waterfall model.
Zarządzanie zagrożeniami
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
Zarządzanie dostawcami i umowy SLA
Copyright © Jerzy R. Nawrocki Team Software Process Inżynieria oprogramowania II Wykład.
ZINTEGROWANE SYSTEMY ZARZĄDZANIA
Eksploatacja zasobów informatycznych przedsiębiorstwa.
Wdrażanie SYSTEMU Jacek WĘGLARCZYK.
Projektowanie obiektowe. Przykład: Punktem wyjścia w obiektowym tworzeniu systemu informacyjnego jest zawsze pewien model biznesowy. Przykład: Diagram.
KOMPANIA WĘGLOWA S.A..
Nie jesteśmy w stanie odpowiedzieć na wszystkie wyzwania... ~ … ale jesteśmy Nie jesteśmy w stanie odpowiedzieć na wszystkie wyzwania... ~ … ale jesteśmy.
Zadania Architekta Zespół Architekta.
Logical Framework Approach Metoda Macierzy Logicznej
1 © copyright by Piotr Bigosiński DOKUMENTACJA SYSTEMU HACCP. USTANOWIENIE, PROWADZENIE I UTRZYMANIE DOKUMENTACJI. Piotr Bigosiński 1 czerwiec 2004 r.
SYRIUSZ – KONFERENCJA PSZ 2011 Dr inż. Jan Gąsienica-Samek Kierownik projektu 1.12 Centrum Rozwoju Zasobów Ludzkich.
Zarządzanie projektami (Project management) planowanie, organizacja, monitorowanie i kierowanie wszystkimi aspektami projektu motywowanie jego wszystkich.
Agile Programming a jakość
Inżynieria systemów informacyjnych
T 10. Metodologia Rapid Re - wprowadzenie
Zarządzanie projektami informatycznymi
Wykład 1 – część pierwsza
[Nazwa projektu] Analiza zamknięcia
IEEE SPMP Autor : Tomasz Czwarno
Cykl życia oprogramowania
Zapis prezentacji:

Zarządzanie projektem informatycznym Prowadzący: dr inż. Bogdan Trawiński Wykład 3 Zarządzanie wymaganiami (wymagania stawiane oprogramowaniu) Oparty na: Sommerville I.: Inżynieria Oprogramowania Bobkowska A.: Należyta staranność w inżynierii wymagań i modelowaniu systemów Materiały w Internecie

©Ian Sommerville 2000: Inżynieria oprogramowania. Rozdziały 5 i 6. Definicja wymagań (1) Wymagania to opisy usług, które system ma udostępniać i ograniczeń, które musi spełniać Inżynieria wymagań to proces ustalenia jakich usług użytkownik oczekuje od systemu i ograniczeń, które system musi spełniać zarówno podczas tworzenia, jak i podczas działania ©Ian Sommerville 2000: Inżynieria oprogramowania. Rozdziały 5 i 6.

Definicja wymagań (2) Wymaganie jest to, wg Dorfmana i Thaylera: możliwość rozwiązania problemu i osiągnięcia celu, wymagana przez użytkownika możliwość spełnienia umowy, normy, specyfikacji lub innej narzuconej dokumentacji, którą musi mieć system lub komponent systemu Zarządzanie wymaganiami jest to: systematyczne podejście do uzyskiwania, organizowania i dokumentowania wymagań systemu oraz proces, który ustala i zachowuje umowę klientem a zespołem realizującym przedsięwzięcie w zależności od zmieniających się wymagań systemu

Definicja wymagań (3) Wymaganie (ang. requirement) jest głównym elementem komunikacji pomiędzy klientem zlecającym wykonanie systemu oraz jego wykonawcami. Według organizacji standaryzacyjnej IEEE: wymaganiem nazywa się udokumentowany warunek lub możliwość, którą musi mieć system lub komponent systemu, aby spełnić warunki kontraktu, standardu, specyfikacji lub innego formalnego dokumentu. Przenosząc tą definicję w świat projektów informatycznych wymaganiem można nazwać specyfikację tego, co powinno zostać zaimplementowane w systemie, innymi słowy jest to opis zachowania się systemu lub opis właściwości systemu.

Potrzeba istnienia specyfikacji 3 głównych partnerów (stackholders): klient, producent, końcowy użytkownik klient nie rozumie informatyki producent nie rozumie klienta specyfikacja likwiduje lukę w komunikacji między partnerami w specyfikacji opisane są potrzeby klienta i użytkowników, stanowi to podstawę budowy oprogramowania pomaga zrozumieć klientowi ukryte potrzeby

Korzyści ze specyfikacji wymagań stanowi podstawę do umowy klient/dostawca, co produkt będzie robił dostarcza punktu odniesienia do kontroli produktu końcowego wysoka jakość specyfikacji jest wstępnym warunkiem oprogramowania o wysokiej jakości specyfikacja dobrej jakości redukuje koszty budowy systemu

Dlaczego wymagania są ważne? (1) Przyczyny niepowodzeń projektów (case study) 1. Niekompletne wymagania (13.1%) 2. Brak zaangażowania użytkowników (12.4%) 3. Brak zasobów (10.6%) 4. Nierealistyczne oczekiwania (9.9%) 5. Brak wsparcia zarządu (9.3%) 6. Zmiany wymagań i specyfikacji (8.7%) 7. Brak planowania (8.1%) 8. System przestał być potrzebny (7.5%)

Dlaczego wymagania są ważne? (2) Błędy wymagań są najczęstszym typem błędów popełnianych przy tworzeniu systemów, a koszty ich poprawiania należą do największych. Koszt usunięcia błędów w specyfikacji wymagań wyrażony w roboczogodzinach: 2 – w fazie określania i analizy wymagań 5 – w fazie projektowania 15 – w fazie kodowania 50 – w fazie testowania 150 – w fazie serwisowania po wdrożeniu

Miejsce wymagań w cyklu życia projektu

w procesie określenia wymagań Kamienie milowe w procesie określenia wymagań CZYNNOŚCI Studium wykonalności Analizowanie wymagań Tworzenie prototypu Studium projektowe Specyfikowanie wymagań Raport wykonalności Wymagania użytkownika Raport oceniający Projekt architektoniczny Wymagania systemowe PRODUKTY ©Ian Sommerville 2000: Inżynieria oprogramowania. Rozdział 4.

Problemy z wymaganiami Problemy z określeniem wizji systemu, jego celu i zakresu; Rozproszona wiedza na temat wymagań - wiele źródeł informacji; Trudności pozyskania wymagań, np. trudność dostępu do przyszłych użytkowników systemu, niechęć użytkowników do współpracy, trudności ze wypowiedzeniem wymagań, Sprzeczne wymagania różnych grup użytkowników; Trudności w precyzyjnym sformułowaniu wymagań, aby można było jednoznacznie zinterpretować; Zmienność wymagań.

Klasyfikacja wymagań Wśród wymagań definiujących system informatyczny wyodrębnić można dwie główne grupy: wymagania funkcjonalne, opisujące usługi, jakie oferuje system wymagania niefunkcjonalne, definiujące ograniczenia, przy których system musi realizować swoje funkcje.

Klasyfikacja wymagań Ponadto, osoby odpowiedzialne za pozyskiwanie wymagań powinny być również świadome istnienia: wymagań biznesowych, związanych z celem biznesowym, dla którego klient potrzebuje systemu, wymagań użytkownika, opisujących zadania, które użytkownik będzie mógł wykonać przy użyciu systemu.

Inżynieria wymagań Cykliczny proces

Klasyfikacja wymagań Wymagania biznesowe Wymagania biznesowe opisują główne cele firmy lub klienta odnośnie potrzeby wykorzystania projektowanego systemu. Stanowią one główny powód powołania projektu do życia i pochodzą przede wszystkim od reprezentanta użytkowników końcowych. Opisują cele biznesowe na ogólnym poziomie i praktycznie nie zmieniają się podczas realizacji projektu. Prawie zawsze nadrzędnym celem wymagań biznesowych jest zwiększenie zysków firmy. Na podstawie wymagań biznesowych tworzy się wymagania pozostałych typów. Spełnienie wymagań biznesowych w dużym stopniu decyduje o sukcesie projektu. Przykładem wymagania biznesowego może być przyspieszenie procedury rozliczania faktur.

Wymagania użytkownika Klasyfikacja wymagań Wymagania użytkownika Wymagania użytkownika definiują cele z perspektywy użytkownika końcowego, czyli zadania, które użytkownik będzie mógł wykonać korzystając z gotowego systemu. Najczęściej przedstawiane są w formie scenariuszy opisujących kolejne kroki działań podejmowane przez użytkownika i sposoby reakcji systemu. Często dokumentowane są one jako „przypadki użycia” (ang. use cases). Stanowią podstawę do tworzenia szczegółowych wymagań funkcjonalnych. Przykładem jest możliwość drukowania tygodniowego zestawienia transakcji.

Wymagania funkcjonalne Klasyfikacja wymagań Wymagania funkcjonalne Wymagania funkcjonalne, w przeciwieństwie do wymagań użytkownika, są definiowane z perspektywy systemu i szczegółowo opisują funkcjonalność systemu, czyli wszystkie usługi, jakie system musi wykonać. Przy budowaniu wymagań funkcjonalnych inicjatywa należy do zespołu programistów, analityków, architektów oprogramowania, którzy dzięki swej wiedzy i doświadczeniu wiedzą jak zrealizować daną funkcjonalność, aby była użyteczna dla użytkownika. Jako przykład można podać wymaganie definiujące przycisk ‘Zapisz’ wyzwalający akcję przepisania wprowadzonych danych do bazy danych.

Wymagania niefunkcjonalne Klasyfikacja wymagań Wymagania niefunkcjonalne Wymagania niefunkcjonalne nie mają wpływu na funkcje systemu, jednak nakładają ograniczenia na sposób, w jaki wymagania funkcjonalne będą zrealizowane. Wymagania te wynikają z kwestii technologicznych, bezpieczeństwa, wydajności, zgodności ze standardami, wymagań prawnych, polityki firmy itp. Są to pewne własności systemu. Określają jak system zachowuje się wykonując swoje zdefiniowane funkcje. Przykładem niech będzie wymaganie określające maksymalny czas potrzebny do zapisania danych

Klasyfikacja wymagań Metoda FURPS W projektach informatycznych bardzo często do klasyfikacji wymagań używa się także metody FURPS, której nazwa jest angielskim akronimem. Pierwsza litera (F) oznacza wymagania funkcjonalne, natomiast pozostałe cztery (URPS) definiują kolejne składowe wymagań niefunkcjonalnych: F (ang. Functionality) – funkcjonalność, uwzględnia również bezpieczeństwo systemu. U (ang. Usability) – użyteczność i ergonomia, oznacza łatwość użytkowania systemu. R (ang. Reliability) – niezawodność, mierzona np. częstością występowania błędów. P (ang. Performance) – wydajność, charakteryzująca czas odpowiedzi lub użycie zasobów. S (ang. Supportability) – wspieralność, uwzględniająca zdolność aplikacji do instalacji na różnych platformach, łatwość testowania i możliwości utrzymaniowe systemu.

Typy wymagań niefunkcjonalnych Wymagania niefunkcjonalne Wymagania użyteczności Wymagania produktowe Wymagania organizacyjne Wymagania zewnętrzne Wymagania sprawnościowe Wymagania niezawodności Wymagania przenośności Wymagania współpracy Wymagania etyczne Wymagania prawne Wymagania dostawy Wymagania implementacyjne Wymagania standardów Wymagania efektywnościowe Wymagania pamięciowe Wymagania ochrony prywatności Wymagania zabezpieczeń ©Ian Sommerville 2000: Inżynieria oprogramowania. Rozdziały 5 i 6.

© SWEBOK 2004 - Guide to the Software Engineering Body of Knowledge

Procesy inżynierii wymagań (3) Określanie i analizowanie wymagań Studium wykonalności Specyfikowanie wymagań Zatwierdzanie wymagań Raport o wykonalności Model systemu Wymagania użytkownika i wymagania systemowe Dokumentacja wymagań ©Ian Sommerville 2000: Inżynieria oprogramowania. Rozdziały 5 i 6.

Inżynieria wymagań Cykliczny proces

Inżynieria wymagań Cykliczny proces Elicitation. Identify sources of information about the system and discover the requirements from these. Analysis. Understand the requirements, their overlaps, and their conflicts. Validation. Go back to the system stakeholders and check if the requirements are what they really need. Negotiation. Inevitably, stakeholders’ views will differ, and proposed requirements might conflict. Try to reconcile conflicting views and generate a consistent set of requirements.

Inżynieria wymagań Cykliczny proces Documentation. Write down the requirements in a way that stakeholders and software developers can understand. Management. Control the requirements changes that will inevitably arise.

Inżynieria wymagań Cykliczny proces

Techniki pozyskiwania wymagań Studia literatury dotyczącej przedmiotu zawierającej podstawowe informacje na temat dziedziny problemowej; Identyfikacja udziałowców, czyli osób lub dokumentów mających pewien wpływ na powstający system lub punkt widzenia systemu; Wywiady i dyskusje z przyszłymi użytkownikami; Ankiety stosowane w celu pozyskania wymagań lub opinii użytkowników na temat powstającego systemu; Analiza dokumentów obowiązujących w danej organizacji; Analiza istniejącego systemu;

Techniki pozyskiwania wymagań Obserwacje przyszłych użytkowników systemu podczas ich pracy; Opis kontekstu działania systemu, np. warunki w jakich ma działać system; Symulacje punktów widzenia, stosowane w celu stwierdzenia, czy system będzie spełniał oczekiwania określonej grupy użytkowników; Prototypowanie – prezentacja użytkownikom ‘atrapy’ systemu, np. samego interfejsu użytkownika w celu pozyskania ich opinii lub dodatkowych wymagań; Prezentacje u dostawców podobnych systemów, stosowane w celu zapoznania się z podobnymi rozwiązaniami.

Proces analizy wymagań 7. Specyfikacja wymagań 6. Sprawdzanie wymagań 8. Dokumentacja wymagań 1. Rozpoznanie dziedziny 5. Nadawanie priorytetów Początek procesu 2. Zbieranie wymagań 4. Usuwanie sprzeczności 3. Klasyfikacja ©Ian Sommerville 2000: Inżynieria oprogramowania. Rozdziały 5 i 6.

Czynności procesu analizy wymagań Jest to proces iteracyjny z ciągłym przekazywaniem informacji zwrotnej między czynnościami Cykl rozpoczyna się od rozpoznania dzidziny, a kończy na sprawdzeniu wymagań Stopień zrozumienia dziedziny rośnie z każdym cyklem Czynności są następujące: Rozpoznanie dziedziny Zebranie wymagań Klasyfikowanie wymagań Usuwanie sprzeczności Nadawanie priorytetów Sprawdzanie wymagań ©Ian Sommerville 2000: Inżynieria oprogramowania. Rozdziały 5 i 6.

Specyfikacja wymagań oprogramowania Faza określenia wymagań kończy się przygotowaniem dokumentu specyfikacji wymagań oprogramowania (ang. Software Requirements Specification, SRS), który opisuje co system powinien wykonywać. SRS jest podstawą do organizacji prac projektowych i implementacyjnych.

Specyfikacja wymagań oprogramowania Cechy dobrej specyfikacji wymagań oprogramowania: poprawność jednoznaczność kompletność spójność uporządkowanie według ważności (priorytetyzacja) weryfikowalność modyfikowalność możliwość śledzenia zależności, wykonalność

Specyfikacja wymagań oprogramowania Przykład

Specyfikacja wymagań oprogramowania Przykład Dokumenty opracowane przez: Instytut Informatyki Politechniki Poznańskiej Miasto Poznań PP - szablon specyfikacji wymagan.doc PP - przykladowa specyfikacja wymagan.doc PP - instrukcja sporzadzania specyfikacji wymagan .pdf

Specyfikacja wymagań oprogramowania Struktura treści

Specyfikacja wymagań oprogramowania Struktura treści

Szablon opisu procesu biznesowego Specyfikacja wymagań oprogramowania Szablon opisu procesu biznesowego

Szablon przypadków użycia Specyfikacja wymagań oprogramowania Szablon przypadków użycia

Szablon opisu procesu biznesowego Specyfikacja wymagań oprogramowania Szablon opisu procesu biznesowego

Specyfikacja wymagań z użyciem standardowego formularza Funkcja. Dodaj węzeł. Opis. Dodaje węzeł do istniejącego projektu.Użytkownik wybiera typ i położenie węzła. Po dodaniu do projektu węzeł jest zaznaczony. Użytkownik wybiera miejsce węzła przesuwając wskaźnik na obszar w którym dodano węzeł Dane wejściowe. Typ węzła i położenie węzła pochodzą od użytkownika, a identyfikator projektu z bazy danych. Przeznaczenie. Baza danych projektów. Projekt jest utrwalany w bazie danych po zakończeniu operacji. Wymagania. Korzeniem grafu projektu musi być dany identyfikator projektu. Warunek początkowy. Projekt jest otwarty i wyświetlony na ekranie użytkownika. Warunek końcowy. Projekt nie uległ zmianie z wyjątkiem dodania węzła zadanego typu o zadanym położeniu. Efekty uboczne. Brak. ©Ian Sommerville 2000: Inżynieria oprogramowania. Rozdziały 5 i 6.

Model procesu projektowania ©Ian Sommerville 2000: Inżynieria oprogramowania. Rozdziały 5 i 6.

Zatwierdzanie wymagań Polega na wykazaniu, że wymagania naprawdę definiują system, którego chce użytkownik Błędy w wymaganiach kosztują tak dużo, że warto te wymagania zatwierdzać Poprawianie błędów w wymaganiach może kosztować sto razy więcej niż poprawianie błędów w implementacji Ma wiele wspólnych cech z analizą wymagań, jednakże dotyczy kompletnej propozycji dokumentacji wymagań, podczas gdy analiza to praca z niekompletnymi wymaganiami ©Ian Sommerville 2000: Inżynieria oprogramowania. Rozdziały 5 i 6.

©Ian Sommerville 2000: Inżynieria oprogramowania. Rozdziały 5 i 6. Sprawdzanie wymagań Zatwierdzanie polega na sprawdzaniu wymagań obejmującym: Ważność. Czy system rzeczywiście dostarcza funkcji, które najlepiej spełniają potrzeby użytkownika? Spójność. Czy wymagania nie są sprzeczne? Kompletność. Czy są wszystkie wymagania? Realność. Czy można zaimplementować wszystkie wymagania? Weryfikowalność. Czy można je zweryfikować? ©Ian Sommerville 2000: Inżynieria oprogramowania. Rozdziały 5 i 6.

Techniki zatwierdzania wymagań Przeglądy wymagań Systematyczne analizy wymagań Prototypowanie Przedstawianie klientom działającego modelu systemu Generowanie testów Tworzenie testów dla sprawdzenia czy wymagania są weryfikowalne Automatyczne sprawdzanie niesprzeczności Sprawdzanie niesprzeczności wymagań wyrażonych w strukturalnej lub formalnej notacji, np. za pomocą narządzi CASE ©Ian Sommerville 2000: Inżynieria oprogramowania. Rozdziały 5 i 6.

Automatyczne sprawdzanie niesprzeczności Wymagania w języku formalnym Raporty o sprzecznych wymaganiach Generator raportów Kompilator Baza danych wymagań ©Ian Sommerville 2000: Inżynieria oprogramowania. Rozdziały 5 i 6.

©Ian Sommerville 2000: Inżynieria oprogramowania. Rozdziały 5 i 6. Przeglądy wymagań Powinny odbywać się regularnie dopóki formułowane są nowe wymagania Powinny być wykonywane przez zespół składający się z pracowników obu stron Mogą być formalne (udokumentowane) lub nieformalne. Dobra komunikacja między twórcami, klientami i użytkownikami daje dobre efekty i pozwala na identyfikację problemów we wczesnych fazach ©Ian Sommerville 2000: Inżynieria oprogramowania. Rozdziały 5 i 6.

Lista sprawdzeń dla wymagania Weryfikowalność. Czy wymaganie można praktycznie sprawdzić? Zrozumiałość. Czy klienci i użytkownicy systemu właściwie zrozumieli wymaganie? Pochodzenie. Czy określono źródło skąd pochodzi wymaganie? Elastyczność. Czy wymaganie może być zmienione bez znaczącego wpływu na inne wymagania systemowe. ©Ian Sommerville 2000: Inżynieria oprogramowania. Rozdziały 5 i 6.

©Ian Sommerville 2000: Inżynieria oprogramowania. Rozdziały 5 i 6. Zmiany wymagań Gdy użytkownicy zdobędą pewne doświadczenie w pracy z systemem, wyłaniają się nowe wymagania, z następujących przyczyn: Ważność wymagań zależy od punktu widzenia. Różni użytkownicy stawiają różne wymagania i przypisują im różne priorytety. Trzeba osiągnąć kompromis Klienci systemu mogą wyrażać wymagania z perspektywy biznesowej co może być sprzeczne z wymaganiami użytkowników końcowych Otoczenie biznesowe i techniczne zmienia się w trakcie trwania przedsięwzięcia ©Ian Sommerville 2000: Inżynieria oprogramowania. Rozdziały 5 i 6.

©Ian Sommerville 2000: Inżynieria oprogramowania. Rozdziały 5 i 6. Ewolucja wymagań Wstępne zrozumienie problemu Zmienione zrozumienie problemu Wstępne wymagania Zmienione wymagania Czas ©Ian Sommerville 2000: Inżynieria oprogramowania. Rozdziały 5 i 6.

Zarządzanie zmianami wymagań Należy stosować do wszystkich postulowanych zmian wymagań Główne kroki procesu zarządzania zmianami Analiza problemu i specyfikacja zmiany. Rozpoznanie problemu z wymaganiem i propozycja zmian Analiza zmiany i ocena kosztów. Szacuje koszt wprowadzenia zmiany Implementacja zmiany. Modyfikuje dokumentację wymagań i inne dokumentacje jeśli zachodzi taka potrzeba Rozpoznany problem Skorygowane wymaganie Analiza problemu i specyfikacja zmiany Analiza zmiany i ocena kosztów Implementacja zmiany ©Ian Sommerville 2000: Inżynieria oprogramowania. Rozdziały 5 i 6.

Dziękuję za uwagę