Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Wprowadzenie do informatyki Inżynieria oprogramowania Jerzy Nawrocki www.cs.put.poznan.pl/jnawrocki/wdi  Holenderskie miasteczko Joure widziane z lotu.

Podobne prezentacje


Prezentacja na temat: "Wprowadzenie do informatyki Inżynieria oprogramowania Jerzy Nawrocki www.cs.put.poznan.pl/jnawrocki/wdi  Holenderskie miasteczko Joure widziane z lotu."— Zapis prezentacji:

1 Wprowadzenie do informatyki Inżynieria oprogramowania Jerzy Nawrocki  Holenderskie miasteczko Joure widziane z lotu ptaka

2 Wprowadzenie do informatyki Inżynieria oprogramowania (2) Definicja Zastosowanie systematycznego, zdyscyplinowanego, ilościowego podejścia do rozwoju, eksploatacji i utrzymania oprogramowania. IEEE Std IEEE Standard Glossary of Software Eng. Terminology

3 Wprowadzenie do informatyki Inżynieria oprogramowania (3) Computing Curricula 2001

4 Wprowadzenie do informatyki Inżynieria oprogramowania (4) Computing Curricula 2001 Struktury dyskretne Podstawy programowania Algorytmy i złożoność Architektura sys. komputerowych Systemy operacyjne Technologie sieciowe Języki i paradygmaty program. Komunikacja człowiek-komputer Grafika komputerowa Sztuczna inteligencja Bazy danych Problemy społeczne i zawodowe Inżynieria oprogramowania Nauki obliczeniowe

5 Wprowadzenie do informatyki Inżynieria oprogramowania (5) Inżynieria oprogramowania WymaganiaProjektowanie WalidacjaEwolucja ProcesyZarządzanie NarzędziaAPI M.formalneSys. specjalne KomponentyNiezawodn.

6 Wprowadzenie do informatyki Inżynieria oprogramowania (6) Plan wykładu Specyfikacja wymagań Kontrola jakości artefaktów Testowanie oprogramowania Metody formalne Język UML Zarządzanie konfiguracją Programowanie Ekstremalne Systemy krytyczne

7 Wprowadzenie do informatyki Inżynieria oprogramowania (7) Cykl życia WymaganiaProjektWykonanie

8 Wprowadzenie do informatyki Inżynieria oprogramowania (8) Cykl życia WymaganiaProjektWykonanie

9 Wprowadzenie do informatyki Inżynieria oprogramowania (9) Inżynieria wymagań Wymagania Zbieranie wymagań Analiza wymagań Negocjacja wymagań Problem i koncepcja rozwiązania

10 Wprowadzenie do informatyki Inżynieria oprogramowania (10) Inżynieria wymagań Wymagania Wymagania funkcjonalne Wymagania pozafunkcjonalne

11 Wprowadzenie do informatyki Inżynieria oprogramowania (11) Artefakty Specyfikacja wymagań Testy akceptacyjne Kod programu Podręcznik użytkownika

12 Wprowadzenie do informatyki Inżynieria oprogramowania (12) Kontrola jakości specyfikacji wymagań Zbieranie wymagań Analiza wymagań Negocjacja wymagań Problem i koncepcja rozwiązania

13 Wprowadzenie do informatyki Inżynieria oprogramowania (13) Rodzaje kontroli jakości TestowaniePrzeglądy

14 Wprowadzenie do informatyki Inżynieria oprogramowania (14) Testowanie Testowanie oprogramowania jest wykonaniem kodu dla kombinacji danych wejściowych i stanów w celu wykrycia błędów Robert Binder

15 Wprowadzenie do informatyki Inżynieria oprogramowania (15) Testowanie Zaobserwowane wyjście Testowany system Stan wstępny Dane wejściowe Przypadek testowy (ang. test case )

16 Wprowadzenie do informatyki Inżynieria oprogramowania (16) Testowanie Testowany system Porównanie Dane wejściowe Oczekiwane wyjście Faktyczne wyjście Wynik testowania Stan wstępny

17 Wprowadzenie do informatyki Inżynieria oprogramowania (17) Cele testowania wg Glena Myersa (1979) Jakość przypadku testowego : Udany test : prawdopodob. znalezienia jeszcze nie wykrytego błędu. taki, który wykrywa jeszcze nie wykryty błąd.

18 Wprowadzenie do informatyki Inżynieria oprogramowania (18) Pracochłonność testowania Testowanie: ~ % - % całkowitej pracochłonności Testowanie systemów krytycznych: 70% - 80% całkowitej pracochłonności (!) -- Roger Pressman’97 Roger S. Pressman

19 Wprowadzenie do informatyki Inżynieria oprogramowania (19) Metody formalne   Przetestuję. Przeczytam. Udowodnię. Czy on jest poprawny? Program

20 Wprowadzenie do informatyki Inżynieria oprogramowania (20) Ograniczenia testowania Testowaniem można wykazać, że błędy są, ale nie można w ten sposób pokazać, że ich nie ma. E.W. Dijkstra

21 Wprowadzenie do informatyki Inżynieria oprogramowania (21) 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! ***/ } return s; /*** POST s== n! ***/ } 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! ***/ }

22 Wprowadzenie do informatyki Inżynieria oprogramowania (22) Dowodzenie poprawności programów Wolfgang Reif Program Specyfikacja LOC LOC

23 Wprowadzenie do informatyki Inżynieria oprogramowania (23)

24 Wprowadzenie do informatyki Inżynieria oprogramowania (24) Diagramy UML Diagramy stanów Diagramy przypadków użycia Diagramy sekwencji Diagramy czynności Diagramy klas...

25 Wprowadzenie do informatyki Inżynieria oprogramowania (25) Diagram stanów Przyjęty Maturzysta Kandydat Zakwalifikowany Student /Zdanie Matury /Złożenie podania na studia /Złożenie oryginału świadectwa /Złożenie ślubowania Nieprzyjęty

26 Wprowadzenie do informatyki Inżynieria oprogramowania (26) Diagram przypadków użycia Maturzysta ZakwalifikowanyNieprzyjęty Złożenie podania Obejrzenie wyników rekrutacji

27 Wprowadzenie do informatyki Inżynieria oprogramowania (27) Diagram sekwencji MaturzystaSystem rekrutacjiKReM 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

28 Wprowadzenie do informatyki Inżynieria oprogramowania (28) Diagramy języka UML

29 Wprowadzenie do informatyki Inżynieria oprogramowania (29) Najprostszy system zarządzania zmianami Klient Zmieńmy wymagania. Programiści OK.

30 Wprowadzenie do informatyki Inżynieria oprogramowania (30) Formalne podejście do zarządzania zmianami Żądanie zmiany Err UżytkownikKierownik konfig. Żądanie zmiany Programista Raport Komitet Zarządzania Konfiguracją Decyzja Żądanie zmiany Kierownik projektu

31 Wprowadzenie do informatyki Inżynieria oprogramowania (31) Koncepcja systemu zarządzania konfiguracją Program

32 Wprowadzenie do informatyki Inżynieria oprogramowania (32) Kryzys oprogramowania Przekraczanie terminów Przekraczanie budżetu Nadgodziny Kiepska jakość

33 Wprowadzenie do informatyki Inżynieria oprogramowania (33) Reakcja na kryzys oprogramowania

34 Wprowadzenie do informatyki Inżynieria oprogramowania (34) Lekkie metodyki tworzenia oprogramowania

35 Wprowadzenie do informatyki Inżynieria oprogramowania (35) Główne zalety Programowania Ekstremalnego Najważniejsza komunikacja ustna. Jedyne artefakty: kod + testy Żadnych nadgodzin! To lubię!

36 Wprowadzenie do informatyki Inżynieria oprogramowania (36) Therac-25 AECL (Atomic Energy Canada Limited) Naświetlanie rentgenowskie – leczenie raka poparzeń (niektóre ze skutkiem śmiertelnym)

37 Wprowadzenie do informatyki Inżynieria oprogramowania (37) Therac-25: Przyczyny Personel AECL początkowo zaprzeczał błędom Brak niezależnej inspekcji oprogramowania Brak zabezpieczeń sprzętowych Beztroskie powtórne użycie kodu Założono, że sensory zawsze dobrze działają Błąd programistyczny

38 Wprowadzenie do informatyki Inżynieria oprogramowania (38) Kod etyczno-zawodowy ACM Code of Ethics and Professional Conduct Adopted by ACM Council 10/16/92.

39 Wprowadzenie do informatyki Inżynieria oprogramowania (39) Kod etyczno-zawodowy 1. Ogólne nakazy moralne 2. Odpowiedzialność zawodowa 3. Nakazy przywództwa organizacyjnego 4. Zgodność z kodem etyczno-zawodowym

40 Wprowadzenie do informatyki Inżynieria oprogramowania (40) 2. Odpowiedzialność zawodowa 2.1 Starać się osiągać najwyższą jakość w odniesieniu do procesu i produktu. 2.2 Pozyskiwać i pielęgnować kompetencje zawodowe. 2.3 Znać i respektować istniejące prawo związane z pracą zawodową. 2.4 Akceptować i realizować przeglądy o charakterze zawodowym. 2.5 Dostarczać dogłębne oceny systemów komputerowych i związanego z nimi ryzyka. 2.6 Respektować kontrakty, uzgodnienia i związaną z nimi odpowiedzialność. 2.7 Doskonalić publiczne rozumienie informatyki. 2.8 Nie korzystać z zasobów, bez upoważnienia.

41 Wprowadzenie do informatyki Inżynieria oprogramowania (41) Budowa systemów krytycznych Utwórz listę kontrolną dla wymagań dot. bezpieczeństwa Czy system startuje w stanie bezpiecznym? Czy ważne zmienne mają nadane wart. pocz? Co się dzieje, gdy system jest odłączony? Co się dzieje, gdy reakcja jest spóźniona? Jaki wpływ mają nieoczekiwane wejścia? Jak można wycofać komendę operatora? Jak przechodzi się do stanu fail-safe ?

42 Wprowadzenie do informatyki Inżynieria oprogramowania (42) Budowa systemów krytycznych Utwórz listę kontrolną dla wymagań dot. bezpieczeństwa Włącz do procesu walidacji zewnętrznych ekspertów Identyfikuj i analizuj hazardy


Pobierz ppt "Wprowadzenie do informatyki Inżynieria oprogramowania Jerzy Nawrocki www.cs.put.poznan.pl/jnawrocki/wdi  Holenderskie miasteczko Joure widziane z lotu."

Podobne prezentacje


Reklamy Google