Io 1 Wprowadzenie do przedmiotu

background image

1

In ynieria oprogramowania

Wprowadzenie do

przedmiotu

!

↑↑↑↑ "

#

Witam Pa stwa serdecznie na pierwszym wykładzie dotycz cym in ynierii
oprogramowania. Dzisiejszy wykład b dzie troch przypominał ogl danie

okolicy z lotu ptaka. Z tej perspektywy nie wida wielu, by mo e bardzo

wa nych, szczegółów, ale za to ma si obraz cało ci. I ten obraz cało ci, w
odniesieniu do in ynierii oprogramowania, b d si starał w trakcie

dzisiejszego wykładu stworzy .

background image

2

In ynieria oprogramowania

Wprowadzenie (2)

Definicja

$

#

% &

% &

'

%

'

&

#

%

#

(

Zgodnie ze standardowym słownikiem in ynierii oprogramowania opracowanym
przez IEEE, in ynieria oprogramowania jest to zastosowanie systematycznego,

zdyscyplinowanego, ilo ciowego podej cia do rozwoju, eksploatacji i utrzymania

oprogramowania.

background image

3

In ynieria oprogramowania

Wprowadzenie (3)

Definicja

$

#

% &

% &

'

%

'

&

#

%

#

(

Krótko mówi c, jest to zastosowanie in ynierskiego podej cia do oprogramowania.
Taka definicja jest krótka (i to jest jej zalet ), ale – niestety – nie wyja nia zbyt

szczegółowo, co wchodzi w zakres in ynierii oprogramowania.

background image

4

In ynieria oprogramowania

Wprowadzenie (4)

Computing Curricula 2001

Okre leniem zakresu wiedzy dotycz cej ró nych obszarów informatyki, w tym
równie in ynierii oprogramowania, od wielu lat zajmuj si wspólnie dwa,

najwi ksze na wiecie, towarzystwa informatyczne:

IEEE Computer Society

i

Association for Computing Machinery

(w skrócie ACM). Oba powstały tu po II

Wojnie wiatowej w Stanach Zjednoczonych i maj teraz (razem) około 180 tys.

członków na całym wiecie (dla porównania, Polskie Towarzystwo Informatyczne

ma około tysi ca członków). Wydaj wysokiej rangi czasopisma naukowe,
organizuj liczne i bardzo wa ne konferencje oraz zawody dla studentów takie, jak

IEEE Computer Society International Design Competition i ACM International
Collegiate Programming Contest.

background image

5

In ynieria oprogramowania

Wprowadzenie (5)

Computing Curricula 2001

)* + ,

)* - -

Pierwsze rekomendacje dotycz ce studiów informatycznych powstały pod
auspicjami ACM w 1968 roku. IEEE Computer Society opracowało swoje

rekomendacje po raz pierwszy w 1977 roku.

background image

6

In ynieria oprogramowania

Wprowadzenie (6)

Computing Curricula 2001

Pod koniec lat 80-tych oba towarzystwa postanowiły poł czy swoje siły i wspólnie
opracowały standard nauczania zwany Computing Curricula 1991. Dziesi lat

pó niej powstała nowa wersja zwana Computing Curricula 2001.

background image

7

In ynieria oprogramowania

Wprowadzenie (7)

Computing Curricula 2001

%

#

. %

#

' /

.

(

#

#

0

%

1

% #

%

# (

#

2

#

3

4

#

%

5

6 #

7

%

#

6

In ynieria oprogramowania jest jednym z czternastu obszarów informatyki
wyodr bnionych w tym dokumencie.

background image

8

In ynieria oprogramowania

Wprowadzenie (8)

In ynieria oprogramowania

8

#

%

8

$

9

1

. 7

(4 #

(

#

(

6 %

W ramach in ynierii oprogramowania jest osiem jednostek wiedzy o charakterze
obligatoryjnym (czyli ka dy informatyk musi to wiedzie ) i cztery opcjonalne.

background image

9

In ynieria oprogramowania

Wprowadzenie (9)

In ynieria oprogramowania

8

#

%

8

$

9

1

. 7

(4 #

(

#

(

W ród obowi zkowych jednostek wiedzy mamy dwie dotycz ce czynno ci
poprzedzaj cych samo kodowanie programu. Jest to specyfikacja wymaga , czyli

ustalenie co budowany system ma robi i projektowanie oprogramowania, czyli – w

du ym uproszczeniu – zaproponowanie jego struktury.

background image

10

In ynieria oprogramowania

Wprowadzenie (10)

In ynieria oprogramowania

8

#

%

8

$

9

1

. 7

(4 #

(

#

(

Kolejne dwie jednostki dotycz walidacji i weryfikacji oprogramowania (czyli, inaczej
mówi c, kontroli jako ci) i jego ewolucji, czyli utrzymania u yteczno ci programu i

umiej tnego wprowadzania do niego koniecznych zmian.

background image

11

In ynieria oprogramowania

Wprowadzenie (11)

In ynieria oprogramowania

8

#

%

8

$

9

1

. 7

(4 #

(

#

(

In ynieria oprogramowania obejmuje równie takie jednostki wiedzy, jak procesy
wytwarzania oprogramowania (rozpatruje si tutaj, m.in. ró ne modele cyklu ycia

oprogramowania, co ma potem wpływ na planowanie przedsi wzi

programistycznych) i zarz dzanie przedsi wzi ciami programistycznymi.

background image

12

In ynieria oprogramowania

Wprowadzenie (12)

In ynieria oprogramowania

8

#

%

8

$

9

1

. 7

(4 #

(

#

(

Ostatnie dwie obowi zkowe jednostki wiedzy dotycz narz dzi i rodowisk
programistycznych oraz interfejsów programistycznych – w skrócie API od ang.

Application Programming Interface.

background image

13

In ynieria oprogramowania

Wprowadzenie (13)

In ynieria oprogramowania

8

#

%

8

$

9

1

. 7

(4 #

(

#

(

W ród jednostek opcjonalnych s metody formalne (czyli o charakterze
matematycznym), systemy specjalne (np. systemy czasu rzeczywistego steruj ce

prac elektrowni, czy lotem samolotu), komponenty programistyczne i zagadnienia

dot. niezawodno ci oprogramowania.

background image

14

In ynieria oprogramowania

Wprowadzenie (14)

In ynieria oprogramowania

8

#

%

8

$

9

1

. 7

(4 #

(

#

(

Polski standard kształcenia dla kierunku Informatyka, przyj ty przez Rad Główn
Szkolnictwa Wy szego w czerwcu 2006 roku, obejmuje osiem jednostek wiedzy,

które według Computing Curricula 2001 maj charakter obligatoryjny.

background image

15

In ynieria oprogramowania

Wprowadzenie (15)

In ynieria oprogramowania

8

#

%

8

$

9

1

. 7

(4 #

(

#

(

W ramach tego przedmiotu skoncentrujemy si na pierwszych sze ciu obszarach,
natomiast narz dzia, jak i API b d omawiane w ramach innych przedmiotów. Na

przykład takie narz dzia jak kompilatory ró nych j zyków programowania b d

omawiane przy okazji prezentowania paradygmatów programowania, na których te
j zyki si opieraj . W ramach in ynierii oprogramowania b dziemy prezentowa

tylko narz dzia wspomagaj ce dotycz ce takich zagadnie , jak zarz dzanie

konfiguracj , tworzenie modeli w j zyku UML, czy testowanie. Z kolei API b d
prezentowane na przedmiotach zwi zanych z ró nymi obszarami informatyki. Na

przykład API dotycz ce wybranego systemu operacyjnego b dzie prezentowane w
ramach zaj z systemów operacyjnych, API zwi zane z pakietami graficznymi – na

przedmiocie dotycz cym grafiki komputerowej itd.

background image

16

In ynieria oprogramowania

Wprowadzenie (16)

Plan wykładu

$

%

4

#

% :

'

4

;

1

<

4 #

8
$

9

4 %

9

0

%

#

%

#

#

%

#

W dalszej cz ci wykładu chciałbym krótko omówi tematyk kolejnych wykładów,
jakie nas czekaj w ramach tego przedmiotu.

background image

17

In ynieria oprogramowania

Wprowadzenie (17)

Plan wykładu

$

%

4

#

% :

'

4

;

1

<

4 #

8
$

9

4 %

9

0

%

#

%

#

#

%

#

Zaczniemy od zasad skutecznego działania.

background image

18

In ynieria oprogramowania

Wprowadzenie (18)

Pracodawcy si skar

6

4 9

1

#

/ &

#

9

%

&

6

#

#

1

'

%

%

9

9

9

Szefowie ameryka skich firm informatycznych skar si , e absolwenci
ameryka skich uczelni nie potrafi si komunikowa , maj niedostateczne

przygotowanie do pracy w zespole i e brak im umiej tno ci skutecznego i

produktywnego zarz dzania ich prac indywidualn . Prawdopodobnie tego typu
zastrze enia mo na by usłysze równie z ust pracodawców polskich. Dlatego

zanim zaczniemy prezentowa ró ne metody i narz dzia in ynierii oprogramowania

postanowiłem najpierw przedstawi ogólne zasady skutecznego działania, które
stanowi podstaw dla szczegółowych rozwi za i bez rozumienia których trudno

oczekiwa satysfakcjonuj cych efektów.

background image

19

In ynieria oprogramowania

Wprowadzenie (19)

Zasady Covey’ego

= >

8

?

1

9

@ -

;

%

A

Zasady te b d oparte na słynnej ksi ce Stephena Covey’ego „7 nawyków
skutecznego działania”. Na slajdzie widzimy okładk do jej wersji d wi kowej.

Ksi ka ta została równie wydana w j zyku polskim.

background image

20

In ynieria oprogramowania

Wprowadzenie (20)

Zasady Covey’ego

= >

$

' /

' /

8

;

' /

Ogólnie mówi c, Stephen Covey proponuje swoim czytelnikom rozwój osobowo ci
od stanu zale no ci od innych osób, poprzez niezale no od innych do

współzale no ci z innymi osobami.

background image

21

In ynieria oprogramowania

Wprowadzenie (21)

Zasady Covey’ego

$

' /

' /

8

;

' /

#

B

0

=

6 B

Zale no od innych osób przejawia si nadmiern tendencj do obarczania tych
innych zadaniem opieki nad sob . Osoby zale ne wierz , e to inni s

odpowiedzialni za ich wykształcenie, brak pracy, czy problemy rodzinne. Oni sami

wydaj si mie niewielki wpływ na swoje ycie. Taka postawa rzadko kiedy (je li
kiedykolwiek) prowadzi do skutecznego działania.

background image

22

In ynieria oprogramowania

Wprowadzenie (22)

Zasady Covey’ego

$

' /

' /

8

;

' /

C #

1 B

1 B

Niezale no to wiara we własne siły i zaufanie do siebie. Osoby niezale ne s
przekonane, e anga uj c własn energi , zdolno ci i emocje s w stanie osi gn

wiele, bardzo wiele.

background image

23

In ynieria oprogramowania

Wprowadzenie (23)

Zasady Covey’ego

$

' /

' /

8

;

' /

D . 6

6

E $

#

9

% 1

) 5 9 ?

Aby przej od zale no ci do niezale no ci Stephen Covey proponuje wdro enie w
swoim yciu trzech zasad: trzeba by proaktywnym, trzeba zaczyna maj c zawsze

koniec (czyli skutki swoich działa ) na wzgl dzie i trzeba tak zarz dza czasem,

aby rzeczy pierwsze w sensie wa no ci były równie pierwsze w przydzielaniu im
naszego czasu. Aby by skutecznym nie wystarczy te zasady zrozumie i zgodzi

si z nimi – trzeba je tak gł boko wdro y , aby stały si naszymi nawykami.

background image

24

In ynieria oprogramowania

Wprowadzenie (24)

Zasady Covey’ego

$

' /

' /

8

;

' /

F

#

#

1 B

5 1

(

Wy szym stopniem rozwoju osobowo ci od niezale no ci jest współzale no .
Współzale no pozwala osi gn rzeczy, które byłyby dla pojedynczej osoby nie

do osi gni cia. Jest to przekonanie, e razem mo emy wi cej.

background image

25

In ynieria oprogramowania

Wprowadzenie (25)

Zasady Covey’ego

$

' /

' /

8

;

' /

+ C 6

% 1

G

1

#

/

H

'

6

;

'

Rozwój polegaj cy na przej ciu od niezale no ci do współzale no ci opiera si na
kolejnych trzech zasadach, które nale y wdro y : trzeba my le o obopólnej

korzy ci, a nie tylko własnej, trzeba najpierw stara si zrozumie partnera (klienta,

szefa, pracownika) a dopiero potem oczekiwa by nas zrozumiano i trzeba dba o
synergi .

background image

26

In ynieria oprogramowania

Wprowadzenie (26)

Zasady Covey’ego

$

' /

' /

8

;

' /

+ C 6

% 1

G

1

#

/

H

'

6

;

'

D . 6

6

E $

#

9

% 1

) 5 9 ?

1

Do tego dochodzi jeszcze jedna, siódma zasada: ostrz pił , czyli dbaj o ci głe
doskonalenia.

background image

27

In ynieria oprogramowania

Wprowadzenie (27)

Zasady Covey’ego

+ C 6

% 1

G

1

#

/

H

'

6

;

'

D . 6

6

E $

#

9

% 1

) 5 9 ?

1

O tych siedmiu zasadach b dzie mowa na nast pnym wykładzie. Ka da z tych
zasad skutecznego działania zostanie do dokładnie przedstawiona. Jednak

ostateczny efekt b dzie zale ał od tego, w jakim stopniu słuchacze zdecyduj si

przeku te zasady w swoje nawyki.

background image

28

In ynieria oprogramowania

Wprowadzenie (28)

Plan wykładu

$

%

4

#

% :

'

4

;

1

<

4 #

8
$

9

4 %

9

0

%

#

%

#

#

%

#

Tematem nast pnego wykładu b dzie specyfikacja wymaga .

background image

29

In ynieria oprogramowania

Wprowadzenie (29)

Specyfikacja wymaga

8

#

%

8

$

9

1

. 7

(4 #

(

#

(

Wykład ten b dzie wprost nawi zywał do jednostki wiedzy „specyfikacja wymaga ”.

background image

30

In ynieria oprogramowania

Wprowadzenie (30)

Cykl ycia

8

#

%

8

In ynierskie podej cie do wytworzenia jakiego produktu opiera si zazwyczaj na
cyklu ycia obejmuj cym przynajmniej trzy fazy: zebranie wymaga , opracowanie

projektu i wykonanie produktu.

background image

31

In ynieria oprogramowania

Wprowadzenie (31)

Cykl ycia

8

8

#

%

Je li, na przykład, kto my li o przedsi wzi ciu budowlanym, to najpierw trzeba
zebra wymagania inwestora dotycz ce funkcji, jakie budynek ma pełni i trzeba

uwzgl dni ograniczenia sformułowane w warunkach zabudowy.

background image

32

In ynieria oprogramowania

Wprowadzenie (32)

Cykl ycia

8

#

%

8

W nast pnej fazie powstaje projekt architektoniczny, który pokazuje, jak zebrane
wymagania i nało one ograniczenia maj by spełnione.

background image

33

In ynieria oprogramowania

Wprowadzenie (33)

Cykl ycia

8

#

%

8

I wreszcie dochodzi do fazy wykonania, dla której punktem wyj cia jest projekt
opracowany na podstawie wymaga .

background image

34

In ynieria oprogramowania

Wprowadzenie (34)

Cykl ycia

8

#

%

8

Podobnie powinno by z przedsi wzi ciem programistycznym. Na pocz tku nale y
zebra wymagania dotycz ce systemu, który ma by zbudowany.

background image

35

In ynieria oprogramowania

Wprowadzenie (35)

Cykl ycia

8

#

%

8

!!

"

#

$

" !% &

'

! ( ) * ( + ,

Maj c wymagania mo na przej do opracowania projektu systemu. Na slajdzie
widoczny jest projekt systemu informatycznego przedstawiony w j zyku UML.

background image

36

In ynieria oprogramowania

Wprowadzenie (36)

Cykl ycia

8

#

%

8

!!

"

#

$

" !% &

'

! ( ) * ( + ,

W oparciu o projekt programi ci tworz kod systemu. Oczywi cie, potem nale y
jeszcze sprawdzi , czy system nie zawiera defektów i czy spełnia wymagania, o

które chodziło klientowi.

background image

37

In ynieria oprogramowania

Wprowadzenie (37)

In ynieria wymaga

8

#

%

Samo zbieranie i opracowanie wymaga jest tak wa nym i trudnym procesem, e
mówi si wr cz o in ynierii wymaga . Rozumie si przez to fragment in ynierii

oprogramowania odpowiedzialny za wymagania.

background image

38

In ynieria oprogramowania

Wprowadzenie (38)

In ynieria wymaga

8

#

%

$ 6

# % :

.

#

% :

%

# % :

6 #

9

Proces zbierania i opracowywania wymaga ma najcz ciej charakter cykliczny.

background image

39

In ynieria oprogramowania

Wprowadzenie (39)

In ynieria wymaga

8

#

%

$ 6

# % :

.

#

% :

%

# % :

6 #

9

Powinien by poprzedzony sformułowaniem problemu (lub problemów), które
budowany system informatyczny ma rozwi za i nakre leniem bardzo ogólnej wizji

rozwi zania.

background image

40

In ynieria oprogramowania

Wprowadzenie (40)

In ynieria wymaga

8

#

%

$ 6

# % :

.

#

% :

%

# % :

6 #

9

Zasadnicza cz

procesu zbierania i opracowywania wymaga składa si z trzech

faz. Pierwsz faz powinno by zbieranie wymaga . Cz sto wymagania pochodz

od wielu ró nych osób i na dodatek nale y uwzgl dnia ograniczenia wynikaj ce

np. z ró nych przepisów prawa.

background image

41

In ynieria oprogramowania

Wprowadzenie (41)

In ynieria wymaga

8

#

%

$ 6

# % :

.

#

% :

%

# % :

6 #

9

Drug faz powinna by analiza wymaga . Wymagania mog by wzajemnie
sprzeczne, niejednoznaczne itp. – im wcze niej si takie wady wykryje tym lepiej

dla całego przedsi wzi cia.

background image

42

In ynieria oprogramowania

Wprowadzenie (42)

In ynieria wymaga

8

#

%

$ 6

# % :

.

#

% :

%

# % :

6 #

9

Po analizie wymaga potrzebna jest ich negocjacja. Wykryte defekty, takie jak np.
sprzeczno ci mi dzy wymaganiami, nale y usun . Zazwyczaj wymaga to

negocjacji z wieloma zainteresowanymi osobami i mo e by bardzo trudne.
Je li osoby odpowiedzialne za przedsi wzi cie uznaj , e wymagania maj ju

odpowiedni jako i mo na na ich podstawie przej do pracy nad projektem, to
proces zbierania i analizy wymaga mo na zako czy .

background image

43

In ynieria oprogramowania

Wprowadzenie (43)

In ynieria wymaga

8

#

%

8

#

%

4

8

#

%

4

Generalnie wymagania mo na podzieli na funkcjonalne i pozafunkcjonalne.
Wymagania funkcjonalne opisuj funkcje, jakie ma realizowa system. Przykładem

mo e by wymaganie, aby budowany system ksi garni internetowej automatycznie

wysyłał do wydawcy zamówienia na te tytuły, których liczba w magazynie spadnie
poni ej 20 sztuk. Wymagania pozafunkcjonalne dotycz takich aspektów, jak

wydajno (np. szybko wykonania poszczególnych operacji), czy niezawodno .

background image

44

In ynieria oprogramowania

Wprowadzenie (44)

Wykład nt. specyfikacji wymaga

C 6

$

%

4

# % :

'

4

;

1

<

4 #

8
$

9

4 %

9

0

%

#

%

#

#

%

#

4

# % :

W trakcie wykładu po wi conego specyfikacji wymaga przedstawiona zostanie
metoda specyfikacji wymaga funkcjonalnych zwana przypadkami u ycia. Metoda

ta staje si coraz bardziej popularna, równie w polskich firmach informatycznych.

Zaprezentowane zostan tak e dobre praktyki dotycz ce dokumentu specyfikacji
wymaga , zbierania wymaga , ich analizy i negocjacji oraz opisywania wymaga .

Ta problematyka zostanie rozwini ta w ramach przedmiotu obieralnego
„Zaawansowana in ynieria oprogramowania”.

background image

45

In ynieria oprogramowania

Wprowadzenie (45)

Plan wykładu

$

%

4

#

% :

'

4

;

1

<

4 #

8
$

9

4 %

9

0

%

#

%

#

#

%

#

Kolejny wykład b dzie po wi cony kontroli jako ci artefaktów.

background image

46

In ynieria oprogramowania

Wprowadzenie (46)

Kontrola jako ci artefaktów

8

#

%

8

$

9

1

. 7

(4 #

(

#

(

Jest on bezpo rednio zwi zany z jednostk wiedzy dotycz c walidacji.
Zagadnienia te nabieraj szczególnego znaczenia w przypadku budowy tzw.

systemów krytycznych, czyli systemów, których awaria mo e doprowadzi do utraty

zdrowia, a nawet ycia ludzkiego lub spowodowa ogromne straty materialne.

background image

47

In ynieria oprogramowania

Wprowadzenie (47)

Artefakty

4

# % :

0

%

#

1

W trakcie pracy nad systemem informatycznym powstaje cały szereg ró nego typu
artefaktów: specyfikacja wymaga , testy akceptacyjne, kod programu, podr cznik

u ytkownika i wiele innych. Oczywi cie, musz to by produkty dobrej jako ci – nie

mog zawiera powa nych defektów.

background image

48

In ynieria oprogramowania

Wprowadzenie (48)

Artefakty

4

# % :

0

%

#

1

Dlatego potrzebna jest kontrola jako ci tych artefaktów.

background image

49

In ynieria oprogramowania

Wprowadzenie (49)

Kontrola jako ci specyfikacji wymaga

$ 6

# % :

.

#

% :

%

# % :

6 #

9

Wiele osób my li o kontroli jako ci, jako ostatniej fazie pracy nad jakim artefaktem.
Nie jest to, ogólnie rzecz bior c, najlepsze podej cie. Omawiaj c proces zbierania i

analizy wymaga przedstawiłem iteracyjny cykl ycia, w którym analiza wymaga – i

zwi zana z ni kontrola jako ci tych wymaga – s wykonywane wielokrotnie.

background image

50

In ynieria oprogramowania

Wprowadzenie (50)

Rodzaje kontroli jako ci

0

% 9

W praktyce kontrola jako ci najcz ciej przyjmuje posta testowania lub
przegl dów. Testowanie mo na wykona tylko w odniesieniu do działaj cego

systemu lub jego prototypu. Przegl dy s bardziej ogólne: mo na je stosowa

zarówno do kodu, jak i do specyfikacji wymaga . Istot przegl du jest analiza
artefaktów. Analiza ta mo e by przeprowadzona przez pojedyncz osob

(nazywamy to recenzj ) lub te przez zespół osób (najpopularniejszym przykładem

tego typu przegl dów s inspekcje).

background image

51

In ynieria oprogramowania

Wprowadzenie (51)

Wykład nt. kontroli jako ci

' /

7

6

4

;

$

%

4

# % :

'

4

;

1

<

4 #

8
$

9

4 %

9

0

%

#

%

#

#

%

#

'

4

;

W trakcie wykładu po wi conego kontroli jako ci artefaktów przedstawi krótko
najwa niejsze poj cia dotycz ce jako ci i testowania, zaprezentuj sposób

przeprowadzania inspekcji zgodny ze standardem IEEE 1028 i poka , jak mo na

oszacowa liczb defektów, jakie zakradły si do artefaktu (ł cznie z tymi, które nie
zostały w trakcie kontroli jako ci wykryte).

background image

52

In ynieria oprogramowania

Wprowadzenie (52)

Plan wykładu

$

%

4

#

% :

'

4

;

1

<

4 #

8
$

9

4 %

9

0

%

#

%

#

#

%

#

Kolejny wykład b dzie po wi cony j zykowi UML.

background image

53

In ynieria oprogramowania

Wprowadzenie (53)

J zyk UML

8

#

%

8

$

9

1

. 7

(4 #

(

#

(

UML jest wykorzystywany m.in. przy projektowaniu systemów informatycznych. Jest
te wiele narz dzi komercyjnych i darmowych wspomagaj cych tworzenie modeli w

j zyku UML (w ród narz dzi komercyjnych du popularno ci cieszy si Rational

Rose, a jednym z bardziej popularnych darmowych narz dzi jest ArgoUML).

background image

54

In ynieria oprogramowania

Wprowadzenie (54)

www.uml.org

UML jest stosunkowo nowym j zykiem. Jego pierwsza wersja została
zaakceptowana w 1997 roku. Na slajdzie jest pokazana strona internetowa

dotycz ca j zyka UML, która jest utrzymywana przez mi dzynarodow organizacj

OMG zatwierdzaj c kolejne wersje tego j zyka. Osoby znaj ce j zyk angielski
znajd na tej stronie wiele cennych informacji na temat j zyka UML.

background image

55

In ynieria oprogramowania

Wprowadzenie (55)

Diagramy UML

C

%

#

;

C

%

#

;

C

%

#

C

%

#

'

C

%

#

( ( (

J zyk UML obejmuje wiele ró nego typu diagramów, które pozwalaj w sposób
graficzny modelowa ró ne aspekty systemów informatycznych (i nie tylko

informatycznych). Tytułem wprowadzenia do j zyka UML przedstawione zostan

bardzo proste przykłady diagramu stanów, diagramu przypadków u ycia i diagramu
sekwencji. Zarówno te wymienione diagramy, jak i pozostałe zostan bardziej

szczegółowo omówione w trakcie wykładu po wi conego j zykowi UML.

background image

56

In ynieria oprogramowania

Wprowadzenie (56)

Diagram stanów

1

$

4

I$

I$

I$

%

'

I$

' 6

1

Pierwszym diagramem, który chciałbym pokaza jest diagram stanów. Na slajdzie
widzimy diagram pokazuj cy „przeistaczanie” si maturzysty w studenta – za chwil

dokładniej go omówimy.

background image

57

In ynieria oprogramowania

Wprowadzenie (57)

Diagram stanów

Kluczowym elementem na diagramach stanów s oczywi cie stany. Stan jest
reprezentowany za pomoc owalu z nazw stanu w rodku.

background image

58

In ynieria oprogramowania

Wprowadzenie (58)

Diagram stanów

'

Mi dzy stanami s przej cia reprezentowane za pomoc strzałki. W przypadku
diagramu pokazanego na slajdzie wida , e b d c w stanie „Maturzysta” mo na

przej do stanu „Kandydat”, ale nie odwrotnie.

background image

59

In ynieria oprogramowania

Wprowadzenie (59)

Diagram stanów

I$

.

Z przej ciem mo e by zwi zana akcja. W przykładzie pokazanym na slajdzie
wida , e przej cie od stanu „Maturzysta” do stanu „Kandydat” wi e si ze

zło eniem podania na studia.

background image

60

In ynieria oprogramowania

Wprowadzenie (60)

Diagram stanów

$

<

'

Akcje s poprzedzane znakiem uko nej kreski – tym samym, jaki jest
wykorzystywany jako symbol dzielenia.

background image

61

In ynieria oprogramowania

Wprowadzenie (61)

Diagram stanów

I$

9

Pocz tek jest zaznaczany małym ciemnym kółkiem. St d zaczyna si „chodzenie”
po stanach.

background image

62

In ynieria oprogramowania

Wprowadzenie (62)

Diagram stanów

1

$

4

I$

I$

I$

%

'

I$

' 6

1

Zgodnie z diagramem przedstawionym na slajdzie, najpierw trzeba zda matur i
wtedy zdobywa si status maturzysty (w odniesieniu do wiata rzeczywistego jest to

uproszczenie, ale modele maj to do siebie, e zawsze w jaki sposób upraszczaj

rzeczywisto ). Po zło eniu podania na studia stajemy si kandydatami. Wskutek
akcji, czy zdarze nie pokazanych na diagramie Kandydat uzyskuje status

Zakwalifikowanego (mo na si domy la , e trzeba tutaj pozytywnie przej przez
procedur kwalifikacyjn ) lub te staje si Nieprzyj ty. Po zło eniu podania

Zakwalifikowany staje si Przyj tym, a po zło eniu lubowania uzyskuje on

upragniony status Studenta.

background image

63

In ynieria oprogramowania

Wprowadzenie (63)

Diagram przypadków u ycia

$

4

1

$

6

;

Przejd my teraz do diagramów przypadków u ycia. S one wykorzystywane do
pokazania kto co mo e zrobi .

background image

64

In ynieria oprogramowania

Wprowadzenie (64)

Diagram przypadków u ycia

.

Jednym z głównych elementów wyst puj cych na diagramach przypadków u ycia
s tzw. aktorzy. Na slajdzie pokazano symbol, jakim si oznacza aktorów w j zyku

UML. Aktor jest to rola, jak człowiek lub ewentualnie urz dzenie mo e odgrywa w

kontakcie z opisywanym systemem informatycznym.

background image

65

In ynieria oprogramowania

Wprowadzenie (65)

Diagram przypadków u ycia

$

4

1

Na slajdzie widzimy trzech aktorów: Maturzyst , Zakwalifikowanego i Nieprzyj tego.

background image

66

In ynieria oprogramowania

Wprowadzenie (66)

Diagram przypadków u ycia

.

Aktor mo e mie do czynienia z przypadkiem u ycia opisuj cym pewien cel (np. o
charakterze biznesowym), który aktor chce osi gn w kontakcie z systemem

informatycznym. Nazwy przypadków u ycia zapisuje si w elipsach tak, jak

pokazano to na slajdzie.

background image

67

In ynieria oprogramowania

Wprowadzenie (67)

Diagram przypadków u ycia

$

4

1

$

6

;

Zgodnie z przedstawionym diagramem, Maturzysta mo e zło y podanie, natomiast
zarówno Zakwalifikowany, jak i Nieprzyj ty mog obejrze wyniki rekrutacji.

background image

68

In ynieria oprogramowania

Wprowadzenie (68)

Diagram sekwencji

#

F

=

9

J

9

1

8

1

9

1

Trzecim rodzajem diagramów j zyka UML, jaki chciałbym przedstawi s diagramy
sekwencji. Diagramy te słu do ilustrowania komunikacji mi dzy obiektami.

background image

69

In ynieria oprogramowania

Wprowadzenie (69)

Diagram sekwencji

6

2)

6

2E

6

6

Ka dy obiekt jest reprezentowany przez prostok t zawieraj cy jego nazw i tzw.
lini ycia obiektu.

background image

70

In ynieria oprogramowania

Wprowadzenie (70)

Diagram sekwencji

6

2)

6

2E

#

Komunikaty przesyłane mi dzy obiektami s reprezentowane za pomoc strzałki,
nad któr pisze si nazw komunikatu. Strzałka pokazuje kierunek przepływu

komunikatu. Na pokazanym slajdzie komunikat jest wysyłany przez Obiekt-1 i trafia

do Obiekt-2.

background image

71

In ynieria oprogramowania

Wprowadzenie (71)

Diagram sekwencji

6

2)

6

2E

#

2)

#

2E

#

2D

Diagramy sekwencji zazwyczaj zawieraj wi cej ni jeden komunikat. Komunikaty
s wysyłane w kolejno ci „od góry do dołu”. Na slajdzie wida trzy komunikaty.

Najpierw b dzie wysłany Komunikat-1, potem Komunikat-2 i na ko cu Komunikat-3.

Tak si zło yło, e wszystkie te komunikaty s wysyłane przez Obiekt-1 i trafiaj do
Obiekt-2.

background image

72

In ynieria oprogramowania

Wprowadzenie (72)

Diagram sekwencji

#

F

=

9

J

9

1

8

1

9

1

Diagram pokazany na tym slajdzie opisuje komunikacj mi dzy trzema obiektami:
Maturzyst , Systemem rekrutacji na studia i obiektem o nazwie KReM (chodzi tutaj

o Krajowy Rejestr Matur – system informatyczny udost pniaj cy wyniki matur z

Okr gowych Komisji Egzaminacyjnych). Zgodnie z tym diagramem maturzysta
chc cy dosta si na studia najpierw składa podanie i wprowadza swoje oceny.

Nast pnie system rekrutacji wysyła do KReM-u zapytanie, czy wprowadzone oceny
s poprawne. KReM przesyła komunikat, z którego wynika, e oceny s poprawne.

Wtedy system rekrutacji wysyła do maturzysty komunikat z potwierdzeniem

przyj cia podania i ocen. Teraz maturzysta wnosi opłat rekrutacyjn , a system
rekrutacji potwierdza przyj cie tej opłaty.
Zalet diagramów sekwencji jest pokazanie jakby z globalnego punktu widzenia
(czyli patrz c na wszystkie interesuj ce nas obiekty), jak wygl da komunikacja

mi dzy obiektami. Pomaga to zrozumie działanie opisywanego systemu i jest to
informacja, której nie dostarczaj inne rodzaje diagramów j zyka UML.

background image

73

In ynieria oprogramowania

Wprowadzenie (73)

Diagramy j zyka UML

In ynieria oprogramowani a

Wprowadzeni e (67)

Diag ram przypadków u ycia

$

4

1

$

6

;

In ynieria oprogramowani a

Wprowadzeni e (62)

Diag ram stanów

1

$

4

I$

I$

I$

%

'

I$

' 6

1

In ynieria oprogramowani a

Wprowadzeni e (72)

Diagram sekwen cji

#

F

=

9

J

9

1

8

1

9

1

Jak wida , j zyk UML oferuje ró nego rodzaju diagramy, z których ka dy opisuje
inne aspekty systemu. Jak ju wcze niej wspomniano, tych rodzajów diagramów

jest wi cej i b d one omówione w trakcie wykładu po wi conego j zykowi UML.

background image

74

In ynieria oprogramowania

Wprowadzenie (74)

Plan wykładu

$

%

4

#

% :

'

4

;

1

<

4 #

8
$

9

4 %

9

0

%

#

%

#

#

%

#

Kolejny wykład b dzie dotyczył metod formalnych.

background image

75

In ynieria oprogramowania

Wprowadzenie (75)

Metody formalne

8

#

%

8

$

9

1

. 7

(4 #

(

#

(

Zgodnie z Computing Curricula 2001, metody formalne s jednostk opcjonaln .
Maj one cisły zwi zek z walidacj oprogramowania. Niektórzy podchodz do nich

sceptycznie, inni upatruj w nich nadziej na istotne podniesienie jako ci

tworzonego oprogramowania, jako ci rozumianej jako zgodno implementacji ze
specyfikacj .

background image

76

In ynieria oprogramowania

Wprowadzenie (76)

Metody formalne

α∧β

α∧β

α∧β

α∧β

αααα

1 (

# (

<

1 (

=

J

%

#

Zasadnicza koncepcja zwi zana z metodami formalnymi polega na tym, by
wykazywa poprawno programów nie w oparciu o testy czy przegl dy, lecz na

gruncie matematycznym, poprzez dowodzenie wła ciwo ci programów.

background image

77

In ynieria oprogramowania

Wprowadzenie (77)

Silnia

K

L M

& N

O P N

O )N

K BO

L M

O

Q )N

O

R N

S

N

S

Spróbujmy udowodni , e przedstawiona na slajdzie funkcja zapisana w j zyku C
oblicza warto n!.

background image

78

In ynieria oprogramowania

Wprowadzenie (78)

Silnia

K

L M

IR R R F

T O P R R R I

& N

O P N

O )N

K BO

L M

O

Q )N

O

R N

S

N

IR R R

0

O O

B R R R I

S

Pierwszym krokiem jest zwi zanie z t funkcj warunku wst pnego (po angielsku –

precondition

) i ko cowego (ang.

postcondition

). Poniewa parametr n został

zadeklarowany jako liczba całkowita, to wystarczy doda jako warunek wst pny, e

ma by to liczba nieujemna. St d te umie cili my w tek cie programu komentarz
PRE zawieraj cy warunek „n >= 0”. Warunek ko cowy (POST) okre la relacj , jaka

ma by prawdziwa na ko cu wykonania podprogramu. W przypadku omawianego

programu na ko cu zmienna s powinna mie warto n!.

background image

79

In ynieria oprogramowania

Wprowadzenie (79)

Silnia

K

L M

IR R R F

T O P R R R I

& N

O P N

O )N

K BO

L M

O

Q )N

O

R N

S

N

IR R R

0

O O

B R R R I

S

No to teraz wystarczy tylko dowie , e je eli na pocz tku wykonania podprogramu
n >= 0, to na ko cu s b dzie równe n!. Łatwo powiedzie , trudno zrobi . W

przypadku naszego programu najtrudniejszym elementem jest p tla

while

.

Dowodzenie poprawno ci programu zawieraj cych p tle odbywa si metod
niezmienników (ang.

invariant

). Niezmiennik jest to zdanie, które jest prawdziwe za

ka dym razem, kiedy powtarzane jest wykonanie instrukcji zawartych w p tli.

Dokładnie mówi c, niezmiennik powinien by prawdziwy tu przed pierwszym
wykonaniem instrukcji zawartych w p tli, tu przed drugim wykonaniem, przed

trzecim itd. Zasadniczy problem polega na tym by znale (wymy li ) taki
niezmiennik, który zawsze b dzie prawdziwy i jednocze nie pomo e nam w

udowodnieniu warunku ko cowego POST.

background image

80

In ynieria oprogramowania

Wprowadzenie (80)

Silnia

K

L M

IR R R F

T O P R R R I

& N

O P N

O )N

IR R R 7 U

O O

B R R R I

K BO

L M

O

Q )N

O

R N IR R R 7 U

O O B R R R I

S

N

IR R R

0

O O

B R R R I

S

Nasz podprogram jest bardzo prosty i nietrudno zauwa y , e niezmiennik (INV) ma
posta nast puj cego zdania: s równa si k!. Najpierw udowodnimy, e to zdanie

jest faktycznie niezmiennikiem, a potem poka emy, jak go wykorzysta do

udowodnienia warunku ko cowego.

background image

81

In ynieria oprogramowania

Wprowadzenie (81)

Silnia

K

L M

IR R R F

T O P R R R I

& N

O P N

O )N

IR R R 7 U

O O

B R R R I

K BO

L M

O

Q )N

O

R N IR R R 7 U

O O B R R R I

S

N

IR R R

0

O O

B R R R I

S

) O P B

Pierwsze wyst pienie inwariantu (tu przed wykonaniem instrukcji

while

) jest

prawdziwe, bowiem na mocy definicji funkcji silnia, 0! jest równe 1.

background image

82

In ynieria oprogramowania

Wprowadzenie (82)

Silnia

K

L M

IR R R F

T O P R R R I

& N

O P N

O )N

IR R R 7 U

O O

B R R R I

K BO

L M

O

Q )N

O

R N IR R R 7 U

O O B R R R I

S

N

IR R R

0

O O

B R R R I

S

Instrukcja „k= k+1” jest o tyle kłopotliwa, e wyst puje w niej dwa razy ten sam
symbol k i za ka dym razem oznacza inn warto .

background image

83

In ynieria oprogramowania

Wprowadzenie (83)

Silnia

K

L M

IR R R F

T O P R R R I

& N

O P N

O )N

IR R R 7 U

O O

B R R R I

K BO

L M

O

Q )N

O

R N IR R R 7 U

O O B R R R I

S

N

IR R R

0

O O

B R R R I

S

eby usun t niejednoznaczno oznaczmy przez k z podkre leniem pocz tkow

warto k, jaka była przed wykonaniem tej instrukcji przypisania, a k bez

podkre lenia niech oznacza now warto , jaka b dzie po wykonaniu tej instrukcji.

background image

84

In ynieria oprogramowania

Wprowadzenie (84)

Silnia

K

L M

IR R R F

T O P R R R I

& N

O P N

O )N

IR R R 7 U

O O

B R R R I

K BO

L M

O

Q )N

O

R N IR R R 7 U

O O B R R R I

S

N

IR R R

0

O O

B R R R I

S

O O B

Zatem z pierwszego inwariantu wynika, e przed wykonaniem tej instrukcji
przypisania mamy s równe „k z podkre leniem” silnia.

background image

85

In ynieria oprogramowania

Wprowadzenie (85)

Silnia

K

L M

IR R R F

T O P R R R I

& N

O P N

O )N

IR R R 7 U

O O

B R R R I

K BO

L M

O

Q )N

O

R N IR R R 7 U

O O B R R R I

S

N

IR R R

0

O O

B R R R I

S

O O B

O O B

∧∧∧∧ O O Q )

Po wykonaniu omawianej instrukcji przypisania dojdzie nam jeszcze zdanie
mówi ce, e nowa warto k jest równa starej warto ci powi kszonej o 1.

background image

86

In ynieria oprogramowania

Wprowadzenie (86)

Silnia

K

L M

IR R R F

T O P R R R I

& N

O P N

O )N

IR R R 7 U

O O

B R R R I

K BO

L M

O

Q )N

O

R N IR R R 7 U

O O B R R R I

S

N

IR R R

0

O O

B R R R I

S

O O B

O O B

∧∧∧∧ O O Q )

O O K V )LB

Czyli po wykonaniu tej instrukcji przypisania b dziemy mieli s równe (k-1)!.

background image

87

In ynieria oprogramowania

Wprowadzenie (87)

Silnia

K

L M

IR R R F

T O P R R R I

& N

O P N

O )N

IR R R 7 U

O O

B R R R I

K BO

L M

O

Q )N

O

R N IR R R 7 U

O O B R R R I

S

N

IR R R

0

O O

B R R R I

S

O O K V )LB

W kolejnej instrukcji przypisania mamy podobn niejednoznaczno , jak
poprzednio: dwa razy wyst puje symbol s i za ka dym razem oznacza inn warto .

background image

88

In ynieria oprogramowania

Wprowadzenie (88)

Silnia

K

L M

IR R R F

T O P R R R I

& N

O P N

O )N

IR R R 7 U

O O

B R R R I

K BO

L M

O

Q )N

O

R N IR R R 7 U

O O B R R R I

S

N

IR R R

0

O O

B R R R I

S

O O K V )LB

Podobnie jak poprzednio przyjmiemy, e s z podkre leniem oznacza „star ”
warto , a s bez podkre lenia „now ” warto zmiennej s.

background image

89

In ynieria oprogramowania

Wprowadzenie (89)

Silnia

K

L M

IR R R F

T O P R R R I

& N

O P N

O )N

IR R R 7 U

O O

B R R R I

K BO

L M

O

Q )N

O

R N IR R R 7 U

O O B R R R I

S

N

IR R R

0

O O

B R R R I

S

O O K V )LB

O O K V )LB

Zatem na mocy poprzednio dowiedzionego faktu mo na powiedzie , e tu przed
wykonaniem tej instrukcji przypisania stara warto s jest równa (k-1)!.

background image

90

In ynieria oprogramowania

Wprowadzenie (90)

Silnia

K

L M

IR R R F

T O P R R R I

& N

O P N

O )N

IR R R 7 U

O O

B R R R I

K BO

L M

O

Q )N

O

R N IR R R 7 U

O O B R R R I

S

N

IR R R

0

O O

B R R R I

S

O O K V )LB

∧∧∧∧ O O R

O O K V )LB

Po wykonaniu tej instrukcji b dzie mo na dopisa do poprzedniego zdania jeszcze
jedno: nowa warto s jest równa starej pomno onej przez k.

background image

91

In ynieria oprogramowania

Wprowadzenie (91)

Silnia

K

L M

IR R R F

T O P R R R I

& N

O P N

O )N

IR R R 7 U

O O

B R R R I

K BO

L M

O

Q )N

O

R N IR R R 7 U

O O B R R R I

S

N

IR R R

0

O O

B R R R I

S

O O K V )LB

∧∧∧∧ O O R

O O K V )LB R

O O B

O O K V )LB

Je eli zast pimy star warto s przez (k – 1)!, to oka e si , e nowa warto s jest
równa k!.

background image

92

In ynieria oprogramowania

Wprowadzenie (92)

Silnia

K

L M

IR R R F

T O P R R R I

& N

O P N

O )N

IR R R 7 U

O O

B R R R I

K BO

L M

O

Q )N

O

R N IR R R 7 U

O O B R R R I

S

N

IR R R

0

O O

B R R R I

S

I w ten sposób dowiedli my, e je eli na pocz tku wykonania instrukcji

while

prawd

jest, e s jest równe k!, to po wykonaniu obu instrukcji przypisania nadal s b dzie

równe k!. Zatem faktycznie jest to niezmiennik tej p tli.

background image

93

In ynieria oprogramowania

Wprowadzenie (93)

Silnia

K

L M

IR R R F

T O P R R R I

& N

O P N

O )N

IR R R 7 U

O O

B R R R I

K BO

L M

O

Q )N

O

R N IR R R 7 U

O O B R R R I

S

N

IR R R

0

O O

B R R R I

S

O O

Aby dowie prawdziwo warunku ko cowego (POST) wystarczy zauwa y , e
zaraz po wykonaniu instrukcji

while

prawdziwy jest inwariant „s jest równe k!” oraz

prawdziwe jest zaprzeczenie warunku wyst puj cego w instrukcji

while

, czyli k jest

równe n.

background image

94

In ynieria oprogramowania

Wprowadzenie (94)

Silnia

K

L M

IR R R F

T O P R R R I

& N

O P N

O )N

IR R R 7 U

O O

B R R R I

K BO

L M

O

Q )N

O

R N IR R R 7 U

O O B R R R I

S

N

IR R R

0

O O

B R R R I

S

O O

Podstawiaj c niezmiennik n w miejsce k dostajemy warunek ko cowy i w ten
sposób ko czy si dowód poprawno ci tego podprogramu.

background image

95

In ynieria oprogramowania

Wprowadzenie (95)

Dowodzenie poprawno ci programów

8

4%

% F

4

%

#

4

-

PP

P

=

G

PP

P

=

Do lat 90-tych dowodzenie poprawno ci programów odbywało si jedynie dla
bardzo krótkich programów. W ci gu ostatniej dekady nast pił istotny post p i

powstały bardzo efektywne weryfikatory. Jednak e dowodzenie poprawno ci

programu jest wci bardzo pracochłonne. Ciekawe dane pozyskano w ramach
projektu VSE (Verification Support Environment) finansowanego przez Uni

Europejsk . Jak pisze prof. Wolfgang Reif, dowiedzenie poprawno ci programu

zawieraj cego ok. 7 tys. wierszy wymagało pracochłonno ci około 2 osobolat, a
sama specyfikacja formalna miała ok. 5 tys. wierszy tekstu. Jak wi c wida ,

formalna specyfikacja programów mo e by bardzo obszerna i jej wytworzenie oraz
sprawdzenie jej poprawno ci jest zadaniem samym w sobie.

background image

96

In ynieria oprogramowania

Wprowadzenie (96)

Wykład nt. metod formalnych

4

#

7#

#

%

$

%

4

# % :

'

4

;

1

<

4 #

8
$

9

4 %

9

0

%

#

%

#

#

%

#

4 #

W trakcie wykładu dotycz cego metod formalnych omówi tzw. specyfikacje
aksjomatyczne i zwi zane z nimi implementacje niestandardowe, maj ce charakter

anomalii. Przedstawi te sieci Petriego jako chyba najbardziej popularne narz dzie

modelowania oprogramowania. Jest to notacja matematyczna o charakterze
graficznym wykorzystywana do modelowania nie tylko systemów informatycznych,

ale tak e np. systemów transportowych.

background image

97

In ynieria oprogramowania

Wprowadzenie (97)

Plan wykładu

$

%

4

#

% :

'

4

;

1

<

4 #

8
$

9

4 %

9

0

%

#

%

#

#

%

#

Kolejny wykład b dzie po wi cony wzorcom projektowym.

background image

98

In ynieria oprogramowania

Wprowadzenie (98)

Wzorce projektowe

8

#

%

8

$

9

1

. 7

(4 #

(

#

(

Wzorce projektowe s podstaw współczesnego projektowania oprogramowania.

background image

99

In ynieria oprogramowania

Wprowadzenie (99)

Wzorce projektowe

=

.

W

Wzorzec = Sprawdzona koncepcja,

która:

opisuje problem powtarzaj cy si

wielokrotnie w okre lonym

kontek cie,

działaj ce na niego siły, oraz
podaje istot jego rozwi zania w

sposób abstrakcyjny.

Informatyka zawdzi cza koncepcj wzorców profesorowi Christopherowi
Alexandrowi. Zgodnie z jego koncepcj wzorzec jest to sprawdzona koncepcja,

która opisuje problem powtarzaj cy si wielokrotnie w okre lonym kontek cie,

działaj ce na niego siły oraz podaje istot rozwi zania tego problemu w sposób
abstrakcyjny.

background image

100

In ynieria oprogramowania

Wprowadzenie (100)

Wykład nt. wzorców projektowych

5

=

%

;

8

6

$

%

4

# % :

'

4

;

1

<

4 #

8
$

9

4 %

9

0

%

#

%

#

#

%

#

8

W ramach wykładu powiemy o Bandzie Czterech, czyli tych, którzy wprowadzili
wzorce do in ynierii oprogramowania, omówiony zostanie katalog wzorców

projektowych i przedstawione zostan wybrane wzorce projektowe oraz ich

zastosowania.

background image

101

In ynieria oprogramowania

Wprowadzenie (101)

Plan wykładu

$

%

4

#

% :

'

4

;

1

<

4 #

8
$

9

4 %

9

0

%

#

%

#

#

%

#

W cyklu wykładowym po wi conym in ynierii oprogramowania nie mo e zabrakn
wykładu dotycz cego zarz dzania konfiguracj .

background image

102

In ynieria oprogramowania

Wprowadzenie (102)

Zarz dzanie konfiguracj

8

#

%

8

$

9

1

. 7

(4 #

(

#

(

Zmiany w oprogramowaniu i towarzysz ca im ewolucja kodu s praktycznie nie do
unikni cia. Wła ciwe zarz dzanie konfiguracj jest podstaw skutecznej ewolucji

oprogramowania i jedn z kluczowych praktyk zarz dzania przedsi wzi ciem

informatycznym.

background image

103

In ynieria oprogramowania

Wprowadzenie (103)

Najprostszy system zarz dzania zmianami

$ #

: #

#

%

(

%

# '

(

(

(

(

Je eli przedsi wzi cie jest małe w sensie rozmiaru kodu oprogramowania,
pracochłonno ci jego wytworzenia i liczby zaanga owanych osób, to zarz dzanie

zmian mo e by bardzo proste. Wystarczy, e proponowana przez klienta zmiana

spotka si z akceptacj programistów (mo e te by odwrotnie: stron proponuj c
zmian mog by programi ci, a akceptuj c – klient) .

background image

104

In ynieria oprogramowania

Wprowadzenie (104)

Formalne podej cie do zarz dzania zmianami

X 9

#

Err

<

4 % (

X 9

#

%

#

F

#

$

9

4 %

9

C

X 9

#

Niestety, jest szereg przedsi wzi programistycznych, które wymagaj bardziej
formalnego podej cia do zarz dzania zmianami. Du e firmy, prowadz ce tak du e

przedsi wzi cia, jak budowa elektronicznej centrali telefonicznej, korzystaj do

cz sto z podej cia prezentowanego na slajdzie, gdzie danie zmiany przechodzi
do długi proces od u ytkownika zgłaszaj cego danie zmiany (np. usterk w

oprogramowaniu), poprzez kierownika konfiguracji, programist oceniaj cego - na

polecenie kierownika konfiguracji - ryzyko i koszty wprowadzenia proponowanej
zmiany, specjalny Komitet Zarz dzania Konfiguracj , który podejmuje ostateczn

decyzj w sprawie proponowanej zmiany i Kierownika projektu, który przydziela
jednemu z programistów zadanie wprowadzenia zaproponowanej zmiany do

oprogramowania.

background image

105

In ynieria oprogramowania

Wprowadzenie (105)

Koncepcja systemu zarz dzania konfiguracj

%

#

Załó my teraz, e trzech programistów dostało trzy ró ne zadania modyfikacji tego
samego programu. Poniewa (jak to cz sto bywa) klientowi bardzo si spieszy,

programi ci ci maj pracowa równolegle. Oczywi cie, je eli zaczn oni

bezpo rednio i do chaotycznie manipulowa kodem programu, to nic dobrego z
tego nie wyniknie.

background image

106

In ynieria oprogramowania

Wprowadzenie (106)

Koncepcja systemu zarz dzania konfiguracj

%

#

Aby temu zaradzi korzysta si z systemów zarz dzania konfiguracj , które chroni
oprogramowanie przed chaotycznymi modyfikacjami i umo liwiaj współbie ne

modyfikowanie ró nych składników oprogramowania w sposób kontrolowany.

background image

107

In ynieria oprogramowania

Wprowadzenie (107)

Wykład nt. zarz dzania konfiguracj

#

= U

;

8

9

4 %

9

$

%

4

# % :

'

4

;

1

<

4 #

8
$

9

4 %

9

0

%

#

%

#

#

%

#

$

9

4 %

9

W trakcie wykładu omówiony zostanie jeden z najbardziej popularnych systemów
zarz dzania konfiguracj zwany CVS. Przedstawiona tak e zostanie struktura

plików projektu oraz wzorce zarz dzania konfiguracj .

background image

108

In ynieria oprogramowania

Wprowadzenie (108)

Plan wykładu

$

%

4

#

% :

'

4

;

1

<

4 #

8
$

9

4 %

9

0

%

#

%

#

#

%

#

Kolejne dwa wykłady b d po wi cone testowaniu oprogramowania.

background image

109

In ynieria oprogramowania

Wprowadzenie (109)

Testowanie oprogramowania

8

#

%

8

$

9

1

. 7

(4 #

(

#

(

Testowanie ma cisły zwi zek z weryfikacj , a tak e z walidacj oprogramowania i
dostarcza danych, które mog by wykorzystane do okre lenia niezawodno ci

oprogramowania.

background image

110

In ynieria oprogramowania

Wprowadzenie (110)

Czym jest testowanie?

,

$

$

"

$

#

- ,

-

,. -

-

/

6 1 ;

F 6

5

W literaturze mo na znale wiele definicji testowania. Zgodnie z okre leniem
zawartym w jednej z ksi ek Roberta Bindera, testowanie oprogramowania jest to

wykonanie kodu dla kombinacji danych wej ciowych i wewn trznych stanów

systemu w celu wykrycia bł dów. Warto zwróci uwag , na ostatni cz

zdania –

„w celu wykrycia bł dów”. Wynika z tego jasno, e celem testowania nie jest

pokazanie, e w oprogramowaniu nie ma bł dów – wr cz przeciwnie; w testowaniu

chodzi o to by wykry jak najwi cej bł dów. Im wi cej bł dów si wykryje tym
sprawniejszy jest proces testowania, ale te tym gorzej to wiadczy o procesie

tworzenia kodu.

background image

111

In ynieria oprogramowania

Wprowadzenie (111)

Wykłady nt. testowania

8

.

#

;

$

%

4

# % :

'

4

;

1

<

4 #

8
$

9

4 %

9

0

%

#

%

#

#

%

#

0

%

#

B d dwa wykłady na temat testowania. Pierwszy z nich b dzie wprowadzeniem w
problematyk testowania, natomiast w ramach drugiego wykładu przedyskutowane

zostanie – bardzo wa ne z praktycznego punktu widzenia – zagadnienie

automatyzacji wykonywania testów.

background image

112

In ynieria oprogramowania

Wprowadzenie (112)

Plan wykładu

$

%

4

#

% :

'

4

;

1

<

4 #

8
$

9

4 %

9

0

%

#

%

#

#

%

#

Przedostatni wykład b dzie po wi cony bardzo gło nej ostatnio metodyce
programowania zwanej Programowaniem Ekstremalnym (po angielsku

Extreme

Programming

).

background image

113

In ynieria oprogramowania

Wprowadzenie (113)

Programowanie Ekstremalne

8

#

%

8

$

9

1

. 7

(4 #

(

#

(

Programowanie Ekstremalne jest to zestaw praktyk dotycz cych m.in. specyfikacji
wymaga , weryfikacji i walidacji, ewolucji kodu, ró nych procesów zwi zanych z

rozwojem oprogramowania a tak e z zarz dzaniem przedsi wzi ciem

programistycznym.

background image

114

In ynieria oprogramowania

Wprowadzenie (114)

Kryzys oprogramowania

#

;

6

%

' /

Kryzys oprogramowania po raz pierwszy pojawił si w latach 60-tych ubiegłego
wieku. Zaobserwowano wówczas główne zagro enia czyhaj ce na miałków

chc cych w sposób komercyjny zajmowa si wytwarzaniem oprogramowania.

Okazało si , e w bardzo wielu przedsi wzi ciach programistycznych dochodzi do
przekroczenia terminu i bud etu, programi ci s ró nymi metodami zach cani do

pracy w nadgodzinach, co ujemnie si odbija na ich yciu prywatnym, a na dodatek

jako powstaj cego oprogramowania jest kiepska i nie satysfakcjonuje
u ytkowników ko cowych.

background image

115

In ynieria oprogramowania

Wprowadzenie (115)

Reakcja na kryzys oprogramowania

Pierwsz reakcj na kryzys oprogramowania było wprowadzenie dyscypliny do
przedsi wzi informatycznych. Wierzono, e poprzez wprowadzenie formalnych

procesów i ustandaryzowanej dokumentacji uda si zwalczy kryzys

oprogramowania. W rezultacie powstały metodyki przypominaj ce wspaniałe
katedry gotyckie: budziły szacunek i podziw dla kunsztu ich twórców, jednak na co

dzie mało kto z nich korzystał. Głównym winowajc były zmiany. W niektórych

przedsi wzi ciach zmiany s tak cz ste, e klasyczne metodyki okazuj si zbyt
ci kie, by mo na było za tymi zmianami nad y . W miar upływu lat zacz to

zdawa sobie spraw , e potrzeba czego l ejszego.

background image

116

In ynieria oprogramowania

Wprowadzenie (116)

Lekkie metodyki tworzenia oprogramowania

W połowie lat 90-tych zacz ły si pojawia tzw. lekkie metodyki oprogramowania,
które były bardziej zorientowane na nad anie za zmianami ni kurczowe trzymanie

si planu. Jedn z nich jest Programowanie Ekstremalne.

background image

117

In ynieria oprogramowania

Wprowadzenie (117)

Główne zalety Programowania Ekstremalnego

#

(

4

Q

X

%

B

0

6 1 B

W Programowaniu Ekstremalnym najwa niejsza jest komunikacja ustna.
Jedyne artefakty, jakie musz powstawa zostały ograniczone do kodu

programu i testów. Ponadto Programowanie Ekstremalne poci ga obietnic

braku nadgodzin. Nic dziwnego, e wielu ludziom taka propozycja wydaje si
bardzo atrakcyjna. Jednak bardzo wiele osób zapomina, e Programowanie

Ekstremalne ma równie szereg konkretnych wymaga maj cych posta
praktyk, które musz by stosowane, aby przedsi wzi cie zako czyło si

sukcesem. O tych praktykach b dzie mowa w trakcie wykładu po wi conego

Programowaniu Ekstremalnemu.

background image

118

In ynieria oprogramowania

Wprowadzenie (118)

Plan wykładu

$

%

4

#

% :

'

4

;

1

<

4 #

8
$

9

4 %

9

0

%

#

%

#

#

%

#

Ostatni wykład b dzie po wi cony ewolucji oprogramowania.

background image

119

In ynieria oprogramowania

Wprowadzenie (119)

Ewolucja oprogramowania

)(3

%

#

E(

#

D(F

;

9

#

W

H (

1 %

G (

1 %

%

#

+ (F 4

%

#

W trakcie wykładu zostan omówione przyczyny ewolucji oprogramowania,
prawa Lehmana, rozwój j dra systemu Linux, który jest zaprzeczeniem praw

Lehmana, czynniki wpływaj ce na koszt piel gnacji oprogramowania, typowy

proces piel gnacji oprogramowania i refaktoryzacja, jako technika obni enia
kosztów piel gnacji.

background image

120

In ynieria oprogramowania

Wprowadzenie (120)

Plan wykładu

#

Czas na podsumowanie wykładu.

background image

121

In ynieria oprogramowania

Wprowadzenie (121)

In ynieria oprogramowania

8

#

%

8

$

9

1

. 7

(4 #

(

#

(

W trakcie tego wykładu spojrzeli my z lotu ptaka na rozpoczynaj cy si cykl
wykładów na temat in ynierii oprogramowania. Z przedstawionej prezentacji wynika,

e b d omówione wszystkie obowi zkowe jednostki wiedzy oprócz programowania

za pomoc API, a ponadto b dzie tak e jeden wykład po wi cony metodom
formalnym. Dyskusja zagadnie dotycz cych in ynierii oprogramowania, któr

wła nie zacz li my, b dzie kontynuowana w ramach przedmiotu obieralnego pt.
„Zaawansowana in ynieria oprogramowania”.

background image

122

In ynieria oprogramowania

Wprowadzenie (122)

Dzi kuj za uwag . Mam nadziej , e mimo wysokiego poziomu abstrakcji i
pobie no ci prezentacji par istotnych szczegółów dotycz cych in ynierii

oprogramowania udało si Pa stwu dostrzec i ten ogólny obraz pomo e lepiej sobie

przyswoi zagadnienia, o których b dzie mowa na kolejnych wykładach. Serdecznie
na nie zapraszam.


Wyszukiwarka

Podobne podstrony:

więcej podobnych podstron