diff --git a/materiały na laboratorium/.ipynb_checkpoints/04_systemy_analizy_danych_lab-checkpoint.ipynb b/materiały na laboratorium/.ipynb_checkpoints/04_systemy_analizy_danych_lab-checkpoint.ipynb
index 0e69bab..ebf5333 100644
--- a/materiały na laboratorium/.ipynb_checkpoints/04_systemy_analizy_danych_lab-checkpoint.ipynb
+++ b/materiały na laboratorium/.ipynb_checkpoints/04_systemy_analizy_danych_lab-checkpoint.ipynb
@@ -15,7 +15,9 @@
"metadata": {},
"source": [
"# Cel laboratorium\n",
- "Celem laboratorium będzie wybranie tematu systemu do opracowania w trakcie laboratorium."
+ "Laboratorium się nie odbyło z powodu godzin dziekańskich.\n",
+ "\n",
+ "Można wykorzystać dodatkowy tydzień na opracowanie nowej, lepszej wersji systemu do wyceny mieszkań."
]
}
],
@@ -23,7 +25,7 @@
"author": "Krzysztof Jassem",
"email": "jassem@amu.edu.pl",
"kernelspec": {
- "display_name": "Python 3",
+ "display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
@@ -38,7 +40,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.8.5"
+ "version": "3.9.13"
},
"subtitle": "02. Prezentacja koncepcji projektu badawczo-rozwojowego[laboratorium]",
"title": "Projekt badawczo-rozwojowy",
diff --git a/materiały na laboratorium/.ipynb_checkpoints/05_innowacyjny projekt informatyczny_lab-checkpoint.ipynb b/materiały na laboratorium/.ipynb_checkpoints/05_innowacyjny projekt informatyczny_lab-checkpoint.ipynb
index 5e55243..68c42f0 100644
--- a/materiały na laboratorium/.ipynb_checkpoints/05_innowacyjny projekt informatyczny_lab-checkpoint.ipynb
+++ b/materiały na laboratorium/.ipynb_checkpoints/05_innowacyjny projekt informatyczny_lab-checkpoint.ipynb
@@ -15,11 +15,15 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "# Plan laboratorium nr 5\n",
+ "# Cel zajęć:\n",
+ "Celem zajęć jest wybór tematu projektu i określenie Unique Value Proposition dla projektowanego systemu informatycznego.\n",
"\n",
- "## Zadanie 1. Makieta dynamiczna \n",
+ "# Plan laboratorium nr 5 (numer jest pozostawiony w zgodzie z numerem wykładu)\n",
+ "Studenci wybierają lub opracowują temat projektu - w uzgodnieniu w prowadzącymi. Decyzja nie musi być ostateczna - można ją zmienić do kolejnych zajęć.\n",
"\n",
- "Skonstruujcie Minimum Viable Product waszego pomysłu w postaci mockupu dynamicznego. (Mockup dynamiczny to mockup, który obrazuje mozliwość jakichś akcji użytkownika i reakcji systemu, np. przejście do innego widoku po kliknięciu). \n",
+ "## Zadanie 1. \"Tak to będzie działało\" \n",
+ "\n",
+ "Skonstruujcie makietę dynamiczną dla Waszego projektu. (Makieta dynamiczna obrazuje mozliwość jakichś akcji użytkownika i reakcji systemu, np. przejście do innego widoku po kliknięciu). \n",
"\n",
"Przykładowa aplikacja do tworzenia makiet dynamicznych on-line to: https://www.figma.com. \n",
"\n",
@@ -27,18 +31,23 @@
"https://invette.pl/blog/najlepsze-narzedzia-dla-ui-ux/. \n",
"Wybór narzędzia należy jednak do Was.\n",
"\n",
- "Rezultatem zadania jest makieta zapisana jako strona HTML, czyli spakowany plik zawierający plik (np. prototyp.htm) oraz powiązany folder (np. prototyp_pliki). \n",
+ "Po wstawieniu zadania do systemu Teams upewnijcie się, czy makieta otwiera się w oknie odpowiedzi zadania (poprzez konsultację z wykładowcą).\n",
"\n",
"Maksymalna ocena: 10 punktów\n",
"\n",
- "## Zadanie 2. Rozwiązania konkurencyjne \n",
- "Znajdźcie dwa lub trzy rozwiązania z podobnej dziedziny do Waszego rozwiązania. Omówcie je i potencjalnie pokażcie (za pomocą zrzutów ekranu). \n",
+ "## Zadanie 2. \"Tak to robią inni\" \n",
+ "Znajdźcie dwa lub trzy rozwiązania z podobnej dziedziny do Waszego rozwiązania. Omówcie je (wskażcie dla każego z nich \"Świętą Trójcę\") i potencjalnie pokażcie (za pomocą zrzutów ekranu), jak działają.\n",
+ "\n",
+ "Poddajcie każde rozwiązanie poddać krytycznej recenzji i ocenie.\n",
"\n",
"Maksymalna ocena: 10 punktów\n",
"\n",
- "## Zadanie 3. Cechy istotne dla inwestora \n",
- "Opiszcie cechy Waszego rozwiązania, wskazując cechy istotne dla inwestora: Zespół, Produkt, Rynek (slajd z wykładu R. Gregorowicza).\n",
- "(Cechy te zostaną wykorzystane również w prezentacji, którą będziecie wykonywać na następnych zajęciach.)\n",
+ "## Zadanie 3. \"Tak odniesiemy sukces\"\n",
+ "Wykażcie, że Wasz pomysł odniesie sukces:\n",
+ "\n",
+ "1. Sformułujcie w jednym zdaniu Unique Vaue Proposition\n",
+ "2. Rozwińcie UVP w postaci wskazania, jak Wasz pomysł będzie wypełniał \"Świętą Trójcę\" przykazań projektu innowacyjnego.\n",
+ "3. Omówcie, jak Wasz projekt będzie spełniał \"Golden Rules\" dla sukcesu.\n",
"\n",
"Maksymalna ocena: 10 punktów"
]
@@ -48,7 +57,7 @@
"author": "Krzysztof Jassem",
"email": "jassem@amu.edu.pl",
"kernelspec": {
- "display_name": "Python 3",
+ "display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
@@ -63,7 +72,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.8.5"
+ "version": "3.9.13"
},
"subtitle": "02. Pojęcie projektu badawczo-rozwojowego[laboratorium]",
"title": "Projekt badawczo-rozwojowy",
diff --git a/materiały na laboratorium/04_systemy_analizy_danych_lab.ipynb b/materiały na laboratorium/04_systemy_analizy_danych_lab.ipynb
index 0e69bab..ebf5333 100644
--- a/materiały na laboratorium/04_systemy_analizy_danych_lab.ipynb
+++ b/materiały na laboratorium/04_systemy_analizy_danych_lab.ipynb
@@ -15,7 +15,9 @@
"metadata": {},
"source": [
"# Cel laboratorium\n",
- "Celem laboratorium będzie wybranie tematu systemu do opracowania w trakcie laboratorium."
+ "Laboratorium się nie odbyło z powodu godzin dziekańskich.\n",
+ "\n",
+ "Można wykorzystać dodatkowy tydzień na opracowanie nowej, lepszej wersji systemu do wyceny mieszkań."
]
}
],
@@ -23,7 +25,7 @@
"author": "Krzysztof Jassem",
"email": "jassem@amu.edu.pl",
"kernelspec": {
- "display_name": "Python 3",
+ "display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
@@ -38,7 +40,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.8.5"
+ "version": "3.9.13"
},
"subtitle": "02. Prezentacja koncepcji projektu badawczo-rozwojowego[laboratorium]",
"title": "Projekt badawczo-rozwojowy",
diff --git a/materiały na laboratorium/05_innowacyjny projekt informatyczny_lab.ipynb b/materiały na laboratorium/05_innowacyjny projekt informatyczny_lab.ipynb
index 5e55243..68c42f0 100644
--- a/materiały na laboratorium/05_innowacyjny projekt informatyczny_lab.ipynb
+++ b/materiały na laboratorium/05_innowacyjny projekt informatyczny_lab.ipynb
@@ -15,11 +15,15 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "# Plan laboratorium nr 5\n",
+ "# Cel zajęć:\n",
+ "Celem zajęć jest wybór tematu projektu i określenie Unique Value Proposition dla projektowanego systemu informatycznego.\n",
"\n",
- "## Zadanie 1. Makieta dynamiczna \n",
+ "# Plan laboratorium nr 5 (numer jest pozostawiony w zgodzie z numerem wykładu)\n",
+ "Studenci wybierają lub opracowują temat projektu - w uzgodnieniu w prowadzącymi. Decyzja nie musi być ostateczna - można ją zmienić do kolejnych zajęć.\n",
"\n",
- "Skonstruujcie Minimum Viable Product waszego pomysłu w postaci mockupu dynamicznego. (Mockup dynamiczny to mockup, który obrazuje mozliwość jakichś akcji użytkownika i reakcji systemu, np. przejście do innego widoku po kliknięciu). \n",
+ "## Zadanie 1. \"Tak to będzie działało\" \n",
+ "\n",
+ "Skonstruujcie makietę dynamiczną dla Waszego projektu. (Makieta dynamiczna obrazuje mozliwość jakichś akcji użytkownika i reakcji systemu, np. przejście do innego widoku po kliknięciu). \n",
"\n",
"Przykładowa aplikacja do tworzenia makiet dynamicznych on-line to: https://www.figma.com. \n",
"\n",
@@ -27,18 +31,23 @@
"https://invette.pl/blog/najlepsze-narzedzia-dla-ui-ux/. \n",
"Wybór narzędzia należy jednak do Was.\n",
"\n",
- "Rezultatem zadania jest makieta zapisana jako strona HTML, czyli spakowany plik zawierający plik (np. prototyp.htm) oraz powiązany folder (np. prototyp_pliki). \n",
+ "Po wstawieniu zadania do systemu Teams upewnijcie się, czy makieta otwiera się w oknie odpowiedzi zadania (poprzez konsultację z wykładowcą).\n",
"\n",
"Maksymalna ocena: 10 punktów\n",
"\n",
- "## Zadanie 2. Rozwiązania konkurencyjne \n",
- "Znajdźcie dwa lub trzy rozwiązania z podobnej dziedziny do Waszego rozwiązania. Omówcie je i potencjalnie pokażcie (za pomocą zrzutów ekranu). \n",
+ "## Zadanie 2. \"Tak to robią inni\" \n",
+ "Znajdźcie dwa lub trzy rozwiązania z podobnej dziedziny do Waszego rozwiązania. Omówcie je (wskażcie dla każego z nich \"Świętą Trójcę\") i potencjalnie pokażcie (za pomocą zrzutów ekranu), jak działają.\n",
+ "\n",
+ "Poddajcie każde rozwiązanie poddać krytycznej recenzji i ocenie.\n",
"\n",
"Maksymalna ocena: 10 punktów\n",
"\n",
- "## Zadanie 3. Cechy istotne dla inwestora \n",
- "Opiszcie cechy Waszego rozwiązania, wskazując cechy istotne dla inwestora: Zespół, Produkt, Rynek (slajd z wykładu R. Gregorowicza).\n",
- "(Cechy te zostaną wykorzystane również w prezentacji, którą będziecie wykonywać na następnych zajęciach.)\n",
+ "## Zadanie 3. \"Tak odniesiemy sukces\"\n",
+ "Wykażcie, że Wasz pomysł odniesie sukces:\n",
+ "\n",
+ "1. Sformułujcie w jednym zdaniu Unique Vaue Proposition\n",
+ "2. Rozwińcie UVP w postaci wskazania, jak Wasz pomysł będzie wypełniał \"Świętą Trójcę\" przykazań projektu innowacyjnego.\n",
+ "3. Omówcie, jak Wasz projekt będzie spełniał \"Golden Rules\" dla sukcesu.\n",
"\n",
"Maksymalna ocena: 10 punktów"
]
@@ -48,7 +57,7 @@
"author": "Krzysztof Jassem",
"email": "jassem@amu.edu.pl",
"kernelspec": {
- "display_name": "Python 3",
+ "display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
@@ -63,7 +72,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.8.5"
+ "version": "3.9.13"
},
"subtitle": "02. Pojęcie projektu badawczo-rozwojowego[laboratorium]",
"title": "Projekt badawczo-rozwojowy",
diff --git a/materiały na wykład/02_prototypowanie_systemy_kontroli_wersji.ipynb b/materiały na wykład/02_prototypowanie_systemy_kontroli_wersji.ipynb
index d988517..2c09da8 100644
--- a/materiały na wykład/02_prototypowanie_systemy_kontroli_wersji.ipynb
+++ b/materiały na wykład/02_prototypowanie_systemy_kontroli_wersji.ipynb
@@ -208,7 +208,7 @@
"author": "Krzysztof Jassem",
"email": "jassem@amu.edu.pl",
"kernelspec": {
- "display_name": "Python 3",
+ "display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
@@ -223,7 +223,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.8.5"
+ "version": "3.9.13"
},
"subtitle": "06. Prototypowanie i ciągła integracja[wykład]",
"title": "Przygotowanie do projektu badawczo-rozwojowego",
diff --git a/materiały na wykład/03_ciągła integracja_ewaluacja.ipynb b/materiały na wykład/03_ciągła integracja_ewaluacja.ipynb
deleted file mode 100644
index f1a6b4f..0000000
--- a/materiały na wykład/03_ciągła integracja_ewaluacja.ipynb
+++ /dev/null
@@ -1,479 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
- "
\n",
- "
Systemy informatyczne
\n",
- " 6. Prototypowanie i ciągła integracja[wykład]
\n",
- "Krzysztof Jassem (2022)
\n",
- "\n",
- "\n",
- "![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "\n",
- " \n",
- "
Prototyp
\n",
- "Prototyp to wynik częściowej implementacji, posiadający wybrane cechy produktu końcowego.\n",
- "\n",
- ""
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Cele prototypowania\n",
- " * Zademonstrowanie umiejętności wykonania produktu końcowego\n",
- " * Określenie realistycznych wymagań końcowych\n",
- " * Przekonanie się o wpływie innych systemów, środowisk na produkt. \n",
- " * Sprawdzenie implementacji kluczowych funkcji\n",
- "\n",
- "## Potencjalne efekty prototypowania\n",
- "* Wykrycie nieporozumień między klientem i wykonawcą \n",
- "* Określenie brakujących funkcji \n",
- "* Wykrycie błędów w specyfikacji\n",
- "* Przewidywanie przyszłych trudności "
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Prototyp poziomy a pionowy\n",
- "### Prototyp poziomy (Horizontal Prototype)\n",
- "\n",
- "**Prototyp poziomy** obrazuje całość systemu, podkreślając interakcję z użytkownikiem, a nie wnikając w funkcjonalności.\n",
- "\n",
- "Przykłady prototypów poziomych w informatyce:\n",
- " * Prototyp papierowy\n",
- " * Makieta statyczna\n",
- " * Makieta dynamiczna\n",
- " * Graficzny interfejs użytkownika"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "\n",
- " \n",
- "
Prototyp papierowy
\n",
- " \n",
- "
Prototyp papierowy to sposób reprezentacji produktu cyfrowego za pomocą wycinanek z papieru. \n",
- " \n",
- "* Służy do zrozumienia koncepcji produktu cyfrowego przez użytkownika. \n",
- "* Dla autora koncepcji prototyp taki służy do prześledzenia reakcji użytkowników na przyszłe działanie systemu przed jego realizacją.\n",
- "\n",
- "
Prototypowanie papierowe - etapy :\n",
- "\n",
- "
\n",
- "- Naszkicowanie wstępnej koncepcji ekranów z wyróżnieniem głównych funkcjonalności.
\n",
- "- Symulowanie interakcji poprzez podmienianie papierowych ekranów i wyciętych elementów.
\n",
- "
\n",
- " \n",
- "
"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "\n",
- " \n",
- "
Makieta statyczna
\n",
- " \n",
- " \n",
- "
Makieta statyczna to cyfrowy projekt aplikacji, który zawiera pewne elementy docelowej konstrukcji, ale nie jest funkcjonalny. \n",
- "\n",
- "
\n",
- " - Obrazuje wybrane widoki bez połączeń między nimi.
\n",
- "
\n",
- "
"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "\n",
- " \n",
- "
Makieta dynamiczna
\n",
- " \n",
- " \n",
- "
Makieta dynamiczna to cyfrowy projekt aplikacji, który zawiera pewne elementy docelowej konstrukcji i wskazuje interakcje z użytkownikiem. \n",
- "\n",
- "
\n",
- "- Widoki są \"klikalne\" - po kliknięciu użytkowniki kierowany jest do nowego widoku.
\n",
- "
\n",
- "
"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "\n",
- " \n",
- "
Graficzny interfejs użytkownika (GUI)
\n",
- "\n",
- "
Graficzny interfejs użytkownika to sposób komunikacji użytkownika z komputerem za pomocą elementów graficznych.\n",
- " \n",
- "Prototypem poziomym nazwiemy GUI, który: \n",
- "
\n",
- "- Pokazuje menu.
\n",
- "- Pozwala na nawigację.
\n",
- "- Akceptuje input.
\n",
- "- Wyświetla losowy output.
\n",
- "- NIE wspiera logiki aplikacji.
\n",
- "
\n",
- " \n",
- "
"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Prototyp pionowy (Vertical Prototype)\n",
- "**Prototyp pionowy** to pełna realizacja kluczowej (kluczowych) funkcji systemu.\n",
- "\n",
- "Cele prototypowania pionowego:\n",
- "* sprawdzenie wyboru technologii\n",
- "* pomiary wydajności\n",
- "* sprawdzenie poprawności algorytmów i struktur danych\n",
- "\n",
- "Realizacja prototypów pionowych jest polecana w sytuacji, gdy wykonanie kluczowych funkcji systemu obarczone jest wysokim ryzykiem."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Prototypowanie z porzuceniem a prototypowanie ewolucyjne"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Prototypowanie z porzuceniem (Thow-away Prototyping)\n",
- "\n",
- "W **prototypowaniu z porzuceniem** budowane są kolejne wersje prototypów, a niektóre z nich są porzucane.\n",
- "\n",
- "Cele prototypowania z porzuceniem:\n",
- "* minimalizacja ryzyka,\n",
- "* głębokie zrozumienie problemów technicznych\n",
- "\n",
- "Koszty:\n",
- " * Koszty prototypowania z porzuceniem są wysokie."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Prototypowanie ewolucyjne (Ewolutionary Prototyping)\n",
- "\n",
- "**Prototypowanie ewolucyjne** polega na stopniowym rozszerzaniu prototypu, aż spełnia on wszystkie wymagania... \n",
- "\n",
- "...Wtedy prototyp staje się produktem.\n",
- "\n",
- "Prototyp ewolucyjny powinien być budowany:\n",
- " * w środowisku zbliżonym do produkcyjnego, \n",
- " * z dużą dbałością o jakość."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Prototypowanie - podsumowanie\n",
- "\n",
- "* Prototypy tworzy się w celu zminimalizowania ryzyka niepowodzenia produktu. \n",
- "* W prototypach poziomych chodzi o zobrazowanie wszystkich funkcji. \n",
- "* W prototypach pionowych chodzi o szczegóły techniczne.\n",
- "* Prototypowanie z porzuceniem oywa się z reguły wszerz (prototypy poziome); \n",
- " * jest bardziej kosztowne, ale minimalizuje ryzyko.\n",
- "* Prototypowanie ewolucyjne odbywa się z reguły w głąb (prototypy pionowe); \n",
- " * jest mniej kosztowne, ale bardziej ryzykowne."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "\n",
- " \n",
- "
Ciągła integracja
\n",
- " \n",
- "Ciągła integracja (CI) to praktyka rozwoju oprogramowania, w której:\n",
- "
\n",
- " - zmiany w kodzie są regularnie przesyłane do centralnego repozytorium,
\n",
- " - po każdym dołączeniu nowego kodu wykonywane są (automatycznie): kompilacja kodu i testy.
\n",
- "
\n",
- "
"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "\n",
- " \n",
- "
Główne przesłanki CI
\n",
- " \n",
- "Ciągła integracja (CI) to praktyka rozwoju oprogramowania, w której:\n",
- "
\n",
- " - szybsze lokalizowanie błędów w kodzie,
\n",
- " - ciągły wzrost jakości oporgramowania,
\n",
- " - szybkie wydawanie nowych wersji.
\n",
- "
\n",
- "
\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
-}
diff --git a/materiały na wykład/03_ciągła_integracja_ewaluacja.ipynb b/materiały na wykład/03_ciągła_integracja_ewaluacja.ipynb
index 3ef4c63..0387185 100644
--- a/materiały na wykład/03_ciągła_integracja_ewaluacja.ipynb
+++ b/materiały na wykład/03_ciągła_integracja_ewaluacja.ipynb
@@ -258,7 +258,7 @@
"author": "Krzysztof Jassem",
"email": "jassem@amu.edu.pl",
"kernelspec": {
- "display_name": "Python 3",
+ "display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
@@ -273,7 +273,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.8.5"
+ "version": "3.9.13"
},
"subtitle": "06. Prototypowanie i ciągła integracja[wykład]",
"title": "Przygotowanie do projektu badawczo-rozwojowego",
diff --git a/materiały na wykład/05_innowacyjny_projekt_informatyczny.ipynb b/materiały na wykład/05_innowacyjny_projekt_informatyczny.ipynb
index 04bdf9a..d2e36fd 100644
--- a/materiały na wykład/05_innowacyjny_projekt_informatyczny.ipynb
+++ b/materiały na wykład/05_innowacyjny_projekt_informatyczny.ipynb
@@ -15,106 +15,11 @@
"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",
+ "# Innowacyjność \n",
+ "Innowacyjność to działalność związana z przygotowaniem i uruchomieniem wytwarzania nowych lub udoskonalonych materiałów, wyrobów, urządzeń, usług, procesów lub metod, przeznaczonych do wykorzystania w praktyce.\n",
+ "## Przykład projektu innowacyjnego: Medico\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",
- "
"
- ]
- },
- {
- "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)."
+ "System dla lekarzy służący do wyszukiwania informacji w zasobach WN PWN lub zweryfikowanych zasobach internetowych"
]
},
{
@@ -122,53 +27,50 @@
"metadata": {},
"source": [
"\n",
- " \n",
- "Wyraz \"technologia\" pochodzi z języka greckiego:\n",
- "
\n",
- " - techne: sztuka, umiejętność
\n",
- " - logia: nauka (czegoś)
\n",
- "
\n",
- "\n",
- "Technologia w dzisiejszym rozumieniu to zastosowanie wiedzy naukowej do stworzenia czegoś pożytecznego dla człowieka."
+ "UVP (Unique Value Proposition) is a statement that tells your potential customers:\n",
+ "how they will benefit from your offer,\n",
+ "how your products or services will address their needs and solve their problems, \n",
+ "and what makes your offer different from the competition."
]
},
{
"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",
+ "
![\"UVP\"](\"obrazy/uvp.png\")
"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "
\n",
+ "Unique Value Proposition dla systemu Medico:\n",
+ " \n",
+ "Medico to system informatyczny, w którym lekarz znajdzie odpowiedź na każde pytanie z dziedziny medycyny. System korzysta z wiedzy aktualizowanej na bieżąco, zawsze informuje o źródle odpowiedzi i zapewnia stuprocentową wiarygodność informacji."
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# \"Święta Trójca\"\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",
+ "Następujące trzy atrybuty wyróżniają system innowacyjny:\n",
+ "## Wartość\n",
+ "Komponenty wartości dla użytkownika:\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",
+ "
![\"value\"](\"obrazy/value.jpg\")
\n",
+ " \n",
+ " \n",
+ "## Potrzeby użytkownika\n",
+ "Potrzeby na skalach czasu i świadomości użytkownika:\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",
+ "
![\"needs\"](\"obrazy/needs.png\")
\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."
+ "\n",
+ "## Rozwiązanie\n"
]
},
{
@@ -270,7 +172,7 @@
"author": "Krzysztof Jassem",
"email": "jassem@amu.edu.pl",
"kernelspec": {
- "display_name": "Python 3",
+ "display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
@@ -285,7 +187,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.8.5"
+ "version": "3.9.13"
},
"subtitle": "02. Projekt badawczo-rozwojowy[wykład]",
"title": "Przygotowanie do projektu badawczo-rozwojowego",
diff --git a/materiały na wykład/06_metodyki zwinne.ipynb b/materiały na wykład/06_metodyki zwinne.ipynb
index 0d24f1d..c9f9112 100644
--- a/materiały na wykład/06_metodyki zwinne.ipynb
+++ b/materiały na wykład/06_metodyki zwinne.ipynb
@@ -593,7 +593,7 @@
"author": "Krzysztof Jassem",
"email": "jassem@amu.edu.pl",
"kernelspec": {
- "display_name": "Python 3",
+ "display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
@@ -608,7 +608,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.8.5"
+ "version": "3.9.13"
},
"subtitle": "05. Metodologia Prince2Agile[wykład]",
"title": "Przygotowanie do projektu badawczo-rozwojowego",
diff --git a/materiały na wykład/07_specyfikacja_projektu_informatycznego.ipynb b/materiały na wykład/07_specyfikacja_projektu_informatycznego.ipynb
index 3eee70d..6ecd94f 100644
--- a/materiały na wykład/07_specyfikacja_projektu_informatycznego.ipynb
+++ b/materiały na wykład/07_specyfikacja_projektu_informatycznego.ipynb
@@ -433,7 +433,7 @@
"author": "Krzysztof Jassem",
"email": "jassem@amu.edu.pl",
"kernelspec": {
- "display_name": "Python 3",
+ "display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
@@ -448,7 +448,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.8.5"
+ "version": "3.9.13"
},
"subtitle": "07. Specyfikacja projektu informatycznego[wykład]",
"title": "Przygotowanie do projektu badawczo-rozwojowego",