Pierwsze modyfikacje 2022
This commit is contained in:
parent
1984c1eb3f
commit
628f4894cb
115
.ipynb_checkpoints/Demonstracje końcowe-checkpoint.ipynb
Normal file
115
.ipynb_checkpoints/Demonstracje końcowe-checkpoint.ipynb
Normal file
@ -0,0 +1,115 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Organizacja demonstracji projektów\n",
|
||||
"Informacje dotyczą dmemostracji końcowych projektów na zajęciach PBR. \n",
|
||||
"Podane poniżej informacje mogą ulec korektom do dnia 9 czerwca 2022 włącznie."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Termin i forma demonstracji\n",
|
||||
" * Demonstracje będą prowadzone w dniu 10 czerwca 2022 w formie stacjonarnej w auli A.\n",
|
||||
" * Czas na jedną demonstrację: 10 minut (włączając przerwę).\n",
|
||||
" * Niezbędnym elementem demonstracji jest interakcja demonstrowanego systemu z widownią.\n",
|
||||
" * Demonstracje rozpoczną się o godzinie 11.00, a zakończą lunchem o godzinie 15.30."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Oceny, wyróżnienia\n",
|
||||
" * Demonstracje są oceniane przez jury: prowadzących projekty i zaproszonych gości z biznesu.\n",
|
||||
" * Dla dwóch najwyżej ocenionych demonstracji przewidziane są nagrody ufundowane przez firmę DomData."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Plan dnia: Sztuczna Inteligencja, Cyberbezpieczeństwo, Biznes\n",
|
||||
"\n",
|
||||
"### Cyberware\n",
|
||||
"\n",
|
||||
"* Czas: 11.00 - 11.30\n",
|
||||
" * HoneyPot\n",
|
||||
" * RandomSec\n",
|
||||
" * Phish&Ware\n",
|
||||
" \n",
|
||||
"### Learn and Play\n",
|
||||
"\n",
|
||||
"* Czas: 11.30 - 11.50\n",
|
||||
" * Tao Testing - rożnorodne testy online\n",
|
||||
" * Soita - inteligentny system nauczania\n",
|
||||
" \n",
|
||||
"### Natural Language Processing\n",
|
||||
"\n",
|
||||
"* Czas: 11.50 - 12.30\n",
|
||||
" * Transfix - translacja i korekta testów\n",
|
||||
" * Automatyczne generowanie tweetów\n",
|
||||
" * Wyszukiwanie w dokumentach zdigitalizowaych\n",
|
||||
" * Speakato - asystent głosowy poleceń systemu Windows \n",
|
||||
"\n",
|
||||
"### Przerwa na kawę\n",
|
||||
"\n",
|
||||
"* Czas: 12.30 - 13.00\n",
|
||||
"\n",
|
||||
"### Music i inne\n",
|
||||
"\n",
|
||||
"* Czas: 13.00 - 13.30\n",
|
||||
" * System rekomendacji muzycznych\n",
|
||||
" * Odgadywanie utworu muzycznego\n",
|
||||
" * System rezerwacji lotów\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"### Sport Analysis\n",
|
||||
"\n",
|
||||
"* Czas: 13.30 - 14.30\n",
|
||||
" * Metryki piłkarzy na poszczególnych pozycjach\n",
|
||||
" * TV2D - analiza video meczu piłkarskiego\n",
|
||||
" * Przewidywanie kontuzji w piłce nożnej\n",
|
||||
" * Przewidywanie wyniku drużyny w tabeli końcowej\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"### Prezentacje projektu AI Tech oraz Centrum Sztucznej Inteligencji\n",
|
||||
"\n",
|
||||
"* Czas: 14.30 - 15.00\n",
|
||||
"\n",
|
||||
"### Prelekcje zproszonych gości z biznesu\n",
|
||||
"\n",
|
||||
"* Czas: 15.00 - 15.30\n",
|
||||
"\n",
|
||||
"### Lunch\n",
|
||||
"\n",
|
||||
"* Czas: 15.30 - 16.30"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"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.7.6"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 4
|
||||
}
|
@ -107,7 +107,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.5"
|
||||
"version": "3.7.6"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
@ -5,8 +5,7 @@
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Organizacja demonstracji projektów\n",
|
||||
"Informacje dotyczą dmemostracji projektów na zajęciach PBR. \n",
|
||||
"Podane poniżej informacje mogą ulec korektom do dnia 31 stycznia włącznie."
|
||||
"Informacje dotyczą dmemostracji projektów na zajęciach SYI. "
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -14,10 +13,9 @@
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Termin i forma demonstracji\n",
|
||||
" * Demonstracje będą prowadzone w formie zdalnej za pomocą platformy MS-Teams.\n",
|
||||
" * Czas na demonstrację: 8 minut (+ 1 minuta przerwy)\n",
|
||||
" * Niezbędnym elementem demonstracji jest interakcja demonstrowanego systemu z widownią.\n",
|
||||
" * Zajęcia rozpoczną się o 13:45, a zakończą o 17:00."
|
||||
" * Demonstracje będą prowadzone w formie stacjonarnej.\n",
|
||||
" * Czas na demonstrację: minut (+ 1 minuta przerwy)\n",
|
||||
" * Niezbędnym elementem demonstracji jest interakcja demonstrowanego systemu z widownią."
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -28,16 +26,8 @@
|
||||
"\n",
|
||||
" * Każdy opiekun grupy będzie proponował ocenę systemu prezentowanego przez grupę w skali do 180 punktów laboratoryjnych w oparciu o:\n",
|
||||
" * ocenę dokumentacji projektu,\n",
|
||||
" * ocenę stanu projektu na zajęciach laboratoryjnych w dniu 25 stycznia,\n",
|
||||
" * ocenę demonstracji w dniu 1 lutego.\n",
|
||||
" * Projekt powinien znajdować się na 6. poziomie gotowości technologicznej:\n",
|
||||
" * Poziom 5.\n",
|
||||
" * Zweryfikowano działanie w warunkach zbliżónych do rzeczywistego (np. przeprowadzono testowanie prototypu wdrożónego na serwerze WMI).\n",
|
||||
" * Poziom 6.\n",
|
||||
" * Dokonano demonstracji działania w warunkach zbliżónych do rzeczywistych (np. zademonstrowano wdrożony prototyp z interakcją użytkowników).\n",
|
||||
" \n",
|
||||
" * Jeśli projekt nie spełnia założeń, to ocena końcowa za wynik projektu wynosi 0 punktów (na 180).\n",
|
||||
" * Jeśli projekt spełnia założenia, to opiekun projektu proponuje ocenę w skali do 180 punktów.\n",
|
||||
" * ocenę stanu projektu na zajęciach laboratoryjnych w dniu ...,\n",
|
||||
" * ocenę demonstracji w dniu ...\n",
|
||||
" * Proponowane składowe oceny implementacji systemu\n",
|
||||
"\n",
|
||||
"<table>\n",
|
||||
@ -77,8 +67,8 @@
|
||||
" </table>\n",
|
||||
" \n",
|
||||
" * Ocena będzie zatwierdzana przez komisję, w której skład wchodzić będą wszyscy opiekunowie.\n",
|
||||
" * Do oceny zostaną doliczone punkty bonusowe za demonstracje wyróżnione przez studentów oraz zaproszonych gości.\n",
|
||||
" * Punkty bonusowe będą przyznawane na podstawie wyników ankiety. W ramach ankiety każdy student i każdy prowadzący (gość) będzie poproszony o wskazanie sześciu najlepszych demonstracji. Studenci nie mogą głosować na demonstracje swoich grup.\n",
|
||||
" * Do oceny zostaną doliczone punkty bonusowe za demonstracje wyróżnione przez studentów.\n",
|
||||
" * Punkty bonusowe będą przyznawane na podstawie wyników ankiety. Studenci nie mogą głosować na demonstracje swoich grup.\n",
|
||||
"\n",
|
||||
" * Link do ankiety:\n",
|
||||
" https://forms.gle/Xrk3fCHc7MXkmFET8\n",
|
||||
@ -91,19 +81,19 @@
|
||||
" <td>Miejce</td> <td> Nazwa projektu </td> <td>Punkty bonusowe</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr> \n",
|
||||
" <td>1.</td><td> Jaka to nuta? </td> <td>20</td>\n",
|
||||
" <td>1.</td><td> /td> <td>20</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <td>2.</td><td> DOC AI </td> <td>15</td>\n",
|
||||
" <td>2.</td><td> </td> <td>15</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <td>3.</td><td> Songwise </td><td>12</td>\n",
|
||||
" <td>3.</td><td> </td><td>12</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <td>4</td><td> Speakato </td><td>9</td>\n",
|
||||
" <td>4</td><td> </td><td>9</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <td>5</td><td> PhishandWare </td><td>6</td>\n",
|
||||
" <td>5</td><td> </td><td>6</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <td>6</td><td> Meetify </td><td>3</td>\n",
|
||||
@ -118,52 +108,8 @@
|
||||
"## Plan zajęć\n",
|
||||
"\n",
|
||||
"### Wprowadzenie\n",
|
||||
"* Czas 13.45 - 13.50\n",
|
||||
"\n",
|
||||
"### Cyberware\n",
|
||||
"\n",
|
||||
"* Czas: 13.50 - 14.15\n",
|
||||
" * HoneyPot\n",
|
||||
" * RandomSec\n",
|
||||
" * Phish&Ware\n",
|
||||
" \n",
|
||||
"### Learn and Play\n",
|
||||
"\n",
|
||||
"* Czas: 14.20 - 14.55\n",
|
||||
" * Rozpoznawanie komend głosowych w grach\n",
|
||||
" * Tao Testing\n",
|
||||
" * Testy\n",
|
||||
" * Ekosystem\n",
|
||||
" \n",
|
||||
"### Music\n",
|
||||
"\n",
|
||||
"* Czas: 15.00 - 15.25\n",
|
||||
" * Wyszukiwanie słuchaczy podobnej muzyki\n",
|
||||
" * Rekomandacje muzyczne\n",
|
||||
" * Odgadywanie utworu muzycznego\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"### Natural Language Processing\n",
|
||||
"\n",
|
||||
"* Czas: 15.30 - 15.55\n",
|
||||
" * Transfix\n",
|
||||
" * Automatyczne generowanie kampanii\n",
|
||||
" * Wyszukiwanie w dokumentach\n",
|
||||
"\n",
|
||||
"### Sport Analysis\n",
|
||||
"\n",
|
||||
"* Czas: 16.00 - 16.40\n",
|
||||
" * Predykcja sukcesu w piłce nożnej\n",
|
||||
" * TV2D\n",
|
||||
" * Predykcja kontuzji\n",
|
||||
" * Metryki piłkarzy\n",
|
||||
" * Analiza przydatności zawodników w La Lidze\n",
|
||||
"\n",
|
||||
"### Wypełnienie ankiet i zakończenie\n",
|
||||
"\n",
|
||||
"* Czas: 16.45 - 17.00\n",
|
||||
"\n",
|
||||
"\n"
|
||||
"### Wypełnienie ankiet i zakończenie\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
@ -183,7 +129,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.5"
|
||||
"version": "3.7.6"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
@ -120,7 +120,7 @@
|
||||
"### Punktacja zadań wykonywanych na laboratorium\n",
|
||||
"<table>\n",
|
||||
" <tr>\n",
|
||||
" <td>Typ zadania</td> <td>Liczba punktów</td>\n",
|
||||
" <td>Typ zadania</td> <td>Maksymalna liczba punktów</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <td>Zadania na laboratoriach</td><td>11 x 30 = 360</td>\n",
|
||||
@ -142,12 +142,7 @@
|
||||
"\n",
|
||||
"### Ocena prototypu\n",
|
||||
"\n",
|
||||
"Na przedostatnich zajęciach z laboratorium opiekun projektu decyduje, czy pr0totyp projektu spełnił swoje założenia. Prototyp powinien osiagnąc co najmniej 5. poziom gotowości technologicznej:\n",
|
||||
"\n",
|
||||
"* 5. poziom gotowości technologicznej\n",
|
||||
" * Zweryfikowano działanie w warunkach zbliżonych do rzeczywistego (np. przeprowadzono testowanie prototypu wdrożonego na serwerze WMI, a nie na serwerze lokalnym).\n",
|
||||
"* 6. poziom gotowości technologicznej \n",
|
||||
" * Dokonano demonstracji działania w warunkach zbliżonych do rzeczywistych (np. zademonstrowano wdrożony prototyp z interakcją użytkowników).\n",
|
||||
"Na przedostatnich zajęciach z laboratorium opiekun projektu decyduje, czy prototyp projektu spełnił swoje założenia.\n",
|
||||
" \n",
|
||||
"Jeśli prototyp nie spełnia założeń, to ocena końcowa wynosi 0 punktów (na 180).\n",
|
||||
"\n",
|
||||
|
@ -36,9 +36,6 @@
|
||||
"\n",
|
||||
" * Ankieta dla gości oraz prowadzących poszczególne grupy https://forms.gle/qmdPovjist7ts2vi7\n",
|
||||
" \n",
|
||||
" * Aby ułatwić ocenę, studenci powinni na początku zajęć w 2-3 zdaniach opisać swój projekt tutaj: \n",
|
||||
"https://docs.google.com/document/d/16glWbhCF_OR1I-SbMlBszTK4iVBpUw4wSTLw810mEGk/edit?usp=sharing \n",
|
||||
"(każdy ma prawo edycji)\n",
|
||||
"\n",
|
||||
"### Prezentacje wyróżnione przez studentów\n",
|
||||
"\n",
|
||||
@ -47,19 +44,19 @@
|
||||
" <td>Miejce</td> <td> Nazwa projektu </td> <td>Punkty bonusowe</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr> \n",
|
||||
" <td>1.</td><td> BitSearch</td> <td>10</td>\n",
|
||||
" <td>1.</td><td> </td> <td>10</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <td>2.</td><td> Meetify </td> <td>7</td>\n",
|
||||
" <td>2.</td><td> </td> <td>7</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <td>3.</td><td> Rozpoznawanie komend głosowych </td><td>5</td>\n",
|
||||
" <td>3.</td><td> </td><td>5</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <td>4</td><td> Transfix </td><td>3</td>\n",
|
||||
" <td>4</td><td> </td><td>3</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <td>5</td><td> Lech Analytics </td><td>2</td>\n",
|
||||
" <td>5</td><td> </td><td>2</td>\n",
|
||||
" </tr>\n",
|
||||
"</table> \n",
|
||||
"\n",
|
||||
@ -69,22 +66,19 @@
|
||||
" <td>Miejce</td> <td> Nazwa projektu </td> <td>Punkty bonusowe</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr> \n",
|
||||
" <td>1.</td> <td> BitSearch</td> <td>10</td>\n",
|
||||
" <td>1.</td> <td> </td> <td>10</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <td>2.</td> <td> HoneyPot </td> <td>7</td>\n",
|
||||
" <td>2.</td> <td> </td> <td>7</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <td>3.</td> <td> Wyszukiwanie w dokumentach</td><td>5</td>\n",
|
||||
" <td>3.</td> <td> </td><td>5</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <td>4</td><td> Rozpoznawanie komend głosowych </td><td>3</td>\n",
|
||||
" <td>4</td><td> </td><td>3</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <td>5</td><td> RandomSec</td> <td>2</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <td>5</td><td> PhishandWare</td> <td>2</td>\n",
|
||||
" <td>5</td><td> </td> <td>2</td>\n",
|
||||
" </tr>\n",
|
||||
"</table> \n"
|
||||
]
|
||||
@ -94,48 +88,12 @@
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Plan zajęć\n",
|
||||
"### Wrowadzenie\n",
|
||||
"\n",
|
||||
"### Wprowadzenie\n",
|
||||
"* Czas 15.15 - 15.20\n",
|
||||
"\n",
|
||||
"### Sport Analysis\n",
|
||||
"\n",
|
||||
"* Czas: 15.20 - 15.40\n",
|
||||
"* Kolejność trzech prezentacji - do ustalenia.\n",
|
||||
"\n",
|
||||
"### Natural Language Processing\n",
|
||||
"\n",
|
||||
"* Czas: 15.40 - 16.05\n",
|
||||
" * Transfix\n",
|
||||
" * BitSearch\n",
|
||||
" * Automatyczne generowanie kampanii\n",
|
||||
" * Wyszukiwanie w dokumentach\n",
|
||||
"\n",
|
||||
"### Music\n",
|
||||
"\n",
|
||||
"* Czas: 16.05 - 16.25\n",
|
||||
" * Wyszukiwanie słuchaczy podobnej muzyki\n",
|
||||
" * Rekomandacje muzyczne\n",
|
||||
" * Odgadywanie utworu muzycznego\n",
|
||||
"\n",
|
||||
"### Learn and Play\n",
|
||||
"\n",
|
||||
"* Czas: 16.25 - 16.50\n",
|
||||
" * Rozpoznawanie komend głosowych w grach\n",
|
||||
" * Tao Testing\n",
|
||||
" * Testy\n",
|
||||
" * Ekosystem\n",
|
||||
"\n",
|
||||
"### Cyberware\n",
|
||||
"\n",
|
||||
"* Czas: 16.50 - 17.05\n",
|
||||
" * HoneyPot\n",
|
||||
" * RandomSec\n",
|
||||
" * Phish&Ware\n",
|
||||
" \n",
|
||||
"### Wypełnienie ankiet i zakończenie\n",
|
||||
"\n",
|
||||
"* Czas: 17.05 - 17.15\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"\n"
|
||||
]
|
||||
|
@ -6,65 +6,14 @@
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Projekt badawczo-rozwojowy</h1>\n",
|
||||
"<h2> 1. <i>Organizacja pracy zespołowej</i>[laboratorium]</h2> \n",
|
||||
"<h1> Systemy informatyczne</h1>\n",
|
||||
"<h2> 1. <i>Organizacja pracy zespołowej</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2021)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Proponowana punktacja zadań wykonywanych na przedmiocie PBR\n",
|
||||
"<table>\n",
|
||||
" <tr>\n",
|
||||
" <td>Typ zadania</td> <td>Liczba punktów</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <td>Zadania na laboratoriach</td><td>13 x 30 = 390</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <td>Sprinty</td><td>6 x 10 = 60</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <td>Ocena końcowa za wynik projektu</td><td>150</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <td>Suma</td><td>600</td>\n",
|
||||
" </tr>\n",
|
||||
"</table>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Proponowana skala ocen na przedmiocie PBR\n",
|
||||
"<table>\n",
|
||||
" <tr>\n",
|
||||
" <td>Liczba punktów</td> <td>Ocena</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <td>500-600</td><td>5</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <td>450-499</td><td>4,5</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <td>400-449</td><td>4</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <td>350-399</td><td>3,5</td>\n",
|
||||
" </tr>\n",
|
||||
" <tr>\n",
|
||||
" <td>300-349</td><td>3</td>\n",
|
||||
" </tr>\n",
|
||||
"</table>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
@ -79,21 +28,20 @@
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Organizacja zespółów projektowych na laboratorium nr 1\n",
|
||||
"Studenci organizaują się w zespoły ok. 4-osobowe (liczba osób w zespole może się wahać) na przykład w następujący sposób: \n",
|
||||
"Studenci przedmotu PBR lub przedmiotu Systemy Informatyczne ogłaszają na mediach społecznościowych swoje oczekiwania w stosunku do projektu realizowanego łącznie na przedmiotach PBR i SYI, np.\n",
|
||||
"1. \"Przedstawiam krótką reklamówkę swojego projektu. Potrzebuję do zespołu...\n",
|
||||
"2. \"Chcę dołączyć do zespołu z określonym projektem magisterskim\". Specjalizuję się w...\n",
|
||||
"3. \"Chcę dołączyć do zespołu, który będzie dopiero definiował projekt systemu informatycznego.\"\n",
|
||||
"Studenci organizaują się w zespoły ok. 4-osobowe. Zespoły organizowane są przez osoby, które uzyskały najwyższe wyniki w teście na lidera przeprowadzonym na wykładzie.\n",
|
||||
"\n",
|
||||
"Wskazane jest, aby w grupie znaleźli się studenci o różnych osobowościach (względem motywacji i podejścia do pracy).\n",
|
||||
"\n",
|
||||
"Na podstawie tych informacji tworzone są zespoły, które będą współpracować na laboratorium nr 1. \n",
|
||||
"Idealny skład zespołu to: dwie osoby z informatyki i dwie osoby z analizy danych, ale ten warunek nie jest konieczny. Składy zespołów mogą zmieniać się do zajęć nr 3 włącznie. \n",
|
||||
"Podczas Laboratorium 1. liderem zespołu jest osoba, która uzyskała najwyższy wynik w teście na lidera podczas wykładu. (Lider może ulec zmianie do zajęć nr 3 włącznie). \n",
|
||||
"Wskazane jest, aby w każdym zespole znalazły się osoby o zróznicowanych umiejętnościach:\n",
|
||||
"* Wizjoner - osoba, która podejmuje decyzję o kierunku wspólnych prac: jaki projekt opracowujemy na Laboratorium 1. (Projekt może ulec zmianie do zajęć nr 3 włącznie).\n",
|
||||
"* Specjalista – grafik; jego zadaniem będzie stworzenie rysunku – projektu interfejsu użytkownika - najlepiej za pomocą jakiegoś narzędzia.\n",
|
||||
"* Bibliotekarz; jego zadaniem będzie opisanie wizji projektu słowami.\n",
|
||||
"\n",
|
||||
"Wskazane (ale nie wymagane) jest, aby w grupie znaleźli się studenci o różnych osobowościach (względem motywacji i podejścia do pracy)."
|
||||
"W ten sposob tworzone są zespoły, które będą współpracować na laboratorium nr 1. \n",
|
||||
"\n",
|
||||
"Podczas Laboratorium 1. liderem zespołu jest osoba, która uzyskała najwyższy wynik w teście na lidera podczas wykładu. \n",
|
||||
"\n",
|
||||
"Zarówno składy zespołów, jak i liderzy mogą ulec zmianie do zajęć nr 3 włącznie.\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -117,11 +65,6 @@
|
||||
"Dla pozostałych członków zespołu: \n",
|
||||
" * Rola w zespole (deweloper, bibliotekarz, grafik itp.),\n",
|
||||
" * Typ motywacji i podejścia do zadań (np. A1) według klasyfikacji podanej na wykładzie.\n",
|
||||
" \n",
|
||||
"Opiekun zespołu\n",
|
||||
" * Jeśli praca związana jest z projektem mgr, to opiekunem automatycznie zostaje opiekun projektu mgr.\n",
|
||||
" * Jeśli praca nie jest związana z projektem mgr, to opiekunem moze zostać dowolny pracownik WMI UAM, jeśli wyrazi zgodę.\n",
|
||||
" * W pozostałych wypadkach opiekunem pozostaje wykładowca.\n",
|
||||
" \n",
|
||||
"Maksymalna ocena: 5 punktów"
|
||||
]
|
||||
@ -137,7 +80,7 @@
|
||||
"\n",
|
||||
"Następnie każdy student indywidualnie szkicuje wizję projektu na kartce (w postaci interfejsu użytkownika lub schematu działania) i opisuje działanie systemu za pomocą 3-5 zdań. \n",
|
||||
"\n",
|
||||
"Rezultat: Tyle dokumentów, ilu jest studentów w grupie. Kartki najlepiej sfotografować i umieścić w systemie ustalnym z opiekunem (np. Google Drive, Teams).\n",
|
||||
"Rezultat: Tyle dokumentów, ilu jest studentów w grupie. Kartki najlepiej sfotografować i umieścić w systemie Teams.\n",
|
||||
" \n",
|
||||
"Maksymalna ocena: 10 punktów"
|
||||
]
|
||||
|
@ -6,9 +6,9 @@
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Przygotowanie do projektu badawczo-rozwojowego</h1>\n",
|
||||
"<h1> Systemy informatyczne</h1>\n",
|
||||
"<h2> 1. <i>Praca zespołowa</i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2021)</h3>\n",
|
||||
"<h3>Krzysztof Jassem (2022)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
@ -18,7 +18,7 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Praca zespołowa w projekcie badawczo-rozwojowym\n",
|
||||
"# Praca zespołowa w projekcie informatycznym\n",
|
||||
"## Cele wykładu\n",
|
||||
"1. Stworzenie zespołów projektowych\n",
|
||||
"2. Zapewnienie dobrej współpracy w zespołach\n",
|
||||
@ -263,7 +263,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.5"
|
||||
"version": "3.7.6"
|
||||
},
|
||||
"subtitle": "01. Praca zespołowa[wykład]",
|
||||
"title": "Przygotowanie do projektu badawczo-rozwojowego",
|
||||
|
@ -1,14 +1,25 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"ename": "SyntaxError",
|
||||
"evalue": "invalid syntax (<ipython-input-2-f2167b5c23c0>, line 2)",
|
||||
"output_type": "error",
|
||||
"traceback": [
|
||||
"\u001b[1;36m File \u001b[1;32m\"<ipython-input-2-f2167b5c23c0>\"\u001b[1;36m, line \u001b[1;32m2\u001b[0m\n\u001b[1;33m <div class=\"alert alert-block alert-info\">\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m invalid syntax\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Przygotowanie do projektu badawczo-rozwojowego</h1>\n",
|
||||
"<h2> 2. <i>Projekt badawczo-rozwojowy</i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2021)</h3>\n",
|
||||
"<h1>Systemy Informatyczne</h1>\n",
|
||||
"<h2> 2. <i>Innowacyjny projekt informatyczny</i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2022)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
@ -18,25 +29,13 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Działalność badawczo-rozwojowa\n",
|
||||
"> Działalność badawczo-rozwojowa to działalność **twórcza** \n",
|
||||
"obejmująca **badania naukowe** lub **prace rozwojowe**, \n",
|
||||
"podejmowana w **sposób systematyczny** \n",
|
||||
"w celu **zwiększenia zasobów wiedzy** \n",
|
||||
"oraz wykorzystania zasobów do **tworzenia nowych zastosowań**."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Definicja projektu badawczo-rozwojowego\n",
|
||||
"Projekt badawczo-rozwojowy to system działań składający się z: \n",
|
||||
"- zakresu projektu, \n",
|
||||
"## Definicja projektu\n",
|
||||
"Projekt to system działań składający się z: \n",
|
||||
"- zakresu działań, \n",
|
||||
"- terminu realizacji, \n",
|
||||
"- zasobów potrzebnych do realizacji projektu (ludzie, kapitał, wiedza, technologia).\n",
|
||||
"\n",
|
||||
"Projekt badawczo-rowojowy charakteryzuje się następującymi cechami: \n",
|
||||
"Projekt innowacyjny charakteryzuje się następującymi cechami: \n",
|
||||
" - niepowtarzalność,\n",
|
||||
" - złożoność,\n",
|
||||
" - identyfikowalność."
|
||||
@ -85,7 +84,7 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Poziomy gotowości technologicznej projektu B+R\n",
|
||||
"## Poziomy gotowości technologicznej\n",
|
||||
"\n",
|
||||
"### Poziom 1.\n",
|
||||
"Rozpoczęto badania naukowe (np. zdefiniowano tematu pracy mgr).\n",
|
||||
@ -119,7 +118,7 @@
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Produkt High-Tech\n",
|
||||
"Oczekuje się, że wynikiem projektu badawczo-rozwojowego w informatyce jest produkt High-Tech.\n",
|
||||
"Oczekuje się, że wynikiem innowacyjnego projektu badawczo-rozwojowego w informatyce jest produkt High-Tech.\n",
|
||||
"\n",
|
||||
"## Czym jest produkt High-Tech?\n",
|
||||
"\n",
|
||||
@ -300,7 +299,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.5"
|
||||
"version": "3.7.6"
|
||||
},
|
||||
"subtitle": "02. Projekt badawczo-rozwojowy[wykład]",
|
||||
"title": "Przygotowanie do projektu badawczo-rozwojowego",
|
@ -6,9 +6,9 @@
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Przygotowanie do projektu badawczo-rozwojowego</h1>\n",
|
||||
"<h2> 3. <i>Prezentacja koncepcji projektu B+R</i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2021)</h3>\n",
|
||||
"<h1> Systemy informatyczne</h1>\n",
|
||||
"<h2> 3. <i>Prezentacja koncepcji projektu</i>[wykład]</h2> \n",
|
||||
"<h3> 3. <i>Krzysztof Jassem</i>[wykład]</h3> \n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
@ -407,7 +407,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.5"
|
||||
"version": "3.7.6"
|
||||
},
|
||||
"subtitle": "03. Prezentacja koncepcji projektu B+R[wykład]",
|
||||
"title": "Przygotowanie do projektu badawczo-rozwojowego",
|
@ -6,9 +6,8 @@
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Przygotowanie do projektu badawczo-rozwojowego</h1>\n",
|
||||
"<h2> 4. <i>Metodologia Prince2</i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2021)</h3>\n",
|
||||
"<h1> Systemy informatyczne</h1>\n",
|
||||
"<h2> 0. <i>Metodologia Prince2</i>[wykład]</h2> \n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
@ -1009,7 +1008,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.5"
|
||||
"version": "3.7.6"
|
||||
},
|
||||
"subtitle": "04. Metodologia Prince 2[wykład]",
|
||||
"title": "Przygotowanie do projektu badawczo-rozwojowego",
|
||||
|
@ -0,0 +1,622 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Systemy informatyczne</h1>\n",
|
||||
"<h2> 4. <i>Metodyki adaptacyjne w programowaniu</i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2022)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Metodyki adaptacyjne w programowaniu (Agile Software Development)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
"\n",
|
||||
"<b> Agile </b> (zwinny) to pojęcie odnoszące się do szybkości i sprawności w działaniu i myśleniu.\n",
|
||||
" \n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Manifest Agile\n",
|
||||
" * opublikowany w roku 2001\n",
|
||||
" * autorzy: 17 teoretyków i praktyków programowania\n",
|
||||
" * 4 wartości\n",
|
||||
" * 12 zasad (pryncypiów)\n",
|
||||
" \n",
|
||||
" ### 4 wartości manifestu Agile\n",
|
||||
" 1. Ludzie i interakcje ponad procesy i narzędzia.\n",
|
||||
" 2. Działające oprogramowanie ponad szczegółową dokumentację.\n",
|
||||
" 3. Współpraca z klientem ponad negocjację umów.\n",
|
||||
" 4. Reagowanie na zmiany ponad podążaniem za planem.\n",
|
||||
" \n",
|
||||
" ### 12 pryncypiów manifestu Agile \n",
|
||||
" [12 pryncypiów](https://www.agilealliance.org/agile101/12-principles-behind-the-agile-manifesto/)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 10 pryncypiów wg Kelly Watersa (All About Agile: Agile Management Made Easy!, 2012)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"1. Active User Involvement Is Imperative."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
"\n",
|
||||
"Nic dobrego nie wynika <BR>\n",
|
||||
"Bez udziału użytkownika.\n",
|
||||
" \n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"2. Agile Development Teams Must Be Empowered."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
"\n",
|
||||
"Nie warta praca mozołu, <BR>\n",
|
||||
"Gdy władza nie w rękach zespołu.\n",
|
||||
" \n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"3. Time waits for no man."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
"\n",
|
||||
"Czas płynie wartko jak rzeka, <BR>\n",
|
||||
"I na nikogo nie czeka.\n",
|
||||
" \n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"4. Agile Requirements Are Barely Sufficient."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
"\n",
|
||||
"Dosłownie w kilku dziś zdaniach <BR>\n",
|
||||
"Streścimy swe wymagania.\n",
|
||||
" \n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"5. How do you eat an elephant? One bite at a time."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
"\n",
|
||||
"Sekretów uchylam wieczko: <BR>\n",
|
||||
"Jedz słonia małą łyżeczką.\n",
|
||||
" \n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"6. Fast but not so furious."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
"\n",
|
||||
"Byli szybcy, lecz nie wściekli, <BR>\n",
|
||||
"I na czas produkt dowlekli.\n",
|
||||
" \n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"7. Done Means DONE!"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
"\n",
|
||||
"Praca była \"wykonana\", <BR>\n",
|
||||
"I działało... aż do rana.\n",
|
||||
" \n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"8. Enough is enough."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"Projekt ciągle się rozrasta, <BR>\n",
|
||||
"Trzeba krzyknąć: \"Stop i Basta!\"\n",
|
||||
" \n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"9. Agile Testing Is Not For Dummies."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"Wiedz, by dobrze móc testować, <BR>\n",
|
||||
"Twa głowa ma być pomysłowa.\n",
|
||||
" \n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"10. No place for snipers."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"Choć mocno znów cierpi Twe ego, <BR>\n",
|
||||
"Nie strzelaj - do siebie samego.\n",
|
||||
" \n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Przykład manifestu zespołu ludzi (PWN AI)\n",
|
||||
"> 1. Biznes stawia **cele**, IT daje **rozwiązania**.\n",
|
||||
"> 2. Wszystko da się zrobić.\n",
|
||||
"> 3. Biznes wyjaśnia **potrzeby**, IT wyjaśnia **możliwości**.\n",
|
||||
"> 4. **Komunikacja i zaangażowanie** – albo wyrzucanie pieniędzy w błoto.\n",
|
||||
"> 5. Wszyscy jesteśmy **elastyczni**."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Metodyka SCRUM"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<b>Scrum</b> jest metodyką, w której kluczowym elementem jest <b>Sprint</b> - faza, która kończy się działającym prototypem. Po każdym Sprincie następuje planowanie działań w kolejnym Sprincie - biorące pod uwagę dotychczasowe doświadczenia.\n",
|
||||
" \n",
|
||||
"</div>\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Struktura metodyki Scrum opiera się na trzech filarach:\n",
|
||||
"* Artefakty\n",
|
||||
"* Role\n",
|
||||
"* Cykl Pracy"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Artefakty w metodyce Scrum"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<h5>Rejestr Produktu (Product Backlog)</h5>\n",
|
||||
"\n",
|
||||
"<b> Rejestr Produktu </b> to lista zadań do wykonania w projekcie ułożona według priorytetu wykonania.\n",
|
||||
"\n",
|
||||
"<ol>\n",
|
||||
" <li> Rejestr produktu utrzymywany jest przez Właściciela Produktu.</li>\n",
|
||||
" <li> Zadania, których efekt widoczny jest dla użytkownika mają często postać <b> User Story </b>.</li>\n",
|
||||
" <li> Zadania o najniższym priorytecie mogą być usuwane z Rejestru Produktu.</li>\n",
|
||||
" </ol>\n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<h5>User Story </h5>\n",
|
||||
"\n",
|
||||
"> <b> User story </b> to krótki opis wybranej funkcjonalności, napisany z punktu widzenia docelowego użytkownika danego produktu (Encyklopedia Zarządzania).\n",
|
||||
"\n",
|
||||
"User Story ma zwykle postać: \n",
|
||||
"> Jako <Kto?> chcę wykonać<Co?> aby<Dlaczego?>\n",
|
||||
"\n",
|
||||
"<h6> Przykład User Story </h6>\n",
|
||||
" \n",
|
||||
"> Jako <b> klient sklepu </b> chcę <b> dodać produkt do koszyka </b> aby go później <b> kupić </b>.\n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<h5>Rejestr Sprintu (Sprint Backlog)</h5>\n",
|
||||
"\n",
|
||||
"<b> Rejestr Sprintu </b> to lista <b>Zadań</b> do wykonania podczas Sprintu:\n",
|
||||
"\n",
|
||||
"<ol>\n",
|
||||
" <li> utrzymywana przez Zespół Deweloperski,</li>\n",
|
||||
" <li> tworzona na początku każdego Sprintu przez Zespół Deweloperski na podstawie priorytetowego zadania z Rejestru Produktu. </li>\n",
|
||||
" </ol>\n",
|
||||
"</div>\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<h5>Zadanie (Task)</h5>\n",
|
||||
"\n",
|
||||
"<b> Zadanie </b> w Rejestrze Sprintu zawiera następujące informacje:\n",
|
||||
"\n",
|
||||
"<ol>\n",
|
||||
" <li> opis zadania,</li>\n",
|
||||
" <li> szacowany czas wykonania zadania, </li>\n",
|
||||
" <li> członek zespołu odpowiedzialnego za wykonanie zadania, </li>\n",
|
||||
" <li> status danego zadania (np. jeden z trzech: oczekuje na realizację/w trakcie realizacji/wykonane). </li>\n",
|
||||
" </ol>\n",
|
||||
"</div>\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Role w metodyce Scrum"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
" \n",
|
||||
"<h5>Udziałowcy (stakeholders)</h5>\n",
|
||||
"Udziałowcy to ludzie, którzy finansują projekt:\n",
|
||||
"<ol>\n",
|
||||
" <li> właściciele firmy realizującej projekt,</li>\n",
|
||||
" <li> klienci, </li>\n",
|
||||
" <li> przyszli użytkownicy.</li>\n",
|
||||
" </ol>\n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
" \n",
|
||||
"<h5>Właściciel Produktu (Product Owner)</h5>\n",
|
||||
"\n",
|
||||
"<b> Właściciel Produktu </b> to rola, która reprezentuje interesy biznesu.\n",
|
||||
"\n",
|
||||
"<h6> Zadania Właściciela Produktu: </h6>\n",
|
||||
"\n",
|
||||
"<ol>\n",
|
||||
" <li> nadzoruje pisanie <b> User Stories</b>,</li>\n",
|
||||
" <li> analizuje na bieżąco potrzeby biznesu i na tej podstawie...</li>\n",
|
||||
" <li> ustala priorytet User Stories w <b>Rejestrze Produktu</b>,</li>\n",
|
||||
" <li> decyduje, co jest WYKONANE. </li>\n",
|
||||
" </ol>\n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
"<h5>Zespół Deweloperski (Development Team)</h5>\n",
|
||||
" \n",
|
||||
"<b>Zespół Deweloperski </b> to zespół wykonawców oprogramowania, zazwyczaj składający się z kilku osób (3-9), o równych prawach.\n",
|
||||
" \n",
|
||||
"<h6> Zadania Zespołu Deweloperskiego: </h6>\n",
|
||||
"\n",
|
||||
"<ol>\n",
|
||||
" <li> jest odpowiedzialny za implementację, </li>\n",
|
||||
" <li> na podstawie priorytetów Właściciela produktu określa zadania na kolejny sprint, </li>\n",
|
||||
" <li> wykonuje cały proces: analiza, programowanie, testowanie (dzienniku produktu),</li>\n",
|
||||
" <li> sam decyduje o sposobie realizacji zadań. </li>\n",
|
||||
" </ol>\n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
"<h5> Scrum Master </h5>\n",
|
||||
"\n",
|
||||
"Scrum Master to członek zespołu deweloperskiego, mający dobre zrozumienie ideologii SCRUM.\n",
|
||||
"\n",
|
||||
"<h6> Zadania Scrum Mastera: </h6>\n",
|
||||
"<ol>\n",
|
||||
" <li> prowadzi <b>Daily </b> (spotkanie zespołu), </li>\n",
|
||||
" <li> prowadzi <b> Retrospektywę</b>, </li>\n",
|
||||
" <li> buduje relacje w zespole, </li>\n",
|
||||
" <li> pomaga rozwiązywać konflikty, </li>\n",
|
||||
" <li> pośredniczy w rozmowach z Właścicielem produktu. </li>\n",
|
||||
" </ol>\n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Cykl pracy w metodyce Scrum"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
"<h5> Sprint </h5> \n",
|
||||
"\n",
|
||||
"<b> Sprint </b> to okres, podczas którego tworzy się przyrost projektu, skutkujący prototypem gotowym do użycia. Sprint zazwyczaj trwa nie krócej niż tydzień i nie dłuzej niż miesiąc.\n",
|
||||
"W skład Sprintu wchodzą:\n",
|
||||
"<ol>\n",
|
||||
" <li> Planowanie Sprintu, </li>\n",
|
||||
" <li> Implementacja, </li>\n",
|
||||
" <li> Codzienne spotkania, </li>\n",
|
||||
" <li> Przegląd Sprintu, </li>\n",
|
||||
" <li> Retrospektywa. </li>\n",
|
||||
" </ol>\n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
"<h5> Planowanie Sprintu (Sprint Planning) </h5> \n",
|
||||
"\n",
|
||||
"<b> Planowanie sprintu </b> jest pierwszym spotkaniem podczas każdego sprintu. \n",
|
||||
"\n",
|
||||
"<ul>\n",
|
||||
"<li> Planowanie Sprintu bierze udział Zespół Deweloperski oraz opcjonalnie Właściciel Produktu. </li> \n",
|
||||
"<li> Planowanie Sprintu prowadzone jest przez Scrum Mastera. </li>\n",
|
||||
"</ul>\n",
|
||||
"\n",
|
||||
"<h6> Standardowy przebieg Planowania Sprintu: </h6> \n",
|
||||
"<ol>\n",
|
||||
" <li> Analizy Rejestru Produktu - wybór wymagań do realizacji, </li>\n",
|
||||
" <li> Określenie celu sprintu - na podstawie wybranych wymagań, </li>\n",
|
||||
" <li> Określenie pełnego zakresu prac: jak będzie działał system po Sprincie, </li>\n",
|
||||
" <li> Stworzenie Rejestru Sprintu: podział zakresu prac na zadania i przydzielenie członków zespołu do zadań, </li>\n",
|
||||
" <li> Estymacja pracochłonności zadań. </li>\n",
|
||||
" </ol>\n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
"<h5> Codzienne Spotkania (Daily Scrum) </h5> \n",
|
||||
"\n",
|
||||
"<b> Codzienne Spotkanie </b> (stosowana nazwa w j. polskim - <b> Daily </b>) to codzienne zdarzenie, które trwa do piętnastu minut w stałym miejscu i o stałej porze. \n",
|
||||
"\n",
|
||||
"<ul>\n",
|
||||
"<li> W Daily bierze udział Zespół Deweloperski. </li> \n",
|
||||
"<li> Daily prowadzone jest przez Scrum Mastera. </li>\n",
|
||||
"</ul>\n",
|
||||
" \n",
|
||||
"<h6> Standardowy plan Daily: </h6>\n",
|
||||
"\n",
|
||||
"<ol>\n",
|
||||
" <li> Przegląd prac w ciągu ostatniego dnia, </li>\n",
|
||||
" <li> Omówienie pojawiających się problemów, </li>\n",
|
||||
" <li> Omówienie planu na kolejny dzień. </li>\n",
|
||||
"</ol>\n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
"<h5> Przegląd Sprintu </h5> \n",
|
||||
"\n",
|
||||
"<b> Przegląd Sprintu </b> jest spotkaniem organizowanym na zakończenie Sprintu w celu zweryfikowania wykonania zadań w Sprincie i dostosowania Rejestru Produktu. \n",
|
||||
"\n",
|
||||
"<ul>\n",
|
||||
"<li> W Przeglądzie Sprintu bierze udział Zespół Deweloperski, Właściciel Produktu oraz Udziałowcy zaproszenieni przez Właściciela Produktu. </li> \n",
|
||||
"<li> Przegląd Sprintu prowadzony jest przez Właściciela Produktu. </li>\n",
|
||||
"</ul>\n",
|
||||
" \n",
|
||||
"<h6> Standardowy plan Przeglądu Sprintu: </h6>\n",
|
||||
"\n",
|
||||
"<ol>\n",
|
||||
" <li> Właściciel Produktu wyjaśnia Udziałowcom, które funkcjonalności zostały \"Wykonane”, a które nie. </li>\n",
|
||||
" <li> Zespół Deweloperski omawia zadania w Sprincie, jakie były problemy oraz jak je rozwiązano. </li>\n",
|
||||
" <li> Zespół Deweloperski prezentuje \"Wykonaną” pracę; dyskusja. </li>\n",
|
||||
" <li> Właściciel Produktu omawia obecny Rejestr Produktu. </li>\n",
|
||||
" <li> Uczestnicy omawiają kolejne kroki pracy pod kątem potrzeb biznesu.\n",
|
||||
" <li> Właściciel produktu aktualizuje Rejestr Produktu.\n",
|
||||
"</ol>\n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
"<h5> Retrospektywa Sprintu</h5> \n",
|
||||
"\n",
|
||||
"<b> Retrospektywa Sprintu </b> to spotkanie po Przeglądzie Sprintu w celu opracowania usprawnień na następny Sprint. \n",
|
||||
"\n",
|
||||
"<ul>\n",
|
||||
"<li> W Retrospektywie udział bierze Zespół Deweloperski. </li> \n",
|
||||
"<li> Retrospektywę prowadzi Scrum Master. </li>\n",
|
||||
"</ul>\n",
|
||||
" \n",
|
||||
"<h6> Standardowy plan Retrospektywy: </h6>\n",
|
||||
"\n",
|
||||
"<ol>\n",
|
||||
" <li> Sprawdzenie, co działo się w ostatnim Sprincie, </li>\n",
|
||||
" <li> Zidentyfikowanie elementów, które sprawdziły się w działaniu, </li>\n",
|
||||
" <li> Zidentyfikowanie elementów, które kwalifikują się do usprawnienia,</li>\n",
|
||||
" <li> Stworzenie planu wprowadzania w życie usprawnień. </li>\n",
|
||||
"</ol>\n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Wniosek\n",
|
||||
"Nie zrobi informatyk \n",
|
||||
"Złotego interesu, \n",
|
||||
"Gdy nie będzie co tydzień \n",
|
||||
"Słuchał potrzeb biznesu."
|
||||
]
|
||||
}
|
||||
],
|
||||
"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.7.6"
|
||||
},
|
||||
"subtitle": "05. Metodologia Prince2Agile[wykład]",
|
||||
"title": "Przygotowanie do projektu badawczo-rozwojowego",
|
||||
"year": "2021"
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 4
|
||||
}
|
@ -6,9 +6,9 @@
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Przygotowanie do projektu badawczo-rozwojowego</h1>\n",
|
||||
"<h1> Systemy informatyczne</h1>\n",
|
||||
"<h2> 5. <i>Metodyki adaptacyjne w programowaniu</i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2021)</h3>\n",
|
||||
"<h3>Krzysztof Jassem (2022)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
@ -611,7 +611,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.5"
|
||||
"version": "3.7.6"
|
||||
},
|
||||
"subtitle": "05. Metodologia Prince2Agile[wykład]",
|
||||
"title": "Przygotowanie do projektu badawczo-rozwojowego",
|
||||
|
@ -0,0 +1,479 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Systemy informatyczne</h1>\n",
|
||||
"<h2> 5. <i>Prototypowanie i ciągła integracja</i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2022)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"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."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
" \n",
|
||||
"<h2>Ciągła integracja </h2> \n",
|
||||
" \n",
|
||||
"Ciągła integracja (CI) to praktyka rozwoju oprogramowania, w której:\n",
|
||||
"<ul>\n",
|
||||
" <li> zmiany w kodzie są regularnie przesyłane do centralnego repozytorium, </li>\n",
|
||||
" <li> po każdym dołączeniu nowego kodu wykonywane są (automatycznie): kompilacja kodu i testy. </li>\n",
|
||||
"</ul>\n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<h2>Główne przesłanki CI </h2> \n",
|
||||
" \n",
|
||||
"Ciągła integracja (CI) to praktyka rozwoju oprogramowania, w której:\n",
|
||||
"<ul>\n",
|
||||
" <li> szybsze lokalizowanie błędów w kodzie, </li>\n",
|
||||
" <li> ciągły wzrost jakości oporgramowania, </li>\n",
|
||||
" <li> szybkie wydawanie nowych wersji. </li>\n",
|
||||
"</ul>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
" \n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"![Schemat CI/CD](obrazy/cicd.drawio.png \"Schemat CI/CD\")"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Przebieg pracy w Ciągłej Integracji\n",
|
||||
"1. **Take Integrated Code**\n",
|
||||
" * Pobieram kod z repozytorium.\n",
|
||||
" * Instaluję kopię na swojej stacji roboczej. \n",
|
||||
" \n",
|
||||
"2. **Do Your Part**\n",
|
||||
" * Opracowuję nowy kod.\n",
|
||||
" * Opracowuję nowe testy jednostkowe.\n",
|
||||
" \n",
|
||||
"3. **Build on your machine**\n",
|
||||
"\n",
|
||||
" * **Repeat** \n",
|
||||
" * Kompiluję swój kod i buduję wersję wykonywalną,\n",
|
||||
" * Przeprowadzam testy jednostkowe,\n",
|
||||
" * **Until**\n",
|
||||
" * Kod się skompilował poprawnie oraz\n",
|
||||
" * Testy zakończyły się powodzeniem.\n",
|
||||
" \n",
|
||||
"4. **Integrate with Repository**\n",
|
||||
"\n",
|
||||
" * Przesyłam kod do repozytorium centralnego, skąd przesyłany jest do kompilacji i testów.\n",
|
||||
" * Przypadek 1. W międzyczasie ktoś dodał swój kod do repozytorium. Kompilacja lub testy się nie powodzą.\n",
|
||||
" * **Go back to: Take Integrated Code**\n",
|
||||
" * Przypadek 2. Tetsy się powodzą\n",
|
||||
" * **Continue**\n",
|
||||
" \n",
|
||||
"5. **End Session**\n",
|
||||
" * Gdy powiodły się wszystkie testy, mogę zakończyć sesję."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Dobre praktyki Ciągłej Integracji\n",
|
||||
"(wg https://www.martinfowler.com/articles/continuousIntegration.html)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Maintain a Single Source Repository\n",
|
||||
" * Załóż mainline (linię główną): \n",
|
||||
" * Deweloperzy powinni większość pracy składać na mainline.\n",
|
||||
" * Nie nadużywaj odgalęzień (branchów). Jeśli już, to tylko w celu:\n",
|
||||
" * naprawy błędów,\n",
|
||||
" * tymczasowych eksperymentów,\n",
|
||||
" * oznaczania wersji publikowalnych.\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Automate the Build\n",
|
||||
" * Wersja wykonywalna powinna być tworzona jednym poleceniem.\n",
|
||||
" * Dotyczy to zarówno repozytorium centralnego, jak i maszyn lokalnych."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Test Yourself\n",
|
||||
" * Pisz testy jednostkowe.\n",
|
||||
" * Uruchamiaj testy po każdej kompilacji."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Everyone Commits Everyday\n",
|
||||
" * Każdy powinien \"codziennie\" wypychać swój kod do linii głównej.\n",
|
||||
" * Umożliwia to wczesne wykrywanie konfliktów, gdyż...\n",
|
||||
" * Im wcześniej wykryje się konflikt, tym łatwiej go naprawić.\n",
|
||||
" * Postulat wymaga rozbicia projektu na małe kawałki."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Every Commit Should Build the Mainline\n",
|
||||
" * Nie odchodzisz od pracy z repozytorium, aż Twój kod nie przeszedł pełnych testów.\n",
|
||||
" * Korzystaj z systemów ciągłej integracji (Cruise Control, Jenkins)."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Fix the Broken Builds Immediately\n",
|
||||
"Co zrobić, jeśli jednak kod na \"mainline\" się nie buduje? \n",
|
||||
"Znalezienie i poprawienie blędu jest priorytetem, ale:\n",
|
||||
" * Nie debugguj kodu na centralnym repozytorium. \n",
|
||||
" * Przywróć wersję wykonywalną na \"mainline\".\n",
|
||||
" * Debugguj kod na maszynie lokalnej."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Make it Easy to Run the Latest Executable\n",
|
||||
"* Każdy członek zespołu (nie tylko deweloper) powinien mieć możliwość łatwego uruchomienia ostatniej wersji stabilnej.\n",
|
||||
"* Jest to niezbędne do:\n",
|
||||
" * testowania integracyjnego (tester),\n",
|
||||
" * rozmów z klientem (zarząd lub sprzedawca),\n",
|
||||
" * prowadzenia projektu (kierownik zespołu).\n",
|
||||
"* W specjalnej lokalizacji przetrzymuj wersje stabilne - \"do pokazania\"."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Keep the Build Fast\n",
|
||||
"\n",
|
||||
" * Maximum 10 minut na build + testy.\n",
|
||||
" * A jeśli testy trwają dłużej?\n",
|
||||
" * Testy dwuetapowe:\n",
|
||||
" * kompilacja + testy jednostkowe przy każdym commicie,\n",
|
||||
" * testy integracyjne co pewien czas (np. po commicie wszystkich deweloperów)."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Clone the Environment\n",
|
||||
" * Przygotuj klon środowiska produkcyjnego:\n",
|
||||
" * ta sama wersja systemu operacyjnego\n",
|
||||
" * ta sama baza danych\n",
|
||||
" * te same biblioteki (nawet jak ich nie potrzebujesz) \n",
|
||||
" * Wszystkie testy przeprowadzaj na przygotowanym środowisku."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Everyone Can See What's Happening\n",
|
||||
"System powinien informować użytkowników o swoim statusie."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Automate Deployment\n",
|
||||
" * Zautomatyzowanie wdrożenia polega na napisaniu skryptów, które instalują system w docelowym środowisku.\n",
|
||||
" * Pozwala to na szybką reakcję, gdy \"coś się dzieje\". "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Narzędzia Ciągłej Integracji\n",
|
||||
"\n",
|
||||
"https://www.katalon.com/resources-center/blog/ci-cd-tools/\n",
|
||||
"\n",
|
||||
"1. Jenkins\n",
|
||||
"2. Circle CI\n",
|
||||
"3. Team City\n",
|
||||
"4. Bamboo\n",
|
||||
"5. GitLab"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Korzyści z Ciągłej Integracji\n",
|
||||
" * Minimalizacja ryzyka\n",
|
||||
" * Łatwiejsze szacowanie terminu zakończenia prac\n",
|
||||
" * Szybsza lokalizacja i naprawa błędów\n",
|
||||
" * Świadomość stanu prac u całego zespołu\n",
|
||||
" * Możliwość kontynuowania prac w przypadku odejścia dewelopera\n",
|
||||
" * Możliwość pracy w środowisku rozproszonym\n",
|
||||
" * Możliwość usunięcia bariery między wykonawcą i klientem"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Przykład - Jenkins\n",
|
||||
"\n",
|
||||
"https://git.wmi.amu.edu.pl/filipg/paper-cutter/src/branch/master/Jenkinsfile\n",
|
||||
"\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"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.7.6"
|
||||
},
|
||||
"subtitle": "06. Prototypowanie i ciągła integracja[wykład]",
|
||||
"title": "Przygotowanie do projektu badawczo-rozwojowego",
|
||||
"year": "2021"
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 4
|
||||
}
|
@ -6,9 +6,9 @@
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Przygotowanie do projektu badawczo-rozwojowego</h1>\n",
|
||||
"<h1> Systemy informatyczne</h1>\n",
|
||||
"<h2> 6. <i>Prototypowanie i ciągła integracja</i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2021)</h3>\n",
|
||||
"<h3>Krzysztof Jassem (2022)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
@ -242,6 +242,13 @@
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"![Schemat CI/CD](obrazy/cicd.drawio.png \"Schemat CI/CD\")"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
@ -257,12 +264,12 @@
|
||||
" \n",
|
||||
"3. **Build on your machine**\n",
|
||||
"\n",
|
||||
"* **Repeat** \n",
|
||||
" * Kompiluję swój kod i buduję wersję wykonywalną,\n",
|
||||
" * Przeprowadzam testy jednostkowe,\n",
|
||||
"* **Until**\n",
|
||||
" * Kod się skompilował poprawnie oraz\n",
|
||||
" * Testy zakończyły się powodzeniem.\n",
|
||||
" * **Repeat** \n",
|
||||
" * Kompiluję swój kod i buduję wersję wykonywalną,\n",
|
||||
" * Przeprowadzam testy jednostkowe,\n",
|
||||
" * **Until**\n",
|
||||
" * Kod się skompilował poprawnie oraz\n",
|
||||
" * Testy zakończyły się powodzeniem.\n",
|
||||
" \n",
|
||||
"4. **Integrate with Repository**\n",
|
||||
"\n",
|
||||
@ -430,6 +437,16 @@
|
||||
" * Możliwość pracy w środowisku rozproszonym\n",
|
||||
" * Możliwość usunięcia bariery między wykonawcą i klientem"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Przykład - Jenkins\n",
|
||||
"\n",
|
||||
"https://git.wmi.amu.edu.pl/filipg/paper-cutter/src/branch/master/Jenkinsfile\n",
|
||||
"\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
@ -451,7 +468,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.5"
|
||||
"version": "3.7.6"
|
||||
},
|
||||
"subtitle": "06. Prototypowanie i ciągła integracja[wykład]",
|
||||
"title": "Przygotowanie do projektu badawczo-rozwojowego",
|
||||
|
@ -6,9 +6,9 @@
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Przygotowanie do projektu badawczo-rozwojowego</h1>\n",
|
||||
"<h1> Systemy informatyczne</h1>\n",
|
||||
"<h2> 7. <i>Specyfikacja projektu informatycznego</i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2021)</h3>\n",
|
||||
"<h3>Krzysztof Jassem (2022)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
@ -170,7 +170,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -193,7 +192,7 @@
|
||||
"### Wymaganie systemowe\n",
|
||||
"**Wymagania systemowe** to sformalizowany opis oczekiwań względem systemu.\n",
|
||||
" * Skierowane są do:\n",
|
||||
" * inżynierów zamwiającego,\n",
|
||||
" * inżynierów zamawiającego,\n",
|
||||
" * twórców oprogramowania, \n",
|
||||
" * architektów systemu. \n",
|
||||
" \n",
|
||||
@ -203,7 +202,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -219,7 +217,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -247,7 +244,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -271,7 +267,7 @@
|
||||
"## Elementy składowe opisu przypadku użycia \n",
|
||||
"1. Wykonawca główny (który rozpoczyna wykonanie przypadku użycia)\n",
|
||||
"2. Poziom celu\n",
|
||||
"3. Warunkie początkowe\n",
|
||||
"3. Warunki początkowe\n",
|
||||
"4. Wyzwalacz\n",
|
||||
"5. Gwarancje minimalne\n",
|
||||
"6. Gwarancja powodzenia\n",
|
||||
@ -280,7 +276,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -300,7 +295,7 @@
|
||||
"<img src=\"obrazy/poziom streszczenia.png\" alt=\"Przykład przypadku użycia o poziomie streszczenia\" width=400px>\n",
|
||||
"\n",
|
||||
"#### Poziom użytkownika\n",
|
||||
"Przypadki użycia o poziomie użytkownika opisują cel, który chce osiągnąć aktor główny, żeby wykonać swoje zadanie. \n",
|
||||
"Przypadki użycia o poziomie użytkownika opisują cel, który chce osiągnąć wykonawca główny, żeby wykonać swoje zadanie. \n",
|
||||
" * Najczęściej spełniają warunek: „jedna osoba i jedno krótkie posiedzenie”.\n",
|
||||
" * Przypadki te są najbardziej warte opisania w specyfikacji.\n",
|
||||
" \n",
|
||||
@ -318,7 +313,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -333,7 +327,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -346,13 +339,12 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 3.4. Przypadek użycia. Gwarancje minimalne\n",
|
||||
"**Gwarancje minimalne** to najmniejsze obietnice składane przez system.\n",
|
||||
" * Są realizowane zarówno wtedy, gdy cel aktora głównego jest spełniony (scenariusz powodzenia) i gdy nie jest on spełniony. (Szczególnie w tym drugim przypadku minimalne gwarancje są istotne).\n",
|
||||
" * Są realizowane zarówno wtedy, gdy cel wykonawcy głównego jest spełniony (scenariusz powodzenia) i gdy nie jest on spełniony. (Szczególnie w tym drugim przypadku minimalne gwarancje są istotne).\n",
|
||||
" * Zapisywane są w postaci kilku stwierdzeń, które będą na pewno prawdziwe po zakończeniu przypadku użycia.\n",
|
||||
" \n",
|
||||
" Przykłady gwarancji minimalnych:\n",
|
||||
@ -360,7 +352,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -375,39 +366,38 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 3.6. Przypadek użycia. Scenariusz powodzenia\n",
|
||||
"**Scenariusz powodzenia** to ciąg akcji od rozpoczęcia do zakończenia przypadku użycia, który realizuje gwarancje powodzenia.\n",
|
||||
"Scenariusz powodzenia opisuje najbardziej typowe zachowanie systemu i nie bierze pod uwagę zdarzeń niesprzyjających.\n",
|
||||
"#### Wskazówki przy pisaniu scenariusza powodzenia\n",
|
||||
"Scenariusz powodzenia opisuje najbardziej typowe zachowanie systemu i nie bierze pod uwagę zdarzeń niesprzyjających. \n",
|
||||
"\n",
|
||||
"##### 1. Używaj prostych składni zdań\n",
|
||||
"**Wskazówki przy pisaniu scenariusza powodzenia:**\n",
|
||||
"\n",
|
||||
"#### 1. Używaj prostych składni zdań\n",
|
||||
"<img src=\"obrazy/prosta składnia.png\" alt=\"Przykład prostej składni\" width=300px>\n",
|
||||
"\n",
|
||||
"##### 2. Jasno i jednoznacznie wskaż podmiot czynności\n",
|
||||
"#### 2. Jasno i jednoznacznie wskaż podmiot czynności\n",
|
||||
"<img src=\"obrazy/podmiot.png\" alt=\"Przykład podmiotu czynności\" width=300px>\n",
|
||||
"\n",
|
||||
"##### 3. Pisz \"z lotu ptaka\"\n",
|
||||
"#### 3. Pisz \"z lotu ptaka\"\n",
|
||||
"<img src=\"obrazy/lot ptaka.png\" alt=\"Przykład z lotu ptaka\" width=300px>\n",
|
||||
"\n",
|
||||
"##### 4. Przesuwaj proces wyraźnie do przodu\n",
|
||||
"#### 4. Przesuwaj proces wyraźnie do przodu\n",
|
||||
"<img src=\"obrazy/proces.png\" alt=\"Przykład przesuwania procesu\" width=300px>\n",
|
||||
"\n",
|
||||
"##### 5. Stwierdzaj \"że\", a nie - sprawdzaj \"czy\"\n",
|
||||
"#### 5. Stwierdzaj \"że\", a nie - sprawdzaj \"czy\"\n",
|
||||
"<img src=\"obrazy/że.png\" alt=\"Przykład stwierdzania że\" width=300px>\n",
|
||||
"\n",
|
||||
"##### 6. Wyraźnie oznaczaj przypadki użycia, do których się odwołujesz\n",
|
||||
"#### 6. Wyraźnie oznaczaj przypadki użycia, do których się odwołujesz\n",
|
||||
"<img src=\"obrazy/odwołania.png\" alt=\"Przykłady odwołania\" width=300px>\n",
|
||||
"\n",
|
||||
"##### 7. Stosuj iteracje, jeśli jest taka potrzeba\n",
|
||||
"#### 7. Stosuj iteracje, jeśli jest taka potrzeba\n",
|
||||
"<img src=\"obrazy/iteracje.png\" alt=\"Przykłady iteracji\" width=300px>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -433,15 +423,14 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Podsumowanie - jak stworzyć specyfikację systemu informatycznego?\n",
|
||||
" 1. Określenie koncepcji projektu, np. w postaci prezentacji lub diagramu \n",
|
||||
" 2. Charakterystyka wykonawców \n",
|
||||
" 3. Lista „wykonawca-cel” \n",
|
||||
" 4. Lista „in-out” \n",
|
||||
" 3. Lista „Wwykonawca-Cel” \n",
|
||||
" 4. Lista „In-Out” \n",
|
||||
" 5. Wymagania funkcjonalne \n",
|
||||
" 6. Wymaganie niefunkcjonalne \n",
|
||||
" 7. Opis przypadków użycia "
|
||||
@ -467,7 +456,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.5"
|
||||
"version": "3.7.6"
|
||||
},
|
||||
"subtitle": "07. Specyfikacja projektu informatycznego[wykład]",
|
||||
"title": "Przygotowanie do projektu badawczo-rozwojowego",
|
||||
|
@ -6,9 +6,9 @@
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Przygotowanie do projektu badawczo-rozwojowego</h1>\n",
|
||||
"<h1> Systemy informatyczne</h1>\n",
|
||||
"<h2> 8. <i>Testowanie w programowaniu zwinnym</i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2021)</h3>\n",
|
||||
"<h3>Krzysztof Jassem (2022)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
@ -298,8 +298,12 @@
|
||||
" * Prostej instrukcji do testera\n",
|
||||
" * Scenariusza przypadku testowego\n",
|
||||
" \n",
|
||||
"**Przykład opisu przypadków testowych logowania do systemu:**\n",
|
||||
"<img src=\"obrazy/przypadki testowe.png\" alt=\"Opis przypadków testowych\" width=900px>"
|
||||
"**Przykład opisu przypadków testowych z prostą instrukcją:**\n",
|
||||
"<img src=\"obrazy/przypadki testowe.png\" alt=\"Opis przypadków testowych\" width=900px>\n",
|
||||
"\n",
|
||||
" \n",
|
||||
"**Przykład opisu przypadku testowego ze scenariuszem:**\n",
|
||||
"<img src=\"obrazy/przypadek testowy ze scenariuszem.png\" alt=\"Opis przypadku testowego ze scenariuszem\" width=900px>"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -350,7 +354,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -364,7 +367,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -375,7 +377,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -392,7 +393,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -417,7 +417,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -434,7 +433,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
|
@ -6,9 +6,9 @@
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Przygotowanie do projektu badawczo-rozwojowego</h1>\n",
|
||||
"<h2> 9. <i>Testowanie systemowe i adaptacyjne</i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2021)</h3>\n",
|
||||
"<h1> Systemy informatyczne</h1>\n",
|
||||
"<h2> 9. <i>Testowanie systemowe i akceptacyjne</i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2022)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
@ -18,7 +18,7 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# 1. Testowanie systemowe i adaptacyjne - wyjaśnienie pojęć"
|
||||
"# 1. Testowanie systemowe i akceptacyjne - wyjaśnienie pojęć"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -39,9 +39,9 @@
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
"<h3>Testowanie adaptacyjne</h3>\n",
|
||||
"<h3>Testowanie akceptacyjne</h3>\n",
|
||||
" \n",
|
||||
"Przedmiotem <b>testowania adaptacyjnego </b> jest oprogramowanie stanowiące przedmiot dostawy do użytkownika w docelowym środowisku pracy.\n",
|
||||
"Przedmiotem <b>testowania akceptacyjnego </b> jest oprogramowanie stanowiące przedmiot dostawy do użytkownika w docelowym środowisku pracy.\n",
|
||||
" * Testowana jest zgodność z wymaganiami i potrzebami użytkownika.\n",
|
||||
" * Testowanie akceptacyjne przeprowadza użytkownik / klient.\n",
|
||||
"</div>"
|
||||
@ -60,7 +60,7 @@
|
||||
"source": [
|
||||
"## 2.1. Testowanie funkcjonalne (functional testing)\n",
|
||||
"**Testowanie funkcjonalne** ma na celu wykazanie rozbieżności między programem a jego specyfikacją zapisaną w postaci wymagań funkcjonalnych lub przypadków użycia.\n",
|
||||
" * Przypadki testowe (scenariusze testowe) wielokrotnie tworzy się na podstawie przypadków użycia.\n",
|
||||
" * Przypadki testowe (scenariusze testowe) często tworzy się na podstawie przypadków użycia.\n",
|
||||
" * Podstawowa zasada:Im więcej błędów wykryto w pewnej funkcji programu, tym (prawdopodobnie) większą liczbę błędów ona jeszcze ukrywa.\n",
|
||||
" * Testowanie funkcjonalne może odbywać się na różnych poziomach szczegółowości:\n",
|
||||
" * testy dymne\n",
|
||||
@ -76,7 +76,7 @@
|
||||
"**Testy dymne** (ang. smoke tests) to powierzchowne testy pozwalające wykazać błędy krytyczne,\n",
|
||||
" * Przykładem testu dymnego może być test CRUD (Create, Read, Update, Delete).\n",
|
||||
" \n",
|
||||
"**Przykład opisu testów dymnych:**\n",
|
||||
"**Przykład opisu testów dymnych (system automatycznego tłumaczenia dokumentów):**\n",
|
||||
"<img src=\"obrazy/testy dymne.png\" alt=\"Przykład testów dymnych\" width=400px>"
|
||||
]
|
||||
},
|
||||
@ -85,10 +85,10 @@
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Testy zdroworozsądkowe\n",
|
||||
"**Testy zdroworozsądkowe** mają wykazać, że aplikacja nie działa zgodnie ze stawianymi przed nią wymaganiami.\n",
|
||||
"**Testy zdroworozsądkowe** (ang. sanity tests) mają wykazać, że aplikacja nie działa zgodnie ze stawianymi przed nią wymaganiami.\n",
|
||||
">\"Smoke test określa, czy w ogóle coś działa, a sanity test - czy działa tak, jak ma działać”.\n",
|
||||
"\n",
|
||||
"**Przykład przypadków testowych na poziomie testowania regresywnego:**\n",
|
||||
"**Przykład przypadków testowych na poziomie testowania zdroworozsądkowego:**\n",
|
||||
"<img src=\"obrazy/sanity test.png\" alt=\"Przykład testów zdroworozsądkowych\" width=900px>"
|
||||
]
|
||||
},
|
||||
@ -100,7 +100,7 @@
|
||||
"**Testy regresywne** to szczegółowe testy, pozwalające wykazać, że w aplikacji powstały nieznane błędów będące wynikiem wprowadzonych zmian.\n",
|
||||
"\n",
|
||||
"**Przykład przypadku testowego na poziomie testowania regresywnego:**\n",
|
||||
"<img src=\"obrazy/testy regresywne.png\" alt=\"Przykład testów regresywnych\" width=900px>"
|
||||
"<img src=\"obrazy/testy regresywne.png\" alt=\"Przykład testów regresywnych\" width=700px>"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -133,15 +133,33 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 2.3. Testowanie przeciążeń (load testing)\n",
|
||||
"**Przeciążenie** to skumulowanie w krótkim czasie dużej liczby jednocześnie działających użytkowników lub przeprowadzanych transakcji. \n",
|
||||
"\n",
|
||||
"## 2.3. Testowanie przeciążeń (load testing)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
"<h3>Przeciążenie</h3>\n",
|
||||
" \n",
|
||||
"Przeciążenie to skumulowanie w krótkim czasie dużej liczby jednocześnie działających użytkowników lub przeprowadzanych transakcji. \n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Celem **testowania przeciążeń** jest zweryfikowania działania systemu przy wysokim obciążeniu.\n",
|
||||
" * Przykładowy scenariusz testowania przeciążeń:\n",
|
||||
" * Nagranie ciągu operacji wykonywanych przez jednego klienta (np. \u000b",
|
||||
"w postaci makra)\n",
|
||||
" * Odtworzenie nagranego ciągu operacji dla wybranej (dużej) liczby klientów\n",
|
||||
" * Analiza raportu\n",
|
||||
" * Analiza raportu \n",
|
||||
"\n",
|
||||
" * Lista narzędzi do testowania przeciążeń: \n",
|
||||
"https://testerzy.pl/baza-wiedzy/narzedzia/10-najlepszych-narzedzi-do-testow-wydajnosci\n",
|
||||
"\n",
|
||||
"**Przykład raportu tekstowego z testu przeciążeń systemu tłumaczenia:**\n",
|
||||
"<img src=\"obrazy/load test - raport tekstowy.png\" alt=\"Przykład raportu z testowania\" width=800px>\n",
|
||||
@ -188,7 +206,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -199,7 +216,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -208,7 +224,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -220,12 +235,11 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# 3. Testowanie akceptacyjne\n",
|
||||
"## Cele testowania akcpetacyjnego\n",
|
||||
"## Cele testowania akceptacyjnego\n",
|
||||
" * Sprawdzenie kompletności systemu i jego prawidłowego działania;\n",
|
||||
" * Sprawdzanie zgodności zachowania funkcjonalnego i niefunkcjonalnego systemu ze specyfikacją;\n",
|
||||
" * Spełnienie wymagań wynikających z obowiązujących przepisów prawa lub norm/standardów;\n",
|
||||
@ -250,7 +264,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -262,7 +275,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -279,11 +291,10 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 3.3. Testowanie akceptacyjne zgodności z umową i zgodności z przepisami prawa!\n",
|
||||
"## 3.3. Testowanie akceptacyjne zgodności z umową i zgodności z przepisami prawa\n",
|
||||
"**Testowanie zgodności z umową** to weryfikowanie zgodności działania z kryteriami akceptacji zapisanymi w umowie. \n",
|
||||
"\n",
|
||||
"**Testowanie zgodności z przepisami prawa** sprawdza zgodność działania z ustawami, rozporządzeniami czy normami bezpieczeństwa. \n",
|
||||
@ -291,20 +302,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 3.4. Testy alfa i testy beta\n",
|
||||
"**Testowanie alfa** jest wykonywane w siedzibie wykonawcy.\n",
|
||||
" * Wykonują je potencjalni lub obecni klienci, i/lub operatorzy bądź niezależni testerzy. \n",
|
||||
" \n",
|
||||
"**Testowanie beta** wykonują obecni lub potencjalni klienci we własnych lokalizacjach. \n",
|
||||
" * Celem może być wykrywanie błędów związanych z warunkami i środowiskiem (środowiskami), w których system będzie używany."
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -316,7 +313,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -351,7 +347,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -366,7 +361,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -377,7 +371,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -395,7 +388,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -412,7 +404,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -421,7 +412,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -453,7 +443,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.5"
|
||||
"version": "3.7.6"
|
||||
},
|
||||
"subtitle": "09. Testowanie integracyjne i systemowe[wykład]",
|
||||
"title": "Przygotowanie do projektu badawczo-rozwojowego",
|
||||
|
@ -6,9 +6,9 @@
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Przygotowanie do projektu badawczo-rozwojowego</h1>\n",
|
||||
"<h1> Systemy informatyczne</h1>\n",
|
||||
"<h2> 11. <i>Aspekty użyteczności</i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2021)</h3>\n",
|
||||
"<h3>Krzysztof Jassem (2022)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
@ -681,7 +681,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.5"
|
||||
"version": "3.7.6"
|
||||
},
|
||||
"subtitle": "11. Aspekty użyteczności[wykład]",
|
||||
"title": "Przygotowanie do projektu badawczo-rozwojowego",
|
||||
|
@ -0,0 +1,561 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Systemy informatyczne</h1>\n",
|
||||
"<h2> 10. <i>Wybrane zagadnienia użyteczności</i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2021)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# 1. Pojęcie użyteczności"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
" \n",
|
||||
"<h3>Użyteczność</h3> \n",
|
||||
"\n",
|
||||
"Użyteczność narzędzia: łatwość, z jaką ludzie potrafią korzystać z tego narzędzia w celu osiągnięcia określonego celu.\n",
|
||||
"\n",
|
||||
"<h3> Cechy aplikacji użytecznej </h3>\n",
|
||||
" \n",
|
||||
"<ul>\n",
|
||||
"<li> Łatwa do nauki: Jak łatwo jest użytkownikom wykonać dane zadanie po raz pierwszy?\n",
|
||||
"<li> Wydajna w pracy: Jak szybko użytkownicy wykonują zadania, gdy już się nauczyli programu?\n",
|
||||
"<li> Satysfakcja: Czy korzystanie z programu daje satysfakcję?\n",
|
||||
"<li> Odporna na błędy: Ile błędów robią użytkownicy, jak poważne są to błędy i jak łatwo z nich się wydostać?\n",
|
||||
"<li> Zapamiętywalna po czasie: Jak łatwo powrócić do biegłości użytkowania po pewnym okresie nieużytkowania programu?\n",
|
||||
"\n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# 2. Wskazówki do tworzenia użytecznej aplikacji"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 2.1. Klasyka w oparciu o \"Don't make me think\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
" \n",
|
||||
"<a href=\"https://www.uxbooth.com/articles/10-usability-lessons-from-steve-krugs-dont-make-me-think/\">Przeczytaj w Internecie</a>\n",
|
||||
"\n",
|
||||
"<ol> \n",
|
||||
" \n",
|
||||
"<li> Usability Means… </li>\n",
|
||||
"\n",
|
||||
"<li>Web applications should explain themselves. </li>\n",
|
||||
"\n",
|
||||
"<li>Don’t Make Me Think </li>\n",
|
||||
"\n",
|
||||
"<li>Don’t waste my time </li>\n",
|
||||
" \n",
|
||||
"<li> Users still cling to their back buttons </li>\n",
|
||||
"\n",
|
||||
"<li> We’re creatures of habit </li>\n",
|
||||
"\n",
|
||||
"<li> No Time for Small Talk </li>\n",
|
||||
"\n",
|
||||
"<li> Don’t lose search </li>\n",
|
||||
"\n",
|
||||
"<li> We form mental site-maps </li>\n",
|
||||
"\n",
|
||||
"<li> Make it easy to go home </li>\n",
|
||||
" \n",
|
||||
"</ol>\n",
|
||||
"\n",
|
||||
"<div>\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 2.2. Podejście (bardziej) współczesne"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
" \n",
|
||||
"<h3>Wskazówki do tworzenia użytecznego systemu informatycznego</h3> \n",
|
||||
"\n",
|
||||
"<ol>\n",
|
||||
"<li> Autorze: Poznaj użytkownika, a TY nie jesteś użytkownikiem. </li> \n",
|
||||
" <li> Użytkownik powinien mieć kontrolę nad systemem, a nie odwrotnie: to użytkownik jest szefem i system powinien to okazywać. </li> \n",
|
||||
" <li> System musi ułatwiać użytkownikowi życie:</li>\n",
|
||||
" <ul>\n",
|
||||
" <li> Elementy, które wyglądają tak samo, powinny działać tak samo, a akcje, które nie działają tak samo powinny być inaczej reprezentowane. </li>\n",
|
||||
" <li> Każda akcja użytkownika powinna mieć reakcję programu. </li>\n",
|
||||
" <li> Kiedy użytkownik ma do podjęcia decyzję, system podaje mu całą dostępną informację. </li>\n",
|
||||
" </ul> \n",
|
||||
" <li> System musi być \"idioto-odporny\": </li>\n",
|
||||
" <ul>\n",
|
||||
" <li> Każdy robi błędy, więc każdy błąd powinien dać się naprawić. </li>\n",
|
||||
" <li> Gdy użytkownik zrobi błąd, System daje mu o tym znać, zanim … wpadnie w PRAWDZIWE kłopoty. </li>\n",
|
||||
" <li> Informacje o błędach powinny być zrozumiałe dla użytkownika i mówić mu, jak naprawić problem. </li>\n",
|
||||
" </ul> \n",
|
||||
" <li> Wczuj się w użytkownika </li>\n",
|
||||
" <ul>\n",
|
||||
" <li> Eliminuj niepotrzebne decyzje (nie pytaj, jak nie musisz). </li>\n",
|
||||
" <li> Im mniej kroków do celu, tym lepiej.</li> \n",
|
||||
" <li> Użytkownik powinien zawsze móc dowiedzieć się, co robić dalej. </li>\n",
|
||||
" <li> Użytkownik powinien zawsze wiedzieć, co się dzieje.\n",
|
||||
" </ul>\n",
|
||||
" </ol>\n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 3. Zasady dobrej nawigacji na portalu internetowym\n",
|
||||
"### 3.1. Pojęcie nawigacji"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
" \n",
|
||||
"<b> Nawigacja </b> to stały, niezmieniający się zestaw elementów w serwisie ułatwiający poruszanie się na niej.\n",
|
||||
" \n",
|
||||
"Najczęściej stosowanymi elementami nawigacji są: \n",
|
||||
"<ul>\n",
|
||||
"<li> Menu główne </li>\n",
|
||||
"<li> Menu narzędziowe </li>\n",
|
||||
"<li> Identyfikator witryny </li>\n",
|
||||
"<li> Wyszukiwarka </li>\n",
|
||||
"<li> Odsyłacz do strony startowej (zawarty w logo) </li>\n",
|
||||
"<li> Flagi narodowe (przełączenie języków) </li>\n",
|
||||
"</ul>\n",
|
||||
"\n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 3.2. Cechy dobrej nawigacji"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
" * Szybkie przechodzenie po różnych elementach serwisu.\n",
|
||||
" * Łatwe prowadzenie użytkownika do poszukiwanej informacji. \n",
|
||||
" * Klarowność: użytkownik wie gdzie jest, gdzie może się skierować, jak wrócić, a także posiada informacje o odwiedzonych miejscach. \n",
|
||||
" * Oszczędność: główne menu witryny nie powinno zawierać zbyt wielu elementów (między 5 a 9)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 3.3. Zasady użytecznej nawigacji"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Zasada 1. Widoczność\n",
|
||||
"Wszystkie elementy nawigacji muszą być bardzo dobrze widoczne na każdej stronie i podstronie serwisu."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Zasada 2. Przewidywalność\n",
|
||||
" * Nazwy elementów menu powinny pozwalać na przewidzenie zawartości\n",
|
||||
" * Elementy menu powinny informować użytkownika o całej zawartości witryny.\n",
|
||||
" * Odwiedzone linki powinny być oznaczone innym kolorem niż nieodwiedzone. "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Zasada 3. Łatwość orientacji w strukturze serwisu\n",
|
||||
"* Powinno się stosować różne style wyróżnienia jego elementów:\n",
|
||||
" * dla całej kategorii, na której aktualnie znajduje się kursor (np. Aktualności),\n",
|
||||
" * dla pozycji w menu, z której aktualnie korzysta użytkownik (np. Publikacje zagraniczne),\n",
|
||||
" * dla pozostałych elementów serwisu."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Zasada 4. Zasada odwróconej piramidy\n",
|
||||
" * Na najwyższym poziomie należy umieścić kategorie najbardziej ogólne, a następnie przechodzić do podziału bardziej szczegółowego. \n",
|
||||
" * Na tym samym poziomie powinny znajdować się kategorie o tym samym stopniu szczegółowości."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Zasada 5. Właściwe nazewnictwo\n",
|
||||
" * Wykluczający podział etykiet menu: \n",
|
||||
" * dana pozycja w menu może należeć tylko do jednej kategorii.\n",
|
||||
" * Proste nazewnictwo: \n",
|
||||
" * etykiety powinno formułować się w języku zrozumiałym dla użytkownika,\n",
|
||||
" * powinno unikać się specjalistycznego słownictwa.\n",
|
||||
" * Unikalne nazwy: \n",
|
||||
" * dana nazwa powinna pojawiać się w serwisie internetowym nie więcej niż raz,\n",
|
||||
" * każda strona powinna mieć swoja nazwę.\n",
|
||||
" * Nazwa strony musi być dobrze widoczna:\n",
|
||||
" * nazwa strony musi być w dobrze umiejscowiona i wyróżniona za pomocą rozmiaru i koloru czcionki.\n",
|
||||
" * Nazwa strony lub podstrony musi być zgodna z nazwą odsyłacza, który do niej prowadzi."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Zasada 6. Spójność w wyglądzie i działaniu elementów nawigacyjnych\n",
|
||||
"* Należy stosować te same konwencje w obrębie całego menu. \n",
|
||||
"* Elementy pierwszego poziomu powinny pozostawać niezmienne w trakcie korzystania z całego serwisu internetowego. \n",
|
||||
"* Wszystkie pozycje w menu powinny funkcjonować na tej samej zasadzie. \n",
|
||||
"* Przy formułowaniu nazw w menu należy w każdym przypadku stosować tę samą formę gramatyczną.\n",
|
||||
"* Pozycje menu należące do jednego poziomu powinny być sformatowane w jednym stylu."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# 4. Metody badania użyteczności"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 4.1. Automatyczne metody badania użyteczności"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Badanie współczynnika konwersji\n",
|
||||
"**Współczynnik konwersji** wskazuje, jaka część internautów odwiedzających daną stronę dokonała pożądanej akcji np.\n",
|
||||
" * Dokonała zakupu\n",
|
||||
" * Wypełniła formularz\n",
|
||||
" * Wysłała maila na wskazany adres\n",
|
||||
" * Zarejestrowała się do systemu\n",
|
||||
" * Pobrała software"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Testy A/B (testy porównawcze)\n",
|
||||
"* Metoda polega na porównaniu dwóch wersji tej samej aplikacji.\n",
|
||||
"* Najczęściej stosowana jest do stron internetowych.\n",
|
||||
"* Różnicę (postęp lub regres) między wersjami wyznacza się poprzez porównanie wartości pewnej miary, np. współczynnika konwersji dla stron internetowych. \n",
|
||||
"\n",
|
||||
"[Przeczytaj w Internecie](https://www.optimizely.com/ab-testing/)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Analityka ruchu na portalu internetowym\n",
|
||||
"Metoda polega na obserwacji dotyczących ruchu na witrynie, takich jak:\n",
|
||||
" * Wskaźnik odrzuceń – procentowa wartość osób, które opuściły stronę wejściową serwisu bez wykonania żadnej akcji\n",
|
||||
" * Wskaźnik porzuceń – wskaźnik analogiczny dla podstron danego serwisu,\n",
|
||||
"Metoda wskazuje działania użytkownika – nie wskazuje jego przyczyn. \n",
|
||||
"\n",
|
||||
"Przykładowa witryna: \n",
|
||||
"https://www.google.com/analytics/"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Click-tracking\n",
|
||||
"\n",
|
||||
"Metoda dostarcza informacji o poszczególnych elementach strony za pomocą następujących typów informacji\n",
|
||||
" * Heat maps. \n",
|
||||
" * Wskazują, w jakie miejsca na stronie ludzie klikają (see what’s hot and what’s not).\n",
|
||||
" * Confetti\n",
|
||||
" * Analiza kliknięć: jak klikały poszczególne grupy użytkowników i w poszukiwaniu czego.\n",
|
||||
" * Scrollmap\n",
|
||||
" * Analiza, jak daleko w dół strony użytkownicy przewijają stronę – pozwala przeanalizować miejsca, w których strona jest najczęściej porzucana.\n",
|
||||
" * Overlay report\n",
|
||||
" * Liczba kliknięć na poszczególne elementy strony.\n",
|
||||
"\n",
|
||||
"Przykładowy dostawca: \n",
|
||||
"http://www.crazyegg.com"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Analiza kontrastu\n",
|
||||
"\n",
|
||||
"Dostarcza informacji o kontraście pomiędzy elementami strony, co jest szczególnie istotne dla osób z upośledzeniem wzroku.\n",
|
||||
"\n",
|
||||
"* Przykładowy adres\n",
|
||||
" * https://webaim.org/resources/contrastchecker/\n",
|
||||
" * Można wpisać adres strony, która ma zostać przeanalizowana pod względem kontrastu – otrzymuje się pełen raport."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 4.2. Metody z udziałem użytkowników\n",
|
||||
"\n",
|
||||
"W metodach z udziałem użytkowników można posłużyć się zastosowaniem *persony*, w celu optymalizacji kosztów badania.\n",
|
||||
" * **Persona** to fikcyjna postać stworzona by reprezentować typy użytkowników (demograficzne i technograficzne).\n",
|
||||
" * Persony to inaczej archetypy grup użytkowników i ich potrzeb. Dzięki personom cała populacja docelowa reprezentowana jest przez kilka konceptów.\n",
|
||||
" > Przykład persony: Jan Kowalski, lat 37, elektryk, mieszkaniec Ząbkowic Śląskich\n",
|
||||
" \n",
|
||||
" Przykładowy proces testowania użyteczności z udziałem użytkowników:\n",
|
||||
" 1. Określ grupy użytkowników np. przy użyciu persony (co najmniej jedna persona na grupę).\n",
|
||||
" 2. Dla każdej persony utwórz potencjalny scenariusz użycia – w jaki sposób dana persona chce korzystać z systemu.\n",
|
||||
" 3. Dla każdej persony zorganizuj użytkowników reprezentatywnych (minimum jednego użytkownika dla persony).\n",
|
||||
" 4. Poproś ich o wykonanie zadań charakterystycznych dla danej persony.\n",
|
||||
" 5. Obserwuj lub nagrywaj działania użytkowników: gdzie im się powodzi, a gdzie mają trudności.\n",
|
||||
" 6. Potencjalnie poproś użytkowników o wypełnienie ankiet.\n",
|
||||
"\n",
|
||||
"Wyróżniamy następujące typy metod z udziałem użytkowników:\n",
|
||||
" * podgląd sesji użytkowników.\n",
|
||||
" * obserwacja użytkownika,\n",
|
||||
" * metoda wywiadu."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Podgląd sesji użytkowników\n",
|
||||
"* Działalność użytkownika jest „nagrywana”.\n",
|
||||
"* Autor oprogramowania może odtworzyć działania użytkownika z perspektywy użytkownika.\n",
|
||||
"* Każde kliknięcie, poruszenie myszą, przesunięcie kursora zostaje zapisane."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Obserwacja użytkownika\n",
|
||||
"* Działalność użytkownika jest obserwowana.\n",
|
||||
"* Obserwator zapisuje poczynania użytkownika.\n",
|
||||
"* Obserwacje są analizowane w celu ulepszenia użyteczności aplikacji."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Metoda wywiadu\n",
|
||||
" * Sposoby przeprowadzenia wywiadu:\n",
|
||||
" * Analiza celów użytkowników i wykonywania przez nich zadań,\n",
|
||||
" * Dyskusja prowadzona przez moderatora,\n",
|
||||
" * Wypełnienie ankiet / kwestionariuszy."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# 5. Raport badania użyteczności\n",
|
||||
"Raport badania użyteczności to sprawozdanie z badania użyteczności aplikacji, w którym wskazuje się **obszary problemowe**.\n",
|
||||
"Przykładowo raport użytecznści może składać się z następujących części:\n",
|
||||
"1. Informacje wstępne\n",
|
||||
"2. Metodologia badania\n",
|
||||
"3. Obszary problemowe\n",
|
||||
"4. Dodatki"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 5.1. Informacje wstępne\n",
|
||||
"Ta część zawiera ogólne informacje o prowadzonym badaniu, np. :\n",
|
||||
" * Daty tworzenia raportu\n",
|
||||
" * Harmonogram prowadzenia badań\n",
|
||||
" * Odwołanie do standardów badania użyteczności\n",
|
||||
" * Autorzy raportu"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 5.2. Metodologia badania\n",
|
||||
"Opis tej części zależy od przejętej metody badania. Przykładowo, dla metody wywiadu część ta może mieć następującą postać:\n",
|
||||
"\n",
|
||||
"### 5.2.1. Zakres badania\n",
|
||||
" * Określenie zakresu projektowego: badanie gotowego produktu, czy ocena prototypu,\n",
|
||||
" * Określenie celu, np., wskazanie wyłącznie błędów w systemie, czy również wskazanie proponowanych ulepszeń,\n",
|
||||
" * Określenie zastosowanej metody badania użyteczności.\n",
|
||||
"\n",
|
||||
"### 5.2.2. Profile użytkowników\n",
|
||||
" * Określenie kilku segmentów odbiorców pod względem:\n",
|
||||
" * Danych demograficznych\n",
|
||||
" * Doświadczenia z programami podobnymi (wcześniejszymi wersjami systemu)\n",
|
||||
" * Oczekiwań względem systemu\n",
|
||||
"\n",
|
||||
"### 5.2.3. Grupa badawcza\n",
|
||||
" * Określenie liczebności grupy badawczej (około 5 osób)\n",
|
||||
" * Określenie charakterystyki grupy badawczej pod względem różnych kryteriów , np.\n",
|
||||
" * płeć, \n",
|
||||
" * wiek, \n",
|
||||
" * miejsce zamieszkania, \n",
|
||||
" * wykształcenie, \n",
|
||||
" * zawód, \n",
|
||||
" * wielkość firmy, \n",
|
||||
" * branża, \n",
|
||||
" * obsługa komputera, \n",
|
||||
" * doświadczenie z podobnymi programami, itp.\n",
|
||||
" * Liczebność i charakterystykę grupy badawczej można zobrazować za pomocą wykresów.\n",
|
||||
"\n",
|
||||
"### 5.2.4. Scenariusz badania\n",
|
||||
"W tej części należy opisać, jak będzie przebiegać scenariusz badania.\n",
|
||||
"Przykładowy scenariusz badania w metodzie wywiadu:\n",
|
||||
"1. Omówienie zadań i sposobu wypełniania kwestionariusza\n",
|
||||
"2. Podanie informacji o regulaminie przeprowadzenia testu wykonania zadań\n",
|
||||
"3. Test wykonania zadań\n",
|
||||
"4. Wypełnienie przygotowanego kwestionariusza przez użytkowników\n",
|
||||
"\n",
|
||||
"### 5.2.5. Lista zadań do wykonania przez użytkowników\n",
|
||||
"W tej częścI dla każdego zadania należy podać kryterium pomyślnego ukończenia zadania. Lista zadań może być podana w postaci tabelki:\n",
|
||||
" * Opis zadania\n",
|
||||
" * Kryterium ukończenia zadania\n",
|
||||
"\n",
|
||||
"### 5.2.6. Ocena wykonania zadań \n",
|
||||
"W tej części należy ocenić, jak badani wykonali zadania.\n",
|
||||
"Przykładowa ocena wykonania zadań:\n",
|
||||
" * Liczba błędów krytycznych użytkownika\n",
|
||||
" * Liczba błędów niekrytycznych użytkownika\n",
|
||||
" * Liczba zadań wykonanych zgodnie z założeniami\n",
|
||||
" * Liczba zdań niewykonanych zgodnie z założeniami\n",
|
||||
" * Czas wykonania zadań\n",
|
||||
"\n",
|
||||
"Ten etap raportu można zakończyć wykresami."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 5.3. Obszary problemowe\n",
|
||||
"Obszary problemowe to **wnioski** z badania użyteczności.\n",
|
||||
" * W tej częśći raportu określone zostają obszary problemowe (składowe systemu, które sprawiają kłopoty).\n",
|
||||
" * Dla każdego obszaru problemowego określa się zestaw problemów użytkowania.\n",
|
||||
" * Problem użytkowania składa się z:\n",
|
||||
" * Tytułu problemu,\n",
|
||||
" * Opisu problemu,\n",
|
||||
" * Jeśli problemem jest zbyt długi czas wykonania zadania, to można podać średnie czasy rozwiązania,\n",
|
||||
" * Filmiku wideo (jeśli takim dysponujemy),\n",
|
||||
" * Rekomendacji rozwiązania problemu,\n",
|
||||
" * Opisu proponowanego scenariusza działania użytkownika po rozwiązaniu problemu."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 5.4. Dodatki\n",
|
||||
"W tej części raportu składamy materiały pomocnicze, np.\n",
|
||||
" ### 5.4.1. Ankieta\n",
|
||||
"\n",
|
||||
"W ankiecie mogą znaleźć się przykładowe pytania:\n",
|
||||
" * Jak ocenia Pan/Pani trudność poszczególnych zadań?\n",
|
||||
" * Co sprawiło Panu/Pani największy problem podczas testów?\n",
|
||||
" * Jakie inne funkcjonalności byłyby pożyteczne (wskazać listę do wyboru)?\n",
|
||||
" * Jakie elementy systemu były niezrozumiałe?\n",
|
||||
"\n",
|
||||
" Wyniki ankiety potestowej możemy przedstawić na wykresach.\n",
|
||||
" \n",
|
||||
"### 5.4.2. Inne materiały pomocnicze\n",
|
||||
"Przykładowe materiały pomocnicze:\n",
|
||||
" * Lista filmów video ilustrujących błędy użyteczności aplikacji,\n",
|
||||
" * Wnioski i rekomendacje ekspertów użyteczności,\n",
|
||||
" * Inne materiały w zależności od zastosowanej metody badawczej."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Podsumowanie wykładu\n",
|
||||
"1. Tworząc aplikację, myśl przede wszystkim o jej użyteczności, a potem dopiero o jej funkcjonalności.\n",
|
||||
"2. O sukcesie aplikacji stanowi pomysł, a nie wielość funkcji.\n",
|
||||
"3. Zawsze (!) pamiętaj o wskazówkach użyteczności.\n",
|
||||
"4. Tworząc portal internetowy, stosuj zasady dobrej nawigacji.\n",
|
||||
"5. Przekonaj się, jak Twój program jest używany – wykonaj badanie użyteczności."
|
||||
]
|
||||
}
|
||||
],
|
||||
"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.7.6"
|
||||
},
|
||||
"subtitle": "10. Wybrane zagadnienia użyteczności[wykład]",
|
||||
"title": "Przygotowanie do projektu badawczo-rozwojowego",
|
||||
"year": "2021"
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 4
|
||||
}
|
@ -6,9 +6,9 @@
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Przygotowanie do projektu badawczo-rozwojowego</h1>\n",
|
||||
"<h1> Systemy informatyczne</h1>\n",
|
||||
"<h2> 12. Ocena jakości systemu informatycznego</i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2021)</h3>\n",
|
||||
"<h3>Krzysztof Jassem (2022)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
@ -143,6 +143,7 @@
|
||||
"Przykłady:\n",
|
||||
"\n",
|
||||
"<table>\n",
|
||||
" <caption> Jak mierzyć liczbę wierszy w metryce LOC </caption> \n",
|
||||
"<tr> \n",
|
||||
" <td> Decyzja </td> <td> Rekomendacja </td>\n",
|
||||
"</tr>\n",
|
||||
@ -195,8 +196,10 @@
|
||||
"Wartość kodu w punktach funkcyjnych wyznacza się, dzieląc wartośćLOC przez współczynnik produktywności.\n",
|
||||
"\n",
|
||||
"**Tablica produktywności języków programowania**\n",
|
||||
" <img src=\"obrazy/LOC vs FP.jpg\" alt=\"Tablica produktywności\" width=500px>\n",
|
||||
" źródło: Adam Roman, \"Testowanie i jakość oprogramowania\"\n",
|
||||
"<figure>\n",
|
||||
"<img src=\"obrazy/LOC vs FP.jpg\" alt=\"Tablica produktywności\" width=500px>\n",
|
||||
"<figcaption> Tablica produktywności. Źródło: Adam Roman, \"Testowanie i jakość oprogramowania\" </figcaption> \n",
|
||||
"</figure>\n",
|
||||
"\n",
|
||||
"[Porównaj w Internecie](https://www.qsm.com/resources/function-point-languages-table)"
|
||||
]
|
||||
@ -214,13 +217,17 @@
|
||||
" \n",
|
||||
"Wartości metryk Halsteada (w przeciwieństwie do LOC) nie zależą od długości przyjętego nazewnictwa.\n",
|
||||
"\n",
|
||||
"<figure>\n",
|
||||
"<img src=\"obrazy/Halstead1.png\" alt=\"Liczby tokenów\" width=300px>\n",
|
||||
"źródło: Wikipedia\n",
|
||||
"<figcaption> Liczby tokenów. Źródło: wikipedia </figcaption> \n",
|
||||
"</figure>\n",
|
||||
"\n",
|
||||
"Na podstawie liczby tokenów można oszacować objętość (wielkość) programu:\n",
|
||||
"\n",
|
||||
"<figure>\n",
|
||||
"<img src=\"obrazy/Halstead2.png\" alt=\"wielkość programu\" width=300px>\n",
|
||||
"źrodło: Wikipedia"
|
||||
"<figcaption> Objętość programu. Źródło: wikipedia </figcaption> \n",
|
||||
"</figure>"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -241,8 +248,10 @@
|
||||
" * E: wysiłek implementacji,\n",
|
||||
" * T: czas implementacji\n",
|
||||
" * B: liczba błędów.\n",
|
||||
"<figure>\n",
|
||||
"<img src=\"obrazy/Halstead3.png\" alt=\"metryki złożoności Halsteada\" width=100px>\n",
|
||||
"żródło: Wikipedia"
|
||||
"<figcaption> Metryki złożoności Halsteada. Źródło: wikipedia </figcaption> \n",
|
||||
"</figure>"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -276,7 +285,7 @@
|
||||
"\n",
|
||||
"Metryka uwzględnia zarówno liczbę metod w klasie, jak i ich złożoność cyklomatyczną: (n oznacza liczbę metod w klasie, a c<sub>i</sub> oznacza złożoność cykolomatyczną i-tej metody).\n",
|
||||
"\n",
|
||||
"<img src=\"obrazy/WMC.png\" alt=\"Uśrednione metody na klasę \" width=200px>"
|
||||
"<img src=\"obrazy/WMC.png\" alt=\"Uśrednione metody na klasę \" width=150px>"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -405,6 +414,7 @@
|
||||
"* Przykładowe wartości metryki dostępności:\n",
|
||||
"\n",
|
||||
"<table>\n",
|
||||
" <caption> Wartości metryki dostępności </caption>\n",
|
||||
"<tr> \n",
|
||||
" <td> Miara dostępności </td> <td> Czas niedostępności w roku </td>\n",
|
||||
"</tr>\n",
|
||||
@ -503,9 +513,10 @@
|
||||
" * brak związku między cechami.\n",
|
||||
" \n",
|
||||
"Przykłady korelacji: \n",
|
||||
"\n",
|
||||
"<figure>\n",
|
||||
"<img src=\"obrazy/korelacja.png\" alt=\"korelacja Pearsona\" width=600px>\n",
|
||||
"źródło: https://cyrkiel.info/statystyka/korelacja-pearsona/"
|
||||
" <figcaption>źródło: https://cyrkiel.info/statystyka/korelacja-pearsona/</figcaption>\n",
|
||||
"</figure>"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -515,8 +526,10 @@
|
||||
"## 6.2. Korelacja między właściwościami oprogramowania\n",
|
||||
"Korelację między poszczególnymi właściwościami oprogramowania obrazuje tabela:\n",
|
||||
"\n",
|
||||
"<figure>\n",
|
||||
"<img src=\"obrazy/korelacja właściwości.png\" alt=\"Korelacja między właściwościomi oprogramowania\" width=600px>\n",
|
||||
"źródło: opracowanie własne na podstawie: Stephen H. Kan \"Metryki i modele w inżynierii jakości oprogramowania\"\n",
|
||||
" <figcaption> Korelacje między właściwościami oprogramowania źródło: opracowanie własne na podstawie: Stephen H. Kan \"Metryki i modele w inżynierii jakości oprogramowania\"</figcaption>\n",
|
||||
"</figure>\n",
|
||||
"\n",
|
||||
"Tabela wskazuje, że polepszenie jednej cechy oprogramowania (np. przydatności funkcjonalnej) może pogorszyć inną cechę (np. wydajność), bo cechy te są ujemnie skorelowane."
|
||||
]
|
||||
@ -602,7 +615,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.5"
|
||||
"version": "3.7.6"
|
||||
},
|
||||
"subtitle": "12. Ocena jakości systemu informatycznego[wykład]",
|
||||
"title": "Przygotowanie do projektu badawczo-rozwojowego",
|
||||
|
@ -6,9 +6,9 @@
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Przygotowanie do projektu badawczo-rozwojowego</h1>\n",
|
||||
"<h1> Systemy informatyczne</h1>\n",
|
||||
"<h2> 13. <i>Planowanie prac badawczo-rozwojowych</i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2021)</h3>\n",
|
||||
"<h3>Krzysztof Jassem (2022)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
@ -728,7 +728,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.5"
|
||||
"version": "3.7.6"
|
||||
},
|
||||
"subtitle": "13. Planowanie prac badawczo-rozwojowych[wykład]",
|
||||
"title": "Przygotowanie do projektu badawczo-rozwojowego",
|
@ -6,22 +6,13 @@
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Przygotowanie do projektu badawczo-rozwojowego</h1>\n",
|
||||
"<h1> Systemy informatyczne</h1>\n",
|
||||
"<h2> 15. <i>Demonstracja wyników projektu badawczo-rozwojowego </i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2021)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
"Demonstrowane projekty powinny być na 6. poziomie gotowości technologicznej.\n",
|
||||
"</div>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
@ -43,7 +34,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.5"
|
||||
"version": "3.7.6"
|
||||
},
|
||||
"subtitle": "15. Demonstracja projektu[wykład]",
|
||||
"title": "Przygotowanie do projektu badawczo-rozwojowego",
|
||||
|
@ -6,9 +6,9 @@
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Przygotowanie do projektu badawczo-rozwojowego</h1>\n",
|
||||
"<h1> Systemy informatyczne</h1>\n",
|
||||
"<h2> 1. <i>Praca zespołowa</i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2021)</h3>\n",
|
||||
"<h3>Krzysztof Jassem (2022)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
@ -18,7 +18,7 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Praca zespołowa w projekcie badawczo-rozwojowym\n",
|
||||
"# Praca zespołowa w projekcie informatycznym\n",
|
||||
"## Cele wykładu\n",
|
||||
"1. Stworzenie zespołów projektowych\n",
|
||||
"2. Zapewnienie dobrej współpracy w zespołach\n",
|
||||
|
310
materiały na wykład/02_innowacyjny_projekt_informatyczny.ipynb
Normal file
310
materiały na wykład/02_innowacyjny_projekt_informatyczny.ipynb
Normal file
@ -0,0 +1,310 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"ename": "SyntaxError",
|
||||
"evalue": "invalid syntax (<ipython-input-2-f2167b5c23c0>, line 2)",
|
||||
"output_type": "error",
|
||||
"traceback": [
|
||||
"\u001b[1;36m File \u001b[1;32m\"<ipython-input-2-f2167b5c23c0>\"\u001b[1;36m, line \u001b[1;32m2\u001b[0m\n\u001b[1;33m <div class=\"alert alert-block alert-info\">\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m invalid syntax\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1>Systemy Informatyczne</h1>\n",
|
||||
"<h2> 2. <i>Innowacyjny projekt informatyczny</i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2022)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Definicja projektu\n",
|
||||
"Projekt to system działań składający się z: \n",
|
||||
"- zakresu działań, \n",
|
||||
"- terminu realizacji, \n",
|
||||
"- zasobów potrzebnych do realizacji projektu (ludzie, kapitał, wiedza, technologia).\n",
|
||||
"\n",
|
||||
"Projekt innowacyjny charakteryzuje się następującymi cechami: \n",
|
||||
" - niepowtarzalność,\n",
|
||||
" - złożoność,\n",
|
||||
" - identyfikowalność."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Przykład projektu badawczo-rozwojowego: AI Searcher\n",
|
||||
"\n",
|
||||
"### Definicja projektu:\n",
|
||||
"System działań mających na celu stworzenie systemu informatycznego wspomagającego pracowników Polskiej Straży Granicznej. \n",
|
||||
"\n",
|
||||
"\n",
|
||||
"### Zakres projektu: \n",
|
||||
"System informatyczny wdrożony w siedzibie Straży Granicznej, który ma pomagać w znajdowaniu treści przestępczych w Internecie. \n",
|
||||
"System realizuje następujący scenariusz działania:\n",
|
||||
" 1. Pracownik Straży Granicznej wpisuje zapytanie.\n",
|
||||
" 2. Moduł Rozszerzania Zapytań rozszerza zapytanie na zestaw kwerned do wyszukiwarek internetowych.\n",
|
||||
" 3. Translator tłumaczy kwerendy na języki: rosyjski, ukraiński i białoruski.\n",
|
||||
" 4. Crawler wyszukuje dokumentów w trzech językach przygranicznych i języku polskim.\n",
|
||||
" 5. Translator tłumaczy znalezione teksty na język polski. \n",
|
||||
" 6. Klasyfikator wybiera teksty potencjalnie przestępcze.\n",
|
||||
" 7. Analizator Lingwistyczny oznacza informację dodatkową w dokumentach:\n",
|
||||
" \n",
|
||||
"### Termin realizacji: \n",
|
||||
"grudzień 2018 - grudzień 2021\n",
|
||||
"\n",
|
||||
"### Zasoby:\n",
|
||||
" * Ludzie: Wojskowa Akademia Techniczna, UAM, Ken-Bit https://www.kenbit.pl/\n",
|
||||
" * Kapitał: dotacja z NCBR\n",
|
||||
" * Wiedza: Najnowsze badania z klasyfikacji tekstu, uczenia automatycznego itp.\n",
|
||||
" * Technologia: Framework do tworzenia interfejsu użytkownika, algorytmy do klasyfikacji tekstu, modele języka"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Poglądowy widok systemu AI Searcher\n",
|
||||
"<img src=\"obrazy/AISearcher.png\" alt=\"Zrzut ekranu systemu AISearcher\" width=600px>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Poziomy gotowości technologicznej\n",
|
||||
"\n",
|
||||
"### Poziom 1.\n",
|
||||
"Rozpoczęto badania naukowe (np. zdefiniowano tematu pracy mgr).\n",
|
||||
"### Poziom 2.\n",
|
||||
"Znaleziono zastosowania badań naukowych (np. określono, na czym będzie polegał projekt mgr).\n",
|
||||
"### Poziom 3.\n",
|
||||
"Przeprowadzono pierwsze eksperymenty na krytycznych technologiach (np. wykonano proof-of-concept).\n",
|
||||
"\n",
|
||||
"### Poziom 4.\n",
|
||||
"Zintegrowano podstawowe komponenty prototypu w warunkach laboratoryjnych (np. zrealizowano \"user-stories\" na komputerze dewelopera).\n",
|
||||
"### Poziom 5.\n",
|
||||
"Zweryfikowano działanie w warunkach zbliżónych do rzeczywistego (np. przeprowadzono testowanie prototypu wdrożónego na serwerze WMI).\n",
|
||||
"### Poziom 6.\n",
|
||||
"Dokonano demonstracji działania w warunkach zbliżónych do rzeczywistych (np. zademonstrowano wdrożony prototyp z interakcją użytkowników).\n",
|
||||
"\n",
|
||||
"### Poziom 7.\n",
|
||||
"Dokonano demonstracji systemu w warunkach operacyjnych (np. zademonstrowano prototyp wdrożony u użytkownika / klienta).\n",
|
||||
"\n",
|
||||
"### Poziom 8.\n",
|
||||
"Potwierdzono zamierzony poziom technologii w warunkach operacyjnych (np. pomyślnie zakończono testowanie akceptacyjne).\n",
|
||||
"\n",
|
||||
"### Poziom 9.\n",
|
||||
"Stwierdzono, że wypracowana technologia odniosła zamierzony efekt (np. stwierdzono, że stosowanie rozwiązania przynosi wymierne korzyści). \n",
|
||||
"\n",
|
||||
"[Formalny opis poziomów gotowości technologicznej](https://archiwum.ncbr.gov.pl/fileadmin/zalewska/5_1_1_1_2018/13_poziomy_gotowosci_technologicznej.pdf)\n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Produkt High-Tech\n",
|
||||
"Oczekuje się, że wynikiem innowacyjnego projektu badawczo-rozwojowego w informatyce jest produkt High-Tech.\n",
|
||||
"\n",
|
||||
"## Czym jest produkt High-Tech?\n",
|
||||
"\n",
|
||||
"### Definicja produktu\n",
|
||||
"Produkt = \n",
|
||||
"Zawartość + \n",
|
||||
"Funkcjonalność + \n",
|
||||
"Konstrukcja + \n",
|
||||
"Monetyzacja \n",
|
||||
"Oczekuje się zatem, że z produkt posiada jakąś zawartość (Zawartość), z której kożna korzystać (Funkcjonalność), gdyż został odpowiednio skonstruowany (Konstrukcja), ale trzeba za to płacić (Monetyzacja)."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"Wyraz \"technologia\" pochodzi z języka greckiego:\n",
|
||||
" <ul>\n",
|
||||
" <li>techne: sztuka, umiejętność</li>\n",
|
||||
" <li>logia: nauka (czegoś)</li>\n",
|
||||
" </ul>\n",
|
||||
"\n",
|
||||
"Technologia w dzisiejszym rozumieniu to zastosowanie wiedzy naukowej do stworzenia czegoś pożytecznego dla człowieka."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Czym jest produkt \"high-tech\"?\n",
|
||||
"Produkt \"high tech\" to taki produkt, który wykorzystuje najnowszą wiedzę naukową i techniczną. \n",
|
||||
"Produkt \"high tech\" wymaga nakładów na badania (*R&D investments*). \n",
|
||||
"\n",
|
||||
"R&D Investments a wartość produktu:\n",
|
||||
"* Low-tech (< 1.0%);\n",
|
||||
"* Medium-low-tech (1.0%-2.5%);\n",
|
||||
"* Medium-high-tech (2.5%-8%); \n",
|
||||
"* High-tech (>8.0%)\n",
|
||||
"\n",
|
||||
"### Cechy produktu \"high-tech\" z punktu widzenia inwestora\n",
|
||||
"Dcydując się na wytworzenie produktu high-tech\", inwestor powinien brać pod uwagę ryzyko wynikające z następujących cech produktów tej kategorii:\n",
|
||||
"* złożoność technologiczna,\n",
|
||||
"* krótki cykl życia (spowodowany wyścigiem technologicznym),\n",
|
||||
"* szybkie starzenie się,\n",
|
||||
"* niewielka liczba klientów w początkowym stadium sprzedaży,\n",
|
||||
"* duże nakłady na R&D,\n",
|
||||
"* niepewności technologiczne.\n",
|
||||
"\n",
|
||||
"### Cechy produktu \"high-tech\" z punktu widzenia klienta\n",
|
||||
"Dcydując się na zakup produktu high-tech\", klient powinien brać pod uwagę ryzyko wynikające z następujących cech produktów tej kategorii:\n",
|
||||
"* dezorientacja klienta (np. jak działa produkt),\n",
|
||||
"* niespełnianie oczekiwań (przez pierwsze wersje),\n",
|
||||
"* duża konkurencja,\n",
|
||||
"* możliwość błyskawicznego upadku rynku,\n",
|
||||
"* spadająca cena produktu,\n",
|
||||
"* szybki wzrost stosunku jakości do ceny.\n",
|
||||
"\n",
|
||||
"### Ocena ryzyka\n",
|
||||
"Na 7 zaawansowanych pomysłów produktu high-tech: \n",
|
||||
"* 4 wchodzą w fazę realizacji,\n",
|
||||
"* 1.5 są uruchamiane,\n",
|
||||
"* 1 odnosi sukces."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# \"Golden Rules\" na odniesienie sukcesu\n",
|
||||
"Aby produkt high-tech miał szanse odnieść sukces na rynku, powinien spełniać przynajmniej kilka z wymienionych poniżej postulatów:\n",
|
||||
"\n",
|
||||
"## 1. \"Zapewnij nowatorską / wyjątkową (\"unique\") funkcję lub cechę\"\n",
|
||||
"* Pomysł musi być nowatorski - a nie skopiowany.\n",
|
||||
"* Taki produkt wymaga R&D...\n",
|
||||
" * A to jest kosztowne i...\n",
|
||||
" * Trudne w konstrukcji.\n",
|
||||
"* Często pomysły chronione są przez patenty.\n",
|
||||
"\n",
|
||||
"\"Nowatorski\" może oznaczać \"nowy model sprzedaży\"\n",
|
||||
"\n",
|
||||
"## 2. \"Popraw wydajność użytkownika\"\n",
|
||||
"Czego oczekujemy od systemu informatycznego:\n",
|
||||
"* Wykonuj wszystko szybciej i taniej:\n",
|
||||
" * Skróć czas nauki\n",
|
||||
" * Automatycznie poprawiaj błędy\n",
|
||||
" * Automatyzuj niektóre kroki\n",
|
||||
"* Dbaj o wygodę użytkowania\n",
|
||||
"* Unikaj:\n",
|
||||
" * Reklam\n",
|
||||
" * Przestojów na płacenie (np. bramek)\n",
|
||||
" * Ogólnie: czynności, ktore pochłaniają czas użytkownika\n",
|
||||
"\n",
|
||||
"## 3. \"Chroń inwestycje użytkownika\"\n",
|
||||
"Zasada ta mówi o tym, aby szanować pieniądze wydane przez użytkownika przed wprowadzeniem naszego rozwiązania. Dotyczy to:\n",
|
||||
"* hardware'u\n",
|
||||
"* software'u\n",
|
||||
"* danych\n",
|
||||
"\n",
|
||||
"Czego oczekujemy od systemu informatycznego:\n",
|
||||
"* Minimalizuj koszty zmian\n",
|
||||
"* Wydłużaj czas życia produktów\n",
|
||||
"* Twórz rozwiązania przenośne\n",
|
||||
"\n",
|
||||
"## 4. \"Minimalizuj koszty awarii lub utraty danych\"\n",
|
||||
"Czego oczekujemy od systemu informatycznego:\n",
|
||||
"* Unikaj przerw w działaniu\n",
|
||||
"* Skracaj czas i zmniejszaj koszty przywrócenia:\n",
|
||||
" * działania\n",
|
||||
" * danych\n",
|
||||
"\n",
|
||||
"## 5. \"Poprawiaj wspólczynnik jakości do ceny\"\n",
|
||||
"Czego oczekujemy od systemu informatycznego:\n",
|
||||
"* Dostarczaj więcej za mniej\n",
|
||||
" * Podwyższaj jakość\n",
|
||||
" * Zmniejszaj cenę\n",
|
||||
" * A najlepiej - obie czynności naraz\n",
|
||||
" \n",
|
||||
"* Jakość (wydajność) przedstawiaj w liczbach\n",
|
||||
" * Gb, 100-punktowa miara jakości\n",
|
||||
" * sekundy...\n",
|
||||
"\n",
|
||||
"## 6. \"Zapewnij elastyczność i skalowalność\"\n",
|
||||
"Rozwiązanie jest **elastyczne**, jeśłi może być stosowane w różnych scenariuszach. \n",
|
||||
"Rozwiązanie jest **skalowalne**, jeśli można je stsosować zarówno dla małych, jak i dużych wielkości danych.\n",
|
||||
"\n",
|
||||
"Czego oczekujemy od systemu informatycznego:\n",
|
||||
"* Umożliwiaj dodawanie / usuwanie funkcji\n",
|
||||
"* Zapewnij użycie w różnych środowiskach\n",
|
||||
"* Zapewnij możliwość stosowania dla większych zbiorów danych\n",
|
||||
"\n",
|
||||
"## 7. \"Zadbaj o atrakcyjny wygląd\"\n",
|
||||
"Rozwiązanie powinno być ładne i ...modne.\n",
|
||||
"\n",
|
||||
"Czego oczekujemy od systemu informatycznego:\n",
|
||||
"* Weź pod uwagę:\n",
|
||||
" * kolorystykę\n",
|
||||
" * kształt\n",
|
||||
" * wykończenie\n",
|
||||
" * prostotę\n",
|
||||
" \n",
|
||||
"## 8. \"Dostarczaj rozrywkę\"\n",
|
||||
"Czego oczekujemy od systemu informatycznego:\n",
|
||||
"* \"Dzieci\" lubią się bawić - dostarczaj zabawę\n",
|
||||
"* Ludzie lubią wyzwania - dostarczaj wyzwania\n",
|
||||
"* Ludzie lubią rywalizację...\n",
|
||||
"* Ludzie mają swoje hobby i upodobania...\n",
|
||||
"* Wszyscy wolą wakacje od pracy... \n",
|
||||
" \n",
|
||||
"## 9. \"Stwórz nową modę\"\n",
|
||||
"Stworzenie nowej mody jest niezwykle trudne i kosztowne. Ale kilku producentom się udało.\n",
|
||||
"Wskazówki:\n",
|
||||
"* Produkt musi być \"osobisty\".\n",
|
||||
"* Musi mieć wygląd określany jako \"cool\".\n",
|
||||
"* Trzeba sprzedawać go drogo...\n",
|
||||
"* ... w niewielkich ilościach...\n",
|
||||
"* ... ale za to robić wokół niego sporo szumu."
|
||||
]
|
||||
}
|
||||
],
|
||||
"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.7.6"
|
||||
},
|
||||
"subtitle": "02. Projekt badawczo-rozwojowy[wykład]",
|
||||
"title": "Przygotowanie do projektu badawczo-rozwojowego",
|
||||
"year": "2021"
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 4
|
||||
}
|
418
materiały na wykład/03_prezentacja_koncepcji_projektu.ipynb
Normal file
418
materiały na wykład/03_prezentacja_koncepcji_projektu.ipynb
Normal file
@ -0,0 +1,418 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Systemy informatyczne</h1>\n",
|
||||
"<h2> 3. <i>Prezentacja koncepcji projektu</i>[wykład]</h2> \n",
|
||||
"<h3> 3. <i>Krzysztof Jassem</i>[wykład]</h3> \n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Inwestorzy\n",
|
||||
"\n",
|
||||
"Opracowanie i rozwój projektu B+R wymaga środków finansowych. Środki finansowe zapewnia *inwestor*, któremu trzeba odpowiednio zaprezentować koncepcję projektu B+R, czyli przekonać go, że poświęcone środki finansowe się zwrócą. \n",
|
||||
"\n",
|
||||
"**Inwestor** to osoba lub instytucja, która przekazuje środki finansowe na przedsięwzięcie, oczekując zwrotu i zysku. \n",
|
||||
"\n",
|
||||
"**Anioł biznesu** to inwestor, który dostarcza początkowe środki finansowe (seed money) na rozpoczęcie biznesu w zamian za część udziałów lub *dług zamienny*. \n",
|
||||
"\n",
|
||||
"**Dług zamienny** to papier wartościowy, który może zostać wymienony na akcje lub udziały firmy. \n",
|
||||
"\n",
|
||||
"**Kapitał wysokiego ryzyka (ang. venture capital)** to kapitał dostarczony dla istniejącej firmy typu start-up, zwykle w przemyśle HT. Kapitał wysokiego ryzyka liczy na zwrot w przypadku wyjścia firmy na giełdę lub jej sprzedaży."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Główne atrybuty produktu HT\n",
|
||||
"Produkt ma wnosić **wartość dodaną**, która spełni **potrzeby klienta** dzięki dobrze przemyślanej **konstrukcji**.\n",
|
||||
"\n",
|
||||
"1. Wartość dodana to zestaw korzyści z punktu widzenia klienta. \n",
|
||||
"\n",
|
||||
"Korzyść może być: \n",
|
||||
" * Funkcjonalna (produkt wykonuje pracę dla klienta) \n",
|
||||
" * Emocjonalna (produkt wpływa pozytywnie na samopoczucie klienta \n",
|
||||
" * Rozwijająca osobowość klienta \n",
|
||||
" * Społeczna (produkt wpływa na poprawę pozycji społecznej klienta) \n",
|
||||
"\n",
|
||||
"2. Spełnienie potrzeby użytkowników\n",
|
||||
">“You can’t just ask customers what they want and then try to give that to them. By the time you get it built, they’ll want something new.” (Steve Jobs)\n",
|
||||
"\n",
|
||||
"Potrzeby użytkowników: \n",
|
||||
" * Wypowiedziane (odczuwane dziś i świadome) - spełniają je przeciętne produkty;\n",
|
||||
" * Ukryte (odczuwane dziś, ale nieświadome) - spełniają je produkty HT;\n",
|
||||
" * Oczekiwane (odczuwane w przyszłości w sposób świadomy) - spełniają je wybitne produkty HT;\n",
|
||||
" * Mające się pojawić (odczuwane w przyszłości w sposób nieświadomy) - spełniają je wizjonerskie produkty HT.\n",
|
||||
"\n",
|
||||
"3. Odpowiednia konstrukcja (design)\n",
|
||||
"Produkt jest odpowiednio skonstruowany, jeśli ma następujące cechy:\n",
|
||||
"* Pożyteczny (rozwiązuje problem lub wykonuje zadania), \n",
|
||||
"* Użyteczny (łatwy w użytku, intuicyjny),\n",
|
||||
"* Pożądany (wywołuje pozytywne emocje, sprawia przyjemność)."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Elevator pitch\n",
|
||||
"**Elevator pitch** to krótka prezentacja, ktorej celem jest zwięzłe i proste omówienie produktu lub przedsięwzięcia. Oczekuje się, że trwa niedłużej niż 2 minuty. \n",
|
||||
"**Jednozdaniowy elevator pitch** to najkrótsza charakterystyka planowanego przedsięwzięcia. Ma postać: "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
" \n",
|
||||
"<p>DLA (określenie klienta docelowego)</p> \n",
|
||||
"<p>KTÓRY (ma potrzebę)</p>\n",
|
||||
"<p>NAZWA NASZEGO PRODUKTU (PRZEDSIĘWZIĘCIA)</p>\n",
|
||||
"<p>TO (typ produktu / przedsięwzięcia)</p> \n",
|
||||
"<p>KTÓRY (ma unikalną cechę)</p> \n",
|
||||
"<p>W PRZECIWIEŃSTWIE (nazwa znanej konkurencji)</p>\n",
|
||||
"<p>MA PRZEWAGĘ (typ przewagi)</p>\n",
|
||||
" \n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<h3>Przykład jednozdaniowego \"elevator pitch\"</h3>\n",
|
||||
" \n",
|
||||
"<p>(DLA) Dla każdej osoby biorącej leki lub suplementy,</p>\n",
|
||||
"<p>(KTÓRA) zwłaszcza dla tych którzy mają tendencje zapominać.</p> \n",
|
||||
"<p>(NAZWA PRODUKTU) Take Your Meds</p>\n",
|
||||
"<p>(TO) to aplikacja mobilna,</p>\n",
|
||||
"<p>(KTÓRA) która zapewni, że bez pomyłek weźmiemy wszystkie leki.</p>\n",
|
||||
"<p>(W PRZECIWIEŃSTWIE) w przeciwieństwie do standardowych powiadomień na telefonie i notatek na kartce,</p>\n",
|
||||
"<p>(MA PRZEWAGĘ) Take Your Meds zapewnia szczegółowe informacje i nie pozwala się pomylić.</p>\n",
|
||||
" \n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Prezentacja dla inwestora\n",
|
||||
"### Reguła 30 / 20 / 10 (Czcionka / Minuty / Slajdy)\n",
|
||||
"Reguła mówi o standardowych oczekiwaniach w stosunku do prezentacji (czyli: stosuj dużą czcionkę, nie gadaj dłużej ani krócej niż 2 minuty na slajd).\n",
|
||||
"### Wzorzec 10 slajdów prezentacji dla inwestora\n",
|
||||
"#### 1. Chwyć za gardło (ang. \\\"Grab\\\")\n",
|
||||
" * Jaki masz pomysł?\n",
|
||||
" * Czym się wyróżniasz pod względem korzyści: \n",
|
||||
" * funkcjonalność, \n",
|
||||
" * spełnienie potrzeby, \n",
|
||||
" * konstrukcja?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<h4>Wskazówki</h4>\n",
|
||||
"\n",
|
||||
"<ul>\n",
|
||||
" \n",
|
||||
"<li>Nie bądź gadatliwy!</li>\n",
|
||||
"<li>Uchwyć uwagę widza!</li>\n",
|
||||
"<li>Jeśli tutaj nie chwycisz widza za gardło, to przepadłeś.</li>\n",
|
||||
" \n",
|
||||
"</ul>\n",
|
||||
" \n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"#### 2. Przedstaw problem\n",
|
||||
" * Dlaczego\n",
|
||||
" * Wasz produkt jest niezbędny?\n",
|
||||
" * ludzie go potrzebują?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<h4>Wskazówka:</h4>\n",
|
||||
" \n",
|
||||
"<ul>\n",
|
||||
" <li> Pamiętaj: nie chodzi o Twój problem, tylko o problem potencjalnego użytkownika! </li>\n",
|
||||
"</ul>\n",
|
||||
" \n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"#### 3. Przedstaw rozwiązanie problemu\n",
|
||||
" * Jak rozwiążecie problem ?\n",
|
||||
" * Kto będzie korzystać z Waszego rozwiązania?\n",
|
||||
" * I jakie będzie miał z tego korzyści?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<h4>Wskazówki:</h4>\n",
|
||||
" \n",
|
||||
"<ul>\n",
|
||||
" <li> Bądź konkretny!</li> \n",
|
||||
" <li> Nie zalewaj! </li> \n",
|
||||
" <li> Nie czaruj!</li> \n",
|
||||
" </ul>\n",
|
||||
" \n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"#### 4. Przedstaw sposób działania\n",
|
||||
"* Jak działa nasze rozwiązanie?\n",
|
||||
"* Co w działaniu jest takiego wyjątkowego? (\\\"magic souce\\\")?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<h4> Wskazówki: </h4>\n",
|
||||
"\n",
|
||||
"<ul>\n",
|
||||
"<li> Przekonaj, że Wasze rozwiązanie jest\n",
|
||||
" <ul>\n",
|
||||
"<li> użyteczne,\n",
|
||||
"<li> funkcjonalne\n",
|
||||
" </ul>\n",
|
||||
"<li> Najlepiej przedstaw działanie wizulanie - np. na schemacie, rysunku, filmie.\n",
|
||||
" </ul>\n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"#### 5. Omów technologię\n",
|
||||
" * Jaka jest konstrukcja (architektura) rozwiązania?\n",
|
||||
" * Co w niej jest takiego wyjątkowego?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<h4>Wskazówki:</h4>\n",
|
||||
" \n",
|
||||
"<ul>\n",
|
||||
"<li> Ponownie możesz przedstawić schemat... </li> \n",
|
||||
"<li> Ale uważaj, żeby nie przesadzić ze szczegółami technicznymi!</li> \n",
|
||||
"</ul>\n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"#### 6. Przedstaw konkurencję\n",
|
||||
" * Jakie produkty / firmy są Waszą konkurencją?\n",
|
||||
" * Co robią inaczej?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<h4> Wskazówka: </h4>\n",
|
||||
" \n",
|
||||
"Wykaż, że jesteście lepsi:\n",
|
||||
"<ul>\n",
|
||||
"<li>jakość,</li>\n",
|
||||
"<li>cena,</li>\n",
|
||||
"<li>funkcjonalność,</li>\n",
|
||||
"<li>użyteczność,</li>\n",
|
||||
"<li>elastyczność.</li>\n",
|
||||
"</ul>\n",
|
||||
"\n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"#### 7. Określ Wasz rynek\n",
|
||||
"**Rynek** to ogół transakcji kupna–sprzedaży danego dobra lub czynnika produkcji. \n",
|
||||
" * Na jaki rynek kierujecie Wasz produkt?\n",
|
||||
" * Jaka jest wartość finansowa rynku dla Waszego produktu?\n",
|
||||
" * Total Available Market - wartość ogólnoświatowego popytu na dany produkt usługę\\,\n",
|
||||
" * Served Available Market - wartość rynku, na którym chcecie działać,\n",
|
||||
" * Target Market - przewidywana wartość rynku Waszych prawdopodobnych nabywców."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
" \n",
|
||||
"<h4> Wskazówki:</h4>\n",
|
||||
"\n",
|
||||
"<ul>\n",
|
||||
" <li>Możecie interpretować powyższe pojęcia w sposób potoczny: </li>\n",
|
||||
"<ul>\n",
|
||||
" <li>TAM - Jak duży jest cały tort?</li>\n",
|
||||
" <li>SAM - Jak duży kawałek tortu jestem w stanie uciąć dla siebie?</li>\n",
|
||||
" <li>TM - Ile jestem w stanie zjeść?</li>\n",
|
||||
"</ul>\n",
|
||||
"<li>Inwestor oczekuje, że potraficie oszacować wartość każdego zasięgu rynku na podstawie wiarygodnych źródeł.</li>\n",
|
||||
" </ul>\n",
|
||||
" \n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"#### 8. Zdefiniuj model biznesowy\n",
|
||||
"**Model biznesowy** to unikatowy przepis na sprzedawanie produktu lub usługi.\n",
|
||||
" * W jaki sposób Wasz pomysł zarobi pieniądze?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
"\n",
|
||||
"<h4> Wskazówka: </h4>\n",
|
||||
"\n",
|
||||
"Wyjaśnij swój pomysł na sprzedaż, np.\n",
|
||||
"<ul>\n",
|
||||
"<li>licencje / sprzedaż jednorazowa,</li>\n",
|
||||
"<li>sprzedaż bezpośrednia / dystrybutorzy,</li>\n",
|
||||
"<li>dochody z reklam,</li>\n",
|
||||
"<li>mechanizmy przyciągnięcia klienta, np. programy lojalnościowe, grywalizacja.</li>\n",
|
||||
" </ul>\n",
|
||||
" \n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"#### 9. Przedstaw prognozę finansową przedsięwzięcia\n",
|
||||
"**Prognoza finansowa** to przewidywana wartość przyszłych wyników finansowych przesięwzięcia uwzględniająca przychody i koszty.\n",
|
||||
" * Jaka jest prognoza finansowa na okres 18 miesięcy - 5 lat?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
"\n",
|
||||
"<h4> Wskazówki: </h4>\n",
|
||||
"<ul>\n",
|
||||
"<li>Udowodnij, że znasz realia lub...dostosuj się do oczekiwań inwestora. </li>\n",
|
||||
"<li>Kiedyś prognozę układało się na 5 lat, a dzisiaj... 5 lat to dłużej niż wieczność. </li>\n",
|
||||
"</ul>\n",
|
||||
" \n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"#### 10. Pochwal się zespołem\n",
|
||||
" * Jakie są kluczowe osoby w Twoim zespole?,\n",
|
||||
" * Skąd pochodzą?\n",
|
||||
" * Jaką wartość wnoszą?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
"\n",
|
||||
"<h4>Wskazówki:</h4>\n",
|
||||
" \n",
|
||||
"<ul>\n",
|
||||
"<li> Można pokazać zdjęcia, jeśli ludzie się na to zgadzają. </li>\n",
|
||||
" <li> Jeśli w zespole jest gwiazda, pozwól jej lśnić. </li>\n",
|
||||
"</ul>\n",
|
||||
" \n",
|
||||
"</div>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"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.7.6"
|
||||
},
|
||||
"subtitle": "03. Prezentacja koncepcji projektu B+R[wykład]",
|
||||
"title": "Przygotowanie do projektu badawczo-rozwojowego",
|
||||
"year": "2021"
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 4
|
||||
}
|
67
materiały na wykład/04_prezentacje_publiczne.ipynb
Normal file
67
materiały na wykład/04_prezentacje_publiczne.ipynb
Normal file
@ -0,0 +1,67 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Projekt badawczo-rozwojowy</h1>\n",
|
||||
"<h2> 4. <i>Publiczne prezentacje projektów</i>[laboratorium]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2021)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Cel laboratorium nr 4\n",
|
||||
"\n",
|
||||
"Celem laboratorium będzie publiczne przedstawienie koncepcji projektu badawczo-rozwojowego."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Plan laboratorium\n",
|
||||
"\n",
|
||||
"Podczas laboratorium poszczególne zespoły studentów przedstawiać będą: jednozdaniowy \"elevator pitch\" oraz prezentację dotyczącą swojego pomysłu. \n",
|
||||
"\n",
|
||||
"Widownią będą studenci wszystkich grup projektowych. Na ocenę prezentacji będą miały wpływ odczucia widowni - zebrane za pomocą ankiet.\n",
|
||||
"\n",
|
||||
"Maksymalna ocena: 30 punktów"
|
||||
]
|
||||
}
|
||||
],
|
||||
"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": "01. Prezentacje publiczne[laboratorium]",
|
||||
"title": "Projekt badawczo-rozwojowy",
|
||||
"year": "2021"
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 4
|
||||
}
|
@ -6,9 +6,9 @@
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Przygotowanie do projektu badawczo-rozwojowego</h1>\n",
|
||||
"<h1> Systemy informatyczne</h1>\n",
|
||||
"<h2> 5. <i>Metodyki adaptacyjne w programowaniu</i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2021)</h3>\n",
|
||||
"<h3>Krzysztof Jassem (2022)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
@ -611,7 +611,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.5"
|
||||
"version": "3.7.6"
|
||||
},
|
||||
"subtitle": "05. Metodologia Prince2Agile[wykład]",
|
||||
"title": "Przygotowanie do projektu badawczo-rozwojowego",
|
||||
|
@ -6,9 +6,9 @@
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Przygotowanie do projektu badawczo-rozwojowego</h1>\n",
|
||||
"<h1> Systemy informatyczne</h1>\n",
|
||||
"<h2> 6. <i>Prototypowanie i ciągła integracja</i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2021)</h3>\n",
|
||||
"<h3>Krzysztof Jassem (2022)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
@ -468,7 +468,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.5"
|
||||
"version": "3.7.6"
|
||||
},
|
||||
"subtitle": "06. Prototypowanie i ciągła integracja[wykład]",
|
||||
"title": "Przygotowanie do projektu badawczo-rozwojowego",
|
||||
|
@ -6,9 +6,9 @@
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Przygotowanie do projektu badawczo-rozwojowego</h1>\n",
|
||||
"<h1> Systemy informatyczne</h1>\n",
|
||||
"<h2> 7. <i>Specyfikacja projektu informatycznego</i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2021)</h3>\n",
|
||||
"<h3>Krzysztof Jassem (2022)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
@ -170,7 +170,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -203,7 +202,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -219,7 +217,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -247,7 +244,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -280,7 +276,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -318,7 +313,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -333,7 +327,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -346,7 +339,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -360,7 +352,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -375,7 +366,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -408,7 +398,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -434,7 +423,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -468,7 +456,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.5"
|
||||
"version": "3.7.6"
|
||||
},
|
||||
"subtitle": "07. Specyfikacja projektu informatycznego[wykład]",
|
||||
"title": "Przygotowanie do projektu badawczo-rozwojowego",
|
||||
|
@ -6,9 +6,9 @@
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Przygotowanie do projektu badawczo-rozwojowego</h1>\n",
|
||||
"<h1> Systemy informatyczne</h1>\n",
|
||||
"<h2> 8. <i>Testowanie w programowaniu zwinnym</i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2021)</h3>\n",
|
||||
"<h3>Krzysztof Jassem (2022)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
@ -463,7 +463,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.5"
|
||||
"version": "3.7.6"
|
||||
},
|
||||
"subtitle": "08. Testowanie w programowaniu zwinnym[wykład]",
|
||||
"title": "Przygotowanie do projektu badawczo-rozwojowego",
|
||||
|
@ -6,9 +6,9 @@
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Przygotowanie do projektu badawczo-rozwojowego</h1>\n",
|
||||
"<h1> Systemy informatyczne</h1>\n",
|
||||
"<h2> 9. <i>Testowanie systemowe i akceptacyjne</i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2021)</h3>\n",
|
||||
"<h3>Krzysztof Jassem (2022)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
@ -148,7 +148,6 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
@ -444,7 +443,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.5"
|
||||
"version": "3.7.6"
|
||||
},
|
||||
"subtitle": "09. Testowanie integracyjne i systemowe[wykład]",
|
||||
"title": "Przygotowanie do projektu badawczo-rozwojowego",
|
||||
|
@ -6,9 +6,9 @@
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Przygotowanie do projektu badawczo-rozwojowego</h1>\n",
|
||||
"<h1> Systemy informatyczne</h1>\n",
|
||||
"<h2> 11. <i>Aspekty użyteczności</i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2021)</h3>\n",
|
||||
"<h3>Krzysztof Jassem (2022)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
@ -681,7 +681,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.5"
|
||||
"version": "3.7.6"
|
||||
},
|
||||
"subtitle": "11. Aspekty użyteczności[wykład]",
|
||||
"title": "Przygotowanie do projektu badawczo-rozwojowego",
|
561
materiały na wykład/11_wybrane_zagadnienia_użyteczności.ipynb
Normal file
561
materiały na wykład/11_wybrane_zagadnienia_użyteczności.ipynb
Normal file
@ -0,0 +1,561 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Systemy informatyczne</h1>\n",
|
||||
"<h2> 10. <i>Wybrane zagadnienia użyteczności</i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2021)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# 1. Pojęcie użyteczności"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
" \n",
|
||||
"<h3>Użyteczność</h3> \n",
|
||||
"\n",
|
||||
"Użyteczność narzędzia: łatwość, z jaką ludzie potrafią korzystać z tego narzędzia w celu osiągnięcia określonego celu.\n",
|
||||
"\n",
|
||||
"<h3> Cechy aplikacji użytecznej </h3>\n",
|
||||
" \n",
|
||||
"<ul>\n",
|
||||
"<li> Łatwa do nauki: Jak łatwo jest użytkownikom wykonać dane zadanie po raz pierwszy?\n",
|
||||
"<li> Wydajna w pracy: Jak szybko użytkownicy wykonują zadania, gdy już się nauczyli programu?\n",
|
||||
"<li> Satysfakcja: Czy korzystanie z programu daje satysfakcję?\n",
|
||||
"<li> Odporna na błędy: Ile błędów robią użytkownicy, jak poważne są to błędy i jak łatwo z nich się wydostać?\n",
|
||||
"<li> Zapamiętywalna po czasie: Jak łatwo powrócić do biegłości użytkowania po pewnym okresie nieużytkowania programu?\n",
|
||||
"\n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# 2. Wskazówki do tworzenia użytecznej aplikacji"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 2.1. Klasyka w oparciu o \"Don't make me think\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
" \n",
|
||||
"<a href=\"https://www.uxbooth.com/articles/10-usability-lessons-from-steve-krugs-dont-make-me-think/\">Przeczytaj w Internecie</a>\n",
|
||||
"\n",
|
||||
"<ol> \n",
|
||||
" \n",
|
||||
"<li> Usability Means… </li>\n",
|
||||
"\n",
|
||||
"<li>Web applications should explain themselves. </li>\n",
|
||||
"\n",
|
||||
"<li>Don’t Make Me Think </li>\n",
|
||||
"\n",
|
||||
"<li>Don’t waste my time </li>\n",
|
||||
" \n",
|
||||
"<li> Users still cling to their back buttons </li>\n",
|
||||
"\n",
|
||||
"<li> We’re creatures of habit </li>\n",
|
||||
"\n",
|
||||
"<li> No Time for Small Talk </li>\n",
|
||||
"\n",
|
||||
"<li> Don’t lose search </li>\n",
|
||||
"\n",
|
||||
"<li> We form mental site-maps </li>\n",
|
||||
"\n",
|
||||
"<li> Make it easy to go home </li>\n",
|
||||
" \n",
|
||||
"</ol>\n",
|
||||
"\n",
|
||||
"<div>\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 2.2. Podejście (bardziej) współczesne"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
" \n",
|
||||
"<h3>Wskazówki do tworzenia użytecznego systemu informatycznego</h3> \n",
|
||||
"\n",
|
||||
"<ol>\n",
|
||||
"<li> Autorze: Poznaj użytkownika, a TY nie jesteś użytkownikiem. </li> \n",
|
||||
" <li> Użytkownik powinien mieć kontrolę nad systemem, a nie odwrotnie: to użytkownik jest szefem i system powinien to okazywać. </li> \n",
|
||||
" <li> System musi ułatwiać użytkownikowi życie:</li>\n",
|
||||
" <ul>\n",
|
||||
" <li> Elementy, które wyglądają tak samo, powinny działać tak samo, a akcje, które nie działają tak samo powinny być inaczej reprezentowane. </li>\n",
|
||||
" <li> Każda akcja użytkownika powinna mieć reakcję programu. </li>\n",
|
||||
" <li> Kiedy użytkownik ma do podjęcia decyzję, system podaje mu całą dostępną informację. </li>\n",
|
||||
" </ul> \n",
|
||||
" <li> System musi być \"idioto-odporny\": </li>\n",
|
||||
" <ul>\n",
|
||||
" <li> Każdy robi błędy, więc każdy błąd powinien dać się naprawić. </li>\n",
|
||||
" <li> Gdy użytkownik zrobi błąd, System daje mu o tym znać, zanim … wpadnie w PRAWDZIWE kłopoty. </li>\n",
|
||||
" <li> Informacje o błędach powinny być zrozumiałe dla użytkownika i mówić mu, jak naprawić problem. </li>\n",
|
||||
" </ul> \n",
|
||||
" <li> Wczuj się w użytkownika </li>\n",
|
||||
" <ul>\n",
|
||||
" <li> Eliminuj niepotrzebne decyzje (nie pytaj, jak nie musisz). </li>\n",
|
||||
" <li> Im mniej kroków do celu, tym lepiej.</li> \n",
|
||||
" <li> Użytkownik powinien zawsze móc dowiedzieć się, co robić dalej. </li>\n",
|
||||
" <li> Użytkownik powinien zawsze wiedzieć, co się dzieje.\n",
|
||||
" </ul>\n",
|
||||
" </ol>\n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 3. Zasady dobrej nawigacji na portalu internetowym\n",
|
||||
"### 3.1. Pojęcie nawigacji"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
" \n",
|
||||
"<b> Nawigacja </b> to stały, niezmieniający się zestaw elementów w serwisie ułatwiający poruszanie się na niej.\n",
|
||||
" \n",
|
||||
"Najczęściej stosowanymi elementami nawigacji są: \n",
|
||||
"<ul>\n",
|
||||
"<li> Menu główne </li>\n",
|
||||
"<li> Menu narzędziowe </li>\n",
|
||||
"<li> Identyfikator witryny </li>\n",
|
||||
"<li> Wyszukiwarka </li>\n",
|
||||
"<li> Odsyłacz do strony startowej (zawarty w logo) </li>\n",
|
||||
"<li> Flagi narodowe (przełączenie języków) </li>\n",
|
||||
"</ul>\n",
|
||||
"\n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 3.2. Cechy dobrej nawigacji"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
" * Szybkie przechodzenie po różnych elementach serwisu.\n",
|
||||
" * Łatwe prowadzenie użytkownika do poszukiwanej informacji. \n",
|
||||
" * Klarowność: użytkownik wie gdzie jest, gdzie może się skierować, jak wrócić, a także posiada informacje o odwiedzonych miejscach. \n",
|
||||
" * Oszczędność: główne menu witryny nie powinno zawierać zbyt wielu elementów (między 5 a 9)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 3.3. Zasady użytecznej nawigacji"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Zasada 1. Widoczność\n",
|
||||
"Wszystkie elementy nawigacji muszą być bardzo dobrze widoczne na każdej stronie i podstronie serwisu."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Zasada 2. Przewidywalność\n",
|
||||
" * Nazwy elementów menu powinny pozwalać na przewidzenie zawartości\n",
|
||||
" * Elementy menu powinny informować użytkownika o całej zawartości witryny.\n",
|
||||
" * Odwiedzone linki powinny być oznaczone innym kolorem niż nieodwiedzone. "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Zasada 3. Łatwość orientacji w strukturze serwisu\n",
|
||||
"* Powinno się stosować różne style wyróżnienia jego elementów:\n",
|
||||
" * dla całej kategorii, na której aktualnie znajduje się kursor (np. Aktualności),\n",
|
||||
" * dla pozycji w menu, z której aktualnie korzysta użytkownik (np. Publikacje zagraniczne),\n",
|
||||
" * dla pozostałych elementów serwisu."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Zasada 4. Zasada odwróconej piramidy\n",
|
||||
" * Na najwyższym poziomie należy umieścić kategorie najbardziej ogólne, a następnie przechodzić do podziału bardziej szczegółowego. \n",
|
||||
" * Na tym samym poziomie powinny znajdować się kategorie o tym samym stopniu szczegółowości."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Zasada 5. Właściwe nazewnictwo\n",
|
||||
" * Wykluczający podział etykiet menu: \n",
|
||||
" * dana pozycja w menu może należeć tylko do jednej kategorii.\n",
|
||||
" * Proste nazewnictwo: \n",
|
||||
" * etykiety powinno formułować się w języku zrozumiałym dla użytkownika,\n",
|
||||
" * powinno unikać się specjalistycznego słownictwa.\n",
|
||||
" * Unikalne nazwy: \n",
|
||||
" * dana nazwa powinna pojawiać się w serwisie internetowym nie więcej niż raz,\n",
|
||||
" * każda strona powinna mieć swoja nazwę.\n",
|
||||
" * Nazwa strony musi być dobrze widoczna:\n",
|
||||
" * nazwa strony musi być w dobrze umiejscowiona i wyróżniona za pomocą rozmiaru i koloru czcionki.\n",
|
||||
" * Nazwa strony lub podstrony musi być zgodna z nazwą odsyłacza, który do niej prowadzi."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Zasada 6. Spójność w wyglądzie i działaniu elementów nawigacyjnych\n",
|
||||
"* Należy stosować te same konwencje w obrębie całego menu. \n",
|
||||
"* Elementy pierwszego poziomu powinny pozostawać niezmienne w trakcie korzystania z całego serwisu internetowego. \n",
|
||||
"* Wszystkie pozycje w menu powinny funkcjonować na tej samej zasadzie. \n",
|
||||
"* Przy formułowaniu nazw w menu należy w każdym przypadku stosować tę samą formę gramatyczną.\n",
|
||||
"* Pozycje menu należące do jednego poziomu powinny być sformatowane w jednym stylu."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# 4. Metody badania użyteczności"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 4.1. Automatyczne metody badania użyteczności"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Badanie współczynnika konwersji\n",
|
||||
"**Współczynnik konwersji** wskazuje, jaka część internautów odwiedzających daną stronę dokonała pożądanej akcji np.\n",
|
||||
" * Dokonała zakupu\n",
|
||||
" * Wypełniła formularz\n",
|
||||
" * Wysłała maila na wskazany adres\n",
|
||||
" * Zarejestrowała się do systemu\n",
|
||||
" * Pobrała software"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Testy A/B (testy porównawcze)\n",
|
||||
"* Metoda polega na porównaniu dwóch wersji tej samej aplikacji.\n",
|
||||
"* Najczęściej stosowana jest do stron internetowych.\n",
|
||||
"* Różnicę (postęp lub regres) między wersjami wyznacza się poprzez porównanie wartości pewnej miary, np. współczynnika konwersji dla stron internetowych. \n",
|
||||
"\n",
|
||||
"[Przeczytaj w Internecie](https://www.optimizely.com/ab-testing/)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Analityka ruchu na portalu internetowym\n",
|
||||
"Metoda polega na obserwacji dotyczących ruchu na witrynie, takich jak:\n",
|
||||
" * Wskaźnik odrzuceń – procentowa wartość osób, które opuściły stronę wejściową serwisu bez wykonania żadnej akcji\n",
|
||||
" * Wskaźnik porzuceń – wskaźnik analogiczny dla podstron danego serwisu,\n",
|
||||
"Metoda wskazuje działania użytkownika – nie wskazuje jego przyczyn. \n",
|
||||
"\n",
|
||||
"Przykładowa witryna: \n",
|
||||
"https://www.google.com/analytics/"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Click-tracking\n",
|
||||
"\n",
|
||||
"Metoda dostarcza informacji o poszczególnych elementach strony za pomocą następujących typów informacji\n",
|
||||
" * Heat maps. \n",
|
||||
" * Wskazują, w jakie miejsca na stronie ludzie klikają (see what’s hot and what’s not).\n",
|
||||
" * Confetti\n",
|
||||
" * Analiza kliknięć: jak klikały poszczególne grupy użytkowników i w poszukiwaniu czego.\n",
|
||||
" * Scrollmap\n",
|
||||
" * Analiza, jak daleko w dół strony użytkownicy przewijają stronę – pozwala przeanalizować miejsca, w których strona jest najczęściej porzucana.\n",
|
||||
" * Overlay report\n",
|
||||
" * Liczba kliknięć na poszczególne elementy strony.\n",
|
||||
"\n",
|
||||
"Przykładowy dostawca: \n",
|
||||
"http://www.crazyegg.com"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Analiza kontrastu\n",
|
||||
"\n",
|
||||
"Dostarcza informacji o kontraście pomiędzy elementami strony, co jest szczególnie istotne dla osób z upośledzeniem wzroku.\n",
|
||||
"\n",
|
||||
"* Przykładowy adres\n",
|
||||
" * https://webaim.org/resources/contrastchecker/\n",
|
||||
" * Można wpisać adres strony, która ma zostać przeanalizowana pod względem kontrastu – otrzymuje się pełen raport."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 4.2. Metody z udziałem użytkowników\n",
|
||||
"\n",
|
||||
"W metodach z udziałem użytkowników można posłużyć się zastosowaniem *persony*, w celu optymalizacji kosztów badania.\n",
|
||||
" * **Persona** to fikcyjna postać stworzona by reprezentować typy użytkowników (demograficzne i technograficzne).\n",
|
||||
" * Persony to inaczej archetypy grup użytkowników i ich potrzeb. Dzięki personom cała populacja docelowa reprezentowana jest przez kilka konceptów.\n",
|
||||
" > Przykład persony: Jan Kowalski, lat 37, elektryk, mieszkaniec Ząbkowic Śląskich\n",
|
||||
" \n",
|
||||
" Przykładowy proces testowania użyteczności z udziałem użytkowników:\n",
|
||||
" 1. Określ grupy użytkowników np. przy użyciu persony (co najmniej jedna persona na grupę).\n",
|
||||
" 2. Dla każdej persony utwórz potencjalny scenariusz użycia – w jaki sposób dana persona chce korzystać z systemu.\n",
|
||||
" 3. Dla każdej persony zorganizuj użytkowników reprezentatywnych (minimum jednego użytkownika dla persony).\n",
|
||||
" 4. Poproś ich o wykonanie zadań charakterystycznych dla danej persony.\n",
|
||||
" 5. Obserwuj lub nagrywaj działania użytkowników: gdzie im się powodzi, a gdzie mają trudności.\n",
|
||||
" 6. Potencjalnie poproś użytkowników o wypełnienie ankiet.\n",
|
||||
"\n",
|
||||
"Wyróżniamy następujące typy metod z udziałem użytkowników:\n",
|
||||
" * podgląd sesji użytkowników.\n",
|
||||
" * obserwacja użytkownika,\n",
|
||||
" * metoda wywiadu."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Podgląd sesji użytkowników\n",
|
||||
"* Działalność użytkownika jest „nagrywana”.\n",
|
||||
"* Autor oprogramowania może odtworzyć działania użytkownika z perspektywy użytkownika.\n",
|
||||
"* Każde kliknięcie, poruszenie myszą, przesunięcie kursora zostaje zapisane."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Obserwacja użytkownika\n",
|
||||
"* Działalność użytkownika jest obserwowana.\n",
|
||||
"* Obserwator zapisuje poczynania użytkownika.\n",
|
||||
"* Obserwacje są analizowane w celu ulepszenia użyteczności aplikacji."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Metoda wywiadu\n",
|
||||
" * Sposoby przeprowadzenia wywiadu:\n",
|
||||
" * Analiza celów użytkowników i wykonywania przez nich zadań,\n",
|
||||
" * Dyskusja prowadzona przez moderatora,\n",
|
||||
" * Wypełnienie ankiet / kwestionariuszy."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# 5. Raport badania użyteczności\n",
|
||||
"Raport badania użyteczności to sprawozdanie z badania użyteczności aplikacji, w którym wskazuje się **obszary problemowe**.\n",
|
||||
"Przykładowo raport użytecznści może składać się z następujących części:\n",
|
||||
"1. Informacje wstępne\n",
|
||||
"2. Metodologia badania\n",
|
||||
"3. Obszary problemowe\n",
|
||||
"4. Dodatki"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 5.1. Informacje wstępne\n",
|
||||
"Ta część zawiera ogólne informacje o prowadzonym badaniu, np. :\n",
|
||||
" * Daty tworzenia raportu\n",
|
||||
" * Harmonogram prowadzenia badań\n",
|
||||
" * Odwołanie do standardów badania użyteczności\n",
|
||||
" * Autorzy raportu"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 5.2. Metodologia badania\n",
|
||||
"Opis tej części zależy od przejętej metody badania. Przykładowo, dla metody wywiadu część ta może mieć następującą postać:\n",
|
||||
"\n",
|
||||
"### 5.2.1. Zakres badania\n",
|
||||
" * Określenie zakresu projektowego: badanie gotowego produktu, czy ocena prototypu,\n",
|
||||
" * Określenie celu, np., wskazanie wyłącznie błędów w systemie, czy również wskazanie proponowanych ulepszeń,\n",
|
||||
" * Określenie zastosowanej metody badania użyteczności.\n",
|
||||
"\n",
|
||||
"### 5.2.2. Profile użytkowników\n",
|
||||
" * Określenie kilku segmentów odbiorców pod względem:\n",
|
||||
" * Danych demograficznych\n",
|
||||
" * Doświadczenia z programami podobnymi (wcześniejszymi wersjami systemu)\n",
|
||||
" * Oczekiwań względem systemu\n",
|
||||
"\n",
|
||||
"### 5.2.3. Grupa badawcza\n",
|
||||
" * Określenie liczebności grupy badawczej (około 5 osób)\n",
|
||||
" * Określenie charakterystyki grupy badawczej pod względem różnych kryteriów , np.\n",
|
||||
" * płeć, \n",
|
||||
" * wiek, \n",
|
||||
" * miejsce zamieszkania, \n",
|
||||
" * wykształcenie, \n",
|
||||
" * zawód, \n",
|
||||
" * wielkość firmy, \n",
|
||||
" * branża, \n",
|
||||
" * obsługa komputera, \n",
|
||||
" * doświadczenie z podobnymi programami, itp.\n",
|
||||
" * Liczebność i charakterystykę grupy badawczej można zobrazować za pomocą wykresów.\n",
|
||||
"\n",
|
||||
"### 5.2.4. Scenariusz badania\n",
|
||||
"W tej części należy opisać, jak będzie przebiegać scenariusz badania.\n",
|
||||
"Przykładowy scenariusz badania w metodzie wywiadu:\n",
|
||||
"1. Omówienie zadań i sposobu wypełniania kwestionariusza\n",
|
||||
"2. Podanie informacji o regulaminie przeprowadzenia testu wykonania zadań\n",
|
||||
"3. Test wykonania zadań\n",
|
||||
"4. Wypełnienie przygotowanego kwestionariusza przez użytkowników\n",
|
||||
"\n",
|
||||
"### 5.2.5. Lista zadań do wykonania przez użytkowników\n",
|
||||
"W tej częścI dla każdego zadania należy podać kryterium pomyślnego ukończenia zadania. Lista zadań może być podana w postaci tabelki:\n",
|
||||
" * Opis zadania\n",
|
||||
" * Kryterium ukończenia zadania\n",
|
||||
"\n",
|
||||
"### 5.2.6. Ocena wykonania zadań \n",
|
||||
"W tej części należy ocenić, jak badani wykonali zadania.\n",
|
||||
"Przykładowa ocena wykonania zadań:\n",
|
||||
" * Liczba błędów krytycznych użytkownika\n",
|
||||
" * Liczba błędów niekrytycznych użytkownika\n",
|
||||
" * Liczba zadań wykonanych zgodnie z założeniami\n",
|
||||
" * Liczba zdań niewykonanych zgodnie z założeniami\n",
|
||||
" * Czas wykonania zadań\n",
|
||||
"\n",
|
||||
"Ten etap raportu można zakończyć wykresami."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 5.3. Obszary problemowe\n",
|
||||
"Obszary problemowe to **wnioski** z badania użyteczności.\n",
|
||||
" * W tej częśći raportu określone zostają obszary problemowe (składowe systemu, które sprawiają kłopoty).\n",
|
||||
" * Dla każdego obszaru problemowego określa się zestaw problemów użytkowania.\n",
|
||||
" * Problem użytkowania składa się z:\n",
|
||||
" * Tytułu problemu,\n",
|
||||
" * Opisu problemu,\n",
|
||||
" * Jeśli problemem jest zbyt długi czas wykonania zadania, to można podać średnie czasy rozwiązania,\n",
|
||||
" * Filmiku wideo (jeśli takim dysponujemy),\n",
|
||||
" * Rekomendacji rozwiązania problemu,\n",
|
||||
" * Opisu proponowanego scenariusza działania użytkownika po rozwiązaniu problemu."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 5.4. Dodatki\n",
|
||||
"W tej części raportu składamy materiały pomocnicze, np.\n",
|
||||
" ### 5.4.1. Ankieta\n",
|
||||
"\n",
|
||||
"W ankiecie mogą znaleźć się przykładowe pytania:\n",
|
||||
" * Jak ocenia Pan/Pani trudność poszczególnych zadań?\n",
|
||||
" * Co sprawiło Panu/Pani największy problem podczas testów?\n",
|
||||
" * Jakie inne funkcjonalności byłyby pożyteczne (wskazać listę do wyboru)?\n",
|
||||
" * Jakie elementy systemu były niezrozumiałe?\n",
|
||||
"\n",
|
||||
" Wyniki ankiety potestowej możemy przedstawić na wykresach.\n",
|
||||
" \n",
|
||||
"### 5.4.2. Inne materiały pomocnicze\n",
|
||||
"Przykładowe materiały pomocnicze:\n",
|
||||
" * Lista filmów video ilustrujących błędy użyteczności aplikacji,\n",
|
||||
" * Wnioski i rekomendacje ekspertów użyteczności,\n",
|
||||
" * Inne materiały w zależności od zastosowanej metody badawczej."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Podsumowanie wykładu\n",
|
||||
"1. Tworząc aplikację, myśl przede wszystkim o jej użyteczności, a potem dopiero o jej funkcjonalności.\n",
|
||||
"2. O sukcesie aplikacji stanowi pomysł, a nie wielość funkcji.\n",
|
||||
"3. Zawsze (!) pamiętaj o wskazówkach użyteczności.\n",
|
||||
"4. Tworząc portal internetowy, stosuj zasady dobrej nawigacji.\n",
|
||||
"5. Przekonaj się, jak Twój program jest używany – wykonaj badanie użyteczności."
|
||||
]
|
||||
}
|
||||
],
|
||||
"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.7.6"
|
||||
},
|
||||
"subtitle": "10. Wybrane zagadnienia użyteczności[wykład]",
|
||||
"title": "Przygotowanie do projektu badawczo-rozwojowego",
|
||||
"year": "2021"
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 4
|
||||
}
|
@ -6,9 +6,9 @@
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Przygotowanie do projektu badawczo-rozwojowego</h1>\n",
|
||||
"<h2> 11. Ocena jakości systemu informatycznego</i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2021)</h3>\n",
|
||||
"<h1> Systemy informatyczne</h1>\n",
|
||||
"<h2> 12. Ocena jakości systemu informatycznego</i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2022)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
@ -615,7 +615,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.5"
|
||||
"version": "3.7.6"
|
||||
},
|
||||
"subtitle": "12. Ocena jakości systemu informatycznego[wykład]",
|
||||
"title": "Przygotowanie do projektu badawczo-rozwojowego",
|
@ -0,0 +1,739 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Systemy informatyczne</h1>\n",
|
||||
"<h2> 13. <i>Planowanie prac badawczo-rozwojowych</i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2022)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
" \n",
|
||||
"<h3>Harmonogram projektu</h3> \n",
|
||||
" \n",
|
||||
"Harmonogram projektu to plan uzyskania celów projektu uwzględniający:\n",
|
||||
"<ul>\n",
|
||||
" <li> podział pracy na etapy i zadania,</li>\n",
|
||||
" <li> przydział zasobów do zadań,</li>\n",
|
||||
" <li> terminy wykonania zadań.</li>\n",
|
||||
"</ul>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# 1. Zasady planowania harmonogramu"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 1.1. Bierz pod uwagę ograniczenia"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
"<h3>Ograniczenia</h3> \n",
|
||||
" \n",
|
||||
"Ograniczenia to czynniki, które wpływają na realizację harmonogramu.\n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Rodzaje ograniczeń:\n",
|
||||
"Wyróżniamy następujace typy ograniczeń:\n",
|
||||
" * Ograniczenia czasowe\n",
|
||||
" * Ograniczenia techniczne\n",
|
||||
" * Ograniczenia organizacyjne "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Ograniczenia czasowe\n",
|
||||
"**Ograniczenie czasowe** to ramy czasowe, w których musi się zmieścić projekt lub jego etap.\n",
|
||||
"\n",
|
||||
"* Rodzaje ograniczeń czasowych:\n",
|
||||
" * Nie wcześniej niż,\n",
|
||||
" * Nie później niż,\n",
|
||||
" * W konkretnym dniu.\n",
|
||||
"\n",
|
||||
"* Przykłady ograniczeń czasowych:\n",
|
||||
" * wykonanie pewnego zadania jest uwarunkowane ukończeniem innego zadania,\n",
|
||||
" * projekt ma być zakończony w określonym terminie.\n",
|
||||
" \n",
|
||||
"* Wskazówki: jak radzić sobie z ograniczaniami czasowymi?\n",
|
||||
" * Ustawiać zależności między zadaniami\n",
|
||||
" * Ustawiać hamronogram \"od końca\"."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Ograniczenia techniczne\n",
|
||||
"**Ograniczenie techniczne** to ograniczenia wynikające z przyczyn zewnętrznych, niezależnych od zespołu projektowego.\n",
|
||||
"\n",
|
||||
"* Przykłady ograniczeń technicznych:\n",
|
||||
" * termin dostawy sprzętu,\n",
|
||||
" * załamanie pogody,\n",
|
||||
" * pandemia,\n",
|
||||
" * współpraca z podmiotami zewnętrznymi.\n",
|
||||
" \n",
|
||||
"* Wskazówki: jak radzić sobie z ograniczeniami technicznymi?\n",
|
||||
"\n",
|
||||
" * Ustawiać zależność ZR (Zakończenie Rozpoczęcie) dla zadań zależnych od innych przedsiębiorstw,\n",
|
||||
" * Dodawać do zadań odstępy czasowe,\n",
|
||||
" * Dodawać rezerwę kierowniczą."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Ograniczenia organizacyjne\n",
|
||||
"**Ograniczenia organizacyjne** to ograniczenia wynikające z zależności pomiędzy kilkoma projektami realizowanymi:\n",
|
||||
" * w jednym zespole,\n",
|
||||
" * przez daną osobę, \n",
|
||||
" * z wykorzystaniem tych samych zasobów.\n",
|
||||
"\n",
|
||||
" * Wskazówki: jak radzić sobie z ograniczeniami organizacyjnymi?\n",
|
||||
" * Odpowiednio zarządzać zasobami: technicznymi i ludzkimi,\n",
|
||||
" * Współdzielić zasoby między projektami,\n",
|
||||
" * Ustawiać indywidualne czasy pracy."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 1.2. Zarządzaj zapasem czasu"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
"<h3>Zapas czasu</h3> \n",
|
||||
" \n",
|
||||
"<b> Zapas czasu </b> to czas, o który może opóźnić się realizacja zadania, nie wpływając na termin ukończenia projektu.\n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
" \n",
|
||||
"<h3>Ścieżka krytyczna</h3> \n",
|
||||
" \n",
|
||||
"<b> Ścieżka krytyczna </b> to sekwencja zadań od rozpoczęcia do zakończenia projektu, której czas przejścia jest najdłuższy.\n",
|
||||
"\n",
|
||||
"Zadania na ścieżce krytycznej mają zerowy zapas czasu.\n",
|
||||
"\n",
|
||||
"<figure> \n",
|
||||
"<img src=\"obrazy/ścieżka krytyczna.png\" alt=\"Przykład ścieżki krytycznej\" width=500px>\n",
|
||||
"<figcaption> Przykład ścieżki krytycznej </figcaption>\n",
|
||||
"</figure>\n",
|
||||
"\n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"**Zarządzanie zapasem czasu** może polegać na:\n",
|
||||
"\n",
|
||||
" * dodawaniu zapasu czasu do zadań obarczonych ryzykiem,\n",
|
||||
" * dodawaniu zapasu czasu z powodów ograniczeń technicznych lub organizacyjnych, \n",
|
||||
" * zmniejszaniu zapasu czasu (dla zadań leżących poza ścieżką krytyczną),\n",
|
||||
" * analizie (i ew. modyfikacji) zadań leżących na ścieżce krytycznej."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 1.3. Zarządzaj rezerwą kierowniczą\n",
|
||||
"**Rezerwa kierownicza** to fikcyjne zadanie dodane na końcu siatki zadań. Czas na jego realizację to około 10-15% czasu całego projektu.\n",
|
||||
" * Rezerwę kierowniczą dodajemy po stworzeniu całości harmonogramu.\n",
|
||||
" * Tworząc rezerwę pomocniczą, pamiętaj o prawie Parkinsona."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
"<h3>Prawo Parkinsona</h3> \n",
|
||||
" \n",
|
||||
"Praca będzie się rozrastać, aby wypełnić cały czas na nią przewidziany.\n",
|
||||
"\n",
|
||||
"<figure> \n",
|
||||
"<img src=\"obrazy/prawo Parkinsona.png\" alt=\"Prawo Parkinsona\" width=500px>\n",
|
||||
"<figcaption> Prawo Parkinsona, źródło: https://www.timeflies.us/blog/what-is-parkinson-s-law-and-how-it-can-make-you-more-productive</figcaption>\n",
|
||||
"</figure>\n",
|
||||
"\n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# 2. Struktura podziału pracy"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
"<h3>Struktura Podziału Pracy</h3> \n",
|
||||
" \n",
|
||||
"Struktura Podziału Pracy to hierarchiczna reprezentacja podziału pracy w projekcie.\n",
|
||||
"\n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
" * Wykonanie prac w projekcie podzielone jest na **etapy**. \n",
|
||||
" * Etap jest częścią projektu, która musi być dokończona przed zaczęciem następnej. Etap składa się z **zadań**.\n",
|
||||
" * Zadania mogą być wykonywane równolegle.\n",
|
||||
" * Zadania mogą zostać podzielone na **podzadania**. \n",
|
||||
" \n",
|
||||
" * Elementy Struktury Podziału Pracy a efekty pracy: \n",
|
||||
" * Etap – efekt jest widoczny dla klienta,\n",
|
||||
" * Zadanie – efekt jest widoczny dla kierownika,\n",
|
||||
" * Podzadanie – efekt jest widoczny dla programisty.\n",
|
||||
" \n",
|
||||
"<figure> \n",
|
||||
"<img src=\"obrazy/SPP.jfif\" alt=\"Struktura Podziału Pracy\" width=600px>\n",
|
||||
"<figcaption> Struktura Podziału Pracy, źródło: http://pm2pm.pl/slownik-project-managera-wbs/</figcaption>\n",
|
||||
"</figure>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-info alert-success\">\n",
|
||||
"<h3>Zasada 8 - 80</h3>\n",
|
||||
"Wykonanie najmniejszej jednostki harmonogramu powinno zajmować między 8 a 80 godzin.\n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# 3. Tworzenie harmonogramu w programie MS-Project"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 3.1. Ustawienie daty początku projektu\n",
|
||||
"<br> </br> \n",
|
||||
"<figure> \n",
|
||||
"<img src=\"obrazy/ustawienie daty.png\" alt=\"Ustawienie daty\" width=300px>\n",
|
||||
"<figcaption> Ustawienie daty początku projektu</figcaption>\n",
|
||||
"</figure>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 3.2. Stworzenie Struktury Podziału Pracy\n",
|
||||
"\n",
|
||||
"W nomenklaturze MS Project wyróżniamy:\t\n",
|
||||
" * zadania sumaryczne (odpowiednik Etapu),\n",
|
||||
" * zadania,\n",
|
||||
" * podzadania. \n",
|
||||
"\n",
|
||||
"#### Wskazówka \n",
|
||||
"Ustawiaj hierarchię zadań poprzez tworzenie wcięć w zadaniach podrzędnych.\n",
|
||||
"\n",
|
||||
"<br> </br> \n",
|
||||
"<figure> \n",
|
||||
"<img src=\"obrazy/stworzenie SPP.png\" alt=\"Stworzenie SPP\" width=300px>\n",
|
||||
"<figcaption> Stworzenie SPP</figcaption>\n",
|
||||
"</figure>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 3.3. Ustawienie trybów zadań\n",
|
||||
"\n",
|
||||
"* Tryb ręczny (oznaczony przez pineskę) stosujemy dla zadania, gdy chcemy mieć pełną kontrolę nad jego czasem trwania.\n",
|
||||
"* Tryb automatyczny wykonuje ważną jednak pracę wspomagającą - przesuwa na osi czasu zadania, które są od siebie zależne.\n",
|
||||
"\n",
|
||||
"Stosowanie trybu automatycznego oznacza, że brana jest pod uwagę wskazówka: \"Bierz pod uwagę ograniczenia czasowe\". \n",
|
||||
"\n",
|
||||
"<br> </br>\n",
|
||||
"<figure> \n",
|
||||
"<img src=\"obrazy/tryby zadań.png\" alt=\"Ustawianie trybów zadań\" width=500px>\n",
|
||||
"<figcaption> Ustawianie trybów zadań</figcaption>\n",
|
||||
"</figure>\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 3.4. Określenie punktów kontrolnych"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
"<h3>Punkt kontrolny</h3> \n",
|
||||
" \n",
|
||||
"<b>Punkt kontrolny</b> (ang. milestone) – punkt na osi czasu, który podsumowuje określony zestaw zadań, bądź daną fazę projektu.\n",
|
||||
"<ul>\n",
|
||||
" <li> Może to być: podpisanie dokumentu, otrzymanie wyniku, ważne spotkanie, zatwierdzenie pracy itp.\n",
|
||||
" <li> Zazwyczaj osiągnięcie punktu kontrolnego wiąże się z dalszymi decyzjami odnośnie rozwoju projektu.\n",
|
||||
" <li> Punkt kontrolny ma zerowy czas trwania.\n",
|
||||
" <li> Pojęcie punktu kontrolnego zastąpiło pojęcie kamienia milowego.\n",
|
||||
"</ul>\n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<br> </br>\n",
|
||||
"<figure> \n",
|
||||
"<img src=\"obrazy/ustawienie punktu kontrolnego.png\" alt=\"Ustawianie punktu kontrolnego\" width=900px>\n",
|
||||
"<figcaption> Ustawianie punktu kontrolnego</figcaption>\n",
|
||||
"</figure>\n",
|
||||
"\n",
|
||||
"<br> </br>\n",
|
||||
"<figure> \n",
|
||||
"<img src=\"obrazy/punkt kontrolny.png\" alt=\"Punkt kontrolny w MS-Project\" width=500px>\n",
|
||||
"<figcaption> Oznaczenie punktu kontrolnego w MS-Project</figcaption>\n",
|
||||
"</figure>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 3.5. Określenie tygodniowego kalendarza czasu pracy dla zespołu\n",
|
||||
"\n",
|
||||
"Tygodniowy plan pracy dla zespołu obowiązuje tych członków zespołu, dla których nie określono planu indywidualnego. \n",
|
||||
"\n",
|
||||
"<br> </br>\n",
|
||||
"<figure> \n",
|
||||
"<img src=\"obrazy/czas pracy 1.png\" alt=\"Ustawianie czasu pracy dla zespołu\" width=500px>\n",
|
||||
"<figcaption> Ustawianie czasu pracy dla zespołu - przycisk</figcaption>\n",
|
||||
"</figure>\n",
|
||||
"\n",
|
||||
"<br> </br>\n",
|
||||
"<figure> \n",
|
||||
"<img src=\"obrazy/czas pracy 2.png\" alt=\"Ustawianie czasu pracy dla zespołu\" width=500px>\n",
|
||||
"<figcaption> Ustawianie czasu pracy dla zespołu - kalendarz</figcaption>\n",
|
||||
"</figure>\n",
|
||||
" "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 3.6. Modyfikacja diagramu Gantta"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
"<h3>Diagram Gantta</h3> \n",
|
||||
" \n",
|
||||
"<b> Diagram Gantta </b> to graficzny sposób reprezentacji harmonogramu, w którym uwzględnia się podział projektu na \n",
|
||||
"poszczególne zadania, oraz rozplanowanie ich w czasie.\n",
|
||||
"\n",
|
||||
"<br>\n",
|
||||
"<figure> \n",
|
||||
"<img src=\"obrazy/diagram Gantta.png\" alt=\"diagram Gantta\" width=500px>\n",
|
||||
"<figcaption> Przykładowy diagram Gantta, źródło: https://kierownikprojektu.com/2020/06/11/16-zalet-wykresu-gantta/ </figcaption>\n",
|
||||
"</figure>\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"<h4> Zalety wykresu Gantta </h4>\n",
|
||||
"<ul>\n",
|
||||
"<li> przedstawia następstwo zdarzeń, </li>\n",
|
||||
"<li> uwzględnia zadania wykonywane równolegle, </li>\n",
|
||||
"<li> dobrze sprawdza się dla niewielkich projektów. </li>\n",
|
||||
"</ul>\n",
|
||||
"\n",
|
||||
"<h4> Wady wykresu Gantta </h4>\n",
|
||||
"<ul>\n",
|
||||
"<li> nie zawiera szczegółowych opisów zadań, </li>\n",
|
||||
"<li> wymusza podanie konkretnych dat. </li>\n",
|
||||
"</ul>\n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"#### Diagram Gantta w MS-Project\n",
|
||||
"\n",
|
||||
"Diagram Gantta tworzony jest częściowo manualne, a częściowo automatycznie.\n",
|
||||
"\n",
|
||||
" * Czas trwania zadania można wpisać ręcznie w kolumnie **czas trwania** (w godzinach, dniach).\n",
|
||||
" * W czasie trwania zadania uwzględniane są tylko dni robocze – zgodnie z kalendarzem.\n",
|
||||
" * Jeśli wpiszemy czasy rozpoczęcia i zakończenia, to czas trwania oblicza się sam. Analogicznie sam oblicza się koniec zadania o znanym rozpoczęciu i czasie trwania.\n",
|
||||
" * Dni wolne od pracy są zaznaczone kolorem szarym."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 3.7. Ustawienie zależności między zadaniami"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
"<h3>Zależności między zadaniami</h3> \n",
|
||||
" \n",
|
||||
"Zadanie B jest <b>zależne</b> od A, gdy zmiana terminu wykonania A wpływa na termin wykonania B. Zadanie A nazywamy <b>poprzednikiem</b>, a B – <b>następnikiem </b>. \n",
|
||||
" \n",
|
||||
"<h4> Typy zależności </h4>\n",
|
||||
"<ul>\n",
|
||||
"<li> Zadania typu ZR (zakończenie-rozpoczęcie). Następnik (B) może się rozpocząć dopiero po zakończeniu poprzednika (A).\n",
|
||||
"<li> Zadania typu RR (rozpoczęcie-rozpoczęcie). Następnik (B) może się rozpocząć dopiero po rozpoczęciu poprzednika(A).\n",
|
||||
"<li> Zadania typu ZZ (zakończenie-zakończenie). Następnik (B) może się zakończyć dopiero po zakończeniu poprzednika (A).\n",
|
||||
"<li> Zadania typu RZ (rozpoczęcie-zakończenie). Następnik (B) może się zakończyć dopiero po rozpoczęciu poprzednika (A).\n",
|
||||
"</ul>\n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"#### Ustawianie zależności między zadaniami w MS-Project\n",
|
||||
"\n",
|
||||
" * Aby określić zadania zależne, należy zaznaczyć dwa zadania i połączyć je (ikoną węzła).\n",
|
||||
" * Aby zmienić typ zależności między zadaniami, należy kliknąć na strzałeczkę łączącą zadania na wykresie Gantta.\n",
|
||||
"\n",
|
||||
"<br> </br>\n",
|
||||
"<figure> \n",
|
||||
"<img src=\"obrazy/zależności.png\" alt=\"Ustawianie zależności między zadaniami\" width=500px>\n",
|
||||
"<figcaption> Ustawianie zależności między zadaniami</figcaption>\n",
|
||||
"</figure>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 3.8. Ustawienie odstępów między zadaniami\n",
|
||||
"Pomiędzy zadaniami zależnymi można ustawić odstęp czasowy (tzw. zwłokę). Pełni on rolę bufora – aby zapewnić zakończenie zadania przed rozpoczęciem następnego.\n",
|
||||
"\n",
|
||||
"<br> </br>\n",
|
||||
"<figure> \n",
|
||||
"<img src=\"obrazy/odstęp czasowy.png\" alt=\"Ustawianie odstępów czasowych\" width=500px>\n",
|
||||
"<figcaption> Ustawianie odstępów czasowych</figcaption>\n",
|
||||
"</figure>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 3.9 Określenie zasobów w projekcie"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
"<h3>Zasoby </h3> \n",
|
||||
" \n",
|
||||
"<b>Zasoby (ang. resources) </b> – wszystko, co jest potrzebne do wykonania projektu, a czego brak spowodowałby niewykonanie planu. \n",
|
||||
"W MS-Project wyróżniamy następujące typy zasobów:\n",
|
||||
"<ul>\n",
|
||||
"<li> Praca (ludzie lub komputery),\n",
|
||||
"<li> Materiał (np. energia),\n",
|
||||
"<li> Koszt (np. koszt podróży).\n",
|
||||
"</ul>\n",
|
||||
"</div> "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"#### Zdefiniowanie zasobów w MS-Project\n",
|
||||
"\n",
|
||||
"Prawidłowe określenie wszystkich zasobów niezbędnych w projekcie umożliwia prawidłowe oszacowanie kosztów projektu.\n",
|
||||
"\n",
|
||||
"<br> </br>\n",
|
||||
"<figure> \n",
|
||||
"<img src=\"obrazy/zasoby 1.png\" alt=\"Zdefiniowanie zasobów w MS-Project\" width=400px>\n",
|
||||
"<figcaption> Definiowanie zasobów - arkusz zasobów</figcaption>\n",
|
||||
"</figure>\n",
|
||||
"\n",
|
||||
"<br> </br>\n",
|
||||
"\n",
|
||||
"<figure> \n",
|
||||
"<img src=\"obrazy/zasoby 2.png\" alt=\"Zdefiniowanie zasobów w MS-Project\" width=800px>\n",
|
||||
"<figcaption> Definiowanie zasobów - dane zasobów</figcaption>\n",
|
||||
"</figure>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 10. Ustawienie tygodniowego kalendarza czasu pracy dla poszczególnych osób (zasobów)\n",
|
||||
"\n",
|
||||
"W programie MS-Project możliwe jest zindywidualizowanie czasu pracy każdej osoby - lub ogólniej - dowolnego zasobu. \n",
|
||||
"\n",
|
||||
"Wykres Gantta reprezentujący harmonogram pracy dostosowuje się do czasu pracy zasobów. Na przykład wykonanie zadania szacowanego na 16 godzin przez osobę, która pracuje 8 godzin w tygodniu, będzie zajmowało dwa tygodnie w harmonogramie.\n",
|
||||
"\n",
|
||||
"<br> </br>\n",
|
||||
"\n",
|
||||
"<figure> \n",
|
||||
"<img src=\"obrazy/czas pracy zasobu.png\" alt=\"Czas pracy zasobu\" width=500px>\n",
|
||||
"<figcaption> Ustawianie indywidualnego czasu pracy - wybranie zasobu</figcaption>\n",
|
||||
"</figure>\n",
|
||||
"\n",
|
||||
"<br> </br>\n",
|
||||
"<br> </br>\n",
|
||||
"<figure> \n",
|
||||
"<img src=\"obrazy/czas pracy zasobu 2.png\" alt=\"Czas pracy zasobu 2\" width=500px>\n",
|
||||
"<figcaption> Ustawianie indywidualnego czasu pracy - zmiana tygodniowego planu pracy</figcaption>\n",
|
||||
"</figure>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 11. Przydzielenie zasobów do zadań\n",
|
||||
"Do kazego zadania powinny być przydzielone zasoby niezbędne do jego wykonania (w tym zasoby ludzkie). \n",
|
||||
"\n",
|
||||
" * Można przydzielić całość lub część zasobu do danego zadania (np. 50%). Będzie to oznaczało, że zasób jest zaangażowany w to zadanie tylko w określonym procencie swojego czasu.\n",
|
||||
" * Do jednego zadania można przydzielić kilka zasobów (np. osób).\n",
|
||||
" * Zasób (np. osoba) może być jednocześnie przypisany do kilku zadań.\n",
|
||||
" \n",
|
||||
" <br> </br>\n",
|
||||
"\n",
|
||||
"<figure> \n",
|
||||
"<img src=\"obrazy/przydzielanie zasobów.png\" alt=\"Przydzielanie zasobów do zadań\" width=500px>\n",
|
||||
"<figcaption> Przydzielanie zasobów do zadań</figcaption>\n",
|
||||
"</figure>\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 12. Sprawdzenie poprawności alokacji zasobów\n",
|
||||
"\n",
|
||||
"* Skoro zasób może być jednocześnie przypisany do kilku zadań, to można popełnić błąd, nadmiernie przeciążając zasób, tak że musiałby pracować więcej niż to wynika z jego kalendarza.\n",
|
||||
"\n",
|
||||
" * Obciążenie zasobów można sprawdzić następująco:\n",
|
||||
"\n",
|
||||
"<figure> \n",
|
||||
"<img src=\"obrazy/przeciążenie zasobów 1.png\" alt=\"Sprawdzenie przeciążenia zasobów\" width=400px>\n",
|
||||
"<figcaption> Sprawdzenie przeciążenia zasobów</figcaption>\n",
|
||||
"</figure>\n",
|
||||
"\n",
|
||||
" \n",
|
||||
"<br> </br>\n",
|
||||
"<figure> \n",
|
||||
"<img src=\"obrazy/przeciążenie zasobów 2.png\" alt=\"Zasoby z nadmierną alokacją pracy\" width=800px>\n",
|
||||
"<figcaption> Zasoby z nadmierną alokacją pracy (zasoby przeciążone) - przykład</figcaption>\n",
|
||||
"</figure>\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 13. Wyeliminowanie przeciążeń zasobów\n",
|
||||
"\n",
|
||||
"Nadmierną alokację (przeciążenie) zasobów należy eliminować. Można to zrobić na dwa sposoby:\n",
|
||||
" * manualne odciążanie zasobów,\n",
|
||||
" * automatyczne bilansowanie zasobów.\n",
|
||||
" \n",
|
||||
"Manualne odciążanie zasobów może polegać na zmniejszeniu zaangażowania danego zasobu w zadanie:\n",
|
||||
"\n",
|
||||
"<br> </br>\n",
|
||||
"<figure> \n",
|
||||
"<img src=\"obrazy/odciążanie ręczne.png\" alt=\"Odciążanie ręczne\" width=500px>\n",
|
||||
"<figcaption> Zmniejszenie zaangażowania zasobu w zadanie</figcaption>\n",
|
||||
"</figure>\n",
|
||||
"\n",
|
||||
"<br> </br>\n",
|
||||
"Automatyczne bilansowanie zasobu wykonywane jest przez MS-Porject na żądanie użytkownika.\n",
|
||||
"\n",
|
||||
"<br> </br>\n",
|
||||
"<figure> \n",
|
||||
"<img src=\"obrazy/automatyczne bilansowanie zasobów.png\" alt=\"automatyczne bilansowanie zasobów\" width=500px>\n",
|
||||
"<figcaption>Automatyczne bilansowanie zasobów</figcaption>\n",
|
||||
"</figure>\n",
|
||||
"\n",
|
||||
"<br> </br>\n",
|
||||
"Efekt bilansowania może spowodować przesunięcie pracy w czasie, a co za tym idzie, opóźnienie realizacji projektu:\n",
|
||||
"\n",
|
||||
"<br> </br>\n",
|
||||
"<figure> \n",
|
||||
"<img src=\"obrazy/bilansowanie automatyczne 1.png\" alt=\"obciążenie zasobu przez bilansowaniem\" width=400px>\n",
|
||||
"<figcaption>Obciążenie zasobu przez bilansowaniem</figcaption>\n",
|
||||
"</figure>\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"<br> </br>\n",
|
||||
"<figure> \n",
|
||||
"<img src=\"obrazy/bilansowanie automatyczne 2.png\" alt=\"obciążenie zasobu po bilansowaniu\" width=400px>\n",
|
||||
"<figcaption>Obciążenie zasobu po bilansowaniu</figcaption>\n",
|
||||
"</figure>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 14. Analiza ścieżki krytycznej\n",
|
||||
"\n",
|
||||
"Zadania leżące na ścieżce krytycznej nazywne są **zadaniami krytycznymi**.\n",
|
||||
"\n",
|
||||
"<br> </br>\n",
|
||||
"<figure> \n",
|
||||
"<img src=\"obrazy/zadania krytyczne.png\" alt=\"ścieżka krytyczne\" width=600px>\n",
|
||||
"<figcaption>Ścieżka krytyczna - przykład</figcaption>\n",
|
||||
"</figure>\n",
|
||||
"\n",
|
||||
"W wyniku analizy ścieżki krytycznej można przykładowo:\n",
|
||||
" * zmienić zależności między zadaniami na ścieżce krytycznej (może to przyspieszyć realizację planu)\n",
|
||||
" * zwiększyć zapasy czasu dla zadań krytycznych (zwiększając bezpieczeństwo kosztem czasu)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 15. Generowanie raportów\n",
|
||||
"MS-Project umożliwia generowanie różnego typu raportów. Umożliwiają one m.in:\n",
|
||||
" * obliczenie kosztów projektu,\n",
|
||||
" * wyznaczenie, jaki procent planu jest wykonany,\n",
|
||||
" * obliczenie zaangażowania poszczególnych osób w projekt,\n",
|
||||
" \n",
|
||||
"<br> </br>\n",
|
||||
"<figure> \n",
|
||||
"<img src=\"obrazy/raport całościowy.png\" alt=\"raport całościowy\" width=600px>\n",
|
||||
"<figcaption>Przykład raportu całościowego</figcaption>\n",
|
||||
"</figure>\n",
|
||||
"\n",
|
||||
"<br> </br>\n",
|
||||
"<figure> \n",
|
||||
"<img src=\"obrazy/raport zasobów.png\" alt=\"raport zasobów\" width=600px>\n",
|
||||
"<figcaption>Przykład raportu zasobów</figcaption>\n",
|
||||
"</figure>\n",
|
||||
"\n",
|
||||
"<br> </br>\n",
|
||||
"<figure> \n",
|
||||
"<img src=\"obrazy/raport kosztów.png\" alt=\"raport kosztów\" width=600px>\n",
|
||||
"<figcaption>Przykład raportu kosztów</figcaption>\n",
|
||||
"</figure>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 16. Poprawianie harmonogramu (czyli co robić, gdy harmonogram się „nie spina”)\n",
|
||||
"\n",
|
||||
"Następujące działania mogą pomóc w poprawieniu harmonogramu\n",
|
||||
"\n",
|
||||
"<br> </br>\n",
|
||||
"<figure> \n",
|
||||
"<img src=\"obrazy/modyfikacja planu.png\" alt=\"modyfikacja planu\" width=600px>\n",
|
||||
"<figcaption>Metody poprawiania harmonogramu</figcaption>\n",
|
||||
"</figure>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Wnioski\n",
|
||||
" * Zarządzanie projektem jest procesem zindywidualizowanym\n",
|
||||
" * Gdyby tak nie było, to MS Project składałby się tylko z jednego przycisku "
|
||||
]
|
||||
}
|
||||
],
|
||||
"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.7.6"
|
||||
},
|
||||
"subtitle": "13. Planowanie prac badawczo-rozwojowych[wykład]",
|
||||
"title": "Przygotowanie do projektu badawczo-rozwojowego",
|
||||
"year": "2021"
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 4
|
||||
}
|
@ -6,22 +6,13 @@
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Przygotowanie do projektu badawczo-rozwojowego</h1>\n",
|
||||
"<h1> Systemy informatyczne</h1>\n",
|
||||
"<h2> 15. <i>Demonstracja wyników projektu badawczo-rozwojowego </i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2021)</h3>\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
"Demonstrowane projekty powinny być na 6. poziomie gotowości technologicznej.\n",
|
||||
"</div>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
@ -43,7 +34,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.5"
|
||||
"version": "3.7.6"
|
||||
},
|
||||
"subtitle": "15. Demonstracja projektu[wykład]",
|
||||
"title": "Przygotowanie do projektu badawczo-rozwojowego",
|
||||
|
@ -6,9 +6,8 @@
|
||||
"source": [
|
||||
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<h1> Przygotowanie do projektu badawczo-rozwojowego</h1>\n",
|
||||
"<h2> 4. <i>Metodologia Prince2</i>[wykład]</h2> \n",
|
||||
"<h3>Krzysztof Jassem (2021)</h3>\n",
|
||||
"<h1> Systemy informatyczne</h1>\n",
|
||||
"<h2> 0. <i>Metodologia Prince2</i>[wykład]</h2> \n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
|
||||
@ -1009,7 +1008,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.5"
|
||||
"version": "3.7.6"
|
||||
},
|
||||
"subtitle": "04. Metodologia Prince 2[wykład]",
|
||||
"title": "Przygotowanie do projektu badawczo-rozwojowego",
|
Loading…
Reference in New Issue
Block a user