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

Podobne dokumenty