Cele oraz techniki tworzenia prototypów systemów infromatycznych. Inżynieria Oprogramowania



Podobne dokumenty
Etapy życia oprogramowania

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

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

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

Cykle życia systemu informatycznego

Programowanie zespołowe

Procesowa specyfikacja systemów IT

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

Projektowanie systemów informatycznych. Roman Simiński programowanie.siminskionline.pl. Cykl życia systemu informatycznego

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

Szczegółowy opis przedmiotu umowy. 1. Środowisko SharePoint UWMD (wewnętrzne) składa się z następujących grup serwerów:

Przedsięwzięcia Informatyczne w Zarządzaniu

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

Maciej Oleksy Zenon Matuszyk

Inżynieria oprogramowania (Software Engineering)

ZAŁĄCZNIK NR 3 OPIS PRZEDMIOTU ZAMÓWIENIA DOTYCZĄCY WDROŻENIA PLATFORMY ZAKUPOWEJ

RUP. Rational Unified Process

Testowanie oprogramowania. Testowanie oprogramowania 1/34

Tester oprogramowania 2014/15 Tematy prac dyplomowych

Testowanie oprogramowania

Jakość w procesie wytwarzania oprogramowania

Testowanie oprogramowania. Piotr Ciskowski

Overlord - Plan testów

Procesy wytwarzania oprogramowania Specyfikacja i projektowanie oprogramowania

Wytwórstwo oprogramowania. michał możdżonek

REFERAT PRACY DYPLOMOWEJ

Narzędzia CASE dla.net. Łukasz Popiel

Narzędzia informatyczne wspierające przedsięwzięcia e-commerce

Opis metodyki i procesu produkcji oprogramowania

Web frameworks do budowy aplikacji zgodnych z J2EE

Tom 6 Opis oprogramowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli obmiaru do celów fakturowania

Warsztaty FRAME. Sygnatura warsztatu: W1 (W3) Czas trwania: 3 dni

GUI - projektowanie interfejsów

Wykład 1 Inżynieria Oprogramowania

Testujemy dedykowanymi zasobami (ang. agile testers)

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

Optymalizacja Automatycznych Testów Regresywnych

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

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

Dodatkowo, w przypadku modułu dotyczącego integracji z systemami partnerów, Wykonawca będzie przeprowadzał testy integracyjne.

STUDIA NIESTACJONARNE I STOPNIA Przedmioty kierunkowe

Dokument Detaliczny Projektu

AUREA BPM HP Software. TECNA Sp. z o.o. Strona 1 z 7

SZKOLENIE TWORZENIE SYSTEMÓW

INŻYNIERIA OPROGRAMOWANIA TESTOWANIE INTEGRACYJNE

Metodyka wdrożenia. Bartosz Szczęch. Starszy Konsultant MS Dynamics NAV

HP Service Anywhere Uproszczenie zarządzania usługami IT

Dokument Detaliczny Projektu

Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i

Testowanie aplikacji mobilnych na platformie Android - architektura, wzorce, praktyki i narzędzia

UPEDU: Testowanie (ang. Testing discipline)

Szablon Planu Testów Akceptacyjnych

Całościowe podejście do testowania automatycznego dla programistów. (TDD, BDD, Spec. by Example, wzorce, narzędzia)

Waterfall model. (iteracyjny model kaskadowy) Marcin Wilk

WPROWADZENIE DO UML-a

MODELE CYKLU śycia OPROGRAMOWANIA

Re_Forms 21 Często zadawane pytania (FAQ)

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Testowanie i walidacja oprogramowania

1. Prace rozwojowe usługi informatyczne w zakresie opracowania prototypu oprogramowania serwisowo-instalatorskiego dla systemu testowego

Automatyzacja testowania oprogramowania. Automatyzacja testowania oprogramowania 1/36

Feature Driven Development

Egzamin / zaliczenie na ocenę*

Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło

Wprowadzenie do systemów informacyjnych

Usługa: Audyt kodu źródłowego

Projektowanie systemów informatycznych. wykład 6

SVN. 10 października Instalacja. Wchodzimy na stronę i pobieramy aplikację. Rysunek 1: Instalacja - krok 1

Zarządzanie i realizacja projektów systemu Microsoft SharePoint 2010

Język programowania. Andrzej Bobyk

SYSTEMY INFORMATYCZNE ćwiczenia praktyczne

INŻYNIERIA OPROGRAMOWANIA

Zarządzanie testowaniem wspierane narzędziem HP Quality Center

Zakres wykładu. Podstawy InŜynierii Oprogramowania

STUDIA STACJONARNE I STOPNIA Przedmioty kierunkowe

ZASADY TWORZENIA OPROGRAMOWANIA

AUREA BPM Oracle. TECNA Sp. z o.o. Strona 1 z 7

ZARZĄDZANIE DOKUMENTACJĄ. Tomasz Jarmuszczak PCC Polska

Inżynieria oprogramowania II

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat

Spis treúci. 1. Wprowadzenie... 13

Specyfikowanie wymagań przypadki użycia

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

Usługi analityczne budowa kostki analitycznej Część pierwsza.

Dwuwymiarowy sposób na podróbki > 34

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym

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

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

INŻYNIERIA OPROGRAMOWANIA TESTOWANIE SYSTEMOWE

Systemy zabezpieczeń

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

Weryfikacja i walidacja. Metody testowania systemów informatycznych

Inżynieria oprogramowania (Software Engineering)

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

Ramowy plan kursu. Lp. Moduły Wyk. Lab. Przekazywane treści

ZAMAWIAJĄCY. CONCEPTO Sp. z o.o.

PROJEKT Z BAZ DANYCH

Jak opisać wymagania zamawiającego wybrane elementy

Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło

Transkrypt:

Cele oraz techniki tworzenia prototypów systemów infromatycznych

Zagadnienia Rola oraz umiejscowienie prototypowania w procesie tworzenia oprogramowania Rola prototypu w procesie walidacji wymagań systemowych Przegląd technik prototypowania Prototypowanie ewolucyjne oraz metoda odrzucania prototypów Prototypowanie interfejsu użytkownika (GUI)

Zastosowanie prototypów Prototyp systemu umożliwia użytkownikom zrozumienie wymagań stawianych systemowi Wpływ systemu na tryb pracy, wpółpraca z innymi systemami Wykorzystanie do szkoleń użytkowników systemu jeszcze przed jego wdrożeniem Prototyp systemu wraz z jego wersją produkcyjną mogą zostać wykorzystane w procesie tzw. testowania wstecznego (ang. back-to-back testing) Ułatwia wykrywanie błędów wprowadzonych do systemu w trakcie jego tworzenia

Testowanie wsteczne (1/2) Wykorzystywane w sytuacji gdy mamy dostępną więcej niż 1 wersję systemu Np. prototyp oraz sam system Na wszystkich wersjach wykonuje się te same testy Pojawienie się różnicy w wynikach testów sygnalizuje potencjalne problemy W przypadku testowania kolejnych iteracji systemu testowana jest jedynie wspólna funkcjonalność obu wersji

Testowanie wsteczne (2/2) Kolejne kroki w procesie testowania Stworzenie ogólnego zestawu testów (Automatyczne) wykonanie przygotowanego zestawu testów na obu wersjach systemu wraz z każdorazowym zapisaniem uzyskanych wyników testów (Automatyczne) porównanie uzyskanych wyników testów Jeśli wyniki są identyczne... Nie jest to jeszcze gwarancją, że obie wersje działają poprawnie (mogą zawierać ten sam błąd) Jeśli się różnią... Zwykle sygnalizuje to jakąś nieprawidłowość która powinna być przeanalizowana

Korzyści z zastosowania prototypów Ujawnienie różnic w rozumieniu planowanej funkcjonalności systemu przez przyszłych użytkowników oraz twórców Metoda minimalizacji ryzyka Identyfikacja pominiętych funkcjonalności Np. obsługa sytuacji wyjątkowych Lokalizacja niejasnych funkcjonalności Np. System ma umożliwić zmianę treści pozycji rachunku przez operatora Działający system dostępny dla użytkowników we wczesnej fazie projektu Prototyp może posłużyć jako podstawa specyfikacji systemu

Przebieg procesu prototypowania Us talenie c elów s twor z enia pr ototy pu Definic ja z ak r es u funk c jonalnoś c i pr ototy pu Utwor z enie pr ototy pu Oc ena pr ototy pu Plan s twor z enia pr ototy pu Ogólna definic ja funk c jonalnoś c i Dz iałając y pr ototy p Rapor t z ewaluac ji

Model spiralny Boehma a prototypowanie Określenie celów, alternatyw, ograniczeń Analiza ryzyka Analiza ryzyka Analiza ryzyka Prototyp 3 Analiza alternatyw. rozw., identyfikacja i ograniczenie ryzyka Prototyp 4 REVIEW Plan cyklu życia Analiza ryzyka Prototyp 2 Prototyp 1 Symulacje, benchmarki Planowanie kolejnej fazy Plan implementacji Integracja i plan testów Walidacja wymagań Analiza wymagań Testy akceptacyjne Utrzymanie Projektowanie Testy integracyjne Kodowanie Testy modułów Szczegółowy projekt Implementacja rozwiązania

Cele w zależności od podejścia Celem prototypowania ewolucyjnego (ang. evolutionary prototyping) jest dostarczenie użytkownikom gotowego systemu. Punktem wyjściowym dla tworzenia systemu są wymagania najlepiej w danej chwili zrozumiałe Celem prototypowania z wykorzystaniem metody odrzucania prototypów (ang. throw-away prototyping) jest walidacja niejasnych wymagań. Punktem wyjściowym dla procesu tworzenia prototypu są wymagania które są w danym etapie niejasne/niezrozumiałe

Dwa podejścia do prototypowania Ogólne wymagania Prototypowanie ewolucyjne Meotoda odrzucania prototypów Utworzony i wdrożony system Specyfikacja wymagań systemowych

Cechy prototypowania ewolucyjnego Wykorzystywane w przypadku systemów gdzie stworzenie specyfikacji z góry jest niemożliwe Systemy sztucznej inteligencji Graficzny interfejs użytkownika Prowadzone z zastosowaniem technik umożliwiająych szybkie tworzenie kolejnych iteracji (wersji) systemu Nie ma możliwości walidacji systemu Nie ma specyfikacji! Walidacja oznacza w tym przypadku zademonstrowanie odpowiedniości systemu

Prototypowanie ewolucyjne - etapy Start Utworzenie ogólnej specyfikacji Utworzenie prototypu N Ewaluacja prototypu System poprawny? T Wdrożenie systemu

Prototypowanie ewolucyjne - problemy Większość istniejących technik zarządzania zakłada istnienie oddzielnych faz w procesie tworzenia oprogramowania Model kaskadowy Ciągłe, praktycznie niekontrolowane zmiany systemu Naruszenie (jednolitej) struktury Problemy z pielęgnacją Czas życia takiego projektu jest stosunkowo krótki Struktura systemu staje się nieprzejrzysta trzeba go napisać od nowa

Throw-away prototyping Metoda minimalizacji ryzyka Początkowa specyfikacja prototyp Prototyp udostępnia się do testów/eksperymentów a następnie odrzuca Takiego prototypu nie powinno się wykorzystywać jako podstawy końcowego systemu Część aspektów systemu może być całkiem pominiętych Pielęgnacja (nie brana w ogóle pod uwagę) Na ogół brak struktury i rozwiązania ad hoc kłopoty z rozwijaniem

Throw-away prototyping - etapy Ogólna specyfikacja systemu Utworzenie prototypu Ewaluacja prototypu Specyfikacja systemu komponenty Utworzenie systemu Walidacja systemu Wdrożony system Na podst. Ian Somerville, 1995

Prototyp jako specyfikacja - problemy Jak określić zakres pracy? Utworzyć system taki jak załączony Niektóre funkcje systemu mogą okazać się trudne do zawarcia w prototypie Np. dotyczące kryteriów bezpieczeństwa Więc nie pojawią się w specyfikacji Wymagania niefunkcjonalne są na ogół częściowo bądź wcale nie przetestowane w prototypie

Inkrementalny cykl życia projektu Po zdefiniowaniu ogólnej architektury system jest tworzony i wdrażany w postaci kolejnych inkrementów Użytkownicy mają możliwość pracy z danym inkrementem służy on jako prototyp Podejście to ma na celu Połączenie zalet prototypowania z zapewnieniem strukturalnego cyklu życia projektu oraz przejrzystej struktury samego systemu

Proces inkrementalnego tworzenia systemu Określenie zakresu i postaci systemu Definicja architektury Specyfikacja zakresu danego inkrementu Tworzenie danego inkrementu Walidacja inkrementu (wg specyfikacji) Wdrożenie finalnej postaci systemu System jest kompletny? Walidacja systemu Integracja inkrementu z dotychczasowym systemem Na podst. Ian Somerville, 1995

Techniki tworzenia prototypów Generatory aplikacji oraz języki czwartej generacji (4GLs) Wykorzystanie gotowych komponentów

Języki 4tej generacji (4GL) Specyficzne dla danej dziedziny zastosowań języki do zastosowań biznesowych Oparte o systemy zarządzające bazami danych Typowa funkcjonalność Zapytania i aktualizacja bazy danych Generowanie raportów Standardowe formatki W typowej postaci w skład wchodzi Język zapytań do bazy danych (najczęściej SQL) Generator formatek Generator raportów Często dostarczane jako część zestawu narzędzi CASE Efektywne kosztowo w przypadku małych i średnich systemów

Prototypowanie z wykorzystaniem gotowych komponentów Prototyp powstaje poprzez połączenie gotowych fragmentów Coraz bardziej popularny w miarę upowszechniania się bibliotek komponentów Microsoft ActiveX Sun Java Beans Potrzebny jest również mechanizm umożliwiający łączenie gotowych elementów Np. system UNIX interpretery poleceń (Bourne shell, C shell) oraz komponenty (narzędzia do ogólnych zastosowań sed, awk, grep) Przykład języka opartego na takim podejściu: MS Visual Basic

Wykorzystanie gotowych elementów Biblioteka komponentów System utworzony jako połączenie komponentów Prototyp Katalog dostę pnych komponentów Specyfikacja systemu

Prototypowanie interfejsu użytkownika Specyfikacja wyglądu i zachowania UI z góry Praktycznie niemożliwa Potrzeba stworzenia prototypu Tworzenie UI stanowi coraz większą część całościowych kosztów tworzenia systemów Por. typowy system bazodanowy Czego używać? Coraz większa liczba dostępnych narzędzi umożliwiających składanie UI z pojedynczych komponentów Microsoft Visual Studio, Inprise Builder

Prototyp UI przykład (1/2) Por. opis zasad tworzenia GUI Eric J Braude Software Engineering. An Object-Oriented Approach

Prototyp UI przykład (2/2) Pokrewne dane zgrupowane razem Dla każdej grupy danych określone nazwa; obramowanie grupy Rząd przycisków wycentrowany i zgrupowany (nie rozrzucony na długości dialogu)

Podsumowanie (1/2) Prototyp systemu wykorzystuje się w celu zademonstrowania końcowym użytkownikom konkretnego wyobrażenia na temat przyszłego wyglądu oraz funkcjonalności systemu Wyróżniamy dwa rodzaje prototypowania Prototypowanie ewolucyjne Metoda odrzucania prototypu Przy tworzeniu prototypu systemu musimy mieć do dyspozycji techniki szybkiego generowania kodu Struktura prototypu ulega naruszeniu Na skutek ciągłych zmian/modyfikacji Zatsosowanie długiego cyklu życia projektu staje się problematyczne

Podsumowanie (2/2) Punktem wyjściowym metody odrzucania prototypu są wymagania najmniej zrozumiałe; w prototypowaniu ewolucyjnym zaczynamy od części najlepiej zrozumiałych Prototypowanie jest szczególnie ważne przy tworzeniu części systemu które z natury nie dają się efektywnie specyfikować Interfejs użytkownika