235 lines
7.3 KiB
Plaintext
235 lines
7.3 KiB
Plaintext
|
{
|
||
|
"cells": [
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"<div class=\"alert alert-block alert-info\">\n",
|
||
|
"<h1> Systemy informatyczne analizy danych</h1>\n",
|
||
|
"<h2> 2. <i>Prototypowanie, systemy kontroli wersji</i>[wykład]</h2> \n",
|
||
|
"<h3> Filip Graliński, Krzysztof Jassem (2023)</h3>\n",
|
||
|
"</div>"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"<div class=\"alert alert-block alert-success\">\n",
|
||
|
" \n",
|
||
|
"<h2>Prototyp </h2> \n",
|
||
|
"Prototyp to wynik częściowej implementacji, posiadający wybrane cechy produktu końcowego.\n",
|
||
|
"\n",
|
||
|
"</div>"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"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": [
|
||
|
"<div class=\"alert alert-block alert-success\">\n",
|
||
|
" \n",
|
||
|
"<h2>Prototyp papierowy </h2> \n",
|
||
|
" \n",
|
||
|
"<b>Prototyp papierowy</b> 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",
|
||
|
"<b>Prototypowanie papierowe - etapy </b>:\n",
|
||
|
"\n",
|
||
|
"<ul>\n",
|
||
|
"<li> Naszkicowanie wstępnej koncepcji ekranów z wyróżnieniem głównych funkcjonalności. </li>\n",
|
||
|
"<li> Symulowanie interakcji poprzez podmienianie papierowych ekranów i wyciętych elementów. </li>\n",
|
||
|
"</ul>\n",
|
||
|
" \n",
|
||
|
"</div>"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"<div class=\"alert alert-block alert-success\">\n",
|
||
|
" \n",
|
||
|
"<h2>Makieta statyczna </h2> \n",
|
||
|
" \n",
|
||
|
" \n",
|
||
|
"<b>Makieta statyczna</b> to cyfrowy projekt aplikacji, który zawiera pewne elementy docelowej konstrukcji, ale nie jest funkcjonalny. \n",
|
||
|
"\n",
|
||
|
"<ul>\n",
|
||
|
" <li> Obrazuje wybrane widoki bez połączeń między nimi. </li>\n",
|
||
|
"</ul> \n",
|
||
|
"</div>"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"<div class=\"alert alert-block alert-success\">\n",
|
||
|
" \n",
|
||
|
"<h2>Makieta dynamiczna </h2> \n",
|
||
|
" \n",
|
||
|
" \n",
|
||
|
"<b>Makieta dynamiczna</b> to cyfrowy projekt aplikacji, który zawiera pewne elementy docelowej konstrukcji i wskazuje interakcje z użytkownikiem. \n",
|
||
|
"\n",
|
||
|
"<ul>\n",
|
||
|
"<li> Widoki są \"klikalne\" - po kliknięciu użytkowniki kierowany jest do nowego widoku. </li>\n",
|
||
|
"</ul> \n",
|
||
|
"</div>"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "markdown",
|
||
|
"metadata": {},
|
||
|
"source": [
|
||
|
"<div class=\"alert alert-block alert-success\">\n",
|
||
|
" \n",
|
||
|
"<h2>Graficzny interfejs użytkownika (GUI) </h2> \n",
|
||
|
"\n",
|
||
|
"<b> Graficzny interfejs użytkownika </b> to sposób komunikacji użytkownika z komputerem za pomocą elementów graficznych.\n",
|
||
|
" \n",
|
||
|
"Prototypem poziomym nazwiemy GUI, który: \n",
|
||
|
"<ul>\n",
|
||
|
"<li> Pokazuje menu. </li>\n",
|
||
|
"<li> Pozwala na nawigację. </li>\n",
|
||
|
"<li> Akceptuje input. </li>\n",
|
||
|
"<li> Wyświetla losowy output. </li>\n",
|
||
|
"<li> NIE wspiera logiki aplikacji. </li>\n",
|
||
|
"</ul>\n",
|
||
|
" \n",
|
||
|
"</div>"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"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
|
||
|
}
|