W1 1 Historia i geneza inżynierii oprogramowania

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


Wyszukiwarka

Podobne podstrony:
Inzynieria oprogramowania w ujeciu obiektowym UML wzorce projektowe i Java iowuje
ZadanieNaZaliczenie, WAT, semestr IV, Inżynieria oprogramowania
Rafał Polak 12k2 lab8, Inżynieria Oprogramowania - Informatyka, Semestr III, Systemy Operacyjne, Spr
zagadnienia egzaminacyjne z przedmiotu inżynieria oprogramowania zIO
Inżynieria oprogramowania Diagramy ERD
2006 06 Wstęp do Scrum [Inzynieria Oprogramowania]
sciąga moja, Informatyka SGGW, Semestr 4, Inżynieria oprogramowania, Od starszego rocznika
Tworzenie oprogramowania, Semestr 5, Inżynieria oprogramowania
2007 05 Mechanizm koncepcji w języku C nowe oblicze szablonów [Inzynieria Oprogramowania]
Inżynieria oprogramowania syllabus IV niestac 07 08, Prywatne, WAT, SEMESTR IV, IO, io, Materiały od
Rafał Polak 12k2 lab9, Inżynieria Oprogramowania - Informatyka, Semestr III, Systemy Operacyjne, Spr
inżynieria oprogramowani5s 3D2LFW6JYNMO6D276CSZQV5ONUNVXOTKWFXHA3A
inżynieria oprogramowani1 2EM7Y2ON72DKTCAQF3UOSCLXHY5636FZE7C7PUQ
inżynieria oprogramowani5 G46UQE27RE6UDINZWBW2TXNEOUUYOYV2MMVZ2NI
2008 06 Java Microedition – metody integracji aplikacji [Inzynieria Oprogramowania]
MiBM istota i geneza inżynierii materiałowej
Inżynieria oprogramowania II
Opracowanie na Inżynierie Oprogramowania
Przykład diagramu sekwencji, Inżynieria oprogramowania

więcej podobnych podstron