Projektowanie systemów
informatycznych
Halina Tańska
Literatura
• St. Wrycza, Analiza i projektowanie systemów informatycznych,
PWN, Warszawa 1999
• E. Yourdon, Współczesna analiza strukturalna, WNT, Warszawa 1996
• P. Beynon-Davies, Inżynieria systemów informacyjnych, WNT,
Warszawa 1999
• W. Dąbrowski, A. Stasiak, M. Wolski, Modelowanie systemów
informatycznych w języku UML 2.1 w praktyce, Wydawnictwo
Naukowe PWN SA, Warszawa 2007
• St. Wrycza, B. Marcinkowski, K. Wyrzykowski, Język UML 2.o w
modelowaniu systemów informatycznych, Helion, Gliwice 2005
• P. Graessle, H. Baumann, Ph. Bauman, UML 2.0 w akcji. Przewodnik
oparty na projektach, Helion, Gliwice 2006
• R. Dumnicki, A. Kasprzyk, M. Kozłowski, Analiza i projektowanie
obiektowe, Helion, Gliwice 1998
• J. Roszkowski, Analiza i projektowanie strukturalne, Helion, Gliwice
1999
• J. Cheesman, J. Daniels, Komponenty w UML, WNT, Warszawa 2004
• G. Schneider, J. P. Winters, Stosowanie przypadków użycia, WNT,
Warszawa 2004
Literatura
• St. Wrycza, Ćwiczenia z UML, Helion 2007
• A. Cockburn, Jak pisać efektywnie przypadki użycia, WNT,
Warszawa 2000
• R. Wirfs-Brock, A. McKean, Projektowanie obiektowe. Role,
odpowiedzialność i współpraca, Wydawnictwo Helion, Gliwice
2006
• A. Shalloway, J. R. Trott, Projektowanie zorientowane obiektowo.
Wzorce projektowe, Wydawnictwo Helion, Gliwice 2005
• M. Śmiałek, Zrozumieć UML 2.0. Metody modelowania
obiektowego, Wydawnictwo Helion, Gliwice 2005
• M. Fowler, K. Scott, UML w kropelce, Oficyna Wydawnicza LTP
Sp. z o.o., Warszawa 2002
• J. Robertson, S. Robertson, Pełna analiza systemowa,
Wydawnictwo Naukowo-Techniczne, Warszawa 1999
• E. Yourdon, C. Argila, Analiza obiektowa i projektowanie
przykłady zastosowań, Wydawnictwo Naukowo-Techniczne,
Warszawa 2000
Literatura
• J. Płodzień, E. Stemposz, Analiza i projektowanie systemów
informatycznych, Wydawnictwo PJWSTK, Warszawa 2005
• E. Yourdon, Marsz ku klęsce. Poradnik dla projektanta systemów,
Wydawnictwo Naukowo-Techniczne, Warszawa 1999
• P. Stevens, UML Inżynieria oprogramowania, Wydawnictwo Helion,
Gliwice 2007
• J. Phillips, Zarządzanie projektami IT, Wydawnictwo Helion, Gliwice
2004
• T. DeMarco, T. Lister, Czynnik ludzki. Skuteczne przedsięwzięcia i
wydajne zespoły, Wydawnictwo Naukowo-Techniczne, Warszawa 2002
• J. Spolsky, Projektowanie interfejsu użytkownika. Poradnik dla
programistów, Wydawnictwo MICOM, Warszawa 2002
• M. Cieciura, Podstawy technologii informacyjnych z przykładami
zastosowań, VIZJA PRESS&IT Sp. z o.o., Warszawa 2006
• P. Coad, E. Yourdon, Analiza obiektowa, Oficyna Wydawnicza READ
ME, Warszawa 1994
• P. Coad, E. Yourdon, Projektowanie obiektowe, Oficyna Wydawnicza
READ ME, Warszawa 1994
Informacja – co to jest?
• Informacja jest
wynikiem przetwarzania danych
–
zbierania, analizy lub agregacji danych
.
• Tsitchizris i Lochovsky definiują informację jako „
przyrost
wiedzy, który może być uzyskany na podstawie danych
”
(1982). Informacja zwiększa wiedzę człowieka na pewien
temat. Definicja ta łączy pojęcia: dane, wiedza i ludzie.
• Dane to fakty. Dana, jako jednostka danych jest to jeden
lub kilka symboli, użytych do reprezentowania czegoś.
• Informacje to zinterpretowane dane. Informacje to
dane umieszczone w znaczącym kontekście.
• Wiedza jest otrzymywana z informacji przez jej
zintegrowanie z wiedzą istniejącą.
• Informacja ma charakter subiektywny. Informacja musi być
zawsze rozpatrywana w kontekście jej odbiorcy. Te same
dane mogą być różnie interpretowane przez różnych ludzi,
w zależności od posiadanej wiedzy.
dane
znaczenie
informacja
przetwarzanie
zespoły
Informacja powstaje z danych w procesie ich przetwarzania.
Zawiera ona określone treści i ma postać przydatną w
podejmowaniu decyzji. Przetwarzanie danych to przekształcanie
treści i postaci danych, w celu uzyskania wyników w określonej z
góry postaci.
Proces przetwarzania stanowi zbiór logicznie
powiązanych zadań (operacji), których realizacja ma
doprowadzić do otrzymania informacji w założonej
wcześniej postaci
.
Proces przetwarzania danych i
proces informacyjny
• Przetwarzanie danych może zachodzić w umyśle
człowieka, może być wykonywane ręcznie lub z
użyciem urządzeń elektronicznych, głównie
komputerów. Odbywa się ono
metodą
wykonywania systematycznych operacji,
według określonych algorytmów
, które w
przypadku przetwarzania komputerowego są
wyrażone w postaci programów komputerowych.
• Algorytm – dokładny przepis rozwiązania
określonego zagadnienia, przedstawiony w postaci
skończonej sekwencji operacji elementarnych.
• Program – ciąg instrukcji w określonym języku
programowania (lub rozkazów maszynowych),
określający ciąg czynności komputera konieczny do
realizacji postawionego mu zadania.
Percepcja
rzeczywistego
świata
Analityczny
model
rzeczywistości
odwzorowanie
Procesy twórcze - modelowanie rzeczywistości
Rola systemu informacyjnego
w firmie
Otoczenie
dane
Pozyskiwanie
Przetwarzanie
Organizowani
e
Gromadzenie
Analiza
Udostępnianie
Informacja
decyzja
Źródła danych System
informatyczny
Użytkownicy
Otoczenie – źródło danych i odbiorcy działań.
Kryterium jakości systemu informatycznego są działania (skuteczne).
Komputer jest niezbędny, gdy ilość informacji jest duża
Determinanty konkurencyjności
dane – informacje – wiedza -
mądrość
Droga do sukcesu
dan
e
zależność
od
kontekstu
zrozumien
ie
informac
ja
wiedz
a
mądrość
rozumienie relacji
rozumienie
wzorców
rozumienie zasad
Potrzeby informacyjne – luka
informacyjna
• „jakość życia jednostek i społeczeństwa zależy przede
wszystkim od jakości przyswajanych i wykorzystywanych
informacji (…) Mówi się, że informacja może czasem
zastąpić inteligencję, choć inteligencja nie może zastąpić
informacji (…) Tylko ignorant sądzi, że ma dość informacji,
by opiniować, choć ich nie ma, i tylko głupiec sądzi, że sam
dla siebie jest wystarczającym źródłem informacji”
[S.Garczyński]
• Potrzeby informacyjne to termin określający informacje
potrzebne dla użytkownika U w jego codziennej działalności
gospodarczej lub ze względu na jego zainteresowania
pozaekonomiczne. Są one kształtowane przez dwa
podstawowe czynniki:
– Rodzaj rozwiązywanego zadania Q
– Wiedzę i doświadczenie człowieka (użytkownika U)
Potrzeby informacyjne – luka
informacyjna
• Potrzeby informacyjne można podzielić na dwa podzbiory:
– Podzbiór Iu informacji potrzebnych do rozwiązywania Q, lecz
już dostępnych użytkownikowi
– Podzbiór L takich informacji, które są potrzebne i nie są
bezpośrednio dostępne.
• Kształtowanie się potrzeb informacyjnych można
zilustrować za pomocą schematu:
<U,Q,M> I Iu L
Gdzie:
U – użytkownik poszukujący informacji
Q – zadanie (problem) rozwiązywany przez U
M – metody, które U zamierza zastosować do rozwiązania Q
I informacje potrzebne dla U do rozwiązania Q przy zastosowaniu
metod M
Iu – informacje, które U już ma
L – informacje potrzebne do rozwiązania Q i których U nie ma
Luka informacyjna w kontekście informacji
We współczesnym społeczeństwie, państwie, gospodarce
człowiek, obywatel, podmiot społeczno-gospodarczy działają
w warunkach luki informacyjnej między posiadanymi
zasobami informacji i informacjami, jakie są niezbędne do
racjonalnego, efektywnego działania w konkretnych
sytuacjach.
Luka informacyjna
• Lukę informacyjną można podzielić na dwa podzbiory:
– Podzbiór Lk informacji koniecznych
– Podzbiór Lp informacji pożądanych (uzupełniających).
• Im wyższe mogą okazać się straty z powodu podjęcia
błędnych decyzji spowodowanych brakiem informacji,
tym bardziej zasadne staje się dążenie do
powiększenia zbioru Lk.
• Pozyskanie informacji wypełniających lukę wiąże się z
ponoszeniem odpowiednich kosztów:
im luka jest
obszerniejsza, tym koszty będą rosły wraz z
dążeniem do zwiększenia stopnia ich
wypełnienia
. Od pewnego momentu ponoszenie
dalszych kosztów może stać się nieopłacalne.
Budowanie strategii technologii
informacyjnej
• Kierowanie informacją to planowanie,
decydowanie, koordynowanie i kontrola
przetwarzania informacji. „Kierowanie informacją”
odpowiada za właściwe rozpoznanie i najlepsze
wykorzystanie potencjału zasobów informacyjnych.
Odpowiada za miejsce informacji w procesie
decyzyjnym w przedsiębiorstwie oraz by systemy
informacyjne były właściwie rozwijane,
implementowane, eksploatowane i wykorzystywane.
• Celem „kierowania informacją” jest możliwie
najlepsze
wsparcie procesów zachodzących w
przedsiębiorstwie, względnie wspieranie
pracowników realizujących określone procesy
.
Zadania strategicznego
kierowania informacją
• Określenie strategicznych celów przetwarzania
informacji
• Planowanie i zatwierdzanie strategicznej,
perspektywicznej koncepcji przetwarzania
danych. Dotyczy to przedsiębiorstwa w całości, w
odniesieniu do danych, aplikacji, struktur
komunikacyjnych, zasobów informacji, organizacji
i kierowania procesami przetwarzania danych
• Przeniesienia strategicznej koncepcji poprzez
ustalenie zasad i standardów dla zadań
administracyjnych i operacyjnych
• Kontrola przetwarzania informacji
Uwarunkowania
• W latach 80, 90 … przetwarzanie danych
sprowadzało się do
reagowania na wymogi
stawiane przez działy funkcjonalne organizacji
.
Piony przetwarzania projektowały i realizowały, a
następnie wdrażały systemy zastosowaniowe,
sprowadzające się do racjonalizowania przebiegów.
Obecnie planowanie systemów uwzględnia zarówno
konwencjonalne systemy zastosowaniowe, jak
również zadania i systemy wynikające ze
strategicznych planów. Wymogi względem
planowania Technologii Informacyjnej (TI) – to
decyzje dotyczące centralizacji bądź decentralizacji
przetwarzania danych, w dłuższym horyzoncie
czasowym, jak również powiązanie technicznych i
ekonomicznych elementów przetwarzania.
Uwarunkowania
• Planowanie rozwoju technologii
informacyjnej staje się trudne. Wynika to z
szybkiego rozwoju technologicznego i
często sprzecznej z rozwojem polityki
marketingowej przedsiębiorstwa. Zmienia to
w krótkim okresie czasu założenia, wiążące
się z realizowaniem projektów i utrudnia
stosowanie jednolitej strategii systemowej.
Znane i stosowane metody planowania
strategicznego nie spełniają swojego
zadania dla realizacji całego procesu.
Konieczne jest więc stosowanie kombinacji
różnych znanych metod.
Koncepcja harwardzka
• W koncepcji harwardzkiej można wyróżnić
następujące fazy:
– Analiza sytuacji wyjściowej oraz nakreślenie perspektyw
– Formułowanie strategii
– Opracowanie alternatywnych „polityk” funkcjonalnych
– Realizowanie strategii
• Działalność systemowa ma dla organizacji
strategiczne znaczenie w przypadku, kiedy płynne
funkcjonowanie systemów jest istotne dla jej
bieżącego działania i dla której szybki rozwój
zastosowań decyduje o wyprzedzeniu w stosunku
do konkurencji.
Koncepcja harwardzka w
projektowaniu
CO NALEŻY WYKONAĆ?
JAKIE REZULTATY?
1. Identyfikacja szans i ryzyka
(opisy)
1.
Struktura organizacyjna
–
podział pracy
–
koordynacja
–
informacja
2. Identyfikacja silnych i słabych
punktów organizacji
2. Zachowania i procesy w
organizacji
– reguły
3. Identyfikacja wartości i
oczekiwań decydenta
3. Motywowanie
– systemy kontrolne
– wybór i szkolenie
– kierowników
4. Uwzględnienie społecznych
zadań organizacji
4. Kierowanie organizacją
– strategie
– organizacja
– osoby
Pytania do kierownictwa każdej
organizacji
• Czy są zdefiniowane cele instytucji i czy są jasno i
przejrzyście sprecyzowane?
• Czy ewentualne niewłaściwe działanie wynika z faktu, że
organizacja nie w pełni realizuje zdefiniowane cele?
• Czy zadania są należycie egzekwowane?
• Czy fundusze na badania i rozwój są efektywnie
wykorzystywane?
• Czy budżet jest przeznaczony na właściwe aplikacje?
• Czy budżet na systemy informacyjne jest odpowiedniej
wielkości?
• Czy organizacja jest zabezpieczona i jak dalece, przed
konsekwencjami zniszczenia, wtargnięcia czy uszkodzenia
systemu?
• Czy zapewniono właściwą rangę działalności systemowej?
• Czy służby informacyjne są prawidłowo umieszczone w
strukturze firmy?
Istotne elementy w tworzeniu
strategii TI
• Polityka kraju
• Rynek w kraju
• Strategia firmy
• Rynek danej firmy
• Istniejąca aktualnie na rynku technologia
• Zdolność uczenia się (przystosowania się)
organizacji
• Kultura organizacyjna
• Infrastruktura TI
• Podejmowanie ryzyka w ramach TI
Istota procesu tworzenia
systemu
• Proces powinien mieć charakter iteracyjny i
hierarchiczny
• Proces powinien uwzględnić różne horyzonty
czasowe
• Proces powinien być ukierunkowany na działanie
• Należy delegować uprawnienia i ustalić zespół
realizacyjny
• Proces musi wydobywać misję TI
• Proces powinien uwzględniać zdarzenia
występujące w organizacji i otoczeniu
• Proces powinien wyraźnie identyfikować
strategiczne szanse
• Proces powinien określać strategiczne priorytety
Critical Success Factor
• Critical Success Factory (CSF) jest jedną z
najbardziej popularnych metod projektowych.
Jest to strukturalne postępowanie
pozwalające na określenie zapotrzebowania
informacyjnego kierownictwa.
• Opiera się na idei, że
w każdej organizacji
istnieje 3 do 6 parametrów
determinujących sukces
. Na przykład dla
firmy produkującej samochody mogą to być:
konstrukcja różnych modeli, techniczne
osiągi poszczególnych typów, renoma
produktu i odpowiednia sieć dealerska
.
Business Systems Planning
(BSP)
• Metoda BSP należy do najczęściej wykorzystywanych. Była
pierwotnie przeznaczona do wewnętrznego użytku w IBM
(pierwsze lata 80), a następnie oferowana użytkownikom,
jako ogólna metoda planowania.
• Metoda BSP traktuje
dane jako podstawowy potencjał
organizacji
. Celem BSP jest
identyfikacja tych danych,
które są zasadnicze dla działalności organizacji
.
• Jeden z członków kierownictwa organizacji powinien
kierować zespołem opracowującym BSP i dobierać
pozostałych członków zespołu spośród kadry kierowniczej.
Po identyfikacji procesów zachodzących w
przedsiębiorstwie, które w istotny sposób określają kierunek
rozwoju organizacji należy zdefiniować klasy danych (30-60
kategorii) reprezentujących różne grupy, np.: klientów,
dystrybutorów, zamawiających.
Decyzje strategiczne
• wybór modelu, zgodnie z którymi będzie
realizowane przedsięwzięcie
• wybór technik stosowanych w fazie
analizy i projektowania
• wybór środowiska implementacji
• wybór narzędzia CASE
• określenie stopnia wykorzystania
gotowych komponentów
• podjęcie decyzji o współpracy z innymi
producentami lub zatrudnieniu ekspertów
Składowe języka
modelowania
• składnia - określa jakie oznaczenia
wolno stosować i w jaki sposób je ze
sobą łączyć;
• semantyka - określa co należy
rozumieć pod przyjętymi
oznaczeniami;
• pragmatyki - określa w jaki sposób
należy dopasować wzorzec notacyjny
do konkretnej sytuacji i problemu.
Metodyka
•
Metodyka to spójny, logicznie uporządkowany zestaw metod
i procedur technicznych oraz organizatorskich służących
zespołowi wykonawczemu do analizy rzeczywistości a także
projektowania pojęciowego, logicznego i/lub fizycznego;
•
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 klientami.
Metodyka
• Metodyka, czyli
zestaw pojęć, oznaczeń,
języków, modeli, diagramów, technik i
sposobów postępowania służących realizacji
procesu
. Metodyka definiuje fazy realizacji
przedsięwzięcia informatycznego, a ponadto dla
każdej z faz wyznacza:
– Role uczestników projektu
– Scenariusze postępowania
– Reguły przechodzenia do następnej fazy
– Produkty, które powinny być wytworzone, m.in. Modele,
kod, dokumentację
– Notację, czyli zbiór oznaczeń, które należy wykorzystywać
do dokumentowania wyników poszczególnych faz
projektu.
Składniki metodyki
tworzenia systemów
informatycznych
dziedzina
przedmioto
wa
modele
DP
metody
i
techniki
pakiety
komputero
we
zespół
projektują
cy
SI
kryter
ia
oceny
P
R
O
C
E
S
TWORZENI
A
wyniki
analiz
cele, problemy,
potrzeby
reguły
modelowania
pojęcia
abstrakcyjne
faz
y
dokumentacj
a
paramet
ry
pakie
ty
zadani
a
wspomaganie
TSI
prezentacja i
eksperymenta
lna
eksploatacja
konstruowa
nie
Notacja
• Notacja ułatwia komunikację zarówno
między członkami zespołu projektowego,
jak i między zespołem projektowym a
klientem. Do najważniejszych rodzajów
notacji zalicza się:
– Notacje tekstowe
– Specyfikacje
– ustrukturalizowany zapis
tekstowy i numeryczny
– Notacje graficzne
System
To każda celowo wyodrębniona całość złożona z części,
powiązań (relacji) między nimi oraz między każdą częścią i
całością. Oznacza to, że system:
• Jest tworem celowym (zamierzonym przez twórcę)
• Może on realizować cel (lub ich wiązkę) w jeden lub na wiele
sposobów
• Nie ma części izolowanych w stosunku do innych jego części
• Części i ich wzajemne powiązania tworzą strukturę systemu
• Powiązania między częściami a całością (systemu) polegają na
tym, że każda część systemu ma przyczyniać się do powodzenia
całości.
Uwaga: cel lub ich wiązka może być zrealizowana wyłącznie przez
system, rozpatrywany jako całość. Stąd system, rozpatrywany
całościowo, nabywa takich własności, jakich nie posiada żadna z
jego części. Ten efekt zwany jest synergią (wzmocnieniem).
System a otoczenie
• Każdy system jest „zanurzony” w jego otoczeniu. Oznacza to, że badając
określony system, obserwator ustala jego granice. Wszystko to, co
znajduje się poza granicami systemu, stanowi jego otoczenie, które może
być traktowane jako system. Otoczenie systemu dzieli się na: otoczenie
bliższe i dalsze. Możliwie dokładnie trzeba określić otoczenie bliższe, tzn.
ten wycinek otoczenia z którym badany system wchodzi w istotne dla jego
funkcjonowania związki i współzależności.
• Wewnętrzne części systemu traktowane są jako jego podsystemy. Tworzą
one powiązany relacjami zbiór hierarchiczny. Podział taki jest zawsze
skończony i kończy się na podsystemie elementarnym w ramach danej
obserwacji systemu. Obserwator systemu dokonuje ustalenia, co jest
podsystemem elementarnym, w ramach każdej jego obserwacji i zgodnie
z jej celem.
• System jest powiązany z otoczeniem przez jego Wejścia (WE) oraz Wyjścia
(WY). Istnieją dwa rodzaje WE i WY: zasileniowe i informacyjne.
• Funkcjonowanie systemu polega na transformacji (T), czyli przekształceniu
(zamianie) WE na WY. Im więcej wiemy o zasadach (regułach)
transformacji systemu i im dokładniej potrafimy ją zdefiniować, w tym
większym stopniu możemy mieć wpływ na sposób jego funkcjonowania.
System
WE
WY
Otoczenie dalsze
Otoczenie bliższe
Graficzna prezentacja
systemu
Cel projektowania
• Projektowanie ma na celu
precyzyjne określenie obrazu
przyszłego systemu.
• Aby przedstawić strukturę procesu
projektowania technicznego należy
zdekomponować system
informatyczny wyszczególniając
elementy będące przedmiotem
projektowania.
Projektanci systemu
• Osoba lub grupa osób, która
otrzymuje wyniki pracy analityka. Jej
zadaniem jest przekształcenie
niezależnych od technologii
wymagań użytkownika na
projekt architektury systemu, w
ramach którego będą pracować
programiści.
Zadania projektanta
• Zadaniem projektanta systemu jest
zaprojektowanie systemów obsługujących
zdefiniowany podzbiór funkcji przedsiębiorstwa
w sposób efektywny i przydatny z
uwzględnieniem danych uwarunkowań
. W
praktyce oznacza to, że musimy zaprojektować
system, który jest akceptowany przez
użytkownika i spełnia normalne ograniczenia
dotyczące czasu, kosztu i dostępnych środków
technicznych a także uwzględnia ograniczenia
wynikające z innych zasobów systemu.
• Zadaniem zespołu projektowego jest nie tylko
przygotowanie sprawnie działającej aplikacji, lecz
wyjście naprzeciw potrzebom osób, które będą tej
aplikacji używać na co dzień.
Istota projektowania
• Przedmiot lub dziedzina dowolnej
inżynierii zajmująca się
wyspecyfikowaniem pewnego wytworu
.
Projekt powinien
spełniać cele i
kryteria funkcjonalne danego
wytworu
, jak również uwzględniać
wszelkie
ograniczenia na wytwór
(maksymalny koszt, wydajność,
niezawodność, ergonomia, sprzęt,
zasoby, czas reakcji, obowiązujące
standardy itp.).
Warsztat analityka i
projektanta SI
modele
DP
pakiety
komputero
we
metody
i
techniki
metodyk
i
System
informatycz
ny
badanie, wybór,
integracja
proces analizy i
projektowania
Potrzeby, cechy
DP
dziedzina
przedmioto
wa
dopasowanie,
skompletowanie
optymalnej
Ścieżka od wymagań do
kodu
• Wszystkie artefakty (produkty)
procesu inżynierii oprogramowania
powinny tworzyć jednoznaczną
ścieżkę.
• Efekt:
jednoznaczne powiązanie
wymagań użytkownika z kodem,
który je realizuje
.
Wymagania
funkcjonalne
Model
dynamiczny
systemu
Model
statyczny
Model
dynamiczny
podsystemów
Model
statyczny
podsystemów
Kod
Analityk
Użytkownik
Programista
Architekt
Projektan
t