Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Inżynieria oprogramowania Wprowadzenie do przedmiotu Koncepcja wykładu: Jerzy Nawrocki Slajdy: Jerzy Nawrocki Lektor: Ewa Nawrocka Montaż: Mirosław Ochodek.

Podobne prezentacje


Prezentacja na temat: "Inżynieria oprogramowania Wprowadzenie do przedmiotu Koncepcja wykładu: Jerzy Nawrocki Slajdy: Jerzy Nawrocki Lektor: Ewa Nawrocka Montaż: Mirosław Ochodek."— Zapis prezentacji:

1 Inżynieria oprogramowania Wprowadzenie do przedmiotu Koncepcja wykładu: Jerzy Nawrocki Slajdy: Jerzy Nawrocki Lektor: Ewa Nawrocka Montaż: Mirosław Ochodek Pytania kontrolne: Mirosław Ochodek Ćwiczenia: Mirosław Ochodek Holenderskie miasteczko Joure widziane z lotu ptaka

2 Inżynieria oprogramowania Wprowadzenie (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 Inżynieria oprogramowania Wprowadzenie (3) Definicja Zastosowanie systematycznego, zdyscyplinowanego, ilościowego podejścia do rozwoju, eksploatacji i utrzymania oprogramowania. IEEE Std IEEE Standard Glossary of Software Eng. Terminology inżynieria

4 Inżynieria oprogramowania Wprowadzenie (4) Computing Curricula 2001

5 Inżynieria oprogramowania Wprowadzenie (5) Computing Curricula

6 Inżynieria oprogramowania Wprowadzenie (6) Computing Curricula 2001

7 Inżynieria oprogramowania Wprowadzenie (7) 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

8 Inżynieria oprogramowania Wprowadzenie (8) Inżynieria oprogramowania WymaganiaProjektowanie WalidacjaEwolucja ProcesyZarządzanie NarzędziaAPI M.formalneSys. specjalne KomponentyNiezawodn. Obligatoryjne Opcjonalne

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

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

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

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

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

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

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

16 Inżynieria oprogramowania Wprowadzenie (16) Plan wykładu Zasady skutecznego działania Specyfikacja wymagań Kontrola jakości artefaktów Język UML Metody formalne Wzorce projektowe Zarządzanie konfiguracją Testowanie oprogramowania Programowanie Ekstremalne Ewolucja oprogramowania

17 Inżynieria oprogramowania Wprowadzenie (17) Plan wykładu Zasady skutecznego działania Specyfikacja wymagań Kontrola jakości artefaktów Język UML Metody formalne Wzorce projektowe Zarządzanie konfiguracją Testowanie oprogramowania Programowanie Ekstremalne Ewolucja oprogramowania

18 Inżynieria oprogramowania Wprowadzenie (18) Pracodawcy się skarżą absolwenci nie potrafią się komunikować, mają niedostateczne przygotowanie do pracy w zespole, brak im umiejętności skutecznego i produktywnego zarządzania ich pracą indywidualną

19 Inżynieria oprogramowania Wprowadzenie (19) Zasady Coveyego Stephen Covey Wersja dźwiękowa książki 7 nawyków skutecznego działania

20 Inżynieria oprogramowania Wprowadzenie (20) Zasady Coveyego Stephen Covey Zależność Niezależność Współzależność

21 Inżynieria oprogramowania Wprowadzenie (21) Zasady Coveyego Zależność Niezależność Współzależność Nie dam rady! To przez Ciebie!

22 Inżynieria oprogramowania Wprowadzenie (22) Zasady Coveyego Zależność Niezależność Współzależność Dam radę! Muszę!

23 Inżynieria oprogramowania Wprowadzenie (23) Zasady Coveyego Zależność Niezależność Współzależność 3 Aby rzeczy pierwsze były pierwsze 2 Zaczynaj mając koniec na względzie 1 Bądź proaktywny 3 Aby rzeczy pierwsze były pierwsze 2 Zaczynaj mając koniec na względzie 1 Bądź proaktywny

24 Inżynieria oprogramowania Wprowadzenie (24) Zasady Coveyego Zależność Niezależność Współzależność Razem damy radę! Będzie OK.

25 Inżynieria oprogramowania Wprowadzenie (25) Zasady Coveyego Zależność Niezależność Współzależność 6 Dbaj o synergię 5 Najpierw staraj się zrozumieć 4 Myśl o obopólnej korzyści 6 Dbaj o synergię 5 Najpierw staraj się zrozumieć 4 Myśl o obopólnej korzyści

26 Inżynieria oprogramowania Wprowadzenie (26) Zasady Coveyego Zależność Niezależność Współzależność 6 Dbaj o synergię 5 Najpierw staraj się zrozumieć 4 Myśl o obopólnej korzyści 6 Dbaj o synergię 5 Najpierw staraj się zrozumieć 4 Myśl o obopólnej korzyści 3 Aby rzeczy pierwsze były pierwsze 2 Zaczynaj mając koniec na względzie 1 Bądź proaktywny 3 Aby rzeczy pierwsze były pierwsze 2 Zaczynaj mając koniec na względzie 1 Bądź proaktywny Ostrz piłę

27 Inżynieria oprogramowania Wprowadzenie (27) Zasady Coveyego 6 Dbaj o synergię 5 Najpierw staraj się zrozumieć 4 Myśl o obopólnej korzyści 6 Dbaj o synergię 5 Najpierw staraj się zrozumieć 4 Myśl o obopólnej korzyści 3 Aby rzeczy pierwsze były pierwsze 2 Zaczynaj mając koniec na względzie 1 Bądź proaktywny 3 Aby rzeczy pierwsze były pierwsze 2 Zaczynaj mając koniec na względzie 1 Bądź proaktywny Ostrz piłę

28 Inżynieria oprogramowania Wprowadzenie (28) Plan wykładu Zasady skutecznego działania Specyfikacja wymagań Kontrola jakości artefaktów Język UML Metody formalne Wzorce projektowe Zarządzanie konfiguracją Testowanie oprogramowania Programowanie Ekstremalne Ewolucja oprogramowania

29 Inżynieria oprogramowania Wprowadzenie (29) Specyfikacja wymagań WymaganiaProjektowanie WalidacjaEwolucja ProcesyZarządzanie NarzędziaAPI M.formalneSys. specjalne KomponentyNiezawodn.

30 Inżynieria oprogramowania Wprowadzenie (30) Cykl życia WymaganiaProjektWykonanie

31 Inżynieria oprogramowania Wprowadzenie (31) Cykl życia ProjektWykonanieWymagania

32 Inżynieria oprogramowania Wprowadzenie (32) Cykl życia WymaganiaWykonanieProjekt

33 Inżynieria oprogramowania Wprowadzenie (33) Cykl życia WymaganiaProjektWykonanie

34 Inżynieria oprogramowania Wprowadzenie (34) Cykl życia WymaganiaProjektWykonanie

35 Inżynieria oprogramowania Wprowadzenie (35) Cykl życia WymaganiaProjektWykonanie

36 Inżynieria oprogramowania Wprowadzenie (36) Cykl życia WymaganiaProjektWykonanie

37 Inżynieria oprogramowania Wprowadzenie (37) Inżynieria wymagań Wymagania

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

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

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

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

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

43 Inżynieria oprogramowania Wprowadzenie (43) Inżynieria wymagań Wymagania Wymagania funkcjonalne Wymagania pozafunkcjonalne

44 Inżynieria oprogramowania Wprowadzenie (44) Wykład nt. specyfikacji wymagań Przypadki użycia Dobre praktyki Zasady skutecznego działania Specyfikacja wymagań Kontrola jakości artefaktów Język UML Metody formalne Wzorce projektowe Zarządzanie konfiguracją Testowanie oprogramowania Programowanie Ekstremalne Ewolucja oprogramowania Zasady skutecznego działania Specyfikacja wymagań Kontrola jakości artefaktów Język UML Metody formalne Wzorce projektowe Zarządzanie konfiguracją Testowanie oprogramowania Programowanie Ekstremalne Ewolucja oprogramowania Specyfikacja wymagań

45 Inżynieria oprogramowania Wprowadzenie (45) Plan wykładu Zasady skutecznego działania Specyfikacja wymagań Kontrola jakości artefaktów Język UML Metody formalne Wzorce projektowe Zarządzanie konfiguracją Testowanie oprogramowania Programowanie Ekstremalne Ewolucja oprogramowania

46 Inżynieria oprogramowania Wprowadzenie (46) Kontrola jakości artefaktów WymaganiaProjektowanie WalidacjaEwolucja ProcesyZarządzanie NarzędziaAPI M.formalneSys. specjalne KomponentyNiezawodn.

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

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

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

50 Inżynieria oprogramowania Wprowadzenie (50) Rodzaje kontroli jakości TestowaniePrzeglądy

51 Inżynieria oprogramowania Wprowadzenie (51) Wykład nt. kontroli jakości Jakość i testowanie Inspekcje Szacowanie liczby defektów Zasady skutecznego działania Specyfikacja wymagań Kontrola jakości artefaktów Język UML Metody formalne Wzorce projektowe Zarządzanie konfiguracją Testowanie oprogramowania Programowanie Ekstremalne Ewolucja oprogramowania Zasady skutecznego działania Specyfikacja wymagań Kontrola jakości artefaktów Język UML Metody formalne Wzorce projektowe Zarządzanie konfiguracją Testowanie oprogramowania Programowanie Ekstremalne Ewolucja oprogramowania Kontrola jakości artefaktów

52 Inżynieria oprogramowania Wprowadzenie (52) Plan wykładu Zasady skutecznego działania Specyfikacja wymagań Kontrola jakości artefaktów Język UML Metody formalne Wzorce projektowe Zarządzanie konfiguracją Testowanie oprogramowania Programowanie Ekstremalne Ewolucja oprogramowania

53 Inżynieria oprogramowania Wprowadzenie (53) Język UML WymaganiaProjektowanie WalidacjaEwolucja ProcesyZarządzanie NarzędziaAPI M.formalneSys. specjalne KomponentyNiezawodn.

54 Inżynieria oprogramowania Wprowadzenie (54)

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

56 Inżynieria oprogramowania Wprowadzenie (56) 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

57 Inżynieria oprogramowania Wprowadzenie (57) Diagram stanów Nazwa stanu Stan

58 Inżynieria oprogramowania Wprowadzenie (58) Diagram stanów Maturzysta Kandydat Przejście

59 Inżynieria oprogramowania Wprowadzenie (59) Diagram stanów Maturzysta Kandydat /Złożenie podania na studia Akcja

60 Inżynieria oprogramowania Wprowadzenie (60) Diagram stanów Maturzysta Kandydat / Złożenie podania na studia Ukośna kreska

61 Inżynieria oprogramowania Wprowadzenie (61) Diagram stanów Maturzysta Kandydat /Złożenie podania na studia Początek

62 Inżynieria oprogramowania Wprowadzenie (62) 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

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

64 Inżynieria oprogramowania Wprowadzenie (64) Diagram przypadków użycia Aktor

65 Inżynieria oprogramowania Wprowadzenie (65) Diagram przypadków użycia Maturzysta ZakwalifikowanyNieprzyjęty

66 Inżynieria oprogramowania Wprowadzenie (66) Diagram przypadków użycia Aktor Przypadek użycia

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

68 Inżynieria oprogramowania Wprowadzenie (68) 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

69 Inżynieria oprogramowania Wprowadzenie (69) Diagram sekwencji Obiekt-1Obiekt-2 Linia życia obiektu Obiekt

70 Inżynieria oprogramowania Wprowadzenie (70) Diagram sekwencji Obiekt-1Obiekt-2 Komunikat

71 Inżynieria oprogramowania Wprowadzenie (71) Diagram sekwencji Obiekt-1Obiekt-2 Komunikat-1 Komunikat-2 Komunikat-3

72 Inżynieria oprogramowania Wprowadzenie (72) 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

73 Inżynieria oprogramowania Wprowadzenie (73) Diagramy języka UML

74 Inżynieria oprogramowania Wprowadzenie (74) Plan wykładu Zasady skutecznego działania Specyfikacja wymagań Kontrola jakości artefaktów Język UML Metody formalne Wzorce projektowe Zarządzanie konfiguracją Testowanie oprogramowania Programowanie Ekstremalne Ewolucja oprogramowania

75 Inżynieria oprogramowania Wprowadzenie (75) Metody formalne WymaganiaProjektowanie WalidacjaEwolucja ProcesyZarządzanie NarzędziaAPI M.formalneSys. specjalne KomponentyNiezawodn.

76 Inżynieria oprogramowania Wprowadzenie (76) Metody formalne Przetestuję. Przeczytam. Udowodnię. Czy on jest poprawny? Program

77 Inżynieria oprogramowania Wprowadzenie (77) Silnia int Silnia (int n) { int k, s; k= 0; s= 1; while (k != n) { k= k + 1; s= s * k; } return s; } int Silnia (int n) { int k, s; k= 0; s= 1; while (k != n) { k= k + 1; s= s * k; } return s; }

78 Inżynieria oprogramowania Wprowadzenie (78) 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! ***/ } 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! ***/ }

79 Inżynieria oprogramowania Wprowadzenie (79) 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! ***/ } 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! ***/ }

80 Inżynieria oprogramowania Wprowadzenie (80) 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! ***/ }

81 Inżynieria oprogramowania Wprowadzenie (81) 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! ***/ } 1 = 0!

82 Inżynieria oprogramowania Wprowadzenie (82) 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! ***/ }

83 Inżynieria oprogramowania Wprowadzenie (83) 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! ***/ }

84 Inżynieria oprogramowania Wprowadzenie (84) 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! ***/ } s== k!

85 Inżynieria oprogramowania Wprowadzenie (85) 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! ***/ } s== k! s== k! k== k + 1

86 Inżynieria oprogramowania Wprowadzenie (86) 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! ***/ } s== k! s== k! k== k + 1 s == (k – 1)!

87 Inżynieria oprogramowania Wprowadzenie (87) 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! ***/ } s == (k – 1)!

88 Inżynieria oprogramowania Wprowadzenie (88) 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! ***/ } s == (k – 1)!

89 Inżynieria oprogramowania Wprowadzenie (89) 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! ***/ } s == (k – 1)!

90 Inżynieria oprogramowania Wprowadzenie (90) 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! ***/ } s == (k – 1)! s == s * k s== (k – 1)!

91 Inżynieria oprogramowania Wprowadzenie (91) 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! ***/ } s == (k – 1)! s == s * k s == (k – 1)! * k == k! s== (k – 1)!

92 Inżynieria oprogramowania Wprowadzenie (92) 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! ***/ }

93 Inżynieria oprogramowania Wprowadzenie (93) 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! ***/ } k == n

94 Inżynieria oprogramowania Wprowadzenie (94) 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! ***/ } k == n

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

96 Inżynieria oprogramowania Wprowadzenie (96) Wykład nt. metod formalnych Specyfikacje aksjomatyczne Implementacje niestandardowe Sieci Petriego Zasady skutecznego działania Specyfikacja wymagań Kontrola jakości artefaktów Język UML Metody formalne Wzorce projektowe Zarządzanie konfiguracją Testowanie oprogramowania Programowanie Ekstremalne Ewolucja oprogramowania Zasady skutecznego działania Specyfikacja wymagań Kontrola jakości artefaktów Język UML Metody formalne Wzorce projektowe Zarządzanie konfiguracją Testowanie oprogramowania Programowanie Ekstremalne Ewolucja oprogramowania Metody formalne

97 Inżynieria oprogramowania Wprowadzenie (97) Plan wykładu Zasady skutecznego działania Specyfikacja wymagań Kontrola jakości artefaktów Język UML Metody formalne Wzorce projektowe Zarządzanie konfiguracją Testowanie oprogramowania Programowanie Ekstremalne Ewolucja oprogramowania

98 Inżynieria oprogramowania Wprowadzenie (98) Wzorce projektowe WymaganiaProjektowanie WalidacjaEwolucja ProcesyZarządzanie NarzędziaAPI M.formalneSys. specjalne KomponentyNiezawodn.

99 Inżynieria oprogramowania Wprowadzenie (99) Wzorce projektowe Christopher Alexander Wzorzec = Sprawdzona koncepcja, która: opisuje problem powtarzający się wielokrotnie w określonym kontekście, działające na niego siły, oraz podaje istotę jego rozwiązania w sposób abstrakcyjny.

100 Inżynieria oprogramowania Wprowadzenie (100) Wykład nt. wzorców projektowych Banda Czterech i katalog wzorców projektowych Wybrane wzorce projektowe i ich zastosowania Zasady skutecznego działania Specyfikacja wymagań Kontrola jakości artefaktów Język UML Metody formalne Wzorce projektowe Zarządzanie konfiguracją Testowanie oprogramowania Programowanie Ekstremalne Ewolucja oprogramowania Zasady skutecznego działania Specyfikacja wymagań Kontrola jakości artefaktów Język UML Metody formalne Wzorce projektowe Zarządzanie konfiguracją Testowanie oprogramowania Programowanie Ekstremalne Ewolucja oprogramowania Wzorce projektowe

101 Inżynieria oprogramowania Wprowadzenie (101) Plan wykładu Zasady skutecznego działania Specyfikacja wymagań Kontrola jakości artefaktów Język UML Metody formalne Wzorce projektowe Zarządzanie konfiguracją Testowanie oprogramowania Programowanie Ekstremalne Ewolucja oprogramowania

102 Inżynieria oprogramowania Wprowadzenie (102) Zarządzanie konfiguracją WymaganiaProjektowanie WalidacjaEwolucja ProcesyZarządzanie NarzędziaAPI M.formalneSys. specjalne KomponentyNiezawodn.

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

104 Inżynieria oprogramowania Wprowadzenie (104) 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

105 Inżynieria oprogramowania Wprowadzenie (105) Koncepcja systemu zarządzania konfiguracją Program

106 Inżynieria oprogramowania Wprowadzenie (106) Koncepcja systemu zarządzania konfiguracją Program

107 Inżynieria oprogramowania Wprowadzenie (107) Wykład nt. zarządzania konfiguracją Operacje systemu CVS/SVN Struktura plików projektu Wzorce zarządzania konfiguracją Zasady skutecznego działania Specyfikacja wymagań Kontrola jakości artefaktów Język UML Metody formalne Wzorce projektowe Zarządzanie konfiguracją Testowanie oprogramowania Programowanie Ekstremalne Ewolucja oprogramowania Zasady skutecznego działania Specyfikacja wymagań Kontrola jakości artefaktów Język UML Metody formalne Wzorce projektowe Zarządzanie konfiguracją Testowanie oprogramowania Programowanie Ekstremalne Ewolucja oprogramowania Zarządzanie konfiguracją

108 Inżynieria oprogramowania Wprowadzenie (108) Plan wykładu Zasady skutecznego działania Specyfikacja wymagań Kontrola jakości artefaktów Język UML Metody formalne Wzorce projektowe Zarządzanie konfiguracją Testowanie oprogramowania Programowanie Ekstremalne Ewolucja oprogramowania

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

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

111 Inżynieria oprogramowania Wprowadzenie (111) Wykłady nt. testowania Wprowadzenie do testowania Automatyzacja wykonywania testów Zasady skutecznego działania Specyfikacja wymagań Kontrola jakości artefaktów Język UML Metody formalne Wzorce projektowe Zarządzanie konfiguracją Testowanie oprogramowania Programowanie Ekstremalne Ewolucja oprogramowania Zasady skutecznego działania Specyfikacja wymagań Kontrola jakości artefaktów Język UML Metody formalne Wzorce projektowe Zarządzanie konfiguracją Testowanie oprogramowania Programowanie Ekstremalne Ewolucja oprogramowania Testowanie oprogramowania

112 Inżynieria oprogramowania Wprowadzenie (112) Plan wykładu Zasady skutecznego działania Specyfikacja wymagań Kontrola jakości artefaktów Język UML Metody formalne Wzorce projektowe Zarządzanie konfiguracją Testowanie oprogramowania Programowanie Ekstremalne Ewolucja oprogramowania

113 Inżynieria oprogramowania Wprowadzenie (113) Programowanie Ekstremalne WymaganiaProjektowanie WalidacjaEwolucja ProcesyZarządzanie NarzędziaAPI M.formalneSys. specjalne KomponentyNiezawodn.

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

115 Inżynieria oprogramowania Wprowadzenie (115) Reakcja na kryzys oprogramowania

116 Inżynieria oprogramowania Wprowadzenie (116) Lekkie metodyki tworzenia oprogramowania

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

118 Inżynieria oprogramowania Wprowadzenie (118) Plan wykładu Zasady skutecznego działania Specyfikacja wymagań Kontrola jakości artefaktów Język UML Metody formalne Wzorce projektowe Zarządzanie konfiguracją Testowanie oprogramowania Programowanie Ekstremalne Ewolucja oprogramowania

119 Inżynieria oprogramowania Wprowadzenie (119) Ewolucja oprogramowania 1.Geneza ewolucji oprogramowania 2.Prawa Lehmana 3.Rozwój jądra systemu Linux 4.Koszty pielęgnacji 5.Proces pielęgnacji oprogramowania 6.Refaktoryzacja oprogramowania

120 Inżynieria oprogramowania Wprowadzenie (120) Plan wykładu Podsumowanie

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

122 Inżynieria oprogramowania Wprowadzenie (122)


Pobierz ppt "Inżynieria oprogramowania Wprowadzenie do przedmiotu Koncepcja wykładu: Jerzy Nawrocki Slajdy: Jerzy Nawrocki Lektor: Ewa Nawrocka Montaż: Mirosław Ochodek."

Podobne prezentacje


Reklamy Google