Projekt Spaghetti. Wykorzystanie podejścia obiektowego w zarządzaniu projektami. Katedra Badań Operacyjnych

Podobne dokumenty
Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

problem w określonym kontekście siły istotę jego rozwiązania

Paweł Kurzawa, Delfina Kongo

Modelowanie i Programowanie Obiektowe

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Omówienie wzorców wykorzystywanych w Prism 5.0. Dominika Różycka

Podstawy Programowania Obiektowego

Wypożyczalnia VIDEO. Technologie obiektowe

Zarządzanie projektami a zarządzanie ryzykiem

Wykład 1 Inżynieria Oprogramowania

Zaawansowane programowanie w C++ (PCP)

Zastosowanie symulacji Monte Carlo do zarządzania ryzykiem przedsięwzięcia z wykorzystaniem metod sieciowych PERT i CPM

UML w Visual Studio. Michał Ciećwierz

Programowanie obiektowe - 1.

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

1/ Nazwa zadania: Dostawa, wdrożenie i serwis informatycznego systemu zarządzania projektami dla Urzędu Miejskiego Wrocławia wraz ze szkoleniem.

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Wzorce projektowe i refaktoryzacja

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Wprowadzenie do programowania aplikacji mobilnych

Wzorce projektowe. dr inż. Marcin Pietroo

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Świat rzeczywisty i jego model

Programowanie obiektowe

Zarządzanie i realizacja projektów systemu Microsoft SharePoint 2010

Wzorce projektowe. dr inż. Marcin Pietroo

Modelowanie. Wykład 1: Wprowadzenie do Modelowania i języka UML. Anna Kulig

Projektowanie Zorientowane na Dziedzinę. ang. Domain Driven Design

KIERUNKOWE EFEKTY KSZTAŁCENIA KIERUNEK STUDIÓW INFORMATYCZNE TECHNIKI ZARZĄDZANIA

Analiza i projektowanie obiektowe 2016/2017. Wykład 8: Przypisywanie obiektom odpowiedzialności (2)

Spis treści. 00 Red. Spis tresci. Wstep..indd :52:08

PODSTAWY ZARZĄDZANIA PROJEKTAMI

Programowanie obiektowe

Problemy projektowania obiektowego. Czy podobne problemy można rozwiązywac w podobny sposób?

Błędy procesu tworzenia oprogramowania (Badania firmy Rational Software Corporation)

Projektowanie logiki aplikacji

Programowanie Zespołowe

Zapewnij sukces swym projektom

Virtual Grid Resource Management System with Virtualization Technology

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Warsztaty FRAME. Sygnatura warsztatu: W1 (W3) Czas trwania: 3 dni

OpenAI Gym. Adam Szczepaniak, Kamil Walkowiak

Procesowa specyfikacja systemów IT

Usługa: Testowanie wydajności oprogramowania

MVVM Light Toolkit. Julita Borkowska

Wstęp [2/2] Wbrew częstemu przekonaniu, nie są one gotowymi rozwiązaniami, to tylko półprodukty rozwiązania.

Projektowanie obiektowe Wzorce projektowe. Gang of Four Wzorce rozszerzeń

Szkolenie 1. Zarządzanie projektami

Testowanie oprogramowania Wzorce projektowe

Zarządzanie Projektami zgodnie z PRINCE2

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

Technologie obiektowe

Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (2) Wykład 10 Inversion of Control Wiktor Zychla 2013

Wprowadzenie do systemów informacyjnych

Zarządzanie ryzykiem teoria i praktyka. Ewa Szczepańska Centrum Projektów Informatycznych Warszawa, dnia 31 stycznia 2012 r.

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat

Diagramy przypadków użycia. WYKŁAD Piotr Ciskowski

Wprowadzenie. Dariusz Wawrzyniak 1


Podstawy Zarządzania Projektami w Organizacjach

Programowanie współbieżne i rozproszone

ZARZĄDZANIE WYMAGANIAMI ARCHITEKTONICZNYMI

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 1

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie

Analiza i projektowanie obiektowe 2017/2018. Wykład 3: Model wiedzy dziedzinowej

Zaawansowane programowanie obiektowe - wykład 5

Szkolenie: Zarządzanie cyklem projektu w Jednostkach Samorządu Terytorialnego

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego. 1. Cel szkolenia

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

6 Metody badania i modele rozwoju organizacji

Projektowanie obiektowe Wzorce projektowe. Gang of Four Wzorce odpowiedzialności

Projektowanie obiektowe Wzorce projektowe

Laboratorium 6 DIAGRAM KLAS (Class Diagram)

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2017

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski

Wykorzystanie standardów serii ISO oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych

Programowanie obiektowe

OPROGRAMOWANIE WSPOMAGAJĄCE ZARZĄDZANIE PROJEKTAMI. PLANOWANIE ZADAŃ I HARMONOGRAMÓW. WYKRESY GANTTA

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Feature Driven Development

Programowanie obiektowe

Projektowanie obiektowe Wzorce projektowe. Gang of Four Strukturalne wzorce projektowe (Wzorce interfejsów)

Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (3) Wykład 11 Repository, Unit of Work Wiktor Zychla 2016

Oracle Designer. Oracle Designer jest jednym z głównych komponentów pakietu Oracle Developer Suite. Oracle Designer wspiera :

Tematy seminariów wg Roger S. Pressman, Praktyczne podejście do oprogramowania, WNT, Zofia Kruczkiewicz

Modelowanie danych, projektowanie systemu informatycznego

Leszek Dziubiński Damian Joniec Elżbieta Gęborek. Computer Plus Kraków S.A.

Aurea BPM. Unikalna platforma dla zarządzania ryzykiem Warszawa, 25 lipca 2013

Programowanie obiektowe

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

PRZEWODNIK PO PRZEDMIOCIE

Zarządzanie projektami w NGO

Wprowadzenie w tematykę zarządzania przedsięwzięciami/projektami. dr inż. Agata Klaus-Rosińska

Projekt przejściowy 2016/2017 BARTOSZ JABŁOŃSKI

Zarządzanie projektami zadaniowymi w oparciu o metodykę PMI

PYTANIA PRÓBNE DO EGZAMINU NA CERTYFIKAT ZAAWANSOWANY REQB KLUCZ ODPOWIEDZI. Część DODATEK

Usługa: Audyt kodu źródłowego

Analiza i projektowanie aplikacji Java

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas

Transkrypt:

Projekt Spaghetti Wykorzystanie podejścia obiektowego w zarządzaniu projektami Łukasz Tync kontakt@lukasztync.com Katedra Badań Operacyjnych Uniwersytet Ekonomiczny w Katowicach

Agenda Wprowadzenie Heterogeniczne środowisko projektowe (przykład) Podejście obiektowe (obiekt, klasa) Projekt jako sieć obiektów (czynności, zasoby, logika biznesowa) Kontekst, Referencja, Interfejs specyficzne obiekty Wzorce projektowe Podsumowanie Pytania / Dyskusja

Projekt Za normą DIN 69901 można w uproszczeniu zdefiniować zasady dotyczące projektu: 1. Zlecenie ma formę pisemną 2. Projekt ma wytyczone cele 3. Projekt jest odgraniczony od innych przedsięwzięć 4. Odpowiedzialność ponosi zleceniodawca 5. Oficjalnie wyznaczono kierownika projektu 6. Zagwarantowano udział wszystkich zainteresowanych osób 7. Zatwierdzono plan ramowy

Przykład MIĘDZYNARODOWA ORGANIZACJA PROSTY PROJEKT PROSTY PROJEKT PROSTY PROJEKT PROSTY PROJEKT INNY PROSTY PROJEKT

Środowisko projektowe dzisiaj globalizacja procesów gospodarczych duża ilość zależności / powiązań pomiędzy projektami rozproszone zespoły projektowe (lokalizacja, organizacja, kompetencje, kultura, strefy czasowe, rotacja ) różnorodność wykorzystywanych metodyk rosnąca dynamika zmian organizacje wirtualne

Konflikt??? ELASTYCZNOŚĆ SZYBKOŚĆ REAKCJI WIRTUALNOŚĆ ROZBUDOWANE PROCEDURY STANDARYZACJA STRUKTURA SZTYWNE METODYKI

Rozwiązanie narzędzia (?) możliwie dokładne modelowanie rzeczywistych powiązań w projekcie odwzorowanie powiązań projektu z otoczeniem i innymi projektami wykorzystanie różnych metodyk zarządzania projektami wszystkie obszary PM łatwa integracja narzędzi łączenie środowisk projektowych ad hoc

Spaghetti Code Niejasny podział odpowiedzialności Struktura trudna do analizy, modyfikacji i rozbudowy Zmiana musi być wprowadzana w wielu miejscach programu Poprawienie jednego błędu powoduje ryzyko powstania kolejnego w trudno identyfikowalnych miejscach

Programowanie Obiektowe Programowanie obiektowe ( ang. Object Oriented Programming OOP) to proces pisania programu, bazujący na dobrze zdefiniowanych modelach projektowych. Modele te stanowią graficzne ilustracje, które reprezentują różne aspekty obiektów, z których pochodzą ich funkcje, oraz właściwości i ich wzajemne oddziaływania. jedną z ważniejszych przesłanek przemawiających za stosowaniem programowania obiektowego, jest możliwość zapanowania nad chaosem, towarzyszącym nieodłącznie tworzeniu aplikacji,...

Stawiam tezę, że przeniesienie podejścia obiektowego na grunt zarządzania projektami może pomóc utworzyć swoisty szkielet, metametodologię elastyczne narzędzie pozwalające w sposób kompleksowy kontrolować projekty całych grup organizacji.

Założenia Metametodologia / Szkielet umożliwiający łatwą integrację istniejących metodyk i narzędzi PM Wspomagana przez system informatyczny Uniwersalna Ustrukturalizowana ale elastyczna

Wielowymiarowa sieć obiektów zamiast odseparowanych od siebie projektów. Coraz trudniej jest traktować projekt jako byt odizolowany od swojego otoczenia. Różna natura powiązań - projekty współdzielą zasoby, następują jedne po drugich, bądź zawierają się w sobie. Zmiany w jednym z nich mogą nieść ryzyko również dla pozostałych.

Struktura sieci projektów ORGANIZACJA Programy A B D E Projekty A.1. A.2. C E.1. A.3. E.2. Etapy C.1. C.3. C.2. C.4.

Budowa obiektowa i komunikacja między obiektami model zbudowany z luźno powiązanych obiektów (projekty, zasoby, logika i reguły biznesowe) obiekty mogą wchodzić ze sobą w interakcje komunikować się ze sobą autonomiczność obiektów w określonym zakresie Wydzielony obszar odpowiedzialności obiekty mogą być składane z mniejszych obiektów (kompozycja), bądź tworzone na wzór innych, przejmując większość ich cech, jednakże możliwe jest ich rozbudowanie o nowe cechy, bądź zachowania (dziedziczenie).

Klasy Wzorzec, na podstawie którego budowane są obiekty. Repozytorium klas powinno być wspólne dla całego środowiska projektowego / organizacji. W ramach określonego obszaru możliwe jest budowanie własnych klas, ale powinna zostać zachowana zgodność z globalnym repozytorium.

Kompozycja i dziedziczenie Kompozycja - tworzenie złożonych obiektów, czy całych systemów poprzez składanie ich z prostszych, istniejących już obiektów jak z klocków Dziedziczenie - możliwość oparcia nowo tworzonej klasy na już istniejącej. W efekcie czego, nowopowstała klasa będzie posiadała w większości te same atrybuty, co klasa matka, przy czym zostanie rozbudowana o dodatkowe atrybuty bądź zachowania.

Obiekty Odwzorowują rzeczywistość (np. obiekt faktura) Atrybuty (np. numer, data wystawienia) Metody (np. utwórz, drukuj, zamknij, ) Składają się z innych obiektów (nagłówek, linie, ) Mogą dziedziczyć po innym obiekcie (obiekt faktura korygująca ma te same atrybuty jak zwykła faktura plus numer faktury korygowanej).

Otoczenie obiektu Warstwowa struktura obiektu WARSTWA INTERFEJSU / KOMUNIKACJI CE PRO DURY WARSTWA REALIZACJI

Komunikacja poprzez interfejsy PROJEKT PERT PROJEKT CPM 4 4 1 INTERFEJS PERT A = Z+0,1*B M = Z+0,6*B B = Z+B 2 3 INTERFEJS CPM M = Z+0,8*B 2 3 1 Łańcuch Krytyczny: Z1 Z2 Z3 Z B

Klasa Context Klasa Context tworzy pewien wydzielony obszar, grupując czynności projektu na tym samym poziomie szczegółowości, tworzące spójną całość. W ramach takiego obszaru działają również przypisane do niego obiekty klasy Manager. Obiekty tej klasy realizują dziedzinowy podział odpowiedzialności (poszczególne obszary PM).

Klasa Context Manager Area (active) Activity Area - Gant Chart (passive) Local Object Repository (logic) Inherited Object Repository (logic)

Object Repository - Dziedziczenie Manager Area X A B Activity Area - Gant Chart A B Local Object Repository Inherited Object Repository A B

Reference i Interface Reference - pusty obiekt, zawierający jedynie wskazanie (referencję) do rzeczywistej instancji obiektu, do którego inne obiekty mogą się odwoływać w sposób identyczny jak do rzeczywistej instancji. Interface - definiuje on sposób komunikacji obiektu, którego jest częścią, poprzez zdefiniowanie zestawu niezbędnych metod. W ramach jednego obiektu może być zaimplementowane wiele interfejsów, które mogą być dowolnie wykorzystywane przez odwołujące się do nich obiekty.

Klasa Activity Obiekty klasy Activity odpowiadają poszczególnym zadaniom, bądź projektom. Każda czynność składa się między innymi z obiektu Context, zawierający z kolei czynności podrzędne (bardziej szczegółowe). Powstaje hierarchiczna struktura obiekt reprezentujący cały projekt zawiera wewnątrz wszystkie podprojekty, a te z kolei zawierają poszczególne zadania.

Klasa Resource Obiekty klasy Resource reprezentują poszczególne zasoby niezbędne do realizacji projektu. Podobnie jak w przypadku, czynności, i tutaj pojawiają się parametry oraz wewnętrzny obiekt klasy context, zawierające odniesienia (refference) do wszystkich zadań, do których dany zasób jest przyporządkowany. Dodatkowo mogą tutaj się również pojawić indywidualne czynności, które zasób musi wykonać, a które nie są częścią jakiegokolwiek innego projektu. Jeżeli odwzorujemy te zadania również na wykresie Ganta, uzyskamy indywidualny harmonogram zadań danego zasobu.

Klasy Activity i Resource Projekt A Czynność A.1. Czynność A.2 Czynność A.3, Czynność A.4. Projekt B Czynność B.1. Czynność B.2. Czynność B.3. Zasób X Referencja do Czynności A.1. Referencja do czynności B.2. Czynność X.1.

Klasa Manager Obiekty klasy Manager odpowiadają za kontrolę poszczególnych obszarów zarządzania projektem. Na obiektach tej klasy opiera się wertykalny podział odpowiedzialności. Poszczególne obiekty, w ramach danego kontekstu, będą odpowiadać za określony obszar zarządzania projektem Proponuje się, by tylko te obiekty mogły się komunikować z obiektami spoza kontekstu, w którym się znajdują

Podział odpowiedzialności ORGANIZACJA Program A Projekt A.1. Projekt A.2. MANAGERY Etap A.1.1. Etap A.1.2. Etap A.2.1. Program B Projekt B.1. Budget Resources Observer Planer Risk

Propozycje managerów Budget Manager koszty (budżet) Resource Manager zasoby ludzkie, zamówienia Quality Manager jakość Risk Manager ryzyko Observer komunikacja Knowledge Manager

Resource Manager Manager Area (active) Inherited Object Repository (logic) Local Object Repository (logic) Activity Area - Gant Chart (passive)

Budowa modelu abstrakcyjnego - kroki Zaczynając od poziomu całej organizacji 1. Tworzymy Context, będący kontenerem dla wszystkich projektów i programów prowadzonych przez tę organizację. 2. Utworzenie Object Repository dla tego contextu. 3. Zdefiniowanie managerów dla danego contextu, przypisanie im zakresów odpowiedzialności i sparametryzowanie. 4. Wstawienie głównych projektów organizacji jako czynności w activity area, co równocześnie stworzy oddzielny context dla każdego projektu. 5. Jeżeli to konieczne, można rozbudować context każdej z czynności o nowe klasy, tworząc local repository. Rekurencyjne powtarzanie wszystkich kroków od ogółu do szczegółu.

Wzorce Projektowe Koncepcja przeniesiona z architektury, z tzw. Języka Wzorców, zakładała definiowanie wzorca, który zawierał opis konkretnego, często spotykanego problemu, wraz z jego rozwiązaniem. Wzorce definiowane są na poziomie abstrakcji, co pozwala na ich implementację przy rozwiązywaniu wielu rzeczywistych, często różnorodnych problemów.

Wzorce Projektowe Obserwator obserwuje obiekty za które jest odpowiedzialny i informuje o zmianach wszystkie zainteresowane obiekty. Adapter dostosowuje istniejący interfejs jednego obiektu do obiektu z niego korzystającego. Fabryka abstrakcyjna dostarcza interfejs do tworzenia całych rodzin spokrewnionych lub zależnych od siebie obiektów bez konieczności określania ich klas rzeczywistych knowledge manager

Obserwator Z1 Z2 Z1 Z2 Z1 Z2

Zastosowanie w analizie ryzyka sygnały wczesnego ostrzegania rozbudowany zestaw reguł identyfikacji ryzyk (różne poziomy wrażliwości ) Przejrzyście zagregowana informacja na poszczególnych poziomach zarządzania Analiza sieci powiązań i identyfikacja powiązań ryzykownych (metody socjometryczne? ) Identyfikowanie ryzykownych wzorców

Wzorzec Proxy Mechanizmy kontroli dostępu do poszczególnych kontekstów Tzw. pośrednik wirtualny: Wstępne planowanie Zasoby zbiorowe

Wzorzec Fasada Wzorzec fasada zapewnia jeden, zunifikowany interfejs dla całego zestawu interfejsów określonego podsystemu. Fasada tworzy nowy interfejs wysokiego poziomu, który powoduje, że korzystanie z całego podsystemu staje się zdecydowanie łatwiejsze

Podsumowanie Korzyści? ustrukturalizowanie całego środowiska projektowego jasne reguły łączenia różnych metodyk (na różnych poziomach organizacji lub dla różnych obszarów PM) możliwość rozbudowy o własne narzędzia oraz łączenie ich z istniejącymi procedurami poprawa komunikacji (zwłaszcza pomiędzy projektami) możliwość identyfikacji i kontroli również nieoczywistych powiązań pomiędzy projektami ucząca się struktura możliwość integracji z otoczeniem zewnętrznym możliwość automatyzacji powtarzalnych procedur

Dalsze kroki rozwoju Analiza literatury (do tej pory znaleziono niewiele informacji na temat wykorzystania podejścia obiektowego w PM) Dokładny opis managerów odpowiedzialnych za poszczególne obszary zarządzania projektami zgodnie z PMBOK. Projekt systemu informatycznego wspierającego prezentowane podejście.

DZIĘKUJĘ ZA UWAGĘ Łukasz Tync kontakt@lukasztync.com