Podstawy inżynierii
oprogramowania
Iwona Dubielewicz
iwona.dubielewicz@pwr.wroc.pl
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
1
Podstawy Inżynierii Oprogramowania
Zakres wykładu
Pojęcia podstawowe Inżynierii Oprogramowania
Proces wytwarzania oprogramowania: modele,
artefakty, role
Jakość oprogramowania
Zarządzanie przedsięwzięciem informatycznym
Literatura:
[1] Sacha K., Inżynieria oprogramowania, WNT 2009
[2] Pressman R.S., Praktyczne podejście do inżynierii oprogramowania, WNT 2003
[3] Hamlet D., Maybee J., Podstawy techniczne inżynierii oprogramowania, WNT 2003
[4] Fowler M., UML 2.0 w kropelce, Micom 2006
[5] Cocburn A., Jak pisać efektywne przypadki użycia, WNT, 2004.
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
2
Podstawy Inżynierii Oprogramowania
Wykład 1
1. Wprowadzenie
2. Pojęcia podstawowe:
% Modele cyklu życia oprogramowania
% Procesy cyklu życia oprogramowania
% Metodyki wytwarzania
oprogramowania
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
3
Podstawy Inżynierii Oprogramowania
Kryzys wytwarzania oprogramowania
Wzrost rozmiaru oprogramowania
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
4
Podstawy Inżynierii Oprogramowania
Ceny kryzysu
Koszt 1godz. upadku systemu
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
5
Podstawy Inżynierii Oprogramowania
Przyczyny niepowodzeń
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
6
Podstawy Inżynierii Oprogramowania
Historia sukcesów projektów informatycznych
Wzrost sukcesu realizacji przedsięwzięć informatycznych
(dzięki stosowaniu inżynierii oprogramowania?)
30 tys. projektów różnych wielkości w USA
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
7
Podstawy Inżynierii Oprogramowania
INŻYNIERIA wiedza matematyczna i przyrodnicza
zdobyta podczas studiowania oraz wynikająca
z doświadczeń i praktyki, która jest stosowana
do opracowania takich metod działania, by
wykorzystać ekonomicznie materiały i naturę,
na rzecz dobra człowieka
OPROGRAMOWANIA* zestaw programów
komputerowych, procedur i
dokumentacji;
" pojęcie Inżynieria Oprogramowania (IO) pojawiło się 1968 r;
podejście inżynierskie to reakcja na tzw. kryzys oprogramowania
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
8
Podstawy Inżynierii Oprogramowania
4 x P elementy IO
Produkt (co) Proces
(sposób)
Projekt Personel
(realizacja) (kto)
wykonuje funkcje (usługi)
PRODUKT =
OPROGRAMOWANIE ma jakość
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
9
Podstawy Inżynierii Oprogramowania
Cykl życia oprogramowania
obejmuje okres życia oprogramowania
-od pojawienia się koncepcji (potrzeby)
posiadania i stosowania oprogramowania,
- do momentu jego wycofania z użycia.
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
10
Podstawy Inżynierii Oprogramowania
Procesy cyklu życia oprogramowania
[ISO12207:1998]
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
11
Podstawy Inżynierii Oprogramowania
Procesy cyklu życia oprogramowania
perspektywa udziałowców
Nabywca,
kontrakt
Proces Proces
Dostawca
stosuje
PERSPEKTYWA
nabywania dostawy
KONTRAKTU
stosuje
Menadżer
stosuje
Proces zarządzania
PERSPEKTYWA
stosuje stosuje
ZARZDZANIA
stosuje
Operator,
stosuje
Proces eksploatacji
Użytkownik
PERSPEKTYWA
DZIAAANIA
stosuje
Producent,
stosuje Proces
stosuje Proces
Serwisant
konserwacji
wytwarzania
PERSPEKTYWA
INŻYNIERII
PROCESY WSPOMAGAJCE:
Pracownik
dokumentowanie weryfikacja
ProcesówWs
zarządzanie konfiguracją walidacja
pomag.
rozwiązywanie problemów przegląd wspólny
PERSPEKTYWA
WSPOMAGANIA
zapewnienie jakości audyt
PROCESY ORGANIZACYJNE
infrastruktura doskonalenie szkolenie
[ISO12207:1998]
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
12
Podstawy Inżynierii Oprogramowania
[ISO12207:2007]
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
13
Podstawy Inżynierii Oprogramowania
Model cyklu życia oprogramowania
sposób organizacji wybranych procesów cyklu
życia oprogramowania i wykonywanych w ich
ramach czynności.
Zwykle rozważa się procesy:
" wytwórcze
" zarządcze
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
14
Podstawy Inżynierii Oprogramowania
Modele cyklu życia oprogramowania
kryterium: kompletność wymagań (ISO 12207):
- kaskadowy
- przyrostowy
- ewolucyjny (syn. prototypowanie)
kryteria dodatkowe:
-iteracyjny powtarzalność działań
-spiralny zarządzany ryzykiem
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
15
Podstawy Inżynierii Oprogramowania
Model kaskadowy (1970, Royce)
ustalone wymagania
Zaleta:
Określenie
proste planowanie
wymagań
procesu wytwarzania
Analiza
Projektowanie
Implementacja
opcjonalna
Testowanie
Wada:
Konserwacja
w praktyce nie działa (w tej czystej postaci)
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
16
Podstawy Inżynierii Oprogramowania
Model kaskadowy + (Royce 1973)
A tak jest
realizowany w
praktyce model
kaskadowy
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
17
Podstawy Inżynierii Oprogramowania
Model kaskadowy +
Definicja
wymagań
Zaleta:
Analliza
elastyczność realizacji
nawroty
Projekt
Kodowanie
Testy systmu
Instalacja i
konwersja
Wada:
Używanie i
utrzymywanie
dodatkowe koszty (
np. dokumentacji)
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
18
Podstawy Inżynierii Oprogramowania
Model przyrostowy
Zalety:
Przyrost 1
P K/T I/W
-szybkie wykrywanie
usterek
- szybkie
Przyrost 2
dostarczanie
W P K/T I/W
częściowej
implementacji
Przyrost n
P K/T I/W
Możliwy przepływ informacji
W - wymagania K/T - kodowanie i testy
P - projekt I/W - instalacja i wsparcie
Wady:
- trudniejsze planowanie
- dodatkowe koszty
wg ISO12207
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
19
Podstawy Inżynierii Oprogramowania
Model ewolucyjny (prototypowania)
Przyrost 1
Zaleta:
W 1
P K/T I/W
uniknięcie niezrozumienia
wymagań
Przyrost 2
W 2
P K/T I/W
Przyrost n
W n
P K/T I/W
Możliwy przepływ informacji
W - wymagania K/T - kodowanie i testy
P - projekt I/W - instalacja i wsparcie
Wada:
koszty (budowanie wielu
[ ISO12207]
rozwiązań)
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
20
Podstawy Inżynierii Oprogramowania
Model spiralny
Zaleta:
szybka
identyfikacja
ryzyka
Wada:
koszty!!
[Boehm,1988]
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
21
Podstawy Inżynierii Oprogramowania
METODYKA WYTWARZANIA OPROGRAMOWANIA
to wszystko, co jest systematycznie wykonywane w
celu wytworzenia oprogramowania (np. dobór
pracowników, zadań, zasady współpracy,
procedury postępowania);
=> każda organizacja ma swoją własną, niepowtarzalną
metodykę.
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
22
Podstawy Inżynierii Oprogramowania
Atrybuty metodyki
Zakres metodyki określa, które fazy wytwarzania
oprogramowania są objęte metodyką, jakie role i aktywności metodyka
definiuje.
Rozmiar metodyki jest liczbą typów elementów kontrolowanych
w metodyce (wytwarzany artefakt,, miara jakości, opis techniki, itd.).
Ceremoniał metodyki (stopień formalizacji) określa
wymagany stopień precyzji, nakładu pracy i stopnia formalizacji
dokumentów (duży, średni, mały).
Waga metodyki to koncepcyjny iloczyn rozmiaru i
ceremoniału dla poszczególnych elementów kontrolnych.
Widzialność łatwość oceny, czy projekt jest wykonywany zgodnie
z metodyką.
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
23
Podstawy Inżynierii Oprogramowania
Kategorie metodyk wytwarzania:
wg paradygmatu
- strukturalne
- obiektowo-zorientowane
wg złożoności
- regularne/ciężkie: obszerna dokumentacja
- elastyczne/ zwinne: komunikacja słowna
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
24
Podstawy Inżynierii Oprogramowania
Metodyka wytwarzania oprogramowania
jest procesem, a jej definicja jest wykorzystuje definicje
trzech podstawowych pojęć:
" rola (ang. role),
" zadanie (ang. task),
" produktu pracy (ang. work product).
[SPEM 2008]
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
25
Podstawy Inżynierii Oprogramowania
Metodyki sterowane modelami
[RUP 2003]
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2011/20012
26
Podstawy Inżynierii Oprogramowania
Generyczna metodyka USDP* fazy i dyscypliny
FAZY USDP : Zapoczątkowanie Opracowanie Konstrukcja Przejście
Specyfikacja
wymagań
Analiza
Projektowanie
Implementacja
Testowanie
Iter(1) iter(2) iter iter
(n-1) (n)
*USDP- Unified Software Development Process
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
27
Podstawy Inżynierii Oprogramowania
Metodyka USDP
CHARAKTERYSTYKA
" sterowany przez przypadki użycia
" zorientowany na opis architektury
" iteracyjny
" przyrostowy
Proces USDP powtarza się przez wiele cykli, z których każdy
daje na końcu gotowy produkt
PODSTAWOWY ZESTAW MODELI USDP
" model przypadków użycia " model analizy
" model projektowy " model rozmieszczenia
" model implementacyjny " model testów
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
28
Podstawy Inżynierii Oprogramowania
Metodyka RUP* fazy i dyscypliny
*RUP- RationalUnified Process
[RUP,2003]
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
29
Podstawy Inżynierii Oprogramowania
Metodyki AUP* v1.1 fazy i dyscypliny
*AUP- Agile Unified Process; rodzina metodyk
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
30
Podstawy Inżynierii Oprogramowania
Język UML* w obiektowym procesie
wytwarzania oprogramowania
Modelowanie biznesowe
Dziedzina
zastosowań
6
Analiza
System
UML
Projektowanie
C++, Java, etc
*UML - Unified Modeling Language
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
32
Podstawy Inżynierii Oprogramowania
Język UML
Abstrakcyjny
Pozwala wyrazić najważniejsze zagadnienia
z pominięciem zbędnych szczegółów
Precyzyjny
Pomaga znalezć braki oraz niespójności
Graficzny
Pozwala zilustrować obiekty oraz związki
zachodzące między nimi
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
33
Podstawy Inżynierii Oprogramowania
Język UML w budowie modeli oprogramowania
Modelowanie statyczne
opisuje elementy i strukturę wnętrza systemu
diagramy klas, obiektów, komponentów
i rozmieszczenia
Modelowanie funkcjonalności systemu
opisuje co nowy system ma
robić (lub co robi system istniejący)
diagramy przypadków użycia
Modelowanie dynamiczne
- opisuje zachowanie systemu w
terminach interakcji elementów systemu
- diagramy aktywności, stanów,
sekwencji i współdziałania
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
34
Podstawy Inżynierii Oprogramowania
Podsumowanie
-Wytwarzanie oprogramowania obejmuje następujące
etapy: [modelowanie biznesowe], specyfikowanie
wymagań, [analizę] projektowanie, implementację,
testowanie i pielęgnację.
- Wytworzenie oprogramowania wysokiej jakości wymaga
doboru i stosowania metodyki wytwórczej
- Język UML jest językiem modelowania i specyfikacji;
może być stosowany na wszystkich etapach wytwarzania
oprogramowania.
- Kompletna specyfikacja wymagań jest kluczowa dla
powodzenia przedsięwzięcia wytwórczego.
Instytut Informatyki, Wydział Informatyki i Zarządzania,
2012/2013
35
Wyszukiwarka
Podobne podstrony:
wykPIO 13 10wykPIO 13 6i7wykPIO 13 2wykPIO 13 4i5UAS 13 zaoer4p2 5 13Budownictwo Ogolne II zaoczne wyklad 13 ppozch04 (13)model ekonometryczny zatrudnienie (13 stron)Logistyka (13 stron)więcej podobnych podstron