You are on page 1of 31

METODYKA PROJEKTOWANIA SYSTEMÓW INFORMACYJNYCH 1

Wprowadzenie
do
projektowania SI

http://virtual2.isep.pw.edu.pl/
PW – Włodzimierz Dąbrowski &
Andrzej Stasiak
METODYKA PROJEKTOWANIA SYSTEMÓW INFORMACYJNYCH 2

Cele przedmiotu:
Nauczyć:
• tworzenia modeli: wymagań, analitycznych,
projektowych i wdrożeniowych;
• dokumentowania prac projektowych;
• wykorzystania narzędzi CASE w procesach
projektowania;
• posługiwania się dokumentacją firmową narzędzi
CASE w praktyce inżynierskiej.

PW – Włodzimierz Dąbrowski &


Andrzej Stasiak
METODYKA PROJEKTOWANIA SYSTEMÓW INFORMACYJNYCH 3

Cele przedmiotu (2):


Zapoznać:
• terminologią z zakresu projektowania
obiektowego;
• składnią, semantyką i pragmatyką
stosowania rozszerzeń języków modelowania
obiektowego;
• modelowaniem statyki i dynamiki systemów;
• modelami architektury oprogramowania;

PW – Włodzimierz Dąbrowski &


Andrzej Stasiak
METODYKA PROJEKTOWANIA SYSTEMÓW INFORMACYJNYCH 4

Literatura:

rok
Autor Tytuł
wydania
obowiązkowa:
Dąbrowski W., Modelowanie systemów informatycznych w języku 2007
Stasiak A., UML 2.1, , WNT, Warszawa
Wolski M.
Booch G., "UML przewodnik użytkownika", WNT, Warszawa 2005
Rambaugh J.,
Jacobson I.
Kazimierz Subieta : "Obiektowość w projektowaniu i bazach danych", 1998
Akademicka Oficyna Wydawnicza PLJ, Warszawa

PW – Włodzimierz Dąbrowski &


Andrzej Stasiak
METODYKA PROJEKTOWANIA SYSTEMÓW INFORMACYJNYCH 5

Plan wykładu
• Przedmiot i zagadnienia inżynierii
oprogramowania
• Kryzys oprogramowania
• Złożoność projektu oprogramowania
• Modelowanie pojęciowe
• Pojęcie metodyki
• Modele cyklu życia oprogramowania
– Model kaskadowy (wodospadowy)
– Model spiralny
– Prototypowanie
– Montaż z gotowych komponentów

PW – Włodzimierz Dąbrowski &


Andrzej Stasiak
METODYKA PROJEKTOWANIA SYSTEMÓW INFORMACYJNYCH 6

Przedmiot inżynierii oprogramowania


• Inżynieria oprogramowania jest wiedzą techniczną dotyczącą
wszystkich faz cyklu życia oprogramowania. Traktuje
oprogramowanie jako produkt, który ma spełniać potrzeby
techniczne, ekonomiczne lub społeczne.
• Dobre oprogramowanie powinno być:
– zgodne z wymaganiami użytkownika,
– niezawodne,
– efektywne,
– łatwe w konserwacji,
– ergonomiczne.
• Produkcja oprogramowania jest procesem składającym się z
wielu faz.
Kodowanie (pisanie programów) jest tylko jedną z nich,
niekoniecznie najważniejszą.
• Inżynieria oprogramowania jest wiedzą empiryczną, syntezą
ludzkiego doświadczenia z tysięcy ośrodków zajmujących
się budową oprogramowania.
Wiedza ta nie jest i nigdy nie była pochodną akademickich
teorii.
PW – Włodzimierz Dąbrowski &
Andrzej Stasiak
METODYKA PROJEKTOWANIA SYSTEMÓW INFORMACYJNYCH 7

ŚRODOWISKO INŻYNIERII
OPROGRAMOWANIA
• Niezbędną platformę dla profesjonalnego tworzenia
(projektowania i produkcji oprogramowania) systemów
informatycznych stanowi tzw.
„ŚRODOWISKO INŻYNIERII OPROGRAMOWANIA”
• Integralne składowe inżynierii oprogramowania to:
Metody:
• strategie rozwiązywania określonych problemów.
Procedury:
• tryb postępowania, zarządzania i kontroli procesów inżynierii
oprogramowania.
Narzędzia CASE:
• oprogramowanie implementujące metody i procedury,
automatyzujące czynności poszczególnych procesów i
wspomagające Inżynierów w poszczególnych fazach cyklu życia
oprogramowania.
PW – Włodzimierz Dąbrowski &
Andrzej Stasiak
METODYKA PROJEKTOWANIA SYSTEMÓW INFORMACYJNYCH 8

Zagadnienia inżynierii oprogramowania


• Sposoby prowadzenia przedsięwzięć informatycznych.
• Techniki planowania, szacowania kosztów,
harmonogramowania i monitorowania przedsięwzięć
informatycznych:
• Metody analizy i projektowania systemów.
• Techniki zwiększania niezawodności oprogramowania.
• Sposoby testowania systemów i szacowania
niezawodności.
• Sposoby przygotowania dokumentacji technicznej i
użytkowej .
• Procedury kontroli jakości.
• Metody redukcji kosztów konserwacji (usuwania błędów,
modyfikacji i rozszerzeń).
• Techniki pracy zespołowej i czynniki psychologiczne
wpływające na efektywność pracy.
PW – Włodzimierz Dąbrowski &
Andrzej Stasiak
METODYKA PROJEKTOWANIA SYSTEMÓW INFORMACYJNYCH 9

Dlaczego Inżynieria?
• Dawno już bowiem zrozumiano, że jedynym ekonomicznym i
skutecznym sposobem kontrolowania wszelkich projektów jest
stosowanie metod inżynierii.
• Inżynieria wymaga podejścia systematycznego, opartego na stosowaniu
odpowiednich metodologii. Metodologie zaś prowadzą do
szczegółowych projektów i modeli, które stanowią dopiero podstawę
realizacji produktu.
• Inżynieria to podejście zdyscyplinowane, kontrolowane i przewidywalne
- z dużą dozą pewności możemy zakładać, że wytwarzany produkt
będzie spełniał stawiane przed nim wymagania.
• Oprogramowanie jest bez wątpienia produktem technologicznym i
obecnie jednym z najbardziej złożonych. Staje się strategicznym
czynnikiem funkcjonowania większości instytucji, które borykaja się z
coraz poważniejszymi problemami (również wynikającymi ze złej jakości
oprogramowania).

PW – Włodzimierz Dąbrowski &


Andrzej Stasiak
METODYKA PROJEKTOWANIA SYSTEMÓW INFORMACYJNYCH 10

Dotychczasowa praktyka tworzenia oprogramowania:


• Programowanie jest rodzajem sztuki, wykonywanej, przez kilku
ARTYSTOW -programistów tworzących kod za zamkniętymi
drzwiami. Nikt z zewnątrz naprawdę nie rozumiał ich
oprogramowania (właściwości aplikacji).
• Programiści stosują podejście ad hoc (tzn. bez poprzedzającej
analizy, przegotowania organizacji itp.).
• Rozmowy z użytkownikiem często przebiegały w następujący
sposób:
– Specyfikacje?
– Zawracanie głowy - ustalimy szczegóły gdy będą potrzebne.
– Makieta lub prototyp?
– Szkoda czasu, przecież –wiemy czego chce Zamawiający.
– Projekt?
– Powstanie w czasie lub po zakończeniu kodowania.
– Testowanie?
– Oczywiście przećwiczmy jeden lub dwa przykłady testowe i pokażemy, że
program działa.
– Dokumentacja?
– Po co? Jesteśmy pod ręką, wszystko możemy wyjaśnić.
– Nadzór autorski?
– Tak oczywiście jeśli dobrze będą płacili. PW – Włodzimierz Dąbrowski &
Andrzej Stasiak
METODYKA PROJEKTOWANIA SYSTEMÓW INFORMACYJNYCH 11

Dlaczego borykamy się z poważnymi problemami


wynikającymi z jakości oprogramowania?
• Wynikają one w ogromnej mierze z faktu, że ich obecnie
stosowane oprogramowanie (aplikacje programowe) było
projektowane i rozwijane z pominięciem wszelkich zasad
inżynierii.
• Nagminny brak:
• specyfikacji wymagań,
• specyfikacji funkcjonowania systemu (przedsiębiorstwa),
• specyfikacji projektowej,
• specyfikacji testów odbiorczych oprogramowania jako
produktu docelowego (końcowego)

• Szkodliwy (szczególnie w naszym kraju) wpływ romantycznej


idei Artysty Programisty, który w twórczym uniesieniu
samotnie tworzył kod przy pomocy swego wiernego,
wspaniałego PeCeta! PW – Włodzimierz Dąbrowski &
Andrzej Stasiak
METODYKA PROJEKTOWANIA SYSTEMÓW INFORMACYJNYCH 12

Kryzys oprogramowania (1)


• Sprzeczność pomiędzy odpowiedzialnością, jaka spoczywa na
współczesnych SI, a ich zawodnością wynikającą ze złożoności i
ciągle niedojrzałych metod tworzenia i weryfikacji
oprogramowania.
• Ogromne koszty utrzymania oprogramowania.
• Niska kultura ponownego użycia wytworzonych komponentów
projektów i oprogramowania; niski stopień powtarzalności
poszczególnych przedsięwzięć,
• Długi i kosztowny cykl tworzenia oprogramowania, wysokie
prawdopodobieństwo niepowodzenia projektu
programistycznego.
• Długi i kosztowny cykl życia SI, wymagający stałych (często
globalnych) zmian.
• Eklektyczne, niesystematyczne narzędzia i języki
programowania.

PW – Włodzimierz Dąbrowski &


Andrzej Stasiak
METODYKA PROJEKTOWANIA SYSTEMÓW INFORMACYJNYCH 13

Kryzys oprogramowania (2)


• Frustracje projektantów oprogramowania i
programistów wynikające ze zbyt szybkiego postępu w
zakresie języków, narzędzi i metod oraz uciążliwości i
długotrwałości procesów produkcji, utrzymania i
pielęgnacji oprogramowania.
• Uzależnienie organizacji od systemów komputerowych
przyjętych technologii przetwarzania informacji, które
nie są stabilne w długim horyzoncie czasowym.
• Problemy współdziałania niezależnie zbudowanego
oprogramowania, szczególnie istotne przy
dzisiejszych tendencjach integracyjnych.
• Problemy przystosowania istniejących i działających
systemów do nowych wymagań, tendencji i platform
sprzętowo-programowych.
PW – Włodzimierz Dąbrowski &
Andrzej Stasiak
METODYKA PROJEKTOWANIA SYSTEMÓW INFORMACYJNYCH 14

Czy tworzenie systemów informacyjnych


zawsze musi tak wyglądać?
• Otrzymane zadania: Hura!!! Już ich mamy! - Pełnia szczęścia.
• Wynik uzgodnień: Z kim przyszło nam pracować? Ale trudno i tak
będziemy lepiej od użytkownika znali jego rzeczywistość - jeśli
lepiej zapłaci.
• Wynik analizy: Czego od nas chcą. My dopiero od trzech miesięcy
poznajemy ich rzeczywistość, a Oni ją tworzą od -nastu lat
• Pierwsza wersja: Przecież to tylko prototyp. Za takie pieniądze i w
takim czasie nikt nie stworzyłby niczego lepszego.
• Wersja ostateczna: No cóż, trudno. Byliśmy zmuszeni poznać
własny produkt - faktycznie nie da się z nim pracować, ale nie
wiedzieć jakim cudem użytkownikom wydaje się potrzebny - tylko
nie robi tego co naprawdę było im potrzebne. Ten system to
wodotrysk którym zawsze chwali się dyrekcja jako własnym
dziełem.
• To czego oczekiwał klient: Już teraz wiemy po co im był nasz
system. Na szczęście każdy oczekiwał czegoś innego. Jeśli
będziemy tworzyć kolejny system - będzie on już doskonały.
PW – Włodzimierz Dąbrowski &
Andrzej Stasiak
METODYKA PROJEKTOWANIA SYSTEMÓW INFORMACYJNYCH 15

Walka z kryzysem oprogramowania


• Stosowanie technik i narzędzi ułatwiających pracę nad złożonymi
systemami;
• Korzystanie z metod wspomagających analizę nieznanych
problemów oraz ułatwiających wykorzystanie wcześniejszych
doświadczeń;
• Usystematyzowanie procesu wytwarzania oprogramowania, tak,
aby ułatwić jego planowanie i monitorowanie;
• Wytworzenie wśród producentów i nabywców budowa dużego
systemu wysokiej jakości wymagającym profesjonalnego
podejścia.

• Podstawowym powodem kryzysu


oprogramowania jest złożoność
produktów informatyki i
procesów ich wytwarzania.
PW – Włodzimierz Dąbrowski &
Andrzej Stasiak
METODYKA PROJEKTOWANIA SYSTEMÓW INFORMACYJNYCH 16

Jak walczyć ze złożonością?


Zasada
Zasada sprzyjania
Zasada Zasada
ponownego naturalnym
dekompozycji: abstrakcji:
użycia: /ludzkim
własnościom:
eliminacja, ukrycie
lub pominięcie
mniej istotnych dopasowanie
szczegółów modeli pojęciowych
rozdzielenie rozważanego wykorzystanie i modeli
złożonego przedmiotu lub wcześniej realizacyjnych
problemu na mniej istotnej wytworzonych systemów do
podproblemy, które informacji; schematów, metod, wrodzonych
można rozpatrywać wyodrębnianie komponentów ludzkich własności
i rozwiązywać cech wspólnych i projektu, psychologicznych,
niezależnie od niezmiennych dla komponentów instynktów oraz
siebie i niezależnie pewnego zbioru oprogramowania, mentalnych
od całości. bytów i itd. mechanizmów
wprowadzaniu percepcji i
pojęć lub symboli rozumienia świata.
odznaczających
takie cechy

PW – Włodzimierz Dąbrowski &


Andrzej Stasiak
METODYKA PROJEKTOWANIA SYSTEMÓW INFORMACYJNYCH 17

Modelowanie pojęciowe

Projektant i programista muszą dokładnie wyobrazić sobie problem oraz


metod jego rozwiązania. Zasadnicze procesy tworzenia oprogramowania
zachodzą w ludzkim umyśle i nie są związane z jakimkolwiek językiem
programowania.

Pojęcia modelowania pojęciowego (ang. conceptual modeling) oraz modelu


pojęciowego (ang. conceptual model) odnoszą się procesów myślowych
wyobrażeń towarzyszących pracy nad oprogramowaniem.

Modelowanie pojęciowe jest wspomagane przez środki wzmacniające ludzką


pamięć i wyobraźnię. Służą one do przedstawienia rzeczywistości
opisywanej przez dane, procesów zachodzących w rzeczywistości, struktur
danych oraz programów składających się na konstrukcję systemu.

PW – Włodzimierz Dąbrowski &


Andrzej Stasiak
METODYKA PROJEKTOWANIA SYSTEMÓW INFORMACYJNYCH 18

Perspektywy modelowania pojęciowego


Perspektywy:
• Percepcja rzeczywistego świata
• Analityczny model rzeczywistości
• Model struktur danych i procesów SI

• Trwałą tendencją w rozwoju metod i


narzędzi projektowania oraz konstrukcji
SI jest dążenie do minimalizacji luki
pomiędzy myśleniem o rzeczywistym
problemie a myśleniem o danych i
procesach zachodzących na danych.

PW – Włodzimierz Dąbrowski &


Andrzej Stasiak
METODYKA PROJEKTOWANIA SYSTEMÓW INFORMACYJNYCH 19

Co to jest metodyka?
• Metodyka TSI to spójny, logicznie uporządkowany zbiór metod i
procedur o charakterze technicznym i organizatorskim
pozwalających realizować cykl życia systemu przez zespół
wykonawczy.
• Metodyka jest to zestaw pojęć, notacji, modeli, języków, technik i
sposobów postępowania służący do analizy dziedziny
stanowiącej przedmiot projektowanego systemu oraz do
projektowania pojęciowego, logicznego i/lub fizycznego.

• Metodyka jest powiązana z notacją służącą do dokumentowania


wyników faz projektu (pośrednich, końcowych), jako środek
wspomagający ludzką pamięć i wyobraźnię i jako środek
komunikacji w zespołach oraz pomiędzy projektantami i klientem.

PW – Włodzimierz Dąbrowski &


Andrzej Stasiak
METODYKA PROJEKTOWANIA SYSTEMÓW INFORMACYJNYCH 20

Metodyki tworzenia systemów


informatycznych
• Składniki metodyk to:
– formalizmy, modele opisu rzeczywistości - dziedziny przedmiotowej, jej statyki i
dynamiki,
– strukturyzacja procesu TSI w postaci odpowiedniej procedury etapów,
podetapów i poszczególnych zadań,
– szczegółowe metody i techniki TSI - jego dokumentowania w nawiązaniu do
teoretycznych konstrukcji wynikających z przyjętych formalizmów/ wraz z
adekwatną symboliką graficzną,
– narzędzia wspomaganego komputerem TSI w tym ich prototypowania,
– specyfikacja wymagań merytorycznych wobec poszczególnych twórców
interdyscyplinarnego zespołu wykonawczego tworzącego SI oraz odpowiednich
materiałów szkoleniowych,
– kryteria oceny jakości projektu i systemu oraz mechanizmy jej kontroli,
– zasady planowania i sterowania rozwojem systemu.

• Metodyka ustala:
– fazy projektu, role uczestników projektu,
– modele tworzone w każdej z faz,
– scenariusze postępowania w każdej z faz,
– reguły przechodzenia od fazy do następnej fazy,
– notacje, których należy używać,
– dokumentację powstającą w każdej z faz.
PW – Włodzimierz Dąbrowski &
Andrzej Stasiak
METODYKA PROJEKTOWANIA SYSTEMÓW INFORMACYJNYCH 21

Optymalna metodyka powinna spełniać


następujące wymagania:
• winna objąć cały cykl życia systemu od analizy systemu do
adaptacji i modyfikacji przy jednoczesnym umożliwieniu płynnych
przejść pomiędzy poszczególnymi fazami,
• procedura TSI winna być wsparta różnorodnymi metodami
dostosowania do specyfiki podejścia, metodami, technikami i
narzędziami komputerowymi ułatwiającymi zrozumienie
problemów, ich analizę i rozwiązanie,
• metodyka winna ułatwiać porozumiewanie się pomiędzy różnymi
grupami zawodowymi tworzącymi nowy SI - dotyczy to zwłaszcza
wstępnych faz procesu TSI, gdzie winno być zaoferowane
narzędzie -formalizm- wspólny język informatyków i
użytkowników,
• Metodyka winna być stosunkowo łatwa
do opanowania i stosowalna do dużej
klasy problemów oraz zawierać
mechanizmy ewolucyjności i
modyfikowalności. PW – Włodzimierz Dąbrowski &
Andrzej Stasiak
METODYKA PROJEKTOWANIA SYSTEMÓW INFORMACYJNYCH 22

Cykl życia oprogramowania


• Faza strategiczna (definicji): określenie strategicznych celów,
planowanie i definicja projektu
• Określenie wymagań
• Analiza: dziedziny przedsiębiorczości, wymagań systemowych
• Projektowanie' projektowanie pojęciowe, projektowanie logiczne
• Implementacja/konstrukcja, rozwijanie, testowanie, dokumentacja
• Testowanie
• Dokumentacja
• Instalacja
• Przygotowanie użytkowników, akceptacja, szkolenie
• Działanie, włączając wspomaganie tworzenia aplikacji
• Utrzymanie, konserwacja, pielęgnacja

PW – Włodzimierz Dąbrowski &


Andrzej Stasiak
METODYKA PROJEKTOWANIA SYSTEMÓW INFORMACYJNYCH 23

Modele cyklu życia oprogramowania

• Model kaskadowy (wodospadowy)

• Model spiralny

• Prototypowanie

• Montaż z gotowych komponentów

Tego rodzaju modeli (oraz ich mutacji) jest bardzo dużo.

PW – Włodzimierz Dąbrowski &


Andrzej Stasiak
METODYKA PROJEKTOWANIA SYSTEMÓW INFORMACYJNYCH 24

Model kaskadowy (wodospadowy)


• Ocena modelu kaskadowego

• Istnieją zróżnicowane poglądy, co do przydatności


praktycznej modelu kaskadowego. Podkreślane są
następujące wady:

– Narzucenie twórcom oprogramowania ścisłej kolejności


wykonywania prac;
– Wysoki koszt błędów popełnionych we wczesnych fazach;
– Długa przerwa w kontaktach z klientem

Z drugiej strony, jest on do pewnego stopnia niezbędny


dla planowania, harmonogramowania, monitorowania
i rozliczeń finansowych.

PW – Włodzimierz Dąbrowski &


Andrzej Stasiak
METODYKA PROJEKTOWANIA SYSTEMÓW INFORMACYJNYCH 25

PW – Włodzimierz Dąbrowski &


Andrzej Stasiak
METODYKA PROJEKTOWANIA SYSTEMÓW INFORMACYJNYCH 26

PW – Włodzimierz Dąbrowski &


Andrzej Stasiak
METODYKA PROJEKTOWANIA SYSTEMÓW INFORMACYJNYCH 27

PW – Włodzimierz Dąbrowski &


Andrzej Stasiak
METODYKA PROJEKTOWANIA SYSTEMÓW INFORMACYJNYCH 28

Model spiralny
• Planowanie Ustalenie celów
produkcji kolejnej wersji Analiza
systemu
• Analiza ryzyka
Specyfikacja
(i ewentualnie budowa Projektowanie wymagań
prototypu)
• Konstrukcja
(model kaskadowy)
Wersja 1
• Atestowanie (przez klienta).
Jeżeli ocena nie jest Implementacja
Wersja 2

w pełni pozytywna, i testowanie Wersja 3


rozpoczynany jest kolejny
cykl.
Istnieje wiele wariantów tego Instalacja

modelu.

PW – Włodzimierz Dąbrowski &


Andrzej Stasiak
METODYKA PROJEKTOWANIA SYSTEMÓW INFORMACYJNYCH 29

Prototypowanie
• Sposób na uniknięcie zbyt wysokich kosztów błędów
popełnionych w fazie określania wymagań. Zalecany w
przypadku, gdy określenie początkowych wymagań jest
stosunkowo łatwe.
• FAZY:
– ogólne określenie wymagań
– budowa prototypu
– weryfikacja prototypu przez klienta
– pełne określenie wymagań?
– realizacja pełnego systemu zgodnie z modelem kaskadowym
• Cele:
– wykrycie nieporozumień pomiędzy klientem a twórcami systemu
– wykrycie brakujących funkcji
– wykrycie trudnych usług
– wykrycie braków w specyfikacji wymagań
• Zalety:
– możliwość demonstracji pracującej wersji systemu
– możliwość szkoleń zanim zbudowany zostanie pełny system

PW – Włodzimierz Dąbrowski &


Andrzej Stasiak
METODYKA PROJEKTOWANIA SYSTEMÓW INFORMACYJNYCH 30

Metody prototypowania

• Niepełna realizacja objęcie tylko części funkcji


• Języki wysokiego poziomu Smalltalk, Lisp, Prolog, 4GL,
• Wykorzystanie gotowych komponentów
• Generatory interfejsu użytkownika. wykonywany jest wyłącznie
interfejs, wnętrze systemu jest "podróbką"
• Szybkie programowanie (quick-and-dirl): normalne
programowanie, ale bez zwracania uwagi na niektóre jego
elementy, np.: zaniechanie testowania

• Dość często następuje ewolucyjne przejście od


prototypu do końcowego systemu, Należy starać się
nie dopuścić do sytuacji, aby klient miał wrażenie, że
prototyp jest prawie ukończonym produktem. Po fazie
prototypowania najlepiej prototyp skierować do
archiwum.
PW – Włodzimierz Dąbrowski &
Andrzej Stasiak
METODYKA PROJEKTOWANIA SYSTEMÓW INFORMACYJNYCH 31

Montaż z gotowych komponentów


• Kładzie nacisk na możliwość redukcji nakładów poprzez
wykorzystanie podobieństwa tworzonego oprogramowania do
wcześniej tworzonych systemów oraz wykorzystanie gotowych
komponentów dostępnych na rynku.
• Ten sposób wytwarzania systemu jest określany jako
ponowne użycie (ang. reuse).

• Metody:
– zakup elementów ponownego użycia od dostawców
– przygotowanie elementów poprzednich przedsięwzięć do ponownego użycia
• Zalety:
– wysoka niezawodność
– zmniejszenie ryzyka
– efektywne wykorzystanie specjalistów
– narzucenie standardów
• Wady:
– dodatkowy koszt przygotowania elementów ponownego użycia
– ryzyko uzależnienia się od dostawcy elementów
– niedostatki narzędzi wspomagających ten rodzaj pracy

PW – Włodzimierz Dąbrowski &


Andrzej Stasiak

You might also like