PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH
Bartosz Marcinkowski
Literatura:
Wrycza S., Analiza i projektowanie systemów informatycznych zarządzania.
Yourdon E., Współczesna analiza strukturalna
Wrycza S., Marcinkowski B., Wyrzykowski K., Język UML 2.0 w modelowaniu systemów informatycznych
Oprogramowanie - zbiór programów, procedur postępowania i związanej z nimi dokumentacji w ramach danego systemu komputerowego.
Inżynieria - polega na takim zastosowaniu nauk ścisłych, przyrodniczych i humanistycznych, poprzez które materia i źródła energii naturalnej stają się użyteczne dla człowieka.
Inżynieria oprogramowania - polega na takim zastosowaniu nauk ścisłych, przyrodniczych i humanistycznych, poprzez które własności i możliwości sprzętu komputerowego stają się, za pośrednictwem oprogramowania, użyteczne dla człowieka.
Metodyka tworzenia SI
Główne elementy:
metody i techniki (diagramy, macierze, pseudokod...),
cykl życia systemu,
narzędzia CASE,
procedura testowania;
Wyróżnia się 3 rodzaje metodyk:
strukturalne,
obiektowe,
społeczne;
Computer-Aided Software Enginering;
Różna funkcyjność:
Edycja diagramów,
Sprawdzenie formalnej poprawności diagramów,
Sprawdzenie 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;
Cykle życia systemów
Reprezentuje powtarzającą się w czasie całość działań prowadzonych od ujawnienia potrzeby budowania systemu aż po zakończenie jego użytkowania;
W cyklu życia obrazowego są kolejne etapy rozwoju i eksploatacji systemu, wraz z ich kontekstem, produktami, wzajemnymi relacjami i zależnościami w czasie;
Do znanych tradycyjnych cykli życia systemu należą:
Cykl kaskadowy (liniowy, klasyczny);
Prototypowe oraz cykl spiralny;
Cykl przyrostowy (i podejścia pochodne);
Kaskadowy cykl życia systemu
Faza Planowania:
identyfikacja problemu,
wizja rozwiązania problemu,
ocena możliwych rozwiązań,
decyzja na temat podjęcia projektu;
Czy mamy cokolwiek robić?
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?
Zakres | Jakość | |
---|---|---|
Koszt | Zasoby |
Informatyzacja hotelu - przykład
Cel:
Poprawa obsługi gości;
Obniżenie kosztów własnych hotelu;
Efekty biznesowe:
Przechwycenie klientów od konkurencji;
Mniejsze koszty własny;
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);
Faza analizy:
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 na prawdę mamy zrobić?
Faza projektowania:
Stworzenie kompletnej dokumentacji systemu;
Weryfikacja stworzonego modelu pod kątem zgodności z wymaganiami i dziedziną przedmiotową;
Jak dokładnie ma to działać?
Faza implementacji:
Kodowanie;
Testowanie na niskim poziomie (moduły);
Gdzie zamawiać pizzę dla programistów?
Faza testowania i walidacji:
Testowanie integracyjne;
Weryfikacja;
Walidacja;
Testy akceptacyjne;
Cośmy tak naprawdę stworzyli?
Weryfikacja:
Czy rezultat danego etapu jest zgodny z tym, co stworzyliśmy wcześniej?
Czy jesteśmy konsekwentni?
Walidacja:
Czy to, co robimy jest ty, o co nam chodzi?
Czy idziemy we właściwym kierunku?
Faza użytkowania i adaptacji:
Przygotowanie środowiska;
Instalacja systemu;
Przeniesienie danych;
Szkolenia;
Udostępnianie manuala;
Audyt;
Konsekwencja (diagnostyka, drobne błędy);
Adaptacja (np. prawo);
Ulepszenie (nowe wymagania, lifting);
Kaskadowy cykl życia systemu:
Planowanie.
Analiza.
Projektowanie.
Implementacja.
Testowanie i walidacja.
Użytkowanie i adaptacja.
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:
Kompletny;
Sprawdzony w praktyce;
Strukturyzowalny (wsparcie narzędzi);
Pozwala na łatwą dekompozycję pracy;
Brak nadmiarowości (koszty!);