Inżynieria oprogramowania
Instalacja, wdrażanie oraz
konserwacja oprogramowania
Slajd 2
Plan wykładu
• Instalacja systemu informatycznego
• Szkolenia i wdrożenie
• Modyfikacje oprogramowania
• Konserwacja oprogramowania
-Analiza celowości wprowadzania modyfikacji
-Koszty konserwacji oprogramowania
-Czynniki redukcji kosztów konserwacji
-Narzędzia i metody konserwacji
oprogramowania
-Faza konserwacji (zgłaszanie problemów,
zlecanie
zmian, ocena efektu zmian)
Slajd 3
Instalacja systemu
Slajd 4
Instalacja systemu 1/2
Szczególnie istotna
w przypadku
oprogramowania wykonywaniego
na
konkretne zamówienie
; w jej trakcie
następuje
przekazanie systemu klientowi
,
który w momencie zakończenia instalacji
staje się
właścicielem systemu
Slajd 5
Instalacja systemu 2/2
Podstawowe czynności podczas instalacji systemu:
• przygotowanie środowiska pracy
: dostarczenie nowego lub
wykorzystanie istniejącego sprzętu (serwery, stacje, sieć,
drukarki, ...); odpowiednie skonfigurowanie systemów
operacyjnych; instalacja i/lub dostrojenie systemów bazodanowych
• przeniesienie stworzonych aplikacji
(instalacje na serwerach i
stacjach)
• dostosowanie oprogramowania
do wymogów konkretnego
stanowiska
• inicjalizacja baz danych
(zdefiniowanie reguł postępowania,
wypełnianie słowników i kartotek, przeniesienie - import danych z
funkcjonujących systemów,...)
• zdefiniowanie użytkowników
(ew. grup lub ról), przydzielenie im
uprawnień i weryfikacja dostępu do odpowiednich części systemu
• sprawdzenie możliwości wykorzystania
przynajmniej
podstawowej funkcjonalności systemu
Slajd 6
Problemy podczas instalacji 1/2
•
Wypełnienie startowe bazy danych
Wypełnienie startowe bazy danych
jest
często bardzo żmudnym procesem,
wymagającym wprowadzenia danych z
różnych nośników oraz uzgodnienia ich
poprawności i spójności. Niekiedy część
danych może być dostępna w formie
elektronicznej (np. w postaci zapisów
poprzedniego systemu), ale wymaga to
przygotowania specjalnych programów
konwersji (możliwe to jest w zasadzie tylko
pod warunkiem znajomości struktury bazy)
Slajd 7
Problemy podczas instalacji 2/2
• Ważne jest
planowanie i harmonogramowanie prac
planowanie i harmonogramowanie prac
- pojawia się szereg problemów, np. konieczność
usunięcia błędów i wprowadzenia modyfikacji; należy
dążyć do zarezerwowania odpowiedniego czasu na
prace związane z instalacją pamiętając przy tym, że
użytkownicy nie mogą zaniechać wykonywania przez
nich bieżących prac
• O
pór użytkowników przed zmianą sposobu pracy
pór użytkowników przed zmianą sposobu pracy
-
często użytkownicy końcowi systemu są to osoby mniej
zaawansowane i na starcie nieufne do nowego
systemu; zwykle nie uczesniczyli bowiem w
poprzednich pracach prowadzących do powstania
systemu; bardzo ważne jest uzyskanie ich akceptacji
Slajd 8
Szkolenia i
wdrożenie
Slajd 9
Szkolenia i wdrożenie
• Część wstępna szkoleń
(najczęściej w
postaci seminarium, bez bezpośredniej pracy
użytkowników z systemem) może być
przeprowadzona jeszcze przed ukończeniem
systemu;
• Szkolenia muszą być dostosowane do
poziomu użytkowników
(np. odzielnie dla
użytkowników końcowych i administratorów
systemu) i powinny być organizowane w taki
sposób, aby osoby uczestniczące były
zainteresowane całością zagadnienia
Slajd 10
Szkolenia i wdrożenie 2/2
• Zaleca się
, aby szkolenia przeprowadzały
(lub przynajmniej je rozpoczynały)
osoby,
które były zaangażowane w prowadzenie
przedsięwzięcia
; jest im łatwiej nawiązać
kontakt z przyszłymi użytkownikami
• Bardzo często stosowane jest tzw.
nadzorowane korzystanie z systemu
(użytkownicy pracują w nowym systemie pod
kontrolą wdrożeniowca), często
równoległe
z tradycyjnym sposobem pracy
, po którym
następuje weryfikacja rezultatów
Slajd 11
Modyfikacje
oprogramowania
Slajd 12
Konserwacja i modyfikacja
oprogramowania
• Inne używane terminy to
pielęgnacja
lub
utrzymanie
(ang. maintenance)
• Konserwacja
polega na zapewnieniu
poprawnego i efektywnego funkcjonowania
systemu
poprzez wprowadzenie
niezbędnych modyfikacji
Slajd 13
Konserwacja i modyfikacja
oprogramowania
Istnieją trzy
główne klasy
wprowadzanych w
oprogramowaniu modyfikacji:
•
poprawiające
poprawiające
- polegają na usuwaniu z
oprogramowania wykrytych podczas normalnej pracy
błędów (nie zostały one wykryte podczas testowania) a
popełnionych w czasie analizy wymagań, projektowania
lub najczęściej implementacji
•
ulepszające
ulepszające
- polegają na poprawie jakości
oprogramowania,
•
dostosowujące
dostosowujące
- polegają na dostosowaniu
oprogramowania do zmian zachodzących w
wymaganiach użytkownika lub w środowisku pracy
oprogramowania
Slajd 14
Modyfikacje poprawiajce
• Wymaga się, aby wprowadzanie modyfikacji
polegało na zmianie
nie tylko kodu, ale
również dokumentacji
(np. projektu);
• Dzięki temu dysponujemy cały czas
spójną
dokumentacją i minimalizujemy ryzyko
związane z niekontrolowanymi zmianami
kodu
Slajd 15
Modyfikacje ulepszające
Przykłady modyfikacji ulepszających:
• Poprawa
wydajności istniejących
funkcji
(np. nowy algorytm
przetwarzania)
• Poprawa
ergonomii interfejsu
użytkownika
(np. automatyzacja
powtarzalnych operacji)
• Poprawa
przejrzystości raportów
lub
inne sposób prezentacji
Slajd 16
Modyfikacje dostosowujące
Modyfikacje dostosowujące wynikają ze:
• zmiany (rozszerzenia) wymagań
użytkowników
(np. nowy profil działalności)
• zmian przepisów prawnych
dotyczących
dziedziny problemu lub jego otoczenia
• zmian organizacyjnych
po stronie klienta (np.
inna forma własności lub zmiany terytorialne)
• zmian sprzętu i oprogramowania
systemowego
• zmian innych systemów
z którymi
współpracuje oprogramowanie (potrzeba
opracowania nowych interfejsów)
Slajd 17
Analiza celowości
wprowadzania modyfikacji 1/2
Użytkownicy zwykle zgłaszają wiele potencjalnych
usprawnień i modyfikacji
, które ich zdaniem są
wskazane lub niezbędne w pracy systemu;
należy
podchodzić do takich propozycji z należytą
uwagą, ale i odpowiednim krytycyzmem
Dopiero
po dokonaniu oceny zmiany
podejmowana
jest decyzja o jej ewentualnej realizacji; w przypadku
bardzo
dużych przedsięwzięć
może zostać powołana
w tym celu
specjalna komisja
Zaleca się grupowanie zmian
, których wykonanie
prowadzi do nowej wersji systemu
Slajd 18
Analiza celowości
wprowadzania modyfikacji 2/2
Analiza celowości wprowadzenia zmian powinna
uwzględniać:
• znaczenie
wprowadzenia zmiany dla
użytkowników
• koszt
wprowadzenia zmiany i uzyskane
korzyści
• ocenę ryzyka
destabilizacji normalnej pracy
w wyniku błędu nowej części
• wpływ zmiany
na poszczególne
składowe
systemu
• wpływ zmiany
na poszczególne
składowe
dokumentacji technicznej
Slajd 19
Konserwacja
oprogramowania
Slajd 20
Koszty konserwacji oprogramowania
1/2
• Występuje tendencja, aby
zbyt nisko
oceniać koszt konserwacji
; okazuje się
jednak, że koszty te mogą być bardzo duże,
zwłaszcza w przypadku organizacji
funkcjonujących w zmiennym środowisku
• Niedocenianie nakładów pracy
na
konserwację jest jedną z
głównych
przyczyn opóźnień przedsięwzięć
i tylko
częściowego ich wykorzystania
Slajd 21
Koszty konserwacji oprogramowania
2/2
Obiektywne czynniki wpływające na koszty konserwacji:
• Stabilność środowiska
w którym pracuje system -
zmiany zachodzące w przepisach prawnych, zmiany
struktury organizacyjnej i sposobów działania po
stronie klienta prowadzą do zmian wymagań wobec
systemu
• Stabilność platformy sprzętowej i
oprogramowania
systemowego - wymiana sprzętu
może skutkować koniecznością dostosowania systemu
• Czas użytkowania systemu
- całkowite koszty
konserwacji oczywiście rosną, gdy system jest
eksploatowany przez dłuższy czas
Slajd 22
Czynniki redukcji
kosztów konserwacji
1/4
•
Znajomość dziedziny problemu
Znajomość dziedziny problemu
- jeżeli
analitycy pracujący nad systemem dobrze
znają daną dziedzinę problemu, mają mniej
trudności z właściwym zebraniem wymagań
oraz budową oddającego rzeczywistość
modelu; możliwe jest również przewidzenie i
uwzględnienie potencjalnych kierunków
rozwoju systemu
• Wysoka
jakość modelu i projektu
jakość modelu i projektu
, w
szczególności jego spójność, stopień
powiązania składowych oraz przejrzystość
Slajd 23
Czynniki redukcji
kosztów konserwacji
2/4
• Wysoka
jakość dokumentacji technicznej
jakość dokumentacji technicznej
(powinna w pełni odpowiadać systemowi, być
wystarczająco szczegółowa i zgodna z
przyjętymi w firmie standardami)
•
Stabilność personelu
Stabilność personelu
- niezależnie od jakości
dokumentacji, pewne aspekty systemu są
znane lepiej osobom bezpośrednio
uczestniczącym w realizacji; nie muszą one
dokonywać modyfikacji, ale dobrze jest gdy
mogą wspomagać innych poprzez konsultacje
w momencie pojawienia się wątpliwości
Slajd 24
Czynniki redukcji
kosztów konserwacji
3/4
•
Środowisko implementacji
Środowisko implementacji
- odpowiednio
zaawansowane i niezawodne narzędzia (np. RAD) sprzyjają
skróceniu czasu niezbędnego na wprowadzenie
modyfikacji
•
Niezawodność oprogramowania
Niezawodność oprogramowania
- wysoka niezawodność
systemu przekazanego klientowi zmniejsza liczbę
modyfikacji zwłaszcza o charakterze poprawiającym
•
Inżynieria odwrotna
Inżynieria odwrotna
(ang. reverse engineering) -
odtwarzanie dokumentacji technicznej na podstawie
istniejącego oprogramowania; daje się w pewnym zakresie
automatyzować, ale może wymagać dodatkowej korekty
•
Zarządzanie wersjami
Zarządzanie wersjami
Slajd 25
Czynniki redukcji
kosztów konserwacji
4/4
Wiele działań zmierzających do
redukcji kosztów konserwacji musi
być podjęte już w fazie budowy
systemu.
C
a
łk
o
w
it
y
k
o
sz
t
Koszt
konserwacji
Koszt
budowy
System 1 System 2
Slajd 26
Narzędzia i metody konserwacji
oprogramowania 1/2
Używane są wszystkie narzędzia stosowane do
analizy, projektowania, konstruowania i
testowania oprogramowania a także specjalne
narzędzia i metody:
•
Narzędzia nawigacyjne
Narzędzia nawigacyjne
- umożliwiają szybkie i
łatwe znalezienie interesujących części
oprogramowania; typowe możliwości:
-identyfikacja miejsc użycia zmiennych,
-identyfikacja modułów,
-wyświetlenie grafu wołań procedur,
-wyświetlenie drzewa deklaracji typów danych.
Slajd 27
Narzędzia i metody konserwacji
oprogramowania 2/2
•
Narzędzia poprawiania kodu
Narzędzia poprawiania kodu
- umożliwiają
reformatowanie i restrukturalizację kodu programu
(pretty printers)
•
Narzędzia inżynierii odwrotnej
Narzędzia inżynierii odwrotnej
- umożliwiające
odtworzenie bardziej abstrakcyjnej postaci
oprogramowania z postaci szczegółowej (np.
odtworzenie dokumentacji technicznej na podstawie
kodu programu, odtworzenie źródłowego kodu
programu na podstawie kodu skompilowanego
(dekompilacja), odtworzeniu modelu logicznego bazy
danych na podstawie jej fizycznej struktury,
odtworzenie pojęciowego diagramu klas na podstawie
deklaracji w języku programowania, ...)
Slajd 28
Faza konserwacji -
zgłaszanie problemów 1/3
Problemy mogą wynikać z wielu powodów:
-
błędy
w oprogramowaniu,
- brak
funkcji
, które okazały się istotne,
-
ograniczenia
, których nie uwzględniono lub
które się
pojawiły,
-
zmiany
w środowisku systemu;
Każde zgłoszenie powininno być ocenione odnośnie
odpowiedzialności za problem (kto ma ponosić
koszt)
Slajd 29
Faza konserwacji -
zgłaszanie problemów 2/3
Użytkownicy dokumentują problemy
powstałe podczas działania systemu
w
specjalnym dokumencie
(np. Zgłoszenie
Problemu z Oprogramowaniem
);
);
nie powinny to być problemy związane z
brakiem wiedzy
u użytkownika.
Slajd 30
Faza konserwacji -
zgłaszanie problemów 3/3
Każde zgłoszenie powininno precyzować dokładnie
jeden problem:
• Nazwę elementu
konfiguracji oprogramowania
(wersję lub wydanie tego elementu)
• Priorytet problemu
w stosunku do innych
problemów (priorytet ma dwa wymiary:
krytyczność - na ile problem jest istotny dla
funkcjonowania systemu, oraz pilność -
maksymalny czas usunięcia problemu)
• Opis problemu
• Opis środowiska
operacyjnego
• Zalecane
rozwiązanie problemu
(o ile
użytkownik jest je w stanie określić)
Slajd 31
Faza konserwacji -
zlecanie zmian 1/2
Zgłoszenie jest
analizowane przez wykonawcę
;
może być zaakceptowane, odrzucone lub mogą
być podjęte negocjacje z klientem celem
ustalenia warunków (np. finansowych,
czasowych) wprowadzenia zmian
Tworzony jest dokument
Zlecenie Zmiany w
Oprogramowaniu,
który zawiera:
• Nazwę
elementu konfiguracji oprogramowania
(wersję lub wydanie tego elementu)
• Wymagane
zmiany
• Priorytet
zlecenia (krytyczność, pilność)
• Personel
odpowiedzialny
• Szacunkową
datę początku, datę końca i
pracochłonność w osobo-dniach
• Jakości
Slajd 32
Faza konserwacji -
ocena efektu zmian 1/2
Zlecenie jest realizowane przez wyznaczony personel
(zmiany kodu i odpowiednich dokumentów
opisujących oprogramowanie); powstaje
Raport z
Modyfikacji Oprogramowania
określający
dokonane modyfikacje; następnie
ocenie mogą
podlegać następujące aspekty:
• Wydajność
(szybkość) oprogramowania
• Zużycie zasobów
(pamięci dyskowej, czasu
procesora, pamięci operacyjnej)
• Stopień powiązania
elementów systemu i
niezależność zmienianego elementu (od pozostałych
elementów oprogramowania)
Slajd 33
Faza konserwacji -
ocena efektu zmian
• Złożoność
(o ile została zmieniona)
• Spójność
(odstępstwa od reguły spójności, np. interfejsów
użytkownika)
• Przenaszalność
(czy oprogramowanie będzie działać na
innej platformie)
• Niezawodność
(czy zmiana mogła spowodować jej
obniżenie)
• Podatność na konserwację
(czy nie została obniżona;
wszelkie ewentualne odstępstwa od przyjętych standardów)
• Bezpieczeństwo
(czy zmiana nie tworzy zagrożenia dla
działalności klienta)
• Ochrona
(czy zmiana nie powoduje wyłomów w ochronie
systemu)
Slajd 34
O czym był wykład?
• Instalacja systemu informatycznego
• Szkolenia i wdrożenie
• Modyfikacje oprogramowania
• Konserwacja oprogramowania
-Analiza celowości wprowadzania modyfikacji
-Koszty konserwacji oprogramowania
-Czynniki redukcji kosztów konserwacji
-Narzędzia i metody konserwacji
oprogramowania
-Faza konserwacji (zgłaszanie problemów,
zlecanie
zmian, ocena efektu zmian)