Wykład 1
Transkrypt
Wykład 1
Przedsięwzięcia Informatyczne w Zarządzaniu 2005/06 dr inż. Grażyna Hołodnik-Janczura GHJ 1 LITERATURA 1. 2. 3. 4. 5. 6. Praca zbiorowa p.r. Górski J., Inżynieria oprogramowania, MIKOM, W-wa, 2000 Jaszkiewicz A., Inżynieria oprogramowania, Helion, 1997 Pressman R.S., Praktyczne podejście do inżynierii oprogramowania, WNT, W-wa, 2004 Cadle J, Yestes D., Zarządzanie procesem tworzenia systemów informacyjnych, WNT, W-wa, 2004 Phillips J. Zarządzanie projektami IT, HELION, Gliwice, 2005 Kompendium wiedzy o zarządzaniu projektami, PMBOK Guide, 2000 Edition – przekład, MT&DC, W-wa, 2003 GHJ 2 LITERATURA 1. 2. 3. 4. Barker R., Longman C., CASE*Method: Modelowanie funkcji i procesów, WNT, W-wa, 1996 Barker R., CASE*Method: Modelowanie związków encji, WNT, W-wa, 1996 Rodgers U., Oracle – przewodnik projektanta baz danych, WNT, 1995 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 GHJ Działanie i pielęgnacja/ Ponowne zatwierdzenie 12 Model V Specyfikacja Test akceptacji Projekt systemu Integracja i walidacja systemu Integracja i weryfikacja podsystemu Projekt podsystemu Projekt modułu 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 Zmiana prototypu Lista zmian Lista zmian przegląd przez użytkownika Prototyp wymagań Prototyp projektu Prototyp systemu Wymagania systemu Testowanie Wykonany system Często niekompletne I nieformalne 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 Tworzenie Pośrednie wersje Testowanie Wersja końcowa Ogólny zarys 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 Kumulacja kosztów Określenie celów, alternatyw, ograniczeń Szacowanie alternatyw, identyfikacja, redukcja ryzyka Wzrost przez kroki Analiza ryzyka Analiza ryzyka Analiza ryzyka Przegląd części A R Plan cyklu życia Plan wykonania Plan testowania integracji P3 P2 P1 Symulacje Koncepcja działania Wymagania Zatwierdzenie wymagań Zatwierdzenie i weryfikacja projektu GHJ Porównania Szczegółowy projekt Projekt programu Test akceptacji Implementacja Planowanie następnej fazy/ iteracji Modele Dobry prototyp Testowanie jednostek P1,2,3 - prototypy Kod Integracja i testowanie Tworzenie, weryfikacja produktu następnego poziomu 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 … GHJ Postać pośrednia Kod 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 Modelowanie działalności Zespół 3 Modelowanie danych Zespół 2 Modelowanie procesów Modelowanie działalności Generowanie aplikacji Modelowanie danych Zespół 1 Modelowanie działalności Model RAD Testowanie i wdrożenie Modelowanie procesów Generowanie aplikacji Modelowanie danych Modelowanie procesów Testowanie i wdrożenie Generowanie aplikacji Testowanie i wdrożenie 60 – 90 dni 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 Szczegółowa specyfikacja wymagań Specyfikacja wymagań Ewolucja Przetestowany system łącznie z akceptacją i przekazaniem Specyfikacja Sprawdzony system Kontrola jakości Testowanie akceptacyjne Scalanie i testowanie Projektowanie architektury o. Projekt Faza wynikowa produktu Przetestowane oprogramowanie Szczegółowe projektowanie Projekt modułu Scalone oprogramowanie Scalanie i testowanie oprogramowania Kontrola jakości Działające moduły Kodowanie GHJ jednostek i testowanie 32 Relacje cykli życia Cykl życia organizacji Planowanie kierunków Identyfikacja potrzeb Serwisowanie Koncepcja projektu Realizacja produktu Wycofanie Cykl życia produktu Studium wykonalności Wytwarzanie Eksploatacja Wycofanie Cykl życia projektu Inicjacja Planowanie Wdrożenie GHJ Zamknięcie 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. II. III. IV. Rozpoznanie istniejących modeli 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