IO wyk2 procesIO v1 id 556045 Nieznany

background image

dr inż. Radosław Adamus

1

Inżynieria

Oprogramowania

Wykład 2

Proces Inżynierii Oprogramowania

Cel:

z

Zapoznanie z modelami procesu inżynierii
oprogramowania

z

Opis trzech generycznych modeli procesu IO oraz
ich zastosowanie

z

Naszkicowanie modeli procesów inżynierii wymagań,
rozwoju oprogramowania, testowania oraz ewolucji

z

Wprowadzenie do modelu Rational Unified Process

z

Wprowadzenie do technologii CASE wspierającej
działania procesu IO

background image

dr inż. Radosław Adamus

2

Proces IO i jego modele

z

Ustrukturalizowany zbiór czynności
wymaganych do wyprodukowania
oprogramowania:

z

Specyfikacja

z

Projektowanie i rozwój

z

Walidacja

z

Ewolucja

z

Model jest abstrakcyjną reprezentacją procesu.
Opisuje go z określonej perspektywy.

Generyczne modele procesu IO

z

Model kaskadowy

z

Jednoznacznie wydzielone fazy specyfikacji i
rozwoju

z

Model ewolucyjny

z

Specyfikacja, rozwój, walidacja są połączone

z

Inżynieria oparta na komponentach

z

System jest asemblowany z istniejących
komponentów

Waterfall

Evolutionary

development

Component
based SE

Istnieje wiele wariantów tych modeli

background image

dr inż. Radosław Adamus

3

Model kaskadowy

(wodospadowy)

waterfall model

Określenie

wymagań

Projektowanie

Implementacja

Testowanie

Konserwacja

Cele i szczegółowe wymagania wobec systemu.

Szczegółowy projekt systemu

uwzględniający wcześniejsze

wymagania.

Modyfikacje producenta - usunięcie
błędów, zmiany i rozszerzenia.

Analiza

Ocena modelu kaskadowego

Istnieją zróżnicowane poglądy co do przydatności praktycznej modelu

kaskadowego. Podkreślane są następujące wady:

¾ Narzucenie twórcom oprogramowania ścisłej kolejności wykonywania prac
¾ Wysoki koszt błędów popełnionych we wczesnych fazach
¾ Długa przerwa w kontaktach z klientem

Z drugiej strony, jest on do pewnego stopnia niezbędny dla planowania,
harmonogramowania, monitorowania i rozliczeń finansowych.

background image

dr inż. Radosław Adamus

4

Zmodyfikowany model
kaskadowy z iteracjami

Określenie

wymagań

Analiza

Projektowanie

Implementacja

Testowanie

Konserwacja

Model ewolucyjny

z

Wytwarzanie „odkrywcze”

z

Opracowanie końcowego systemu odbywa się przy
współpracy z klientem. System ewoluuje od
początkowego szkicu specyfikacji. Nowe własności
dodawane są zgodnie z propozycjami klienta.

z

Prototypowanie

z

Celem jest zrozumienie wymagań dla systemu.
Budując prototyp definiujemy wymagania.

background image

dr inż. Radosław Adamus

5

Model ewolucyjny

Szkic wymagań

Specyfikacja

Rozwój

Walidacja

Wersja
początkowa

Wersje pośrednie

Wersja końcowa

Czynności równoległe

Model ewolucyjny

z

Wady:

z

„Niejawny proces”

z

System może być w niewielkim stopniu
ustrukturalizowany

z

Wymagania wiedza w zakresie narzędzi szybkiego
prototypowania

z

Stosowalność

z

Małe lub średniej wielkości systemy interaktywne

z

Fragmenty większych systemów (np. GUI)

z

Systemy „krótkoterminowe”

background image

dr inż. Radosław Adamus

6

Inżynieria komponentowa

z

Bazuje na powtórnym użyciu:

z

System jest integrowany z istniejących komponentów

z

COTS (Computer-off-the-shelf)

z

Fazy procesu:

z

Analiza komponentów

z

Modyfikacja wymagań

z

Projektowanie z powtórnym użyciem

z

Rozwój i integracja

z

Podejście coraz częściej wykorzystywane

Proces zorientowany na powtórne
użycie

Specyfikacja
wymagań

Analiza
komponentów

Modyfikacja
wymagań

Projektowanie
Z powt. użyciem

Rozwój i
integracja

Walidacja

background image

dr inż. Radosław Adamus

7

Proces Inżynierii

Oprogramowania

Iteracje

Iteracje w procesie IO

z

Wymagania systemu zawsze będą podlegały

zmianom. Iteracje w procesie są nieuniknione i

stanowią integralną część procesu IO dla dużych

systemów.

z

Mogą pojawić się w każdym ze wspomnianych

modeli.

z

Dwa podstawowe i powiązane ze sobą podejścia

do iteracji to:

z

Realizacja przyrostowa

z

Model spiralny

Incremental
development

Spiral
development

background image

dr inż. Radosław Adamus

8

Realizacja przyrostowa

z

System jest dostarczany w następujących po
sobie wydaniach. Każde wydanie posiada
zwiększoną funkcjonalność.

z

Wymagania użytkownika są priorytetyzowane.
Im wymaganie ma wyższy priorytet tym we
wcześniejszym wydaniu zostanie zrealizowane.

z

W momencie rozpoczęcia inkrementacji
zamraża się wymagania. Ich ewolucja będzie się
odbywała w iteracji kolejnej.

Realizacja przyrostowa

incremental development

Określenie

wymagań

Ogólny
projekt

Wybór

podzbioru

funkcji

Szczegółowy

projekt,

implementacja

testy

Dostarczenie

zrealizowanej

części

systemu

Proces

realizowany

iteracyjnie

background image

dr inż. Radosław Adamus

9

Zalety realizacji przyrostowej

z

Wybrana funkcjonalność systemu jest
dostarczona wcześnie.

z

Wczesne iteracje można traktować jako
prototypy

z

Ryzyko niepowodzenia jest minimalizowane.

z

Najbardziej priorytetowe usługi systemu są
najdłużej testowane.

Programowanie extremalne

z

Podejście do realizacji przyrostowej zakładające budowę
systemu w bardzo częstych wydaniach o małym
przyroście funkcjonalności.

z

Opiera się na stałym udoskonalaniu kodu.

z

Użytkownicy bezpośrednio współpracują z zespołem
budującym system.

z

Najbardziej rozpoznawalne zasady XP

z

Programowanie w parach

z

Rozwój oparty na testach

z

Ciągła integracja

(XP) eXtreme Programming

pairwise programming

TDD test driven development

Continuous integration

background image

dr inż. Radosław Adamus

10

Model spiralny

z

Proces jest reprezentowany jako spirala (a nie
sekwencja z powrotami)

z

Każda pętla w spirali reprezentuje fazę procesu

z

Nie ma wyróżnionych faz typu specyfikacja czy
projektowanie – wybierane jest to co jest
obecnie potrzebne.

z

Istotnym elementem modelu jest ryzyko –
szacowanie i zarządzanie

Spiral
development

Działy modelu spiralnego

z

Identyfikacja i określanie celów dla kolejnej fazy

z

Identyfikacja i minimalizacja zagrożeń

z

Działania mające na celu redukcję najważniejszych
zagrożeń

z

Rozwój i walidacja

z

Wybierany jest model rozwoju (może być dowolny)

z

Planowanie

z

Przegląd (ewaluacja) projektu, planowanie kolejnej
fazy

background image

dr inż. Radosław Adamus

11

Spiralny model procesu IO

Określanie celów

ograniczeń,

Rozwiązań alternatywnych

Analiza ryzyka

Analiza ryzyka

Analiza ryzyka

Ewaluacja, identyfikacja
i minimalizacja zagrożeń,

Analiza

ryzyka

Prototyp1

Prototyp2 Prototyp3

Funkcjo-
nujący
prototyp

Koncepcja
działania

Planowanie cyklu
życia

Przegląd

Plan rozwoju

Plan kolejnej fazy

Plan testów i integracji

Symulacje, modele, benchmarki

Definiowanie
wymagań

Rozwój, weryfikacja
Produkt na kolejnym
poziomie

Walidacja
wymagań

Projektowanie
produktu

Weryfikacja
i walidacja
projektu

Projekt
szczegółowy

Kodowanie

Testy
jednostkowe

Testy
integracyjne

Testy
akceptacyjne

Proces Inżynierii

Oprogramowania

Czynności procesu IO

background image

dr inż. Radosław Adamus

12

Czynności procesu IO

z

Specyfikacja oprogramowania

z

Projektowanie i implementacja oprogramowania

z

Weryfikacja i Walidacja oprogramowania

z

Ewolucja oprogramowania

Specyfikacja oprogramowania

z

Proces, którego celem jest określenie jakie
usługi musi dostarczać projektowany system
oraz jakie są ograniczenia na działanie systemu
oraz proces jego produkcji.

z

Proces inżynierii wymagań:

z

Studium osiągalności

z

Pozyskiwanie i analiza wymagań

z

Specyfikacja wymagań

z

Walidacja wymagań

Software specification

background image

dr inż. Radosław Adamus

13

Proces inżynierii wymagań

Model systemu

Raport
osiągalności

Wymagania użytkowe
I systemowe

Dokument wymagań

Walidacja wymagań

Specyfikacja
wymagań

Pozyskiwanie i
Analiza wymagań

Studium
osiągalności

Projektowanie i implementacja
oprogramowania

z

Proces, którego celem jest przekształcenie
specyfikacji w działający system

z

Projektowanie

z

Określenie struktury oprogramowania, która realizuje
jego specyfikacje.

z

Implementacja

z

Translacja struktury na wykonywalny program

z

Projektowanie i implementacja są ze sobą
mocno powiązane i często równoległe

Software design and implementation

background image

dr inż. Radosław Adamus

14

Czynności procesu projektowania

z

Projektowanie architektury

z

Abstrakcyjna specyfikacja

z

Projektowanie interfejsów

z

Projektowanie komponentów

z

Projektowanie struktur danych

z

Projektowanie algorytmów

Proces projektowania
oprogramowania

Specyfikacja
wymagań

Projektowanie
architektury

Abstrakcyjna
specyfikacja

Projektowanie
interfejsów

Projektowanie
komponentów

Projektowanie
struktury
danych

Projektowanie
algorytmów

Architektura
systemu

Specyfikacja
oprogramowania

Specyfikacja
interfejsów

Specyfikacja
komponentów

Specyfikacja
struktur
danych

Specyfikacja
algorytmów

aktywności

produkty

background image

dr inż. Radosław Adamus

15

Metody strukturalne

z

Systematyczne podejście do procesu
projektowania

z

Produktem procesu projektowanie jest zbiór
modeli (reprezentowanych graficznie)

z

Modele obiektów

z

Modele sekwencji

z

Model stanów

z

Model struktury

z

Model przepływu danych

Kodowanie i debugowanie

z

Translacja projektu do kodu wykonywalnego
oraz usuwanie błędów

z

Jest to aktywność nie posiadające specjalnego
procesu – programista indywidualista (?)

z

Programowanie to również usuwanie błędów!

Zlokalizuj
błąd

Zaprojektuj
poprawkę

Napraw
błąd

Ponownie
uruchom test

background image

dr inż. Radosław Adamus

16

Walidacja oprogramowania

z

Celem weryfikacji i walidacji (V&V) jest
wykazanie, że opracowany system jest zgodny
ze specyfikacją i realizuje wymagania klienta

z

V&V to proces kontroli i przeglądów
oprogramowania plus testowanie systemu

z

Testowanie systemu to jego uruchamianie z
przypadkami testowymi wywodzących się ze
specyfikacji rzeczywistych danych które system
ma przetwarzać.

Software verification and validation

Proces testowania

Testy
komponentów

Testy
systemowe

Testy
akceptacyjne

background image

dr inż. Radosław Adamus

17

Etapy testowania

z

Testy komponentowe (jednostkowe)

z

Komponenty (obiekty, funkcje lub ich spójne

grupy) są testowane indywidualnie

z

Testy systemowe

z

Testowanie systemu jako całości ze

szczególnym uwzględnieniem nowo powstałych

elementów

z

Testy akceptacyjne

z

Testowanie z wykorzystaniem rzeczywistych

danych w celu udowodnienia, ze system spełnia

wymagania użytkowników.

Unit

testing

System

(integration)
testing

Acceptance
testing

Fazy testowania

Plan testów
akceptacyjnych

Plan testów
integracyjnych

Plan testów
Integracyjnych
dla podsystemów

Moduły,
kod jednostek,

testy

Specyfikacja
wymagań

Specyfikacja
systemowa

Projekt
systemu

Projekt
szczegółowy

Testy
akceptacyjne

Testy integracyjne
systemu

Testy integracyjne
podsystemów

Usługi

background image

dr inż. Radosław Adamus

18

Ewolucja oprogramowania

z

Oprogramowanie musi być elastyczne bo
zmiany są nieuniknione

z

Zmieniają się uwarunkowania biznesowe -> zmieniają
się wymagania -> ewoluuje system

z

Pomimo pierwotnego wyróżnienia procesu
budowy i ewolucji systemu granica ta dzisiaj
coraz bardziej się zaciera.

Software evolution

Ewolucja systemu

Definiowanie
wymagań

Ocena
istniejacego
systemu

Propozycja
zmian

Modyfikacja
systemu

Istniejący
system

Nowy system

Proces Inżynierii

Oprogramowania

Nowe lub
zmienione
wymagania

Nowy lub
zmieniony
system

Czyli po prostu…

background image

dr inż. Radosław Adamus

19

Do poczytania…

z

Sommerville: Inżynieria Oprogramowania,
rozdział 3.


Wyszukiwarka

Podobne podstrony:
BoeBot v1 0 id 91312 Nieznany (2)
Final v1 id 171205 Nieznany
ANSYS AI Nastran v1 0 id 65570 Nieznany (2)
Procesy stochast id 393917 Nieznany
programowanie c pl v1 id 395919 Nieznany
D5 instrukcja v1 5 id 130749 Nieznany
PROCESY ZMECZENIA id 393943 Nieznany
Proces patogenezy id 393540 Nieznany
makro opracowanie v1 1 id 27757 Nieznany
Procesy organizowania id 393848 Nieznany
PROCESORY wprowadzenie id 39370 Nieznany
Proces decyzyjny id 393467 Nieznany
PROCES PIELEGNOWANIA id 393554 Nieznany
proces legislacyjny id 393524 Nieznany
Etapy procesu bad id 163893 Nieznany
p szczegolowe by lsz v1 2 id 34 Nieznany
projekt plakatu v1 id 399367 Nieznany
II Rzymski proces cywilny id 20 Nieznany
Arrays v1 0 id 69295 Nieznany (2)

więcej podobnych podstron