background image

 

 

 

 

Historia i geneza 

Historia i geneza 

inżynierii 

inżynierii 

oprogramowania

oprogramowania

„kryzys oprogramowania”

„kryzys oprogramowania”

Na podstawie 

Na podstawie książki Inżynieria oprogramowania A. Jaszkiewicz Helion 

1997

 

 

Górski J., Inżynieria oprogramowania w projekcie informatycznym

Mikom 2000

 

 

oraz zasobów www.

background image

 

 

 

 

Słowo wstępne

Słowo wstępne

Gospodarki wszystkich rozwiniętych krajów zależą 

Gospodarki wszystkich rozwiniętych krajów zależą 

od oprogramowania.

od oprogramowania.

Obecnie wytwarzanie oprogramowania jest 

Obecnie wytwarzanie oprogramowania jest 

poważną gałęzią gospodarki narodowej 

poważną gałęzią gospodarki narodowej 

rozwiniętego kraju.

rozwiniętego kraju.

Coraz więcej i więcej systemów wymaga 

Coraz więcej i więcej systemów wymaga 

niezawodnego oprogramowania.

niezawodnego oprogramowania.

Wytwarzanie oprogramowania nie jest prostym 

Wytwarzanie oprogramowania nie jest prostym 

zagadnieniem (system informatyczny dla ZUS ;) ).

zagadnieniem (system informatyczny dla ZUS ;) ).

Wraz ze wzrostem złożoności oprogramowania 

Wraz ze wzrostem złożoności oprogramowania 

pojawia się większa liczba błędów.

pojawia się większa liczba błędów.

background image

 

 

 

 

Słowo wstępne 

Słowo wstępne 

Rynek oprogramowania

Rynek oprogramowania

Świat 207 miliardów euro (USA 97 

Świat 207 miliardów euro (USA 97 

miliardów, UE 63 miliardy)

miliardów, UE 63 miliardy)

Bez oprogramowania wytwarzanego na własne 

Bez oprogramowania wytwarzanego na własne 

potrzeby

potrzeby

Wzrost 5.1% rocznie

Wzrost 5.1% rocznie

+ 125 miliardów euro dodatkowych usług

+ 125 miliardów euro dodatkowych usług

W UE 60-70% 

W UE 60-70% 

oprogramowania

oprogramowania

 jest 

 jest 

wytwarzane w firmach, dla których nie jest 

wytwarzane w firmach, dla których nie jest 

to główną działalnością

to główną działalnością

background image

 

 

 

 

Historia: początki

Historia: początki

1950-1960

1950-1960

Sprzęt o bardzo ograniczonych 

Sprzęt o bardzo ograniczonych 

możliwościach

możliwościach

Ograniczone zastosowania

Ograniczone zastosowania

Małe programy

Małe programy

Programy pisane często dla własnych 

Programy pisane często dla własnych 

potrzeb lub potrzeb dobrze znanych osób

potrzeb lub potrzeb dobrze znanych osób

Dobrze wyspecyfikowane zadania

Dobrze wyspecyfikowane zadania

background image

 

 

 

 

Historia: rozwój

Historia: rozwój

1960-1980

1960-1980

Nowy zawód: programista

Nowy zawód: programista

Nowa rewolucja przemysłowa (Osborne 1979)

Nowa rewolucja przemysłowa (Osborne 1979)

Specjalizowane języki programowania – COBOL, 

Specjalizowane języki programowania – COBOL, 

Fortran, Algol

Fortran, Algol

Sprzęt o dużo większych możliwościach, np. pamięć 

Sprzęt o dużo większych możliwościach, np. pamięć 

wirtualna, pamięć masowa, czytniki kart i taśm

wirtualna, pamięć masowa, czytniki kart i taśm

Nowe, poza naukowe i poza militarne zastosowania 

Nowe, poza naukowe i poza militarne zastosowania 

– np. w biznesie

– np. w biznesie

Próba realizacji wielu dużych przedsięwzięć 

Próba realizacji wielu dużych przedsięwzięć 

programistycznych

programistycznych

background image

 

 

 

 

    

    

Osborne 1

Osborne 1

Opracowany przez 

Opracowany przez 

Adama Osborne'a

Adama Osborne'a

 

 

1981

1981

 r., który był 

 r., który był 

pierwszym 

pierwszym 

przenośnym komputerem

przenośnym komputerem

 w historii. Maszyna, 

 w historii. Maszyna, 

sterowana systemem operacyjnym 

sterowana systemem operacyjnym 

CP/M

CP/M

, ważyła ok. 12 kg i 

, ważyła ok. 12 kg i 

kosztowała 1795 

kosztowała 1795 

USD

USD

.

.

Komputer zawierał 4-megahercowy procesor Zilog Z80, 64 

Komputer zawierał 4-megahercowy procesor Zilog Z80, 64 

kB RAM, 2 napędy dyskietek 5,25 cala o pojemności 90 kB, 

kB RAM, 2 napędy dyskietek 5,25 cala o pojemności 90 kB, 

składaną klawiaturę i 5-calowy wyświetlacz 

składaną klawiaturę i 5-calowy wyświetlacz 

monochromatyczny o rozdzielczości 24 wierszy x 53 znaki. 

monochromatyczny o rozdzielczości 24 wierszy x 53 znaki. 

był też pierwszym komputerem dostarczanym razem z 

był też pierwszym komputerem dostarczanym razem z 

dodatkowym oprogramowaniem - 

dodatkowym oprogramowaniem - 

procesor tekstu

procesor tekstu

 

 

WordStar

WordStar

, 

, 

arkusz kalkulacyjny

arkusz kalkulacyjny

 

 

SuperCalc

SuperCalc

, 

baza danych

baza danych

 

 

dBase II

dBase II

 i języki 

 i języki 

CBASIC + MBASIC, o nominalnej wartości ok. 2000 USD. 

CBASIC + MBASIC, o nominalnej wartości ok. 2000 USD. 

Praktyka ta została wkrótce powszechnie przyjęta przez 

Praktyka ta została wkrótce powszechnie przyjęta przez 

producentów innych komputerów, co znacznie obniżyło ceny 

producentów innych komputerów, co znacznie obniżyło ceny 

systemów.

systemów.

W szczytowym momencie Osborne Computer Corporation 

W szczytowym momencie Osborne Computer Corporation 

produkowała 10 tys. maszyn miesięcznie.

produkowała 10 tys. maszyn miesięcznie.

Mikrokomputer ten bez problemów współpracował z polską 

Mikrokomputer ten bez problemów współpracował z polską 

drukarką D-100 produkcji MERA-BŁONIE.

drukarką D-100 produkcji MERA-BŁONIE.

background image

 

 

 

 

Objawy kryzysu 

Objawy kryzysu 

oprogramowania

oprogramowania

1970-1990

1970-1990

Rozwój technik wytwarzania 
oprogramowania nie nadąża za rozwojem 
sprzętu komputerowego i potrzeb klientów

background image

 

 

 

 

Objawy kryzysu 

Objawy kryzysu 

oprogramowania

oprogramowania

zarówno  wytwarzanie, jak i 

utrzymywanie oprogramowania kosztuje 

zbyt dużo,

oprogramowanie jest zawodne,

współdziałanie pomiędzy  produktami 

programistycznymi stanowi poważny 

problem

Metody tworzenia oprogramowania się 

nie skalują

background image

 

 

 

 

Przyczyny „kryzysu 

Przyczyny „kryzysu 

oprogramowania”:

oprogramowania”:

Duża złożoność systemów informatycznych

Duża złożoność systemów informatycznych

Złożoność, zmienność, nieadekwatność wymagań

Złożoność, zmienność, nieadekwatność wymagań

Niepowtarzalność poszczególnych przedsięwzięć

Niepowtarzalność poszczególnych przedsięwzięć

Nieprzejrzystość procesu budowy oprogramowania

Nieprzejrzystość procesu budowy oprogramowania

Pozorna łatwość wytwarzania i modyfikowania 

Pozorna łatwość wytwarzania i modyfikowania 

oprogramowania

oprogramowania

Potrzeba kreatywności

Potrzeba kreatywności

Czynnik ludzki

Czynnik ludzki

Mało wymagający rynek (błędy zostały uznane za normalne)

Mało wymagający rynek (błędy zostały uznane za normalne)

Niedoskonałość narzędzi

Niedoskonałość narzędzi

Brak standaryzacji

Brak standaryzacji

background image

 

 

 

 

Problem Ograniczeń Człowieka

Problem Ograniczeń Człowieka

(twórcy oprogramowania)

(twórcy oprogramowania)

Po przekroczeniu pewnego progu złożoności człowiek przestaje 

Po przekroczeniu pewnego progu złożoności człowiek przestaje 

panować nad  przygotowywanym produktem, ponieważ całościowe 

panować nad  przygotowywanym produktem, ponieważ całościowe 

zrozumienie funkcjonowania systemu w różnych jego aspektach i 

zrozumienie funkcjonowania systemu w różnych jego aspektach i 

na dowolnym poziomie szczegółowości z zasady przekracza jego 

na dowolnym poziomie szczegółowości z zasady przekracza jego 

możliwości.

możliwości.

Zbyt szybki rozwój narzędzi programistycznych oraz konieczność 

Zbyt szybki rozwój narzędzi programistycznych oraz konieczność 

dostosowania się do coraz nowszych rozwiązań sprzętowych 

dostosowania się do coraz nowszych rozwiązań sprzętowych 

wprowadza frustracje samych wytwórców oprogramowania. 

wprowadza frustracje samych wytwórców oprogramowania. 

Specjaliści oceniają, że:

Specjaliści oceniają, że:

    

    

    ● 

    ● 

programista nie może panować na raz nad więcej niż jednym

programista nie może panować na raz nad więcej niż jednym

ekranem tekstu programu

ekranem tekstu programu

        ●  

        ●  

testowanie może wykazać błędność programu, ale nie może

testowanie może wykazać błędność programu, ale nie może

wykazać jego bezbłędności

wykazać jego bezbłędności

    ●  

    ●  

nie ma programów bezbłędnych; są tylko takie, w których 

nie ma programów bezbłędnych; są tylko takie, w których 

dotąd nie znaleziono błędu

dotąd nie znaleziono błędu

background image

 

 

 

 

Przyczyny „kryzysu 

Przyczyny „kryzysu 

oprogramowania”:

oprogramowania”:

Złożoność systemów informatycznych, syndrom współczesnych 

Złożoność systemów informatycznych, syndrom współczesnych 

produktów,  przekleństwo ciążące na większości projektów i 

produktów,  przekleństwo ciążące na większości projektów i 

produktów informatyki związany z coraz większą mocą 

produktów informatyki związany z coraz większą mocą 

obliczeniową komputerów oraz ewaluacją oprogramowania.

obliczeniową komputerów oraz ewaluacją oprogramowania.

Szybkie zmiany w przemyśle informatycznym (5-7 miesięcy w 

Szybkie zmiany w przemyśle informatycznym (5-7 miesięcy w 

porównaniu do 5-7 lat  w innych dziedzinach) stanowi to powód 

porównaniu do 5-7 lat  w innych dziedzinach) stanowi to powód 

do frustracji nie tylko wytwórców oprogramowania, ale także 

do frustracji nie tylko wytwórców oprogramowania, ale także 

ich klientów.

ich klientów.

Wysokie prawdopodobieństwo niepowodzenia projektu (USA, 

Wysokie prawdopodobieństwo niepowodzenia projektu (USA, 

2003: 33% niepowodzeń, 33% sukcesów, 33% zakończeń 

2003: 33% niepowodzeń, 33% sukcesów, 33% zakończeń 

problematycznych)

problematycznych)

Sprzeczność pomiędzy odpowiedzialnością, jaka spoczywa na 

Sprzeczność pomiędzy odpowiedzialnością, jaka spoczywa na 

współczesnych SI, a ich zawodnością wynikającą ze złożoności i 

współczesnych SI, a ich zawodnością wynikającą ze złożoności i 

ciągle niedojrzałych metod tworzenia i weryfikacji 

ciągle niedojrzałych metod tworzenia i weryfikacji 

oprogramowania.

oprogramowania.

Ogromne koszty utrzymania oprogramowania.

Ogromne koszty utrzymania oprogramowania.

background image

 

 

 

 

Przyczyny „kryzysu 

Przyczyny „kryzysu 

oprogramowania”:

oprogramowania”:

Niepowtarzalność poszczególnych przedsięwzięć

Niepowtarzalność poszczególnych przedsięwzięć

Nieprzejrzystość procesu budowy oprogramowania (np. 

Nieprzejrzystość procesu budowy oprogramowania (np. 

trudności w ocenie stopnia zaawansowania prac),.

trudności w ocenie stopnia zaawansowania prac),.

Długi i kosztowny cykl tworzenia oprogramowania, wysokie 

Długi i kosztowny cykl tworzenia oprogramowania, wysokie 

prawdopodobieństwo niepowodzenia projektu 

prawdopodobieństwo niepowodzenia projektu 

programistycznego. Tworzenie dużych systemów trwało 3-5 lat 

programistycznego. Tworzenie dużych systemów trwało 3-5 lat 

a i tak często stawały się przestarzałe, zanim zostały 

a i tak często stawały się przestarzałe, zanim zostały 

ukończone

ukończone

!

!

 przez co statystycznie jeden na 4 projekty kończył 

 przez co statystycznie jeden na 4 projekty kończył 

się porażką

się porażką

Pozorna łatwość wytwarzania i dokonywania poprawek

Pozorna łatwość wytwarzania i dokonywania poprawek

Problemy ze współdziałaniem niezależnie budowanego 

Problemy ze współdziałaniem niezależnie budowanego 

oprogramowania, nieprzejrzystość procesu budowy 

oprogramowania, nieprzejrzystość procesu budowy 

oprogramowania

oprogramowania

Problemy z dostosowaniem istniejącego oprogramowania do 

Problemy z dostosowaniem istniejącego oprogramowania do 

nowych wymagań

nowych wymagań

Długi i kosztowny cykl życia SI, wymagający stałych (często 

Długi i kosztowny cykl życia SI, wymagający stałych (często 

globalnych) zmian. Pielęgnacja oprogramowania stała się 

globalnych) zmian. Pielęgnacja oprogramowania stała się 

niezwykle trudna i kosztowna

niezwykle trudna i kosztowna

background image

 

 

 

 

Historia: próby przełamania 

Historia: próby przełamania 

kryzysu

kryzysu

1968: konferencja NATO w Ga-Pa 

1968: konferencja NATO w Ga-Pa 

(Garmisch-Partenkirchen, Niemcy) nt. 

(Garmisch-Partenkirchen, Niemcy) nt. 

inżynierii oprogramowania

inżynierii oprogramowania

Metodyki strukturalne

Metodyki strukturalne

Metodyki obiektowe

Metodyki obiektowe

Technologie komponentowe

Technologie komponentowe

Programowanie aspektowe

Programowanie aspektowe

Standaryzacja technologii

Standaryzacja technologii

Kryzys czy chroniczne niedomaganie?

background image

 

 

 

 

Jak powstawała inżynieria 

Jak powstawała inżynieria 

oprogramowania

oprogramowania

background image

 

 

 

 

Co to jest inżynieria 

Co to jest inżynieria 

oprogramowania i jaki jest jej 

oprogramowania i jaki jest jej 

zakres?

zakres?

Termin "inżynieria oprogramowania" po raz pierwszy 

Termin "inżynieria oprogramowania" po raz pierwszy 

został użyty na  przełomie lat 1950/60. Jednak 

został użyty na  przełomie lat 1950/60. Jednak 

oficjalnie za narodziny tej dyscypliny podaje się lata 

oficjalnie za narodziny tej dyscypliny podaje się lata 

1968 i 1969, w których miały miejsce dwie konferencje 

1968 i 1969, w których miały miejsce dwie konferencje 

sponsorowane przez NATO w Garmisch i Rzymie.

sponsorowane przez NATO w Garmisch i Rzymie.

Inżynieria

Inżynieria

 – projektowanie, budowa i obsługa 

 – projektowanie, budowa i obsługa 

konstrukcji, maszyn, procesów i systemów 

konstrukcji, maszyn, procesów i systemów 

w przemyśle i codziennym życiu

w przemyśle i codziennym życiu

Inżynieria oprogramowania

Inżynieria oprogramowania

 – projektowanie, 

 – projektowanie, 

rozwój, dokumentowanie, wdrażanie i pielęgnacja 

rozwój, dokumentowanie, wdrażanie i pielęgnacja 

oprogramowania

oprogramowania

Cel

Cel

: jak w każdej inżynierii – optymalizacja kosztów i 

: jak w każdej inżynierii – optymalizacja kosztów i 

niezawodność produktu

niezawodność produktu

background image

 

 

 

 

Sposoby walki z 

Sposoby walki z 

„kryzysem oprogramowania”

„kryzysem oprogramowania”

stosowanie technik i narzędzi ułatwiających pracę 

stosowanie technik i narzędzi ułatwiających pracę 

nad złożonymi systemami,

nad złożonymi systemami,

korzystanie z metod wspomagających analizę 

korzystanie z metod wspomagających analizę 

nieznanych problemów,

nieznanych problemów,

korzystanie z metod ułatwiających 

korzystanie z metod ułatwiających 

wykorzystywanie wcześniejszych doświadczeń,

wykorzystywanie wcześniejszych doświadczeń,

usystematyzowanie procesu wytwarzania 

usystematyzowanie procesu wytwarzania 

oprogramowania,

oprogramowania,

wprowadzenie przekonania wśród zamawiających 

wprowadzenie przekonania wśród zamawiających 

i wytwarzających oprogramowanie, że budowanie 

i wytwarzających oprogramowanie, że budowanie 

dużego systemu o wysokiej jakości wymaga 

dużego systemu o wysokiej jakości wymaga 

bardzo profesjonalnego podejścia.

bardzo profesjonalnego podejścia.

background image

 

 

 

 

Co można na to poradzić:

Co można na to poradzić:

Mechanizmy abstrakcji

Mechanizmy abstrakcji

 (eliminacja, ukrycie lub pominięcie 

 (eliminacja, ukrycie lub pominięcie 

mniej istotnych szczegółów rozważanego przedmiotu lub 

mniej istotnych szczegółów rozważanego przedmiotu lub 

mniej istotnej informacji; wyodrębnianie cech wspólnych i 

mniej istotnej informacji; wyodrębnianie cech wspólnych i 

niezmiennych dla pewnego zbioru bytów i wprowadzaniu 

niezmiennych dla pewnego zbioru bytów i wprowadzaniu 

pojęć lub symboli oznaczających takie cechy)

pojęć lub symboli oznaczających takie cechy)

Mechanizmy kompozycji i dekompozycji

Mechanizmy kompozycji i dekompozycji

 (rozdzielenie 

 (rozdzielenie 

złożonego problemu na podproblemy, które można 

złożonego problemu na podproblemy, które można 

rozpatrywać i rozwiązywać niezależnie od siebie i 

rozpatrywać i rozwiązywać niezależnie od siebie i 

niezależnie od całości)

niezależnie od całości)

Ponowne użycie

Ponowne użycie

 (wykorzystanie wcześniej wytworzonych 

 (wykorzystanie wcześniej wytworzonych 

schematów, metod, wzorców, komponentów projektu, 

schematów, metod, wzorców, komponentów projektu, 

komponentów oprogramowania)

komponentów oprogramowania)

Zorientowanie technologii komputerowych na ludzi

Zorientowanie technologii komputerowych na ludzi

 

 

(dopasowanie modeli pojęciowych i modeli realizacyjnych 

(dopasowanie modeli pojęciowych i modeli realizacyjnych 

systemów, do wrodzonych ludzkich własności 

systemów, do wrodzonych ludzkich własności 

psychologicznych oraz mentalnych mechanizmów 

psychologicznych oraz mentalnych mechanizmów 

percepcji i rozumienia  świata)

percepcji i rozumienia  świata)

background image

 

 

 

 

Podsumowanie

Podsumowanie

Mimo rozkwitu Inżynierii oprogramowania

Mimo rozkwitu Inżynierii oprogramowania

oraz ciągłego jej udoskonalania

oraz ciągłego jej udoskonalania

„kryzys oprogramowania” 

„kryzys oprogramowania” 

nadal trwa !

nadal trwa !

background image

 

 

 

 

KONIEC

KONIEC

Dziękuje za uwage

Dziękuje za uwage


Document Outline