SysInf/materiały na wykład/02_prototypowanie_systemy_kontroli_wersji.ipynb

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
}