Budowa i integracja systemów informacyjnych

Содержание

Слайд 2

Plan wykładu Jak się uczyć? Jak zdać egzamin? O czym to

Plan wykładu

Jak się uczyć?
Jak zdać egzamin?
O czym to jest?
Czy projekty

IT to „dobry interes”?
Modele – co to takiego?
… i po co …?
Слайд 3

Czy potrafisz ……….. ????

Czy potrafisz ……….. ????

Слайд 4

Etapy rozwoju systemu informatycznego

Etapy rozwoju systemu informatycznego

Слайд 5

Czego oczekujemy?? Wymagania Software

Czego oczekujemy??

Wymagania

Software

Слайд 6

Plan ataku – teoria (w uproszczeniu) Wymagania Analiza Projektowanie Implementacja Testowanie Wdrożenie

Plan ataku – teoria (w uproszczeniu)

Wymagania Analiza

Projektowanie

Implementacja

Testowanie

Wdrożenie

Слайд 7

A jak jest w rzeczywistości? Wymagania Analiza Softwerek

A jak jest w rzeczywistości?

Wymagania Analiza

Softwerek

Слайд 8

Sukcesy projektów IT Koszt: 10*1012 $ Czas: 3 lata opóźnienia Jakość:

Sukcesy projektów IT

Koszt: 10*1012 $
Czas: 3 lata opóźnienia
Jakość: pierwszy start Columbii

odłożony z powodu problemów synchronizacyjnych z piątym komputerem pokładowym
Źródłem błędów była zmiana wykonana 2 lata wcześniej przez programistę (współczynnik opóźnienia w procedurze zmieniony z 50 ms na 80 ms)
Mimo tysięcy testów błąd ten nie został wykryty
Слайд 9

Sukcesy projektów IT Koszt: 200 000 0000 PLN Czas: nieznany Jakość:

Sukcesy projektów IT

Koszt: 200 000 0000 PLN
Czas: nieznany
Jakość: wydłużenie czasu rejestracji

pojazdu z 15 do 45 minut
konieczność ręcznego przenoszenia danych
Wykonawca: Face Technologies - RPA

POJAZD
CEPiK

Слайд 10

Sukcesy projektów informatycznych This chart depicts the outcome of the 30,000

Sukcesy projektów informatycznych

This chart depicts the outcome of the 30,000 application

projects in large, medium, and small cross-industry U.S. companies tested by The Standish Group since 1994.
Source: The Standish Group International, Extreme Chaos, The Standish Group International, Inc., 2004

Succeeded

Challenged

Failed

Слайд 11

Budżet IT - 2004

Budżet IT - 2004

Слайд 12

Czy warto? 1/2

Czy warto? 1/2

Слайд 13

Czy warto? 2/2

Czy warto? 2/2

Слайд 14

Drobne trudności projektów

Drobne trudności projektów

Слайд 15

Zaliczenie

Zaliczenie

Слайд 16

Literatura [1] Kazimierz Subieta, Wprowadzenie do inżynierii oprogramowania, PJWSTK 2002 [2]

Literatura

[1] Kazimierz Subieta, Wprowadzenie do inżynierii oprogramowania, PJWSTK 2002
[2] Ian Sommerville,

Inżynieria oprogramowania, WNT, Warszawa 2003
[3] Steve McConnell, Programista doskonały, LTP, Warszawa 2003 (ang. Code Complete)
[4] www.pjwstk.edu.pl/wlodek
Слайд 17

Przedmiot inżynierii oprogramowania Inżynieria oprogramowania jest wiedzą techniczną dotycząca wszystkich faz

Przedmiot inżynierii oprogramowania

Inżynieria oprogramowania jest wiedzą techniczną dotycząca wszystkich faz cyklu

życia oprogramowania. Traktuje oprogramowanie jako produkt, który ma spełniać potrzeby techniczne, ekonomiczne lub społeczne.

Dobre oprogramowanie powinno być:
zgodne z wymaganiami użytkownika,
niezawodne,
efektywne,
łatwe w konserwacji,
ergonomiczne.

Produkcja oprogramowania jest procesem składającym się z wielu faz.
Kodowanie (pisanie programów) jest tylko jedną z nich, niekoniecznie najważniejszą.

Inżynieria oprogramowania jest wiedzą empiryczną, syntezą doświadczenia tysięcy ośrodków zajmujących się budową oprogramowania.
Praktyka pokazała, że w inżynierii oprogramowania nie ma miejsca stereotyp „od teorii do praktyki”. Teorie, szczególnie zmatematyzowane teorie, okazały się dramatycznie nieskuteczne w praktyce.

Слайд 18

Projekty „Nie twierdzę, że kontrolowałem wydarzenia, wręcz przeciwnie – przyznaję otwarcie,

Projekty

„Nie twierdzę, że kontrolowałem wydarzenia, wręcz przeciwnie – przyznaję otwarcie, że

to one kontrolowały mnie.”
Abraham Lincoln
Слайд 19

Zagadnienia inżynierii oprogramowania Sposoby prowadzenia przedsięwzięć informatycznych. Techniki planowania, szacowania kosztów,

Zagadnienia inżynierii oprogramowania

Sposoby prowadzenia przedsięwzięć informatycznych.
Techniki planowania, szacowania kosztów, harmonogramowania i

monitorowania przedsięwzięć informatycznych.
Metody analizy i projektowania systemów.
Techniki zwiększania niezawodności oprogramowania.
Sposoby testowania systemów i szacowania niezawodności.
Sposoby przygotowania dokumentacji technicznej i użytkowej.
Procedury kontroli jakości.
Metody redukcji kosztów konserwacji (usuwania błędów, modyfikacji i rozszerzeń)
Techniki pracy zespołowej i czynniki psychologiczne wpływające na efektywność pracy.
Слайд 20

Kryzys oprogramowania (1) Sprzeczność pomiędzy odpowiedzialnością, jaka spoczywa na współczesnych SI,

Kryzys oprogramowania (1)

Sprzeczność pomiędzy odpowiedzialnością, jaka spoczywa na współczesnych SI, a

ich zawodnością wynikającą ze złożoności i ciągle niedojrzałych metod tworzenia i weryfikacji oprogramowania.
Ogromne koszty utrzymania oprogramowania.
Niska kultura ponownego użycia wytworzonych komponentów projektów i oprogramowania; niski stopień powtarzalności poszczególnych przedsięwzięć.
Długi i kosztowny cykl tworzenia oprogramowania, wysokie prawdopodobieństwo niepowodzenia projektu programistycznego.
Długi i kosztowny cykl życia SI, wymagający stałych (często globalnych) zmian.
Eklektyczne, niesystematyczne narzędzia i języki programowania.
Слайд 21

Kryzys oprogramowania (2) Frustracje projektantów oprogramowania i programistów wynikające ze zbyt

Kryzys oprogramowania (2)

Frustracje projektantów oprogramowania i programistów wynikające ze zbyt szybkiego

postępu w zakresie języków, narzędzi i metod oraz uciążliwości i długotrwałości procesów produkcji, utrzymania i pielęgnacji oprogramowania.
Uzależnienie organizacji od systemów komputerowych i przyjętych technologii przetwarzania informacji, które nie są stabilne w długim horyzoncie czasowym.
Problemy współdziałania niezależnie zbudowanego oprogramowania, szczególnie istotne przy dzisiejszych tendencjach integracyjnych.
Problemy przystosowania istniejących i działających systemów do nowych wymagań, tendencji i platform sprzętowo-programowych.
Слайд 22

Walka z kryzysem oprogramowania Stosowanie technik i narzędzi ułatwiających pracę nad

Walka z kryzysem oprogramowania

Stosowanie technik i narzędzi ułatwiających pracę nad złożonymi

systemami;
Korzystanie z metod wspomagających analizę nieznanych problemów oraz ułatwiających wykorzystanie wcześniejszych doświadczeń;
Usystematyzowanie procesu wytwarzania oprogramowania, tak aby ułatwić jego planowanie i monitorowanie;
Wytworzenie wśród producentów i nabywców przekonania, że budowa dużego systemu wysokiej jakości jest zadaniem wymagającym profesjonalnego podejścia.

Podstawowym powodem kryzysu oprogramowania jest
złożoność produktów informatyki i procesów ich wytwarzania.

Слайд 23

Źródła złożoności projektu oprogramowania Zespół projektantów podlegający ograniczeniom pamięci, percepcji, wyrażania

Źródła złożoności projektu oprogramowania

Zespół projektantów podlegający ograniczeniom pamięci, percepcji, wyrażania informacji

i komunikacji.

Dziedzina problemowa,
obejmująca ogromną liczbę wzajemnie uzależnionych aspektów i problemów.

Oprogramowanie:
decyzje strategiczne,
analiza,
projektowanie,
konstrukcja,
dokumentacja,
wdrożenie,
szkolenie,
eksploatacja,
pielęgnacja,
modyfikacja.

Слайд 24

Jak walczyć ze złożonością ? Zasada dekompozycji: rozdzielenie złożonego problemu na

Jak walczyć ze złożonością ?

Zasada dekompozycji:
rozdzielenie złożonego problemu na podproblemy,

które można rozpatrywać i rozwiązywać niezależnie od siebie i niezależnie od całości.
Zasada abstrakcji:
eliminacja, ukrycie lub pominięcie mniej istotnych szczegółów rozważanego przedmiotu lub mniej istotnej informacji; wyodrębnianie cech wspólnych i niezmiennych dla pewnego zbioru bytów i wprowadzaniu pojęć lub symboli oznaczających takie cechy.
Zasada ponownego użycia:
wykorzystanie wcześniej wytworzonych schematów, metod, wzorców, komponentów projektu, komponentów oprogramowania, itd.
Zasada sprzyjania naturalnym ludzkim własnościom:
dopasowanie modeli pojęciowych i modeli realizacyjnych systemów do wrodzonych ludzkich własności psychologicznych, instynktów oraz mentalnych mechanizmów percepcji i rozumienia świata.
Слайд 25

Modelowanie pojęciowe Projektant i programista muszą dokładnie wyobrazić sobie problem oraz

Modelowanie pojęciowe

Projektant i programista muszą dokładnie wyobrazić sobie problem oraz metodę

jego rozwiązania. Zasadnicze procesy tworzenia oprogramowania zachodzą w ludzkim umyśle i nie są związane z jakimkolwiek językiem programowania.
Pojęcia modelowania pojęciowego (conceptual modeling) oraz modelu pojęciowego (conceptual model) odnoszą się procesów myślowych i wyobrażeń towarzyszących pracy nad oprogramowaniem.
Modelowanie pojęciowe jest wspomagane przez środki wzmacniające ludzką pamięć i wyobraźnię. Służą one do przedstawienia rzeczywistości opisywanej przez dane, procesów zachodzących w rzeczywistości, struktur danych oraz programów składających się na konstrukcję systemu.
Слайд 26

Modelowanie systemów Trwałą tendencją w rozwoju metod i narzędzi projektowania oraz

Modelowanie systemów

Trwałą tendencją w rozwoju metod i narzędzi projektowania oraz konstrukcji

SI jest dążenie do minimalizacji luki pomiędzy myśleniem o rzeczywistym problemie a myśleniem o danych i procesach zachodzących na danych.
Слайд 27

Co to jest metodyka (metodologia)? Metodyka jest to zestaw pojęć, notacji,

Co to jest metodyka (metodologia)?

Metodyka jest to zestaw pojęć, notacji, modeli,

języków, technik i sposobów postępowania służący do analizy dziedziny stanowiącej przedmiot projektowanego systemu oraz do projektowania pojęciowego, logicznego i/lub fizycznego.
Metodyka jest powiązana z notacją służącą do dokumentowania wyników faz projektu (pośrednich, końcowych), jako środek wspomagający ludzką pamięć i wyobraźnię i jako środek komunikacji w zespołach oraz pomiędzy projektantami i klientem.

Metodyka
ustala:

fazy projektu, role uczestników projektu,
modele tworzone w każdej z faz,
scenariusze postępowania w każdej z faz,
reguły przechodzenia od fazy do następnej fazy,
notacje, których należy używać,
dokumentację powstającą w każdej z faz.