Wprowadzenie do informatyki Wykad 7 Inynieria oprogramowania Jerzy
- Slides: 35
Wprowadzenie do informatyki Wykład 7 Inżynieria oprogramowania Jerzy. Nawrocki@put. poznan. pl http: //www. cs. put. poznan. pl/jnawrocki/wdi/ J. Nawrocki, Metody numeryczne Copyright, 2007 © Jerzy R. Nawrocki
Kryzys oprogramowania • Przekraczanie terminów • Przekraczanie budżetu • Nadgodziny • Kiepska jakość J. Nawrocki, Metody numeryczne
Definicja inżynier ia Zastosowanie • systematyczneg o, • zdyscyplinowane go, • ilościowego podejścia do • rozwoju, • eksploatacji i • utrzymania IEEE Std 610. 12 -1990 oprogramowania. IEEE Standard Glossary of Software Eng. J. Nawrocki, Metody numeryczne Terminology
Plan wykładu • Specyfikacja wymagań • Kontrola jakości artefaktów • Testowanie oprogramowania • Metody formalne • Język UML • Zarządzanie konfiguracją • Standard kodowania J. Nawrocki, Metody numeryczne
Cykl życia Wymagania Projekt http: //groups. sims. berkeley. edu/CDE-Events/SMJUML. jpg J. Nawrocki, Metody numeryczne Wykonanie
Inżynieria wymagań Wymagania Problem i koncepcja rozwiązania Zbieranie wymagań Analiza wymagań Negocjacja wymagań J. Nawrocki, Metody numeryczne
Inżynieria wymagań Wymagania • Wymagania funkcjonalne • Wymagania pozafunkcjonalne J. Nawrocki, Metody numeryczne
Artefakty Specyfikacja wymagań Testy akceptacyjne Kod programu Podręcznik użytkownika J. Nawrocki, Metody numeryczne
Rodzaje kontroli jakości Testowanie J. Nawrocki, Metody numeryczne Przeglądy
Czym jest testowanie? Robert Binder Testowanie oprogramowania jest wykonaniem kodu dla kombinacji danych wejściowych i stanów w celu wykrycia błędów J. Nawrocki, Metody numeryczne
Czym jest testowanie? – c. d. Wariant testu (przypadek testowy, ang. test case) Testowana implementacja Dane wejściowe J. Nawrocki, Metody numeryczne Zaobserwow ane wyjście Stan wstępny
Czym jest testowanie? – c. d. Oczekiwane wyjście Porównanie Dane wejściowe Testowany system Stan wstępny J. Nawrocki, Metody numeryczne Wynik testu Faktyczne wyjście
Cele testowania wg Glena Myersa (1979) Jakość przypadku testowego: prawdopodob. znalezienia jeszcze nie wykrytego błędu. Udany test : taki, który wykrywa jeszcze nie wykryty błąd. J. Nawrocki, Metody numeryczne
Pracochłonność testowania • Testowanie: ~ % % całkowitej pracochłonności. Testowanie systemów krytycznych: %- % całkowitej pracochłonności (!) Roger S. Pressman J. Nawrocki, Metody numeryczne -- Roger Pressman’ 97
Metody formalne Przetestuję. Czy on jest poprawny? Przeczytam. Program Udowodnię. J. Nawrocki, Metody numeryczne
Ograniczenia testowania „Testowanie może ujawnić obecność błędów, ale nigdy ich braku” Dijkstra J. Nawrocki, Metody numeryczne
Silnia int Silnia (int n) { /*** PRE n >= 0 ***/ int k, s; k= 0; s= 1; while (k != n) { k= k + 1; s= s * k; } return s; /*** POST s== n! ***/ J. Nawrocki, Metody numeryczne
Silnia int Silnia (int n) { = 0! /*** PRE n 1>= 0 ***/ int k, s; k= 0; s= 1; /*** INV s== k! ***/ while (k != n) { k= k + 1; s= s * k; /*** INV s== k! ***/ } J. Nawrocki, Metody numeryczne
Silnia int Silnia (int n) { /*** PRE n >= 0 ***/ s== k! int k, s; k= 0; s= 1; k== /***s== INVk!s== k! k + 1 s == ***/ while (k != n) { k= k + 1; s= s * k; /*** INV s== k! ***/ } J. Nawrocki, Metody numeryczne
Silnia int Silnia (int n) { /*** PRE n >= 0 ***/ s== (k – 1)! int k, s; == INV (k – 1)! s == s k= 0; s= 1; s/*** s== k! *k ***/ while (k != n) { s == k= k + 1; s= s * k; /*** INV s== k! ***/ } J. Nawrocki, Metody numeryczne
Silnia int Silnia (int n) { /*** PRE n >= 0 ***/ int k, s; k= 0; s= 1; /*** INV s== k! ***/ while (k != n) { k= k + 1; s= s * k; /*** INV s== k! k == n ***/ } J. Nawrocki, Metody numeryczne
Specyfikac ja Wolfgang Reif J. Nawrocki, Metody numeryczne 7 000 LOC 5 000 LOC Dowodzenie poprawności programów Program
www. uml. org J. Nawrocki, Metody numeryczne
Diagramy UML Diagramy stanów Diagramy przypadków użycia Diagramy sekwencji Diagramy czynności Diagramy klas. . . J. Nawrocki, Metody numeryczne
Diagram stanów /Zdanie Matury Maturzysta /Złożenie podania na studia Kandydat Nieprzyjęty Zakwalifikowa ny /Złożenie oryginału świadectwa Przyjęty /Złożenie ślubowania Student J. Nawrocki, Metody numeryczne
Diagram stanów Maturzysta Akcja /Złożenie podania na studia Kandydat J. Nawrocki, Metody numeryczne
Diagram przypadków użycia Złożenie podania Maturzyst a Obejrzenie wyników rekrutacji Zakwalifikowa ny J. Nawrocki, Metody numeryczne Nieprzyjęty
Diagram przypadków użycia Przypadek użycia Aktor J. Nawrocki, Metody numeryczne
Diagram sekwencji Maturzysta System rekrutacji Składa podanie i wprowadza oceny Potwierdza przyjęcie podania i ocen Wnosi opłatę rekrutacyjną Potwierdza przyjęcie opłaty J. Nawrocki, Metody numeryczne KRe. M Czy oceny są poprawne? Są poprawne
Diagram sekwencji Obiekt-1 Obiekt-2 Linia życia obiektu J. Nawrocki, Metody numeryczne
Koncepcja systemu zarządzania konfiguracją Progra m J. Nawrocki, Metody numeryczne
Standard kodowania /*******************************/ /* Program: Kolor. Graf */ /* Autor: Jerzy Nawrocki */ /* Data: 20. 05. 2006 */ /* Funkcja: Program koloruje wezly podanego grafu nieskiero- */ /* wanego w taki sposób, aby kazda para wezlow */ /* polaczonych lukiem miala różny kolor. */ /* Wejscie: Liczba naturalna N>0 okreslajaca liczbe wezlow. */ /* Sekwencja par liczb A, B (0 < A, B <= N). Para taka*/ /* oznacza, ze wezly A, B sa polaczone lukiem. */ /* Wyjscie: Minimalna liczba potrzebnych kolorow */ /*Efekt ub: Brak */ /* Uwagi: Program koloruje graf metoda brutalnej sily. */ /*******************************/ J. Nawrocki, Metody numeryczne
Standard kodowania int int int N; /* Liczba wezlow w grafie: 0 < N <= Max. N */ A, B; /* Numery rozwazanych wezlow: 0 < A, B <= N */ Kolor; /* Numer rozwazanego koloru: 0 < Kolor <= N */ x 41; Pop. KG; J. Nawrocki, Metody numeryczne
Standard kodowania while (scanf("%d %d", &A, &B)>0){ if (0<A && A<=N && 0<B && B<=N) Luk[A, B]= True; Liczba. Lukow++; } J. Nawrocki, Metody numeryczne
Standard kodowania while (scanf("%d %d", &A, &B)>0){ /* /* if (0<A && A<=N && 0<B && B<=N) /* Luk[A, B]= True; /* /* } Czytaj kolejne pary */ wezlow A, B i dla kazdej, */ o ile jest poprawna, */ zapamietaj, ze jest luk */ miedzy tymi wezlami. */ while (scanf("%d %d", &A, &B)>0){ Jak dlugo funkcja scanf, */ czytajac wartosci A, B, */ zwraca wartosc dodatnia, */ sprawdz, czy A, B naleza */ do przedzialu [1, N] i */ zapamietaj wartosc True */ w tablicy Luk o wspol- */ rzednych A, B. */ /* /* /* if (0<A && A<=N && 0<B && B<=N) /* /* Luk[A, B]= True; /* /* /* } J. Nawrocki, Metody numeryczne
- Wprowadzenie do informatyki
- Gimp wprowadzenie
- Metoda dobrego startu - prezentacja
- Obrzedy wstepne mszy sw
- Wprowadzenie do systemów baz danych
- Plan prezentacji
- Romantyzm wprowadzenie do epoki
- Rodzaje testów oprogramowania
- Programisci zarobki
- Modele cyklu życia oprogramowania
- Inżynieria oprogramowania ian sommerville
- Studio oprogramowania fraktal
- Specyfikacja oprogramowania. inżynieria wymagań
- Szacowanie rozmiaru oprogramowania i pracochłonności
- Gpo instalacja oprogramowania
- Halina
- Kryzys oprogramowania
- Proces tworzenia oprogramowania
- Problemy społeczne i zawodowe informatyki
- Początki informatyki
- Historia i rozwoj informatyki
- Fc put
- W skrzynce operacyjnej schematu blokowego umieszcza się
- Dydaktyka informatyki
- Teoretyczne podstawy informatyki
- Historia informatyki w punktach
- Instytut informatyki uwr
- Zastosowanie informatyki w budownictwie
- Programowanie quiz
- Pollub katedra informatyki
- Sggw informatyka niestacjonarne
- Studia wieczorowe uwr
- Teoretyczne podstawy informatyki
- Jerzy supernat
- Of all the mechanics in the shop jerzy is surely
- Jerzy lackowski