{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "

Systemy informatyczne analizy danych

\n", "

2. Prototypowanie, systemy kontroli wersji[wykład]

\n", "

Filip Graliński, Krzysztof Jassem (2023)

\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", " \n", "

Prototyp

\n", "Prototyp to wynik częściowej implementacji, posiadający wybrane cechy produktu końcowego.\n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Cele prototypowania\n", " * Zademonstrowanie umiejętności wykonania produktu końcowego\n", " * Określenie realistycznych wymagań końcowych\n", " * Przekonanie się o wpływie innych systemów, środowisk na produkt. \n", " * Sprawdzenie implementacji kluczowych funkcji\n", "\n", "## Potencjalne efekty prototypowania\n", "* Wykrycie nieporozumień między klientem i wykonawcą \n", "* Określenie brakujących funkcji \n", "* Wykrycie błędów w specyfikacji\n", "* Przewidywanie przyszłych trudności " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Prototyp poziomy a pionowy\n", "### Prototyp poziomy (Horizontal Prototype)\n", "\n", "**Prototyp poziomy** obrazuje całość systemu, podkreślając interakcję z użytkownikiem, a nie wnikając w funkcjonalności.\n", "\n", "Przykłady prototypów poziomych w informatyce:\n", " * Prototyp papierowy\n", " * Makieta statyczna\n", " * Makieta dynamiczna\n", " * Graficzny interfejs użytkownika" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", " \n", "

Prototyp papierowy

\n", " \n", "Prototyp papierowy to sposób reprezentacji produktu cyfrowego za pomocą wycinanek z papieru. \n", " \n", "* Służy do zrozumienia koncepcji produktu cyfrowego przez użytkownika. \n", "* Dla autora koncepcji prototyp taki służy do prześledzenia reakcji użytkowników na przyszłe działanie systemu przed jego realizacją.\n", "\n", "Prototypowanie papierowe - etapy :\n", "\n", "\n", " \n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", " \n", "

Makieta statyczna

\n", " \n", " \n", "Makieta statyczna to cyfrowy projekt aplikacji, który zawiera pewne elementy docelowej konstrukcji, ale nie jest funkcjonalny. \n", "\n", " \n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", " \n", "

Makieta dynamiczna

\n", " \n", " \n", "Makieta dynamiczna to cyfrowy projekt aplikacji, który zawiera pewne elementy docelowej konstrukcji i wskazuje interakcje z użytkownikiem. \n", "\n", " \n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", " \n", "

Graficzny interfejs użytkownika (GUI)

\n", "\n", " Graficzny interfejs użytkownika to sposób komunikacji użytkownika z komputerem za pomocą elementów graficznych.\n", " \n", "Prototypem poziomym nazwiemy GUI, który: \n", "\n", " \n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Prototyp pionowy (Vertical Prototype)\n", "**Prototyp pionowy** to pełna realizacja kluczowej (kluczowych) funkcji systemu.\n", "\n", "Cele prototypowania pionowego:\n", "* sprawdzenie wyboru technologii\n", "* pomiary wydajności\n", "* sprawdzenie poprawności algorytmów i struktur danych\n", "\n", "Realizacja prototypów pionowych jest polecana w sytuacji, gdy wykonanie kluczowych funkcji systemu obarczone jest wysokim ryzykiem." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Prototypowanie z porzuceniem a prototypowanie ewolucyjne" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Prototypowanie z porzuceniem (Thow-away Prototyping)\n", "\n", "W **prototypowaniu z porzuceniem** budowane są kolejne wersje prototypów, a niektóre z nich są porzucane.\n", "\n", "Cele prototypowania z porzuceniem:\n", "* minimalizacja ryzyka,\n", "* głębokie zrozumienie problemów technicznych\n", "\n", "Koszty:\n", " * Koszty prototypowania z porzuceniem są wysokie." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Prototypowanie ewolucyjne (Ewolutionary Prototyping)\n", "\n", "**Prototypowanie ewolucyjne** polega na stopniowym rozszerzaniu prototypu, aż spełnia on wszystkie wymagania... \n", "\n", "...Wtedy prototyp staje się produktem.\n", "\n", "Prototyp ewolucyjny powinien być budowany:\n", " * w środowisku zbliżonym do produkcyjnego, \n", " * z dużą dbałością o jakość." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Prototypowanie - podsumowanie\n", "\n", "* Prototypy tworzy się w celu zminimalizowania ryzyka niepowodzenia produktu. \n", "* W prototypach poziomych chodzi o zobrazowanie wszystkich funkcji. \n", "* W prototypach pionowych chodzi o szczegóły techniczne.\n", "* Prototypowanie z porzuceniem oywa się z reguły wszerz (prototypy poziome); \n", " * jest bardziej kosztowne, ale minimalizuje ryzyko.\n", "* Prototypowanie ewolucyjne odbywa się z reguły w głąb (prototypy pionowe); \n", " * jest mniej kosztowne, ale bardziej ryzykowne." ] } ], "metadata": { "author": "Krzysztof Jassem", "email": "jassem@amu.edu.pl", "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "lang": "pl", "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.5" }, "subtitle": "06. Prototypowanie i ciągła integracja[wykład]", "title": "Przygotowanie do projektu badawczo-rozwojowego", "year": "2021" }, "nbformat": 4, "nbformat_minor": 4 }