240 likes | 422 Views
Inżynieria oprogramowania. Wprowadzenie Kryzys oprogramowania. Pytanie na początek. Jaki procent dużych projektów informatycznych kończy się SUKCESEM?. Marsz ku klęsce!!!. Zdecydowana większość dużych projektów informatycznych jest z góry skazana na niepowodzenie !. =.
E N D
Inżynieria oprogramowania Wprowadzenie Kryzys oprogramowania
Pytanie na początek Jaki procent dużych projektów informatycznych kończy się SUKCESEM?
Marsz ku klęsce!!! Zdecydowana większość dużych projektów informatycznych jest z góry skazana na niepowodzenie! =
Polskie przykłady • Informatyzacja PZU • Informatyzacja ZUS • System POJAZD • Informatyzacja urzędów skarbowych
The Standish Group Amerykańska instytucja badawcza. Działalność: kompleksowa analiza rynku amerykańskiego w zakresie skuteczności realizacji projektów informatycznych. Kolejne raporty: • The CHAOS Chronicles I – 1995, • The CHAOS Chronicles II – 2001, • The CHAOS Chronicles III – 2003. www.standishgroup.com
Dlaczego CHAOS? O chaosie w projektowaniu SI decyduje przeważająca liczba przedsięwzięć zakończonych : • niepowodzeniem w sensie ilościowym, czyli: • przekroczeniem estymowanego czasu trwania działań projektowych; • przekroczeniem budżetu; • porzuceniem z określonych powodów; • niepowodzeniem w sensie jakościowym, kiedy gotowy system wykazuje dużą niezgodność z pierwotną specyfikacją wymagań użytkownika. Chaos – stan niezorganizowania, zamętu, nieładu
Udany projekt Zakres Produkt końcowy Udany projekt Koszty Koszty realizacji Termin Czas
Wydatki na projekty SI 200 tys. projektów
Jakość produktów Im większy jest tworzony system, tym mniejszazgodność produktu końcowego z pierwotną specyfikacją wymagań funkcjonalnych, a w związku z tym mniejszezadowolenie klientów.
Wnioski z badań Chaos w obszarze projektowania SI spowodowany jest błędami ludzkimi, a nie technologicznymi
Podstawowe problemy • Niewłaściwa interpretacja wymagań klienta • Częste i zbyt późne zgłaszanie zmian związanych z oprogramowaniem • Nieprawidłowe oszacowanie czasu realizacji projektu (opóźnienia czasowe) • Nieprawidłowe oszacowanie budżetu i zasobów • Problemy w komunikacji pomiędzy członkami zespołu projektowego • Problemy w komunikacji pomiędzy zespołem projektowym a klientem • Duża liczba małych błędów w oprogramowaniu, wynikająca z nieprawidłowego testowania • Problemy wdrożeniowe i brak odpowiedniej pielęgnacji oprogramowania
Złożoność oprogramowania Złożoność oprogramowania (wewnętrzna i wymagana komunikacją z innymi systemami – patrz MS Windows/MS Office) • UNIX – 4 000 000 linii kodu • Windows 2000 – 35 000 000 linii kodu • Windows XP – około 50 000 000 linii kodu
Złożoność oprogramowania Rozwój systemu LINUX:
Źródła złożoności oprogramowania Złożoność dziedzinowa Software Złożoność technologiczna Złożoność psychologiczna
Liczebność zespołów projektowych Wielość współautorów oraz problemy związane z błędami na etapie określania wymagań, projektowania, wykonywania i testowania
Metody projektowania Ciągle niedoskonałe metody i narzędzia tworzenia i weryfikacji oprogramowania. XP PSL/PSA HELP! UML DFD ERD RSL/REVS SADT
Kryzys oprogramowania • Długi i kosztowny cykl tworzenia oprogramowania • Długi i kosztowny cykl życia SI, wymagający stałych zmian • Wysokie koszty utrzymania oprogramowania • Wysokie prawdopodobieństwo niepowodzenia projektu programistycznego • Sprzeczność pomiędzy odpowiedzialnością współczesnych systemów informatycznych, a ich zawodnością • Problemy współdziałania niezależnie zbudowanego oprogramowania, szczególnie istotne przy dzisiejszych tendencjach integracyjnych
Kryzys oprogramowania • Uzależnienie organizacji od systemów komputerowych i przyjętych technologii przetwarzania informacji (często niestabilnych w długim horyzoncie czasowym) • Dążenie do przystosowania istniejących i działających systemów do nowych wymagań i tendencji oraz platform sprzętowo-programowych • Niski stopień powtarzalności poszczególnych przedsięwzięć • Niska kultura ponownego użycia wytworzonych komponentów projektów i oprogramowania • Szybki rozwój narzędzi informatycznych
Prawa Murphiego • „główne błędy powstają na styku: klient – firma informatyczna, projektant-programista, programista-komputer” • „jeżeli gdziekolwiek może pojawić się błąd, tam na pewno się pojawi” • „nie ma programów bezbłędnych, są tylko takie w których dotąd nie znaleziono błędu”
Dziękuję za uwagę Zapraszam za tydzień