Inżynieria oprogramowania

Slides:



Advertisements
Podobne prezentacje
I część 1.
Advertisements

Zarządzanie konfiguracją oprogramowania
Wprowadzenie do informatyki Wykład 6
Obserwowalność System ciągły System dyskretny
Liczby pierwsze.
Domy Na Wodzie - metoda na wlasne M
Zarządzanie projektem informatycznym
Jerzy Nawrocki Piotr Pawałowski Krzysztof Pospiech
Ksantypa2: Architektura
Lekkie metodyki programowania: Szansa czy zagrożenie?
Organizacja Przedsięwzięć Programistycznych Wykład 7, 27.II.03
Systemy operacyjne Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Systemy operacyjne Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Inżynieria oprogramowania II Wykład 12 Projekty dyplomowe
Zarządzanie konfiguracją Doskonalenie Procesów Programowych Wykład 6 Copyright, 2001 © Jerzy.
Informatyka jako dziedzina wiedzy
Copyright © Jerzy R. Nawrocki Kontrola jakości oprogramowania Inżynieria oprogramowania.
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
Dyscyplina i zwinność w projektach informatycznych
Wprowadzenie do przedmiotu
Informatyka jako dziedzina wiedzy Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Wprowadzenie do teoretycznych podstaw informatyki
Informatyka jako dziedzina wiedzy Copyright, 2005 © Jerzy R. Nawrocki Wstęp.
Komputerowe systemy sterowania Copyright, 2006 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Testowanie oprogramowania
Komunikacja poprzez Internet
Programowanie obiektowe Andrzej Ziółkowski Wykład 7.
Poznańskie Centrum Superkomputerowo-Sieciowe Cezary Mazurek
Praca Inżynierska „Analiza i projekt aplikacji informatycznej do wspomagania wybranych zadań ośrodków sportowych” Dyplomant: Marcin Iwanicki Promotor:
UKŁADY SZEREGOWO-RÓWNOLEGŁE
Klasyfikacja systemów
Transformacja Z (13.6).
Projekt zaliczeniowy z przedmiotu "Inżynieria oprogramowania"
Wykonawcy:Magdalena Bęczkowska Łukasz Maliszewski Piotr Kwiatek Piotr Litwiniuk Paweł Głębocki.
Podsumowanie działalności Zarządu Banku za okres
„Rynek pracy w powiecie trzebnickim: struktura bezrobocia i miejsca pracy.”
Zasady rekrutacji do XLVI Liceum Ogólnokształcącego im
Podstawy działania wybranych usług sieciowych
ŻYWE JĘZYKI PROGRAMOWANIA LIVING IT UP WITH A LIVE PROGRAMMING LANGUAGE Sean McDirmid Ecole Polytechnique Fédérale de Lausanne (EPFL)
Jak wybrać szkołę ponadgimnazjalną? Warszawa, 2010.
Analiza wpływu regulatora na jakość regulacji (1)
MATURA 2007 raport ZESPÓŁ SZKÓŁ I PLACÓWEK KSZTAŁCENIA ZAWODOWEGO.
Obserwowalność i odtwarzalność
Informatyka jako dziedzina wiedzy
-17 Oczekiwania gospodarcze – Europa Wrzesień 2013 Wskaźnik > +20 Wskaźnik 0 a +20 Wskaźnik 0 a -20 Wskaźnik < -20 Unia Europejska ogółem: +6 Wskaźnik.
Pomiary procesów programistycznych Copyright, 2002 © Jerzy R. Nawrocki Zarządzanie jakością.
EcoCondens Kompakt BBK 7-22 E.
Copyright © Jerzy R. Nawrocki Kontrola jakości oprogramowania Inżynieria oprogramowania.
W2 Modelowanie fenomenologiczne I
Projekt Badawczo- Rozwojowy realizowany na rzecz bezpieczeństwa i obronności Państwa współfinansowany ze środków Narodowego Centrum Badań i Rozwoju „MODEL.
I ROK MINISTRA GIERTYCHA Warszawa, 5 maja dni Wrzesień dni, tu jesteśmy 365 dni, tu jesteśmy.
Testogranie TESTOGRANIE Bogdana Berezy.
Jak Jaś parował skarpetki Andrzej Majkowski 1 informatyka +
Informatyka jako dziedzina wiedzy Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie.
Kalendarz 2020.
Elementy geometryczne i relacje
(c) Jerzy Nawrocki Jerzy Nawrocki
Wprowadzenie do teoretycznych podstaw informatyki Copyright, 2004 © Jerzy R. Nawrocki
Copyright © Jerzy R. Nawrocki Team Software Process Inżynieria oprogramowania II Wykład.
Innowacyjne metody zarządzania jakością oprogramowania Przeglądy oprogramowania i standard IEEE 1028 Bartosz Michalik
Inżynieria oprogramowania
Kontrola jakości Inżynieria oprogramowania II
Zapis prezentacji:

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

Definicja 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

Computing Curricula 2001

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

Inżynieria oprogramowania Wymagania Projektowanie Walidacja Ewolucja Procesy Zarządzanie Narzędzia API M.formalne Sys. specjalne Komponenty Niezawodn.

Plan wykładu Specyfikacja wymagań Kontrola jakości artefaktów Testowanie oprogramowania Metody formalne Język UML Zarządzanie konfiguracją Programowanie Ekstremalne Systemy krytyczne

Cykl życia Wymagania Projekt Wykonanie

Wymagania Projekt Wykonanie Cykl życia Wymagania Projekt Wykonanie http://groups.sims.berkeley.edu/CDE-Events/SMJ-UML.jpg

Problem i koncepcja rozwiązania Inżynieria wymagań Problem i koncepcja rozwiązania Wymagania Zbieranie wymagań Analiza wymagań Negocjacja wymagań

Inżynieria wymagań Wymagania Wymagania funkcjonalne Wymagania pozafunkcjonalne

Podręcznik użytkownika Artefakty Specyfikacja wymagań Testy akceptacyjne Kod programu Podręcznik użytkownika

Kontrola jakości specyfikacji wymagań Problem i koncepcja rozwiązania Zbieranie wymagań Analiza wymagań Negocjacja wymagań

Rodzaje kontroli jakości Testowanie Przeglądy

Testowanie Testowanie oprogramowania jest wykonaniem kodu dla kombinacji danych wejściowych i stanów w celu wykrycia błędów Robert Binder

Przypadek testowy (ang. test case) Testowanie Przypadek testowy (ang. test case) Testowany system Dane wejściowe Zaobserwowane wyjście Stan wstępny

Testowanie Testowany system Oczekiwane wyjście Faktyczne wyjście Wynik testowania Dane wejściowe Porównanie Testowany system Stan wstępny

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.

Pracochłonność testowania Testowanie: ~ % - % całkowitej pracochłonności. 30 40 Testowanie systemów krytycznych: 70% - 80% całkowitej pracochłonności (!) -- Roger Pressman’97 Roger S. Pressman

Metody formalne Program   Przetestuję. Czy on jest poprawny? Przeczytam. Udowodnię.  

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

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! ***/

Dowodzenie poprawności programów Specyfikacja 5 000 LOC 7 000 LOC Wolfgang Reif

www.uml.org

Diagramy UML Diagramy stanów Diagramy przypadków użycia Diagramy sekwencji Diagramy czynności Diagramy klas . . .

Diagram stanów /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

Diagram przypadków użycia Złożenie podania Maturzysta Obejrzenie wyników rekrutacji Zakwalifikowany Nieprzyjęty

Diagram sekwencji 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

Diagramy języka UML

Najprostszy system zarządzania zmianami Zmieńmy wymagania. OK. OK. OK. OK. Programiści Klient

Formalne podejście do zarządzania zmianami Żądanie zmiany Żądanie zmiany Err Użytkownik Kierownik konfig. Programista Raport Tak Kierownik projektu Żądanie zmiany Decyzja Komitet Zarządzania Konfiguracją

Koncepcja systemu zarządzania konfiguracją Program System zarz. konfiguracją

Kryzys oprogramowania Przekraczanie terminów Przekraczanie budżetu Nadgodziny Kiepska jakość Kryzys

Reakcja na kryzys oprogramowania

Lekkie metodyki tworzenia oprogramowania

Główne zalety Programowania Ekstremalnego To lubię! Najważniejsza komunikacja ustna. Jedyne artefakty: kod + testy Żadnych nadgodzin!

Therac-25 AECL (Atomic Energy Canada Limited) Naświetlanie rentgenowskie – leczenie raka 1983-87 6 poparzeń (niektóre ze skutkiem śmiertelnym)

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

Kod etyczno-zawodowy ACM Code of Ethics and Professional Conduct Adopted by ACM Council 10/16/92. http://www.acm.org/constitution/code.html

Kod etyczno-zawodowy 1. Ogólne nakazy moralne 2. Odpowiedzialność zawodowa 3. Nakazy przywództwa organizacyjnego 4. Zgodność z kodem etyczno-zawodowym

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.

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?

Budowa systemów krytycznych Utwórz listę kontrolną dla wymagań dot. bezpieczeństwa Włącz do procesu walidacji zewnętrznych ekspertów HAZOP Identyfikuj i analizuj hazardy