340 likes | 525 Views
Inżynieria oprogramowania. Bartosz Marcinkowski Michał Kuciapski. System informacyjny.
E N D
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: • Szef • Sekretarka • Specjalista • Użytkownik • Role nieformalne: • Kontroler • Promotor • Supporter • Analityk
Promotor 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 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 Role w zespole – cd
Metodyka tworzenia SI • Główne elementy: • 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 • Identyfikacja problemu • Wizja rozwiązania problemu • Ocena możliwych rozwiązań • Decyzja na temat podjęcia projektu Czy mamy cokolwiek robić? Planowanie
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 • 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ć? Planowanie Analiza
Kaskadowy cykl życia systemu – cd • Stworzenie kompletnej dokumentacji systemu • Weryfikacja stworzonego modelu pod kątem zgodności z wymaganiami i dziedziną przedmiotową Jak dokładnie ma to działać? Planowanie Analiza Projektowanie
Kaskadowy cykl życia systemu – cd • Kodowanie • Testowanie na niskim poziomie (moduły) Gdzie zamawiać pizzę dla programistów? Planowanie Analiza Projektowanie Implementacja
Kaskadowy cykl życia systemu – cd • Testowanie integracyjne • Weryfikacja • Walidacja • Testy akceptacyjne Cośmy tak naprawdę stworzyli? Planowanie Analiza Projektowanie Implementacja 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
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
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