DOKUMENTACJA. Przeznaczenie dokumentacji użytkowej. Użytkownicy końcowi Administratorzy SKŁADNIKI DOKUMENTACJI. Synteza Dokumentacja.



Podobne dokumenty
Wykład 8. Testowanie w JEE 5.0 (1) Autor: Zofia Kruczkiewicz. Zofia Kruczkiewicz

Możliwe strategie tworzenia niezawodnego oprogramowania:

Zasady organizacji projektów informatycznych

Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH. Modeling and analysis of computer systems Forma studiów: Stacjonarne

PRZEWODNIK PO PRZEDMIOCIE

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?

Wprowadzenie do metodologii modelowania systemów informacyjnych. Strategia (1) Strategia (2) Etapy Ŝycia systemu informacyjnego

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

Porównanie metod i technik testowania oprogramowania. Damian Ryś Maja Wojnarowska

Etapy życia oprogramowania

Programowanie zespołowe

Wykład 7. Projektowanie kodu oprogramowania

Etapy życia oprogramowania. Modele cyklu życia projektu. Etapy życia oprogramowania. Etapy życia oprogramowania

Faza Określania Wymagań

Testowanie oprogramowania

In ż ynieria oprogramowania wykład II Modele i fazy cyklu życia oprogramowania

Feature Driven Development

WPROWADZENIE DO UML-a

Narzędzia CASE dla.net. Łukasz Popiel

Opis metodyki i procesu produkcji oprogramowania

Testowanie i walidacja oprogramowania

PRZEWODNIK PO PRZEDMIOCIE

Testowanie oprogramowania. Testowanie oprogramowania 1/34

Błędy procesu tworzenia oprogramowania (Badania firmy Rational Software Corporation)

Wykład 1 Inżynieria Oprogramowania

Testowanie oprogramowania. Piotr Ciskowski

Modelowanie i analiza systemów informatycznych

Praktyka testowania dla początkujących testerów

Egzamin / zaliczenie na ocenę*

Podstawy programowania III WYKŁAD 4

Projektowanie systemów informatycznych. wykład 6

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2012/2013

Metodyka projektowania komputerowych systemów sterowania

Zakres wykładu. Podstawy InŜynierii Oprogramowania

poziom: Core wersja: 2.6 moduł: B : Wytwarzanie SYLLABUS

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Automatyzacja testowania oprogramowania. Automatyzacja testowania oprogramowania 1/36

Modelowanie testów. czyli po co testerowi znajomość UML

Wykład 3 Wymagania. MIS n Inżynieria oprogramowania Październik Kazimierz Michalik Akademia Górniczo-Hutnicza im. S. Staszica w Krakowie

INŻYNIERIA OPROGRAMOWANIA

Podstawy modelowania programów Kod przedmiotu

Wytwarzanie oprogramowania

<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0>

2005 Andrzej Jaszkiewicz. Wyłącznie dla użytku studentów Politechniki Poznańskiej, kierunek Informatyka

Oceny z prezentacji INKU011S. Zofia Kruczkiewicz

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

MODELE CYKLU ŻYCIA OPROGRAMOWANIA (1) Model kaskadowy (często stosowany w praktyce do projektów o niewielkiej złożonoś

PYTANIA PRÓBNE DO EGZAMINU NA CERTYFIKAT ZAAWANSOWANY REQB KLUCZ ODPOWIEDZI. Część DODATEK

Procesy wytwarzania oprogramowania Specyfikacja i projektowanie oprogramowania

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

Programowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, Spis treści

Główne założenia XP. Prostota (Simplicity) Komunikacja (Communication) Sprzężenie zwrotne (Feedback) Odwaga (Agressiveness)

In ż ynieria oprogramowania wykład II Modele i fazy cyklu życia oprogramowania

tel. (+48 81) /22 fax (+48 81) Wykład Ćwiczenia Laboratorium Projekt

Wykład VII. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Testowanie według modelu (MBT) Stowarzyszenie Inżynierii Wymagań wymagania.org.pl

PROJEKTOWANIE. kodowanie implementacja. PROJEKT most pomiędzy specyfikowaniem a kodowaniem

Kod doskonały : jak tworzyć oprogramowanie pozbawione błędów / Steve McConnell. Gliwice, cop Spis treści. Wstęp 15.

Tworzenie gier na urządzenia mobilne

Dlaczego testowanie jest ważne?

Inżynieria oprogramowania (Software Engineering)

Inżynieria oprogramowania. Jan Magott

KARTA MODUŁU KSZTAŁCENIA

Ogólne określenie wymagań. Ogólny projekt. Budowa systemu. Ocena systemu. Nie. Tak. System poprawny. Wdrożenie. Określenie.

Jakość w procesie wytwarzania oprogramowania

Zapisywanie algorytmów w języku programowania

Programowanie Zespołowe

Tester oprogramowania 2014/15 Tematy prac dyplomowych

Faza strategiczna. Synteza. Analiza. Instalacja. Faza strategiczna. Dokumentacja. kodowanie implementacja. produkt konserwacja

12) Wadą modelu kaskadowego jest: Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 13) Wadą modelu opartego na prototypowaniu jest:

Acceptance Test Driven Development wspierane przez narzędzie ROBOT Framework. Edyta Tomalik Grzegorz Ziemiecki

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Systemy zabezpieczeń

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Jak powstaje model biznesowy? Co to jest? Modelowanie biznesowe. Model biznesowy. Jak powstaje model biznesowy? Jak firma generuje przychody?

Wykaz osób w postępowaniu o udzielenie zamówienia publicznego nr 32-CPI-WZP-2244/13. Podstawa do dysponowania osobą

Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop Spis treści

Projekt systemu informatycznego

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Studia podyplomowe PROGRAM NAUCZANIA PLAN STUDIÓW

Analiza i programowanie obiektowe 2016/2017. Wykład 6: Projektowanie obiektowe: diagramy interakcji

Agile Project Management

MODELOWANIE SYSTEMU INFORMATYCZNEGO WSPOMAGAJĄCEGO DZIAŁALNOŚĆ USŁUGOWĄ W ŚRODOWISKU OBIEKTOWO ZORIENTOWANYM.

Wykład 2. MIS n Inżynieria oprogramowania Marzec Kazimierz Michalik Akademia Górniczo-Hutnicza im. S. Staszica w Krakowie

PRZEWODNIK PO PRZEDMIOCIE

Optymalizacja Automatycznych Testów Regresywnych

IO - inżynieria oprogramowania. dr inż. M. Żabińska, zabinska@agh.edu.pl

PRZEWODNIK PO PRZEDMIOCIE

Inżynieria oprogramowania wykład IV Faza określenia wymagań

Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Wymagania jakości w Agile Programming

Zagadnienia. Inżynieria Oprogramowania

Tworzenie przypadków testowych

Projekt: Współpraca i Rozwój wzrost potencjału firm klastra INTERIZON

Lekkie metodyki. tworzenia oprogramowania

PRZEWODNIK PO PRZEDMIOCIE

KOMPUTEROWE WSPOMAGANIE ZARZĄDZANIA

Politechnika Poznańska, Instytut Informatyki, Studia niestacjonarne. Inżynieria oprogramowania

Laboratorium 5 - Projektowanie programów zorientowanych obiektowo. Indywidualny projekt programistyczny

Transkrypt:

DOKUMENTACJA Faza strategiczna Analiza Przeznaczenie dokumentacji użytkowej Synteza Dokumentacja Instalacja Użytkownicy końcowi Administratorzy SKŁADNIKI DOKUMENTACJI opis funkcjonalny zwarty opis przeznaczenia i głównych możliwości systemu podręcznik użytkownika opis systemu przeznaczony głównie dla początkujących -uruchamianie i kończenie pracy; -realizacja typowych funkcji, -metody obsługi błędu, -sposoby korzystania z pomocy) kompletny opis dla doświadczonego użytkownika - (szczegółowy opis wszystkich funkcji systemu; - informacja o wszystkich sposobach wywoływania tych funkcji; - opisy formatów danych, opisy błędów, które mogą pojawić się podczas pracy z systemem; - informacja o wszelkich ograniczeniach dotyczących np. zakresów danych.

DOKUMENTACJA opis instalacji składowa dokumentacji dla administratora zawierająca procedury instalacji i dostrajania systemu do środowiska implementacyjnego podręcznik administratora systemu opis możliwości zmian konfiguracji systemu i sposoby udostępniania systemu użytkownikom końcowym słownik używanych terminów Indeks Forma dokumentacji użytkowej - drukowana - elektroniczna możliwości hipertekstu pozwalają na umieszczenie na poszczególnych stronach odwołań do powiązanych opisów, na ogół dokumentacja szczegółowa dzisiaj również podstawowa. Jakość dokumentacji użytkowej (na jakość ma wpływ) - struktura podręczniki czytelne, zrozumiałe z odpowiednim podziałem na rozdziały i podrozdziały - zachowanie standardów spójna struktura, forma i sposób pisania - sposób pisania stosowanie formy aktywnej..na ekranie zobaczysz poprawność gramatyczna i ortograficzna; krótkie zdania; krótkie akapity; oszczędność słów precyzyjna definicja używanych terminów, powtarzanie trudnego opisu, tytuły i podtutuły; zrozumiałe odwołania do innych rozdziałów

TESTOWANIE ATESOWANIE (VALIDATION) testowanie zgodności systemu z rzeczywistymi potrzebami użytkownika WERYFIKACJA (VERIFICATION) testowanie zgodności systemu z wymaganiami zdefiniowanymi w fazie wymagań CELE TESTOWANIA - wykrycie i usunięcie błędów w systemie - ocena niezawodności systemu Błąd niepoprawna konstrukcja w programie mogąca prowadzić do niewłaściwego działania Błędne wykonanie niepoprawne działanie systemu w trakcie jego pracy TESTY (rodzaje z punktu widzenia szukania błędów) - testy statystyczne wykrycie przyczyn najczęstszych błędnych wykonań oraz ocena niezawodności systemu - wykrywanie błędów wykrycie jak największej liczby błędów TESTY (rodzaje z punktu widzenia technik wykonywania testów) - testy dynamiczne wykonywanie programu (fragmentu) i porównywanie wyników - testy statyczne bazują na analizie kodu FAZY TESTOWANIA - testy modułów - testy systemu - testy akceptacji; testy alfa (indywidualny) testy beta (rynek)

TESTY STATYSTYCZNE Przebiegają wg schematu: - losowa konstrukcja danych wejściowych (zgodna z rozkładem prawdopodobieństwa tych danych - określenie poprawnego wyniku dla tych danych - uruchomienie systemu i porównania Zalety testów statystycznych możliwość automatyzacji wynikająca z RP Wyniki testów prawdopodobieństwo błędnego wykonania podczas realizacji transakcji - częstotliwość występowania błędnych wykonań - średni czas miedzy błędami wykonanymi - dostępność czas wolny od realizacji zlecenia BŁĘDY poszukiwanie przyczyny usuwanie przyczyny wzrost wydajności systemu Szacowanie Niezawodności systemu Logarytmiczny model niezawodności Niezawodność = Niezawodność początkowa * exp (-C * liczba testów) C jest stałą zależną od konkretnego systemu. Jeżeli dane testowe nie są dobierane losowo lecz za każdym razem inne (ręczne sterowanie) Niezawodność = Niezawodność początkowa -D * liczba testów

WYKRYWANIE BŁĘDÓW TESTY FUNKCJONALNE - system jest czarną skrzynką i są sprawdzane kolejne funkcjonalmości (black box tests) TESTY STRUKTURALNE zakładają znajomość funkcji testowych i są sprawdzane kolejne funkcjonalmości (white box tests) TF. Podział danych wejściowych na klasy na podstawie opisu wymagań konieczne testowanie dl wartości granicznych TS. Dobór danych wejściowych na podstawie analizy struktury programu przy zastosowaniu różnorodnych kryteriów: kryterium pokrycia wszystkich instrukcji tak dobrane dane aby każda instrukcja wykonana była co najmniej raz (warunki) kryterium pokrycia instrukcji warunkowych tak dobrane dane aby każdy elementarny warune instrukcji warunkowej został co najmniej raz spełniony i co najmniej raz niespełniony.

TESTY STATYCZNE Analiza kodu bez uruchamiania programu Stosowane techniki testy poprawności (udowodnianie formalnej poprawności fragmentu oprogramowania jest o rząd trudniejsze od jego opracowania!! - metody nieformalne (analiza kodu przez programistów w kierunku: - śledzenia przebiegu programu trace?, bugger? - wyszukiwanie typowych błędów: niezainincjowane zmienne porównanie liczb zmiennopozycyjnych indeksy wykraczające poza tablice błędne operacje na wskaźnikach błędy w warunkach instrukcji warunkowych niekończące się pętle błędy popełnione dla wartości granicznych kontrola warunku silnego i słabego błędne użycie lub pominięcie nawiasów w złożonych typach konstrukcja wyraże nieuwzględnienie błędnych danych testy funkcjonalne są pewniejsze od testów strukturalnych.

OCENA LICZBY BŁĘDÓW Ma bezpośredni wpływ na koszty konserwacji oprogramowania: szacunkowa liczba błędów w programie średni procent błędów zgłaszanych przez użytkownika średni koszt usunięcia błędu Szacowanie liczby błędów: - technika posiewania błędów N liczba wprowadzonych błędów, M liczba wszystkich wykrytych błędów, X liczba wprowadzonych błędów, które zostały wykryte szacunkowa liczba błędów przed wykonaniem testów: (M-X) * N/X X/N parametr opisujący efektywność prowadzonych testów Posiewanie błędu opiera się na założeniu, że wprowadzone błędy są podobne do błędów już znajdujących się w systemie, a poszczególne klasy wprowadzonych błędów występują w podobnych proporcjach

TESTY SYSTEMU Testowanie wstępujące: testowanie pojedynczych modułów testowanie modułów wyższego poziomu testowanie systemu Testowanie zstępujące: testowanie systemu wymaga szkieletu modułów testowanie modułów wyższego poziomu testowanie pojedynczych modułów Testy pod obciążeniem: - ważne dla systemów wielodostępnych i wieloprosesowych wymagania wydajności, wymagania dostępności, wymaganie ciągłości Testy odporności: - działanie systemu pomimo zajścia zdarzeń niepożądanych zanik zasilania awaria sprzętu, wprowadzenie niepoprawnych danych - wydanie sekwencji niepoprawnych poleceń

BEZPIECZEŃSTWO OPROGRAMOWANIA TRZEBA MIEĆ ŚWIADOMOŚĆ IŻ PEWNE SYSTEMY SĄ KRYTYCZNE Z PUNKTU WIDZENIA ZAGROŻENIA ŻYCIA I ZDROWIA LUDZKIEGO!!!!!!: sterowanie aparatura medyczną sterowanie pilotażem samolotów sterowanie systemami bezpieczeństwa w pojazdach sterowanie systemami zarządzania lekami Analiza poziomu bezpieczeństwa: - określenie potencjalnych niebezpieczeństw sytuacja będąca wynikiem działania systemu w której zachodzi ryzyko: utraty życia lub zdrowia, duże straty materialne, złamanie przepisów prawnych Techniki pozwalające na zminimalizowanie tego ryzyka: zwrócenie uwagi na strategiczne fragmenty kodu, realizacja fragmentów strategicznych przez doświadczonych programistów??, - dokładne przetestowanie tych fragmentów - wcześniejsze ustalenie sytuacji mogących być przyczyną niebezpieczeństw.

INŻYNIERIA ODWROTNA Odtwarzanie dokumentacji technicznej na podstawie istniejącego kodu (czasem także n podstawie struktury bazy danych) Odwrócenie kolejności czynności realizowanych w trakcie tworzenia oprogramowania nie zawsze jest wykonalne (trudności w przypadku języków hybrydowych wykorzystujących zarówno konstrukcje obiektowe jak i strukturalne) -daje się zautomatyzować narzędziami CASE NARZĘDZIA CASE Computer Assisted/Aided Software/System Engineering wspomagają ogólnie rozumiane wytwarzanie oprogramowania - koncentrują się na fazach analizy i projektowania oraz bezpośrednim wykorzystaniu wyników tych faz w implementacji

NARZEDZIA CASE Upper CASE niezwiązane ze środowiskiem implementacji narzędzia do wspomagania początkowych faz tworzenia oprogramowania Lower CASE koncentrują się na fazach analizy i projektowania i są ściśle związane ze środowiskiem implementacji Składowe narzędzi CASE słownik danych moduł projektowania interfejsu użytkownika moduł pracy sieciowej moduł zarządzający praca grupową moduł zarządzający konfiguracjami moduł inżynierii odwrotnej sprzęgi do narzędzi RAD (rapid application development) moduł importu, eksportu danych moduł kontroli poprawności moduł kontroli jakości edytory diagramów generator dokumentacji technicznej generator kodu

WSPOLCZESNE TECHNOLOGIE WYTWARZANIA OPROGRAMOWANIA Technologia (metodyka) jako suma: notacji, technik i procesu technicznego Notacja (UML) - wszystkie produkty projektu w fazie analizy jak i syntezy mogą być zpisane z wykorzystaniem odpowiednich diagramów języka UML Techniki - dyskusje, tworzenie modeli poprzez narzędzia CASE, obiektowe, strukturalne są przykładami technik tworzenia oprogramowania Proces techniczny (wytwórczy) porządek definiujący proces tworzenia oprogramowania w sposób zorganizowany. PODZIAŁ METODYK : - metodyki zorientowane na proces inaczej formalne - metodyki zorientowane na umiejętna reakcje na zmianę metodyki agilne (inaczej lekkie)

METODYKI WYTWARZANIA OPROGRAMOWANIA W metodykach formalnych można odnieść wrażenie, że najważniejszym ich produktem są dokumenty. Najważniejszym ich produktem jest działąjący i przetestowany kod przy rezygnacji z wielu typowo stosowanych (często pracochłonnych) procedur związanych z dokumentowaniem, planowaniem i zarządzaniem projektem

METODYKI WYTWARZANIA OPROGRAMOWANIA Metodyki formalne: UP (Unified Process), OPEN (Object oriented Process Environment and Notation), MDA (Model Driven Architecture) Metodyki agilne: XP (extreme Programming) FDD (Feature Driven Development), Agile ICONICX, AM (Agile Modeling) Porównanie

METODYKI WYTWARZANIA OPROGRAMOWANIA NOTACJA Z definicji stosują UML do zapisywania podstawowych produktów cyklu wytwórczego z wyjątkiem XP i OPEN UP i MDA pełne wykorzystanie diagramów UML FDD, Agile ICONIX diagramy klas, diagramy sekwencji AM zaleca stosowanie UML z rozsądkiem XP nie wspomina o stosowaniu UML ( zaleca przy tworzeniu metafory systemu i prostego projektu )

METODYKI WYTWARZANIA OPROGRAMOWANIA Techniki Wymienione techniki bazują na technikach obiektowych Różnią się ilością proponowanych technik OPEN, UP - specyfikacja zawiera 250 proponowanych technik XP proponuje jedynie 12 praktyk stosowanych przy produkcji oprogramowania Techniki proponowane przez metodyki agilne nastawione na bezpośrednia interakcje między ludźmi: programowanie w parach, wspólna własność kodu, sesje wspólnego projektowania systemu itd. Z technikami związane są role projektowe: techniki formalne określają je bardzo precyzyjnie zadania do wykonania i zakres odpowiedzialności np. UP 30 możliwych ról (poczynajac od analityków do kierowników) w metodykach agilnych liczba ról jest ograniczona : skrajnie do użytkowników i developerów dopasowujących się do wykonywanych czynności w czasie pracy nad systemem. XP opowiadacze, trenerzy i tropiciele

METODYKI WYTWARZANIA OPROGRAMOWANIA Proces techniczny W zasadzie dla wszystkich technik jest to proces iteracyjny (przyrostowy) Konieczność sterowania procesem wytwórczym za pomocą wymagań JĄDRO METODYCZNE NOWOCZESNYCH TECHNIK WYTWÓRCZYCH ITERACYJNY CYKL WYTWÓRCZY UMIEJĘTNA REAKCJA NA ZMIANY STOSOWANIE METOD MODELOWANIA DOSTOSOWANYCH DO POTRZEB OPARCIE PROCESU NA ZNAJDOWANIU I REALIZACJI RZECZYWISTYCH WYMAGAŃ ZAMAWIAJACEGO CIĄGŁA KONTROLA SPEŁNIENIA WYMAGAŃ POPRZEZ TESTOWNAIE I UZYSKIWANIE INFORMACJI ZWROTNEJ OD ZAMAWIAJACEGO