Przedsięwzięcia Informatyczne w Zarządzaniu 2005/06 dr inż. Grażyna Hołodnik-Janczura GHJ 1
LITERATURA 1. Praca zbiorowa p.r. Górski J., Inżynieria oprogramowania, MIKOM, W-wa, 2000 2. Jaszkiewicz A., Inżynieria oprogramowania, Helion, 1997 3. Pressman R.S., Praktyczne podejście do inżynierii oprogramowania, WNT, W-wa, 2004 4. Cadle J, Yestes D., Zarządzanie procesem tworzenia systemów informacyjnych, WNT, W-wa, 2004 5. Phillips J. Zarządzanie projektami IT, HELION, Gliwice, 2005 6. Kompendium wiedzy o zarządzaniu projektami, PMBOK Guide, 2000 Edition przekład, MT&DC, W-wa, 2003 GHJ 2
LITERATURA 1. Barker R., Longman C., CASE*Method: Modelowanie funkcji i procesów, WNT, W-wa, 1996 2. Barker R., CASE*Method: Modelowanie związków encji, WNT, W-wa, 1996 3. Rodgers U., Oracle przewodnik projektanta baz danych, WNT, 1995 4. Wrycza S., Analiza i projektowanie systemów informatycznych zarządzania, PWN, W-wa, 1999 GHJ 3
Zagadnienia Modele cyklu życia Metody i narzędzia zarządzania projektem programistycznym Mierzenie oprogramowania Metoda FP zastosowanie Modele i metody szacowania Metody zapewniania jakości oprogramowania Narzędzia CASE Wybrane elementy projektowania systemu informatycznego GHJ 4
Inżynieria oprogramowania [IEEE] Dziedzina wiedzy zajmująca się badaniem i opracowywaniem metod. Zastosowanie systematycznego, zdyscyplinowanego, poddającego się ocenie ilościowej podejścia do wytwarzania, stosowania, i pielęgnacji oprogramowania. GHJ 5
Warstwy inżynierii oprogramowania Zapewnianie jakości Proces wytwórczy Metody Narzędzia GHJ 6
Proces wytwórczy Proces tworzenia oprogramowania schemat wykonywania zadań koniecznych do wytworzenia dobrego oprogramowania Model procesu wytwórczego oprogramowania model cyklu życia GHJ 7
Cykl życia procesu wytwórczego oprogramowania Podstawowe fazy cyklu życia definiowanie wymagań projektowanie budowa wdrożenie Rodzaje modeli cyklu życia sekwencyjne iteracyjne GHJ 8
Cykl życia projektu i produktu Cykl życia projektu zbiór etapów projektu przeprowadzanych w określonym porządku, od pomysłu na projekt aż do jego zakończenia Cykl życia produktu zbiór etapów produktu przeprowadzanych w określonym porządku, od pomysłu na produkt do jego wykonania wraz z jego eksploatacją, aż do jej zaniechania GHJ 9
Model kaskady Analiza i definiowanie wymagań Projektowanie systemu i oprogramowania Programowanie i testowanie jednostek Integracja i testowanie systemu Instalacja i pielęgnacja systemu GHJ 10
Zalety i wady modelu kaskadowego Podejście sekwencyjne Ułatwia śledzenie i kontrolę postępów Zapewnia komplet dokumentów Ogniskuje uwagę na produktach pośrednich Odpowiedni dla krótko trwających procesów Brak weryfikacji między etapami Założenie o wykonaniu poprawnej specyfikacji na początku prac Duży odstęp czasu od zakończenia specyfikacji do wdrożenia GHJ 11
Zmodyfikowany model kaskadowy Analiza i definiowanie wymagań/ Zatwierdzenie Projektowanie systemu i oprogramowania/ Weryfikacja Kodowanie/ Testowanie jednostek Integracja / Testowanie i Weryfikacja Wdrożenie/ Testowanie Działanie i pielęgnacja/ Ponowne zatwierdzenie GHJ 12
Model V Specyfikacja Test akceptacji Projekt systemu Projekt podsystemu Projekt modułu Integracja i walidacja systemu Integracja i weryfikacja podsystemu Testowanie modułu Kodowanie, wstępne testowanie modułu GHJ 13
Zalety i wady modelu V Sprzężenie procesów weryfikacji i walidacji z etapami podstawowymi Sekwencyjne etapy, których rozpoczęcie zależy od zakończenia poprzedniego GHJ 14
Podejście prototypowania 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 prawdziwego systemu, faktycznie nie wykonuje wszystkich funkcji systemu GHJ 15
Zalety i wady prototypowania Na etapie analizy pozwala na ustalenie prawdziwych potrzeb klienta, wspomaga weryfikację specyfikacji wymagań, Na etapie projektowania wspomaga podjęcie decyzji projektowych Trudności w zastosowaniu do dużych systemów (małe systemy lub na poziomie podsystemów) Trudności w określeniu liczby iteracji Niebezpieczeństwo pozostawienia tymczasowych rozwiązań GHJ 16
Model prototypowania Lista zmian Lista zmian Lista zmian Zmiana prototypu przegląd przez użytkownika Prototyp wymagań Prototyp projektu Prototyp systemu Testowanie Wymagania systemu Często niekompletne I nieformalne Wykonany system GHJ 17
Podejście iteracyjne Wymagania i projekt są modyfikowane poprzez serie iteracji prowadzących do otrzymania systemu satysfakcjonującego rozwijające się potrzeby klienta Spotkania sprzężenia zwrotnego i zasada wzajemnego uczenia się Umożliwia większe zrozumienie definicji wymagań przez klienta Umożliwia rozpoczęcie tworzenia dla podzbioru wymagań - analiza każdego produktu pośredniego GHJ 18
Model ewolucyjny Równoległe działania Specyfikacja Pierwsza wersja Ogólny zarys Tworzenie Pośrednie wersje Testowanie Wersja końcowa GHJ 19
Cechy modelu ewolucyjnego powtarzalność części procesu 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 GHJ 20
Określenie celów, alternatyw, ograniczeń Kumulacja kosztów Wzrost przez kroki Analiza ryzyka Szacowanie alternatyw, identyfikacja, redukcja ryzyka Analiza ryzyka Przegląd części Planowanie następnej fazy/ iteracji Plan cyklu życia Plan wykonania Plan testowania integracji A R Analiza ryzyka P1 Koncepcja działania Zatwierdzenie wymagań Zatwierdzenie i weryfikacja projektu P2 Test akceptacji Implementacja P3 Dobry prototyp Symulacje Modele Porównania Wymagania Projekt programu Integracja i testowanie Szczegółowy projekt Kod Testowanie jednostek P1,2,3 - prototypy Tworzenie, weryfikacja produktu następnego poziomu GHJ 21
Zalety i wady modelu spiralnego Proces iteracyjny Każde okrążenie dotyczy jednego elementu produktu duże projekty Umożliwia zmiany w rozwoju produktu zarządzanie zmianami Konieczność zarządzania ryzykiem Wczesna eliminacja błędów Umożliwia wykorzystanie podejścia prototypowania 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 GHJ 22
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ędzia CASE), a szczególnie implementacji Zmniejszenie w znacznym stopniu ryzyka Zapewnienie standardów Redukcja nakładów, skrócenie procesu wytwórczego Konieczność rozwiązywania problemów integracji GHJ 23
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 GHJ 24
Fazy etapu tworzenia w modelu komponentowym Identyfikacja odpowiednich komponentów Konstrukcja n-tej iteracji systemu Sprawdzanie dostępności komponentów Dodanie nowych komponentów do biblioteki Wybór dostępnych komponentów Wytworzenie niedostępnych komponentów GHJ 25
Język formalny symbol obiekt abstrakcyjny, np. litera, cyfra, znak graficzny łańcuch (słowo) skończony ciąg symboli alfabet skończony zbiór symboli ( ) język (formalny) - zbiór łańcuchów złożonych z symboli jakiegoś jednego alfabetu ( *) Przykład jeżeli = {a}, to * = {ε, a, aa, aaa,...}, gdzie ε słowo puste GHJ 26
Formalna transformacja 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 Formalna specyfikacja wymagań Postać pośrednia Postać pośrednia Kod GHJ 27
Zalety i wady formalnej transformacji Wysoka niezawodność pod warunkiem bezbłędnej specyfikacji Przeniesienie trudności programowania na etap specyfikacji wymagań Prawdopodobna mała efektywność uzyskanego kodu Brak uniwersalnych języków formalnej specyfikacji GHJ 28
RAD ang. Rapid Application Development 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 GHJ 29
Zespół 1 Modelowanie działalności Zespół 3 Zespół 2 Modelowanie działalności Modelowanie danych Modelowanie działalności Modelowanie danych Modelowanie procesów Modelowanie danych Modelowanie procesów Generowanie aplikacji 60 90 dni Modelowanie procesów Generowanie aplikacji Model RAD Generowanie aplikacji Testowanie i wdrożenie Testowanie i wdrożenie Testowanie i wdrożenie GHJ 30
Zastosowanie i wymagania RAD Zastosowanie szybko zmieniające się wymagania ograniczony czas wykonania do wybranych części aplikacji Nie stosować do przedsięwzięć związanych z dużym ryzykiem, 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 GHJ 31
Wstępna koncepcja Przykładowy model V Pielęgnowanie Rozpoczęcie przedsięwzięcia Specyfikacja wymagań Ewolucja Faza wynikowa produktu Szczegółowa specyfikacja wymagań Specyfikacja Projektowanie architektury o. Przetestowany system łącznie z akceptacją i przekazaniem Sprawdzony system Scalanie i testowanie Testowanie akceptacyjne Projekt Przetestowane oprogramowanie Scalone oprogramowanie Kontrola jakości Szczegółowe projektowanie Scalanie i testowanie oprogramowania Kontrola jakości Projekt modułu Działające moduły Kodowanie i testowanie GHJ jednostek 32
Relacje cykli życia Cykl życia organizacji Planowanie kierunków Identyfikacja potrzeb Koncepcja projektu Realizacja Serwisowanie produktu Wycofanie Cykl życia produktu Studium wykonalności Wytwarzanie Eksploatacja Wycofanie Cykl życia projektu Inicjacja Planowanie Wdrożenie Zamknięcie GHJ 33
Podział projektu na etapy Podział cyklu życia projektu na etapy ze względu na usprawnienie zarządzania Każdy etap wyznaczony przez ukończenie jednego lub kilku produktów pośrednich Produkt pośredni wymierny, konkretny i sprawdzalny rezultat lub przedmiot, np.. studium wykonalności, dokumentacja techniczna, prototyp Produkt pośredni i etapy tworzą logiczną sekwencję prowadzącą do produktu końcowego GHJ 34
Wybór modelu cyklu życia projektu I. Rozpoznanie istniejących modeli II. III. IV. Przegląd i analiza rodzaju prac: tworzenie, rozwijanie, pielęgnacja, Wybór modelu według listy kryteriów Dostosowanie modelu cyklu życia projektu do indywidualnych potrzeb GHJ 35
Kryteria wyboru modelu ryzyko czas na wykonanie niezawodność klarowność wymagań technologia, rozmiar i złożoność interfejs użytkownika priorytety użytkownika spodziewany czas życia systemu potencjalna równoległość interfejsy z istniejącymi lub nowymi systemami GHJ 36
Dostosowanie modelu cyklu życia projektu do indywidualnych potrzeb Przegląd modelu ze względu na zgodność ze standardami obowiązującymi w organizacji (ISO, IEEE, SEI) Identyfikacja faz i zadań Zapewnienie produktów technicznych i zarządczych Określenie szablonów i zawartości dokumentów Określenie punktów przeglądu, inspekcji, weryfikacji, walidacji i kamieni milowych Oszacowanie efektywności ramowego szkicu modelu i jego poprawa GHJ 37