Inżynieria oprogramowania

Slides:



Advertisements
Podobne prezentacje
Systemy czasu rzeczywistego
Advertisements

C++ wykład 7 ( ) Wyjątki.
Programowanie Ekstemalne
Zarządzanie konfiguracją oprogramowania
Rodzaje testów oprogramowania
Modelowanie przypadków użycia
Testowanie oprogramowania
Inżynieria Oprogramowania 9. Testowanie oprogramowania
Politechnika Gdańska WYDZIAŁ ELEKTRONIKI TELEKOMUNIKACJI I INFORMATYKI
Organizacja Przedsięwzięć Programistycznych Wykład 7, 27.II.03
Imperatywne modele obliczeń Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do.
Inżynieria oprogramowania II Wykład 12 Projekty dyplomowe
Zarządzanie konfiguracją Doskonalenie Procesów Programowych Wykład 6 Copyright, 2001 © Jerzy.
Obliczalność i złożoność obliczeniowa
Copyright © Jerzy R. Nawrocki Standardy serii ISO Inżynieria oprogramowania II Wykład.
Copyright © Jerzy R. Nawrocki Kontrola jakości oprogramowania Inżynieria oprogramowania.
Inżynieria Oprogramowania Copyright, 2002 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
J. Nawrocki, Inżynieria oprog. Plan wykładu Praktyki XP Wcześniejsze badania Personal Software Process eXtremme Programming Opis eksperymentu WynikiPodsumowanie.
Analiza i walidacja wymagań
Copyright © Jerzy R. Nawrocki Zbieranie wymagań Analiza systemów informatycznych Wykład.
Copyright © Jerzy R. Nawrocki Wprowadzenie Analiza systemów informatycznych Wykład.
Modelowanie i architektura
Testy akceptacyjne Analiza systemów informatycznych Wykład 9
Modelowanie i język UML
Wprowadzenie do przedmiotu
Imperatywne modele obliczeń Copyright, 2003 © Jerzy R. Nawrocki Teoretyczne podstawy.
Metody numeryczne Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Informatyka jako dziedzina wiedzy Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Rekursja Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne podstawy informatyki.
Programowanie imperatywne i język C
Informatyka jako dziedzina wiedzy Copyright, 2005 © Jerzy R. Nawrocki Wstęp.
Modularyzacja i struktury danych w C Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie.
Modularyzacja i struktury danych w C Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie.
Programowanie imperatywne i język C Copyright, 2005 © Jerzy R. Nawrocki Wstęp.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Testowanie oprogramowania
Język C – Część II Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
C++ wykład 7 ( ) Wyjątki. Ogólne spojrzenie na wyjątki Wyjątki zaprojektowano do wspierania obsługi błędów. System wyjątków dotyczy zdarzeń synchronicznych.
Projekt zaliczeniowy z przedmiotu "Inżynieria oprogramowania"
PODSTAWY PROGRAMOWANIA
Analiza, projekt i częściowa implementacja systemu obsługi kina
Programowanie imperatywne i język C Copyright, 2006 © Jerzy R. Nawrocki Wstęp do.
POJĘCIE ALGORYTMU Pojęcie algorytmu Etapy rozwiązywania zadań
Copyright © Jerzy R. Nawrocki Metody formalne Inżynieria oprogramowania II Wykład 5.
Jerzy F. Kotowski1 Informatyka I Wykład 14 DEKLARATORY.
Informatyka jako dziedzina wiedzy
Translatory Copyright, 2006 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład 11.
Gramatyki i translatory
Unified Modeling Language - Zunifikowany Język Modelowania
Uniwersytet Kardynała Stefana Wyszyńskiego w Warszawie
Pomiary procesów programistycznych Copyright, 2002 © Jerzy R. Nawrocki Zarządzanie jakością.
Copyright © Jerzy R. Nawrocki Kontrola jakości oprogramowania Inżynieria oprogramowania.
K URS JĘZYKA C++ – WYKŁAD 7 ( ) Wyjątki.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Inżynieria oprogramowania
Metody matematyczne w inżynierii chemicznej
Języki formalne Copyright, 2006 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Wprowadzenie do teoretycznych podstaw informatyki Copyright, 2004 © Jerzy R. Nawrocki
Copyright © Jerzy R. Nawrocki Team Software Process Inżynieria oprogramowania II Wykład.
Programowanie imperatywne i język C Copyright, 2007 © Jerzy R. Nawrocki Wstęp do.
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
Innowacyjne metody zarządzania jakością oprogramowania Przeglądy oprogramowania i standard IEEE 1028 Bartosz Michalik
Gimnazjum im. J.B.Solfy w Trzebielu. Terminy postępowania rekrutacyjnego oraz postępowania uzupełniającego, a także terminy składania dokumentów do.
Inżynieria systemów informacyjnych
Wprowadzenie do teoretycznych podstaw informatyki
Uniwersytet Kardynała Stefana Wyszyńskiego w Warszawie
Kontrola jakości Inżynieria oprogramowania II
Zapis prezentacji:

Inżynieria oprogramowania (c) Jerzy Nawrocki Wykł. 9 Wprowadzenie do informatyki Wykład 7 Inżynieria oprogramowania Jerzy.Nawrocki@put.poznan.pl http://www.cs.put.poznan.pl/jnawrocki/wdi/ Copyright, 2007 © Jerzy R. Nawrocki Wprowadzenie do informatyki

Kryzys oprogramowania (c) Jerzy Nawrocki Kryzys oprogramowania Wykł. 9 Przekraczanie terminów Przekraczanie budżetu Nadgodziny Kiepska jakość Kryzys J.Nawrocki, Metody numeryczne Wprowadzenie do informatyki

J.Nawrocki, Metody numeryczne (c) Jerzy Nawrocki Wykł. 9 Definicja inżynieria Zastosowanie systematycznego, zdyscyplinowanego, ilościowego podejścia do rozwoju, eksploatacji i utrzymania oprogramowania. IEEE Std 610.12-1990 IEEE Standard Glossary of Software Eng. Terminology J.Nawrocki, Metody numeryczne Wprowadzenie do informatyki

J.Nawrocki, Metody numeryczne (c) Jerzy Nawrocki Plan wykładu Wykł. 9 Specyfikacja wymagań Kontrola jakości artefaktów Testowanie oprogramowania Metody formalne Język UML Zarządzanie konfiguracją Standard kodowania J.Nawrocki, Metody numeryczne Wprowadzenie do informatyki

J.Nawrocki, Metody numeryczne (c) Jerzy Nawrocki Cykl życia Wykł. 9 Wymagania Projekt Wykonanie http://groups.sims.berkeley.edu/CDE-Events/SMJ-UML.jpg J.Nawrocki, Metody numeryczne Wprowadzenie do informatyki

Problem i koncepcja rozwiązania (c) Jerzy Nawrocki Inżynieria wymagań Wykł. 9 Problem i koncepcja rozwiązania Wymagania Zbieranie wymagań Analiza wymagań Negocjacja wymagań J.Nawrocki, Metody numeryczne Wprowadzenie do informatyki

J.Nawrocki, Metody numeryczne (c) Jerzy Nawrocki Inżynieria wymagań Wykł. 9 Wymagania Wymagania funkcjonalne Wymagania pozafunkcjonalne J.Nawrocki, Metody numeryczne Wprowadzenie do informatyki

Podręcznik użytkownika (c) Jerzy Nawrocki Artefakty Wykł. 9 Specyfikacja wymagań Testy akceptacyjne Kod programu Podręcznik użytkownika J.Nawrocki, Metody numeryczne Wprowadzenie do informatyki

Rodzaje kontroli jakości (c) Jerzy Nawrocki Rodzaje kontroli jakości Wykł. 9 Testowanie Przeglądy J.Nawrocki, Metody numeryczne Wprowadzenie do informatyki

J.Nawrocki, Metody numeryczne (c) Jerzy Nawrocki Czym jest testowanie? Wykł. 9 Testowanie oprogramowania jest wykonaniem kodu dla kombinacji danych wejściowych i stanów w celu wykrycia błędów Robert Binder J.Nawrocki, Metody numeryczne Wprowadzenie do informatyki

Czym jest testowanie? – c.d. (c) Jerzy Nawrocki Czym jest testowanie? – c.d. Wykł. 9 Wariant testu (przypadek testowy, ang. test case) Testowana implementacja Dane wejściowe Zaobserwowane wyjście Stan wstępny J.Nawrocki, Metody numeryczne Wprowadzenie do informatyki

Czym jest testowanie? – c.d. (c) Jerzy Nawrocki Czym jest testowanie? – c.d. Wykł. 9 Oczekiwane wyjście Wynik testu Porównanie Dane wejściowe Testowany system Faktyczne wyjście Stan wstępny J.Nawrocki, Metody numeryczne Wprowadzenie do informatyki

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 Pressman’97 Roger S. Pressman J.Nawrocki, Metody numeryczne

J.Nawrocki, Metody numeryczne (c) Jerzy Nawrocki Metody formalne Wykł. 9 Przetestuję. Czy on jest poprawny? Program Przeczytam. Udowodnię.   J.Nawrocki, Metody numeryczne Wprowadzenie do informatyki

Ograniczenia testowania (c) Jerzy Nawrocki Ograniczenia testowania Wykł. 9 „Testowanie może ujawnić obecność błędów, ale nigdy ich braku” Dijkstra J.Nawrocki, Metody numeryczne Wprowadzenie do informatyki

J.Nawrocki, Metody numeryczne (c) Jerzy Nawrocki Silnia Wykł. 9 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 Wprowadzenie do informatyki

J.Nawrocki, Metody numeryczne (c) Jerzy Nawrocki Silnia Wykł. 9 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! ***/ } return s; /*** POST s== n! ***/ 1 = 0! J.Nawrocki, Metody numeryczne Wprowadzenie do informatyki

J.Nawrocki, Metody numeryczne (c) Jerzy Nawrocki Silnia Wykł. 9 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! ***/ } return s; /*** POST s== n! ***/ s== k! s== k!  k== k + 1  s == J.Nawrocki, Metody numeryczne Wprowadzenie do informatyki

J.Nawrocki, Metody numeryczne (c) Jerzy Nawrocki Silnia Wykł. 9 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! ***/ } return s; /*** POST s== n! ***/ s == (k – 1)!  s == s * k  s == s== (k – 1)! J.Nawrocki, Metody numeryczne Wprowadzenie do informatyki

J.Nawrocki, Metody numeryczne (c) Jerzy Nawrocki Silnia Wykł. 9 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! ***/ } return s; /*** POST s== n! ***/ k == n J.Nawrocki, Metody numeryczne Wprowadzenie do informatyki

Dowodzenie poprawności programów (c) Jerzy Nawrocki Dowodzenie poprawności programów Wykł. 9 Program Specyfikacja 5 000 LOC 7 000 LOC Wolfgang Reif J.Nawrocki, Metody numeryczne Wprowadzenie do informatyki

J.Nawrocki, Metody numeryczne (c) Jerzy Nawrocki Wykł. 9 www.uml.org J.Nawrocki, Metody numeryczne Wprowadzenie do informatyki

J.Nawrocki, Metody numeryczne (c) Jerzy Nawrocki Diagramy UML Wykł. 9 Diagramy stanów Diagramy przypadków użycia Diagramy sekwencji Diagramy czynności Diagramy klas . . . J.Nawrocki, Metody numeryczne Wprowadzenie do informatyki

J.Nawrocki, Metody numeryczne (c) Jerzy Nawrocki Diagram stanów Wykł. 9 /Zdanie Matury Maturzysta /Złożenie podania na studia Kandydat Nieprzyjęty Zakwalifikowany /Złożenie oryginału świadectwa Przyjęty /Złożenie ślubowania Student J.Nawrocki, Metody numeryczne Wprowadzenie do informatyki

J.Nawrocki, Metody numeryczne (c) Jerzy Nawrocki Diagram stanów Wykł. 9 Akcja Maturzysta /Złożenie podania na studia Kandydat J.Nawrocki, Metody numeryczne Wprowadzenie do informatyki

Diagram przypadków użycia (c) Jerzy Nawrocki Diagram przypadków użycia Wykł. 9 Złożenie podania Maturzysta Obejrzenie wyników rekrutacji Zakwalifikowany Nieprzyjęty J.Nawrocki, Metody numeryczne Wprowadzenie do informatyki

Diagram przypadków użycia (c) Jerzy Nawrocki Diagram przypadków użycia Wykł. 9 Przypadek użycia Aktor J.Nawrocki, Metody numeryczne Wprowadzenie do informatyki

Diagram sekwencji Maturzysta System rekrutacji KReM (c) Jerzy Nawrocki Diagram sekwencji Wykł. 9 Maturzysta System rekrutacji KReM Składa podanie i wprowadza oceny Czy oceny są poprawne? Są poprawne Potwierdza przyjęcie podania i ocen Wnosi opłatę rekrutacyjną Potwierdza przyjęcie opłaty J.Nawrocki, Metody numeryczne Wprowadzenie do informatyki

J.Nawrocki, Metody numeryczne (c) Jerzy Nawrocki Diagram sekwencji Wykł. 9 Obiekt Obiekt-1 Obiekt-2 Linia życia obiektu J.Nawrocki, Metody numeryczne Wprowadzenie do informatyki

Koncepcja systemu zarządzania konfiguracją (c) Jerzy Nawrocki Wykł. 9 Koncepcja systemu zarządzania konfiguracją Program System zarz. konfiguracją J.Nawrocki, Metody numeryczne Wprowadzenie do informatyki

J.Nawrocki, Metody numeryczne (c) Jerzy Nawrocki Standard kodowania Wykł. 9 Nagłówek programu /*************************************************************/ /* Program: KolorGraf */ /* 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 Wprowadzenie do informatyki

J.Nawrocki, Metody numeryczne (c) Jerzy Nawrocki Standard kodowania Wykł. 9 Identyfikatory int N; /* Liczba wezlow w grafie: 0 < N <= MaxN */ int A, B; /* Numery rozwazanych wezlow: 0 < A,B <= N */ int Kolor; /* Numer rozwazanego koloru: 0 < Kolor <= N */ int x41; int PopKG; J.Nawrocki, Metody numeryczne Wprowadzenie do informatyki

J.Nawrocki, Metody numeryczne (c) Jerzy Nawrocki Standard kodowania Wykł. 9 Wcięcia while (scanf("%d %d", &A, &B)>0){ if (0<A && A<=N && 0<B && B<=N) Luk[A,B]= True; LiczbaLukow++; } J.Nawrocki, Metody numeryczne Wprowadzenie do informatyki

Komentowanie instrukcji (c) Jerzy Nawrocki Standard kodowania Wykł. 9 Komentowanie instrukcji while (scanf("%d %d", &A, &B)>0){ /* Czytaj kolejne pary */ /* wezlow A,B i dla kazdej,*/ if (0<A && A<=N && 0<B && B<=N) /* o ile jest poprawna, */ Luk[A,B]= True; /* 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,*/ if (0<A && A<=N && 0<B && B<=N) /* sprawdz, czy A,B naleza */ /* do przedzialu [1, N] i */ Luk[A,B]= True; /* zapamietaj wartosc True */ /* w tablicy Luk o wspol- */ /* rzednych A,B. */ } J.Nawrocki, Metody numeryczne Wprowadzenie do informatyki