
Dlatego metodologia jego projektowania musi być jasna, konsekwentna i efektywna

Model kaskadowy jest
czytelny, przejrzysty, ale w istocie niepraktyczny.
Do zmiany sposobu myślenia o projektowaniu systemów informacyjnych zmusił informatyków kryzys oprogramowania.
Utrzymanie 10 mld. linii istniejących programów kosztuje 70 mld. $ rocznie
31% nowych projektów jest anulowane przed zakończeniem; koszt 81 mld. $
31% projektów jest anulowane jeszcze w trakcie konstrukcji
53% projektów jest kończone z przekroczeniem zaplanowanego czasu, budżetu
i z ograniczeniem planowanego zbioru funkcji systemu
Zaledwie 16% projektów jest kończone w zaplanowanym czasie, bez przekroczenia budżetu i okrajania funkcjonalności
Średnia wydajność wykonawców oprogramowania spadła o 13% w ciągu dwóch lat;
stosunek najlepszej wydajności do najgorszej od 1990 r. rozszerzył się
od 4:1 do 600:1.
a
Uzależnienie
organizacji od systemów komputerowych i
przyjętych technologii przetwarzania informacji, które nie są
stabilne w długim horyzoncie czasowym.
a
Problemy
współdziałania niezależnie zbudowanego oprogramowania, szczególnie istotne przy dzisiejszych tendencjach
integracyjnych.
a
Problemy
przystosowania już istniejących i działających systemów do nowych wymagań,
tendencji i platform sprzętowo-programowych.
a
Frustracje
informatyków wynikające ze zbyt
szybkiego postępu w zakresie narzędzi
i metod wytwarzania oraz uciążliwości i długotrwałości procesów produkcji i pielęgnacji oprogramowania. Znaczące zmiany w
przemyśle informatycznym następują co 5-7 miesięcy w porównaniu do 5-7 lat w innych dziedzinach.
Podstawowym powodem kryzysu oprogramowania jest złożoność produktów informatyki i procesów ich wytwarzania.
Korzyści jakie
przynosi strukturalizacja
oprogramowania:
“Nawet ubogi interface do źle
skonstruowanego komponentu może uczynić system
( jako całość) łatwiejszym do zrozumienia, a przez to
do modyfikacji.”
Ze strukturalizacją
oprogramowania związane są dwa, opisane dalej, pojęcia: kohezja
i skojarzenia.
Kohezja (cohesion)
oznacza zwartość, spoistość. Terminu
tego używa się np.
w odniesieniu do komponentu
oprogramowania (klasy, modułu,
itp.) na
oznaczenie wzajemnego zintegrowania jego elementów składowych. Duża kohezja oznacza silną interakcję wewnątrz i
relatywnie słabszą interakcję z zewnętrzem. Komponenty powinna cechować duża kohezja, co oznacza,
że komponent stanowi dobrą, intuicyjną abstrakcję “czegoś”, czyli posiada precyzyjnie określoną semantykę, jest dobrze wyizolowany z kontekstu
(maksymalnie od niego niezależny) oraz posiada dobrze zdefiniowany interface.
Skojarzenie (coupling) określa stopień powiązania między komponentami, np. dla klas: jak często obiekty jednej klasy występują razem z obiektami innych klas, jak często obiekty jednej klasy wysyłają komunikaty do obiektów innej klasy, itp. Możliwe są skojarzenia silne, słabe czy w ogóle brak skojarzenia. Duża ilość silnych skojarzeń miedzy elementami składowymi (high coupling) jest tym, czego powinno się unikać.
Analiza stopnia kohezji i wzajemnych skojarzeń stanowi podstawę do
konstruowania architektury systemu, czyli wyróżniania elementów składowych
systemu, określania ich wzajemnych
interakcji oraz sposobów przesyłania
między nimi danych.
Zadania stojące przed inżynierią oprogramowania w walce z narastającą
złożonością oprogramowania:
Jedną z zasadniczych kwestii jest dobra współpraca z użytkownikiem na
etapie analizy problemu i tworzenia podstaw projektu.
Kluczową sprawą jest właściwe zebranie danych na etapie analizy. Napotyka
to jednak na specyficzne przeszkody.
Klasyczne podejście do projektowania systemów informatycznych dla zarządzania było technocentryczne:
Wkładano wiele troskliwego wysiłku w tworzenie i optymalizowanie coraz doskonalszych systemów komputerowych. Natomiast ludzie byli tylko dodatkiem do mądrych maszyn i musieli się do nich dostosować.
Przy podejściu technocentrycznym możemy mieć doskonałe informacje i na ich podstawie podejmować nietrafne i nieskuteczne działania.
Tymczasem do sprawnego zarządzania i do podejmowania trafnych decyzji nie są tak naprawdę potrzebne informacje, które mogą być szybko i sprawnie przetwarzane przez komputery, ale wiedza, a nawet mądrość, która może się zrodzić wyłącznie w umyśle człowieka.
Dlatego punktem wyjścia w projektowaniu nowoczesnych skomputeryzowanych systemów zarządzania musi być człowiek: jego predyspozycje, preferencje, możliwości i ograniczenia.
Trzeba dążyć do tego, aby systemy informatyczne były coraz doskonalsze, ale nie można dopuścić do tego, żeby człowiek stał się dodatkiem do komputera.
I nie chodzi tu bynajmniej wyłącznie o realizację szczytnych idei humanistycznych. Tak jest po prostu sprawniej i efektywniej!
Na tym właśnie polega antropocentryczny sposób projektowania systemów informatycznych.
Najpierw ludzie i ich potrzeby, a dopiero potem systemy techniczne i ich parametry!
Przy podejściu antropocentrycznym komputer nie zastępuje ludzi, ale wspomaga ich twórcze myślenie.
Podstawowa wskazówka metodologiczna dotycząca projektowania
systemów informatycznych:
Jeśli to tylko jest możliwe, to lepiej jest wybrać gotowy system informatyczny
niż projektować i budować od podstaw nowy.
Podejście antropocentryczne ma zastosowanie także w przypadku wyboru gotowego systemu!
Wybór gotowego systemu dobrze jest prowadzić zgodnie z przemyślanym schematem metodycznym!

Zarówno do zadania wyboru systemu jak i do jego zaprojektowania trzeba zbudować odpowiedni zespół fachowców.

Jeśli dla rozważanego zagadnienia nie da się dobrać systemu gotowego to trzeba go zaprojektować.
Jeśli zachodzi potrzeba zaprojektowania systemu informacyjnego, to większą część pracy staramy się wykonać przy użyciu różnych rysunków i diagramów, bo taka forma jest bardzie czytelna dla ludzi.

Powstające obrazki pozwalają dobrze sobie wyobrazić, jak będą ze sobą współdziałać ludzie i elementy techniczne systemu.
