Inżynieria oprogramowania Bartosz Marcinkowski Michał Kuciapski
System informacyjny System informacyjny: Jest to celowe zestawienie ludzi, danych, procesów, sposobów komunikacji, infrastruktury sieciowej i urządzeń komputerowych, które to elementy współdziałają w celu zapewnienia codziennego funkcjonowania organizacji (transakcyjne przetwarzanie danych) jak również wspierający rozwiązywanie problemów i podejmowanie decyzji przez kadrę kierowniczą (systemy raportowania i wspomagania decyzji) System informacyjny niekoniecznie musi zawierać elementy infrastruktury IT
System informatyczny System informatyczny może być jedną z części składowych systemu informacyjnego oba terminy używane są jako synonimy - niesłusznie System informatyczny to oparte na technologii komputerowej rozwiązanie pojedynczego problemu biznesowego. Może być to aplikacja, rozwiązanie sprzętowe lub (najczęściej) połączenie obu tych składników System informacyjny może się składać z więcej niż jednego systemu informatycznego
Budowa zespołu Projekty informatyczne są realizowane przez zespoły ludzkie W zespołach tych wyróżnić można role formalne oraz nieformalne W efektywnym zespole: Są zapewnione role Każdy zna zarówno rolę swoją, jak i innych Jest przywódca Pułapki w budowie zespołu: Źle określone zadania Zbyt mało pracowników Zbyt niskie kwalifikacje Zła kombinacja styli zachowania
Budowa zespołu – cd Zła kombinacja styli zachowania: Rodzi irytację Prowadzi do różnicy zdań Zwiększa ilość popełnianych błędów W skrajnych przypadkach prowadzi do utraty zdolności do pracy
Role w zespole Role formalne: Role nieformalne: Szef Sekretarka Specjalista Użytkownik Role nieformalne: Kontroler Promotor Supporter Analityk
Role w zespole – cd Promotor Manipulacyjny Bardzo emocjonalny Chce szybkich zmian Globalista Stymuluje Spontaniczny Głośno myśli Manipulacyjny Konkurencyjny Prowokacyjny Głośny Niesystematyczny
Role w zespole – cd Kontroler Niecierpliwy Naturalny przywódca Aktywny i ambitny Niezależny Sprawny Kompetentny Odpowiedzialny Niecierpliwy Niepodtrzymujący Arogancki Żądny władzy Nieinspirujący
Role w zespole – cd Analityk Stabilizujący Koncepcyjny Zbieracz faktów Dobry słuchacz Bardzo systematyczny Można na nim polegać Niekomunikatywny Introwertyczny Trochę nudny Niecierpliwy i wątpiący Unika konfliktów
Metodyka tworzenia SI Główne elementy: Wyróżnia się 3 rodzaje metodyk: Metody i techniki (diagramy, macierze, pseudokod…) Cykl życia systemu Narzędzia CASE Procedury testowania Wyróżnia się 3 rodzaje metodyk: Strukturalne Obiektowe społeczne
Projektowanie Projektowanie systemu informacyjnego jest procesem. Jest to skończony ciąg kroków (czynności) powiązanych ze sobą relacjami, które mają doprowadzić do osiągnięcia zamierzonego celu w postaci systemu spełniającego przyjęte wymagania. W procesie projektowania możliwe są pętle. Sam proces projektowania jest jednym z elementów większego procesu – cyklu życia systemu informacyjnego.
Metodyki projektowania Zstępujące (ang. Top-down) Wstępujące (ang. Bottom-up)
Cykl życia systemu Reprezentuje powtarzającą się w czasie całość działań prowadzonych od ujawnienia potrzeby budowy systemu aż po zakończenie jego użytkowania W cyklu życia obrazowane są kolejne etapy rozwoju i eksploatacji systemu, wraz z ich kontekstem, produktami, wzajemnymi relacjami i zależnościami w czasie Do najbardziej znanych cykli życia systemu należą: Cykl kaskadowy (liniowy, klasyczny) Cykl spiralny Cykl przyrostowy (i podejścia pochodne)
Elementy faz cyklu W każdej fazie określa się: Cele Działania Kolejność realizowanych działań Punkty przeglądu Produkty i dokumentacje
Kaskadowy cykl życia systemu Planowanie Identyfikacja problemu Wizja rozwiązania problemu Ocena możliwych rozwiązań Decyzja na temat podjęcia projektu Czy mamy cokolwiek robić?
Planowanie Należy odpowiedzieć sobie na pytania: W jaki sposób system przyczyni się do rozwiązania problemu? Jakie konkretne efekty biznesowe osiągną udziałowcy systemu po zrealizowaniu celu? Czy cel jest uzasadniony ekonomicznie? Czy cel jest osiągalny w kontekście istniejących ograniczeń (budżet, zasoby, technologia, uwarunkowania o charakterze organizacyjnym na etapie użytkowania, prawo) Jaki konkretnie miałby być zakres systemu? Jakie jest ryzyko podjęcia się tego projektu?
Planowanie – cd Zakres Jakość Koszt Zasoby
Planowanie – cd Informatyzacja hotelu: przykład Cele: Poprawa obsługi gości Obniżenie kosztów własnych hotelu Efekty biznesowe: Przechwycenie klientów od konkurencji Mniejsze koszty własne Przyjęte kryteria: Zwiększenie liczby gości o 10% w pierwszym roku użytkowania systemu Wskaźnik (kosztyWłasne / gość) w pierwszym roku powinien spaść o 20% ceteris paribus (z pominięciem takich czynników jak spadek zatrudnienia czy fluktuacje płac)
Kaskadowy cykl życia systemu – cd Planowanie Analiza Szczegółowe badanie dziedziny przedmiotowej Wyszukanie potencjalnych usprawnień Identyfikacja podstawowych problemów na styku przyszły system – organizacja Identyfikacja i dokładna specyfikacja wymagań Co my tak naprawdę mamy zrobić?
Kaskadowy cykl życia systemu – cd Planowanie Analiza Projektowanie Stworzenie kompletnej dokumentacji systemu Weryfikacja stworzonego modelu pod kątem zgodności z wymaganiami i dziedziną przedmiotową Jak dokładnie ma to działać?
Kaskadowy cykl życia systemu – cd Planowanie Analiza Projektowanie Implementacja Kodowanie Testowanie na niskim poziomie (moduły) Gdzie zamawiać pizzę dla programistów?
Kaskadowy cykl życia systemu – cd Planowanie Analiza Projektowanie Implementacja Testowanie integracyjne Weryfikacja Walidacja Testy akceptacyjne Cośmy tak naprawdę stworzyli? Testowanie i walidacja
Testowanie i walidacja Weryfikacja Czy rezultat danego etapu jest zgodny z tym, co stworzyliśmy wcześniej? Czy jesteśmy konsekwentni? Walidacja Czy to, co robimy, jest tym, o co nam chodziło? Czy idziemy we właściwym kierunku?
Kaskadowy cykl życia systemu – cd Planowanie Analiza Projektowanie Implementacja Testowanie i walidacja Użytkowanie i adaptacja
Użytkowanie i adaptacja Przygotowanie środowiska Instalacja systemu Przeniesienie danych Szkolenia Udostępnienie manuala Audyt Konserwacja (diagnostyka, drobne błędy) Adaptacja (np. prawo) Ulepszanie (nowe wymagania, lifting)
Zalety Kompletny Sprawdzony w praktyce Strukturyzowalny (wsparcie narzędzi) Pozwala na łatwą dekompozycję pracy Brak nadmiarowości (koszty!)
Wady Wszystkie wymagania muszą być znane na początku Brak sprzężenia zwrotnego wymagania – efekty (bardzo późna walidacja) Duża bezwładność (technologia) Olbrzymie koszty usuwania błędów popełnionych na wczesnych etapach oraz korekty wymagań Problemy z alokacją zasobów i znużeniem zespołu
Spiralny cykl życia systemu
Zalety Bardzo elastyczny (zmiany otoczenia, alokacja zasobów, niestabilność wymagań) Nieustanna walidacja Niskie ryzyko niepowodzenia (zakres, jakość)
Wady Długotrwałe dochodzenie do rozwiązania docelowego Dodatkowe koszty tworzenia kolejnych prototypów Kłopoty z zarządzaniem Presja na zmniejszenie jakości
Podejście przyrostowe Stopniowo realizowane w całości kolejne usługi systemu Funkcje te są na bieżąco walidowane przez użytkowników Po każdym przyroście można zakończyć budowę systemu (ucierpi zakres, nie jakość) Wymagania mogą być tylko częściowo zidentyfikowane Klient szybko otrzymuje jakiś rezultat Niestety czasochłonny Kłopoty z dekompozycją usług
Podejście przyrostowe – cd
Narzędzia CASE Computer-Aided Software Engineering Różna funkcjonalność: Edycja diagramów Sprawdzanie formalnej poprawności diagramów Sprawdzanie spójności modelu Generowanie kodu strukturalnego Inżynieria zwrotna Round-Trip Engineering Wyróżniające się narzędzia: IBM Rational Software Architect (kontynuacja rodziny Rational Rose) Sparx Systems Enterprise Architect Poseidon for UML
Dziękuję za uwagę