aktualizacja plików wykładowych

This commit is contained in:
Krzysztof Jassem 2021-11-07 14:36:24 +01:00
parent 83570b61d3
commit 5428fd7411
14 changed files with 299 additions and 99 deletions

View File

@ -22,9 +22,26 @@
} }
}, },
"source": [ "source": [
"## Metodologia Prince2\n", "# Metodologia Prince2 - wyjaśnienie pojęcia\n",
"Prince2 (PRojects IN Controlled Environments) to metoda **zarządzania** ***projektami***\n", "Prince2 (PRojects IN Controlled Environments) to metoda **zarządzania** ***projektami***\n",
"niezależna od zmiennych projektu, takich jak: środowisko, skala, typ, organizacja, kultura, położenie geograficzne." "niezależna od zmiennych projektu, takich jak: \n",
" * środowisko, \n",
" * skala, \n",
" * typ, \n",
" * organizacja, \n",
" * kultura, \n",
" * położenie geograficzne."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# 1. Pojęcie projektu"
] ]
}, },
{ {
@ -42,7 +59,7 @@
" \n", " \n",
"<p> na <b>określony czas</b> </p>\n", "<p> na <b>określony czas</b> </p>\n",
"<p> w celu dostarczenia <b>rozwiązania</b></p>\n", "<p> w celu dostarczenia <b>rozwiązania</b></p>\n",
" <p> dla określonej <b>potrzeby</b> biznesowej </p> \n", " <p> dla określonej <b>potrzeby</b> biznesowej. </p> \n",
"</div>" "</div>"
] ]
}, },
@ -61,7 +78,7 @@
"<p><b>Potrzeba biznesowa:</b> Oszczędzenie 70% czasu biura obsługi klienta.</p>\n", "<p><b>Potrzeba biznesowa:</b> Oszczędzenie 70% czasu biura obsługi klienta.</p>\n",
"<p><b>Rozwiązanie:</b> System automatycznego obiegu dokumentów. </p>\n", "<p><b>Rozwiązanie:</b> System automatycznego obiegu dokumentów. </p>\n",
"<p><b>Czas:</b> 6 miesięcy </p> \n", "<p><b>Czas:</b> 6 miesięcy </p> \n",
"<p><b>Projekt:</b> Zespół ludzi wydelegowanych na 6 miesięcy dla dostarczenia systemu automatycznego obiegu dokumentów w celu zaoszczędzenia 70\\% czasu biura obsługi klienta. </p> \n", "<p><b>Projekt:</b> Zespół ludzi wydelegowanych na 6 miesięcy dla dostarczenia systemu automatycznego obiegu dokumentów w celu zaoszczędzenia 70% czasu biura obsługi klienta. </p> \n",
"</div>\n" "</div>\n"
] ]
}, },
@ -74,13 +91,13 @@
}, },
"source": [ "source": [
"### Cechy charakterystyczne projektu\n", "### Cechy charakterystyczne projektu\n",
"Projekt jest przeciwieństwiem pojęcia \"business as usual\" (działanie rutynowe). Projekt od rutyny odróżniają następujące cechy\n", "Projekt jest przeciwieństwiem pojęcia \"business as usual\" (działanie rutynowe). Projekt od rutyny odróżniają następujące cechy:\n",
"\n", "\n",
" * Zmiana - projekt to środek do przeprowadzenia zmiany.\n", " * **Zmiana** - projekt to środek do przeprowadzenia zmiany.\n",
" * Tymczasowość - projekt ma swoją datę początku i końca.\n", " * **Tymczasowość** - projekt ma swoją datę początku i końca.\n",
" * Wielofukcyjność - przy projektach zaangażowani są ludzie o różnych kompetencjach.\n", " * **Wielofukcyjność** - przy projektach zaangażowani są ludzie o różnych kompetencjach.\n",
" * Wyjątkowość - każdy projekt jest wyjątkowy (nawet jak jest jakiś wzorzec projektu, to każdy projekt się czymś wyróżnia: albo zespołem, albo klientem, albo położeniem geograficznym, itp.)\n", " * **Wyjątkowość** - każdy projekt jest wyjątkowy (nawet jak jest jakiś wzorzec projektu, to każdy projekt się czymś wyróżnia: albo zespołem, albo klientem, albo położeniem geograficznym, itp.\n",
" * Ryzyko (niepewność) - projekty ze swojej natury są ryzykowne, bo mają wprowadzić zmianę." " * **Niepewność** - projekty ze swojej natury są ryzykowne, bo mają wprowadzić zmianę."
] ]
}, },
{ {
@ -93,14 +110,14 @@
"source": [ "source": [
"### Zarządzanie projektem\n", "### Zarządzanie projektem\n",
" Zarządzanie projektem to:\n", " Zarządzanie projektem to:\n",
" - planowanie zadań\n", " - planowanie zadań,\n",
" - delegowanie ludzi do zadań\n", " - delegowanie ludzi do zadań,\n",
" - monitorowanie wykonywania zadań\n", " - monitorowanie wykonywania zadań,\n",
" - kontrolowanie\n", " - kontrolowanie\n",
" aby:\n", " aby:\n",
" - osiągnąć cel projektu\n", " - osiągnąć cel projektu,\n",
" - w wyznaczonym czasie\n", " - w wyznaczonym czasie,\n",
" - przy zachowaniu przeznaczonych kosztów" " - przy zachowaniu przeznaczonych kosztów."
] ]
}, },
{ {
@ -112,13 +129,13 @@
}, },
"source": [ "source": [
"### Aspekty kontroli w zarządzaniu projektem\n", "### Aspekty kontroli w zarządzaniu projektem\n",
" Projekt należy kontrolować pod następującymi apektami:\n", " Projekt należy kontrolować pod następującymi aspektami:\n",
" - koszty (czy przestrzegamy kosztów projektu?)\n", " - koszty (czy przestrzegamy kosztów projektu?),\n",
" - czas (kiedy skończymy?)\n", " - czas (kiedy skończymy?),\n",
" - jakość (czy produkt działa zgodnie z oczekiwaniami?)\n", " - jakość (czy produkt spełnia oczekiwania jakościowe?),\n",
" - zakres (czy zakres działania projektu będzie pokrywa się z oczekiwaniami?)\n", " - zakres (czy zakres działania projektu będzie pokrywa się z oczekiwaniami?),\n",
" - korzyści dla klienta (czy użytkownik naszego produktu uzyskuje planowaną korzyść?)\n", " - korzyści dla klienta (czy użytkownik naszego produktu uzyskuje planowaną korzyść?),\n",
" - ryzyko (jakie jest ryzyko niepowodzenia lub niepożądanych skutków projektu i czy potrafimy to ryzyko zminimalizować?)" " - ryzyko (jakie jest ryzyko niepowodzenia lub niepożądanych skutków projektu i czy potrafimy to ryzyko zminimalizować?)."
] ]
}, },
{ {
@ -129,7 +146,7 @@
} }
}, },
"source": [ "source": [
"## Metodologie zarządzania projektem \n", "# 2. Przegląd metodologii zarządzania projektem \n",
"(por. https://startnearshoring.com/knowledge/it-project-management-a-quick-guide-to-tools-and-methodologies/)" "(por. https://startnearshoring.com/knowledge/it-project-management-a-quick-guide-to-tools-and-methodologies/)"
] ]
}, },
@ -141,14 +158,15 @@
} }
}, },
"source": [ "source": [
"### Metodologie tradycyjne\n", "## 2.1. Metodologie tradycyjne\n",
"Metodologie tradycyjne charakteryzują się działaniem \"krok po kroku\". Kładą nacisk na:\n", "Metodologie tradycyjne charakteryzują się działaniem \"krok po kroku\". Kładą nacisk na:\n",
" * skrupulatne zbieranie wymagań\n", " * skrupulatne zbieranie wymagań,\n",
" * dokładną analizę\n", " * dokładną analizęm\n",
" * istotność dokumentacji.\n", " * istotność dokumentacji.\n",
" \n", " \n",
"Sprawdzają się w projektach z dobrze określonymi wymaganiami już od początku. \n", "Sprawdzają się w projektach z dobrze określonymi wymaganiami już od początku. \n",
"Produkt ma być realizowany i dostarczony zgodnie z określonym planem. W planowaniu nie analizuje się szczegółowo, w jaki sposób produkt ma być wykonany. " "\n",
"Produkt ma być realizowany i dostarczony zgodnie z określonym planem. W planowaniu **nie** analizuje się szczegółowo, w jaki sposób produkt ma być wykonany. "
] ]
}, },
{ {
@ -159,7 +177,7 @@
} }
}, },
"source": [ "source": [
"#### Waterfall (model kaskadowy) (wg Wikipedia)\n", "### Waterfall (model kaskadowy) (wg Wikipedia)\n",
"> Model polega on na wykonywaniu podstawowych czynności jako odrębnych faz projektowych, kolejno po sobie. Jeśli któraś z faz nie powodzi się, to następuje nawrót do poprzedniej fazy. Każda czynność to schodek (kaskady):\n", "> Model polega on na wykonywaniu podstawowych czynności jako odrębnych faz projektowych, kolejno po sobie. Jeśli któraś z faz nie powodzi się, to następuje nawrót do poprzedniej fazy. Każda czynność to schodek (kaskady):\n",
"> * Planowanie systemu (w tym specyfikacja wymagań).\n", "> * Planowanie systemu (w tym specyfikacja wymagań).\n",
"> * Analiza systemu (w tym analiza wymagań i studium wykonalności).\n", "> * Analiza systemu (w tym analiza wymagań i studium wykonalności).\n",
@ -202,7 +220,7 @@
"<h5>Minusy modelu kaskadowego</h5> \n", "<h5>Minusy modelu kaskadowego</h5> \n",
"<ol>\n", "<ol>\n",
" <li> Dokonanie wszelkich zmian w projekcie jest kosztowne.</li>\n", " <li> Dokonanie wszelkich zmian w projekcie jest kosztowne.</li>\n",
" <li> Jakikolwiek namacalny efekt działań jest wdoczny dopiero po dłuższym czasie.</li>\n", " <li> Jakikolwiek namacalny efekt działań jest widoczny dopiero po dłuższym czasie.</li>\n",
"</ol>" "</ol>"
] ]
}, },
@ -214,12 +232,14 @@
} }
}, },
"source": [ "source": [
"#### Prince 2\n", "### Prince2\n",
"W metodyce Prince2 projekt dzielony jest na etapy. Po każdym etapie następuje uszczegółowienie planu najbliższych etapów.\n", "W metodyce Prince2 projekt dzielony jest na **etapy**. Po każdym etapie następuje uszczegółowienie planu najbliższych etapów.\n",
"\n", "\n",
"W Prince 2 nacisk kładzie się na osiągnięcie założonych produktów biznesowych. \n", "W Prince2 nacisk kładzie się na osiągnięcie założonych **produktów biznesowych**.\n",
"Struktura organizacyjna jest precyzyjnie określona - każdy członek teamu ma przypisaną rolę. \n", "\n",
"Ważną rolę odgrywają procedury raportowania." "**Struktura organizacyjna** jest precyzyjnie określona - każdy członek teamu ma przypisaną rolę. \n",
"\n",
"Ważną rolę odgrywają **procedury raportowania**."
] ]
}, },
{ {
@ -264,14 +284,15 @@
} }
}, },
"source": [ "source": [
"#### PMBOX (wg Wikipedia)\n", "#### PMBOK (Project Management Body of Knowledge)\n",
"Projekt składa się z ciągu etapów lub faz w których od inicjacji do zamknięcia.\n", "Projekt ma swój **cykl życia**, który składa się z ciągu etapów lub faz od inicjacji do zamknięcia. \n",
"Grupy procesów\n", "\n",
"* procesy rozpoczęcia (inicjowania) - zdefiniowanie nowego projektu (lub nowej fazy w istniejącym projekcie)\n", "W cyklu życia projektu odbywają się różnego rodzaju **procesy**, które na siebie oddziaływują. \n",
"* procesy planowania - \n", "\n",
" * określenie zakresu i celu projektu \n", "Wyróżnia się nawet 49 różnych rodzajów procesów, podzielonych na **grupy**:\n",
" * zdefiniowanie akcji prowadzących do realizacji celu,\n", " * procesy rozpoczęcia (inicjowania) - zdefiniowanie nowego projektu (lub nowej fazy w istniejącym projekcie),\n",
" * procesy realizacji - realizacja wymagań projektowych\n", " * procesy planowania - określenie zakresu i celu projektu, zdefiniowanie akcji prowadzących do realizacji celu,\n",
" * procesy realizacji - realizacja wymagań projektowych,\n",
" * procesy monitorowania i kontroli - śledzenie, przeglądanie postępu oraz wydajności prac projektowych; ewentualnie inicjacja zmian w planie,\n", " * procesy monitorowania i kontroli - śledzenie, przeglądanie postępu oraz wydajności prac projektowych; ewentualnie inicjacja zmian w planie,\n",
" * procesy zakończenia (zamknięcia) - formalne zakończenie projektu.\n", " * procesy zakończenia (zamknięcia) - formalne zakończenie projektu.\n",
"\n", "\n",
@ -290,9 +311,9 @@
"source": [ "source": [
"<div class=\"alert alert-block alert-success\">\n", "<div class=\"alert alert-block alert-success\">\n",
" \n", " \n",
"<h5>Plusy modelu PMBOX</h5> \n", "<h5>Plusy modelu PMBOK</h5> \n",
"<ol>\n", "<ol>\n",
" <li> Podczas trwania projektu można dodawać nowe narzędzia i techniki działania (ze względu na różnorodność dostępnych procesów) </li>\n", " <li> Podczas trwania projektu można dodawać nowe narzędzia i techniki działania (ze względu na różnorodność dostępnych procesów). </li>\n",
" <li> Kierownik projektu ma dostęp do pełnej informacji o zachodzących procesach.</li>\n", " <li> Kierownik projektu ma dostęp do pełnej informacji o zachodzących procesach.</li>\n",
" </ol>" " </ol>"
] ]
@ -307,7 +328,7 @@
"source": [ "source": [
"<div class=\"alert alert-info alert-success\">\n", "<div class=\"alert alert-info alert-success\">\n",
" \n", " \n",
"<h5>Minusy modelu PMBOX</h5> \n", "<h5>Minusy modelu PMBOK</h5> \n",
"<ol>\n", "<ol>\n",
" <li> Mała elastyczność </li>\n", " <li> Mała elastyczność </li>\n",
" <li> Centralizacja władzy </li>\n", " <li> Centralizacja władzy </li>\n",
@ -322,7 +343,7 @@
} }
}, },
"source": [ "source": [
"### Metodologie zwinne\n", "## 2.2. Metodologie zwinne\n",
"Metodologie zwinne przeciwstawiają się metodologiom tradycyjnym w czterech płaszczyznach:\n", "Metodologie zwinne przeciwstawiają się metodologiom tradycyjnym w czterech płaszczyznach:\n",
" * Inteakcje między ludźmi podczas pracy są ważniejsze niż procesy i narzędzia.\n", " * Inteakcje między ludźmi podczas pracy są ważniejsze niż procesy i narzędzia.\n",
" * Działające oprogramowanie (choćby prototyp) jest ważniejsze niż rozbudowana dokumentacja.\n", " * Działające oprogramowanie (choćby prototyp) jest ważniejsze niż rozbudowana dokumentacja.\n",
@ -338,8 +359,8 @@
} }
}, },
"source": [ "source": [
"#### Scrum\n", "#### Scrum (pol. młyn)\n",
"Scrum jest moetodologią, w której kluczowym elementem jest **sprint** - 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." "Scrum jest metodologią, w której kluczowym elementem jest **sprint** - 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."
] ]
}, },
{ {
@ -384,7 +405,8 @@
}, },
"source": [ "source": [
"#### Kanban\n", "#### Kanban\n",
"Kanban jest metodologią, w której kluczowym elementem jest **wizualizacja** przebiegu projektu - najczęściej za pomocą tablicy, na której przesuwane są zadania wraz z postępem ich wykonania (od początku do zakończenia)." "Nazwa pochodzi z języka japońskiego (kan: widoczny ban: kartka papieru). \n",
"**Kanban** jest metodologią, w której kluczowym elementem jest **wizualizacja** przebiegu projektu - najczęściej za pomocą tablicy, na której przesuwane są zadania wraz z postępem ich wykonania (od początku do zakończenia)."
] ]
}, },
{ {
@ -420,6 +442,17 @@
"</ol>" "</ol>"
] ]
}, },
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# 3. Metodologia Prince2"
]
},
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": { "metadata": {
@ -430,9 +463,9 @@
"source": [ "source": [
"<div class=\"alert alert-block alert-success\">\n", "<div class=\"alert alert-block alert-success\">\n",
" \n", " \n",
"<h3> Pryncypia Prince2 </h3>\n", "<h2> 3.1. Pryncypia w Prince2 </h2>\n",
"\n", "\n",
"<b> Pryncypia Prince 2 </b> to nakazy wynikające z najlepszych praktyk zarządzania projektami. \n", "<b> Pryncypia Prince2 </b> to nakazy wynikające z najlepszych praktyk zarządzania projektami. \n",
" \n", " \n",
"</div>" "</div>"
] ]
@ -533,7 +566,7 @@
"source": [ "source": [
"<div class=\"alert alert-block alert-success\">\n", "<div class=\"alert alert-block alert-success\">\n",
"\n", "\n",
"<h3> Motywy przewodnie (tematy) Prince2 </h3>\n", "<h2> 3.2. Motywy przewodnie (tematy) Prince2 </h2>\n",
"\n", "\n",
"<b> Motyw przewodni </b> to aspekt zarządzania. \n", "<b> Motyw przewodni </b> to aspekt zarządzania. \n",
" \n", " \n",
@ -563,7 +596,7 @@
}, },
"source": [ "source": [
"### 2. Organizacja\n", "### 2. Organizacja\n",
"Trzeba precyzyjnie przydzielić role w zespole oraz <b> odpowiedzialności </b>." "Trzeba precyzyjnie przydzielić role w zespole oraz <b> odpowiedzialności</b>."
] ]
}, },
{ {
@ -613,7 +646,7 @@
"<div class=\"alert alert-block alert-success\">\n", "<div class=\"alert alert-block alert-success\">\n",
" \n", " \n",
"<h3>Ryzyko</h3> \n", "<h3>Ryzyko</h3> \n",
"Ryzyko to niepewne wydarzenie, które w przypadku zajścia będzie miało wpływ na osiągnięcie założeń projektu.\n", " <b>Ryzyko</b> to niepewne wydarzenie, które w przypadku zajścia będzie miało wpływ na osiągnięcie założeń projektu.\n",
"<BR>\n", "<BR>\n",
" \n", " \n",
"Wartość ryzyka można wyznaczyć mnożąc prawdopodobieństwo zajścia zdarzenia przez wielkość jego wpływu na projekt.\n", "Wartość ryzyka można wyznaczyć mnożąc prawdopodobieństwo zajścia zdarzenia przez wielkość jego wpływu na projekt.\n",
@ -655,7 +688,7 @@
"source": [ "source": [
"<div class=\"alert alert-block alert-success\">\n", "<div class=\"alert alert-block alert-success\">\n",
" \n", " \n",
"<h3>Procesy Prince 2</h3> \n", "<h2>3.3. Procesy Prince2</h2> \n",
" \n", " \n",
"<b> Proces </b> to zestaw aktywności, mających na celu zrelizowanie pewnego określonego celu.\n", "<b> Proces </b> to zestaw aktywności, mających na celu zrelizowanie pewnego określonego celu.\n",
" \n", " \n",
@ -751,7 +784,7 @@
}, },
"source": [ "source": [
"### 6. Zarządzanie punktami granicznymi między etapami\n", "### 6. Zarządzanie punktami granicznymi między etapami\n",
" CEL: dostarczenie przełożonym wystarczającej informacji, by można określić\n", " CEL: dostarczenie przełożonym wystarczającej informacji, by można określić:\n",
" * czy etap zakończył się sukcesem,\n", " * czy etap zakończył się sukcesem,\n",
" * czy (i ewentualnie jak) należy zmodyfikować kolejny etap,\n", " * czy (i ewentualnie jak) należy zmodyfikować kolejny etap,\n",
" * czy (i ewentualnie jak) należy zmodyfikować cały plan,\n", " * czy (i ewentualnie jak) należy zmodyfikować cały plan,\n",
@ -782,7 +815,7 @@
} }
}, },
"source": [ "source": [
"## Trzy grupy interesariuszy\n", "## 3.4. Grupy interesariuszy\n",
"W projekcie zgodnym z PRINCE2 powinny być zawsze reprezentowane trzy główne grupy interesariuszy:\n", "W projekcie zgodnym z PRINCE2 powinny być zawsze reprezentowane trzy główne grupy interesariuszy:\n",
"\n", "\n",
" * Biznes,\n", " * Biznes,\n",
@ -801,7 +834,7 @@
"### Strona reprezentująca Biznes\n", "### Strona reprezentująca Biznes\n",
"„Czy projekt jest ciągle wart realizacji?”. \n", "„Czy projekt jest ciągle wart realizacji?”. \n",
"\n", "\n",
"W Komitecie Sterującycm biznes reprezentowany jest przez **Przewodniczącego**." "W Komitecie Sterującym biznes reprezentowany jest przez **Przewodniczącego**."
] ]
}, },
{ {
@ -842,7 +875,7 @@
"source": [ "source": [
"<div class=\"alert alert-block alert-success\">\n", "<div class=\"alert alert-block alert-success\">\n",
"\n", "\n",
"<h3> Role w Prince 2 </h3>\n", "<h2> 3.5. Role w Prince2 </h2>\n",
" \n", " \n",
"<b> Rola </b> to funkcja w projekcie, do której przypisane są obowiązki i odpowiedzialności. \n", "<b> Rola </b> to funkcja w projekcie, do której przypisane są obowiązki i odpowiedzialności. \n",
"<BR> Role są powierzane konkretnym osobom. W niewielkim projekcie jedna osoba może pełnić kilka ról.\n", "<BR> Role są powierzane konkretnym osobom. W niewielkim projekcie jedna osoba może pełnić kilka ról.\n",
@ -858,7 +891,7 @@
} }
}, },
"source": [ "source": [
"* Komitet Sterujący (ang. Project Board), a w nim: \n", "* **Komitet Sterujący** (ang. Project Board), a w nim: \n",
" * Przewodniczący (Executive),\n", " * Przewodniczący (Executive),\n",
" * Główny Użytkownik (Senior User),\n", " * Główny Użytkownik (Senior User),\n",
" * Główny Dostawca (Senior Supplier)." " * Główny Dostawca (Senior Supplier)."
@ -872,7 +905,7 @@
} }
}, },
"source": [ "source": [
"* Kierownik Projektu (Project Manager) - odpowiedzialny za operacyjne (codzienne) zarządzanie projektem. \n", "* **Kierownik Projektu** (Project Manager) - odpowiedzialny za operacyjne (codzienne) zarządzanie projektem. \n",
"\n", "\n",
"Jego podstawowym obowiązkiem jest dbanie o to, aby projekt wytwarzał wymagane produkty przy założonych celach, którymi są: \n", "Jego podstawowym obowiązkiem jest dbanie o to, aby projekt wytwarzał wymagane produkty przy założonych celach, którymi są: \n",
"\n", "\n",
@ -892,7 +925,7 @@
} }
}, },
"source": [ "source": [
"* Kierownik Zespołu (Team Manager) - odpowiedzialny za dostarczanie określonego produktu o zdefiniowanej jakości w ramach uzgodnionego kosztu i czasu. \n", "* **Kierownik Zespołu** (Team Manager) - odpowiedzialny za dostarczanie określonego produktu o zdefiniowanej jakości w ramach uzgodnionego kosztu i czasu. \n",
"\n", "\n",
"Rola Kierownika Zespołu jest opcjonalna i ma zazwyczaj zastosowanie w dużych projektach." "Rola Kierownika Zespołu jest opcjonalna i ma zazwyczaj zastosowanie w dużych projektach."
] ]
@ -905,7 +938,7 @@
} }
}, },
"source": [ "source": [
"* Nadzór Projektu (Project Assurance) - drugie źródło informacji dla Komitetu Sterującego (przydatne w sytuacji, gdy Kierownik Projektu nie chce ujawniać problemów)." "* **Nadzór Projektu** (Project Assurance) - drugie źródło informacji dla Komitetu Sterującego (przydatne w sytuacji, gdy Kierownik Projektu nie chce ujawniać problemów)."
] ]
}, },
{ {
@ -916,7 +949,7 @@
} }
}, },
"source": [ "source": [
"* Wsparcie Projektu (Project Support) - wsparcie administracyjne oraz wsparcie w zakresie planowania i zarządzania ryzykiem Obsługa Zmian." "* **Wsparcie Projektu** (Project Support) - wsparcie administracyjne oraz wsparcie w zakresie planowania i zarządzania ryzykiem Obsługa Zmian."
] ]
}, },
{ {
@ -927,7 +960,28 @@
} }
}, },
"source": [ "source": [
"* Obsługa Zmian - osoba lub zespół delegowany do oceny żądań zmian lub odstępstw - z reguły są to zmiany poważniejsze niż te, które są w gestii Kierownika Projektu, a za mało istotne, by zawracać głowę Komitetowi Sterującemu." "* **Obsługa Zmian** - osoba lub zespół delegowany do oceny żądań zmian lub odstępstw - z reguły są to zmiany poważniejsze niż te, które są w gestii Kierownika Projektu, a za mało istotne, by zawracać głowę Komitetowi Sterującemu."
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# Podsumowanie\n",
" * Metodologie zarządzania projektami można podzielić na:\n",
" * tradycyjne (sekwencyjne)\n",
" * zwinne (adaptacyjne, iteracyjne)\n",
" * Prince2 zaliczana jest do metodologii sekwencyjnych. \n",
" * Metodologia Prince2 jest bardzo często stosowana w projektach badawczo-rozwojowych finansowanych przez instytucje, gdyż oczekują one:\n",
" * wymiernych produktów,\n",
" * ciągłego raportowania,\n",
" * umiejętności zarządzania ryzykiem.\n",
" * W rzeczywistych projektach stosuje się najczęściej kompilację przeróżnych metodologii.\n",
" "
] ]
} }
], ],

View File

@ -298,8 +298,12 @@
" * Prostej instrukcji do testera\n", " * Prostej instrukcji do testera\n",
" * Scenariusza przypadku testowego\n", " * Scenariusza przypadku testowego\n",
" \n", " \n",
"**Przykład opisu przypadków testowych logowania do systemu:**\n", "**Przykład opisu przypadków testowych z prostą instrukcją:**\n",
"<img src=\"obrazy/przypadki testowe.png\" alt=\"Opis przypadków testowych\" width=900px>" "<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", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
@ -364,7 +367,6 @@
] ]
}, },
{ {
"attachments": {},
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
@ -375,7 +377,6 @@
] ]
}, },
{ {
"attachments": {},
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
@ -392,7 +393,6 @@
] ]
}, },
{ {
"attachments": {},
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
@ -417,7 +417,6 @@
] ]
}, },
{ {
"attachments": {},
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
@ -434,7 +433,6 @@
] ]
}, },
{ {
"attachments": {},
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
@ -465,7 +463,7 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.7.6" "version": "3.8.5"
}, },
"subtitle": "08. Testowanie w programowaniu zwinnym[wykład]", "subtitle": "08. Testowanie w programowaniu zwinnym[wykład]",
"title": "Przygotowanie do projektu badawczo-rozwojowego", "title": "Przygotowanie do projektu badawczo-rozwojowego",

View File

@ -7,7 +7,7 @@
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n", "![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", "<div class=\"alert alert-block alert-info\">\n",
"<h1> Przygotowanie do projektu badawczo-rozwojowego</h1>\n", "<h1> Przygotowanie do projektu badawczo-rozwojowego</h1>\n",
"<h2> 9. <i>Testowanie integracyjne i systemowe</i>[wykład]</h2> \n", "<h2> 9. <i>Testowanie systemowe i adaptacyjne</i>[wykład]</h2> \n",
"<h3>Krzysztof Jassem (2021)</h3>\n", "<h3>Krzysztof Jassem (2021)</h3>\n",
"</div>\n", "</div>\n",
"\n", "\n",
@ -18,37 +18,34 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"<div class=\"alert alert-info alert-success\">\n", "# 1. Testowanie systemowe i adaptacyjne - wyjaśnienie pojęć"
" \n",
"<h3> Błąd </h3> \n",
" \n",
"Błąd to objaw nieoczekiwanego działania programu ujawniony podczas testów.\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
" \n",
"<h3> Defekt </h3> \n",
" \n",
"Defekt to niedoskonałość w kodzie programu.\n",
"Błąd ujawniony w czasie testów świadczy o defekcie w testowanym kodzie.\n",
"</div>"
] ]
}, },
{ {
"attachments": {},
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"<div class=\"alert alert-block alert-success\">\n", "<div class=\"alert alert-block alert-success\">\n",
"<h3>Testowanie systemowe</h3>\n",
" \n", " \n",
"<h3> Testowanie </h3> \n", "Przedmiotem <b>testowania systemowego</b> jest całość oprogramowania zainstalowana w pewnym środowisku wykonawczym.\n",
" * Środowisko testowania musi być zbliżone do środowiska pracy.\n",
" * Testowanie systemowe odbywa się metodą „czarnej skrzynki”.\n",
"</div>"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-success\">\n",
"<h3>Testowanie adaptacyjne</h3>\n",
" \n", " \n",
"Testowanie to proces, który ma na celu wykazanie istnienia defektów w kodzie programu \n", "Przedmiotem <b>testowania adaptacyjnego </b> jest oprogramowanie stanowiące przedmiot dostawy do użytkownika w docelowym środowisku pracy.\n",
"poprzez wywołanie błędów w działaniu.\n", " * Testowana jest zgodność z wymaganiami i potrzebami użytkownika.\n",
" * Testowanie akceptacyjne przeprowadza użytkownik / klient.\n",
"</div>" "</div>"
] ]
}, },
@ -56,9 +53,160 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"## Opracowywanie przypadków testowych dla testowania integracyjnego" "# 2. Typy testowania systemowego"
] ]
}, },
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"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",
" * 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",
" * testy zdroworozsądkowe\n",
" * testy regresywne"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"### Testy dymne\n",
"**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",
"<img src=\"obrazy/testy dymne.png\" alt=\"Przykład testów dymnych\" width=400px>"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"### Testy zdroworozsądkowe\n",
"**Testy zdroworozsądkowe** 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",
"<img src=\"obrazy/sanity test.png\" alt=\"Przykład testów zdroworozsądkowych\" width=900px>"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"### Testy regresywne\n",
"**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>"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"### Raport z testowania funkcjonalnego\n",
"Przypadki testowe w testowaniu funkcjonalnym warto tworzyć w takiej formie, aby łatwo można je było rozszerzyć o wyniki testowania - tworząc raport z testowania.\n",
"\n",
"**Fragment raportu z testowania funckjonalnego:**\n",
"<img src=\"obrazy/raport z testowania.png\" alt=\"Przykład raportu z testowania\" width=900px>\n",
"\n",
"W raporcie z testowania można zawrzeć dodatkowe informacje np. o wydajności działania danego przypadku testowego."
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2.2. Testowanie wydajności (performance testing)\n",
"Zadaniem **testowania wydajności** jest wykazanie, że system nie daje odpowiedzi w wystarczająco krótkim czasie pod ustalonym obciążeniem produkcyjnym, np. przy dużym wolumenie przetwarzanych danych.\n",
"\n",
"**Przykładowy fragment raportu z testowania wydajności systemu tłumaczenia:**\n",
"<img src=\"obrazy/raport z testowania.png\" alt=\"Przykład raportu z testowania\" width=900px>\n",
"\n",
"**Stronę internetową** można bardzo szybko przetestować pod kątem wydajności, korzystając np. z narzędzia dostępnego na stronie https://webspeed.intensys.pl/.\n"
]
},
{
"attachments": {},
"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",
"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",
"\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",
"\n",
"**Przykład raportu graficznego z testu przeciążeń systemu tłumaczenia:**\n",
"<img src=\"obrazy/load test - raport graficzny.png\" alt=\"Przykład raportu z testowania\" width=800px>"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2.4. Testowanie pamięci (memory testing)\n",
"Celem **testowania pamięci** jest wykazanie, że system narusza narzucone wymagania pamięciowe."
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2.5. Testowanie ochrony danych (security testing)\n",
"Proces ma wykazać, że dane nie są chronione w odpowiedni sposób.\n",
" * Przypadki testowe mają wymusić naruszenie mechanizmów ochrony danych."
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2.6. Testowanie konfiguracji\n",
"**Testowanie konfiguracji** ma na celu zweryfikowanie działania systemu w różnych konfiguracjach sprzętowych i programowych.\n",
" * Testowanie może odbywać się za pomocą specjalnie przygotowanej maszyny wirtualnej.\n",
" * Dla serwisów webowych istotne jest testowanie różnych urządzeń oraz różnych typów przeglądarek."
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2.7. Testowanie zgodności wersji\n",
"**Testowanie zgodności wersji** ma na celu wykazanie niezgodności z przeszłymi wersjami programów:\n",
" * testowanie patchów i aktualizacji,\n",
" * testowanie nowych wersji."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB