background image

Modelowanie i 
analiza systemów 
informatycznych

INFORMATYKA – S2

Rok akad. 2011/2012 – semestr letni

Prowadzący: Dr hab. n.t.  Bożena Śmiałkowska

background image

ZAGADNIENIA 

ORGANIZACYJNE

TREŚCI I EFEKTY 

KSZTAŁCENIA

background image

Zasady zaliczenia przedmiotu

Przedmiot za 5 punktów ECTS - egzamin

Formy zajęć: wykład + ćw. + lab. 

Wagi obliczeniowe stosowane przy ocenie :

0,5 w+0.35 lab + 0,15 ćw

Egzamin pisemny: 5 pytań

Propozycja terminów egzaminu:

Rodzaj studiów

Termin

Kierunek Informatyka

Studia stacjonarne II stopnia

I termin podstawowy

22.06.2012 (piątek) godz. 10-12 sala 227 WI2

II termin podstawowy

25.06.2012 (poniedziałek) godz. 10-12 sala 126 WI2

I termin poprawkowy

29.06.2012 (piątek) godz. 10-12 sala 227 WI2

II termin poprawkowy

10.09.2012 (poniedziałek) godz. 10-12 sala 215

background image

Konsultacje

konsultacje: środy godz. 12:15-13:45 
pokój 123      

e-mail:bsmialkowska@wi.zut.edu.pl

background image

Treści kształcenia

Podstawowe definicje i rodzaje systemów 

informatycznych

Ogólne zagadnienia związane z modelowaniem i 

analizą systemów informatycznych

Przegląd modeli cykli życia systemu 

informatycznego

Przegląd metod modelowania systemów 

informatycznych (strukturalne, obiektowe, 

swobodne, techno-centryczne, antypo-centryczne, 

modelowanie komponentowe, dedykowane dla 

grupy systemów)  

Jakość, ryzyko, czas, koszt, wydajność i inne 

artefakty związane z procesem analizy i 

modelowania systemów informatycznych

background image

Efekty kształcenia

Znajomość metod:

analizy

systemów informatycznych i 

związanych z nimi artefaktów

modelowania

systemów 

informatycznych 

Umiejętność:

analizy cech

systemów informatycznych

konstruowania modeli

systemów 

informatycznych

posługiwania się modelami

systemów 

informatycznych i 

metodami

ich 

tworzenia

background image

PODSTAWOWE 

DEFINICJE

RODZAJE SYSTEMÓW 

INFORMATYCZNYCH

background image

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

background image

Składowe systemu informacyjnego

SIO – system informacyjny danej organizacji
P – zbiór podmiotów, które są użytkownikami systemu.
I  – zbiór informacji o sferze realnej, czyli o jej stanie i 

zachodzących a niej zmianach (tzw. zasoby 
informacyjne).

T – zbiór narzędzi technicznych stosownych w procesie 

pobierania, przesyłania, przetwarzania, 
przechowywania i wydawania informacji.

O – zbiór rozwiązań rynkowych stosownych w danej 

organizacji (stosowane formuła zarządzania).

M – zbiór meta-informacji, czyli opis systemu 

informacyjnego i jego zasobów informacyjnych.

R – relację pomiędzy poszczególnymi zbiorami. 

}

,

,

,

,

,

{

R

M

O

T

I

P

SIO 

background image

Klasyfikacja systemów informacyjnych

Otwarte – zamknięte
Według uzależnienia od otoczenia.

Proste – złożone
według celu i struktury, znaczna ilość
relacji pomiędzy składowymi.

Deterministyczne – probabilistyczne
zależność zachowania systemu zależy od 
dużej liczny przypadkowych czynników. 

background image

Klasyfikacja systemów informacyjnych

Statyczne – dynamiczne
zależy do szybkości zmiany stanów 
systemu.

Naturalne – projektowane

Projektowane:

Projektowane systemy fizyczne (np. 
elektrownie)

Projektowane systemy konceptualne.

Projektowane systemy działania ludzi.

background image

System informatyczny  (SI)

SI może być jedną z części składowych systemu 
informacyjnego 

Oba terminy System informacyjny oraz 
informatyczny 
- 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

background image

Złożoność, informacja, wiedza

Dane: surowe fakty o organizacji i jej 
działaniach (np. transakcjach)

Informacje: celowo zorganizowane dane 
posiadające określone znaczenie

Wiedza: informacje nadająca się do 
wykorzystania

System informacyjny - przetwarza dane w 

użyteczne informacje

System inteligentny - potrafi generować wiedzę

background image

Piramida informacyjna

Sygnały

Dane

Informacje

Wiedza

Mądrość

Zajęte zasoby

Złożoność
semantyczna

background image

Rodzaje systemów 
informacyjnych

Transakcyjne on-line

Transakcyjne off-line

Proste systemy raportujące

Systemy informowania 
kierownictwa

Systemy „inteligentne”

Z

ło

ż

o

n

o

ś

ć

C

z

a

s

 r

e

a

k

c

ji

Duża

Mała

Krótki

Długi

Istnieją oczywiście wyjątki – np. bankowe systemy kredytowe

background image

1960

1970

1980

1990

2000

IC

MRP

MRP II

ERP

DEM

IC

(

Inventory Control

) - zarządzanie gospodarką magazynową

MRP

(

Material Requirments Planing

) - planowanie

potrzeb materiałowych

poprzez 

wydawanie zleceń zakupu i produkcji dokładnie w takim momencie, aby żądany produkt 

pojawił się w potrzebnej chwili i wymaganej ilości

MRP II

(

Manufacturing Resource Planing

) - planowanie

zasobów produkcyjnych

poszerzone o bilansowanie zasobów produkcyjnych i dystrybucję (główny składnik BIS)

ERP

(

Enterprice Resource Planing

) - (określana jako MRP III -

Money Resource 

Planing 

lub MRP II Plus) planowanie zasobów przedsiębiorstwa wraz z procedurami 

finansowymi, w tym księgowość zarządcza, cash flow i rachunek kosztów działania

DEM

(

Dynamic Enterprice Modeler

) -

dynamiczne modelowanie przedsiębiorstwa

umożliwiające bezpośrednie przejście od modelu firmy do gotowej konfiguracji aplikacji 

dla poszczególnych użytkowników

CRM

CRM

(

Customer Relationship Management

) -

zarządzanie kontaktami z klientem

Ewolucja systemów informatycznych 
np..do zarządzania firmą

background image

Standard  MRP  II  Plus

to  rozwinięcie  koncepcji  wariantu 

rozwiniętego  standardu  MRP  II.  W  związku  z  tym  realizuje  on 

dodatkowo następujące funkcje:

• zarządzanie zmianami konstrukcyjnymi i technologicznymi,
• zarządzanie dokumentacją techniczną,
• integracja z systemami CAD/CAM/CAP,
• zarządzanie remontami i serwisem (zlecenia i umowy), 
• zarządzanie jakością,
• dystrybucją (planowanie  potrzeb,  transportu  i  obsługa  zleceń)  i 

rozwinięta obsługa sprzedaży,

• zarządzanie środkami trwałymi i wyposażeniem,
• zarządzanie  kadrami  i  płacami  i  strumieniami  środków 

płatniczych,

• rachunkowość zarządcza, 
• kontroling, 
• generowanie raportów,
• integracja multimediów, 
• przeglądarki baz danych, itp. 

MRP II Plus (ERP)

background image

Standard  DEM  to  zintegrowane  narzędzie  umożliwiające  zarówno 

opracowanie  nowych  jak  i  udoskonalanie  istniejących  procesów 
gospodarczych (

reinżynieria

).

Umożliwia  on    dynamiczne  stworzenie  modelu  lokalnego  (np.  jeden 

dział firmy) jak i obejmujący wszystkie działy korporacji w oparciu 

o odpowiednie modele odniesienia.

GŁÓWNA BIBLIOTEKA WZORCÓW 

(REPOZYTORIUM)

MODEL 

ODNIESIENIA 

BIBLIOTEKA 

KOMPONENTÓW 

FAZY

ZAKRES

PROJEKT MODELU 

PROJEKT MODELU 

LOKALNEGO 

Model ogólny

Model branżowy

Model 

przedsiębiorstwa

DEM

background image

Wprowadza  się tu 

optymalizację

,  która  pozwala  na  bieżąco 

wprowadzać

zmiany  w  funkcjonowaniu  firmy.  Dzięki  temu 

przedsiębiorstwo wraz z systemem żyje i ewoluuje.

krytyczne 

wskaźniki 

sukcesu

wizja

Implementacja 

(faza podstawowa)

optymalizacja... . . . . . . . . . . . . . . .

optymalizacja

dyskusje

symulacje

model 

funkcjonalny

model 

procesowy

dyskusje z 

Zarządem

przegląd z 

użytkownikami 

kluczowymi

DEM

background image

Strategia rozwoju firmy i informatyzacji

MISJA PRZEDSI

MISJA PRZEDSI

Ę

Ę

BIORSTWA

BIORSTWA

BADANIE OTOCZENIA

(szanse i zagrożenia)

BADANIE FIRMY 

(mocne i słabe strony)

WIEDZA O RYNKU

TRENDY 

TECHNOLOGICZNE

STRATEGIA ROZWOJU FIRMY

STRATEGIA INFORMATYZACJI 

FIRMY

background image

stacje robocze systemu

serwer 

przedsiębiorstwa

serwer kontrahenta

serwer klienta

serwer dostawcy

sieć rozległa

sieć lokalna

ZSI a otoczenie przedsiębiorstwa –

możliwości systemów rozproszonych

ZSI

background image

Systemy  klasy  MRP,  ERP  stanowi

Systemy  klasy  MRP,  ERP  stanowi

ą

ą

rozwi

rozwi

ą

ą

zania  dedykowane  wewn

zania  dedykowane  wewn

ę

ę

trznemu 

trznemu 

zarz

zarz

ą

ą

dzaniu przedsi

dzaniu przedsi

ę

ę

biorstwem.

biorstwem.

Systemy  CRM  (

Systemy  CRM  (

Customer  Relationship  Management

Customer  Relationship  Management

)  pozwalaj

)  pozwalaj

ą

ą

r

r

ó

ó

wnie

wnie

ż

ż

zarz

zarz

ą

ą

dza

dza

ć

ć

kontaktami z klientem.

kontaktami z klientem.

back office

K

LI

E

N

T

 (

K

O

N

T

R

A

H

E

N

T

)

K

LI

E

N

T

 (

K

O

N

T

R

A

H

E

N

T

)

CRM

CRM

MRP (ERP)

PRZEDSIĘBIORSTWO

front office

Systemy CRM

background image

CRM

(Customer Relationship Management)

CM 

(Contact Management)

• proste 

jednostanowiskowe 

aplikacje,

• funkcje  kalendarza  i  baza 

danych  pozwalają na  analizę

danych  dotyczących  klienta  i 

historii kontaktów

SFA

(Sales Force Automation)

• udostępnianie klientowi 

informacji 

on-line,

• zarządzanie sprzedażą,

• obsługa klienta w ramach 

jednego systemu

oraz:

oraz:

CRS - Call Reporting Systems

TMS - Territory Management Systems

SMS - Sales Management Systems

STA - Sales Team Automation

Systemy CRM

background image

WWW

E-mail

fax

...

telefon

Systemy wymiany informacji

OBSŁUGA KLIENTÓW

SERWIS

MARKETING

SPZREDAŻ

• zarządzania firmą
• zarządzania zasobami 

ludzkimi

• zarządzania finansami

SYSTEMY INFORMATYCZNE

• HURTOWNIE DANYCH

• ZARZĄDZANIE WIEDZĄ

• ANALITYKA

F

R

O

N

T

 O

F

F

IC

E

B

A

C

K

 O

F

F

IC

E

KLIENCI

...

systemy obsługujące kanały komunikacji z klientem, 

systemy front-office obejmujące m.in. marketing, sprzedaż, 
wsparcie klienta, 

systemy analityczne.

CRM:

background image

sprzedaż:

• zarządzanie 

kontaktami 

(profile, 

struktura, 

historia 

kontaktów sprzedaży), 

• zarządzanie  kontem  (generowanie  ofert,  zamówienia, 

transakcje), 

• analizy w ramach cyklu sprzedaży, 
• monitorowanie  statusu  klienta  i  potencjalnych  kontaktów 

handlowych;

zarządzanie terminarzem i korespondencją:

• kalendarz i baza danych użytkowników (grup), 
• obsługa poczty tradycyjnej i elektronicznej (fax, e-mail);

marketing:

• zarządzanie kampanią, 
• katalog produktów, 
• konfigurator produktów, 
• cenniki i oferty, 
• analizy efektywności kampanii, 
• dystrybucja informacji o kilentach zainteresowanych ofertą;

Funkcje (moduły) CRM:

background image

telemarketing:

• układanie list telefonicznych wg definicji grup docelowych,
• automatyczne wybieranie numeru, 
• generowanie list potencjalnych klientów, 
• zbieranie zamówień;

serwis i wsparcie klienta po sprzedaży:

• przydzielenie, śledzenie i raportowanie zadań, 
• zarządzanie problemem serwisowym, 
• kontrola zamówień, 
• obsługa gwarancyjna i pogwarancyjna;

integracja z systemami ERP: 

• zarządzanie finansami, księgowość, produkcja, dystrybucja, 
• zarządzanie zasobami ludzkimi;

synchronizacja  danych

-

dotyczy 

współdziałania 

pomiędzy  urządzeniami  (np.  laptopy)  a  centralną bazą danych 

lub innymi bazami i serwerami aplikacji;

e-commers

- realizowanie handlu elektronicznego;

call center

- usługowe wsparcie klienta.

Funkcje (moduły) CRM:

background image

systemy ewidencyjno-transakcyjne

STOPIEŃ

INTEGRACJI

CZAS

CZAS

1960

1970

1980

1990

2000

systemy informacyjno-decyzyjne

systemy wspomagania decyzji

systemy eksperckie

systemy informowania kierownictwa

systemy sztucznej inteligencji

zintegrowane systemy 

informatyczne

Ewolucja SIZ

systemy czasu rzeczywistego

background image

system zarządzania zorganizowany (SIZ) modułowo

obsługujący 

wszystkie 

sfery 

działalności 

przedsiębiorstwa

wszystkie  zasoby  danych,  procedury  zarządzania, 

sterowanie  i  regulacja  procesów  wytwórczych  są

przetwarzane 

przy 

wsparciu 

technologii 

informatycznej

Mówiąc o ZSI należy mieć na uwadze:

Umożliwia  etapowe  wdrażanie  tych  składowych, 

które są niezbędne z uwagi na specyfikę firmy.

Począwszy  od  marketingu  i  planowania  oraz 

zaopatrzenia,  poprzez  techniczne  przygotowanie 

produkcji i jej sterowanie, dystrybucję, sprzedaż, 

gospodarkę remontową,  aż do  prac  finansowo-

księgowych i kadrowych.

Ewolucja ZSI

background image

Cechy ZSI

Zintegrowane  systemy  informatyczne  stanowią

urzeczywistnienie  idei 

integracji  kompleksowych  systemów  informatycznego  wspomagania  procesów 
zarządzania w przedsiębiorstwie z kompleksowymi systemami komputerowego 
wytwarzania.

Główne cechy ZSI:

• kompleksowość funkcjonalna - obejmuje wszystkie sfery firmy,

• integracja  danych  i  procesów - dotyczy  wymiany  informacji  wewnątrz 

firmy jak i z jej otoczeniem,

• elastyczność strukturalna  (skalowalność)  i  funkcjonalna - dynamiczne 

dopasowanie przy zmiennych wymaganiach i potrzebach otoczenia,

• otwartość - możliwość rozbudowy  systemu  i  tworzenie  nowych  połączeń

zewnętrznych,

• zaawansowanie  merytoryczne

-

możliwość

pełnego  informatycznego 

wsparcia procesów informacyjno-decyzyjnych

• zaawansowanie  technologiczne - zgodność ze  standardami  sprzętowo-

programowymi oraz możliwość przenoszenia na inne platformy

• zgodność z przepisami (np. ustawą o rachunkowości) 

background image

Ewolucja integracji w 

przedsiębiorstwie

Integrowanie

polega  na  łączeniu  w  całość,  zatem  istotą

integracji jest utworzenie nowej jakościowo całości, której elementy są
połączone odpowiednimi relacjami i powiązane odpowiednim stopniem 
zależności od całości.

Celem 

jest 

skoordynowanie 

elementów 

systemów 

dla 

zracjonalizowania jego funkcjonowania.

Przedmiotem  integracji  są funkcje  użytkowe  systemu,  dane  i  

środki techniczne.

Typy integracji

:

projektowa (metodologiczna),

organizacyjna,

techniczna,

konstrukcyjno-technologiczna

background image

Ewolucja integracji w firmie w 

dziedzinie SI

Integracja procedur, 

programów, przetwarzania 

danych i interfejsu 

Integracja transakcji, danych 

wejściowych, wyjściowych i zbiorów 

w bazie danych

Integracja modułów i jednostek 

funkcjonalnych przetwarzania danych

Integracja techniczna środków informatyki i 

łączności (spójność techniczna)

Integracja funkcji i celów poszczególnych warstw i 

modułów systemu (spójność funkcjonalna)

Ujednolicenie pojęć, haseł, definicji, klasyfikacji, struktur pól, 

dokumentów, określenie zasad interpretacji danych (spójność

syntaktyczna i semantyczna)

Ko

le

jno

ść

pr

ze

d

si

ę

w

zi

ę

ć

int

e

gr

a

cyjnyc

h

Integracja 

projektowa 

(metodologiczna)

Integracja 

organizacyjna

Integracja 

techniczna

Integracja 

konstrukcyjno-

technologiczna

background image

Integracja może przebiegać w dwóch płaszczyznach:

• funkcjonalnej

- funkcje realizowane są w taki sposób , jak 

gdyby  wykonywane  były  w  jednym  systemie;  oznacza  to 

możliwość korzystania  przez  użytkownika  z  dostępu  do 

wszystkich funkcji realizowanych w systemie poprzez jeden 

spójny  interfejs  wraz  z  przełączaniem  się pomiędzy 

różnymi zadaniami,

• fizycznej

- kompleksowe połączenie elementów systemu na 

płaszczyźnie 

sprzętowo-programowej.

Podsystemy 

dziedzinowe 

(moduły)

Systemy 

autonomiczne

Postępująca 

integracja

Pełna integracja

Finansowo-księgowy
Majątek trwały
Kadry
Zaopatrzenie
Marketing
Zbyt
Sterowanie produkcji

.........

a   b   c   ...  n
a   b   c   ...  n
a   b   c   ...  n
a   b   c   ...  n
a   b   c   ...  n
a   b   c   ...  n
a   b   c   ...  n

a   b   c   ...  n
a   b   c   ...  n
a   b   c   ...  n
a   b   c   ...  n
a   b   c   ...  n
a   b   c   ...  n
a   b   c   ...  n

a   b   c   ...  n
a   b   c   ...  n
a   b   c   ...  n
a   b   c   ...  n
a   b   c   ...  n
a   b   c   ...  n
a   b   c   ...  n

a   b   c   ...  n

a   b   c   ...  n

a   b   c   ...  n

jednostki 

organizacyjne

jednostki 

organizacyjne

jednostki 

organizacyjne

Ewolucja integracji w firmie

background image

Faza  II  -

Opracowanie  koncepcji  informatyzacji  przedsiębiorstwa 

obejmuje:

selekcja i wybór gotowego ZSI

zestawienie oprogramowania aplikacyjnego według modelu prototypowania

modelowanie  konfiguracji  oprogramowania  narzędziowego,  systemowego, 

sieciowego oraz opracowanie projektu infrastruktury technicznej

Faza III - Realizacja systemu obejmuje:

przeprowadzenie koniecznej restrukturyzacji przedsiębiorstwa

kompletacja i organizacja dostaw sprzętu i oprogramowania

instalowanie i uruchomienie systemu

działalność szkoleniowo-edukacyjna  zorientowana  na  kadrę kierowniczą

przedsiębiorstwa

szkolenie użytkowników (podstawowe, systemowe, aplikacyjne)

wdrożenie i testowanie oprogramowania aplikacyjnego

Faza IV - Konserwacja i bieżący rozwój systemu obejmuje:

umowy  na  długoterminową współpracę w  ramach  nadzoru  autorskiego 

(wykonawczego)

konieczne modyfikacje ZSI, wynikające ze zmian obowiązujących przepisów

rozbudowa  oprogramowania  i  sprzętu,  wynikająca  z  rosnących  wymagań

użytkowników

stały  rozwój  dostarczonych  rozwiązań w  miarę pojawienia  się nowych 

technologii

FAZA I: Analiza przedsiębiorstwa

FAZA II: Opracowanie koncepcji 

informatyzacji przedsiębiorstwa

FAZA III: Realizacja systemu

FAZA IV: Konserwacja i bieżący rozwój 

systemu

Faza I - Analiza przedsiębiorstwa obejmuje:

określenie celów strategicznych przedsiębiorstwa

zdefiniowanie problemów, wymagań i kryteriów wyboru ZSI

udokumentowanie istniejących procedur działania

opracowanie opisów procesów podstawowych i pomocniczych

przygotowanie koniecznej restrukturyzacji przedsiębiorstwa

ocena skali przedsięwzięcia, ryzyka, kosztów i terminów realizacji (studium 

wykonalności)

Przykładowy sposoby integracji

background image

Faza I - Analiza przedsiębiorstwa

obejmuje:

określenie celów strategicznych przedsiębiorstwa

zdefiniowanie problemów, wymagań i kryteriów wyboru ZSI

udokumentowanie istniejących procedur działania

opracowanie opisów procesów podstawowych i pomocniczych

przygotowanie koniecznej restrukturyzacji przedsiębiorstwa

ocena skali przedsięwzięcia, ryzyka, kosztów i terminów realizacji 

(studium wykonalności)

Faza  II  - Opracowanie  koncepcji  informatyzacji  przedsiębiorstwa

obejmuje:

selekcja i wybór gotowego ZSI

zestawienie  oprogramowania  aplikacyjnego  według  modelu 

prototypowania

modelowanie 

konfiguracji 

oprogramowania 

narzędziowego, 

systemowego, 

sieciowego 

oraz 

opracowanie 

projektu 

infrastruktury technicznej

Przykładowy sposoby integracji –
cd…

background image

Faza III - Realizacja systemu

obejmuje:

przeprowadzenie koniecznej restrukturyzacji przedsiębiorstwa

kompletacja i organizacja dostaw sprzętu i oprogramowania

instalowanie i uruchomienie systemu

działalność

szkoleniowo-edukacyjna  zorientowana  na  kadrę

kierowniczą przedsiębiorstwa

szkolenie użytkowników (podstawowe, systemowe, aplikacyjne)

wdrożenie i testowanie oprogramowania aplikacyjnego

Faza IV - Konserwacja i bieżący rozwój systemu

obejmuje:

umowy  na  długoterminową

współpracę w  ramach  nadzoru 

autorskiego (wykonawczego)

konieczne modyfikacje ZSI, wynikające ze zmian obowiązujących 

przepisów

rozbudowa  oprogramowania  i  sprzętu,  wynikająca  z  rosnących 

wymagań użytkowników

stały  rozwój  dostarczonych  rozwiązań w  miarę pojawienia  się

nowych technologii

Przykładowy sposoby integracji –
cd…

background image

Obecne i postulowane 

zastosowania ZSI

Większość zachodnich firm stworzyła infrastruktury 

niezależne i reaktywne, a jedynie te przodujące firmy 

mają infrastruktury współzależne.

W kraju najbardziej rozpowszechniony jest typ

niezależny.

Można uznać, iż stan zastosowań informatyki:

nie zmienił jednak istotnie organizacji pracy,

nie umożliwił integracji funkcji na wszystkich

poziomach zarządzania,

nie spowodował poważnych zmian w pozycji firm 

na rynku,  nie stworzył strategicznych szans dla 
firmy, nie doprowadził do zmian w praktyce
zarządzania oraz strukturach organizacyjnych
firmy oraz strukturach organizacyjnych firmy.

background image

• Pojedyncze systemy 

dziedzinowe: sprzedaż, 
kadry, płace, itp.

• Cząstkowość rozwiązań

• Wielu dostawców 

komponentów systemu

• Niespójność funkcjonalna i 

słaba integracja

• Zależność od jednej 

platformy sprzętowej

• Słabe wspomaganie procesów 

zarządzania

• Brak rachunkowości 

zarządczej i kontrolingu

• Rosnące koszty utrzymania

• Ograniczone możliwości 

rozwojowe

STAN OBECNY

• Kompleksowość funkcjonalna

• Integracja danych i procedur

• Jeden dostawca - integrator 

rozwiązania

• Niezależność sprzętowo-

programowa

• Wykorzystanie możliwości Intra-, 

ekstra- i Internetu oraz 
multimediów w szerszym zakresie

• Pełne wspomaganie procesów 

zarządzania w ramach orientacji 
procesowej

• Realizacja rachunkowości 

zarządczej i kontrolingu zgodnie z 
systemem MRPII/ERP

• Uwzględnienie systemu jakości wg 

przyjętych standardów

STAN POŻĄDANY

Charakterystyka obecnych i 
postulowanych zastosowań SIZ

background image

Informatyzacja firm a problemy 

restrukturyzacyjne 

(uwarunkowanie tworzenia ZSI)

Informatyzacja  przedsiębiorstwa,  mająca  na  celu  wdrożenie  ZSI, 

wymaga  poprzedzenia  tego  procesu 

zmianami  o  charakterze 

organizacyjnym.

REALIZACJ

A ZSI

strategia rozwoju 

przedsiębiorstwa 

oraz 

strategia jego informatyzacji

restrukturyzacja 

przedsiębiorstwa 

techniczna 

infrastruktura 

informatyki

oprogramowanie aplikacyjne 

oraz 

transfer wiedzy

background image

Restrukturyzacja  jest  przemyśleniem  od  podstaw  i  radykalnym 

przeprojektowaniem  procesów  gospodarczych  w  celu  osiągnięcia 

zdecydowanego polepszenia  bieżących, zasadniczych miar wydajności 

(jakość, szybkość działania, poziom obsługi klientów).

Rodzaje restrukturyzacji:

podstawowa - orientacja  ta  podważa  wszystkie  założenia,  na  których 
opiera  się działalność gospodarcza,  czyli  dotychczasową strategię
przedsiębiorstwa oraz jego procedury operacyjne,

radykalna - w  zależności  od  potrzeb  tworzone  (definiowane)  są nowe 
procesy, a nie usprawniane istniejące,

istotna - wzrost  efektywności  ma  na  celu  znaczne  podniesienie 
sprawności  funkcjonowania  przedsiębiorstwa,  a  nie  jedynie  jej 
marginalny przyrost, osiągany w wyniku technik ciągłego doskonalenia, 

restrukturyzacja procesów - przełamuje się dotychczasowe podziały 
funkcjonalne i likwiduje w ten sposób nieefektywność, będącą
skutkiem przekazywania pracy między wyspecjalizowanymi 
jednostkami (działami) i pracownikami; działanie musi być
zorganizowane wokół procesów, a nie wokół indywidualnych zadań.

Informatyzacja przedsiębiorstwa a 

problemy restrukturyzacyjne

background image

W  konsekwencji  chodzi  o  stworzenie  przedsiębiorstwa  „

nowego 

typu

” (zorientowanego procesowo). 

określenie  procesów  w  przedsiębiorstwie  (początek-koniec, 

właściciel,  dostawcy-klienci,  wspólne  zależności  czyli 

podprocesy, powiązania z zasobami i zasileniami),

zmiany  w  zarządzaniu  (wizja  i  misja  przedsiębiorstwa, 

kultura 

wewnątrz-organizacyjna, 

metody 

kierowania, 

rekrutacja i motywacja pracowników

Informatyzacja  nie  może  wspierać nieefektywnych  i 

niewydajnych  procesów

Działania 

restrukturyzacyjne 

powinny  być nadrzędne

w  stosunku  do  prac  projektowo-

wdrożeniowych ZSI.

Informatyzacja przedsiębiorstwa: 

faza  pierwsza

- analiza  i  definicja  procesów,  celów,  funkcji, 

struktur danych, itp.,

faza  druga

-

modelowanie  procesów  zgodnie  z  celami 

przedsiębiorstwa,  utworzenie  struktury  organizacyjnej  firmy  i 

modelu systemu informatycznego,

faza  trzecia

- tworzenie  szczegółowych  specyfikacji  procesów  i 

tworzenie  ZSI.

Informatyzacja przedsiębiorstwa a 

problemy restrukturyzacyjne

background image

Informatyzacja firmy a problemy 

Informatyzacja firmy a problemy 

restrukturyzacji

restrukturyzacji

Restrukturyzacja 

przedsiębiorstwa

Przygotowanie infrastruktury 

informatycznej

Budowa ZSI

Podejście 

konwencjonalne

-

-

dzia

dzia

ł

ł

ania 

szeregowe 

ania 

szeregowe 

konieczno

konieczno

ś

ś

ci

ci

ą

ą

modyfikacji 

modyfikacji 

modelowania 

proces

modelowania 

proces

ó

ó

gospodarczych  po  drugim  a 

gospodarczych  po  drugim  a 

nawet trzecim etapie.

nawet trzecim etapie.

Restrukturyzacja 

przedsiębiorstwa

Budowa ZSI

Uzyskanie kompletnej 

infrastruktury informatycznej

Podejście 

zalecane

-

-

dopuszcza  si

dopuszcza  si

ę

ę

r

r

ó

ó

wnoleg

wnoleg

ł

ł

o

o

ść

ść

prac 

prac 

restrukturyzacyjnych i wst

restrukturyzacyjnych i wst

ę

ę

pnych 

pnych 

wdro

wdro

ż

ż

eniowych 

mo

eniowych 

mo

ż

ż

liwo

liwo

ś

ś

ci

ci

ą

ą

iteracyjnego 

uszczeg

iteracyjnego 

uszczeg

ó

ó

ł

ł

owiania 

owiania 

dzia

dzia

ł

ł

a

a

ń

ń

wdro

wdro

ż

ż

eniowych 

eniowych 

przygotowywania 

docelowej 

przygotowywania 

docelowej 

infrastruktury.

infrastruktury.

background image

ANALIZA

MODELOWANIE

MODELOWANIE SI

BUDOWA MODELU

background image

Co to jest analiza SI?

analiza procesów biznesowych;

identyfikacja procesów związanych z 
planowanym systemem;

określenie grup obecnych i przyszłych 
użytkowników;

analiza obecnych i przyszłych potrzeb 
użytkowników; 

określenie wymagań stawianych systemowi;
opracowanie funkcjonalnego modelu systemu i  
ogólna specyfikacja systemu;
dokładne określenie nakładów i potrzebnych 
zasobów oraz opracowanie harmonogramu.

W ramach analizy procesów biznesowych niezbędna może 

okazać się poprawa jakości samych procesów, jeszcze przed 

wdrożeniem systemu (restrukturyzacja w obiekcie 

background image

Analiza systemów informacyjnych (SI)

Jest to studium problemu w obrębie organizacji w 

celu zarekomendowania rozwiązania 
technicznego i stworzenia specyfikacji wymagań
„biznesowych”

Kto ją wykonuje? 
Analityk (ang. Systems Analyst)

Analityk rozpoznaje problem wewnątrz organizacji, który może być rozwią-

zany za pomocą środków technicznych lub organizacyjnych

Jest pomostem między tymi, którzy potrzebują komputeryzacji, a tymi, którzy 

znają technologię

Musi znać zarówno technologię, zasady zarządzania oraz posiadać podsta-

wową wiedzę dotyczącą charakteru analizowanych procesów biznesowych

background image

Zadania analityka

Analityk zgłębia problemy i możliwości 
organizacji 

Przekształca wiedzę o potrzebach 
informacyjnych na propozycję struktury 
technicznej potrzebnej do ich zaspokojenia

Może być człowiekiem z zewnątrz. Dlaczego?

Konsultant zewnętrzny?

Pracownik?

Wiedza analityka: Podstawy teoretyczne z organizacji i zarządzania

technologie informacyjne i informatyczne

Może, ale nie musi posiadać wiedzy o przedmiocie działalności, ale musi 
być w stanie ją przyswoić

background image

Rodzaje analizy systemowej

Analiza potrzeb i celów

Strukturalna

Funkcjonalna

Analiza rozwojowa

Analiza efektywności

Analiza decyzyjna (analiza sytuacji 
decyzyjnej, analiza wyboru warianty 
działania)

background image

Metody teorii zarządzania przydatne w   

analizie systemów informacyjnych

Podejście systemowe

Analiza procesów biznesowych

Łańcuch wartości Portera

Inne analizy 

SWOT

Stakeholders

cost/benefit

background image

Podejście systemowe

Organizacja jako system (Bertalanffy, Wiener)

Wejście => Przetwarzanie => Wyjście

Sprzężenie zwrotne

Dekompozycja na podsystemy

Podsystemy jako „czarne skrzynki”

background image

Analiza procesów biznesowych

Wykonywane czynności

Obieg dokumentów, materiałów

Powiązania pomiędzy nimi

Osoby wykonujące i odpowiedzialne

Co można skomputeryzować?

background image

SWOT i inne analizy managerskie

- strengths - silne strony

- wekanesses - słabe strony

- opportunities - szanse

- threats - zagrożenia

czynniki pozytywne                                  czynniki negatywne

Czynniki  zewnętrzne (otoczenie)

szanse

zagrożenia

Czynniki wewnętrzne 

(organizacja)

mocne strony

słabe strony

background image

Co to jest modelowanie?

Modelowanie to wyszukiwanie w 

systemie cech i związków 
istotnych ze względu na dany 
cel

background image

Co to jest modelowanie SI?

Dla  niektórych  projektów,  zwłaszcza  przy  tworzeniu 
nowatorskiego  oprogramowania  w  dziedzinach  dotąd  nie-
zinformatyzowanych,

modelowanie  jest  być

może 

najważniejszym 

elementem 

rozwijania 

oprogramowania, 

od 

którego 

największym 

stopniu 

zależy 

sukces 

całego 

przedsięwzięcia 

informatycznego.

innych 

projektach

zdarza 

się

przechodzenie 

bezpośrednio 

fazy 

wymagań

do 

bardzo 

konkretnego  projektu  kodu  (można  powiedzieć,  że 
faza  modelowania  jest  tutaj  niejawna,  a  model 
systemu odbija się w architekturze kodu) 

background image

Co to jest modelowanie SI?

Modelowanie można określić jako próbę uchwycenia w 

kategoriach informatycznych i wyrażenia za pomocą

specjalnej notacji graficznej najważniejszych cech 

rozwijanego systemu oraz jego otoczenia

Efektem procesu modelowania jest „adekwatny” do 

celu modelowania model SI

Powstały w efekcie model ma umożliwić łatwe 

zaprojektowanie i implementację kodu

Na każdym etapie tworzenia oprogramowania 

modelowanie ma dostarczać tylko tyle informacji ile 

jest w danym momencie potrzebne (pomijając 

nieistotne szczegóły – stąd modelowanie jest sztuką

abstrakcji)

background image

Dwie ogólnie znane metody 
stosowane w modelowaniu

Top-down (z góry w dół)

Bottom-up (z dołu do góry)

background image

Ogólna procedura modelowania

Określenie celu modelowania systemu, analiza 

rzeczywistości, identyfikacja obiektu modelowania i 

opracowanie założeń do wyodrębnionej części 

rzeczywistości, zdefiniowanie granic modelowanego 

systemu, zdefiniowanie warunków i ograniczeń

realizacyjnych w procesie modelowania

Budowa (opracowanie) modelu 

systemu, dekompozycja i agregacja –

opracowanie składowych modelowanego 

systemu

Weryfikacja (testowanie) i adaptacja

modelu

Implementacja modelu w warunkach 

rzeczywistych

background image

Modelowanie a model SI

Efektem procesu modelowania jest 

„adekwatny” do celu modelowania 
model SI

Modelowanie  to  całokształt  czynności  
zmierzających  do  utworzenia  konstrukcji 
modelu i zweryfikowania modelu

background image

Co to jest model?

Semantycznie spójna abstrakcja systemu
tworzona z pewnej perspektywy - kompletny 
opis systemu z pewnej perspektywy

Sformułowanie „kompletny opis” oznacza tu, że 
żadna dodatkowa informacja nie jest potrzebna, 
aby zrozumieć system z danej perspektywy.

Model  nie  jest  rzeczywistością,  stanowi  jedynie  opis  rzeczywistości,  jej 
uproszczenie.
Pojedynczy  model  zwykle  nie  wystarcza  do  zrozumienia  całości  problemu  i 
znalezienia  odpowiedniego  rozwiązania,  zazwyczaj  potrzebujemy  ich  wiele. 
Razem  tworzą kompletny  opis  całości  - muszą być wzajemnie  spójne  i  nie 
redundantne.

Tworzenie  modeli  wspomaga  zapanowanie  nad  realizacją dużych,  złożonych 
systemów.

background image

Co to jest model?

Model jest uproszczoną reprezentacją
systemu, 
w czasie i przestrzeni, stworzoną w 
zamiarze zrozumienia zachowania systemu 
rzeczywistego
Model stanowi kompletną reprezentację
adresującą pewne aspekty systemu 
informatycznego

background image

Rodzaje modeli

Modele mogą być:

fizyczne, 

abstrakcyjne, 

jakościowe:

opisowe – co jest jakie,

wyjaśniające – co od czego zależy

ilościowe (prognostyczne).

Modele ilościowe można podzielić na 

deterministyczne, rozmyte, 

probabilistyczne

i zależą od wiedzy jaką posiadamy o systemie 

background image

Rodzaje modeli – cd…

• Projektowy

• Statyczny, 

• Dynamiczny, 

• Czasu rzeczywistego

• Projektowy lub modele procesów systemów złożonych

• Implementacyjny

• Interakcji

• Wdrożeniowy

• Przypadków użycia

• Formalny

• Funkcjonalny

• Szczegółowy

• Ogólny…… i wiele innych

background image

Rodzaje modeli- cd…

Statyczny model strukturalny obejmuje 
komponenty lub podsystemy, które można 
zbudować jako niezależne jednostki.

Model dynamiczny procesu, w którym 
przedstawia się podział systemu na procesy czasu 
wykonania.

Model interfejsów, w którym definiuje się usługi 
oferowane przez każdy podsystem za 
pośrednictwem jego interfejsu publicznego.

Model związków, który obejmuje związki, takie 
jak przepływ danych między podsystemami.

Ważna jest znajomość modeli, ich zastosowań, wad oraz zalet.

background image

Ludzie zaangażowani w procesie 
modelowania SI

Analitycy

Projektanci

Użytkownicy

Eksperci 

dziedzinowi

Testerzy

Realizatorzy projektu

SI

Eksperci w zakresie 

modelowania SI i doradcy 

informatyczni

Integratorzy

Zespoły 

wdrożeniowe

background image

Rodzaje modelowania SI

Formalne

Pojęciowe – konceptualne

Zwinne

Przypadków użycia

Strukturalne

Komponentowe

Obiektowe

Algorytmiczne

i wiele innych zależnych od rodzaju 

modelu dziedziny zastosowań, metody i 

procedury modelowania ….

background image

Modelowanie formalne

Definicja 

wymagań

Specyfikacja

formalna

Przekształcenie

formalne

model SI

Weryfikacja 

modelu

background image

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 (conceptual 

modeling) oraz modelu pojęciowego (conceptual 

model) odnoszą się procesów myślowych i 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, przedstawienia procesów 

zachodzących w rzeczywistości, struktur danych oraz 

programów składających się na konstrukcję systemu. 

background image

Trwałą tendencją w rozwoju metod i narzędzi projektowania 

oraz  konstrukcji  SI  jest 

dążenie  do  minimalizacji  luki

pomiędzy 

myśleniem 

rzeczywistym 

problemie 

myśleniem o danych i procesach zachodzących na danych.

Percepcja rzeczywistego

świata

Analityczny model

rzeczywistości

Model struktur danych 

i procesów w SI

... ...

...

... ...

...

... ...

...

... ...

...

... ...

...

... ...

...

odwzorowanie

odwzorowanie

Modelowanie pojęciowe cd…

background image

Modelowania a identyfikacja

Identyfikacja 

teorii sterowania

oznacza 

rozpoznawanie 

(to jest sporządzenie opisu 

matematycznego) właściwości statycznych i 
dynamicznych elementów i 

układów 

automatyki

Identyfikacja oznacza znalezienie 
zależności między wejściem a wyjściem

(dla elementu automatyki, obiektu, układu 
regulacji) na podstawie danych 
doświadczalnych. 

Układ 

automatyki

WE

WY

background image

Modelowania a identyfikacja

Po poddaniu obiektu (procesu) szeregowi doświadczeń

dobiera się bowiem parametry modelu w taki sposób, 

aby pasował on do danych doświadczalnych. 

Identyfikacja odgrywa zasadniczą rolę w odniesieniu 

do obiektów i procesów regulacji, gdyż umożliwia 

poprawne nastrojenie układu regulacji automatycznej. 

W czasie identyfikacji określane są bowiem wartości 

parametrów modelu obiektu (procesu), które 

wykorzystuje się następnie w doborze nastaw 

regulatora

sterującego rzeczywistym obiektem 

(procesem). 

Układ 

automatyki

WE

WY

Jakie parametry 

modelu ???

background image

Modelowania a identyfikacja

Po poddaniu obiektu (procesu) szeregowi doświadczeń

dobiera się bowiem parametry modelu w taki sposób, 

aby pasował on do danych doświadczalnych. 

Identyfikacja odgrywa zasadniczą rolę w odniesieniu 

do obiektów i procesów regulacji, gdyż umożliwia 

poprawne nastrojenie układu regulacji automatycznej. 

W czasie identyfikacji określane są bowiem wartości 

parametrów modelu obiektu (procesu), które 

wykorzystuje się następnie w doborze nastaw 

regulatora

sterującego rzeczywistym obiektem 

(procesem). 

Układ 

automatyki

WE

WY

Jakie parametry 

modelu ???

REGULATOR

background image

Co to jest identyfikacja systemu?

Identyfikacja  systemu - to  wyznaczanie  modelu 

(matematycznego) systemu  na  podstawie 
wiedzy o jego zachowaniu (wiedza eksperta, 
wiedza eksperymentalna) 

background image

Wiedza eksperymentalna

• Wiedza 

eksperymentalna

-

wiedza 

obiekcie 

(systemie) 

uzyskana 

na 

podstawie 

szeregu 

przeprowadzonych obserwacji i pomiarów.

background image

Identyfikacja (kreowanie) systemu w 
ujęciu czarnej skrzynki

Kreowania systemu we-wy /przyczynowo-skutkowy/ 

poprzez ustalenie wielkości wejściowych mających 
istotny wpływ na zdefiniowaną wielkość wyjściową

(satysfakcję, jakość)

Kreowanie podzielone na zależnych, następujących po 

sobie etapów

?

?

?

?

.

.

.

?

WY 

(zdefiniowane)

background image

Etap pierwszy: Burza mózgów

Wypisanie wszystkich potencjalnych czynników
mających wpływ na zdefiniowaną wielkość wyjściową
Czynniki jako wielkości wejściowe:

u – wejścia sterowalne (decyzyjne)

w – wejścia obserwowalne (mierzalne)
z – wielkości losowe (zakłócenia)- możliwe do oszacowania

Wstępne określenie wielkości wejściowych systemu. 

background image

Etap drugi: lista kandydatów

Doprecyzowanie nazw czynników - mogą być

wieloznaczne 

i mogą prowadzić do niespójności w kreowaniu 

systemu – wiedza ekspercka może być źle 
zinterpretowana

Opracowanie wstępnej listy czynników

Opracowanie ankiet dla ekspertów, ze szczególnym 

uwzględnieniem jednolitego sposobu priorytetowania 

(ocena ważności) przez ekspertów (wypełniających 

ankietę)

background image

Etap trzeci: 
wstępny ranking ekspertów

Dobór ekspertów oceniających czynniki 

i ewentualnie ustalenie „wag” ekspertów. 
Eksperci wypełniają przygotowane ankiety
Możliwe zastosowanie różnych metod 

rankingu ekspertów, np.

wybór 50% istotnych czynników
przyporządkowanie każdemu czynnikowi 

wartości 

1 (mało istotny), 2 (istotny), 3 (bardzo istotny)

background image

Wyselekcjonowanie wielkości wejściowych, które mają

„odczuwalny” wpływ na działanie systemu.
Selekcja przeprowadzona na podstawie histogramu, na 

którym każdemu czynnikowi przyporządkowano sumaryczną

liczbę punktów. Selekcja wg. jednej z metod:

arbitralnie ustalona ilość czynników najwyżej punktowanych,
wybór czynników, dla których suma punktów równa 70% 

wszystkich punktów itp.,
wybór czynników o sumie punktów większej niż przyjęty próg 

punktowy.

Etap czwarty: 
Selekcja wielkości wejściowych

background image

Etap piąty: ustalenie zakresów 
wielkości wejściowych

Ustalenie zakresów ustalonych wielkości wejściowych  i ewentualnie 

dokładna ich definicja przy wielkościach nie będących liczbami

{bardzo dużo, dużo, średnio, mało, bardzo mało}
{wygodny, mało wygodny …} 

Konsekwentnie dla wielkości nie liczbowych należy precyzyjnie 

zdefiniować sposób ich kodowania oraz odpowiadający mu 

znormalizowany zakres wartości liczbowych (np. {od 1 do 5}) 

lub od 0% do 100%

background image

Etap szósty: 
Ostateczny ranking ekspertów

Na podstawie informacji zebranych 

w poprzednich etapach następuje ostateczny 

wybór czynników i wielkości wejściowych

(x1,x2,…) systemu

Ustalenie wag poszczególnych czynników 

(wielkości wejściowych) poprzez kolejną ocenę

ekspertów. Ekspert otrzymuje spis ustalonych 

czynników i przyporządkowuje każdemu wagi 

np. dla 7 czynników są to liczby od 1 do 7. Dla 

najbardziej istotnego jego zdaniem będzie 7 a 1 

dla najmniej istotnego. Waga danego czynnika 

jest następnie wyliczana jako procentowy udział

sumy uzyskanych przez dany czynnik punktowy 

w stosunku do sumarycznej liczby punktów dla 

wszystkich czynników

background image

Etap siódmy: sformułowanie 
modelu matematycznego

Sformułowanie modelu 

matematycznego 
z wielkościami wejściowymi np. 

NORM - współczynnik 
normalizujący,
aby Y = <0,100>
(ew. bardziej skomplikowane 
modele nie tylko liniowe)

...)

2

2

1

1

(

[%]

x

w

x

w

NORM

Y

background image

Etap siódmy: sformułowanie 
modelu matematycznego

Przedstawienie schematu blokowego
modelu systemu wejściowo-wyjściowego,

przykładowo dla modelu liniowego:

Modele matematyczne mogą być
różne 
dla różnych podgrup ekspertów, 
jeśli takie podgrupy wyróżniono

UN

U2

U1

.
.
.
.
.

+

+

+

S1

Y

.
.
.
.
.

S2

SN

background image

Dlaczego modelowanie i analiza SI 
jest ważna?

Nieudane projekty to rzeczywistość

Ciągła potrzeba doskonalenia i 
usprawniania procesów wytwarzania 
systemów informatycznych

Nowe zastosowania systemów 
informatycznych

Coraz większa złożoność systemów 
informatycznych

Ogólny kryzys procesów wytwarzania 
systemów informatycznych 

background image

Nieudany projekt informatyczny

Miarą niepowodzenia projektu 
jest niedotrzymania jednego 
lub więcej z następujących 
parametrów:

Budżet

Czas realizacji

Funkcjonalność

background image

Rzeczywistość „w statystyce”

w ponad

50%

przedsięwzięciach 

informatycznych przekraczany jest
termin i

budżet,

ponad

25%

przedsięwzięć

informatycznych jest przerywanych.

background image

Marsz ku klęsce!!!

Zdecydowana większość

dużych projektów 

informatycznych

jest z góry

skazana na 

niepowodzenie

!

=

background image

Polskie przykłady

Informatyzacja PZU

Informatyzacja ZUS

System POJAZD

Informatyzacja urzędów 
skarbowych

background image

Raport The Standish Group

Amerykańska instytucja badawcza.
Działalność: 

kompleksowa analiza 

rynku amerykańskiego w zakresie 
skuteczności realizacji projektów 
informatycznych.

www.standishgroup.com

background image

Dlaczego CHAOS?

O chaosie w projektowaniu SI decyduje 
przeważająca liczba przedsięwzięć zakończonych :

niepowodzeniem w sensie ilościowym
czyli:

przekroczeniem estymowanego 

czasu

trwania działań projektowych;

przekroczeniem 

budżetu

;

porzuceniem

z określonych powodów;

niepowodzeniem w sensie jakościowym
kiedy gotowy system wykazuje dużą

niezgodność

z pierwotną

specyfikacją

wymagań użytkownika

.

Chaos – stan niezorganizowania, zamętu, nieładu

background image

Kiedy projekt może się „udać”

Zakres

Czas

Koszty

Udany projekt

Produkt końcowy

Termin

Koszty realizacji

background image

Wydatki na projekty SI

250

300

260

275

255

220

240

260

280

300

Wydatki w mld USD

Rok

2002
2000
1998
1996
1994

200 tys. 

projektów

background image

Realizacja projektów SI

16

27

26

28

34

31

40

28

23

15

53

33

46

49

51

0%

20%

40%

60%

80%

100%

1994

1996

1998

2000

2002

Niepowodzenie częściowe
Niepowodzenie całkowite
Sukces

background image

Realizacja projektów SI

34

84

73

74

72

66

16

27

28

26

0

20

40

60

80

100

1994

1996

1998

2000

2002

Sukces

Niepowodzenie całkowite

Niepowodzenie częściowe

Niepowodzenie razem

background image

Jakość wytworzonych systemów SI

Im 

większy

jest tworzony system, tym 

mniejsza

zgodność produktu końcowego

pierwotną

specyfikacją wymagań

funkcjonalnych

, a w związku z tym 

mniejsze

zadowolenie klientów

1994

2000

2002

Zmiana: 

2002 do 

2000

Zmiana: 

2002 do 

1994

Zgodność
produktu ze 
specyfikacją

61% 67% 51%

-16%

-10%

background image

Czynniki sukcesu

Czynnik

1994

2000

Zaangażowanie użytkownika

16%

16%

Wsparcie zarządu (kierownictwa, sponsora)

14%

18%

Jasne sformułowanie wymagań

13%

6%

Właściwe planowanie

10%

Brak

Realne oczekiwania

8%

Brak

Krótsze etapy projektowania

8%

10%

Kompetentny zespół projektowy

7%

Brak

Jasno określona własność projektu (odpowiedzialność)

5%

Brak

Jasna wizja i cele

3%

12%

Ciężko pracujący, skupiony na projekcie zespół

2%

Brak

Doświadczony kierownik zespołu

Brak (ew. 7)

14%

Formalna metodyka

Brak

6%

Zastosowanie standardów infrastruktury

Brak

8%

Wiarygodne oszacowanie

Brak (ew. 4)

5%

Inne

1%

5%

background image

Wnioski z badań

Chaos w obszarze projektowania SI 

spowodowany jest 

błędami ludzkimi

, a nie

technologicznymi

background image

Niewłaściwa interpretacja wymagań klienta

Częste i zbyt późne zgłaszanie zmian związanych z 
oprogramowaniem

Nieprawidłowe oszacowanie czasu realizacji projektu 
(opóźnienia czasowe)

Nieprawidłowe oszacowanie budżetu i zasobów

Problemy w komunikacji pomiędzy członkami zespołu 
projektowego

Problemy w komunikacji pomiędzy zespołem projektowym a 
klientem

Duża liczba małych błędów w oprogramowaniu, wynikająca z 
nieprawidłowego testowania

Problemy wdrożeniowe i brak odpowiedniej pielęgnacji 
oprogramowania

Podstawowe problemy

background image

Złożoność oprogramowania

Złożoność oprogramowania

(wewnętrzna i wymagana komunikacją z innymi 
systemami – patrz MS Windows/MS Office)

UNIX

– 4 000 000 linii kodu

Windows 2000

– 35 000 000 linii 

kodu

Windows XP

– około 50 000 000

linii kodu

background image

Rok

Liczba 

użytkowników

Liczba linii 

kodu

1991

100

10 000

1992

1000

40 000

1993

20 000

100 000

1994

100 000

170 000

1995

500 000

250 000

1996

1 500 000

400 000

1998

7 500 000

1 500 000

Rozwój systemu LINUX:

Złożoność oprogramowania

background image

Windows

Zespół

programistów

Liczba testerów

NT 3.1

200 osób

140 osób

NT 3.5

300 osób

230 osób

NT 3.51

450 osób

325 osób

NT 4.0

800 osób

700 osób

Win 2000

1400 osób

1700 osób

Wielość współautorów oraz problemy związane z 
błędami na etapie określania wymagań, 
projektowania, wykonywania i testowania

Liczebność zespołów projektowych

background image

Źródła złożoności systemów 
informatycznych

Software

Złożoność

technologiczna

Złożoność
dziedzinowa

Złożoność
psychologiczna

background image

Metody projektowania

Ciągle niedoskonałe 

metody

narzędzia

tworzenia i weryfikacji systemów 
informatycznych

UML

UML

DFD

DFD

ERD

ERD

XP

XP

SADT

SADT

PSL/
PSA

PSL/
PSA

RSL/
REVS

RSL/
REVS

HELP!

background image

Kryzys oprogramowania

Długi i kosztowny cykl tworzenia
oprogramowania

Długi i kosztowny cykl życia SI, wymagający 
stałych zmian

Wysokie koszty utrzymania oprogramowania

Wysokie prawdopodobieństwo 
niepowodzenia 
projektu programistycznego

Sprzeczność pomiędzy odpowiedzialnością
współczesnych systemów informatycznych, a 
ich zawodnością

Problemy współdziałania niezależnie 
zbudowanego oprogramowania
, szczególnie 
istotne przy dzisiejszych tendencjach 
integracyjnych

background image

Kryzys oprogramowania

Uzależnienie organizacji od systemów 
komputerowych i przyjętych technologii 
przetwarzania 
informacji (często niestabilnych w długim horyzoncie 
czasowym)

Dążenie do przystosowania istniejących i działających 
systemów do nowych wymagań 
i tendencji oraz platform 
sprzętowo-programowych

Niski stopień powtarzalności poszczególnych 
przedsięwzięć

Niska kultura ponownego użycia wytworzonych 
komponentów projektów i oprogramowania

Szybki rozwój narzędzi informatycznych

background image

Prawa Murphiego

„główne błędy powstają na 
styku:

klient –

firma informatyczna

,

projektant

-

programista

programista

-

komputer

„jeżeli gdziekolwiek może pojawić się błąd, tam 

na pewno się pojawi

„nie ma programów bezbłędnych, są tylko 
takie w których dotąd 

nie znaleziono błędu

background image

CYKL ŻYCIA SI

background image

• Projektowanie
• Produkowanie
• Użytkowanie

• Obsługiwanie
• Likwidowanie

fazy wytwórcze

fazy eksploatacyjne

Generowanie ideowe

Generowanie materialne

Generowanie wtórne

Degenerowanie

Regenerowanie

pro

je

kt

ow

an

ie

pro

du

ko

w

an

ie

eksploatacja

yt

k

ow

an

ie

ob

ug

iw

an

ie

lik

w

ido

w

an

ie

SI jako obiekt techniczny

Każdy SI ma swój cykl życia

background image

Model procesu wytwarzania SI to 
inaczej model cyklu życia SI

background image

Cykl życia SI - praktyka a teoria

Rozwój SI jest złożonym procesem

realizowanym etapowo w określonym czasie. 

By zapewnić powtarzalną jakość realizowanych SI

definiuje się pojęcie cyklu życia SI dzieląc
całość na szereg tzw. faz życia SI. 

Poszczególnym stadiom rozwoju SI

przyporządkowuje się odpowiednie zestawy
czynności, których celem jest uporządkowanie
przebiegu prac, umożliwienie planowania i
zarządzania dostępnymi zasobami. 

Rodzaj oraz kolejność zdefiniowanych faz

składają się na tzw. model cyklu życia

oprogramowania.

background image

Modele cyklu życia SI– c.d.

Literatura definiuje szereg modeli cyklu życia SI

Model kaskadowy

(ang. waterfall)

Metodologia V

Realizacja kierowana dokumentami

(ang. document driving) 

Prototypowanie

(ang. prototyping)

Programowanie odkrywcze

(ang. Exploratory

programming)

Realizacja przyrostowa

(ang. Incremental

development)

Montaż z gotowych elementów

(ang. 

composition of  re-usable components)                                              

Model spiralny

(ang. spiral)

Formalne transformacje

Inne modyfikacje i multimetody

background image

Model kaskadowy

Planowanie

Analiza

Projektowanie

Implementacja

Testowanie

Konserwacja

Model kaskadowy (

ang. waterfall

jest jednym z najbardziej 
rozpowszechnionych modeli cyklu 
życia SI. Nazwa model kaskadowy 
została po raz pierwszy użyta w 
artykule Winstona W. Royce’a pt.: 

"Managing the Development of    

Large Software Systems„. 

Model kaskadowy jest uznawany często za 

dość

przestarzały i mało elastyczny

gdyż:

nie można przejść do kolejnej fazy przed  
zakończeniem poprzedniej (sztywno narzucony 
iteracyjny proces),

powtarzanie dowolnej iteracji (fazy) często 

okazuje się kosztowne,

ścisła kolejność postępowania utrudnia 

komunikację z klientem.

background image

fazę określania  wymagań,  w  której  określane  są cele  oraz 
szczegółowe wymagania wobec tworzonego systemu,

fazę projektowania,  w  której  powstaje  szczegółowy  projekt 
systemu spełniającego ustalone wcześniej wymagania,

fazę implementacji/kodowania oraz  testowania modułów

,  

której  projekt  zostaje  zaimplementowany  w  konkretnym 
środowisku  programistycznym  oraz  wykonywane  są testy 
poszczególnych modułów,

fazę

testowania

której 

następuje 

integracja 

poszczególnych 

modułów 

połączona 

testowaniem 

poszczególnych podsystemów oraz całego oprogramowania,

fazę konserwacji

,  w  której  system  jest  wykorzystywane 

przez  użytkownika(ów),  a  producent  dokonuje  konserwacji 
oprogramowania  — wykonuje  modyfikacje  polegające  na 
usuwaniu błędów, zmianach i rozszerzaniu funkcji systemu.

Model kaskadowy wprowadza następujące fazy podstawowe:

Model kaskadowy 

(liniowy, wodospadowy)

background image

Analiza 

potrzeb

Specyfikowani

e systemu

Projektowanie 

systemu

Programowanie 

systemu

Testowanie 

systemu

Integrowanie 

systemu

Modyfikowanie 

systemu

Eksploatowanie 

systemu

Zaniechanie 

eksploatacji

Model kaskadowy 

(liniowy, wodospadowy)

background image

W  modelu  kaskadowym  często  wyróżnia  się pewne  dodatkowe  fazy, 
które częściowo nakładają się na fazy wymienione powyżej. Są to fazy:

faza  strategiczna  wykonywana  przed  formalnym  podjęciem 
decyzji o realizacji przedsięwzięcia.  W tej fazie podejmowane są
pewne strategiczne decyzje dotyczące dalszych etapów prac. Faza 
ta wymaga oczywiście przynajmniej ogólnego określenia wymagań,

faza analizy

w której budowany jest logiczny model systemu.

faza  dokumentacji

,  w  której  wytwarzana  jest  dokumentacja 

użytkownika. Opracowywanie dokumentacji przebiega równolegle z 
produkcją oprogramowania.  Faza  to  może  rozpocząć się już w 
trakcie  określania  wymagań.  Sugeruje  się nawet,  że  podręcznik 
użytkownika  dla  przyszłego  systemu  jest  dobrym  dokumentem 
opisującym  wymagania.  Ostatnie  zmiany  w  dokumentacji 
dokonywane są w fazie instalacji.

faza  instalacji

,  w  której  następuje  przekazanie  systemu 

użytkownikowi.

Model kaskadowy 

(liniowy, wodospadowy)

background image

OKREŚLENIE 

WYMAGAŃ

PROJEKTOWANIE

IMPLEMENTACJA

TESTOWANIE

KONSERWACJA

FAZA

STRATEGICZNA

ANALIZA

INSTALACJA

DOKUMENTACJA

Fazy dodatkowe

Fazy zasadnicze

Model kaskadowy 

(liniowy, wodospadowy)

background image

Ocena modelu kaskadowego SI

Model kaskadowy jest przejrzysty, czytelny, ale nie 
praktyczny!

Koncepcyjnie model ten jest bardzo ważny, wskazuje 
etapy które musza wystąpić podczas projektowania 
SI, jednak w praktyce zbyt późno się orientujemy, że 
model nie spełnia naszych oczekiwań. 

Kluczową sprawą jest właściwe zebranie danych na 
etapie analizy. Napotyka to jednak na specyficzne 
przeszkody. Czasem  użytkownicy celowo 
wprowadzają w błąd zespół projektowy. 

Błąd w początkowym etapie trudno naprawić w 
dalszych etapach

Wydłużony okres realizacji SI – nie widać efektów

background image

Ocena cyklu życia SI

Szczeg

Szczeg

ó

ó

ł

ł

owa analiza zagadnie

owa analiza zagadnie

ń

ń

czasoch

czasoch

ł

ł

onno

onno

ś

ś

ci i kosztoch

ci i kosztoch

ł

ł

onno

onno

ś

ś

ci realizacji systemu 

ci realizacji systemu 

informatycznego sta

informatycznego sta

ł

ł

a si

a si

ę

ę

podstaw

podstaw

ą

ą

krytyki tradycyjnych cykli 

krytyki tradycyjnych cykli 

ż

ż

ycia systemu.

ycia systemu.

Nakład pracy w cyklu tworzenia systemu

Analiza potrzeb

6%

Projektowanie

5%

Kodowanie

7%

Eksploatacja

67%

Testowanie

15%

Koszty poprawiania błędów

Projektowanie

13%

Inne

4%

Kodowanie

1%

Analiza potrzeb 

82%

background image

Metodologia V

background image

Realizacja kierowana 
dokumentami

Model 

ten 

jest 

Model 

ten 

jest 

ś

ś

cis

cis

łą

łą

realizacj

realizacj

ą

ą

modelu 

modelu 

kaskadowego, 

kaskadowego, 

Sk

Sk

ł

ł

ada si

ada si

ę

ę

wi

wi

ę

ę

c z szeregu nast

c z szeregu nast

ę

ę

puj

puj

ą

ą

cych po sobie 

cych po sobie 

faz. 

faz. 

Dodatkowo  zak

Dodatkowo  zak

ł

ł

ada  si

ada  si

ę

ę

ż

ż

e  ka

e  ka

ż

ż

da  faza  ko

da  faza  ko

ń

ń

czy  si

czy  si

ę

ę

opracowaniem  szeregu  dokument

opracowaniem  szeregu  dokument

ó

ó

w,  w  pe

w,  w  pe

ł

ł

ni 

ni 

opisuj

opisuj

ą

ą

cych wyniki tej fazy. 

cych wyniki tej fazy. 

Dokumenty 

te 

powinny 

by

Dokumenty 

te 

powinny 

by

ć

ć

wystarczaj

wystarczaj

ą

ą

c

c

ą

ą

podstaw

podstaw

ą

ą

do  realizacji  dalszych  faz.  Dokumenty 

do  realizacji  dalszych  faz.  Dokumenty 

te s

te s

ą

ą

udost

udost

ę

ę

pniane klientowi. 

pniane klientowi. 

Dopiero  po  zaakceptowaniu  dokumentacji  przez 

Dopiero  po  zaakceptowaniu  dokumentacji  przez 

klienta rozpoczynana jest kolejna faza.

klienta rozpoczynana jest kolejna faza.

background image

Prototypowanie

G

G

ł

ł

ó

ó

wnym  celem  realizacji  prototypu  jest 

wnym  celem  realizacji  prototypu  jest 

lepsze 

okre

lepsze 

okre

ś

ś

lenie 

wymaga

lenie 

wymaga

ń

ń

wykrycie 

wykrycie 

nieporozumie

nieporozumie

ń

ń

pomi

pomi

ę

ę

dzy 

klientem 

dzy 

klientem 

tw

tw

ó

ó

rcami  systemu,  wykrycie  brakuj

rcami  systemu,  wykrycie  brakuj

ą

ą

cych 

cych 

funkcji,  wykrycie  trudnych  us

funkcji,  wykrycie  trudnych  us

ł

ł

ug,  wykrycie 

ug,  wykrycie 

brak

brak

ó

ó

w w specyfikacji wymaga

w w specyfikacji wymaga

ń

ń

.

.

Model ten 

Model ten 

sk

sk

ł

ł

ada si

ada si

ę

ę

z nast

z nast

ę

ę

puj

puj

ą

ą

cych faz

cych faz

:

:

og

og

ó

ó

lne okre

lne okre

ś

ś

lenie wymaga

lenie wymaga

ń

ń

budowa prototypu, 

budowa prototypu, 

weryfikacja prototypu przez klienta, 

weryfikacja prototypu przez klienta, 

pe

pe

ł

ł

ne okre

ne okre

ś

ś

lenie wymaga

lenie wymaga

ń

ń

realizacja pe

realizacja pe

ł

ł

nego systemu zgodnie z 

nego systemu zgodnie z 

modelem kaskadowym.

modelem kaskadowym.

background image

Prototypowanie

Wykonanie prototypu

Ocena prototypu

Projekt SI na bazie uwag do prototypu 
systemu

Wady

Zwykle modyfikuje się prototyp zamiast 
go zrealizować od nowa

Zalety:

Krótki czas od wymagań do widoczych 
efektów

background image

Procesy prototypowania 
wytwórczego

background image

Programowanie odkrywcze

Sporządź

ogólną

specyfikację

Zbuduj 
system

Skorzystaj 

z systemu

Dostarcz 

system 

klientowi

System spełnia 

wymagania?

Nie

Tak

Problemy wynikające podczas programowania odkrywczego 

(ang. exploratory

programming) to między innymi:

brak prawdziwej i pełnej specyfikacji co uniemożliwia kompletną weryfikację

systemu, 

bardzo kosztowna i trudna konserwacja tak zbudowanego systemu,

niespójna i dość chaotyczna struktura systemu

background image

Realizacja przyrostowa

Ustala się ogólną koncepcję systemu

Wyróżnia się składowe funkcjonalności

Określa się kolejność realizacji 

funkcjonalności (modułów)

Najpierw realizuje się określoną

funkcjonalność (kryterium: 

merytoryczność funkcji, efekty 

cząstkowe) od początku do końca np.. 

Zgodnie z modelem kaskadowym,

Wybiera się kolejną funkcjonalność do 

realizacji

background image

Realizacja SI z gotowych 
komponentów

metody tworzenia SI są

wyodrębnione jako odrębna filozofia 
tworzenia systemów nie koniecznie 
od podstaw, nie koniecznie od zera 
tylko jakby proces rozwijania na 
bazie istniejących systemów, 
systemu o ciekawszych, bogatszych 
możliwościach. 

background image

Realizacja SI z gotowych 
komponentów

Model montażu z gotowych elementówzwany 

też programowaniem z półkikładzie 

szczególny nacisk na możliwości redukcji 

nakładów przez maksymalne wykorzystanie 
podobieństw tworzonego oprogramowania do 

wcześniej tworzonych systemów.

Gotowe elementy mogą być wykorzystywane 

na różnych etapach realizacji przedsięwzięcia. 

Najczęściej są one wykorzystywane na etapie 

implementacji

Przykładem może być stosowanie:

bibliotek,

języków czwartej generacji, których złożone 
instrukcje mogą być traktowane jako 

odwołania do wbudowanych bibliotek,

pełnych aplikacji, np. wykorzystanie 

przeglądarki plików pomocy w systemie MS 

Windows.

background image

Zasoby ponownego użycia 
gotowych elementów

komponenty oprogramowania

(jednostki 

montażowe oprogramowania, których interfejsy 
są określone na drodze umów i których 
kontekstowe zależności są jawne

)

wzorce oprogramowania

(formy 

reprezentacji wiedzy i doświadczenia 
projektantów w postaci opisów typowych 
problemów występujących w tworzeniu 
oprogramowania oraz ich rozwiązań, które mogą
być wielokrotnie wykorzystywane w różnych 
okolicznościach)

background image

Wybór systemu gotowego jako 
metoda informatyzacji firmy

Nie należy zaczynać od projektowania nowego systemu - jeżeli jest 

to tylko możliwe lepiej oprzeć się o gotowe rozwiązanie. 

Je

Je

ś

ś

li nie ma 

li nie ma 

gotowego 

gotowego 

systemu to 

systemu to 

trzeba go 

trzeba go 

zaprojektowa

zaprojektowa

ć

ć

background image

Wybór systemu gotowego cd..

background image

Fazy procedury wyboru gotowego ZSI

Ocena aktualnej technologii

Definiowanie założeń przedsięwzięcia

Opracowanie zapytania ofertowego

Ocena ofert

Prezentacje i wizyty referencyjne

Negocjacje, wybór ZSI i podpisanie umowy

Procedura wyboru gotowego ZSI (SI)

background image

S

ta

n

 z

a

a

w

a

n

s

o

w

a

n

ia

 p

ra

c

 

re

a

li

za

c

y

jn

y

c

h

faza 1

czas

1. ocenę aktualnej technologii przetwarzania danych w 

informatyzowanym przedsiębiorstwie

faza 2

2. zdefiniowanie założeń przedsięwzięcia informatycznego

faza 3

3. opracowanie zapytania ofertowego, określenie postaci odpowiedzi 

ofertowej wraz z procedurą jej oceny

faza 4

4. ocena odpowiedzi oferentów, ich klasyfikacja i utworzenie tzw. 

krótkiej listy

faza 5

5. prezentacje i wizyty referencyjne

faza 6

6. negocjacje, wybór ZSI i podpisanie umów realizacyjnych

Fazy procedury wyboru gotowego ZSI

background image

Model spiralny

Model spiralny został
zaproponowany w 1986 
roku przez Barry’ego 
Boehma w artykule 

A spiral model of 

software development 
and enhancement
”.

Zaproponowany cykl życia 
oprogramowania łączył w 
sobie elementy 
projektowania / 
konstruowania systemu 
zgodnie z modelem 
kaskadowym oraz z 
elementami 
prototypowania. 

background image

Model  formalnych  transformacji  jest  postulowany  w  ramach 

Model  formalnych  transformacji  jest  postulowany  w  ramach 

tzw.  formalnego  nurtu  w  in

tzw.  formalnego  nurtu  w  in

ż

ż

ynierii  oprogramowania.  Zak

ynierii  oprogramowania.  Zak

ł

ł

ada 

ada 

on, 

on, 

ż

ż

wymagania

wobec  systemu 

wobec  systemu 

specyfikowane są w

pewnym 

pewnym 

formalnym  języku

.  Wymagania  te  s

.  Wymagania  te  s

ą

ą

nast

nast

ę

ę

pnie 

pnie 

transformowane do pewnej postaci po

transformowane do pewnej postaci po

ś

ś

redniej bli

redniej bli

ż

ż

szej kodowi 

szej kodowi 

w  pewnym  j

w  pewnym  j

ę

ę

zyku  programowania.  Posta

zyku  programowania.  Posta

ć

ć

ta  podlega  dalszym 

ta  podlega  dalszym 

automatycznym  transformacjom  do  kolejnych  form  coraz 

automatycznym  transformacjom  do  kolejnych  form  coraz 

bli

bli

ż

ż

szych  kodowi.  Jedna  z  kolejnych  postaci  formalnych  jest 

szych  kodowi.  Jedna  z  kolejnych  postaci  formalnych  jest 

ju

ju

ż

ż

na tyle bliska kodowi, 

na tyle bliska kodowi, 

ż

ż

e mo

e mo

ż

ż

e by

e by

ć

ć

w automatyczny spos

w automatyczny spos

ó

ó

prze

prze

ł

ł

o

o

ż

ż

ona  na  kod  w  konkretnym  j

ona  na  kod  w  konkretnym  j

ę

ę

zyku  programowania. 

zyku  programowania. 

Wszystkie te transformacje wykonywane s

Wszystkie te transformacje wykonywane s

ą

ą

bez udzia

bez udzia

ł

ł

u ludzi.

u ludzi.

Model  ten  w  chwili  obecnej  nale

Model  ten  w  chwili  obecnej  nale

ż

ż

y  uzna

y  uzna

ć

ć

za 

za 

propozycj

propozycj

ę

ę

teoretyczn

teoretyczn

ą

ą

kt

kt

ó

ó

ra 

daleka 

jest 

od 

zastosowa

ra 

daleka 

jest 

od 

zastosowa

ń

ń

profesjonalnej  produkcji  oprogramowania.  Pierwsze  pr

profesjonalnej  produkcji  oprogramowania.  Pierwsze  pr

ó

ó

by 

by 

zastosowania tego modelu wprowadzi

zastosowania tego modelu wprowadzi

ł

ł

a firma Microsoft.

a firma Microsoft.

Formalne transformacje

Formalne transformacje

background image

Inne spojrzenie na tradycyjny (klasyczny) model cyklu życia systemu z 

wyróżnieniem dwóch zasadniczych ścieżek:

Akceptacja

Eksploatacja

Ocena

Analiza potrzeb

Definiowanie założeń

Projektowanie

Wdrożenie

DZIEDZINA 

DZIEDZINA 

PRZEDMIOTOWA

PRZEDMIOTOWA

Analiza potrzeb

Definiowanie założeń

Projektowanie

Wdrożenie

•Ścieżka tworzenia

•Ścieżka eksploatacji

Inny zmodyfikowany cykl 

Inny zmodyfikowany cykl 

ż

ż

ycia SI

ycia SI

background image

Powstały nowe wzorce projektowania SI w oparciu o:

generatory 

zastosowań

(definiowanie 

transakcji, 

prowadzenie  dialogu,  tworzenie  bazy  danych,  aktualizacja 

plików, generowanie zestawień, przetwarzanie zapytań) ,

pakiety  zastosowań (zawiera  oprogramowanie  określonej 

dziedziny  zastosowań całkowicie  lub  częściowo  gotowe  do 

wdrożenia),

prototypowanie  (wiąże  się

z  tworzeniem  prototypu 

systemu).

Metodyczne 

podejście do 

systemu

Generatory 

zastosowań

Pakiety 

zastosowań

Prototypowanie

System 

wynikowy

ograniczenie 

programowania

zapewnienie bieżącego sprzężenia zwrotnego

skrócenie czasu tworzenia

Modyfikacje tradycyjnego cyklu 

Modyfikacje tradycyjnego cyklu 

ż

ż

ycia SI

ycia SI

background image

Ze  wzgl

Ze  wzgl

ę

ę

du  na  r

du  na  r

ó

ó

ż

ż

norodno

norodno

ść

ść

modeli  trudno  okre

modeli  trudno  okre

ś

ś

li

li

ć

ć

jednolity 

jednolity 

standard.

standard.

Jednak  mo

Jednak  mo

ż

ż

na  (na  bazie  do

na  (na  bazie  do

ś

ś

wiadcze

wiadcze

ń

ń

i  analizy  innych  modeli) 

i  analizy  innych  modeli) 

kusi

kusi

ć

ć

si

si

ę

ę

o pewne uog

o pewne uog

ó

ó

lnienia. 

lnienia. 

Przyk

Przyk

ł

ł

ad:

ad:

1. Planowanie systemu

1. Planowanie systemu

2. Analiza systemu

2. Analiza systemu

3. Projektowanie systemu

3. Projektowanie systemu

4. Wdra

4. Wdra

ż

ż

anie systemu

anie systemu

5. U

5. U

ż

ż

ytkowanie, modyfikacja i adaptacja systemu

ytkowanie, modyfikacja i adaptacja systemu

Inna propozycja og

Inna propozycja og

ó

ó

lnego modelu 

lnego modelu 

cyklu 

cyklu 

ż

ż

ycia systemu

ycia systemu

background image

Modele cyklu życia SI - praktyka a 

teoria – c.d.

Proponowane w literaturze modele cyklu życia SI są

przeważnie zbyt idealistyczną wizją rzeczywistości

W praktyce rzadko się zdarza by możliwe było realizowanie 

projektów ściśle według sztywno nakreślonych ram danego
modelu zaczerpniętego z literatury. 

Rozpowszechnienie się systemów komputerowych oraz

rosnący popyt na SI wymusza od projektantów i
programistów odpowiedniego poziomu elastyczności

Cykl życia SI jest determinowany poprzez:

rozmiar realizowanego przedsięwzięcia,
dziedzinę problemu, którego dotyczy nowo powstający SI,
rynek zbytu,

zmienne wymagania klienta

i skuteczność ich

zaspakajania

background image

Inne metody … - podejście społeczne 
(ang. soft approaches)

zakłada nierozłączność aspektów technicznych 
systemów informatycznych od aspektów 
pozatechnicznych – organizacji, zarządzania, 
socjologii, psychologii itd.

jednym z najbardziej znanych podejść
społecznych jest 

SSM

(Soft Systems 

Methodology),

Inną metodą jest 

ETHICS

(Effective Technical 

and Human Implementation of Computer-
Based Systems
),

background image

Od techno- do antypo-centrycyzmu 
w wytwarzaniu SI

Klasyczne podejście do projektowania SI było 
techno-centryczne. 

Opierało się ono na założeniu, że trzeba 
włożyć wiele wysiłku w tworzenie i 
optymalizowanie coraz doskonalszych 
systemów komputerowych. Natomiast 
użytkownicy systemów mieli się do nich 
dostosować.

background image

Od techno- do antypo-centrycyzmu 
w wytwarzaniu SI – cd…

Takie podejście było iluzją, ponieważ celem 
SI zwłaszcza SI do zarządzanie nie jest 
przetwarzanie danych tylko wiedza, która 
pozwoli nam podejmować rozmaite decyzje. 
Natomiast ta wiedza rodzi się w umyśle 
człowieka. Dlatego też człowiek jest punktem 
wyjścia w projektowaniu nowoczesnych SI.

background image

Od techno- do antypo-centrycyzmu 
w wytwarzaniu SI – cd…

Nowe podejście to antypo-centryzm - nie 
można doskonalić systemów zarządzania firmą
przy założeniu ,że 

człowiek jest dodatkiem

Komputer nie zastępuje ludzi, ale wspomaga 
twórcze myślenie z czego mogą się zrodzić
nowe koncepcje, nowe idee. I dopiero to 
wszystko razem może zapewnić sukces 
biznesowy. Przykładem tego kierunku jest 
podejście społeczne (ang. soft approaches)

background image

METODA, 

METODOLOGIA, 

METODYKA

MODELOWANIE

background image

Metodyka wg Wikipedii…

Metodyka to ustandaryzowane dla 
wybranego obszaru podejście do 
rozwiązywania problemów. 

Metodyka abstrahuje od 
merytorycznego kontekstu danego 
obszaru, a skupia się na metodach 
realizacji zadań, szczególnie metodach 
zarządzania.

background image

Metodyka skupia się na metodach

Metody (w tym metody 

rozwiązywania zadań) są
przedmiotem badań a w wyniku 
tych badań powstają uogólnienia i 
w ten sposób powstaje nowa 
dziedzina wiedzy, której 
przedmiotem są owe metody.

Metody 

Metody 

-

-

> badanie metod 

> badanie metod 

-

-

>wiedza 

>wiedza 

-

-

>nauka

>nauka

background image

Metodologia

Nauka

o metodach badań naukowych, ich 

skuteczności i wartości poznawczej to 
metodologia.

Klasycznie wyróżnia się metodologie w:

naukach ścisłych

naukach przyrodniczych

naukach społecznych

Metody 

Metody 

-

-

> badanie metod 

> badanie metod 

-

-

> metodologia

> metodologia

background image

Metodyka a metodologia

metodologia

skupia się na odpowiedzi na 

pytanie:

Co należy robić?,

metodyka

koncentruje się na 

poszukiwaniu odpowiedzi na pytanie:

Jak to należy robić?

Metodyka

dąży ku 

praktyce

wykonawczej, a 

metodologia

ku 

teorii

zazwyczaj sprawnego działania.

background image

Metodologia nauk technicznych (tworzenia 
oprogramowania)

Wiele nauk posiada własne metodologie lub 

korzysta z dorobku innych, 

naukach technicznych

często dokonuje się

pomiaru za pomocą

mierników

z zachowaniem 

właściwych warunków otoczenia a uzyskane 

tak wyniki mogą być zbierane i porównywane 

z wynikami uzyskanymi przez innych badaczy 

przy zachowaniu tych samych 

zmiennych

lub 

nieznacznej ich modyfikacji. 

Do opracowania stosuje się tu często opis 

matematyczny.

background image

Modelowanie 

o

Modelowanie to złożony proces tworzenia 

modelu (danych, funkcji, systemów, modułów,

podsystemów, przepływów, procesów, etc..)

o

Są różne metody, techniki,  metodyki i

metodologie budowy modeli

o

Metody, techniki, metodyki i metodologie

ukierunkowane są na przedmiot (obiekt)

modelowania

background image

MODELOWANIE 

FUNKCJI 

I DANYCH W SI

background image

Modelowanie 

funkcji 

s

Modelowanie 

funkcji 

s

ł

ł

u

u

ż

ż

opisaniu 

opisaniu 

czym 

zajmuje 

si

czym 

zajmuje 

si

ę

ę

przedsi

przedsi

ę

ę

biorstwo

biorstwo

.

.

Tworzenie  modelu  funkcji  ma  na  celu  opis  potrzeb  funkcjonalnych 

Tworzenie  modelu  funkcji  ma  na  celu  opis  potrzeb  funkcjonalnych 

przedsi

przedsi

ę

ę

biorstwa  jako  podstawa  modernizacji  istniej

biorstwa  jako  podstawa  modernizacji  istniej

ą

ą

cych  w 

cych  w 

przedsi

przedsi

ę

ę

biorstwie system

biorstwie system

ó

ó

w lub tworzenia nowych.

w lub tworzenia nowych.

Dzi

Dzi

ę

ę

ki  temu  u

ki  temu  u

ż

ż

ytkownicy,  analitycy  i  in

ytkownicy,  analitycy  i  in

ż

ż

ynierowie  systemowi  mog

ynierowie  systemowi  mog

ą

ą

uzgodni

uzgodni

ć

ć

wymagania.

wymagania.

jakie dzia

jakie dzia

ł

ł

ania wykonuje przedsi

ania wykonuje przedsi

ę

ę

biorstwo (

biorstwo (

funkcje

funkcje

),

),

co powoduje rozpocz

co powoduje rozpocz

ę

ę

cie tych dzia

cie tych dzia

ł

ł

a

a

ń

ń

(

(

zdarzenie

zdarzenie

),

),

na  jakie  znacz

na  jakie  znacz

ą

ą

ce  rzeczy  (

ce  rzeczy  (

encje

encje

)  lub  w

)  lub  w

ł

ł

asno

asno

ś

ś

ci  tych 

ci  tych 

rzeczy (

rzeczy (

atrybuty

atrybuty

) funkcje maj

) funkcje maj

ą

ą

wp

wp

ł

ł

yw.

yw.

Metody modelowania funkcji :

Metody modelowania funkcji :

Modelowanie funkcji obejmuje okre

Modelowanie funkcji obejmuje okre

ś

ś

lenie:

lenie:

hierarchia funkcji,

hierarchia funkcji,

zale

zale

ż

ż

no

no

ść

ść

funkcji,

funkcji,

przep

przep

ł

ł

yw danych,

yw danych,

czas rzeczywisty,

czas rzeczywisty,

logika funkcji.

logika funkcji.

Modelowanie funkcji 
realizowanych w firmie

background image

Hierarchia  funkcji

Hierarchia  funkcji

polega  na  opisie  ka

polega  na  opisie  ka

ż

ż

dej  funkcji  za  pomoc

dej  funkcji  za  pomoc

ą

ą

prostego 

prostego 

wyra

wyra

ż

ż

enia,  przy  czym  tworzone  jest  drzewo  (jak  drzewo  genealogiczne),

enia,  przy  czym  tworzone  jest  drzewo  (jak  drzewo  genealogiczne),

kt

kt

ó

ó

rym funkcja

rym funkcja

-

-

rodzic jest opisywana szczeg

rodzic jest opisywana szczeg

ó

ó

ł

ł

owo przez funkcje

owo przez funkcje

-

-

dzieci.

dzieci.

Przyk

Przyk

ł

ł

ad: 

ad: 

naprawa pojazdu

naprawa pojazdu

Naprawa pojazdu

Naprawa pojazdu

Lokalizacja pojazdu

Badanie pojazdu

Diagnozowanie usterki

Lokalizacja części

Rejestracja kosztów

Przygotowanie pojazdu do oddania

Naprawa pojazdu własnymi 

zasobami

Zlecenie naprawy innej firmie

Modelowanie funkcji realizowanych w 
firmie

background image

Zale

Zale

ż

ż

no

no

ść

ść

funkcji

funkcji

s

s

ł

ł

u

u

ż

ż

y  do  obrazowania  wzajemnych  zale

y  do  obrazowania  wzajemnych  zale

ż

ż

no

no

ś

ś

ci  mi

ci  mi

ę

ę

dzy 

dzy 

funkcjami i zdarzeniami powoduj

funkcjami i zdarzeniami powoduj

ą

ą

cymi wywo

cymi wywo

ł

ł

anie ka

anie ka

ż

ż

dej funkcji. 

dej funkcji. 

Przyk

Przyk

ł

ł

ad: 

ad: 

naprawa pojazdu

naprawa pojazdu

Lokalizacja 

pojazdu

Badanie 

pojazdu

Diagnozowanie 

usterki

Naprawa 

pojazdu 

własnymi 

zasobami

Zlecenie 
naprawy 

innej firmie

Modelowanie funkcji realizowanych w 
firmie

background image

Modele 

Modele 

przep

przep

ł

ł

ywu  danych

ywu  danych

s

s

ł

ł

u

u

żą

żą

do  obrazowania  wzajemnych 

do  obrazowania  wzajemnych 

zale

zale

ż

ż

no

no

ś

ś

ci  mi

ci  mi

ę

ę

dzy  funkcjami  (procesami)  przez  zdefiniowanie 

dzy  funkcjami  (procesami)  przez  zdefiniowanie 

rzeczywistego  lub  pozornego  przep

rzeczywistego  lub  pozornego  przep

ł

ł

ywu  danych  (informacji)  mi

ywu  danych  (informacji)  mi

ę

ę

dzy 

dzy 

funkcjami. 

funkcjami. 

Przyk

Przyk

ł

ł

ad:

ad:

Encja 

zewnętrzna

Magazyn

danych

Proces

Proces

Proces

Magazyn

danych

Magazyn

danych

Encja 

zewnętrzna

strumień danych

strumień

danych

strumień

danych

strumień

danych

strumień

danych

strumień

danych

strumień

danych

Modelowanie funkcji cd…

background image

Modelowanie 

Modelowanie 

czasu  rzeczywistego

czasu  rzeczywistego

umo

umo

ż

ż

liwia  dok

liwia  dok

ł

ł

adne  opisanie  z

adne  opisanie  z

ł

ł

o

o

ż

ż

onych 

onych 

wsp

wsp

ó

ó

ł

ł

zale

zale

ż

ż

no

no

ś

ś

ci r

ci r

ó

ó

ż

ż

nych zdarze

nych zdarze

ń

ń

i rzeczy w systemie i pokazuje (poprzez 

i rzeczy w systemie i pokazuje (poprzez 

diagram),  jakie  funkcje  i  procesy  s

diagram),  jakie  funkcje  i  procesy  s

ą

ą

wykonywane  w  r

wykonywane  w  r

ó

ó

ż

ż

nych  warunkach. 

nych  warunkach. 

Metod

Metod

ę

ę

stosuje si

stosuje si

ę

ę

do przedstawiania dzia

do przedstawiania dzia

ł

ł

a

a

ń

ń

zmieniaj

zmieniaj

ą

ą

cych si

cych si

ę

ę

w spos

w spos

ó

ó

ci

ci

ą

ą

g

g

ł

ł

y na skutek wp

y na skutek wp

ł

ł

yw

yw

ó

ó

w zewn

w zewn

ę

ę

trznych.

trznych.

Diagram w takim modelu opiera si

Diagram w takim modelu opiera si

ę

ę

o poj

o poj

ę

ę

cie 

cie 

stanu

stanu

przej

przej

ś

ś

cia

cia

Przyk

Przyk

ł

ł

ad: 

ad: 

w

w

łą

łą

czanie i wy

czanie i wy

łą

łą

czanie (z zabezpieczeniem) zasilania telewizora

czanie (z zabezpieczeniem) zasilania telewizora

Zadziałanie głównego przełącznika

Rozgrzewanie

Zadziałanie głównego przełącznika

Wygaszanie

Przywrócenie zasilania

Restart

Awaria zasilania

Nałożenie ochrony obwodów

Zadziałanie głównego przełącznika

Usunięcie ochrony obwodów

WYŁĄ-

CZONY

WŁĄ-

CZONY

OCHRONA

Wybrany kanał

Dostrojenie

Wybrany 

kanał

Modelowanie funkcji realizowanych w 
firmie

background image

Logik

Logik

ę

ę

funkcji

funkcji

stosuje  si

stosuje  si

ę

ę

do  szczeg

do  szczeg

ó

ó

ł

ł

owego  opisu  czynno

owego  opisu  czynno

ś

ś

ci 

ci 

wykonywanych przez funkcje. Okre

wykonywanych przez funkcje. Okre

ś

ś

la ona krok po kroku stan procesu 

la ona krok po kroku stan procesu 

i  mo

i  mo

ż

ż

e  by

e  by

ć

ć

konstruowana  poprzez  specyfikacj

konstruowana  poprzez  specyfikacj

ę

ę

wymaganych 

wymaganych 

rezultat

rezultat

ó

ó

w i warunk

w i warunk

ó

ó

w ich osi

w ich osi

ą

ą

gania.

gania.

co robi? co powinno robi

co robi? co powinno robi

ć

ć

Wymagania dla 

Wymagania dla 

przedsi

przedsi

ę

ę

biorstwa

biorstwa

jak wymagania 

jak wymagania 

przedsi

przedsi

ę

ę

biorstwa 

biorstwa 

mog

mog

ą

ą

by

by

ć

ć

wspierane?

wspierane?

jak zrealizowa

jak zrealizowa

ć

ć

system?

system?

Metody 

Metody 

modelowania

modelowania

Poziom 

Poziom 

przedsi

przedsi

ę

ę

-

-

biorstwa

biorstwa

Poziom 

Poziom 

systemu

systemu

Poziom 

Poziom 

programu

programu

Hierarchia funkcji

Hierarchia funkcji

Zale

Zale

ż

ż

no

no

ść

ść

funkcji

funkcji

Przep

Przep

ł

ł

yw danych

yw danych

Czas rzeczywisty

Czas rzeczywisty

Logika funkcji

Logika funkcji

Dzia

Dzia

ł

ł

a  jako  zakres  dla 

a  jako  zakres  dla 

wszystkich funkcji

wszystkich funkcji

Funkcje wsp

Funkcje wsp

ó

ó

ł

ł

zale

zale

ż

ż

ne

ne

Orientacja 

Orientacja 

przep

przep

ł

ł

ywowa

ywowa

Sterowanie zdarzeniami

Sterowanie zdarzeniami

Szczeg

Szczeg

ó

ó

ł

ł

y  dla  ka

y  dla  ka

ż

ż

dej  z 

dej  z 

powy

powy

ż

ż

szych metod

szych metod

podstawowa

podstawowa podstawowa

podstawowa

podstawowa

podstawowa

podstawowa

podstawowa

podstawowa

opcjonalna

opcjonalna

-

opcjonalna

opcjonalna

opcjonalna

Modelowanie funkcji cd…

background image

Dziedzina 

przedmiotowa (DP)

PROCES TWORZENIA 

SYSTEMU 

INFORMATYCZNEGO

Zespół

projektujący

System 

informatyczny

Wyniki analiz

Cele problemy, potrzeby 

informatyczne

Kryteria

oceny

Korekty i modyfikacje

Prezentacja i eksperymentalna

eksploatacja

tworzenie

kierowanie

Modele

DP

Metody i 

techniki

Narzędzia 

komputeroweg

o wspomagania

Reguły 

modelowania

parametry

pakiety

Zadania

wymagania

Fazy

dokumentacja

Pojęcia 

abstrakcyjne

Elementy procesu tworzenia SI

background image

Model tworzenia systemu 
informacyjnego

background image

Realizacja systemu

background image

Elementy procesu tworzenia SI

Analiza

Projektowanie

Realizacja SI

background image

Proces projektowania

background image

Problem analizy i projektowania

opanowanie nadmiernej złożoności

opanowanie nadmiernej złożoności

Zespół ludzi

podlegający 

ograniczeniom pamięci, 
percepcji, psychologii,
wyrażania informacji i 
wzajemnej komunikacji.

Zespół ludzi

podlegający 

ograniczeniom pamięci, 
percepcji, psychologii,
wyrażania informacji i 
wzajemnej komunikacji.

Dziedzina problemowa

najczęściej obejmująca 
ogromną liczbę wzajemnie
uzależnionych aspektów, 
procesów i problemów.

Dziedzina problemowa

najczęściej obejmująca 
ogromną liczbę wzajemnie
uzależnionych aspektów, 
procesów i problemów.

Środki informatyczne

sprzęt, oprogramowanie, sieć,
języki, narzędzia, technologie.

Środki informatyczne

sprzęt, oprogramowanie, sieć,
języki, narzędzia, technologie.

Analiza,

projektowanie,

konstrukcja,

dokumentacja,

wdrożenie,

eksploatacja

Obiektowość: 
nowa jakość
w opanowaniu 
złożoności

background image

Proces analizy i projektowania

Użytkownicy

Projektanci

Kierownictwo

Generowanie

wymagań

Generowanie

wymagań

Sformułowanie

problemu

Budowa
modeli

Budowa
modeli

Wywiady z 
użytkownikami

Wiedza dotycząca
dziedziny problemowej

Doświadczenie w 
zakresie projektów

Modele: analityczny (logiczny),

funkcjonalny, dynamiczny
statyczny, danych, procesów…

Analiza

Projektowanie

background image

Rodzaje modeli SI

Model  funkcjonalny  SI,  służy  do  opisu  funkcji 

realizowanych przez system

Model 

statyczny

który 

służy 

do 

opisu 

statycznej  struktury  systemu  w  kategoriach  klas 

obiektów  systemowych  i  ich  związków  (np.. 

Model analityczny - opisowy)

Modele  dynamiczne,  które  służą

do  opisu 

dynamicznej  struktury  systemu.  Widać z  nich 

interakcje między obiektami systemowymi. 

Model analityczny

background image

Rodzaje modeli SI - Model analityczny 
(logiczny)

Ujęcie w modelu pewnych elementów dziedziny problemu nie będących 
częścią systemu czyni model bardziej zrozumiałym. Przykładem jest ujęcie w 
modelu systemów zewnętrznych, z którymi system ma współpracować.

Na etapie modelowania może nie być jasne, które elementy modelu będą
realizowane przez oprogramowanie, a które w sposób sprzętowy lub ręcznie.

Dostępne środki mogą nie pozwolić na 
realizację systemu w całości. 
Celem analizy może być wykrycie tych 
fragmentów dziedziny problemu, których 
wspomaganie za pomocą
oprogramowania będzie szczególnie

przydatne.

Model analityczny wykracza 
poza zakres odpowiedzialności
systemu

Zakres

odpowiedzialności

systemu

Model analityczny

Dziedzina problemu

background image

Rodzaje modeli SI

Model  funkcjonalny  SI,  służy  do  opisu  funkcji 

realizowanych przez system

Model 

statyczny

który 

służy 

do 

opisu 

statycznej  struktury  systemu  w  kategoriach  klas 

obiektów  systemowych  i  ich  związków  (np.. 

Model analityczny - opisowy)

Modele  dynamiczne,  które  służą

do  opisu 

dynamicznej  struktury  systemu.  Widać z  nich 

interakcje między obiektami systemowymi. 

Model analityczny

background image

Cechy modelu analitycznego 
(logicznego)

Uproszczony opis systemu;

Hierarchiczna dekompozycja funkcji systemu;

Model logiczny jest opisany przy pomocy notacji zgodnej z pewną konwencją;

Jest on zbudowany przy użyciu dobrze rozpoznanych metod i narzędzi;

Jest on używany do wnioskowania o przyszłym oprogramowaniu;

Model oprogramowania powinien być jego uproszonym opisem, opisującym 
wszystkie istotne cechy oprogramowania na wysokim poziomie abstrakcji.

Model ten jednakże  nie zastępuje doświadczenia i wnikliwości projektantów, 
lecz pomaga projektantom w zastosowaniu tych walorów.

Logiczny model oprogramowania:

• pokazuje co system musi robić;
• jest zorganizowany hierarchicznie, wg poziomów abstrakcji
• unika terminologii implementacyjnej
• pozwala na wnioskowanie „od przyczyny do skutku” i odwrotnie.

background image

Model dynamiczny

Opisuje te aspekty analizowanego systemu, które są związane z czasem i
kolejnością wykonywania operacji.

Opisuje te aspekty analizowanego systemu, które są związane z czasem i
kolejnością wykonywania operacji.

zdarzenia

które wyznaczają zmiany

sekwencje zdarzeń

stany

które definiują kontekst zdarzeń

organizację

zdarzeń i stanów

Model dynamiczny obejmuje 

sterowanie

, tj. taki aspekt systemu, który 

odzwierciedla następstwo operacji, bez wnikania co te operacje robią, 
na czym one działają, i jak są zaimplementowane.

Model dynamiczny obejmuje 

sterowanie

, tj. taki aspekt systemu, który 

odzwierciedla następstwo operacji, bez wnikania co te operacje robią, 
na czym one działają, i jak są zaimplementowane.

Model dynamiczny jest reprezentowany graficznie w postaci 

diagramów stanów

.

Każdy diagram stanów opisuje kolejności stanów i zdarzeń dozwolonych w systemie
dla jednej klasy obiektów.

Model dynamiczny jest reprezentowany graficznie w postaci 

diagramów stanów

.

Każdy diagram stanów opisuje kolejności stanów i zdarzeń dozwolonych w systemie
dla jednej klasy obiektów.

background image

Model funkcjonalny

Dotyczy tych aspektów systemu, które zajmują się transformacją wartości -
tj. funkcjami, odwzorowaniami, ograniczeniami, zależnościami funkcyjnymi.

Dotyczy tych aspektów systemu, które zajmują się transformacją wartości -
tj. funkcjami, odwzorowaniami, ograniczeniami, zależnościami funkcyjnymi.

Model funkcjonalny przykrywa to, 

co

system robi, bez wnikania 

jak i kiedy

to robi.

Model funkcjonaly pokazuje statyczną zależność pomiędzy czynnościami 
wykonywanymi przez system, bez określania następstwa czasowego tych czynności.

Model funkcjonalny jest reprezentowany przez 

diagram przepływu danych

.

Pokazuje on zależności pomiędzy wartościami i obliczeniami wartości wyjściowych
z wartości i funkcji wejściowych, bez rozpatrywania kiedy i czy funkcje są wykonywane. 

Model funkcjonalny jest reprezentowany przez 

diagram przepływu danych

.

Pokazuje on zależności pomiędzy wartościami i obliczeniami wartości wyjściowych
z wartości i funkcji wejściowych, bez rozpatrywania kiedy i czy funkcje są wykonywane. 

Niektórzy metodolodzy (Yourdon) uważają tę cechę OMT za niekonsekwentną.

background image

Model a analiza SI

Aby powstał model SI (niezależnie 
od formy tego modelu) niezbędna 
jest analiza SI

background image

Czynności w fazie analizy

Rozpoznanie, 

wyjaśnianie, 

modelowanie, 

specyfikowanie 

dokumentowanie  rzeczywistości  lub  problemu  będącego  przedmiotem 
projektu; 

Ustalenie kontekstu projektu;

Ustalenie wymagań użytkowników;

Ustalenie wymagań organizacyjnych

Inne  ustalenia,  np.  dotyczące  preferencji  sprzętowych,  preferencji  w 
zakresie 

oprogramowania, 

ograniczeń

finansowych, 

ograniczeń

czasowych, itd. 

W zasadzie analiza nie powinna stawiać nacisku na zmianę rzeczywistości poprzez 
wprowadzenie tam nowych elementów np. w postaci systemu komputerowego. Jej 
celem jest rozpoznanie wszystkich tych aspektów rzeczywistości, które mogłyby 
mieć wpływ na postać, organizację lub wynik projektu. 

background image

Analiza

Rozpoznanie,  wyjaśnianie,  modelowanie,  specyfikowanie  i  dokumentowanie 
rzeczywistości lub problemu będącego przedmiotem projektu; 

Ustalenie kontekstu projektu;

Ustalenie wymagań użytkowników;

Ustalenie wymagań organizacyjnych

Inne ustalenia, np. dotyczące preferencji sprzętowych, preferencji w zakresie 
oprogramowania, ograniczeń finansowych, ograniczeń czasowych, itd. 

Włącza następujące czynności:

Włącza następujące czynności:

Analiza  nie  zajmuje  się zmianą tej  rzeczywistości  poprzez  wprowadzenie  tam 
nowych  elementów  np.  w  postaci  systemu  informatycznego;  jej  celem  jest 
dokładne  rozpoznanie  wszystkich  tych  aspektów  danej  rzeczywistości,  które 
mogłyby  mieć wpływ  na  postać,  organizację lub  wynik  projektu.  Analiza  nie 
powinna odwoływać się do jakichkolwiek aspektów implementacyjnych.

Analiza  nie  zajmuje  się zmianą tej  rzeczywistości  poprzez  wprowadzenie  tam 
nowych  elementów  np.  w  postaci  systemu  informatycznego;  jej 

celem  jest 

dokładne  rozpoznanie  wszystkich  tych  aspektów  danej  rzeczywistości

,  które 

mogłyby  mieć wpływ  na  postać,  organizację lub  wynik  projektu.  Analiza  nie 
powinna odwoływać się do jakichkolwiek aspektów implementacyjnych.

background image

Podstawowe rezultaty fazy analizy

Poprawiony dokument opisujący wymagania

Słownik danych zawierający specyfikację modelu

Dokument opisujący stworzony model, zawierający:

diagram klas

• diagram przypadków użycia
• diagramy sekwencji komunikatów (dla wybranych sytuacji)
• diagramy stanów (dla wybranych sytuacji)
• raport zawierający definicje i opisy klas, atrybutów, związków,

metod, itd.

Harmonogram fazy projektowania

Wstępne przypisanie ludzi i zespołów do zadań

background image

Złożoność problemów analizy i 
projektowania

Podstawowy problem konstrukcji oprogramowania 

to jego złożoność.

W przypadku gdy metody paradygmatu obiektowego nie wystarcza 
do rozwiązania określonych problemów, zaleca się czasami 
kombinację różnych rozwiązań. Takie podejście zwane jest 

wytwarzaniem oprogramowania z wieloma paradygmatami 

(ang. multiparadigm programing-project-analysis).

„…Problem , który można podzielić na dwa podproblemy, dające się
obsługiwać osobno, jest rozwiązany dzięki temu podziałowi więcej niż
w połowie…”

Bjarne Stroustrup

background image

Prosta klasyfikacja nie jest łatwa

, gdyż:

• zagadnienia 

związane 

tworzeniem 

SI 

nieustrukturyzowane

co oznacza, że nie istnieją oczywiste i 

jednoznaczne  definicje  problemów    ani  sposobów  ich 
rozwiązywania,

• dziedziny 

przedmiotowe

bardzo 

specyficzne 

(dynamicznie  zmieniająca  się

sytuacja  w  obszarze 

zastosowania procesu informatyzacji),

• dynamika zmian

w sferze inżynierii oprogramowania,

• brak 

teoretycznych 

podstaw

wyrażania 

potrzeb 

informatycznych.

Klasyfikacja metodyk tworzenia SI

background image

Najczęściej  proponuje  się klasyfikację wg  następujących 
kryteriów

:

ze względu na 

podejście do procesu tworzenia

SI,

ze względu na 

definiowanie danych

bądź

procesów

w projekcie,

ze względu na 

relacje między dziedziną

przedmiotową a SI,

ze względu na 

kierunek tworzenia

SI.

Klasyfikacja metodyk tworzenia SI

background image

Ze 

względu 

na 

podejście  do  procesu  tworzenia 

systemów informatycznych

można wyodrębnić metodyki:

techniczne

- analityk ma neutralny wpływ na organizację w

procesie tworzenia SI, gdyż występują sformalizowane modele

dziedziny przedmiotowej i ściśle określone sposoby rozwiązań,

społeczne

- rola analityka jest aktywna i od uwarunkowań

organizacyjno-kadrowych zależy sukces projektu; akcentowane są

przede wszystkim organizacyjne, psychologiczne i socjologiczne

problemy występujące w procesie tworzenia SI.

Klasyfikacja metodyk tworzenia SI

background image

Ze  względu  na 

definiowanie  danych  bądź procesów 

w projekcie

można wyodrębnić metodyki:

zorientowane na dane

- koncentrują analizę i

projektowanie systemów wokół strukturyzacji danych

użytkowych w organizacji,

zorientowane na procesy

- dane elementarne

specyfikuje się w oparciu o analizę procesów w

organizacji (dziedzinie przedmiotowej) oraz potrzeb

użytkowników.

Klasyfikacja metodyk tworzenia SI

background image

Ze 

względu 

na 

zależność

między 

dziedziną

przedmiotową a  systemem  informatycznym

można 

wyodrębnić metodyki:

organizacyjnego odwzorowania

(pasywna) –

ponieważ decyzje i działania są podejmowane w
dziedzinie przedmiotowej to SI musi ściśle
odwzorowywać rzeczywistość; nie ma miejsca na
innowacyjne rozwiązania,

organizacyjnego sterowania

(aktywna) –

nacisk kładzie się na określenie potrzeb
informacyjnych, a nie na odzwierciedlenie 
rzeczywistości, gdyż wyodrębnia się w dziedzinie
przedmiotowej system sterowania, w którym

podejmowane są decyzje wpływające na dziedzinę.

Klasyfikacja metodyk tworzenia SI

background image

Ze  względu  na 

kierunek  tworzenia  SI

można 

wyodrębnić metodyki:

zstępujące (top-down)

- tworzenie systemu przez

stopniowe, hierarchiczne wyodrębnianie jego

składników, aż do podstawowego poziomu

szczegółowości (od ogółu do szczegółu),

wstępujące (bootom-up)

- polega na stopniowym

budowaniu syntezy systemu poprzez integrację jego

elementów, począwszy od poziomu podstawowego (od

szczegółu do ogółu).

Klasyfikacja metodyk tworzenia SI

background image

Aktualnie  dominuje  klasyfikacja  wynikająca  z 

połączenia 

opisu  dziedziny  przedmiotowej  i  doświadczeń praktycznych

Wyróżnić można więc 

trzy podejścia metodologiczne

:

strukturalne

(strukturalno-relacyjne)  - polegające  

na 

tworzeniu 

uporządkowanego 

systemu 

hierarchicznej 

strukturze, 

którego 

składniki 

stanowią moduły  funkcji  i  danych  oraz  związki 
między nimi; cechą charakterystyczną jest oddzielne 
modelowanie  danych  i  procesów,  wykorzystujące 
metody i techniki diagramowe i macierzowe,

obiektowe 

- opiera  się na  wyodrębnieniu  obiektu 

(bytu,  pojęcia,  rzeczy)  mającego  odpowiednie 
znaczenie  w  kontekście  problemów  danej  dziedziny 
przedmiotowej; 

cechą

charakterystyczną

jest 

możliwość

integralnego  modelowania  danych  i 

procesów,

społeczne

- akcentuje  aspekty  ludzkie  i  społeczne 

(psychologiczne i socjologiczne) w tworzeniu SI.

dotyczą
całego cyklu 
życia 
systemu

dotyczy 
głównie  fazy 
planowania

Klasyfikacja metodyk tworzenia SI

background image

W  praktyce  każda  metodyka  jest  odpowiednia  dla  różnych 
faz cyklu życia systemu. Stąd na bazie wiedzy o metodykach 
zespół projektowy może zaproponować własną metodykę. W 
ten sposób powstaję

metodyki elastyczne

(kombinowane).

ELASTYCZNE 

METODYKI 

tworzenia SI

Cykl życia systemu

M

od

el

e,

 m

et

od

y,

 

te

ch

ni

ki

, n

ar

dz

ia

R

eg

uły

 tr

an

sf

or

m

acj

i kat

eg

or

ii 

m

od

el

i i 

pr

oc

es

ów

Klasyfikacja metodyk tworzenia SI

background image

METODYKI 

STRUKTURALNE

background image

Metodyki strukturalne

Metodyki strukturalne - łączą statyczny opis danych oraz 
statyczny opis procesów. 

Do tej klasy należą:

• Metodyka 

Yourdona 

(DeMarco i Ward/Mellor);

• Structured System Analysis and Design 
Methodology (

SSADM

);

• Structured Analysis and Design Technique 
(

SADT

).

background image

Metodyki strukturalne

Zgodnie z DeMarco, analiza strukturalna używa 
następujących technik.

Diagramy Przepływu Danych

(Data Flow

Diagrams, DFD)

Słownik Danych

(Data Dictionary)

• Strukturalny Angielski (Structured English) -> 

strukturalny polski

Tablice Decyzyjne

(Decision Tables)

Drzewa Decyzyjne

(Decision Trees)

background image

Metodyki strukturalne

Uważa się, że wadą metodyk strukturalnych 

są trudności w zintegrowaniu modeli.

Dodatkowo:

• Schemat Transformacyjny (Transformation 
Schema
)
• Diagram Przejść Stanów (State Transition Diagram 

STD

)

• Lista Zdarzeń (Event List
• Schemat Danych (Data Schema)
• Pre- i post- warunki  (Pre- and Post-Conditions)
• Diagramy Encja-Związek (występują w SSADM)

odpowiednik diagramów 

ERD

• Historie Życia Encji (występują w SSADM)

background image

Metodyki strukturalne w 
praktyce

DIAGRAMY ZWIĄZKU ENCJI - ERD
DIAGRAMY PRZEPŁYWU DANYCH – DFD
DIAGRAMY STANÓW- STD

background image

Diagramy przepływu danych

(ang. DATA FLOW DIAGRAMS – DFD)

Pokazują przepływ danych między światem zewnętrznym a 
modelowanym systemem, oraz przepływ danych między procesami w 
systemie. Diagramy te są na tyle proste, że mogą być zrozumiałe dla osób 
bez wykształcenia informatycznego. Modelowanie przepływu danych 
pomaga odpowiedzieć na pytania:

Jakie funkcje powinien realizować system?

Jakie są zależności między nimi?

Jakich transformacji powinien dokonywać system?

Jakie dane są przekształcane na jakie wyniki?

Jakiego rodzaju pracę wykonuje system?

Skąd bierze informację potrzebną do pracy?

Gdzie dostarcza otrzymane wyniki?

background image

SYMBOLE DIAGRAMÓW DFD.

background image

Obiekty zewnętrzne (terminatory, encje 
zewn., external entities) - źródła lub miejsca 
przeznaczenia informacji, zewnętrzne w 
stosunku do systemu; reprezentują
zewnętrzne w stosunku do analizowanego 
systemu źródła powstania i miejsca 
przeznaczenia informacji (te, które 
dostarczają i odbierają dane); KLIENT, 
DOSTAWCA, BANK i inne – prostokąty.

Obiekt zewnętrzny
  (external entity)

SYMBOLE DIAGRAMÓW DFD.

background image

Proces

Procesy (funkcje, proceses) - czyli 
transformacje danych; definiują sposób 
wykonywania jednej lub więcej funkcji 
(program, procedura, algorytm, operacja 
ręczna czy zautomatyzowana (całkowicie 
lub częściowo) - wszystkie czynności 
wykonywane na danych) - okręgi, owale. 

SYMBOLE DIAGRAMÓW DFD.

background image

Zbiór danych
 (data store)

Zbiory danych (magazyny, składnice, 
data stores) - miejsca, gdzie dane są
przechowywane między procesami, które 
na nich operują; reprezentują miejsca 
przechowywania danych między 
procesami (dostępne są tylko z 
procesów). Zaistnienie składnicy w DFD
ma sens wtedy, kiedy przechowywane 
tam dane służą realizacji co najmniej 
dwóch procesów; wszelkiego rodzaju
KARTOTEKI - dwie poziomy linie.

SYMBOLE DIAGRAMÓW DFD.

background image

Przepływ danych
    (data flow)

Przepływy danych (strumienie, data 
flows) - przedstawiają obieg danych 
systemie; powiązania pomiędzy procesami 
a innymi elementami DFD - strzałki 
skierowane (opisane!).

SYMBOLE DIAGRAMÓW DFD.

background image

Kontekstowe,

Zerowe (systemowe),

Szczegółowe (procesów elementarnych).

1.   Diagramy kontekstowe

Najmniejszy stopień szczegółowości - pokazuje powiązania 

systemu z otoczeniem tj.:

zakres i granice systemu; 

źródła i odbiorcy informacji; 

główne wejścia i wyjścia systemu (tzn. informacje płynące 
między światem zewn. a systemem).

Podział diagramów DFD ze  względu 
na stopień szczegółowości:

background image

2. Diagramy zerowe (systemowe)

Przedstawiają ogólną strukturę systemu, obrazują:

główne procesy systemu,

obiekty zewnętrzne,

magazyny danych,

przepływy.

Podział diagramów DFD ze  względu 
na stopień szczegółowości:

background image

3. Diagramy szczegółowe

Dokładny obraz procesów i podsystemów - dalsze 
uszczegółowienie. 
W trakcie dekompozycji diagramów obowiązuje zasada, iż tylko 
przepływy danych, które pojawiły się na poziomie zerowym mogą
wystąpić na niższych poziomach hierarchii.

Podział diagramów DFD ze  względu 
na stopień szczegółowości:

background image

Przeznaczenie diagramów:

• Diagramy kontekstowe i systemowe - dla projektantów, programistów i  

użytkowników systemu.             

• Diagramy szczegółowe - dla projektantów i programistów.

Przeznaczenie diagramów DFD

background image

• Uporządkowanie diagramów w hierarchię: kontekstowe, zerowe, 

szczegółowe,

• Uchwycenie głównych procesów i uszczegółowienie jest bardziej

odpowiednie niż uogólnianie procesów elementarnych,

• Przypisanie jednoznacznych nazw dla procesów, obiektów i

magazynów,

• Przestrzeganie, żeby żadne dane niewykorzystywane przez proces 

nie wpływały do niego,

• Przestrzeganie, aby każdy proces miał wejście i wyjście,

• Zapewnienie, aby każdy przepływ miał początek i kończył się na

procesie,

Zasady tworzenia diagramów DFD:

background image

• Przestrzeganie, aby wszystkie dane wprowadzane lub 

wyprowadzane z obiektów zewnętrznych podlegały

przetwarzaniu w procesach i nie dopuszczać przepływów

między składnicami a obiektami zewnętrznymi,

• Konsekwentne używanie symboli,

• Oznaczenie w odpowiedni sposób powtarzających się elementów,

• Unikanie nadmiernie złożonych DFD (max 9 procesów na

jednym DFD),

• Weryfikowanie diagramów,

• Opisanie każdego elementu w słowniku danych 

(data dictionary).

Zasady tworzenia diagramów DFD:

background image

PRZYKŁAD DIAGRAMU DFD, 
ZAWIERAJĄCEGO NAZWY SYMBOLI

 

 

Klient 

Sprawdź listę 

wyrobów i 

potwierdź 

zamówienie 

Lista wyrobów 

Potwierdzenie 

zamówienia wyrobu 

Zamówienie wyrobu 

PROCES 

OBIEKT 
ZEWNĘTRZNY 

ZBIÓR 

DANYCH 

PRZEPŁYW 

DANYCH 

ETYKIETOWANY 

PRZEPŁYW DANYCH 

background image

Przykładowy diagram DFD.

background image

LISTA REZERWACJI

Przykład Schematu Przepływu 
Danych 

Diagram nie odwzorowuje zależności czasowych

Semantyka jest wyrażana poprzez NAZWY OBIEKTÓW (Encji)

REZERWACJA

MIEJSC

W SAMOLOCIE

PASAŻER

Bilet z

rezerwacją

miejsca

Żądanie

rezerwacji

miejsca

Bilet do

odprawy

Karta

pokładowa

Sprawdzenie
rezerwacji

Zarezerwowane
miejsce

ODPRAWA

PASAŻERÓW

Zrealizowana

odprawa

background image

Przykładowy diagram kontekstowy dla 
systemu obsługującego hurtownię.

1.

- oferta dostawcy;

2.

- faktura za dostarczony   
towar;

3.

- zamówienie na towar 
wysłane do dostawcy;

4.

- dane dostawcy;

5.

- oferta dla odbiorcy;

6.

- faktura za zakupiony towar;

7.

- dane odbiorcy;

8.

- zamówienie na towar;

9.

- informacja o płatnościach;

10.

- stawki VAT;

11.

- rejestr wystawionych faktur;

12.

- rejestr otrzymanych faktur;

13.

- wytyczne i zarządzenia;

14.      - analizy i zestawienia. 

background image

Diagram DFD - 1 dla systemu obsługi hurtowni. 

1.

- oferta dostawcy;

2.

- faktura za dostarczony towar;

3.

- zamówienie na towar wysłane do dostawcy;

4.

- dane dostawcy;

5.

- oferta dla odbiorcy;

6.

- faktura za zakupiony towar;

7.

- dane odbiorcy;

8.

- zamówienie na towar;

9.

- informacja o płatnościach;

10.

- stawki VAT;

11.

- rejestr wystawionych faktur;

12.

- rejestr otrzymanych faktur;

13.

- wytyczne i zarządzenia;

14.

- analizy i zestawienia statystyczne.

15.

- zapis danych o towarach z oferty,

16.

- dane o towarach do dokumentów;

17.

- dane o towarach do faktur;

18.

- zapis danych o odbiorcy;

19.

- zapis danych o dostawcy;

20.

- dane o firmach do zestawień,

21.

- zapis faktury otrzymanej,

22.

- dane o fakturach do rejestru,

23.

- zapis faktury wytworzonej.

background image

METODYKI 

OBIEKTOWE

background image

Metodyki obiektowe

Zakładają, że:

procesy informacyjne i struktura w której te procesy 
zachodzą stanowią pewną całość,

w systemie wyodrębnia się łącznie dane i metod w 

kategoriach tzw. klas,

Do tych klas trzeba budować odpowiednie metody danych, 

odpowiednie struktury danych, które odpowiadają za 
gromadzenie i przetwarzanie informacji a także projektować

specjalne mechanizmy komunikacji między obiektami, 

system zbudowany w oparciu o metodologie obiektowa 

pozostaje systemem - "obiektem spójnym", mimo że każdy z 

obiektów ma daleko posunięta autonomie i może być
budowany przez odrębne zespoły programistów,

Ta metodologia pozwala budować duże i złożone systemy 

informacyjne w zespołach wieloosobowych (praca grupowa).

Jednak systemy obiektowe są o wiele trudniejsze i bardziej 

złożone od systemów strukturalnych. 

(podstawa = Paradygmat obiektowy)

background image

Metodyki obiektowe

Metodyka  wykorzystująca  pojęcia  obiektowości  dla  celów  modelowania 
pojęciowego 
oraz analizy i projektowania systemów informatycznych. 

Podstawowym  składnikiem  jest  diagram  klas,  będący  zwykle  wariantem 
notacyjnym i pewnym rozszerzeniem diagramów encja-związek. 

Diagram  klas  zawiera:  klasy,  w  ramach  klas  specyfikacje  atrybutów i  metod
związki  generalizacji,  związki  asocjacji i  agregacji,  liczności tych  związków, 
różnorodne ograniczenia oraz inne oznaczenia. 

Uzupełnieniem  tego  diagramu  są inne:  diagramy  dynamiczne  uwzględniające 
stany i  przejścia  pomiędzy  tymi  stanami,  diagramy  interakcji ustalające 
zależności  pomiędzy  wywołaniami  metod,  diagramy  funkcjonalne  (będące 
zwykle pewną mutacją diagramów przepływu danych), itd. 

Koncepcja  przypadków  użycia  (use  cases)  zakłada  odwzorowanie  struktury 
systemu z punktu widzenia jego użytkownika. 

Przykłady:  Express,  OODA(Booch),  OMT(Rumbaugh),  OOSA(Shlaer-Mellor), 
Objectory(Jacobson),  MOSES/OPEN,  OOA/OOD(Coad/Yourdon),  Notacja  UML, 
RUP.

background image

Metodyka obiektowa

Metodyka wykorzystująca pojęcia obiektowości dla celów modelowania pojęciowego 
oraz analizy i projektowania systemów informatycznych. 

Podstawowym  składnikiem  tych  metodyk  jest  diagram  obiektów,  będący  zwykle 
wariantem notacyjnym i pewnym rozszerzeniem diagramów encja-związek. 

Diagram  obiektów  zawiera  takie  elementy  jak:  klasy,  w  ramach  klas  specyfikacje 
atrybutów i  metod,  strukturę dziedziczenia pomiędzy  klasami,  związki  asocjacji 
agregacjiliczności tych związków, różnorodne ograniczenia oraz inne oznaczenia. 

Uzupełnieniem  tego  diagramu  są inne,  np.  diagramy  dynamiczne  uwzględniające 
stany poszczególnych  procesów  przetwarzania  i  przejścia  pomiędzy  tymi  stanami, 
diagramy zależności pomiędzy wywołaniami metod, np. diagram tropów komunikatów, 
diagramy fukcjonalne (będące zwykle pewną mutacją diagramów przepływu danych). 

Ostatnio popularność zdobyła także koncepcja przypadków użycia (use cases), której 
podstawowym  celem  i  walorem  jest  odwzorowanie  struktury  systemu  z  punktu 
widzenia jego użytkownika. 

background image

Techniki obiektowe

1. Ukrywanie implementacji (enkapsulacja)

określone jednoznacznie i niezmiennie interfejsy

stosowanie instrukcji np.: „typedef” ukrywającej wykorzystywane
typy i wyrażenia

podział programu na mniejsze części (dynamicznie i statycznie 
łączone biblioteki)

background image

Techniki obiektowe

2. Wielokrotne wykorzystanie implementacji

podział programu na klasy

zamykanie kodu metod w obiekty o podobnej funkcjonalności

stosowanie wzorców projektowych np.: obiekt factory

wykorzystywanie klas i metod szablonowych

background image

Techniki obiektowe

3. Dziedziczenie

zmniejszanie odpowiedzialności klas (obiektów)

określanie relacji „bycia czymś” i „bycia podobnym do czegoś”

zapewnienie mechanizmu wymienialności obiektów

wykorzystanie mechanizmów polimorfizmu

rozszerzanie odpowiedzialności (specjalizacja)

background image

Techniki obiektowe

4. Kompozycja (agregacja)

określenie relacji zawierania w się w czymś (bycie częścią)

określenie relacji zawierania w sobie (bycie całością)

kontrola nad innymi obiektami

rola providera – usługodawcy

realizacja wzorców typu AdapterProxy

background image

Podstawowe cechy języka 
obiektowego

Pięć podstawowych cech języka obiektowego według Alana Kay:

1. Wszystko jest obiektem,

2. Program jest zbiorem obiektów, które przez wysyłanie 

komunikatów mówią sobie nawzajem co robić,

3. Każdy obiekt posiada swą własną pamięć, na które składają się

inne obiekty,

4. Każdy obiekt posiada swój typ,

5. Wszystkie obiekty danego typu mogą otrzymywać te same 

komunikaty,

background image

Analiza obiektowa

1. Plan prac

„przystąpienie od razu do kodowania” -

jest możliwe tylko 

w przypadku drobnych aplikacji i w sytuacjach gdy posiada się już
jakieś doświadczenie. Znane muszą być technologie i ich sposób 
zastosowania.

„tworzenie czegoś z góry przeznaczonego do wyrzucenia”

metoda najlepsza w przypadku braku doświadczenia, 
nieznajomości środowiska i możliwości bibliotek.

wyznaczanie tzw. kroków milowych 

(ang. milestones) –

weryfikacja postępów prac, podział złożonego problemu na części

background image

Analiza obiektowa

2. Definicje pojęć w projekcie - określenie co tworzymy?

analiza wymagań i specyfikacji systemu

– jako odpowiednik 

z metod proceduralnych

„Kto będzie używał systemu?”

„Jaka jest funkcjonalność systemu?

„Jak inaczej mogłaby działać dana operacja?”

„Jakie mogą wystąpić wyjątki (problemy)?”

background image

Projektowanie obiektowe

Etapy projektowania obiektowego:

Znajdowanie obiektów 

Identyfikacja klas i obiektów

Składanie obiektów 

Określanie agregacji i kompozycji

Konstrukcja systemu 

Komunikacja, asocjacje pomiędzy obiektami

Rozbudowa systemu 

Weryfikacja istniejącej struktury, dodanie nowych pomocnych 
klas i obiektów

Wielokrotne wykorzystanie obiektów

background image

UML - przykład notacji

UML (Unified Modeling Language) 

powstał jako synteza trzech 

metodyk/notacji:

OMT (Rumbaugh)

metodyka ta była dobra do modelowania dziedziny 

przedmiotowej. Nie przykrywała jednak dostatecznie dokładnie zarówno aspektu 
użytkowników systemu jak i aspektu implementacji/konstrukcji.

OOSE (Jacobson)

metodyka ta dobrze podchodziła do kwestii modelowania 

użytkowników i cyklu życiowego systemu. Nie przykrywała jednak dokładnie 
modelowania dziedziny przedmiotowej jak i aspektu implementacji/konstrukcji. 

OOAD (Booch): 

metodyka dobrze podchodziła do kwestii projektowania, 

konstrukcji i związków ze środowiskiem implementacji. Nie przykrywała jednak 
dostatecznie dobrze fazy analizy i rozpoznania wymagań użytkowników.

Istniało wiele aspektów systemów, które nie były właściwie przykryte przez żadne z 
wyżej wymienionych podejść, np. włączenie prototypowania w cykl życiowy, 
rozproszenie i komponenty, przystosowanie notacji do preferencji projektantów, i inne. 
Celem UML jest przykrycie również tych aspektów.

background image

Diagramy definiowane w UML

Diagramy przypadków użycia (use 
case
)
Diagramy klas, 

w tym diagramy pakietów

Diagramy zachowania się (behavior)

Diagramy implementacyjne

• Diagramy stanów
• Diagramy aktywności
• Diagramy sekwencji
• Diagramy współpracy (collaboration)

• Diagramy komponentów
• Diagramy wdrożeniowe (deployment)

Autorzy UML wychodzą z założenia, że żadna pojedyncza 
perspektywa spojrzenia na projektowany system nie jest 
wystarczająca. Stąd wiele środków:

Diagramy te zapewniają mnogość perspektyw systemu podczas analizy i rozwoju.

background image

Analiza i projektowanie obiektowe

Kombinacja technik, notacji i wzorców postępowania posiadająca następujące 
cechy: 

Wyróżnianie w rzeczywistości będącej przedmiotem systemu informatycznego 
bytów o określonych granicach, zwanych “obiektami”

Grupowanie obiektów w klasy

Ustalenie zależności pomiędzy klasami w postaci hierarchii dziedziczenia

Przypisanie do klas atrybutów obiektów i powiązań asocjacyjnych obiektów

Przypisanie do klas metod, tj. operacji, funkcji lub procedur działąjących na 
obiektach tych klas

Techniki:

Techniki:

Modelowanie obiektów i klas, modelowanie zachowania, 
modelowanie dynamiczne, modelowanie przepływu danych, ...

Notacje:

Notacje:

Konkretna składnia i semantyka służąca do zapisu modelu: 
diagramy obiektów i klas, diagramy dynamiczne, diagramy 
przepływu danych

background image

Tematyka analizy i projektowania 
obiektowego

• Analiza i modelowanie struktur obiektów
• Analiza i modelowanie procesów i sekwencji transakcji
• Analiza i modelowanie interakcji pomiędzy obiektami
• Analiza i modelowanie cyklu życiowego obiektów
• Kompleksowe modelowanie systemów
• Planowanie projektu
• Zarządzanie projektami dotyczącymi obiektowości
• Analiza wymagań dotyczących systemu
• Projektowanie logiczne
• Projektowanie fizyczne
• Rozwijanie obiektowych aplikacji
• Testowanie, akceptacja, wdrażanie, działanie

background image

Tematy i techniki analizy obiektowej

Budowa statycznego modelu klas

Analiza funkcji i przypadków użycia

Weryfikacja klas i obiektów

Identyfikacja i definiowanie metod oraz komunikatów

Modelowanie stanów i przejść między stanami

Modelowanie procesów i przepływów danych

Modelowanie przepływu sterowania

Inne

Wiele tych technik było omówionych podczas prezentacji 
metodyki opartej na UML.

background image

Proces tworzenia modelu 
obiektowego

Zadania:

Identyfikacja klas i obiektów

Identyfikacja związków pomiędzy klasami

Identyfikacja i definiowanie pól (atrybutów)

Identyfikacja i definiowanie metod i komunikatów

Czynności te są wykonywane iteracyjnie. Kolejność ich wykonywania nie jest 
ustalona i zależy zarówno od stylu pracy, jak i od konkretnego problemu. 

Inny schemat realizacji procesu budowy modelu obiektowego polega na 
rozpoznaniu funkcji, które system ma wykonywać. Dopiero w późniejszej fazie 
następuje identyfikacja klas, związków, atrybutów i metod. Rozpoznaniu funkcji 
systemu służą modele funkcjonalne (diagramy przepływu danych) oraz model 
przypadków użycia.

background image

Identyfikacja klas i obiektów

Typowe klasy:

przedmioty namacalne (samochód, czujnik)

role pełnione przez osoby (pracownik, wykładowca, student)

zdarzenia, o których system przechowuje informacje (lądowanie samolotu, wysłanie 
zamówienia, dostawa),

interakcje pomiędzy osobami i/lub systemami o których system przechowuje 
informacje (pożyczka, spotkanie, sesja),

lokalizacje - miejsce przeznaczone dla ludzi lub przedmiotów

grupy przedmiotów namacalnych (kartoteka, samochód jako zestaw części)

organizacje (firma, wydział, związek)

wydarzenia (posiedzenie sejmu, demonstracja uliczna)

koncepcje i pojęcia (zadanie, miara jakości)

dokumenty (faktura, prawo jazdy)

klasy będące interfejsami dla systemów zewnętrznych

klasy będące interfejsami dla urządzeń sprzętowych

background image

Obiekty, zbiory obiektów i 
metadane

W wielu przypadkach przy definicji klasy należy dokładnie ustalić, z jakiego 
rodzaju abstrakcją obiektu mamy do czynienia. 

Np. klasa „samochód”. Może chodzić o:

• egzemplarz samochodu wyprodukowany przez pewną fabrykę
• model samochodu produkowany przez fabrykę
• pozycję w katalogu samochodów opisujący własności modelu
• historię stanów pewnego konkretnego samochodu

Podobnie z klasą „gazeta”. Może chodzić o:

• konkretny egzemplarz gazety kupiony przez czytelnika
• konkretne wydanie gazety (niezależne od ilości egzemplarzy)
• tytuł i wydawnictwo, niezależne od egzemplarzy i wydań
• partię egzemplarzy danej gazety dostarczaną codziennie do kiosku

Należy zwrócić uwagę na następujące aspekty:
• czy mamy do czynienia z konkretnym obiektem w danej chwili czasowej?
• czy mamy do czynienia z konkretnym obiektem w pewnym odcinku czasu?
• czy mamy do czynienia z opisem tego obiektu (dokument, metadane)?
• czy mamy do czynienia z pewnym zbiorem konkretnych obiektów?

background image

Konstruowanie modelu obiektów

Konstruowanie modelu obiektów wymaga następujących kroków:

*

Identyfikacja obiektów i klas

*

Przygotowanie słownika danych

*

Zidentyfikowanie związków między obiektami

*

Zidentyfikowanie atrybutów obiektów

*

Zorganizowanie i uproszczenie klas obiektów z użyciem dziedziczenia

*

Analiza ścieżek dostępu dla prawdopodobnych zapytań

*

Iteracje i precyzowanie modelu

*

Grupowanie klas w moduły

background image

Model obiektów

Model obiektów opisuje strukturę obiektów w systemie:

• tożsamość
• związki z innymi obiektami
• atrybuty
• operacje

Jest podstawą dla modeli dynamicznych i funkcjonalnych

Cel: wyłowienie tych pojęć z modelowanej rzeczywistości, które są istotne
dla danego zastosowania.

Cel: wyłowienie tych pojęć z modelowanej rzeczywistości, które są istotne
dla danego zastosowania.

Graficzna reprezentacja modelu obiektów w postaci diagramów obiektowych
zawierających klasy obiektów.

Graficzna reprezentacja modelu obiektów w postaci diagramów obiektowych
zawierających klasy obiektów.

Klasy są organizowane w hierarchie, i są połączone z innymi klasami związkami
asocjacyjnymi.

background image

Budowa modelu obiektowego 
przykład

W  Systemie  ROZGRYWEK  LIGII  PIŁKARSKIEJ  zbierane  są informacje  o 
drużynach  występujących  w  lidze,  rozgrywanych  przez  nie  spotkaniach  oraz 
kibicach drużyn.

•W rozgrywkach Ligii Piłkarskiej uczestniczy wiele zespołów.

•Rozgrywają one między sobą mecze zgodnie z harmonogramem rozgrywek.

•Każdy mecz odbywa się w ustalonym dniu i godzinie oraz na wybranym stadionie.

•Każda  drużyna  prowadzona  jest  przez  jednego  szkoleniowca  (trenera),  który  ustala 
plan treningów zespołu.

•Treningi  danej  drużyny  odbywają się na  różnych  stadionach,  przy  czym  na  tym 
samym stadionie może trenować kilka drużyn.

•Prezes  drużyny  nadzoruje  i  koordynuje  jej  działalność oraz  ma  decydujący  głos  w 
sprawie powoływania zawodników do zespołu.

•Po zakończeniu rozgrywek drużyny klasyfikowane są na podstawie sumy zdobytych 
punktów oraz strzelonych i straconych bramek.

•Każda drużyna piłkarska posiada swoich fanów, którzy wspierają jej działalność oraz 
kibicują jej w trakcie rozgrywanych meczy. 

background image

Przykładowy model obiektów

OSOBA

FAN

TRENER

ZAWODNIK

PREZES

wspomaga

prowadzi

gra dla

kieruje

DRUŻYNA

grają

przeciwko

sobie

MECZ

odbywa się

STADION

trenuje na

kibicuje

Rozgrywki 
Ligii Piłkarskiej

background image

Model dynamiczny

Opisuje te aspekty analizowanego systemu, które są związane z czasem i
kolejnością wykonywania operacji.

Opisuje te aspekty analizowanego systemu, które są związane z czasem i
kolejnością wykonywania operacji.

zdarzenia

które wyznaczają zmiany

sekwencje zdarzeń

stany

które definiują kontekst zdarzeń

organizację

zdarzeń i stanów

Model dynamiczny obejmuje 

sterowanie

, tj. taki aspekt systemu, który 

odzwierciedla następstwo operacji, bez wnikania co te operacje robią, 
na czym one działają, i jak są zaimplementowane.

Model dynamiczny obejmuje 

sterowanie

, tj. taki aspekt systemu, który 

odzwierciedla następstwo operacji, bez wnikania co te operacje robią, 
na czym one działają, i jak są zaimplementowane.

Model dynamiczny jest reprezentowany graficznie w postaci 

diagramów stanów

.

Każdy diagram stanów opisuje kolejności stanów i zdarzeń dozwolonych w systemie
dla jednej klasy obiektów.

Model dynamiczny jest reprezentowany graficznie w postaci 

diagramów stanów

.

Każdy diagram stanów opisuje kolejności stanów i zdarzeń dozwolonych w systemie
dla jednej klasy obiektów.

background image

Zależności pomiędzy modelami

Każdy model opisuje specyficzny aspekt modelowanej rzeczywistości, ale
zawiera odniesienia do pozostałych modeli.

Model obiektów: 
opisuje strukturę, na której działają model dynamiczny i model funkcjonalny.

Operacje w modelu obiektów odpowiadają zdarzeniom w modelu dynamicznym
lub funkcjom w modelu funkcjonalnym

Model obiektów: 
opisuje strukturę, na której działają model dynamiczny i model funkcjonalny.

Operacje w modelu obiektów odpowiadają zdarzeniom w modelu dynamicznym
lub funkcjom w modelu funkcjonalnym

Model dynamiczny opisuje strukturę sterowania związaną z obiektami.

Model dynamiczny opisuje strukturę sterowania związaną z obiektami.

Model funkcjonalny opisuje 
• funkcje wywoływane poprzez operacje w modelu obiektów,
• argumenty tych funkcji,
• akcje w modelu dynamicznym
• ograniczenia na wartości obiektów

Model funkcjonalny opisuje 
• funkcje wywoływane poprzez operacje w modelu obiektów,
• argumenty tych funkcji,
• akcje w modelu dynamicznym
• ograniczenia na wartości obiektów

Niejasności mogą być wyjaśniane w języku naturalnym lub poprzez specyficzną notację

background image

Martin/Odell

Martin/Odell

BON (Business Object Notation), Nerson & Walden

BON (Business Object Notation), Nerson & Walden

OODA, Booch

OODA, Booch

Catalysis, D’Souza & Wills

Catalysis, D’Souza & Wills

EROOS (Entity-Relationship Object-Oriented Specification)

EROOS (Entity-Relationship Object-Oriented Specification)

Fusion, HP Laboratories

Fusion, HP Laboratories

MOSES (Methodology for Object-Oriented Software Engineering of System)

MOSES (Methodology for Object-Oriented Software Engineering of System)

OORAM

OORAM

OSA

OSA

OOSA, Shlaer-Mellor

OOSA, Shlaer-Mellor

Sintropy

Sintropy

OMT, Rumbaugh

OMT, Rumbaugh

UML (Unified Modelling Language), Booch, Jacobson, Rumbaugh

UML (Unified Modelling Language), Booch, Jacobson, Rumbaugh

Objectory, Jacobson

Objectory, Jacobson

OOA/OOD, Coad/Yourdon

OOA/OOD, Coad/Yourdon

DOOS, Wirfs-Brock

DOOS, Wirfs-Brock

MainstreamObjects, Yourdon

MainstreamObjects, Yourdon

Metodyki obiektowe

Express

Express

Goldberg/Rubin

Goldberg/Rubin

background image

Jakie metodyki są używane?

Źródło: Gartner Group - 1995

OMT

32%

OOIE

17%

Fusion

4%

Inne

17%

Booch

4%

Shlaer-Mellor

13%

Coad/Yourdon

13%

background image

Historia metod analizy i projektowania 
obiektowego

background image

Wprowadzenie do OMT

Co to jest OMT?

Trzy podstawowe modele OMT

Diagramy i techniki OMT

Obiekty, klasy

Atrybuty

Operacje, metody

Powiązania, asocjacje

Agregacje

Generalizacje, dziedziczenie

background image

Co to jest OMT?

OMT = Object Modelling Technique, technika modelowania obiektów.

Książka:

J. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy, W. Lorenson. 
Object-Oriented Modelling and Design. 
Englewood Cliffs, NJ, Prentice Hall 1991

J. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy, W. Lorenson. 
Object-Oriented Modelling and Design. 
Englewood Cliffs, NJ, Prentice Hall 1991

Przyszłość
Trzech czołowych obiektowych metodologów, 
Grady  Booch, Ivar Jacobson i James Rumbaugh
połączyło swoje wysiki i metodyki w ramach firmy 
Rational Software Corporation
Rezutat (wrzesień 1996) określili jako

The Unified Modelling Language

The Unified Modelling Language

background image

Filozofia OMT

Główna różnica pomiędzy podejściem obiektowym w rozwoju oprogramowania, a 
podejściem tradycyjnym: 

Podejście obiektowe nie opiera się na funkcjonalnej dekompozycji procesów
zachodzących w świecie rzeczywistym, a na opisie obiektów rzeczywistych, 
które grają określoną rolę w tym świecie.

Wg OMT obiektowość jest sposobem myślenia i organizacji oprogramowania  
polegającym na wyodrębnianiu dyskretnych obiektów, które odwzorowują
zarówno statyczną strukturę świata i danych, jak i zachowanie 
(behaviour).

Charakterystyki obiektowości:

Charakterystyki obiektowości:

• tożsamość obiektów
• klasyfikacja (grupowanie obiektów w klasy)
• polimorfizm
• dziedziczenie

(te charakterystyki mogą być przedmiotem dyskusji) 

Istotna jest identyfikacja i organizacja pojęć z dziedziny 
aplikacyjnej
, a nie pojęć z dziedziny implementacyjnej. 

Istotna jest identyfikacja i organizacja pojęć z dziedziny 
aplikacyjnej
, a nie pojęć z dziedziny implementacyjnej. 

background image

Wkład podejścia obiektowego 

Większy nacisk na istotne własności obiektów zmusza analityka lub projektanta
do staranniejszego i głębszego myślenia o tym, czym jest obiekt i co on robi.

Główne zyski nie polegają na zredukowaniu czasu rozwoju, lecz na przyszłym
powtórnym użyciu klas i innych fragmentów projektu, zredukowaniu błędów
i pracochłonności utrzymania 
(maintenance)

Przesunięcie trudu rozwoju na fazę analizy 

Przesunięcie trudu rozwoju na fazę analizy 

Wkład:

Wkład:

Większy nacisk na struktury danych, 
a mniejszy na funkcje, co wspomaga stabilność

Większy nacisk na struktury danych, 
a mniejszy na funkcje, co wspomaga stabilność

Bezszwowy proces rozwoju

Bezszwowy proces rozwoju

Podejście iteracyjne raczej niż sekwencyjne.
Cechy projektu są dodawane i wyjaśniane w kolejnych iteracjach 

Podejście iteracyjne raczej niż sekwencyjne.
Cechy projektu są dodawane i wyjaśniane w kolejnych iteracjach 

background image

OMT- 3 modele

Model obiektów

Model obiektów

statyczna struktura obiektów i związków

przykrywa aspekt “danych”

Model dynamiczny

Model dynamiczny

przykrywa zachowanie się obiektów w terminach “bodziec-odpowiedź”

przykrywa aspekt “sterowania”

Model funkcjonalny

Model funkcjonalny

przykrywa aspekt “funkcjonalny”

zależności funkcyjne pomiędzy wartościami

Projektowanie i implementacja polega na uszczegóławianiu i łączeniu tych modeli

Projektowanie i implementacja polega na uszczegóławianiu i łączeniu tych modeli

background image

Modelowanie dynamiczne w OMT

Zdarzenia i stany

Scenariusze

Trop zdarzeń

Diagramy stanów, operacje

Współbieżność

background image

Diagramy i techniki OMT

Modeluje komunikację wewnątrz systemu
poprzez pokazanie interfejsów między obiektami.

Dekomponuje strukturę złożonych komunikatów.

Modeluje statyczną strukturę system poprzez sieć
klas i związków.

Modeluje strukturę sterowania systemu. Pokazuje
sekwencję działań między niektórymi stanami
systemu w terminach stanów i przejść.
Pokazuje sekwencję zdarzeń między różnymi 
obiektami jako uporządkowaną listę.

Modeluje procesy systemu. Pokazuje przepływ
wartości danych od ich źródeł w obiektach poprzez
procesy, do ich przeznaczenia w innych obiektach.

Komunikacja klas
(class 
communication
)
(CADRE)

Asocjacja klas
(class association)
(OMT)
Dynamiczny
(OMT)

Fumkcjonalny
(OMT)

Diagram komunikacji klas
(Class Communication
Diagram, CCD
)

Diagram generalizacji
komunikatów (Message
Generalization Diagram, MGD
)

Diagram asocjacji klas (Class
Association Diagram, CAD
)

Diagram zmian stanów (State
Transition Diagram, STD
)

Diagram tropów zdarzeń
(Event Trace Diagram, ETD)

Diagram przepływu danych
(Data Flow Diagram, DFD)

Model                 

Modelowany poprzez

Cel 

background image

Fazy metodyki OMT

OMT zakłada iterację (powtarzanie) następujących faz:

OMT zakłada iterację (powtarzanie) następujących faz:

Analiza: budowa modelu świata rzeczywistego

Projektowanie systemowe: zagadnienia architektoniczne, podsystemy, itd

Implementacja: zakodowanie projektu w języku programowania

Model obiektów

Model dynamiczny

Model funkcjonalny

Projektowanie systemu

Projektowanie obiektów

Analiza

Projektowanie

Projektowanie obiektowe: budowa modeli obiektowych opartych na 
wynikach analizy.

background image

Analiza obiektowa metodą

BOOCHA

Diagramy obiektowe

Diagramy klasowe

Diagramy interakcji

Diagramy przejść stanowych

Specyfikacje relacji między klasami

Specyfikacje klas i operacji

Diagramy modułowe

Diagramy procesowe

background image

Diagram obiektowy - przykład

background image

Diagram obiektowy - przykład

background image

Diagram interakcji

uzupełniający sposób przedstawienia współpracy 

między obiektami

nacisk położony jest na przesyłanie wiadomości
kolumny diagramu odpowiadają obiektom
kolejność pionowa na diagramie odpowiada

kolejności przesyłania wiadomości (można
zrezygnować z oznaczenia liczbowego)

background image

Diagram interakcji

background image

Diagramy przejść stanowych

ze stanami wiąże się zbiór akcji 

wykonywanych w chwili wejścia do

stanu (poprzedzając akcję słowem entry)
lub w chwili wyjścia ze stanu (słowo exit)

przy przejściu obok zdarzenia i akcji

związanych z przejściem mogą być też
uwzględnione warunki warunkujące
przejście

background image

Diagramy przejść stanowych

background image

Przykład

background image

Diagramy klasowe

background image

Typy relacji między klasami

a) klasy stowarzyszone
b) klasa B dziedziczy po A
c)

klasa A zawiera B – relacja 
agregacji

d) klasa A używa B – relacja 

wykorzystania

e) klasa B jest klasą-wzorcem 

dla klasy A – relacja 
instancji

f)

klasa A jest metaklasą dla 
B

g) kategoria klas A używa B i 

C, tj. klasy należące do A 
dziedziczą, zawierają, 
używają klas należących 
do B lub C

background image

Specyfikacje relacji

dostęp do:

 ||| - warstwy implementacji
 || - obszaru prywatnego 
warstwy 

zewnętrznej

 | - obszaru chronionego

warstwy zewnętrznej

specyficzne własności klas:

A – abstrakcyjna
S – zmienna klasy
F – zaprzyjaźniona
V – wirtualna (na rys.

zapobiega podwójnemu

dziedziczeniu po klasie A)

background image

Przykład diagramu klasowego

background image

Konstrukcja modelu logicznego w 
fazie analizy

1.

identyfikacja kluczowych 
abstrakcji

diagramy obiektowe

ewentualnie diagramy 
interakcji

2.

konstrukcja scenariuszy

ewentualnie diagramy przejść
stanowych

3.

definicja odpowiedzialności 
klas

background image

Identyfikacja kluczowych abstrakcji
w podejściu klasycznym

rzeczy – obiekty w percepcji zmysłów

zdarzenia/wydarzenia

role – odgrywane przez obiekty

koncepcje/idee

miejsca/lokalizacje – np. miejsca 

wydarzeń

relacje – pomiędzy rzeczami, rolami, 

zdarzeniami itp.

struktury/systemy/organizacje

Podejście klasyczne  (classical  approach) 
identyfikuje obiekty w postaci:

background image

Analiza zachowań abstrakcji

Analiza zachowań (behaviour analysis) polega 

na grupowaniu podobnych z zewnątrz 

abstrakcji klas i obiektów

analiza odpowiedzialności (responsibilities 

analysis) identyfikuje ogólne zadania i usługi 

składowych systemu oraz grupuje je pod 

względem podobieństw

analiza funkcji systemu (system functions 

analysis) polega na określeniu zbioru 

wszystkich funkcji systemu i przypisaniu w 

sposób zstępujący funkcji wraz z ich 

zachowaniami kluczowym elementom 

systemu, czyli obiektom

analiza elementarnych aktywności (function 

point analysis) wyodrębnia podstawowe 

zachowania się systemu w reakcji na 

określone zdarzenia upatruje obiekty i klasy w 

aktywnych składowych systemu

background image

Analiza dziedziny problemowej

Analiza dziedziny problemowej (domain analysis) –
klasy i obiekty identyfikowane są przez ekspertów w 
czterech etapach:

konstrukcji ogólnego abstrakcyjnego modelu 
dziedziny problemowej

analizy podobnych istniejących systemów 
informatycznych sprowadzenia tych modeli do danej 
dziedziny problemowej

analizy modeli istniejących systemów ze 
wskazaniem podobieństw i różnic pomiędzy nimi a 
omawianym projektem

wyspecyfikowania abstrakcyjnego modelu 
systemu 
tak by spełniał wymagania i był zgodny ze 
standardami istniejących systemów

background image

Konstrukcja scenariuszy i 
odpowiedzialności klas

Konstrukcja scenariuszy

polega na opisaniu 

zachowania się systemu za pomocą sekwencji 
elementarnych wydarzeń tego zachowania

przypisanie ról obiektom biorącym udział w 
elementarnych aktywnościach systemu (DO, DI)

jeżeli istnieją pewne istotne stany systemu, to 
można opisać je diagramami przejść stanowych

Odpowiedzialności klas

dokonuje się przez 

przypisanie jej obiektom zdolności odegrania swych 
roli:

zbiór akcji, które obiekt ma prawo wykonywać

wiedza wpisana w obiekt o jego mechanizmach 
reakcji na zaistniałe sytuacje

background image

Projektowanie w metodzie 
BOOCHA

Polega na określeniu modelu systemu w 

dziedzinie rozwiązania problemu 

(solution domain)

podmodele modelu logicznego:

1. model struktury klasowej (class structure) 

– dekompozycja systemu po zastosowaniu 
operacji uogólniającej

2. model struktury obiektowej (object 

structure) – struktura po zastosowaniu 

operacji abstrakcji kompozycyjnej

3. model architektury logicznej (logical 

architecture) – klasy pogrupowane w 
kategorie klas

model fizyczny

1. architektura warstwy oprogramowania
2. architektura warstwy sprzętowej

background image

Specyfikacja klas i operacji

Nazwa

Nazwa klasy

Definicja: ogólna

Charakterystyka klasy

Odpowiedzialności Opis odpowiedzialności przypisanych klasie w 

fazie analizy

Atrybuty

Pełna lista atrybutów

Operacje

Pełna lista operacji

Ograniczenia

Warunki, w których spełnienie gwarantuje, że 
cały system znajduje się w stanie stacjonarny

Diagramy przejść
stanowych

Referencje do diagramu opisującego 
dynamikę klasy

Prawa dostępu

[implementacja | prywatny | chroniony | 
publiczny]

Moc

Liczba instacji jakie może mieć klasa

Parametry

Liczba parametrów formalnych/aktualnych

Trwałość

[tak | nie]

Współbieżność

[nie (sekwencyjność) | strzeżona 
|synchroniczna | aktywna]

Złożoność
pamięciowa

Wielkość pamięci zajmowanej przez instancje

background image

Specyfikacja klas i operacji

Nazwa

Nazwa operacji

Klasa powrotu

Referencja do klasy

Dostępność

[implementacja | prywatna chroniona | 
publiczna]

Warunki wstępne

[opis | referencja do kodu źródłowego | 
referencja do diagramu źródłowego]

Semantyka 
operacji

--||--

Warunki końcowe

--||--

Sytuacje 
szczególne

Lista operacji szczególnych

Współbieżność

[nie (sekwencyjność) | strzeżona 
|synchroniczna | aktywna]

Złożoność
pamięciowa

wyrażenie określające wielkość pamięci 
zajmowanej przez kod operacji

Złożoność
czasowa

wyrażenie określające ilość czasu 
wymaganego do wykonania operacji

background image

Diagramy modułowe

program główny (main 
program), np. *.cpp
moduł zawierający 
deklaracje klas i 
obiektów (specification 
modules), np. *.h
moduł zawierający 
definicje (body 
modules), np. *.cpp
moduł z deklaracjami i 
definicjami
podsystem
relacja typu „zależy od”

background image

Diagramy modułowe

program główny 
zależy
od modułów:

zawiera 

deklaracje i
służy modułom
jako źródło

wspólnych

typów,
stałych itp

background image

Diagram modułowy reprezentujący
dekompozycję systemu

background image

Diagramy procesowe

background image

Diagram procesowy dla zintegrowanego 
systemu zarządzania firmą

background image

PORÓWNANIE 

METODYK I 

INNE UWAGI

background image

Różnice pomiędzy metodykami

Podejścia 

proponowane przez różnych autorów 

różnią się częściowo

nie muszą

być jednak ze sobą

sprzeczne

Nie  ma  metodyk  uniwersalnych

.  Analitycy  i  projektanci  wybierają

kombinację technik i notacji, która jest w danym momencie  najbardziej 
przydatna. 

Poszczególne 

metodyki 

zawierają

elementy 

rzadko 

wykorzystywane w praktyce

(np. model przepływu danych w OMT).

Notacje

proponowane  przez  różnych  autorów 

nie  są koniecznie 

nierozerwalne  z  samą metodyką

.  Np.  notacji  UML  można  użyć dla 

metodyki Coad/Yourdon.

Narzędzia  CASE nie narzucają metodyki

; raczej,  określają one  tylko 

notację.  Twierdzenia,  że  jakieś narzędzie  CASE  “jest  oparte” na 
konkretnej metodyce jest często wyłącznie hasłem reklamowym. 

Nawet 

najlepsze  metodyki  i  narzędzia  CASE  nie  są w  stanie  zapewnić jakości 
projektów. 

Kluczem  do  dobrego  projektu  jest  zespół doświadczonych,  zaangażowanych  i 
kompetentnych osób, dla których metodyki, notacje i narzędzia CASE służą jako 
istotne wspomaganie.

background image

Ryzyko stosowania metod IO

Luka formalna w dziedzinie poznania

Zagadnienia zaliczające się do luki poznawczej, nie 
są w trakcie analizy dostrzegane i nie zostaną
wyczerpująco opracowane, można więc określać je 
mianem ryzykownych punktów projektu.

Od ogółu do szczegółu

Na tym poziomie pojawiające się problemy 
umykają z powodu natłoku szczegółów w 
projekcie

Od szczegółu do ogółu

Problemy stają się zbyt ogólne dla zespołów 
zajmujących się zagadnieniami podstawowymi

background image

Nowe kierunki rozwoju 
metod projektowania

Najważniejsze kierunki innowacji:

Integracja systemów

danych i procesów 

Unifikacja funkcji

cząstkowych systemów

Zwiększanie 

dostępności do bazy danych

dla wszystkich komórek organizacyjnych 

Upowszechnienie 

nowoczesnych 

sposobów prezentacji danych 

(

wizualizacji

) dla celów wspomagania ich 

analizy 

Doskonalenie procesów podejmowania 

decyzji

i ich przekazywania 

Zmierzanie do 

budowy modułowej i 

otwartości

całego systemu (projektowanie 

komponentowe, COTS) 

background image

Dalsze innowacje ...

Zapewnienie 

kompleksowego 

charakteru 

funkcjonowania całego systemu 

(dostępność, skuteczności decyzji w 

całości) 

Stałe podnoszenie 

zaawansowania 

merytorycznego i technologicznego

(metody zarządzania + sam system) 

Zmierzanie do osiągnięcia 

elastyczności 

funkcjonalnej i strukturalnej

Zapewnienie stałej 

zgodności ze 

zmieniającymi się elementami otoczenia

zwłaszcza stanem prawnym ewoluującym 

zgodnie z przyjętymi procedurami 

legislacyjnymi 

Bezpieczeństwo, poufność, integralność, 

hierarchia haseł i przywileje dostępu

background image

Metodologie tworzenia i 
projektowania SI

różne 

nurty (podejścia):

Strukturalne,

Obiektowe,

Przyrostowe,

Komponentowe,

Aspektowe,

Podejścia do wytwarzania 
oprogramowania określonej klasy (np.. 
systemów czasu rzeczywistego, 
ekspertowych, zintegrowanych, etc),

Zależne od przyjętego modelu cyklu życia 
systemu

background image

Idee metodyk

Tradycyjne metody prowadzenia projektu mają

w zamyśle sprzedać produkt – gotowe 

oprogramowanie

Realizacja produktu dla klienta

Sukces – dobrze wynegocjowany kontrakt

Bardzo sformalizowany cykl życia produktu

Nowe techniki zarządzania projektem 

ukierunkowane są na usługę.

Realizacja produktu dla i przy pomocy 
klienta

Człowiek – użytkownik, jako czynnik 

sukcesu.

Elastyczne traktowanie planu realizacji.

background image

Inne metody projektowania SI 
związane z modelem cyklu 
życia

Metoda Spiralna

- zmodyfikowanie tradycyjnej spirali o 

występowanie przeskoków, dzięki temu możemy wracać do 

dowolnego punktu jak i przeskoczyć niektóre etapy.

Teoria Win-Win

, która głosi, iż najlepszy jest proces w którym 

wszyscy wygrywają.  Należy: 

Zidentyfikować wszystkich 

Określić warunki sukcesu 

Negocjować podczas tworzenia prototypów 

Metody Zwinne

(agile software development methods) -

bardziej swobodne od tradycyjnych metody – tu ludzie są

ważniejsi od sztywnych procedur - Zmniejszenie nacisku na 

dokumentację i formalizację - Z użytkownikiem powinno 

się współpracować a nie negocjować. Ważniejsza jest 

umiejętność reagowania niż szczegółowy i sztywny plan -

Metody te można stosować do niewielkich systemów 

background image

powinna 

objąć cały  cykl  życia  systemu

przy  zapewnieniu 

płynnych przejść pomiędzy fazami,

winna  obejmować

różnorodne,  dostosowane  do  specyfiki 

podejścia, metody, techniki i narzędzia

,

powinna  ułatwić porozumiewanie  się pomiędzy  różnymi 
grupami tworzącymi SI

,

powinna być stosunkowo łatwa do opanowania

i dostosowania 

do  szerokiej  klasy  problemów  oraz 

zawierać mechanizmy 

ewolucyjności i modyfikalności

.

Dotychczasowe  rozważania  pozwalają

na  określenie 

ogólnych wymagań na racjonalną metodykę tworzenia SI

Podsumowanie - ogólne 
wymagania dla metodyk

background image

SWOBODNE 

METODYKI 

PROJEKTOWANIA SI

„agile software development methods”
- charakterystyka, przegląd, zasadność użycia

background image

Specyfika swobodnych 
metodyk

Techniki zakładają ścisłą współpracę z 
użytkownikiem 
czy odbiorcą. Właściwie 
postuluje się włączenie użytkownika w 
proces projektowania oprogramowania.

Sprzedawana jest usługa tworzenia 
oprogramowania  a nie gotowy produkt -
oprogramowanie, tak więc użytkownik jest 
tym, kto podejmuje decyzje co i w jakiej 
kolejności będzie w projekcie wykonywane. 

background image

Specyfika swobodnych 
metodyk

Istotną wagę przywiązuje się do 
poprawnego szacowania kosztów prac
tak by inwestor/użytkownik mógł
świadomie planować swe wydatki na rozwój 
oprogramowania. 

Zobowiązuje się wytwórcę
oprogramowania do tego, że każdym 
swym działaniem powinien udowadniać
inwestorowi efektywne wykorzystanie 
czasu i powierzonych mu środków.

background image

Specyfika swobodnych 

metodyk cd.

Sprzedając  usługę programowania  rezygnuje 
się z  zysków  z  ponownego  użycia  
kodu,  bo 
prace odniesione są do niepowtarzalnego projektu. 
Przy  takim  założeniu  rozległa  dokumentacja 
projektowa 

staje 

się

zbędnym 

kosztem 

obciążającym użytkownika i unika się jej. 

Uproszczenia 

dokumentacyjne 

wymuszają

specyficzny  sposób  porozumiewania  się z 
użytkownikiem

trakcie 

tworzenia 

oprogramowania  często  (na  bieżąco)  zadaje  się
mu  pytania  i  prośby  o  potwierdzenie  dotyczące 
niewielkiego 

zakresu 

funkcjonalności. 

Stąd 

wynikają

inkrementalny 

sposób 

dostarczania 

oprogramowania 

oraz 

krótkie 

iteracje 

implementacyjne.

background image

Specyfika swobodnych 
metodyk cd...

Nie  specyfikuje  się formalnych  punktów 

kontrolnych  w  projekcie - nie  są one 

potrzebne,  gdyż zakończenie  każdej  iteracji 

jest  punktem  kontrolnym  samym  w  sobie.  Z 

drugiej 

strony 

wprowadzenie 

sformalizowanych  punktów  kontrolnych  nie 

we wszystkich technikach jest możliwe. 

Sekwencyjna 

realizacja 

wymagań

użytkownika  powoduje  częste  zmiany  w 

architekturze  systemu  i  konieczność

przebudowy

kodu. 

W  nowych  metodykach  zadanie  przebudowy 

kodu  postrzega  się nie  jako  wyjątek,  lecz 

jako regułę. 

background image

Manifest swobodnych metodyk

ludzie, ich kontakty, zdolność do rozwiązywania 
problemów są ważniejsze niż sztywne 
procedury i narzędzia zarządzania, 

wynikiem projektu jest pracujące 
oprogramowanie 
a nie dokumentacja, 

z użytkownikiem się współpracuje a nie 
negocjuje kontrakt, 

ważniejsza jest umiejętność reagowania 
na zmieniające się warunki otoczenia 
niż
podążanie za opracowanym na wstępie planem. 

background image

METODOLOGIE 

ZWINNE

background image

Metodyki zwinne

Metodyka 

Crystal

(Crystal family), 

Projektowanie zorientowane na właściwości 

(Feature Driven Development -

FDD

), 

Modelowanie zwinne (

Agile

Modeling), 

Programowanie ekstremalne

(Extreme 

Programming),

Adaptacyjny rozwój oprogramowania

(Adaptive Software Development), 

Metodyka 

scrum 

(Scrum development), 

Prototypowanie

(Prototyping methodology), 

Szybkie programowanie internetowe

(Internet Speed Development), 

Pragmatyczne programowanie

(Pragmatic 

Programming).

background image

METODOLOGIE 

ZWINNE

FDD - FUTURE DRIVEN DEVELOPMENT

background image

FDD (zwinne metodologie) -
charakterystyka

metodyka tworzenia oprogramowania, 
wspomagająca zarządzanie fazami analiz, 
projektowania i konstrukcji oprogramowania

jest projektowaniem zorientowanym na 
właściwości

prace rozpoczynają się od określenia „ogólnego 
modelu systemu
”.

background image

FDD (zwinne metodologie) -
charakterystyka

określana jest domena projektu 
iteracyjnie dzielona na coraz to mniejsze 
znaczeniowo obszary.

każdy niepodzielny obszar znaczeniowy 
jest opracowywany przez przypisaną do 
niego grupę projektantów
, w wyniku 
czego powstaje model szczegółowy, będący 
składnikiem całościowego modelu systemu. 

zespół projektantów korzysta z 
opracowanych wcześniej wymagań
systemowych i przypadków użycia

background image

FDD – dobre praktyki IOP

oparcie procesu o wymagania 
klienta

architektura systemu

krótkie iteracje

indywidualna odpowiedzialność za 
kod

inspekcje

background image

FDD – role w zespole

Menadżer projektu

Eksperci dziedzinowi

Główny architekt

Menadżer programistów

Główni programiści

Właściciele klas

background image

FDD – pojęcie cechy

Zasadniczym elementem procesu FDD jest cecha
(feature) produktu. 

Cechą jest mały fragment funkcjonalności produktu.

Cecha w SI dostarcza klientowi interesujące go 
wyniki.

Opisuje wymagania funkcjonalne wg schematu:

<action>the<result><by|of|to|from|for>a(n)<objec

t>

Grupuje się w zbiory cech wg schematu:

<action>-ing<buisness 

deliverable><by|of|to|from|for>a(n)<object>

background image

FDD (Feature Driven 
Development
)

... został utworzony pomiędzy rokiem 1997 a 1999 w United 
Overseas Bank w Singapurze przez zespół, któremu 
przewodził Jeff De Luca. Zespół ten w swojej pracy bazował
na materiałach Petera Coad’a, również członka zespołu, który 
wprowadził idee Feature definition Feature list

[1]

[1]

David J. Anderson, Eli Schragenheim: Agile Management for Software 

Engineering

background image

FDD ...

... opiera się na następujących 

założeniach:

system służący budowaniu innych 

systemów powinien być skalowalny,

proste procesy są najlepsze,

dobre procesy pozwalają zespołowi 
na skupienie się na wynikach,

krótkie, ukierunkowane na cechy 
produktu  i iteracyjne cykle są
najlepsze.

background image

Feature Driven Development

... definiuje pięć procesów wysokiego poziomu

[1]

:

opracowanie ogólnego modelu (modelowanie 
kształtu),

zbudowanie listy cech,

plan projektu na podstawie cech,

projektowanie,

wytworzenie.

[1]

Stephen Palmer: Feature Driven Development and 

Extreme Programming

background image

FDD jest uważany za dobrą
mieszankę zasad i elastyczności, 
która stanowi prosty w 
wykorzystaniu szkielet dla 
projektu.

background image

FDD – realizacja metody

założeniem jest 

inkrementacyjne opracowywanie 

poszczególnych funkcjonalności systemu

projekt w myśl FDD składa się z 

pięciu

sekwencyjnie 

następujących po sobie 

etapów.

Planowanie 

na 

podstawie 

funkcjonal-

ności

Określenie 

listy 

funkcjonal-

ności

Opracowanie 

ogólnego 

modelu

Wykonywanie 

oparciu o

funkcjonal-

ności

Projektowanie 

na 

podstawie 

funkcjonal-

ności

background image

FDD – faza I

stworzenia zespołu projektowego pod kierownictwem Głównego 
Architekta,

przeprowadzenia przeglądu dziedziny problemu,

studiowanie dokumentów z wymaganiami i z dziedziny problemu,

przygotowanie alternatywnych modeli w oddzielnych małych 
grupach projektowych,

wypracowanie wspólnego modelu,

Zatwierdzenie ogólnego modelu,

Zdokumentowanie istotnych założeń dotyczących 
projektu i alternatywnych rozwiązań.

Planowanie 

na 

podstawie 

funkcjonal-

ności

Określenie 

listy 

funkcjonal-

ności

Opracowanie 

ogólnego 

modelu

Wykonywanie 

oparciu o

funkcjonal-

ności

Projektowanie 

na 

podstawie 

funkcjonal-

ności

background image

Opracowanie ogólnego modelu

Krok ten dotyczy zdefiniowania wstępnego 
kształtu projektu. Członkowie zespołu 
tworzącego oprogramowanie i udziałowcy 
systemu definiują wspólnie wstępny, 
prowizoryczny model tego, co powinno 
zostać wytworzone. 

Końcowym efektem tego etapu powinien 
być model klas zdefiniowany w języku 
UML

background image

FDD – faza II

na podstawie specyfikacji wymagań systemowych oraz 
opracowanego modelu/modeli opracowywanie są list 
funkcjonalności

Listy mają charakter hierarchiczny i zawierają funkcjonalności 
główne

Rozdrabnianie funkcjonalności na coraz niższe poziomy

Przeglądanie list przez użytkowników i inwestorów w celu kontroli 
poprawności i kompletności

Planowanie 

na 

podstawie 

funkcjonal-

ności

Określenie 

listy 

funkcjonal-

ności

Opracowanie 

ogólnego 

modelu

Wykonywanie 

oparciu o

funkcjonal-

ności

Projektowanie 

na 

podstawie 

funkcjonal-

ności

background image

Zbudowanie listy cech

Wykorzystując wiedzę zebraną w 
poprzednim etapie, członkowie 
zespołu i udziałowcy opracowują
możliwie szczegółową listę
pożądanych cech systemu. 
W procesie tym mogą zostać
wykorzystane już istniejące 
dokumenty, na przykład 
specyfikacje przypadków użycia.

background image

FDD – faza III

sformowania zespołu planującego

określenia kolejności implementacji

przypisania zbioru cech głównym programistom

przypisania klas do programistów

Planowanie 

na 

podstawie 

funkcjonal-

ności

Określenie 

listy 

funkcjonal-

ności

Opracowanie 

ogólnego 

modelu

Wykonywanie 

oparciu o

funkcjonal-

ności

Projektowanie 

na 

podstawie 

funkcjonal-

ności

background image

FDD – faza IV

sformowania zespołu programistów pod kierunkiem 
Głównego Programisty.

opcjonalnego przeglądu dziedziny problemu i studiowania 
dokumentów referencyjnych

stworzenia diagramów sekwencji 

uszczegółowienia modelu obiektowego

zapisania nagłówków klas i metod

inspekcji projektu

Planowanie 

na 

podstawie 

funkcjonal-

ności

Określenie 

listy 

funkcjonal-

ności

Opracowanie 

ogólnego 

modelu

Wykonywanie 

oparciu o

funkcjonal-

ności

Projektowanie 

na 

podstawie 

funkcjonal-

ności

background image

FDD - faza V

implementacja kodu klas

przeprowadzenia inspekcji kodu

testowania jednostkowego

integracji nowego kodu z produktem

Planowanie 

na 

podstawie 

funkcjonal-

ności

Określenie 

listy 

funkcjonal-

ności

Opracowanie 

ogólnego 

modelu

Wykonywanie 

oparciu o

funkcjonal-

ności

Projektowanie 

na 

podstawie 

funkcjonal-

ności

background image

Projektowanie i wytwarzanie

Szef programistów wybiera małą grupę cech, które 

powinny zostać wytworzone w przeciągu następnych dwóch, 
trzech tygodni, a następnie identyfikuje klasy związane z 
tymi cechami oraz osoby, które będą nad tymi klasami 
pracowały. 

Zespół, przydzielony do zrealizowania wybranych cech, 

określa szczegółowe diagramy sekwencji dla każdej cechy. 
Następnie osoby odpowiedzialne za dane klasy tworzą je i 
opisują ich metody. 

Zanim nastąpi ostatni etap – wytwarzanie, zespół

dokonuje inspekcji projektu. W fazie wytwarzania osoba 
odpowiedzialna za klasę tworzy jej kod, opracowuje testy 
pakietów i integruje klasę z pozostałymi elementami 
systemu. Kierownik zespołu podejmuje decyzję, czy można 
dane cechy dodać do głównej wersji aplikacji.

background image

METODOLOGIE 

ZWINNE

SCRUM - Taktyka Młyna

background image

Źródło:

Ken Shwaber „Sprawne zarządzanie projektami metodą SCRUM”

Tytuł oryginału:

„Agile Project Management with SCRUM”

http://www.agilealliance.org

background image

Trochę historii

…początek lat 90-tych

Twórcy: Ken Schwaber Jeff Southerland

Cel: pomoc organizacjom zmagającym się ze 

skomplikowanymi projektami 

programistycznymi

...

ukierunkowuje organizację na tworzenie 

produktów, które mają szansę odnieść sukces na 

rynku. Bez poważnych zmian, często w przeciągu 

trzydziestu dni, zespoły są w stanie stworzyć

użyteczny i gotów do zademonstrowania fragment 

produktu. SCRUM może zostać zaimplementowany 

na początku projektu lub nawet już w trakcie jego 

realizacji.

background image

SCRUM

„Najbardziej wprowadzający w 

zakłopotanie i paradoksalny 
proces do zarządzania 
skomplikowanymi projektami”

Ken Shwaber

background image

SCRUM jest ...

... zbiorem wzajemnie powiązanych praktyk i zasad, które 
optymalizują środowisko produkcyjne, redukują nadmierną
biurokrację w organizacji i synchronizują wymagania rynku z 
iteracyjnymi prototypami. 

Bazując na nowoczesnych teoriach związanych z kontrolą
procesów
, SCRUM sprawia, że oprogramowanie może zostać
skonstruowane w oparciu o dostępne zasoby, mieć
akceptowalną jakość, a projekt nie przekroczy terminu dostawy. 

Co trzydzieści dni, nawet jeśli wykorzystywana jest nie 
do końca opanowana technologia, klientowi jest 
dostarczana jakaś funkcjonalność, która jest dla niego 
użyteczna 
(

What is SCRUM: http://www.controlchaos.com/

)

background image

Kiedy stosować ?

Skomplikowane projekty – kiedy 
nie można przewidzieć wszystkiego 
co może się przydarzyć lub nawet 
nie można ich szczegółowo opisać w 
momencie powstawania

Klienci nie do końca wiedzą
czego potrzebują

Często zmieniające się
wymagania

background image

Co oferuje ?

Oferuje szkielet oraz zestaw zachowań
które utrzymują wszystko na widoku

Wszystko odbywa się na zdrowym 
rozsądku 
– brak nakazów typu: „teraz 
zrób to”

Oparty na iteracyjnej, przyrostowej 
strukturze procesu 
-> wybierana jest 
część, która stanowi przyrost 
funkcjonalności

Prowadzenie i monitorowanie 
projektów 
w taki sposób aby dostarczyć
najlepsze rezultaty

background image

Udogodnienia dla klienta

Nabywca (klient) dostaje po 
kawałku 
(zamkniętą
funkcjonalność) swój produkt 
wczesne wdrażanie poszczególnych 
kawałków

Nabywca może powiedzieć co 
chce aby było zrobione w 
pierwszej kolejności

background image

SCRUM - charakterystyka

Istotą metody Scrum jest adaptacyjny, 
samoorganizujący się proces 
wytwarzania 
oprogramowania.

Zakłada ewolucyjny styl tworzenia oprogramowania.

Koncentrując się na zadaniach zarządzania pozostawia 
wolny wybór w wyborze technik prowadzenia prac 
programistycznych.

Ewolucyjny styl to generalnie iteracja, a pojedynczy 
cykl to w istocie podprojekt kaskadowy składający się z 
opracowania wymagań, analizy, projektowania, kodowania 
i wdrożenia trwający nie dłużej niż 30 dni.

background image

SCRUM - zarządzanie

Rozpoczęcie prac związane jest ze 
Spotkaniem Planowania Cyklu 
(Sprint 
planning meeting),

Zakończenie prac z nieformalnym 
Spotkaniem Przeglądowym (Scrum 
Review meeting). 

Są również Codzienne Spotkania Zespołu 
projektantów i programistów (Daily 
Scrum meeting).

background image

SCRUM - kontrola

Scrum przewiduje częste działania zarządcze
skupiające się na identyfikowaniu problemów i 
przeszkód w pracach inżynieryjnych

Bieżąca samokontrola całego zespołu
codzienne spotkania, (Daily scrum meeting) 15 
minut,

1.

Co robiłem wczoraj?

2.

Co będę robił dzisiaj?

3.

Co mi przeszkadza w pracy?

W trakcie spotkania omawiane są problemy oraz 
planowane są posunięcia z nich wynikające.

background image

SCRUM – planowanie cyklu

Spotkanie poprzedzające rozpoczęcie 
cyklu – organizacja działań.

Zdejmowanie cech z rejestru zadań.

Stworzenie rejestru zadań przebiegu.

Obejmuje wszystkich członków zespołu 
(prosiaki i kurczaki). 

Chicken określają cel przebiegu.

Pig uściślają rejestr zgodnie z określonym 
celem.

background image

SCRUM - dokumentacja

Rejestr zadań

(Product backlog)

Historyjki klienta (User stories)

Must be

Should be

Nice to have

Rejestr zadań przebiegu

(Sprint 

product backlog)

Wykres spalania

(Burn down) – wykres 

pracochłonności

background image

SCRUM – tworzenie 
rejestru przebiegu

rozbicie życzeń klienta, na elementarne czynności 
techniczne, konieczne do realizacji analizowanego celu

oszacowanie każdej czynności technicznej na koszt roboto-
godziny  potrzebnej do zrealizowania funkcjonalności

przyporządkowanie odpowiednich czynności do realizacji 
osobom najbardziej kompetentnym do jej wykonania, co 
ustala sam zespół, nie kierownik,

zsumowanie wszystkich roboto-godzin z wszystkich 
wybranych czynności i sprawdzeniu czy łączna ich liczba 
przekracza, czy nie zapełnia godzin jednego pełnego 
cyklu,

dopełnienie lub ujecie wybranych czynności, aby możliwie 
jak najdokładniej zmieścić się czasowo w przebiegu 
jednego cyklu, czyli 30 dni.

background image

SCRUM –

(Rejestr zadań

przebiegu) pregame

obejmuje czynności planowania i opracowania zarysu 
architektury systemu.

W trakcie tej fazy wszystkie znane wymagania są
spisywane i opracowywana jest lista wymagań (Product 
backlog
). 

Źródłem wymagań są przede wszystkim użytkownicy, ale 
również dział marketingu i sprzedaży, dział obsługi klienta 
oraz sam zespół projektantów-programistów. 

Wymaganiom zestawionym na liście przypisywane są
priorytety.

Na podstawie listy opracowywana jest architektura 
systemu.

Finalnie, w ramach oddzielnego spotkania, tworzony jest 
podzbiór listy wymagań. 

Ustalany jest cel przebiegu.

background image

SCRUM – faza produkcji

(Product backlog). Lista ta jest otwarta, a zadania do 
realizacji dopisywane są do niej w trakcie całego 
procesu tworzenia oprogramowania.

(sprint backlog list). Zawarte tam wymagania są
realizowane w ramach aktualnej iteracji

Rozpatrywane są zmiany w architekturze systemu 
wynikłe z wprowadzenia nowych wymagań.

Kontrola procesu wytwórczego estymacją wykresu 
pracochłonności

background image

SCRUM - pracochłonność

Proces estymacji pracochłonności 
polega na gromadzeniu informacji 
statystycznych 
o przebiegu projektu i 
wyznaczaniu kosztu prac na ich 
podstawie. 

Każdego dnia aktualizowana jest 
pozostała do realizacji liczba 
robotogodzin

Aproksymacja pokazuje 
przybliżony termin zakończenia 
przebiegu w odniesieniu do 
osiągniętego tempa prac

Na jego podstawie aktualizuje się
rejestr przebiegu.

background image

Role uczestników projektu

ScrumMaster

Właściciel produktu

Zespół

Users

Klient

Managers

Rola Chicken określają cel przebiegu.

Rola Pig uściślają rejestr zgodnie z 

określonym celem

Inne osoby

background image

ScrumMaster

ScrumMaster – jest liderem, a nie 

kierownikiem

Odpowiedzialny za:

Przywództwo

Prowadzenie

Dostarczanie wskazówek

Uczy zespół metodyki SCRUM

Pomoc właścicielowi produktu w wyborze 

najbardziej wartościowych zaległości 

produktowych

SPRAWIA ŻEBY SCRUM DZIAŁAŁO

background image

ScrumMaster cd.

Usuwanie barier pomiędzy projektantami, a 
właścicielem produktu tak aby właściciel produktu 
bezpośrednio kierował rozwojem projektu

Uczenie właściciela produktu maksymalizacji zwrotów 
kosztów i spełniania swoich celów przy pomocy SCRUM

Poprawa życia zespołu projektującego poprzez 
ułatwienie mu pracy twórczej

Poprawa wydajności zespołu projektowego na 
wszelkie możliwe sposoby

Poprawa praktyk inżynierskich oraz narzędzi tak, by 
każdy przyrost funkcjonalności był możliwy do wydania

Udostępnianie zaktualizowanych informacji 
postępach zespołu wszystkim stronom

background image

Product Owner

Gwarant prac we właściwym 
kierunku

Zajmuje się:

Tworzeniem wymagań użytownika 
(User stories)

Nadawaniem priorytetów dla 
wymagań

Budowaniem rejestru wymagań
(Product Backlog)

background image

Właściciel produktu

Reprezentuje interesy każdej z 
zainteresowanych stron

Odpowiedzialny za:

Zebranie początkowych (ogólnych) 
wymagań

Przypisywanie priorytetów zadaniom 
funkcjonalnym i niefunkcjonalnym

Wybór najbardziej wartościowej 
funkcjonalności (na początku), a 
następnie nadbudowywanie jej

background image

Zespół

Sam organizuje swoją pracę

Zbiorowa odpowiedzialność

Może wybierać zadania do zrealizowania

Może się podzielić na mniejsze zespoły

Najbardziej optymalny to 7 osób

BRAK INTEGRACJI Z ZEWNĄTRZ

background image

Proces Scrum podzielony jest na trzy 
główne etapy:

rozpoczęcie gry (pregame), 

faza produkcji (development 
phase), 

gra na zakończenie 
(postgame).

background image

obejmuje czynności planowania i opracowania 
zarysu architektury systemu 
(Architecture high level design). 

W trakcie tej fazy wszystkie znane wymagania 
są spisywane i opracowywana jest lista 
wymagań (Product backlog list). 

Lista ta jest otwarta, a zadania do realizacji 
dopisywane są do niej w trakcie całego procesu 
tworzenia oprogramowania. 

Faza rozpoczęcia

background image

Źródłem wymagań są przede wszystkim 
użytkownicy, ale również dział marketingu i 
sprzedaży, dział obsługi klienta oraz sam 
zespół projektantów-programistów. 

Wymaganiom zestawionym na liście 
przypisywane są priorytety.

Na podstawie listy opracowywana jest 

architektura systemu. 

Faza rozpoczęcia

background image

Każdorazowo, gdy do listy dopisywane są
nowe wymagania, są one rozpatrywane w 
ramach specjalnego spotkania 
(Design Review Meeting). 

Rozpatrywane są również zmiany w 
architekturze systemu wynikłe 
z wprowadzenia nowych wymagań. 

Faza produkcji

background image

Finalnie, w ramach oddzielnego spotkania, 
tworzony jest podzbiór listy wymagań. 

Zawarte tam wymagania przeznaczone są
do realizacji 
w ramach aktualnej iteracji 
(sprint backlog list). 

Faza zakończenia

background image

Faza zakończenia projektu

rozpoczyna się wraz z ustaleniem pomiędzy 
użytkownikiem a projektantami, 
że wymagania są zrealizowane 
(lista wymagań jest pusta). 

System jest przygotowany do instalacji. 

W tej fazie wykonywana jest ostateczna integracja 
modułów i testowanie, a także przygotowuje się
dokumentację. 

background image

SCRUM – postgame

rozpoczyna się wraz z ustaleniem pomiędzy 
użytkownikiem a projektantami, że wymagania są
zrealizowane (lista wymagań jest pusta). 

System jest przygotowany do instalacji. 

W tej fazie wykonywana jest ostateczna integracja 
modułów i testowanie, a także przygotowuje się
dokumentację. 

Spotkanie podsumowujące (Scrum Review Meeting)

Omawiane są na nim postępy prac oraz 
formułowane są wnioski, nowe wpisy do listy 
wymagań lub postulowane są generalne zmiany w 
architekturze systemu.

background image

Scrum wprowadza interesujące narzędzie zarządcze jest 
nim omawiana już lista wymagań (produkt backlog list). 

Opisuje ona wszystko to, co powinno się znaleźć w 
ostatecznej wersji oprogramowania (wedle aktualnej 
wiedzy). 

W ten sposób lista wymagań opisuje wszystko, co należy 
zrobić w projekcie. 

Lista zwykle zawiera właściwości, funkcje, usterki, 
defekty, żądania rozszerzeń i żądania uaktualnień
technologicznych. 

background image

Do zarządzania listą przeznaczony jest 
pracownik - Zarządca Projektu.

On trzyma pieczę nad dodawaniem nowych 

pozycji do listy, jak 
i usuwaniem pozycji gdy są zrealizowane. 

W pragmatyce rozwoju oprogramowania „open 
source” taka lista nosi nazwę „to do list”. 

background image

Na diagramie przebiegu projektu nie 
przedstawiono jednego istotnego procesu 
biegnącego niezależnie od procesów 
wytwórczych. 

Jest nim estymacja pracochłonności. 

W trakcie całego projektu równolegle 
z pracami projektowymi 
i implementacyjnymi trwa proces oceny 
pracochłonności postulatów zawartych w liście 
wymagań.

background image

W początkowych fazach projektu oceny te są zgrubne, lecz 
w miarę gromadzenia informacji z postępu prac 
implementacyjnych stają się coraz bardziej dokładne. 

Proces estymacji pracochłonności polega na gromadzeniu 
informacji statystycznych 
o przebiegu projektu i wyznaczaniu kosztu prac na ich 
podstawie. 

Estymacja pracochłonności nie bierze pod uwagę dużych 
zmian w architekturze systemu lub użytkowanej 
technologii. 

background image

W przypadku projektu prowadzonego metodą Scrum od początku 
zaleca się by użytkownik wraz z zespołem projektantów spędził
kilkanaście dni nad opracowaniem listy wymagań. 

Muszą się w niej znaleźć zapisy dotyczące zarówno wymagań
biznesowych jak 
i technologicznych. 

Celem nadrzędnym pierwszej iteracji produkcyjnej jest pokazanie 
użytkownikowi jakiegoś fragmentu funkcjonalności systemu 
zaimplementowanego 
w ramach wybranej technologii. 

background image

Należy przewidzieć dużą ilość pracy przy pierwszej 
iteracji, bo dochodzą tu prace nad opracowaniem 
szkieletu systemu, do którego będą dodawane 
funkcjonalności 
w ramach kolejnych iteracji. 

Pierwsza iteracja produkcyjna różni się od kolejnych 
również z tego powodu, że na jej listę wymagań
wpisane są takie zadania jak: zapoznanie się z 
technikami Scrum, organizacje zespołów Scrum, 
rozdział ról 
w projekcie.

Dalsze iteracje są prostsze i szybsze.

background image

Każdy cykl to w istocie podprojekt 
kaskadowy składający się
z opracowania wymagań, analizy, 
projektowania, kodowania 
i wdrożenia trwający nie dłużej niż 30 dni. 

background image

SCRUM - przebieg

background image

Czynności zarządcze w fazie 
produkcji zasadzają się na 
spotkaniach organizacyjnych. 

Rozpoczęcie prac

związane jest ze 

Spotkaniem Planowania Cyklu (Sprint 
planning meeting),

Zakończenie

prac z nieformalnym 

Spotkaniem Przeglądowym (Scrum 
Review meeting). 

Są również

Codzienne Spotkania

Zespołu

projektantów i programistów (Daily 
Scrum meeting). 

background image

Sprinty i spotkania

Rodzaje:

Spotkanie planujące sprint -> 
początek sprintu

Sprint

Codzienny SCRUM

Przegląd sprintu

Retrospektywne spotkanie sprintu

background image

Spotkanie Planowania Cyklu 

(Sprint planning 

meeting) organizowane jest przez zarządcę procesu 
dwukrotnie. 

W pierwszym spotkaniu biorą udział użytkownicy, nabywcy, zarząd i 
zespół projektantów. Ustala się cele i priorytety właśnie 
rozpoczynającej się iteracji. Wymagania wpisuje się we wspomnianą
wyżej listę (Sprint product backlog). 

W drugim spotkaniu biorą udział jedynie wykonawcy i Zarządca Scrum, 
którzy ustalają sposób przeprowadzenia prac przy implementacji 
wymagań.

background image

Codzienne Spotkania Scrum 

(Daily Scrum 

meeting) są krótkie, najwyżej 15 minut, mają na 
celu motywowanie personelu oraz śledzenie 
postępów prac. 

W trakcie spotkania omawiane są problemy oraz 
planowane są posunięcia z nich wynikające. 

W spotkaniach uczestniczy zespół projektantów i 
programistów oraz zarządca Scrum.

background image

Spotkanie podsumowujące

(Scrum 

Review Meeting) odbywa się
w ostatni dzień trwania iteracji produkcyjnej 
(iteracja nie trwa więcej niż 30 dni). 

Omawiane są na nim postępy prac oraz 
formułowane są wnioski, nowe wpisy do listy 
wymagań lub postulowane są generalne 
zmiany 
w architekturze systemu.

background image

Spotkanie planujące sprint 
(max. 8 godzin)

W spotkaniu uczestniczą:

ScrumMaster

Właściciel produktu

Zespół

Dwa etapy:

PIERWSZY

(max. 4 godziny) 

Wybór co zostanie zrealizowane podczas 
sprintu

DRUGI

(max. 4 godziny)

Rozplanowanie szczegółów zadania

background image

Sprint (30 dni)

Początek: spotkanie planujące sprint

Codzienny SCRUM (max. 15 minut)
Cel: synchronizacja prac zespołu

W spotkaniu uczestniczą:

- ScrumMaster
- Zespół

Odpowiedzi na pytania:

Co zrobiłeś w projekcie od ostatniego spotkania ?

Co planujesz zrobić w projekcie między obecną chwilą, a 

kolejnym spotkaniem ?

Jakie przeszkody stoją na drodze realizacji założeń danego 

sprintu oraz tego projektu ?

Koniec: przegląd sprintu

background image

Zaległości sprintu

Zaległości sprintu zmienia zespół

Zadania – przydzielony czas 
wykonania od 4 do 16 godzin

Zadania, które wykraczają poza 
ten czas traktowane są jako 
nieodpowiednio zdefiniowane.

background image

Zaległości produktowe

Lista wymagań projektowych 
ustalonych priorytetach wraz szacowanym 
czasem zamiany każdego jej elementu na 
ukończoną funkcjonalność produktu. 

Szacunki wyraża się w dniach i są tym 
precyzyjniejsze, im wyżej na liście 
priorytetów znajduje się dany element 
zaległości produktowych. 

Lista ta ewoluuje w kierunku zmian 
warunków biznesowych i technologii
.

background image

Zaległości produktowe

Na liście znajdują się:

Wymagania funkcjonalne

Wymagania niefunkcjonalne

…wraz z określeniem priorytetów 
(ustalane według ważności dla 
klienta oraz zależności)

background image

Przegląd sprintu
(max. 4 godziny)

W spotkaniu uczestniczą:

Zespół

ScrumMaster

Właściciel produktu

Ewentualnie udziałowcy

Prezentowanie wykonanych zadań
oraz zastanowienie się co powinno 
być następnie zrealizowane.

background image

Retrospekcja sprintu
(max. 3 godziny)

W spotkaniu uczestniczą:

ScrumMaster

Zespół

Skorygowanie prac zespołu tak 
by kolejny sprint był bardziej 
efektywny i przyjemny

background image

Przebieg SCRUM

background image

Kilka zespołów: 
Projekt skalowalny
.

Pierwszy zespół robi fundament –
przygotowuje infrastrukturę do 
pracy etapowej

background image

Kilka zespołów

Przed przystąpieniem do prac 
nowych zespołów muszą być
ustalone m.in.

Zaległości funkcjonalne i 
niefunkcjonalne

Zasady komunikacji

Zasady przechowywania kodu

itd.

background image

Zespoły w projekcie 
skalowalnym.

Pojedyncze osoby z pierwszego 
zespołu dołączane są do zespołów 
jako eksperci

background image

Projekty skalowalne –
Scrum Scrumów

Dodatkowe spotkanie

W spotkaniu uczestniczą:

ScrumMaster

Pojedyncze osoby z zespołów

Przebieg taki sam jak przy codziennym 

SCRUM

background image

Dokumenty w SCRUM

Zaległości produktowe

Zaległości sprintu

Wykres wypalania

POZIOMO:

-Pozostałe dni

PIONOWO:

- Ile pozostało do wykonania

Używany przy:

- Zaległości sprintu

- Zaległości produktowe

background image

Problemy przy wdrażaniu

Mało informacji np. dla zarządu na 

temat przebiegu aktualnego SCRUM

– Co gdy zarząd wymusza dodatkowe 

raporty

Przykład dodatkowego raportu

background image

Jako typowe źródła 
marnotrawstwa wskazuje:

nieukończoną pracę

Nieukończone oprogramowanie szybko się

dezaktualizuje i z każdym dniem maleje 
prawdopodobieństwo, że kiedykolwiek wejdzie 
ono do przemysłowej eksploatacji. Do czasu 
gdy takie oprogramowanie zostanie 
zintegrowane z resztą systemu, pochłania ono 
zasoby i stwarza ryzyko finansowe. 
Minimalizowanie ilości niedokończonego 
oprogramowania, które z jakichś względów nie 
zostało uruchomione jest zarówno 
ograniczaniem ryzyka jak i redukcją
marnotrawstwa.

background image

... źródła marnotrawstwa:

dodatkowe procesy

Typowym procesem, który nie stanowi wartości dla projektu 

jest tworzenie dokumentacji. Zasadnicze pytania w tym 
przypadku brzmią – czy klient naprawdę uważa 
dokumentację za przydatną i wartościową? Czy jest ona 
nam do czegoś potrzebna? A jeśli odpowiedź na któreś z 
nich jest twierdząca należy pamiętać o tym aby 
generowane dokumenty były krótkie i możliwie ogólne.

Dokumentację na pewno warto tworzyć gdy jest ktoś kto na 

nią czeka, na przykład programiści, którzy oczekują od 
analityka zdefiniowania przypadków użycia. Ale nawet 
wtedy trzeba szukać innych efektywniejszych dróg 
przekazywania informacji – na przykład tworzyć testy 
akceptacyjne zamiast spisywać wymagania. Należy 
również pamiętać o tym aby dokumentować szczegóły 
danej cechy dopiero gdy rozpoczyna się iteracja, w której 
ma być ona implementowana.

background image

... źródła marnotrawstwa:

dodatkowe cechy

Bardzo często wydaje się, że dodanie kilku nowych cech do 

systemu będzie z jakichś względów korzystne. 
Programiści mają tendencje do poszerzania systemu o 
nowe funkcje choćby po to by sprawdzić jak działają. 

Niestety takie działanie musi być uznane za 

marnotrawstwo. Każdy fragment kodu w programie musi 
przecież zostać napisany, zintegrowany, przetestowany, 
a potem musi być utrzymywany. Każdy kawałek kodu 
podnosi złożoność systemu i stanowi potencjalne miejsce 
wystąpienia błędu. 

Z tego punktu widzenia jeśli kod nie jest potrzebny na teraz 

to jego tworzenie jest trwonieniem zasobów. 

background image

... źródła marnotrawstwa:

przełączanie zadań

Obciążanie ludzi pracą nad kilkoma projektami 

jednocześnie jest marnotrawstwem. Za 
każdym razem gdy programista przełącza się
między zadaniami w różnych projektach traci 
pewną ilość czasu na przemyślenie sobie tego 
to co ma do zrobienia i na wejście w rytm 
pracy nad nowym zadaniem.

Najszybszą drogą do ukończenia dwóch 

projektów jest zrealizowanie najpierw 
jednego projektu, a potem drugiego. 
Równoległa praca skutkuje częstym 
przełączaniem się między zadaniami, a tym 
samym powoduje zmarnowanie dużej liczby 
czasu.

background image

... źródła marnotrawstwa:

oczekiwanie

Jednym z głównych źródeł marnotrawienia 

czasu jest oczekiwanie na to aż coś się
wydarzy. Przykładem są tu opóźnienia w 
rozpoczęciu projektu, w tworzeniu 
wymagań czy też w testowaniu. 
Opóźnienia zmniejszają wartość systemu 
dla klienta, a do tego redukują szybkość z 
jaką można zareagować na jego potrzeby.

background image

... źródła marnotrawstwa:

przemieszczanie

Pierwszym problemem jest przemieszczanie się ludzi. Chodzi 

tu o sytuację, w której programista poszukuje odpowiedzi 
na pytanie lub potrzebuje pomocy przy jakimś
technicznym problemie. Jeśli nie jest w stanie uzyskać
jej na miejscu wówczas zmuszony jest do tracenia czasu 
na przemieszczanie się w poszukiwaniu osób które będą w 
stanie mu pomóc – na przykład przedstawicieli klienta. Do 
tego programista traci koncentrację i wybija się z rytmu 
pracy. Jest to poważne źródło marnotrawstwa.

Drugi problem to przemieszczanie rozmaitych artefaktów –

na przykład dokumentacji. Każde jej przekazanie od 
analityka do projektanta, od projektanta do programisty i 
od programisty do testera jest potencjalnym źródłem strat 
- dokumentacja z reguły nie zawiera pełnej wiedzy osoby, 
która ją przekazuje.

background image

... źródła marnotrawstwa:

defekty

Ilość strat powodowanych przez defekty jest 

złożeniem wpływu defektu na system i czasu 
przez jaki defekt pozostawał nie wykryty. 
Sposobem na redukcję strat powodowanych 
przez defekty jest jak najszybsze 
ich wykrywanie. Rozwiązaniem są tu praktyki 
takie jak testowanie utworzonego kodu, 
częste integrowanie i wczesne przekazywanie 
kolejnych wydań systemu do eksploatacji.

background image

METODYKA ZWINNA

ASD (Adaptive Software 

Development)

background image

Adaptive software development

... bazuje na teorii złożonych systemów adaptujących 
się 
(complex adaptive systems – CAS), która została 
wykorzystana przez Briana Arthura i jego kolegów w 
instytucie Santa Fe Institute w celu zrewolucjonizowania 
sposobu rozumienia fizyki, biologii, ewolucji i ekonomii. 

ASD został utworzony przez Jima Highsmitha, który 
zauważył że, pomimo iż proces wytwarzania 
oprogramowania nie jest liniowy, a więc nie ma 
bezpośredniego powiązania pomiędzy przyczyną a 
efektem, to jednak są skomplikowane projekty 
informatyczne, które odnoszą sukces. 

Highsmith stwierdził, że proces tworzenia 
oprogramowania można potraktować zgodnie z 
teorią CAS, a 
wspomniane powiązanie przyczyna-
efekt można z powodzeniem zastąpić pojęciem 
„wyłaniania się” 
(ang. emergence).

background image

Adaptive software development

Nie powinno się planować procesu wytwarzania 
oprogramowania, ale powinien on się „

wyłaniać

na podstawie podejmowanych w ostatniej chwili decyzji 
mówiących, co robić dalej. Podejście to jest zgodne z 
zasadami zawartymi w Agile Manifesto, które mówią, 
że najlepsze architektury, wymagania i projekty powstają
(wyłaniają się) w samoorganizujących się zespołach. 
Samoorganizacja pociąga za sobą właśnie wspomniane 
„wyłanianie się”.

Adaptive life-cycle, czyli adaptujący się cykl życia, wiąże się
ze zmianami w stylu zarządzania, na przykład, kiedy zachodzą
jakieś przemiany w środowisku danego projektu, osoba 
używająca tradycyjnego, deterministycznego procesu będzie 
szukała nowego zbioru zasad pozwalających na zdefiniowanie 
zależności pomiędzy przyczyną a efektem. W przypadku ASD 
osoba taka będzie wiedziała, że zasad takich nie ma.

background image

Fazy w cyklu życia projektu

Adaptive Software 

Devleopment 
wyróżnia 
następujące fazy 
w cyklu życia 
projektu:

Speculate 
(spekulacja)

Collaborate 
(współpraca)

Learn (nauka)

background image

Speculate
(przemyślenie, spekulacja)

Planowanie  w  złożonym  środowisku  to  paradoks. Rezultaty 

są w takiej sytuacji nieprzewidywalne. 

Spekulowanie, podobnie jak planowanie, dotyczy 
definiowania celów, wizji i nakreślenia wymagań dla 
produktu. 

W procesie spekulowania otwarcie przyznajemy, że 
możemy się mylić przy określaniu nawet istotnych 
fragmentów projektu. Kiedy dojdzie do niezrozumienia 
potrzeb użytkownika, gdy zmieni się technologia lub 
konkurencja nas wyprzedzi, prawdopodobieństwo 
popełnienia błędu jest bardzo duże. 

ASD postuluje nakreślenie tylko ogólnej wizji tego, do 
czego powinien zmierzać projekt i umożliwienie 
wykorzystywanym mechanizmom dostosowywania się w 
trakcie trwania projektu do zachodzących zmian. 

background image

Collaborate (współpraca)

ASD nie przewiduje tworzenia planu – nie ma możliwości 
kontrolowania projektu w tradycyjny sposób. Znaczący 
zbiór obecnie stosowanych praktyk zarządczych staje się
bezużyteczny lub – jest użyteczny tylko dla tych 
fragmentów procesu wytwarzania oprogramowania, które 
są przewidywalne. Pojęcie współpracy oznacza utrzymanie 
równowagi pomiędzy zarządzaniem pracą a tworzeniem 
oraz utrzymywaniem środowiska pozwalającego na 
współpracę, które jest konieczne dla „wyłaniania się”. 

Im bardziej skomplikowany staje się projekt, tym bardziej 
szala przechyla się w stronę tego drugiego elementu. Dla 
osoby zarządzającej projektem, która utrzymuje 
wspomnianą równowagę, istotne są dwie rzeczy. 

konieczne jest zdecydowanie, które części projektu są
przewidywalne, 

zapewnienie dla nieprzewidywalnych elementów 
odpowiedniego środowiska, które umożliwi „wyłanianie się
idei”. 

background image

Learn (nauka)

Nauka, 

to 

zgodnie 

definicją

słownikową

osiąganie  doskonałości poprzez  doświadczenie.  W 
środowisku 

adaptującym  się

nauka  dotyczy 

zarówno  zespołu  tworzącego  produkt,  jak  i 
klientów.  Po  zakończeniu  każdego  cyklu  powinni 
oni  zweryfikować pierwotne  założenia  projektowe 
i  wykorzystać

to,  co  zostało  w  tym  cyklu 

wytworzone  do  wyznaczenia  kierunku,  w  jakim 
należy  dążyć podczas  cyklu  następnego.  Cykle 
powinny  być krótkie,  tak  by  zespoły  mogły  uczyć
się

raczej  na małych,  niż na dużych  błędach,  a 

ponadto 

powinny 

również

być

podwójnie 

zapętlone,  aby  umożliwić

naukę

zarówno  o 

zmianach  samego  produktu,  jak  i o zmianach 
założeń

background image

METODYKA ZWINNA

eXtreme Programming

background image

METODOLOGIE 

ZWINNE

XP - Extreme Programming

background image

Programowanie ekstremalne (e

X

treme 

P

rogramming) powstało jako próba 

zaradzenia problemom związanym z 
długimi cyklami dostarczania 
oprogramowania 
i spadkiem zainteresowania inwestora 
zadaniem.

background image

XP charakteryzują: 
ewolucyjne podejście do projektowania i 
programowania oraz ekstremalnie ścisła 
współpraca z odbiorcą. 

Zasadą są ekstremalnie krótkie iteracje w 
dostarczaniu kolejnych wersji 
oprogramowania prowadzące do szybkich 
odpowiedzi użytkownika.

Charakterystyka XP

background image

Przy wytwarzaniu oprogramowania 
stosuje się programowanie 
w parach, ustawiczną przebudowę
(refactoring) kodu źródłowego, 
ustawiczną integrację i testowanie 
połączonych modułów. 

background image

Hasła towarzyszące 
projektowaniu XP

gra w planowanie (planning game), 

szybkie iteracje, 

porozumienie pomiędzy użytkownikiem i 
programistami za pomocą metafor, 

prostota kodu (brzytwa Ockhama), 

ustawiczne testowanie i integracja modułów, 

programowanie w parach, 

kolektywne posiadanie kodu, 

unikanie nadgodzin, 

komunikacja pomiędzy programistami poprzez kod 
źródłowy 

konstrukcja kodu źródłowego wedle zasad 
akceptowanych i przestrzeganych w całym zespole.

background image

Jedna z zasad XP głosi, że nie ma 
uniwersalnej metody prowadzenia 
projektu informatycznego. 

Wobec tego praktyki XP powinny być
przystosowywane do aktualnych 
potrzeb 
i specyfiki projektu. 

background image

W cyklu życia projektu XP wyróżnia się fazy: 

eksploracji, 

planowania, 

iteracji wykonawczych, 

przygotowania do produkcji, 

utrzymania w ruchu, 

zakończenia projektu.

Cykl życia w XP

background image

Projektowanie 

(oraz  programowanie)

ekstremalne

Faza 
eksplorac ji

Faza 
planowania

Iter acje produkcyjne

F

a

za 

p

rz

ygo

tow

a

n

ia 

d

w

d

roż

e

n

ia

F

aza

 z

a

k

o

ń

cz

e

n

ia

F

az

a

 k

o

n

serw

a

cj

i

Programowanie  w parac h

Regularne
uaktualnienia

P

r

io

r

y

te

ty

Testy

Plany
testo wania

Pro jek-
towanie

Analiza

Testo-
wan ie

Informac ja
z wrotna

Cią gła integ racja
modułów

Uaktualnienia
produkcyjne

Uakt ualnienie
system u

Finalna 
wersja 
systemu

O

p

o

w

ie

śc

i”

u

ż

y

tk

o

w

n

ik

a

O

p

o

w

ie

śc

i”

 u

ż

y

tk

o

w

n

ik

a

d

o

 r

e

a

li

za

c

ji

 w

 

b

ie

ż

ą

c

e

ite

r

a

cj

i

Baza kodów 
systemu

O

c

e

n

a

 

p

r

a

co

c

h

ło

n

n

o

śc

i

Ciągły 
przegląd

background image

W fazie eksploracji

zespół projektowy zapoznaje się z tematem prac 
i pozyskuje podstawowe informacje od użytkownika. 

Użytkownik przedstawia sposób użytkowania systemu poprzez 
opowiadania („story”), na podstawie których budowany jest 
zarys architektury systemu oraz budowana jest lista 
funkcjonalności. 

W tym czasie projektanci testują wybraną technologię tworząc 
niezbędne prototypy oraz zapoznają się z używanymi 
narzędziami.

background image

Faza planowania.

Opowiadania przedstawione przez użytkownika 
są analizowane 
i nadawane są im priorytety. 

W porozumieniu z użytkownikiem zestawiana 
jest lista funkcjonalności, które mają być
opracowane. 

Programiści oceniają czas realizacji zadań i 
ustalany jest harmonogram prac i termin 
zakończenia prac.

background image

Składa się z jedno lub kilkutygodniowych mini cykli 
implementujących kolejne właściwości systemu. 

Wykonywane są działania analityczne, projektowe, 
kodowanie i testowanie. 

Na końcu każdego mini cyklu wykonywane są testy 
oprogramowania zaplanowane przez użytkownika.

Faza iteracji wykonawczych

background image

W tej fazie system zawierający uzgodnioną porcję
funkcjonalności jest przygotowywany do wdrożenia. 

Pojawiające się uwagi użytkownika są
implementowane lub przeznaczane do implementacji 
w następnej wersji oprogramowania. 

Wykonywane są dodatkowe gruntowne testy. 

Faza przygotowania produkcji

background image

Użytkownik jest wyposażony w działającą wersję
oprogramowania, która wymaga opieki i nadzoru. 

Zespół projektowy w tym samym czasie wykonuje 
kolejną wersję oprogramowania.

W trakcie pracy z oprogramowaniem odbiorca 

formułuje kolejne postulaty dla zespołu projektowego. 

Faza konserwacji

background image

Wejście fazę produkcji często pociąga za 
sobą zmiany 
w zespołach projektantów i wzrost 
zatrudnienia. 

Wysiłek poświęcany na utrzymanie w 
ruchu wersji produkcyjnej wpływa na 
zmniejszenie prędkości opracowywania 
nowej wersji oprogramowania.

background image

Gdy użytkownik nie jest już zainteresowany dodawaniem 
funkcjonalności do oprogramowania, tempo współpracy z 
użytkownikiem spada, formułowane wnioski o rozszerzenie 
funkcjonalności mają charakter drugorzędny 
i często nie są wdrażane z powodów ekonomicznych.

W tej fazie zespół projektowy podejmuje decyzję
o zakończeniu projektu, blokuje zmiany 
w architekturze systemu i kodzie źródłowym, opracowuje 
dokumentację systemu i projektu, ostateczne wersje instrukcji 
użytkownika oraz instrukcje konserwacji. 

Zakończenie projektu

background image

XP - charakterystyka

Ewolucyjne podejście do projektowania i 
programowania

Praktyka bardzo krótkich cyklów wytwarzania 
oprogramowania zmuszająca do szybkich 
odpowiedzi klienta

Ciągłe zainteresowanie pracami klienta

Ekstremalnie ścisła współpraca z klientem

nie ma uniwersalnej metody prowadzenia projektu 
informatycznego. 

praktyki XP powinny być przystosowywane do 
aktualnych potrzeb i specyfiki projektu. 

background image

eXtreme Programming

Jest  to  bardzo  kontrowersyjny, 
zorientowany 

obiektowo 

model 

procesu tworzenia oprogramowania. 
„Lekki”,  interaktywny  i  przyrostowy 
proces  oparty  jest  na  czterech 
podstawach: 

komunikacji, 

prostocie,  sprzężeniu  zwrotnym  i 
odwadze. 

background image

Extreme Programming

... popiera następujące zwyczaje:

zespół projektowy określa czas, ryzyko i 
porządek realizacji prac; zamawiający określa 
zakres, datę uruchomienia i priorytety, 

projektowanie jest minimalne, gwarantujące 
przejście testów,

programowanie w parach – cały kod jest 
pisany przez pary programistów pracujących 
na jednej stacji roboczej,

testowanie modułów i testy akceptacyjne –
testy są pisane przed kodowaniem,

background image

Zwyczaje Extreme Programming

współdzielenie kodu,

ciągła integracja,

zamawiający jest członkiem zespołu, 
odpowiedzialnym za dostarczenie wiedzy z 
dziedziny obejmowanej przez oprogramowanie i 
testy akceptacyjne,

40-godzinny tydzień pracy, który gwarantuje, że 
zespół jest zawsze czujny i sprawny,

niewielkie poprawki, zawierające użyteczną
funkcjonalność,

standardy kodowania, opracowane i stosowane 
przez zespół.

background image

Podstawowe zasady

1.

Współpraca z klientami

2.

User stories (historie użytkowników).

3.

Krótkie cykle.

1.

Plan iteracji

2.

Plan dostawy

4.

Testy akceptacyjne.

5.

Programowanie w parach.

6.

Programowanie oparte na testach - TDD (Test 
Driven Development).

7.

Wspólna własność (kolektywne kontrolowanie 
kodu).

background image

Podstawowe zasady c.d.

8.

Ciągła integracja.

9.

Czterdziestogodzinny tydzień pracy 
(stała prędkość).

10.

Otwarta przestrzeń robocza.

11.

Plan gry.

12.

Prosty projekt.

13.

Refaktoryzacja

14.

Metafora

background image

XP - praktyki

Programowanie parami

Ciagłe testowanie

Ciągłe planowanie

Ciągłe integrowanie

Refactoring kodu

Utrzymywanie standardu kodowania

Zbiorowa własność kodu

Prostota rozwiązań

background image

XP – etapy powstania wersji

background image

Podsumowanie

Z punktu widzenia kosztów najważniejsze 
elementy XP to –

test driven development

programowanie w parach 

szybkie wdrażanie fragmentów działającego kodu.

Główne zalety XP mówią, że:

Para programistów pracuje z większą szybkością niż
pojedynczy programista.

Ciągłe sprawdzanie kodu zwiększa jego jakość

Kod wytworzony przez parę programistów ma 
zmniejszoną ilość błędów.

background image

METODYKA 

ZWINNA Cristal

background image

Jedna ze „zwinnych” metodologii, nazywana Crystal

Dokumentacja 

wymagań 

systemowych

Planowanie nowej 

wersji

systemu

Harmonogra-

mowanie

Polityka jakości,

Standardy,

Role,

Narzędzia,

Działania

Iteracje

Co 1-4

miesiące

Użytkowa 

wersja systemu

Równoległość i 

przepływ

Monitorowanie 

postępów

(punkty 

kontrolne i 

wersje stabilne)

Opracowanie

i kontrola 

rezultatów

Planowanie nowego 

cyklu 

background image

Metodyka Cristal ma odmiany w zależności od stopnia 

krytyczno

krytyczno

ś

ś

ci

ci

projektu (kategoryzowanego poprzez litery 

C, D, E, L 

– objaśnione dalej) i w zależności od jego 

rozmiaru

rozmiaru

, mierzonego liczbą projektantów 

zaangażowanych w tworzenie projektu.

background image

Kategorie krytyczności projektowanego 
systemu:

C

- Komfortowe (Comfort), 

D

- Zarządzające Finansami

(Discretionary Money), 

E

- Finansowo istotne (Essential Money)

L

- Krytyczne dla Życia (Life Critical)

background image

Na tej podstawie proponowana jest cała 
rodzina metod typu Cristal
Ich mapa podana jest niżej.

L6

E6

D6

C6

L20

E20

D20

C20

L40

E40

D40

C40

L80

E80

D80

C80

Czysta

Żółta

Pomarań-

czowa

Czerwona

Rozmiar 
projektu

Krytyczność

systemu

background image

METODYKA RUP

Rational Unified Process

1998 – pierwsza wersja RUP

background image

Agenda

RUP wprowadzenie

Metodyka RUP’a

Przedstawienie etapów metodyki 
RUP

Przedstawienie procesów metodyki 
RUP

background image

RUP wprowadzenie

Rational Unified Process jest :

Iteracyjną i przyrostowa metodyka

W pełni konfigurowalną platformą do 
obsługi procesu tworzenia 
oprogramowania

background image

Metodyka RUP

Jest oparta na doświadczeniach 
największych firm w branży 
informatycznej

Opiera się na zestawie praktyk: 

iteracyjny rozwój, zarządzanie wymaganiami, 
architektura komponentowa, modelowanie 
wizualne, weryfikacja jakości, zarządzanie zmianami

background image
background image

Cykle

Wytwarzanie oprogramowania 
następuje w cyklach:

Cykl początkowy

Cykle ewolucyjne

Cykl życia oprogramowania : 

Rozpoczęcie (Inception)

Opracowanie (Elaboration)

Konstruowanie (Construction)

Przekazanie (Transition)

background image

Faza Rozpoczęcia (Inception)

Ustalenie zakresu projektu i 
warunków granicznych :

Zakres Projektu

Kryteria sukcesu

Ocenę ryzyka i zasobów (znaną także 
jako studium osiągalności - flexibility 
study)

Określenie kamieni milowych i dat 

background image

Faza Rozpoczęcia c.d.

Wynikiem tej fazy są : 

Dokument wizji (Vision)

Model przypadków użycia (10%-20%)

Początkowy zestaw definicji

Przypadek Biznesowy

Dokument podsumowujący studium osiągalności

Plan projektowy (fazy i iteracje)

Model Biznesowy (o ile wymagany)

Prototyp (-typy)

background image

Faza Opracowania

Szczegółowa analiza problemu

Rozwinięcie planu projektowego 

Minimalizacja ryzyka

Budowa Prototypów

background image

Faza Opracowania c.d.

Wynikiem tej fazy są :

Kompletny model przypadków użycia (min. 80-
90%)

Dodatkowe wymagania

Opis architektury

Prototyp

Końcowy plan projektu

Specyfikacja procesów

Wstępna wersja podręcznika użytkownika 
(opcja)

background image

Faza Konstruowania

Budowa

Rozwój

Integracja

Testowanie

background image

Faza Konstruowania c.d.

Wynikiem tej fazy są :

Produkt zintegrowany z platformą
docelową

Podręcznik użytkownika

Opis bieżącego wydania

background image

Faza Wdrażania

Przekazanie produktu do 
użytkownika 
(-ów) końcowego (-ych) :

Korekta błędów

Wynikiem tej fazy jest działający 
system

background image

Etapy RUP

specyfikacja wymagań (ang. 
requirements capture),

analiza wymagań (ang. 
requirements analysis),

projektowanie (ang. design),

implementacja (ang. 
implementation)

testowanie (ang. test),

konserwacja (ang. deployment).

background image

Fazy

Modelowanie biznesowe

Wymagania

Analiza i projektowanie

Implementacja

Testowanie

Wdrażanie

Konfiguracja i zarządzanie zmianami

Zarządzanie projektem

Określenie środowiska

background image

Modelowanie biznesowe

Analiza struktury i dynamiki 
organizacji

Identyfikacja problemów

Identyfikacja procesów biznesowych

background image

Wymagania

Specyfikują wizję systemu, czyli :

Przypadki użycia

Granice systemu

Koszty i Czas wytworzenia

Interfejs użytkownika

background image

Analiza i Projektowanie

Zamiana wymagań w specyfikację
implementacji systemu :

Ustanowienie stabilnej architektury

Przystosowanie projektu do środowiska 
implementacji

Uwzględnienie własności systemu 

background image

Analiza

Transformacja wymagań do postaci 
zbiorów klas i podsystemów w oparciu o:

Przypadki użycia

Wymagania funkcjonalne

Wynikiem jest „idealny” system bez 
uwzględnienia ograniczeń środowiska 
implementacji i wymagań
niefunkcjonalnych

background image

Projektowanie

Przystosowanie wyników analizy do 
wymagań niefunkcjonalnych i 
ograniczeń środowiska 
implementacji

Optymalizacja systemu

Pełne uwzględnienie funkcjonalności

background image

Artefakty

Główne artefakty fazy Analizy i 
Projektowania :

Model Projektowy

Model Analityczny

Interfejsy

background image

Implementacja

Wytworzenie działającej aplikacji na 
podstawie modelu z fazy 
projektowania.

background image

Testy

Sprawdzenie zgodności z 
wymaganiami

Sprawdzenie stabilności działania 
aplikacji

„Wyłapanie” błędów

background image

Wdrożenie

Wytworzenie i dostarczenie 
oprogramowania do użytkowników 
końcowych

background image

Konfiguracja i zarządzanie zmianami

Opis procesu kontroli artefaktów 
wytworzonych przez zespół
projektowy

Występujące problemy :

Symultaniczne uaktualnienia

Limitowane zawiadomienia

Duża ilość wersji

background image

Zarządzanie projektem

Główne cele :

Dostarczenie wskazówek 
wspomagających planowanie prac

Organizowanie zespołów

Dostarczenie szablonów

W RUP nie ma pełnego przykrycia 
procesu zarządzania

background image

Określenie środowiska

Wybór i dostarczenie narzędzi

Określenie środowiska 
systemowego

background image

Nowoczesne

metodyki prowadzenia 

projektu informatycznego różnią się od 
tradycyjnych metod generalną ideą. 

Podczas gry tradycyjne metody prowadzenia 
projektu w zamyśle sprzedają produkt -
oprogramowanie, nowe techniki zarządzania 
sprzedają usługę – opracowanie 
oprogramowania.

Posumowanie metodyk 
zwinnych

background image

Generalne własności:

Wszystkie opisywane techniki zakładają ścisłą
współpracę z użytkownikiem czy odbiorcą. Właściwie 
postuluje się włączenie użytkownika w proces 
projektowania oprogramowania (eXtreme Programming).

Sprzedawana jest usługa tworzenia oprogramowania 
a nie gotowy produkt -oprogramowanie, tak więc 
użytkownik jest tym, kto podejmuje decyzje co i w jakiej 
kolejności będzie w projekcie wykonywane. 

Istotną wagę przywiązuje się do poprawnego szacowania 
kosztów prac, tak by inwestor/użytkownik mógł
świadomie planować swe wydatki na rozwój 
oprogramowania. 

background image

Własności – ciąg dalszy

Zobowiązuje się wytwórcę oprogramowania do tego, że

każdym swym działaniem powinien udowadniać

inwestorowi efektywne wykorzystanie czasu 

i powierzonych mu środków.

Sprzedając usługę programowania rezygnuje się

z zysków z ponownego użycia kodu i modeli 

analitycznych, bo prace odniesione są do 

niepowtarzalnego projektu. Przy takim założeniu rozległa 

dokumentacja projektowa staje się zbędnym kosztem 

obciążającym użytkownika i unika się jej. 

Uproszczenia dokumentacyjne wymuszają specyficzny 

sposób porozumiewania się z użytkownikiem. W trakcie 

tworzenia oprogramowania często (na bieżąco) zadaje 

się mu pytania i prośby o potwierdzenie dotyczące 

niewielkiego zakresu funkcjonalności. Stąd wynikają

inkrementalny sposób dostarczania oprogramowania 

oraz krótkie iteracje implementacyjne (XP, Scrum).

background image

Własności - koniec

Nie specyfikuje się formalnych punktów 

kontrolnych w projekcie - nie są one potrzebne, 

gdyż zakończenie każdej iteracji jest punktem 

kontrolnym samym w sobie. Z drugiej strony 

wprowadzenie sformalizowanych punktów 

kontrolnych nie we wszystkich technikach jest 

możliwe. 

Sekwencyjna realizacja wymagań użytkownika 

powoduje częste zmiany w architekturze 

systemu i konieczność przebudowy kodu. 

W nowych metodykach zadanie przebudowy 

kodu postrzega się nie jako wyjątek, lecz jako 

regułę.

background image

Rozwój metodyki  
projektowania SI w kierunku 
metod „zwinnych”

Process Scrum
(Schwaber, 1995,

Schwaber i
Beedle, 2001)

Metodologia projektowania
systemów zmiennych w 
czasie 
(DSDM, 1995)

Metodologie Crystal
Cockburn, 1998;2001)

Programowanie ekstremalne
(XP) (Beck, 1999)

Szybkie programowanie Internetowe
(Cusumano and Yoffie, 1999;
Baskerville et al., 2001;
Baskerville and Pries-Heje, 2001)

Programowanie 
Pragmatyczne (PP)
(Hunt and Thomas,
2000)

Adaptacyjny rozwój 
oprogramowania (ASD) 
(Highsmith, 2000)

Projektowanie zorientowane
na właściwości (FDD) 
(Palmer and Felsing. 2002)

Modelowanie Agile (AM)
(Ambler, 2002)

Ametodologiczny rozwój
oprogramowania
(Baskerville, 1992;
Truex and al., 2001)

Ruch Open 
Source (OSS)

Projektowanie systemów 
informacyjnych 
w nowo powstajacych 
organizacjach 
(Truex et al., 1999)

Podejście “Synch-and-stabilize”
(Microsoft)
(Cusumano and Selby, 1995;
1997)

Technologie
 internetowe

Model spiralny
(Boehm, 1986)

Gra w opracowanie 
nowego produktu
(Takeuchi and Noraka, 1986

Proces RUP 
(Rational Unified Process)
Kruchten, 2000)

Manifest agile
(Beck et. Al., 2001

Język UML

Opracowywanie oprogramowania
metodą “RADical” (Bayer
and Highsmith, 1994)

Metody RAD 
(Rapid application
development )
(e.g., Martic, 1991)

Podejścia obiektowe

Ewolucyjne cykle życia
(Gilb, 1988)

Prototypowanie
(e.g. Lantz, 1986)

2000

1999

`

background image

Skala dojrzałości modeli 
tworzenia SI pokazuje, że 
metody „zwinne” można 
stosować głównie dla niezbyt 
dużych systemów

Działania 

ad-hoc

(bez planu)

XP

Modele z 

punktami 

kontrolnymi 

sterowane 

ryzykiem 

Sztywne 

działania

kontraktowe

Adaptacyjny

rozwój 

oprogramowania

Metody agile

Standard modelu dojrzałości procesu tworzenia 

oprogramowania (Standard CMM)

Modele z 

punktami 

kontrolnymi 

sterowane 

planem 

background image

PROJEKTOWANIE Z 

UŻYCIEM 

WIELOKROTNYM

background image

Spostrzeżenia…

większości 

dyscyplin 

inżynieryjnych 

proces  projektowania  jest  oparty  na  użyciu 

wielokrotnym komponentów.

Podstawą projektów  są komponenty,  które 

wypróbowano  i  przetestowano  w  innych 

systemach.

Obecnie  powszechnie  uważa  się,  że  w 

wypadku 

tworzenia 

oprogramowania 

potrzebne 

jest 

podobne 

podejście. 

Oprogramowanie  powinno  być uważane  za 

składnik  majątku.  Użycie  wielokrotne  tego 

składnika 

majątku 

jest 

zasadniczym 

warunkiem  zwiększenia  stopy  zwrotu  z 

inwestycji w jego tworzenie. 

background image

Projektowanie z użyciem 
wielokrotnym - problem

Jak w procesie 
projektowania systemu 
oprogramowania można 
ponownie wykorzystać
istniejące 
oprogramowanie?

background image

Cele 

Znać

korzyści 

wynikające 

użycia 

wielokrotnego  komponentów  programowych 

oraz  związane  z  nim  kłopoty,  które  możesz 

napotkać;

Znać

różne  rodzaje  komponentów,  które 

można  użyć

wielokrotnie,  oraz  procesy 

projektowania z użyciem wielokrotnym;

Rozumieć

pojęcie 

rodziny 

programów 

użytkowych 

wiedzieć, 

dlaczego 

takie 

rodziny  są

efektywnym  sposobem  użycia 

wielokrotnego oprogramowania;

Wiedzieć,  dlaczego  wzorce  są abstrakcjami 

wysokiego  poziomu,  które  sprzyjają użyciu 

wielokrotnemu 

projektów 

tworzeniu 

obiektowym.

background image

Projektowanie z użyciem wielokrotnym 
polega na:

Tworzeniu i stosowaniu komponentów

Użyciu rodziny programów użytkowych

Stosowaniu wzorców projektowych

background image

Używane wielokrotnie elementy 
oprogramowania

Użycie wielokrotne systemów programów użytkowych.

Można  ponownie  użyć

cały  system  programów 

użytkowych  przez  włączenie  go  w  niezmienionej 
postaci  do  innych  systemów  albo  budowę rodziny 
programów  użytkowych  działających  na  różnych 
platformach 

lub 

dostosowanych 

do 

potrzeb 

konkretnych użytkowników.

Użycie wielokrotne komponentów.

Można  wielokrotnie  używać komponentów  programu 
użytkowego 

mających 

różne 

rozmiary, 

od  

podsystemów do pojedynczych obiektów.

Użycie wielokrotne funkcji.

Można  wielokrotnie  użyć komponenty  programowe, 
takie jak pojedyncze funkcje matematyczne.

background image

Wymagania stawiane projektowaniu i 
budowaniu oprogramowania z użyciem 
wielokrotnym

Musi 

istnieć

możliwość

znalezienia 

odpowiedniego 

komponentu 

użycia 

wielokrotnego.

Osoba  ponownie  używająca  komponent  musi  być
przekonana,  że  będzie  on  działał zgodnie  ze 
specyfikacją i będzie niezawodny.

Komponenty  muszą mieć dokumentację,  która 
pomoże  osobie  pragnącej  je  wykorzystać

zrozumieniu  ich  i  zaadaptowaniu  do  nowych 
zastosowań.

background image

Praktyka 

Użycie 

wielokrotne 

systemów

programów 

użytkowych  praktykuje  się już od  wielu  lat  –
firmy  budujące  oprogramowanie  implementują
swoje 

systemy 

na 

wielu 

maszynach 

dostosowują je do rozmaitych środowisk.

Użycie  wielokrotne  funkcji

również jest  uznane  i 

występuje  w  postaci  standardowych  bibliotek 
funkcji użycia wielokrotnego, takich jak biblioteki 
matematyczne i graficzne. 

background image

Zalety użycia wielokrotnego

Zwiększona niezawodność

Zmniejszone zagrożenie procesu

Efektywne wykorzystanie 
specjalistów

Zgodność ze standardami

Przyspieszone tworzenie aplikacji

background image

Koszty i kłopoty

Zwiększone koszty pielęgnacji

Brak wspomagania narzędziowego

Syndrom „nie wymyślono tutaj”

Prowadzenie biblioteki 
komponentów

Znajdowanie i adaptowanie 
komponentów użycia wielokrotnego

background image

Formy projektowania z użyciem 
wielokrotnym

Generatory komponentów

Zręby programów użytkowych -
użycie wielokrotne produktów 
COTS-rodziny programów 
użytkowych

Wzorce projektowe

background image

Generowanie  programów z użyciem 
wielokrotnym

Polega 

ono 

na 

umieszczaniu 

wielokrotnie 

używanej 

wiedzy 

systemie 

generowania 

programów,  który  może  posługiwać się językiem 
specyficznym dla dziedziny zastosowania.

W  opisie  programu  użytkowego  w  abstrakcyjny 
sposób  określa  się,  które  komponenty  użycia 
wielokrotnego  maja  być wykorzystane,  jak  maja 
być połączone i jakie maja mieć parametry.

Na podstawie tej informacji można wygenerować
działający system oprogramowania.

background image

Użycie wielokrotne oparte na 
generatorze

Generator programów

Generator programów

Wygenerowany program

Wygenerowany program

Wiedza o dziedzinie

zastosowania

Wiedza o dziedzinie

zastosowania

Baza danych

Baza danych

Opis programu

użytkowego

background image

Typy generatorów programów

Generatory programów użytkowych do 
przetwarzania danych gospodarczych.

Generatory analizatorów składniowych 
do przetwarzania języków.

Generatory kodu w narzędziach CASE.

background image

Tworzenie komponentowe

Tworzenie  komponentowe  albo  komponentowa  inżynieria 
oprogramowania  pojawiła  się

we  wczesnych  latach 

dziewięćdziesiątych  XX  wieku  w  postaci  podejścia  do 
budowania 

systemów 

oprogramowania 

użyciem 

wielokrotnym.

Przyczyną

jej  powstania  był

zawód,  że  tworzenie 

obiektowe  nie  doprowadziło  do  szerokiego  stosowania 
użycia wielokrotnego, jak się wcześniej spodziewano.

Poszczególne  klasy  obiektów  były  zbyt  szczegółowe  i 
specyficzne.

Musiały być dowiązane do programu użytkowego w czasie 
kompilacji lub konsolidacji systemu.

background image

Tworzenie komponentowe

Do ich wykorzystania była potrzebna szczegółowa wiedza, 
co  zwykle  oznaczało  konieczność udostępnienia  kodu 
źródłowego.

Powodowało 

to 

trudne 

problemy 

ze 

sprzedażą

komponentów na rynku.

Wbrew 

wczesnym 

optymistycznym 

przewidywaniom 

nigdy nie powstał znaczący rynek pojedynczych obiektów.

background image

Komponenty 

Postrzeganie  komponentu  jako  dostawcy  usług 
dotyczy 

dwóch 

istotnych 

charakterystyk 

komponentu użycia wielokrotnego:

Komponent  jest  niezależnym  wykonywalnym 
bytem.  Kod  źródłowy  nie  jest  dostępny,  a 
zatem  komponentu  nie  kompiluje  się z  innymi 
komponentami systemu.

Komponenty 

publikują

swój 

interfejs. 

Wszystkie  interakcje  odbywają się przez  ten 
interfejs. 

Interfejs 

komponentu 

jest 

zapisywany 

kategoriach 

parametryzowanych 

operacji. 

Jego 

wewnętrzny stan nigdy nie jest ujawniany.

background image

Interfejsy komponentu

Komponent

Interfejs wymagany                                              Interfejs oferowany

background image

Interfejsy komponentów

Interfejs oferowany

Definiuje  się

usługi  oferowane 

przez ten komponent.

Interfejs wymagany

Określa  się,  jakie  usługi  muszą
być

dostępne 

systemie 

używającym  tego  komponentu. 
Jeśli  nie  są one  oferowane,  to 
komponent nie będzie działał.

background image

Komponent usług drukarskich

Komponent usług

drukarskich

PodajPlikOpisu

Interfejsdrukarki

Drukuj 

PodajStanKolejki

Usuń

Przekaż

Rejestruj 

Wyrejestruj 

Interfejs wymagany                                              Interfejs oferowany

background image

Poziomy abstrakcji komponentów

Abstrakcja funkcyjna.

Komponent jest implementacją jednej funkcji, np. 
matematycznej.

Przypadkowe grupowanie.

Komponent jest grupą luźno powiązanych bytów.

Abstrakcja danych

Komponent jest abstrakcją danych lub klasą obiektowego 
języka programowania.

Abstrakcja grupowa.

Komponent jest grupą powiązanych klas, które działają
razem.

Abstrakcja systemowa.

Komponent jest całym samodzielnym systemem.

background image

Tworzenie komponentowe

Tworzenie  komponentowe  można  zintegrować z 
procesem  budowania  systemu  przez  dodanie 
specyficznych  czynności  związanych  z  użyciem 
wielokrotnym.

Projektant  systemu  buduje  projekt  na  wysokim 
poziomie 

abstrakcji 

specyfikuje 

jego 

komponenty.

Te 

specyfikacje 

służą

do 

poszukiwania 

komponentów użycia wielokrotnego.

Czynność

można 

dodać

na 

poziomie 

architektonicznym  lub  na  poziomie  bardziej 
szczegółowym.

background image

Przykładowy proces ponownego 
użycia komponentów

Wyspecyfikuj

komponenty

Wyspecyfikuj

komponenty

Zaprojektuj 

architekturę

systemu

Zaprojektuj 

architekturę

systemu

Poszukaj 

komponentów

użycia

wielokrotnego

Poszukaj 

komponentów

użycia

wielokrotnego

Przyłącz

znalezione

komponenty

Przyłącz

znalezione

komponenty

background image

Przykładowy proces ponownego 
użycia komponentów

Projektowanie

architektoniczne

Projektowanie

architektoniczne

Poszukaj

komponentów użycia

wielokrotnego

Poszukaj

komponentów użycia

wielokrotnego

Zaprojektuj system

korzystając

z komponentów

użycia wielokrotnego

Zaprojektuj system

korzystając

z komponentów

użycia wielokrotnego

Naszkicuj

wymagania

systemowe

Naszkicuj

wymagania

systemowe

Poszukaj

komponentów użycia

wielokrotnego

Poszukaj

komponentów użycia

wielokrotnego

Na podstawie wyników

poszukiwań zmień

wymagania

Na podstawie wyników

poszukiwań zmień

wymagania

background image

Trudności przy tworzeniu 
komponentowym

Kwestia  pielęgnacji  i  ewolucji.  Kod  źródłowy 
komponentów  jest  zwykle  dostępny.  W  takiej 
sytuacji, 

gdy 

program 

użytkowy 

wymaga 

modyfikacji, 

nie 

ma 

możliwości 

zmiany 

komponentu  mającej  na  celu  odzwierciedlenie 
tych wymagań.

W tej fazie zmiana wymagań tak, by pasowały do 
istniejących 

komponentów, 

nie 

jest 

zwykle 

możliwa,  gdyż

program  użytkowy  już

jest 

wykorzystywany.

Trzeba  więc  dodatkowej  pracy  nad  ponownym 
użyciem  komponentów  i  w  miarę upływu  czasu 
powoduje to zwiększenie kosztów pielęgnacji.

Tworzenie 

komponentowe 

umożliwia 

jednak 

szybsze  dostarczanie  oprogramowania,  firmy 
mogą więc  zaakceptować te  wyższe  koszty  w 
odległej przyszłości.

background image

Zręby programów użytkowych

Zręby  (lub  zręby  programów  użytkowych)  są
projektami  podsystemów  składających  się

kolekcji  klas  abstrakcyjnych  i  klas  konkretnych 
oraz interfejsu między nimi.

Poszczególne 

części 

systemu 

programów 

użytkowych  implementuje  się

przez  dodanie 

komponentów 

opracowanie 

konkretnych 

implementacji klas abstrakcyjnych zrębu.

Zręby rzadko są programami użytkowymi.

background image

Klasy zrębów

Zręby infrastruktury systemów.

Wspomagają

tworzenie 

infrastruktury 

systemów,  takiej  jak  komunikacja,  interfejsy 
użytkownika i kompilatory.

Zręby integracji śródprogramów.

Składają

się

ze 

zbioru 

standardów 

związanych  z  nimi  klas  obiektów,  które 
wspomagają

komunikację

komponentów  i 

wymianę informacji.

Zręby zastosowań przemysłowych.

Dotyczą specyficznych  dziedzin  zastosowań, 
takich jak telekomunikacja lub finanse.

background image

Rozszerzanie zrębów

Rozszerzenie  zrębu  może  polegać
na  dodaniu  konkretnych  klas,  które 
dziedziczą

operacje 

po 

klasach 

abstrakcyjnych zrębu.

Dodatkowo 

można 

zdefiniować

funkcje wywołane zwrotnie.

Są to metody, które wywołuje się w 
odpowiedzi 

na 

zdarzenia 

rozpoznane przez zrąb.

background image

Zrąb Model-Widok-Koordynator

Po  raz  pierwszy  przedstawiono  go  w  latach 
osiemdziesiątych  XX  wieku  jako  podejście  do 
projektowania 

GUI, 

który 

obejmuje 

wiele 

przedstawień obiektów  i  różne  style  interakcji  z 
każdym z tych przedstawień.

Zrąb MVC pomaga w prezentacji danych na różne 
sposoby i odrębne oddziaływanie z każdą z nich.

Gdy 

dane 

modyfikowane 

przez 

jedna 

prezentację, wszystkie inne są aktualizowane.

background image

Zrąb Model-Widok-Koordynator

Stan widoku

Metody widoku

Stan modelu

Metody modelu

Stan koordynatora

Metody koordynatora

Zapytania

i aktualizacje

modelu

Modyfikacje

modelu

Komunikaty o modyfikacji

widoku

background image

Użycie wielokrotne produktów 
COTS („komercyjne z półki”)

Podejście  produktów  COTS  (Commercial-Off-The-Shelf 
– komercyjne  z  półki)  może  być zastosowane  do 
każdego komponentu oferowanego przez zewnętrznego 
dostawcę.

Zwykle  używa  się

go  jednak  tylko  w  wypadku 

produktów będących systemami oprogramowania.

Od wielu lat wielokrotnie używano niektórych rodzajów 
systemów  COTS.  Systemy  baz  danych  są

chyba 

najlepszym tego przykładem.

background image

Problemy z integracją systemów COTS

Brak kontroli nad sterowaniem i efektywnością.

Chociaż

z  opublikowanych  interfejsów  produktu  może 

wynikać,  że  ma  on  wymagane  udogodnienia,  mogą być one 
niewłaściwie zaimplementowane lub mogą działać wolno.

Kłopoty ze współdziałaniem systemów COTS.

Skłonienie  produktów  COTS  do  współpracy  jest  czasem 
trudne,  ponieważ każdy  z  nich  przyjmuje  inne  założenia  o 
tym, jak należy go używać.

Brak panowania nad ewolucją systemu.

Dostawcy  produktów  COTS  podejmują własne  decyzje  o 
zmianach systemu w odpowiedzi na żądania rynku.

background image

Problemy z integracją systemów COTS

Wspomaganie przez dostawców COTS.

Zakres  wspomagania  oferowany  przez  dostawców  COTS 
może  być

rozmaity.  Są

to  systemy  z  półki,  więc 

wspomaganie 

dostawcy 

jest 

szczególnie 

ważne, 

gdy 

pojawiają

się

kłopoty,  ponieważ

programiści  nie  mają

dostępu  do  kodu  źródłowego  i  szczegółowej  dokumentacji 
systemu.

background image

Tworzenie komponentów użycia 
wielokrotnego

Komponenty użycia wielokrotnego są specjalnie 
budowane z istniejących komponentów, które 
ponownie wykorzystano w przypadkowy sposób.

Różne cechy komponentu świadczą o jego zdatności do 
użycia wielokrotnego:

komponent powinien odzwierciedlać stabilną
abstrakcję dziedzinową

komponent musi ukrywać sposób reprezentacji 
swoich danych i oferować operacje umożliwiające 
odczyt i aktualizację jego stanu

komponent powinien być tak niezależny, jak to 
tylko jest możliwe

wszystkie wyjątki powinny być częścią interfejsu 
komponentu.

background image

Problemy 

W  wielu  obecnie  dostępnych  systemach  istnieją duże 
fragmenty 

kodu, 

które 

implementują

abstrakcje 

dziedzinowe,  ale  nie  mogą być wykorzystane  jako 
komponenty.

Przyczyna leży w tym, że nie opakowano ich zgodnie z 
modelem z jasno określonymi interfejsami wymaganym 
i oferowanym.

Uczynienie  z  nich  komponentów  użycia  wielokrotnego 
zwykle wymaga zbudowania osłony.

Osłona  ukrywa  złożoność schowanego  kodu  i  oferuje 
zewnętrzne usługi.

background image

Uzdatnianie komponentów

Między zdatnością do użycia wielokrotnego a użytecznością
komponentu występuje nieuchronny konflikt.

Uzdatnienie  komponentu  do  użycia  wielokrotnego  pociąga 
za  sobą

zaoferowanie  bardzo  ogólnego  interfejsu  z 

operacjami  obsługującymi  rozmaite  sposoby  użycia  tego 
komponentu.

Budowa  użytecznego  komponentu  obejmuje  zaoferowanie 
prostego,  minimalnego  interfejsu,  który  jest  łatwy  do 
zrozumienia.

Zdatność do  użycia  wielokrotnego  zwiększa  złożoność,  a 
zatem zmniejsza zrozumiałość komponentu.

Inżynierom  jest  więc  trudno  zdecydować,  kiedy  i  jak 
wielokrotnie używać komponentu.

Projektanci  komponentów  użycia  wielokrotnego  muszą
zatem  wypracować

kompromis  między  ogólnością

zrozumiałością.

background image

Proces uzdatniania komponentów

Inicjowanie 
komponentu

Generalizacja 

nazw

Generalizacja 

operacji

Generalizacja 

wyjątków

Certyfikacja 

komponentów

Komponent 

uzdatniony

background image

Rodziny programów użytkowych

Rodzina  programów  użytkowych  albo  linia  produktów 
jest  zbiorem  powiązanych  programów  użytkowych, 
które mają wspólną architekturę charakterystyczną dla 
dziedziny.

Poszczególne  programy  użytkowe  są jednak  na  swój 
sposób wyspecjalizowane.

Wspólny  rdzeń rodziny  programów  użytkowych  jest  za 
każdym  razem  ponownie  używany,  gdy  jest  potrzebny 
nowy program użytkowy.

Tworzenie  nowego  programu  może  polegać

na 

napisaniu  dodatkowych  komponentów  i  adaptacji 
niektórych  komponentów  programu  użytkowego  tak, 
aby sprostać nowym oczekiwaniom.

background image

Rodzaje specjalizacji rodziny 
programów użytkowych

Specjalizacja platformowa.

Polega na opracowaniu innych wersji programu 
użytkowego na różne platformy. Różne wersje 
programu mogą działać na przykład na platformy 
Windows NT, Solaris i Linux.

Specjalizacja konfiguracyjna.

Polega na opracowaniu innych wersji programu 
użytkowego do obsługi różnych urządzeń
zewnętrznych.

Specjalizacja funkcjonalna.

Polega na opracowaniu innych wersji programu 
użytkowego dla klientów z różnymi wymaganiami.

background image

Uniwersalny system inwentaryzacji 
zasobów

User

a

ccess

Pr g

access

Baza danych o zasobach

Dostęp użytkownika

Usuwanie 

Dodawanie 

Dostęp programowy

Specyfikacje raportów

Specyfikacje ekranów

Opisy zasobów

Raporty 

Administracja 

Przeglądanie 

Poszukiwanie 

background image

Systemy inwentaryzacyjne

Takie  systemy  muszą

oferować

podstawowe 

udogodnienia,  takie  jak  dodawanie  zasobu  do 
spisu,  usunięcie  zasobu  ze  spisu,  przeglądanie  i 
wyszukiwanie w spisie oraz tworzenie raportów.

Można  więc  tak  zaprojektować

architekturę

systemy inwentaryzacyjnego, aby stał się rodziną
programów  użytkowych,  której  każdy  członek 
służy do obsługi innych rodzajów zasobów.

background image

Architektura

Osiągnięcie 

znaczącej 

zdatności 

do 

użycia 

wielokrotnego 

wymaga 

zaprojektowania 

architektury,  w  której  zasadnicze  udogodnienia 
systemowe  będą

oddzielone  od  szczegółowej 

informacji 

zasobach, 

które 

mają

być

inwentaryzowane  i  od  dostępu  użytkownika  do 
tych informacji.

Architektura  może  spełniać te  wymagania  dzięki 
zastosowaniu  architektury  warstwowej,  w  której 
warstwa  szczegółów  zawiera  opisy  zasobów, 
wyświetlane ekrany i tworzone raporty.

Wyższe  warstwy  systemu  korzystają

z  tych 

opisów  i  nie  obejmują wpisanej  na  sztywno 
informacji 

zasobach. 

Różne 

systemy 

inwentaryzacyjne powstają przez modyfikację tej 
warstwy opisowej.

background image

System biblioteczny

Baza danych o zasobach

Dostęp użytkownika do biblioteki

Przeglądanie

Poszukiwanie

Usuwanie

Dodawanie

Wypożyczenie

Raporty

Administracja

Zwrot

Użytkownicy 

Specyfikacje raportów

Specyfikacje ekranów

Opisy zasobów

background image

System biblioteczny

Można  również

dodawać

do  systemu  nową

funkcjonalność

przez 

wprowadzanie 

nowych 

modułów do warstw systemu.

Dodano  nowe  udogodnienia  do  pożyczania  i 
zwracania 

zasobów 

oraz 

do 

umożliwiania 

rejestracji użytkowników systemu.

W  tym  wypadku  nie  jest  potrzebny  dostęp 
programowy, a najwyższa warstwa systemu musi 
obsługiwać jedynie dostęp do użytkownika.

background image

Tworzenie członka rodziny

Wydobądź

wymagania

uczestników

Wydobądź

wymagania

uczestników

Wybierz najbardziej

odpowiedniego

członka rodziny

Wybierz najbardziej

odpowiedniego

członka rodziny

Zaadaptuj

istniejący system

Zaadaptuj

istniejący system

Dostarcz nowego

członka rodziny

Dostarcz nowego

członka rodziny

Renegocjuj
wymagania

background image

Tworzenie członka rodziny

Określ wymagania uczestników

Wybierz najbardziej odpowiedniego 
członka rodziny

Renegocjuj wymagania

Zaadoptuj istniejący system

Dostarcz nowego członka rodziny

background image

WZORCE 

PROJEKTOWE

background image

Wzorce projektowe

Starając 

się

ponownie 

użyć

komponent 

wykonywalny, 

nie 

uchronimy 

się

przed 

ograniczeniami  wynikającymi  ze  szczegółowych 
decyzji  projektowych,  podjętych  przez  osoby 
implementujące ten komponent.

Jeśli  te  decyzje  projektowe  nie  są zgodne  z 
przyjętymi 

przez 

nas 

szczegółowymi 

wymaganiami,  to  ponowne  użycie  komponentu 
jest  niemożliwe  albo  prowadzi  do  istotnego 
zmniejszenia efektywności systemu.

Jednym ze sposobów  radzenia sobie z ta kwestią
jest  użycie  wielokrotne  bardziej  abstrakcyjnych 
projektów, 

które 

nie 

obejmują

szczegółów 

implementacyjnych.

Obecnie  to  podejście  do  użycia  wielokrotnego 
przybrało postać wzorców projektowych.

background image

Elementy wzorca projektowego

Nazwa Spełniająca funkcję znaczącego odsyłacza 
do wzorca.

Opis rodzaju problemu, w którym opisuje się
części rozwiązania projektowego, ich związki i 
zobowiązania.

Wyjaśnienie konsekwencji zastosowania wzorca, 
tzn. wyników końcowych i niezbędnych 
kompromisów.

background image

Wiele widoków

A

B

C

D

50

25

0

A B C D

Obserwator 1

Obserwator 1

Obserwator 2

Obserwator 2

Przedmiot

A : 40

B : 25
C : 15

D : 20

Przedmiot

A : 40

B : 25
C : 15

D : 20

background image

Przykład wzorca Obserwator

Nazwa.

Oddziela wyświetlanie stanu obiektu od samego 
obiektu.

Opis problemu.

W wielu przypadkach należy udostępnić wiele 
prezentacji pewnej informacji o stanie, np. 
prezentacji tabelarycznej i graficznej.

background image

Przykład wzorca Obserwator

Opis rozwiązania.

Strukturę wzorca pokazano na rysunku. Są tam dwa 
obiekty abstrakcyjne: Przedmiot i Obserwator oraz 
dwa obiekty konkretne: PrzedmiotKonkretny i 
ObserwatorKonkretny, które dziedziczą atrybuty 
swoich obiektów abstrakcyjnych.

Konsekwencje.

Przedmiot zna jedynie abstrakcyjnego Obserwatora, 
ale nie zna szczegółów klasy konkretnej. Wzajemne 
uzależnienie tych obiektów jest więc minimalne. 

background image

Wzorzec Obserwator

Przedmiot

Podłącz (Obserwator)
Odłącz (Obserwator)
Informuj ()

Obserwator

Aktualizuj ()

for all o in obserwatorzy

o -> Aktualizuj ()

for all o in obserwatorzy

o -> Aktualizuj ()

stanObserwatora=

przedmiot -> PodajStan ()

ObserwatorKonkretny

Aktualizuj ()

stanObserwatora

Przedmiot konkretny

PodajStan ()

stanPrzedmiotu

background image

Projektowanie  z  użyciem  wielokrotnym  polega  na 
projektowaniu 

oprogramowania 

zgodnie 

istniejącymi 

przykładami 

dobrych 

projektów 

wykorzystaniu  komponentów  programowych  tam, 
gdzie są potrzebne.

Korzyści  z  użycia  wielokrotnego  to  niższe  koszty, 
szybsze 

tworzenie 

oprogramowania 

mniej 

zagrożeń.  Przez  wykorzystanie  wiedzy  specjalistów 
do  budowania  komponentów  użycia  zwiększa  się
niezawodność systemu, a specjaliści są wydajniejsi.

Główne tezy

background image

Tworząc 

komponentowo, 

polegamy 

na 

komponentach 

„czarnych 

skrzynkach”

jasno 

określonymi interfejsami wymaganym i oferowanym. 
Rodzaje 

komponentów, 

które 

można 

użyć

wielokrotnie,  obejmują funkcje,  abstrakcje  danych, 
zręby i całe systemy programów użytkowych.

Użycie  wielokrotne  produktów  COTS  polega  na 
wykorzystaniu  wielkich  systemów  z  półki.  Takie 
systemy  maja  mnóstwo  funkcjonalności.  Ich  użycie 
wielokrotnie może znacząco zmniejszyć koszty i czas 
tworzenia.

Główne tezy

background image

Główne tezy

Komponenty  programowe,  które  zaprojektowano  z 
myślą

użyciu 

wielokrotnym, 

powinny 

być

niezależne, 

odzwierciedlać

stabilne 

abstrakcje 

dziedzinowe i oferować dostęp do swego stanu przez 
operacje  interfejsu  oraz  nie  obsługiwać samemu 
swoich wyjątków.

Rodziny 

programów 

użytkowych 

zawierają

powiązane programy użytkowe, które zbudowano na 
podstawie co najmniej jednego programu bazowego. 
Uniwersalny 

system 

jest 

adoptowany 

specjalizowany 

tak, 

aby 

spełnił

konkretne 

wymagania  dotyczące  funkcjonalności,  docelowej 
platformy lub konfiguracji działania.

background image

Główne tezy

Wzorce 

projektowe 

to 

abstrakcje 

wysokiego 

poziomu,  będące  dokumentacją udanych  rozwiązań
projektowych.  Są podstawowym  sposobem  użycia 
wielokrotnego  projektów  w  tworzeniu  obiektowym. 
Opis  wzorca  powinien  obejmować nazwę wzorca, 
opis  problemu  i  rozwiązania  oraz  wyjaśnienie 
wyników 

kompromisów 

związanych 

ze 

stosowaniem wzorca.

background image

Czym są wzorce projektowe?

„Wzorzec projektowy pozwala uczyć się na sukcesach innych 

zamiast nauki na własnych błędach”

(Mark Johnson)

Sprawdzone rozwiązania

efektywność

Najlepsze projekty

jakość

Dobre praktyki

skalowalność

background image

Czym są wzorce projektowe?

„Opisem komunikujących się obiektów i klas, które są
specjalnie wykonane, aby rozwiązać ogólny problem przy 
dokładnie określonym kontekście”

(GangOfFour, 1994)

„Powracającym rozwiązaniem zagadnień projektowych, z 
którymi wciąż się spotykamy”

(Alpert, 1994)

„Zbiorem reguł opisujących, w jaki sposób osiągnąć
pewne cele w dziedzinie programowania”

(Pree, 1994)

background image

Czym są wzorce projektowe?

„Każdy wzorzec opisuje problem, który ciągle na nowo 

pojawia się w naszym otoczeniu i opisuje rdzeń jego 
rozwiązania w taki sposób, że można go używać milion 
razy i nigdy w ten sam sposób.”

(Christopher Alexander)

background image

Elementy wzorca

Nazwa wzorca

Odzwierciedla problem, rozwiązanie i konsekwencje 
danego wzorca

Problem

Opisuje zagadnienie i kontekst wystąpienia wzorca

Rozwiązanie

Opisuje elementy tworzące projekt, ich relacje, 
odpowiedzialności oraz współpracę

Konsekwencje

Rezultaty zastosowania wzorca – korzyści i straty

background image

Po co nam wzorce?

Zapobiegają ponownemu wymyślaniu kodu 
zaprojektowanemu już przez kogoś innego

Zmniejszają liczbę popełnionych błędów

Zapewniają kod łatwo rozszerzalny

Ułatwiają zrozumienie kodu

Ułatwiają komunikację w zespole

Nazwa identyfikuje wzorzec

background image

Podział wzorców

Konstrukcyjne

wykorzystuje się je do pozyskania obiektów zamiast bezpośredniego 
tworzenia instancji klasy

programy zyskuj

ą

na elastyczności, gdyż można decydować, jaki typ 

obiektu ma zostać utworzony w danym przypadku

Strukturalne

pomagają łączyć obiekty w większe struktury

Behawioralne

charakteryzują sposób, w jaki klasy lub obiekty oddziaływują i 
dzielą odpowiedzialności

pomagają definiować przepływ danych w złożonym programie

background image

Katalog wzorców

Przeznaczenie

Konstrukcyjne

Strukturalne

Behawioralne

Zakres

Klasa

Metoda wytwórcza

Adapter

Interpreter
Metoda szablonowa

Obiekt

Budowniczy
Fabryka abstrakcyjna
Prototyp
Singleton

Adapter
Most
Kompozyt
Dekorator 
Fasada
Pełnomocnik
Pyłek

Łańcuch zobowiązań
Polecenie
Iterator
Mediator
Pamiątka
Obserwator
Stan
Strategie
Odwiedzający

background image

Sposób omawiania

Nazwa

Przeznaczenie

Co robi? Jakich zagadnień projektowych dotyczy?

Uzasadnienie stosowania

Problem projektowy wraz z rozwiązaniem

Stosowalność

Kiedy wybrać dany wzorzec projektowy?

Struktura (uczestnicy, współpraca)

Omówienie uczestników oraz ich współpracy przy pomocy 
diagramów

Konsekwencje

Co zyskujemy, a co tracimy wybierając dany wzorzec?

Przykłady zastosowania

background image

Dekorator

Przeznaczenie

dynamicznie dołącza do obiektów dodatkowe 
zobowiązania

zapewnia elastyczną alternatywę dla tworzenia podklas 
w celu rozszerzania funkcjonalności

background image

Dekorator

Uzasadnienie stosowania

Czasem chcemy dołączyć pewne zobowiązania do 
pojedynczego obiektu (nie do całej klasy)

Pakiet narzędziowy do tworzenia interfejsów użytkownika 
powinien np. umożliwiać dodanie do każdego składnika 
takich elementów jak ramki, czy paski przewijania

Rozwiązania:

dziedziczenie ramki, dziedziczenie przewijania (statyczne)

zagnieżdżenie obiektów – otoczka = dekorator

background image

Dekorator

Zagnieżdżenie to może być rekurencyjne:

background image

Dekorator

Aby to osiągnąć musimy zbudować strukturę klas:

background image

Dekorator

Stosowalność

aby dynamicznie i w przezroczysty sposób dodawać
zobowiązania do pojedynczych obiektów

w wypadku zobowiązań które mogą być cofnięte

Gdy rozszerzanie przez definiowanie podklas jest 
niepraktyczne (dużo niezależnych rozszerzeń które przy 
próbie  uwzględnienia każdej ich kombinacji prowadzą do 
ogromnej liczby podklas)

background image

Dekorator

Struktura

background image

Dekorator

Uczestnicy

Komponent (KomponentWizualny)

Definiuje interfejs obiektów, do których można dynamicznie 
dołączać zobowiązania

KomponentKonkretny (WidokTekstowy)

Definiuje obiekt, do którego można dołączać zobowiązania

Dekorator

Zarządza odwołaniem do obiektu Komponent i definiuje 
interfejs dopasowany do interfejsu Komponentu

DekoratorKonkretny (DekoratorZRamkami, 
DekoratorZSuwakiem)

Dodaje zobowiązania do komponentu

background image

Dekorator

Współpraca

Dekorator przesyła żądania do swojego obiektu 
Komponent

Może wykonywać dodatkowe operacje przed lub po 
przesłaniu żądania

background image

Dekorator

Konsekwencje

większa elastyczność niż przy stosowaniu statycznego 
dziedziczenia

(dodawanie, usuwanie dekoratorów, podwójna ramka)

unikanie przeładowanych właściwościami klas na szczycie 
hierarchii

„płać za to, czego potrzebujesz”, zamiast uwzględniać wszystkie 
przewidywane własności przy projektowanie klasy zasadniczej

łatwiejsza rozszerzalność (dodanie dekoratora)

Dekorator i jego komponent nie są identyczne (nie można 
polegać na sprawdzaniu identyczności obiektów)

Projekt zawiera wiele małych obiektów różniących się nie 
zachowaniem, a sposobem połączenia

może być trudne w zrozumieniu

background image

Dekorator

Przykłady

Pakiety narzędziowe do tworzenie interfejsów 
użytkownika

Strumienie

Strumień *strumień = new StrumieńKompresujący(

new ASCII7Strumień(
new StrumieńPlikowy(„nazwaPliku”)));

background image

Fasada

Przeznaczenie

zapewnia jednolity interfejs dla podsystemu o wielu 
interfejsach

interfejs wyższego poziomu

background image

Fasada

Uzasadnienie stosowania

Typowym zadaniem projektowym jest sprowadzenie do 
minimum zależności i komunikacji między modułami

Możemy to osiągnąć m.in. przez wprowadzenie fasady, 
która zapewnia interfejs bardziej ogólny zapewniający 
interfejs całego podsystemu

background image

Fasada

Mamy np. środowisko z podsystemem będącym 
kompilatorem. Mamy Parser, Analizator, WęzełProgramu, 

Dla klienta, który pragnie jedynie skompilować kawałek 
programu, nie jest to istotne. Potrzebuje on interfejsu klasy 
Kompilator, będącego fasadą dla podsystemu

background image

Fasada

background image

Fasada

Stosowalność

zapewnienie prostego interfejsu do złożonego systemu

stosowanie wzorców rozbija systemy na bardzo wiele małych 
klas, co powoduje się bardziej nadają się one do wielokrotnego 
użytku oraz są prostsze w rozbudowie

rozrastanie się systemu powoduje natomiast, że klientowi 
trudniej jest go wykorzystać

fasada zapewnia prosty, funkcjonalny interfejs, wystarczająco 
dobry dla większości klientów, który może pozostać stały nawet 
jeśli podsystem wewnątrz uległ zmianie

zwiększa przenośność i niezależność podsystemu

umożliwia układanie systemów warstwami (fasada 
definiuje punkty wejścia do podsystemu)

background image

Fasada

Struktura

background image

Fasada

Uczestnicy

Fasada (Kompilator)

Wie jakie klasy podsystemu są odpowiedzialne, za spełnienie 
żądania

Przekazuje żądania do odpowiednich obiektów systemu

Klasa podsystemu (Parser, Analizator, …)

Implementuje funkcjonalność systemu

Wykonuje pracę przydzieloną przez fasadę

Nie wie nic o fasadzie

background image

Fasada

Współpraca

Klienci komunikują się z podsystemem, wysyłając żądania 
do Fasady, która przekazuje żądania do podsystemu

(może być zmuszona przetłumaczyć swój interfejs na 
interfejsy podsystemu)

Klienci korzystający z fasady nie muszą mieć
bezpośredniego dostępu do obiektów jej podsystemu

background image

Fasada

Konsekwencje

Mniejsza liczba obiektów, z którymi klient ma do 
czynienia

(łatwość użycia)

Mogą eliminować złożone lub cykliczne zależności między 
obiektami systemu

Większa przenośność na inne platformy

(przy jej użyciu jest mniejsze prawdopodobieństwo, że zmiana w 
jednym podsystemie spowoduje konieczność przebudowy 
pozostałych

background image

Pełnomocnik

Przeznaczenie

zapewnia reprezentanta innego obiektu w celu 
sterowania dostępem do obiektu oryginalnego

background image

Pełnomocnik

Uzasadnienie stosowania

Jednym z powodów sterowania dostępem do obiektu jest 
np. chęć odłożenia na później tworzenia/inicjowania tego 
obiektu

np. wielkie obrazy rastowe w dokumencie

Otwieranie dokumentu powinno być szybkie i dopiero 
kiedy obiekty stają się widoczne powinniśmy je 
budować…

Powinno być to przezroczyste dla obiektu dokumentu

Dlatego w miejsce rysunku tworzymy Pełnomocnika, który 
dopiero buduje obraz na żądanie wyświetlenia go

background image

Pełnomocnik

Pełnomocnik przechowując dodatkowo np. rozmiary 
obrazka może spełniać żądania programu formatującego 
bez potrzeby sięgania do egzemplarza rysunku

Aby korzystać z tych udogodnień wystarczy do istniejącej 
struktury klas dodać pełnomocnika:

background image

Pełnomocnik

background image

Pełnomocnik

Stosowalność

zawsze, gdy potrzeba uniwersalnego sposobu odwołania do 
obiektu

(bardziej wyrafinowanego niż zwykły wskaźnik)

np.

Pełnomocnik zdalny

lokalny reprezentant obiektu z innej przestrzeni adresowej

Pełnomocnik wirtualny

tworzy kosztowne obiekty na żądanie (np. 
PełnomocnikRysunku)

Pełnomocnik ochraniający

kontroluje dostęp do obiektu

zapewnia różne prawa dla różnych obiektów

background image

Pełnomocnik

Sprytny wskaźnik

zastępuje zwykły wskaźnik, wykonując dodatkowe akcje 
przy dostępie do obiektu, jak:

zliczanie liczby odwołań do obiektu (usuwanie przy braku 
odwołań)

Ładowanie trwałych obiektów do pamięci przy pierwszym 
odwołaniu

background image

Pełnomocnik

Struktura

background image

Pełnomocnik

Uczestnicy

Pełnomocnik (PełnomocnikRysunku)

Przechowuje odwołanie, umożliwiające mu dostęp do 
prawdziwego obiektu

Zapewnia identyczny interfejs z oryginalnym obiektem (może 
wystąpić wszędzie tam, gdzie oryginał)

Kontroluje dostęp do obiektu

… (cokolwiek)

Przedmiot (ObiektGraficzny)

Definiuje wspólny interfejs dla PrawdziwegoPrzedmiotu i 
Pełnomocnika

PrawdziwyPrzedmiot (Rysunek)

Definiuje dowolny przedmiot

background image

Pełnomocnik

Współpraca

Pełnomocnik jeśli trzeba przekazuje żądania do 
PrawdziwegoPrzedmiotu (w zależności od rodzaju 
pełnomocnika)

background image

Pełnomocnik

Konsekwencje

dodatkowy poziom pośredniości dostępu do obiektu, może:

ukryć fakt, że obiekt jest zdalny

wykonywać optymalizacje jak tworzenie obiektu na 
żądanie

dodatkowe czynności porządkowe

ukrywanie np. kopiowania-przy-zapisywaniu

odłożenie na później kopiowania obiektu – będzie on 
rzeczywiście skopiowany tylko jeśli użytkownika zażąda 
operacji modyfikującej kopię

background image

Pyłek

Przeznaczenie

wykorzystuje współdzielenie obiektów, w celu 
efektywnej obsługi wielkiej liczby drobnych obiektów

background image

Pyłek

Uzasadnienie stosowania

Większość edytorów używa obiektów do przechowywania 
takich elementów jak tabele, rysunki

Na ogół jednak powstrzymują się od stosowania obiektów 
do reprezentacji poszczególnych znaków w dokumencie, 
mimo że przyczyniłoby to się do zwiększenia elastyczności 
(nowe zestawy znaków, jednakowe traktowanie znaków i 
innych obiektów pod względem formatowania i 
wypisywania

Przyczyną tego jest koszt pamięciowy takiego rozwiązania!

Tutaj pojawia się Pyłek

background image

Pyłek

Jest on współdzielonym obiektem, który może być
używany jednocześnie w wielu kontekstach

Działa on jako obiekt niezależny w każdym kontekście

(nie może niczego zakładać o kontekście działania)

Jest nieodróżnialny od egzemplarza obiektu, który nie jest 
współdzielony

Edytor może utworzyć Pyłek dla każdej litery alfabetu

Każdy Pyłek przechowuje wtedy tylko kod znaku, jego 
miejsce i styl typograficzny natomiast są mu dostarczane 
przez algorytmy rozmieszczania i formatowania tekstu

background image

Pyłek

Logiczny punkt widzenia:

1 znak = 1 obiekt

Fizycznie istnieje jednak jeden współdzielony obiekt dla 
każdej litery:

background image

Pyłek

Struktura klas takich obiektów wygląda tak:

Stan zewnętrzny musi być przekazywany jako parametr do 
niektórych operacji (dotyczących wystąpień znaków w 
dokumencie)

background image

Pyłek

Przechowywanie stanu zewnętrznego jest zadaniem 
Klienta, może być ono zaimplementowany w postaci 
BDrzewa:

Węzły wewnętrzne = zakresy indeksów glifów

Liście = style

background image

Pyłek

Stosowalność

System używa wielkiej liczby obiektów

Koszty pamięciowe są wysokie ze względu na samą tylko 
liczbę obiektów

Większość stanu obiektów może być przeniesiona na 
zewnątrz

Po usunięciu stanu zewnętrznego wiele grup obiektów 
można zastąpić stosunkowo niewielką liczbą
współdzielonych obiektów

Tożsamość obiektów nie jest istotna w systemie

background image

Pyłek

Struktura

background image

Pyłek

Uczestnicy

Pyłek (Glif)

Deklaruje interfejs, przez który pyłki mogą otrzymywać stan 
zewnętrzny i działać zgodnie z nim

PyłekKonkretny (Znak)

Implementuje interfejs pyłku i dodaje pamięć do 
przechowywania stanu wewnętrznego

Musi dawać się współdzielić (niezależność od kontekstu w jakim 
występuje)

FabrykaPyłków

Tworzy obiekty klasy Pyłek i zarządza nimi

Zapewnia właściwe współdzielenie pyłków

Klient

Utrzymuje odwołania do pyłków

Przechowuje stan zewnętrzny pyłków

background image

Pyłek

Współpraca

Stan którego pyłek potrzebuje do działania musi być
scharakteryzowany albo jako wewnętrzny albo zewnętrzny. 
Stan zewnętrzny jest dostarczany przez klienta

Klienci nie powinni bezpośrednio tworzyć egzemplarzy 
klasy PyłekKonkretny (otrzymują je z FabrykiPyłków)

background image

Pyłek

Konsekwencje

Zwiększenie czasu wykonywania w związku z 
przesyłaniem lub wyliczaniem stanu zewnętrznego

Oszczędność pamięci

Zmniejszenie łącznej liczby egzemplarzy (współdzielenie)

Wielkość stanu wewnętrznego obiektu

Wyliczanie/przechowywanie stanu zewnętrznego

Często łączony z wzorcem Kompozyt w celu przedstawienia 
struktury hierarchicznej ze współdzielonymi węzłami/liśćmi

(problem = stan wewnętrzny nie może zawierać wskaźnika do 
rodzica; rozwiązanie = rodzic przekazywany jako część stanu 
zewnętrznego)

background image

Stan

Przeznaczenie

Umożliwia obiektowi zmianę zachowania, gdy 
zmienia się jego stan wewnętrzny

Obiekt wydaje się zmieniać wówczas swoją klasę

background image

Stan

Uzasadnienie stosowania

Rozważmy klasę PołączenieTCP, reprezentującą
połączenie sieciowe:

Ilekroć połączenie zmienia stan, obiekt PołącznieTCP 
zmienia swój obiekt-stan => zmienia przez to swoje 
zachowanie

background image

Stan

Stosowalność

Zachowanie obiektu zależy od jego stanu, a obiekt musi 
zmieniać swoje zachowanie w czasie wykonywania 
programu

Operacje zawierają duże, skomplikowane instrukcje 
warunkowe, zależne od stanu obiektu

Stan przenosi każde rozgałęzienie warunkowe do 
oddzielnej klasy

background image

Stan

Struktura

background image

Stan

Uczestnicy

Kontekst (PołączenieTCP)

Definiuje interfejs dla Klientów

Utrzymuje egzemplarz podklasy StanuKonkretnego, definiujący 
bieżący stan

Stan (StanTCP)

Definiuje interfejs do kapsułkowania zachowania związanego ze 
stanem Kontekstu

Podklasa StanuKonkretnego (TCPNawiazane)

Każda implementuje zachowanie związane ze stanem Kontekstu

background image

Stan

Współpraca

Kontekst przekazuje żądania specyficzne dla stanu do 
obiektu StanKonkretny

(być może przekazuje również siebie jako parametr)

Klient konfiguruje Kontekst początkowym stanem, a 
następnie nie musi zajmować się bezpośrednio obiektami 
Stan

O wyborze kolejnego stanu decyduje albo Kontekst, albo 
podklasy StanuKonkretnego

background image

Stan

Konsekwencje

Całe zachowanie dotyczące stanu w jednym obiekcie

Dużo większa liczba klas

Zachowanie mniej zwarte – korzystne gdy wiele stanów 
(inaczej duże instrukcje warunkowe)

Jawność przejść między stanami

(coś więcej niż tylko przypisanie kilku zmiennych)

Atomowe przejścia między stanami (zmiana 1 zmiennej)

Możliwość współdzielenia obiektów Stan

background image

Stan

Kto definiuje przejścia? (tego nie ustala wzorzec)

bardziej elastyczne wydaje się umożliwienie podklasom Stanu 
samodzielnego ustalenia ich następników

wprowadza to niestety zależności implementacyjne (Stany 
muszą o sobie wiedzieć), co może prowadzić do problemów w 
dużych systemach z wieloma stanami

background image

Stan

Przykłady

Wiele programów do rysowania zapewnia różnorodne 
„narzędzia”:

narzędzie do rysowania

narzędzie do zaznaczania

W zależności od tego, które narzędzie jest aktywne 
operacje myszką wywołują inne efekty

Można tu zastosować wzorzec Stanu do reprezentacji 
wybranego narzędzia

background image

Stan

background image

METODY 

SPIRALNE

background image
background image

Planowanie

Projektowanie

Implementacja

Walidacja rozwiązań

Wstępna wersja 

specyfikacji

 SWS

Pełna specyfikacja 

funkcjonalności 

Implementacja funkcjonalności 
wymaganych lub ich podzbioru

Implementacja kolejnych 

funkcjonalności 

Uzupełnienie listy funkcjonalności

wynikami walidacji

Produkt gotowy ?

Zarzucenie 

wyników prac 

implementacyjnych 

?

Implementacja kolejnych 

funkcjonalności 

Uzupełnienie listy funkcjonalności

wynikami walidacji

Testowanie 

in situ

Testowanie 

na modelu

Praktyczna realizacja 
metodologii spiralnej

background image

Rozwinięcie modelu spiralnego 
w oparciu o tzw. teorię Win-
Win.

Teoria W-W podpowiada, że należy zidentyfikować
wszystkich tych, którzy mają wpływ na przebieg 
i wynik projektu. Mogą to być użytkownicy, inwestorzy, 
agendy rządowe i ich regulacje prawne, firmy 
programistyczne itp.

Należy określić warunki sukcesu każdego uczestnika 
procesu (win condition).

Należy doprowadzić do negocjacji pomiędzy 
uczestnikami podczas oceny prototypów, jeśli ich warunki 
sukcesu wykluczają się.

background image

Spiralny model Win-Win

background image

JAKO

JAKO

ŚĆ

ŚĆ

SPECYFIKACJI 

SPECYFIKACJI 

WYMAGA

WYMAGA

Ń

Ń

I ANALIZY

I ANALIZY

background image

Obecnie najczęściej wykorzystywane systemy 
informacyjne w dziedzinie ekonomii i zarządzania 
ukierunkowane są głównie 
na usprawnianie zarządzania w celu lepszego 
zaspokajania potrzeb wszystkich uczestników 
procesów gospodarczych.

background image

Obiekt ekonomiczny

Gromadzenie

danych

An

aliz

a

da

ny

ch

Interpretacja

wskaźników

R

oz

um

ien

ie

sy

tu

ac

ji

Podejmowanie

decyzji

Strategia ekonomiczna

Proste

kierowanie

nakazowe

W

ied

za

 po

trz

eb

na

 na

 sz

cz

eb

lu

za

rzą

dz

an

ia t

ak

tyczn

eg

o

background image

Najważniejsze kierunki 
innowacji wprowadzanych 
w SI oparte są na:

integracji

systemów, danych i procesów,

unifikacji

funkcji cząstkowych systemów,

zwiększania 

dostępności

do bazy danych 

dla wszystkich komórek organizacyjnych,

upowszechniania nowoczesnych sposobów 

prezentacji

danych (wizualizacji) dla celów 

wspomagania ich analizy,

doskonalenia procesów podejmowania 

decyzji

i ich przekazywania,

zmierzania do budowy 

modułowej

otwartości całego systemu,

background image

Dalsze wymagania dotyczące 
projektowanego systemu

zapewnienia 

kompleksowego

charakteru 

funkcjonalnego całego systemu,

stałego podnoszenia 

zaawansowania

merytorycznego i technologicznego,

zmierzania do 

elastyczności

funkcjonalnej 

i strukturalnej, 

zapewnienia stałej 

zgodności

ze 

zmieniającymi się elementami otoczenia 
systemowego, a zwłaszcza z aktualnym 
stanem prawnym, ewoluującym zgodnie z 
przyjętymi procedurami legislacyjnymi.

background image

Ekonomiczne systemy informacyjne są projektowane i 
realizowane w taki sposób, aby dane przetwarzane 
przez ów system były bezpieczne i na każdym jego 
etapie chronione. 

Dlatego też w jak największym stopniu musi być
zapewniona poufność i integralność wszelkich danych 
posiadanych przez system, a dostępność do danych 
zawartych w systemie powinna być zgodna z przyjętą
hierarchią haseł i przywilejów dostępu.

background image

Najnowsze prace odwołujące się do 
inżynierii oprogramowania przewidują
występowanie aż

12

12

faz procesu projektowego.

background image

1.Inicjalizacja systemu i wstępne 

planowanie:

Znalezienie potencjalnego obszaru 

zastosowania systemu informatycznego, który 
wspomoże lub zastąpi dotychczasowe metody 
przetwarzania informacji.

2.Analiza wymagań i specyfikacja 

wymagań:

Identyfikacja problemów, które nowy system 
informacyjny ma rozwiązać. Zarysowanie 
właściwości operacyjnych systemu, wydajności 
i zasobów sprzętowych niezbędnych do 
użytkowania i konserwowania systemu.

background image

3. Specyfikacja funkcjonalna 

i prototypowanie

Identyfikacja i formalizacja obiektów obliczeń, 
ich atrybutów i zależności. Specyfikacja 
transformacji, którym obiekty będą podlegać.

4. Dekompozycja problemu:

Podział systemu na logiczne podsystemy na 

podstawie wymagań i specyfikacji. Analiza 
logicznych podsystemów pod kątem użycia już
istniejących komponentów informatycznych. 
Selekcja rozwiązań: wykonać samodzielnie, 
kupić, wykorzystać już istniejące. 

background image

5. Projekt architekturalny i specyfikacja 
konfiguracji
:

Określenie zależności pomiędzy podsystemami, 
komponentami i modułami w sposób 
uwzględniający szczegóły ich budowy i 
wymagania wobec nich. 

6. Szczegółowe projektowanie i specyfikacja 

komponentów

Opracowanie i kodyfikowanie metod 
przetwarzania informacji w komponentach.

background image

7. Implementacja komponentów i usuwanie 
błędów

Wytwarzanie kodu źródłowego komponentów na 
podstawie uprzednich specyfikacji. Testowanie 
podstawowych funkcji komponentów. 

8. Asemblacja systemu i testowanie

Weryfikacja komponentów pod kątem 
kompletności 
i zgodności ze specyfikacją. Asemblacja produktu 
z komponentów, weryfikacja wydajności 
podsystemów systemu jako całości. 

background image

9. Przegląd dokumentacji i dostarczenie 

systemu

Opracowywanie i systematyzowanie 
dokumentacji powstałej w trakcie 
prowadzenia projektu pod kątem raportów 
dla odbiorcy. 

10. Opracowanie procedur 
instalacyjnych 

i instalacja

Opracowanie dokumentacji instalacyjnej 
opisującej sposób instalacji systemu.

background image

11. Szkolenie dla użytkowników

Zapoznanie użytkowników z systemem. 
Zapoznanie ich z możliwościami i 
ograniczeniami systemu.

12. Użytkowanie i konserwacja 

oprogramowania:

Użytkowanie, usuwanie błędów 
dostrzeżonych 
w trakcie użytkowania, rozbudowywanie 
systemu o nowe właściwości, poprawa 
wydajności systemu.

background image

Jednak nawet najlepsza metodologia nie zabezpiecza przed 
błędami, bo istnieje 

luka poznawcza 

luka poznawcza 

w projektach 

informatycznych

Procesy 

makro

Procesy 

mikro

Luka

poznawcza

Sposób wnioskowania

Od ogółu 

do szczegółu

Od 

ogółu  

szczegółu 

do 

S

to

p

ie

ń

 s

z

cz

e

ło

w

o

śc

p

ra

c

Eksperyment lub 

symulacja

lub ?

Prace analityczne 

i projektowe

Dedukcyjne prace 

analityczne i projektowe

o dużym stopniu ogólności

Indukcyjne prace 

analityczne i projektowe

dotyczące problemów 

szczegółowych

Na tym poziomie problemy stają się 
zbyt ogólne dla zespołów projektowych 
zajmujących się zagadnieniami podstawowymi

Problemy na tym poziomie umykają 
zespołom analitycznym i projektowym 
na skutek natłoku szczegółów

background image

Zagadnienia zaliczające się do luki 
poznawczej, nie są w trakcie analizy 
dostrzegane i nie zostaną wyczerpująco 
opracowane, można więc określać je 
mianem ryzykownych punktów projektu.

Wokół tych zagadnień Boehm zbudował
spiralny model tworzenia 
oprogramowania

background image

Jakość specyfikacji wymagań i analizy

Jako

Jako

ść

ść

specyfikacji wymaga

specyfikacji wymaga

ń

ń

i analizy

i analizy

Jest rezultatem:

sformułowania wymagań jakościowych przedłożonych przez użytkownika 

(właściciela biznesowego),

wyboru metodyki (sposobu) realizacji fazy analizy i definicji,

posiadanych kwalifikacji przez zespół analityków,

posiadanych  narzędzi  wykorzystywanych  na  etapie  specyfikacji 

wymagań i analizy.

WSKA

WSKA

Ź

Ź

NIKI 

NIKI 

JAKO

JAKO

Ś

Ś

CIOWE

CIOWE

WYMAGANIA

WYMAGANIA

TECHNIKI

TECHNIKI

OPROGRAMOWANIE 

OPROGRAMOWANIE 

NARZ

NARZ

Ę

Ę

DZIOWE

DZIOWE

ISTNIEJ

ISTNIEJ

Ą

Ą

CE 

CE 

SYSTEMY 

SYSTEMY 

PODOBNE

PODOBNE

WYMAGANIA 

WYMAGANIA 

JAKO

JAKO

Ś

Ś

CIOWE

CIOWE

OGRANICZENIA

OGRANICZENIA

WIEDZA 

WIEDZA 

ZESPO

ZESPO

Ł

Ł

U

U

REALIZACJA 

REALIZACJA 

PROCESU 

PROCESU 

DEFINICJI

DEFINICJI

ROZWI

ROZWI

Ą

Ą

ZANIE

ZANIE

KSZTA

KSZTA

Ł

Ł

TOWANIE 

TOWANIE 

JAKO

JAKO

Ś

Ś

CI

CI

JAKO

JAKO

ŚĆ

ŚĆ

SPECYFIKACJI 

SPECYFIKACJI 

WYMAGA

WYMAGA

Ń

Ń

I ANALIZY

I ANALIZY

background image

JAKO

JAKO

ŚĆ

ŚĆ

PROJEKTOWA

PROJEKTOWA

background image

Jakość projektowa

Jako

Jako

ść

ść

projektowa

projektowa

Jest rezultatem:

sformułowania  wymagań jakościowych  zawartych  w  wymaganiach  (w 

specyfikacji wymagań),

wyboru sposobu realizacji procesu projektowania,

posiadanych kwalifikacji przez zespół projektowego,

posiadanych narzędzi wykorzystywanych w etapie projektowania.

WSKA

WSKA

Ź

Ź

NIKI 

NIKI 

JAKO

JAKO

Ś

Ś

CIOWE

CIOWE

WYMAGANIA 

WYMAGANIA 

KONSTRUKCYJNE

KONSTRUKCYJNE

TECHNOLOGIA 

TECHNOLOGIA 

PROCESU 

PROCESU 

PROJEKTOWANIA

PROJEKTOWANIA

OPROGRAMOWANIE 

OPROGRAMOWANIE 

NARZ

NARZ

Ę

Ę

DZIOWE

DZIOWE

ISTNIEJ

ISTNIEJ

Ą

Ą

CE 

CE 

SYSTEMY 

SYSTEMY 

PODOBNE

PODOBNE

WYMAGANIA 

WYMAGANIA 

JAKO

JAKO

Ś

Ś

CIOWE

CIOWE

OGRANICZENIA

OGRANICZENIA

WIEDZA 

WIEDZA 

ZESPO

ZESPO

Ł

Ł

U

U

PROJEKTANT

PROJEKTANT

Ó

Ó

W

W

REALIZACJA 

REALIZACJA 

PROCESU 

PROCESU 

DEFINICJI

DEFINICJI

ROZWI

ROZWI

Ą

Ą

ZANIE

ZANIE

FUNKCJONALNO

FUNKCJONALNO

-

-

KONSTRUKCYJNE

KONSTRUKCYJNE

KSZTA

KSZTA

Ł

Ł

TOWANIE 

TOWANIE 

JAKO

JAKO

Ś

Ś

CI 

CI 

PROJEKTOWEJ

PROJEKTOWEJ

JAKO

JAKO

ŚĆ

ŚĆ

PROJEKTOWA

PROJEKTOWA

JAKO

JAKO

ŚĆ

ŚĆ

SPECYFIKACJI 

SPECYFIKACJI 

WYMAGA

WYMAGA

Ń

Ń

ANALIZY

ANALIZY

TECHNOLOGIE 

TECHNOLOGIE 

PRZETWARZANIA

PRZETWARZANIA

background image

JAKO

JAKO

ŚĆ

ŚĆ

POTENCJALNA

POTENCJALNA

background image

Jakość potencjalna

Jako

Jako

ść

ść

potencjalna

potencjalna

Jest rezultatem:

zmian w rozwiązaniach konstrukcyjnych zachodzących w procesie 
produkcji oprogramowania i testowania,

jakości zastosowanych elementów programowych i materiałowych,

wyboru technologii produkcji oprogramowania.

ROZWI

ROZWI

Ą

Ą

ZANIA 

ZANIA 

PROJEKTOWE

PROJEKTOWE

OPROGRAMOWANIE 

OPROGRAMOWANIE 

NARZ

NARZ

Ę

Ę

DZIOWE

DZIOWE

TECHNOLOGIA 

TECHNOLOGIA 

PROGRAMOWANIA

PROGRAMOWANIA

JAKO

JAKO

Ś

Ś

PROJEKTOWA

PROJEKTOWA

REALIZACJA 

REALIZACJA 

PROCESU 

PROCESU 

PRODUKCYJNEGO

PRODUKCYJNEGO

KSZTA

KSZTA

Ł

Ł

TOWANIE 

TOWANIE 

JAKO

JAKO

Ś

Ś

CI 

CI 

POTENCJALNEJ

POTENCJALNEJ

JAKO

JAKO

ŚĆ

ŚĆ

POTENCJALNA

POTENCJALNA

background image

JAKO

JAKO

ŚĆ

ŚĆ

EKSPLOATACYJNA

EKSPLOATACYJNA

background image

Jakość eksploatacyjna

Jako

Jako

ść

ść

eksploatacyjna

eksploatacyjna

Jest rezultatem:

wyboru procesu eksploatacji,

poziomu jakości potencjalnej,

wyboru warunków eksploatacji,

postawionych wymagań eksploatacyjnych.

WYMAGANIA

WYMAGANIA

WARUNKI 

WARUNKI 

EKSPLOATACJI

EKSPLOATACJI

JAKO

JAKO

Ś

Ś

POTENCJALNA

POTENCJALNA

PROCES 

PROCES 

EKSPLOATACJI

EKSPLOATACJI

KSZTA

KSZTA

Ł

Ł

TOWANIE 

TOWANIE 

JAKO

JAKO

Ś

Ś

CI 

CI 

EKSPLOATACYJNEJ

EKSPLOATACYJNEJ

JAKO

JAKO

ŚĆ

ŚĆ

EKSPLOATACYJNA

EKSPLOATACYJNA

background image

KORZY

KORZY

Ś

Ś

CI Z INWESTYCJI 

CI Z INWESTYCJI 

INFORMATYCZNYCH

INFORMATYCZNYCH

background image

Czy 

inwestycje 

informatyczne 

zmieniają

zasadniczy  sposób  pozycję ekonomiczno-finansową
firmy?

Korzyści z inwestycji ekonomicznych

Korzy

Korzy

ś

ś

ci z inwestycji ekonomicznych

ci z inwestycji ekonomicznych

Nie

Tak - w sposób 

zasadniczy

background image

Klasyfikacja (przykładowa) efektów informatyzacji

Klasyfikacja 

Klasyfikacja 

(przyk

(przyk

ł

ł

adowa) 

adowa) 

efekt

efekt

ó

ó

w informatyzacji

w informatyzacji

Klasyfikacja efekt

Klasyfikacja efekt

ó

ó

w informatyzacji mo

w informatyzacji mo

ż

ż

e by

e by

ć

ć

bardzo r

bardzo r

ó

ó

ż

ż

na:

na:

• globalne

techniczne  - wzrost  szybkości,  dokładności,  szczegółowości  i  poufności 

przetwarzania danych

ekonomiczne  - wspomaganie  wzrostu  efektu  ekonomicznego  np.  przez 

bieżący nadzór nad firmą

organizacyjne  - usprawnienie  struktury  organizacyjnej  (np.  obiegu 

dokumentów)

socjo-psychologiczne  - integracja  pracowników  przez  lepsze  poznanie 

ichpotrzeb

• cząstkowe

• jednorazowe - w momencie wdrażania systemu (np. spadek zatrudnienia)
• ciągłe  - w  całym  okresie  eksploatacji  (np.  poprawa  wykorzystania  aparatu 

produkcyjnego)

• bezpośrednie - np. obniżka kosztów przetwarzania danych
• pośrednie - np. poprawa zaopatrzenia materiałowego

• pierwotne - zmniejszenie np. zmniejszenie amortyzacji po wycofaniu zbędnych 

urządzeń

• wtórne - np. obniżka kosztów własnych (podobnie jak efekty pośrednie)

w

g M

. N

ie

d

w

g M

. N

ie

d

ź

ź

w

ie

d

zi

w

ie

d

zi

ń

ń

sk

ie

go

sk

ie

go

w

J

. Ki

si

e

lni

ck

ie

go

w

J

. Ki

si

e

lni

ck

ie

go

background image

• czy  strategia  informatyzacji  firmy  została  opracowana  na  podstawie 

strategii biznesowej

• czy szczegółowy projekt został sprecyzowany
• czy projekt jest w pełnej fazie rozwoju
• czy projekt został zatwierdzony
• czy projekt wprowadzono w życie
• czy projekt działa od pewnego czasu
• czy projekt jest bliski końca

Sposób (przykładowy) oceny przedsięwzięć IT

Spos

Spos

ó

ó

(przyk

(przyk

ł

ł

adowy) 

adowy) 

oceny przedsi

oceny przedsi

ę

ę

wzi

wzi

ęć

ęć

IT

IT

Organizacja  ocenia,  mierzy,  szacuje  i  uzasadnia  koszty  na  ka

Organizacja  ocenia,  mierzy,  szacuje  i  uzasadnia  koszty  na  ka

ż

ż

dym  etapie 

dym  etapie 

przygotowania i realizacji przedsi

przygotowania i realizacji przedsi

ę

ę

wzi

wzi

ę

ę

cia

cia

background image

Sposób (przykładowy) oceny przedsięwzięć IT

Spos

Spos

ó

ó

(przyk

(przyk

ł

ł

adowy) 

adowy) 

oceny przedsi

oceny przedsi

ę

ę

wzi

wzi

ęć

ęć

IT

IT

Niekt

Niekt

ó

ó

re metody oceny:

re metody oceny:

Zwrot  z  inwestycji

Zwrot  z  inwestycji

” (ROI  -

Return-On-Investment)  wiąże  się z  oceną

aktualnej wartości kosztów i przyszłych wpływów i polega na ocenie czasu i 

wartości  zwrotu  poniesionych  kosztów.  Najczęściej  stosowana  do 

porównania różnych alternatywnych projektów pod katem zwrotu kosztów.

Analiza  koszt

Analiza  koszt

ó

ó

w  i  korzy

w  i  korzy

ś

ś

ci

ci

” (CBA  -

Cost  - benefit  analysis)  wiąże  się z 

próbą oszacowania kosztów każdego elementu projektu i wartości korzyści 

ekonomicznej z rozwoju projektu. 

Metody  wielu  cel

Metody  wielu  cel

ó

ó

w  i  wielu  kryteri

w  i  wielu  kryteri

ó

ó

w

w

” (

MOMC  - Multi-objective,  Multi-

criteria  methods)  zakłada  istnienie  innych  wartości  niż ekonomiczne,  stąd 

polega  na  uszeregowaniu  określonych  preferencji  wg  przyznanych  im  wag. 

Ponieważ wagi  mogą być oceną subiektywną tworzone  są alternatywne 

scenariusze uwzględniające różne cele.

Warto

Warto

ś

ś

ci  graniczne

ci  graniczne

” (

Boundary  values)  dostarcza  surowego  porównania 

całkowitych wydatków z innymi połączonymi wartościami np. całkowity koszt 

IT a całkowity dochód lub łączny koszt na jednego pracownika lub całkowite 

wydatki na IT a zysk netto. 

Zwrot  z  zarz

Zwrot  z  zarz

ą

ą

dzania

dzania

” (

ROM  - Return  on  Management)  wiąże  się z 

szacowaniem  korzyści  w  zarządzaniu,  czyli  określa  zysk  wynikający  z 

poprawy  zarządzania  firmą przez  porównanie  oszacowania  zysku  z 

zastosowaniem IT i bez.

Kluczowe  czynniki  sukcesu

Kluczowe  czynniki  sukcesu

(

Critical  succes  factors)  polega  na 

wyspecyfikowaniu  tych  czynników,  które  są

gwarantem  sukcesu 

informatyzacji oraz ocenia jaka jest rola IT w osiąganiu powodzenia. 

Metody  do

Metody  do

ś

ś

wiadczalne 

wiadczalne  pozwalają dokonać oceny  na  drodze  budowy 

prototypu  (

prototyping),  symulacji  komputerowej  (simulation)  lub 

inscenizacji (

gameplaying).

Inne

Inne (

patrz  Materiały  Konferencji 

Efektywność zastosowań SI  Szczyrk  2001  - Nowak  J.S 

„Przegląd metod oceny inwestycji informatycznych”str.61 (T.II)

)

background image

RYZYKO 

W PRZEDSIĘWZIĘCIACH 

INFORMATYCZNYCH 

RYZYKO 

RYZYKO 

W PRZEDSI

W PRZEDSI

Ę

Ę

WZI

WZI

Ę

Ę

CIACH 

CIACH 

INFORMATYCZNYCH 

INFORMATYCZNYCH 

Model zarz

Model zarz

ą

ą

dzania ryzykiem

dzania ryzykiem

Wska

Wska

ź

ź

nik zagro

nik zagro

ż

ż

enia przedsi

enia przedsi

ę

ę

wzi

wzi

ę

ę

cia informatycznego

cia informatycznego

14

14

background image

Istnieje  wiele  określeń dotyczących  pojęcia  ryzyka  ale  we 
wszystkich 

można 

spotkać

opinię, 

ryzyko 

jest 

ryzyko 

jest 

charakteryzowane przez dwa podstawowe elementy

charakteryzowane przez dwa podstawowe elementy:

niepewno

niepewno

ść

ść

zdarzenie, 

które 

powoduje 

urzeczywistnienie  ryzyka,  (jeśli  urzeczywistnienie  jest 
pewne  powinno  być klasyfikowane  jako  ograniczenie 
realizacji przedsięwzięcia informatycznego)

skutki

skutki

urzeczywistnienie  się

ryzyka  powoduje 

wystąpienie negatywnych konsekwencji lub strat.

Ryzyko  jest  nieodłącznym  elementem  realizacji  każdego 
przedsięwzięcia informatycznego.

Profesjonalne  podejście  do  przedsięwzięć informatycznych 
wymaga  stosowania  przez  kierownika  projektu  skutecznej 
metody zarządzania ryzykiem.

Określenie ryzyka

Okre

Okre

ś

ś

lenie ryzyka

lenie ryzyka

background image

Model Software Engineering Institute (SEI)

zarządzania ryzykiem

Model 

Model Software Engineering Institute (SEI)

zarz

zarz

ą

ą

dzania ryzykiem

dzania ryzykiem

KOMUNIKACJA

KOMUNIKACJA

Ś

Ś

LEDZENIE

LEDZENIE

STEROWANIE

STEROWANIE

IDENTYFIKACJA

IDENTYFIKACJA

ANALIZA

ANALIZA

PLANOWANIE

PLANOWANIE

wymiana  informacji  o  ryzyku  na 
różnych 

poziomach 

organizacji, 

istotnych  z  punktu  widzenia  całości 
przedsięwzięcia

“inwentaryzacją” potencjalnych  zagrożeń -
tworzenie  listy  specyficznych  dla  danego 
przedsięwzięcia elementów ryzyka

ocena  p-stwa  (dla  każdego 
ryzyka)  wystąpienia  ryzyka  i 
rozmiar  potencjalnych  start. 
Określa  się

również

skutki 

wystąpienia  kilku  elementów 
ryzyka.

wykorzystanie  informacji  o 
ryzykach 

różnych 

decyzjach 

działaniach 

mających 

na 

celu 

złagodzenie 

skutków 

urzeczywistnienia się ryzyk

monitorowanie  statusu  ryzyk 
oraz  działań rozpoczętych  
celu  łagodzenia  lub  unikania 
ryzyka

korygowanie  odchyleń
od 

przewidywanych 

rezultatów 

działań

podjętych 

celu 

łagodzenia  lub  unikania 
ryzyka

background image

WSKA

WSKA

Ź

Ź

NIK ZAGRO

NIK ZAGRO

Ż

Ż

ENIA 

ENIA 

PRZEDSI

PRZEDSI

Ę

Ę

WZI

WZI

Ę

Ę

CIA 

CIA 

INFORMATYCZNEGO

INFORMATYCZNEGO

background image

Wskaźnik zagrożenia przedsięwzięcia informatycznego

Wska

Wska

ź

ź

nik zagro

nik zagro

ż

ż

enia przedsi

enia przedsi

ę

ę

wzi

wzi

ę

ę

cia informatycznego

cia informatycznego

Wska

Wska

ź

ź

nik  zagro

nik  zagro

ż

ż

enia  przedsi

enia  przedsi

ę

ę

wzi

wzi

ę

ę

cia  informatycznego

cia  informatycznego to    ilościowe 

określenie (miara) szansy powodzenia realizowanego przedsięwzięcia

Wskaźnik  ten  powinien  być reprezentowany  przez  dwie  składowe 

(odnoszone do układu wykonawca-zleceniodawca):

stan motywacji

stan motywacji do pomyślnego zakończenia przedsięwzięcia,

stan mo

stan mo

ż

ż

liwo

liwo

ś

ś

ci

ci wykonawczych pomyślnego zakończenia 

przedsięwzięcia informatycznego.

WSKAŹNIK ZAGROŻENIA

MOTYWACJE

MOŻLIWOŚCI

Bardzo mocno korzystny dla przedsięwzięcia

10

Mocno korzystny dla przedsięwzięcia

8

Dostatecznie korzystny dla przedsięwzięcia

6

Zauważalnie korzystny dla przedsięwzięcia

4

Nieznacznie korzystny dla przedsięwzięcia

2

Obojętny dla przedsięwzięcia

0

Nieznacznie niekorzystny dla przedsięwzięcia

-2

Zauważalnie niekorzystny dla przedsięwzięcia

-4

Dostatecznie niekorzystny dla przedsięwzięcia

-6

Mocno niekorzystny dla przedsięwzięcia

-8

Bardzo mocno niekorzystny dla przedsięwzięcia -10

UWAGA! 

UWAGA! 

Ż

Ż

aden wska

aden wska

ź

ź

nik nie zast

nik nie zast

ą

ą

pi zdrowego rozs

pi zdrowego rozs

ą

ą

dku!!!

dku!!!

background image

Wskaźnik zagrożenia przedsięwzięcia informatycznego

Wska

Wska

ź

ź

nik zagro

nik zagro

ż

ż

enia przedsi

enia przedsi

ę

ę

wzi

wzi

ę

ę

cia informatycznego

cia informatycznego

Wartość składowych wskaźnika zagrożenia (motywacja i możliwości) 

może  być wyznaczona  na  podstawie  wartości  tzw. 

sprawczych

sprawczych i 

wykonawczych

wykonawczych

czynników 

zagrożenia 

przedsięwzięcia 

informatycznego

Czynniki  sprawcze

Czynniki  sprawcze

zagrożenia  przedsięwzięcia  informatycznego 

opisują te elementy oraz te właściwości (cechy) działalności układu 

zleceniodawca-wykonawca,  które  generują przyczyny  upadku  (lub 

powodzenia) przedsięwzięcia informatycznego. 

Czynniki  wykonawcze

Czynniki  wykonawcze zagrożenia  przedsięwzięcia  informatycznego 

opisują te elementy oraz te właściwości (cechy) działalności układu 

zleceniodawca-wykonawca,  które  określają fizyczną realizowalność

przedsięwzięcia informatycznego. 

Zbiór  wartości  czynników  sprawczych  zagrożenia  przedsięwzięcia 

informatycznego określa wartość stanu motywacji 

Zbiór  wartości  czynników  wykonawczych  zagrożenia  przedsięwzięcia 

informatycznego określa wartość stanu możliwości 

background image

Wskaźnik zagrożenia przedsięwzięcia informatycznego

Wska

Wska

ź

ź

nik zagro

nik zagro

ż

ż

enia przedsi

enia przedsi

ę

ę

wzi

wzi

ę

ę

cia informatycznego

cia informatycznego

Wartości  czynników  sprawczych  i  wykonawczych  mogą

być

wyznaczone na podstawie listy zidentyfikowanych ryzyk. 

Ryzyka  te  określa  się

czynnikami  pierwotnymi

zagrożenia 

przedsięwzięcia informatycznego

W  tym  celu  dla  każdego  zidentyfikowanego  ryzyka  czynnika 

pierwotnego należy określić:

czy  dany  czynnik  pierwotny  (ryzyko)  wpływa  na  określony 

czynnik sprawczy czy wykonawczy?

liczbę określającą bieżący  stopień urzeczywistnienia  się

danego ryzyka,

jak  dany  czynnik  pierwotny  (ryzyko)  wpływa  na  określony 

czynnik sprawczy lub wykonawczy: czy powoduje jego wzrost 

czy spadek?

Czynniki  pierwotne  zagrożenia  przedsięwzięcia  informatycznego 

mogą być określone  na  podstawie  kwestionariuszy  identyfikacji 

ryzyka.  Kwestionariusz  taki  zawiera  listę potencjalnych  źródeł

ryzyk  dla  konkretnego  przedsięwzięcia,  do  której  należy  dołączyć

listę pytań (przynajmniej  jedno  pytanie  do  źródła)  umożliwiających 

identyfikację tych ryzyk. 

background image

Wskaźnik zagrożenia przedsięwzięcia informatycznego

Wska

Wska

ź

ź

nik zagro

nik zagro

ż

ż

enia przedsi

enia przedsi

ę

ę

wzi

wzi

ę

ę

cia informatycznego

cia informatycznego

Algorytm określania wskaźnika zagrożenia przedsięwzięcia informatycznego

zdefiniowanie zbioru czynników pierwotnych zagrożenia (ryzyk)

R = (r

1

, r

2

, ..., r

n

);

skonstruowanie (dla każdego czynnika ryzyka) kwestionariusza oceny wartości 

danego czynnika, umożliwiającego ustalenie jego bieżącej wartości;

zdefiniowanie zbioru czynników sprawczych zagrożenia 

S = (s

1

, s

2

, ..., s

n

);

dla  każdego  czynnika  sprawczego  zdefiniowanie  formuły  przedstawiającej 

zależność między  wybranymi  czynnikami  pierwotnymi  zagrożenia  (ryzykami)  a 

danym czynnikiem sprawczym;

zdefiniowanie zbioru czynników wykonawczych zagrożenia

W = (w

1

, w

2

, ...,w

m

);

dla  każdego  czynnika  wykonawczego  zdefiniowanie  formuły  przedstawiającej 

zależność między  wybranymi  czynnikami  pierwotnymi  zagrożenia  (ryzykami)  a 

danym czynnikiem wykonawczym;

n

i

i

s

i

s

v

M

M

1

10

...

10

s

i

v

waga i-tego czynnika sprawczego

określenie  stanu  motywacji  (M) jako  “wypadkowej” czynników  sprawczych 

przedsięwzięcia informatycznego:

m

i

i

w

i

w

v

P

P

1

10

...

10

w

i

v

waga i-tego czynnika wykonawczego

określenie  stanu możliwości (P) jako  “wypadkowej” czynników  wykonawczych 

zagrożenia przedsięwzięcia informatycznego:

określenie wskaźnika zagrożenia przedsięwzięcia informatycznego

WZI = (M,P)