GHJ 1
Przedsięwzięcia Informatyczne w Zarządzaniu
2005/06
dr inż. Grażyna Hołodnik-Janczura
GHJ 2
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 3
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 4
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 5
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 6
Warstwy inżynierii oprogramowania
Narzędzia
Metody
Proces wytwórczy
Zapewnianie jakości
GHJ 7
Proces wytwórczy
• Proces tworzenia oprogramowania– schemat wykonywania zadań koniecznych do
wytworzenia dobrego oprogramowania• Model procesu wytwórczego oprogramowania
– model cyklu życia
GHJ 8
Cykl życia procesu wytwórczego oprogramowania
• Podstawowe fazy cyklu życia– definiowanie wymagań– projektowanie– budowa– wdrożenie
• Rodzaje modeli cyklu życia– sekwencyjne– iteracyjne
GHJ 9
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 10
Model kaskady
Programowanie i testowanie jednostek
Analiza i definiowaniewymagań
Projektowanie systemui oprogramowania
Integracja i testowaniesystemu
Instalacja i pielęgnacja systemu
GHJ 11
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 12
Zmodyfikowany model kaskadowy
Kodowanie/ Testowanie jednostek
Analiza i definiowaniewymagań/ Zatwierdzenie
Projektowanie systemu i oprogramowania/ Weryfikacja
Integracja / Testowanie i Weryfikacja
Działanie i pielęgnacja/ Ponowne zatwierdzenie
Wdrożenie/ Testowanie
GHJ 13
Model VSpecyfikacja
Projekt systemu
Projekt podsystemu
Projekt modułu
Kodowanie, wstępne testowaniemodułu
Test akceptacji
Integracja i walidacjasystemu
Integracja i weryfikacjapodsystemu
Testowanie modułu
GHJ 14
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 15
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 16
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 17
Prototypsystemu
Prototypwymagań
Prototyp projektu
Testowanie
Listazmian
Model prototypowania
Wymagania systemuCzęsto niekompletneI nieformalne
Wykonanysystem
przeglądprzezużytkownika
Zmiana prototypu
Listazmian
Listazmian
GHJ 18
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 19
Model ewolucyjny
Ogólny zarys
Pierwsza wersja
Wersja końcowa
Pośrednie wersje
Specyfikacja
Tworzenie
Testowanie
Równoległe działania
GHJ 20
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 21
Kumulacjakosztów
Określenie celów, alternatyw,ograniczeń
Wzrostprzez kroki
Szacowanie alternatyw,identyfikacja, redukcja ryzykaAnaliza ryzyka
Analiza ryzyka
Analiza ryzyka
A R P1 P2
P3
P1,2,3 - prototypy
Dobryprototyp
Przeglądczęści
Planowanie następnej fazy/ iteracji
Tworzenie, weryfikacjaproduktu następnego poziomu
Plan cyklużycia
Plan wykonania
Plan testowania integracji
Koncepcjadziałania
Zatwierdzeniewymagań
Zatwierdzenie i weryfikacjaprojektu
Implementacja
Testakceptacji
Integracja i testowanie
Testowaniejednostek
Kod
SzczegółowyprojektProjekt
programu
Symulacje Modele
Porównania
Wymagania
GHJ 22
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 23
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 24
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 25
Fazy etapu tworzenia w modelu komponentowym
Identyfikacjaodpowiednichkomponentów
Sprawdzaniedostępnościkomponentów
Wybórdostępnychkomponentów
Wytworzenieniedostępnychkomponentów
Dodanie nowychkomponentówdo biblioteki
Konstrukcjan-tej iteracjisystemu
GHJ 26
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 27
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
Formalnaspecyfikacja
wymagań
Postaćpośrednia
Postaćpośrednia Kod…
GHJ 28
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 29
RADang. 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 30
Model RAD
Modelowaniedziałalności
Modelowaniedanych
Modelowanieprocesów
Generowanieaplikacji
Testowaniei wdrożenie
Zespół 1
Zespół 2
60 – 90 dni
Modelowaniedziałalności
Modelowaniedanych
Modelowanieprocesów
Generowanieaplikacji
Testowaniei wdrożenie
Modelowaniedziałalności
Modelowaniedanych
Modelowanieprocesów
Generowanieaplikacji
Testowaniei wdrożenie
Zespół 3
GHJ 31
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 32
Przykładowy model „V”
Specyfikacjawymagań
SpecyfikacjaSzczegółowaspecyfikacjawymagań
Rozpoczęcieprzedsięwzięcia
Wstępnakoncepcja
Projektowaniearchitektury o.
Projekt
Szczegółoweprojektowanie
Projektmodułu
Kodowaniei testowanie jednostek
EwolucjaFaza wynikowaproduktu
Sprawdzonysystem
Scalaniei testowanie
Scaloneoprogramowanie
Scalanie i testowanieoprogramowania
Działającemoduły
Testowanieakceptacyjne
Pielęgnowanie
Kontrolajakości
Kontrolajakości
Przetestowany systemłącznie z akceptacjąi przekazaniem
Przetestowaneoprogramowanie
GHJ 33
Relacje cykli życia
Planowaniekierunków
Identyfikacjapotrzeb
Koncepcjaprojektu Realizacja
Serwisowanie
produktuWycofanie
Cykl życia organizacji
Studiumwykonalności Wytwarzanie Eksploatacja Wycofanie
Cykl życia produktu
Inicjacja Planowanie Wdrożenie Zamknięcie
Cykl życia projektu
GHJ 34
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 35
Wybór modelu cyklu życia projektu
I. Rozpoznanie istniejących modeliII. Przegląd i analiza rodzaju prac: tworzenie,
rozwijanie, pielęgnacja, …III. Wybór modelu według listy kryteriówIV. Dostosowanie modelu cyklu życia projektu do
indywidualnych potrzeb
GHJ 36
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 37
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
Top Related