• Nie Znaleziono Wyników

Modyfikacja oprogramowania

N/A
N/A
Protected

Academic year: 2021

Share "Modyfikacja oprogramowania"

Copied!
28
0
0

Pełen tekst

(1)

Modyfikacja oprogramowania

 Omówienie zagadnień związanych

z modyfikacją oprogramowania

(2)

Wstęp - Potrzeba modyfikacji oprogramowania

Niezależnie od wielkości nie da się zbudować systemu, którego nie będzie trzeba zmieniać.

Modyfikacja oprogramowania jest więc istotnym zagadnieniem, ponieważ większość firm całkowicie zależy od swoich systemów oprogramowania, w które zainwestowały miliony.

Zatem firmy muszą inwestować w modyfikację systemu,

aby utrzymywać ich wartość.

(3)

Strategie modyfikowania oprogramowania

Pielęgnacja oprogramowania. Oprogramowanie jest zmieniane w odpowiedzi na zmiany wymagań, ale zasadnicza struktura oprogramowania pozostaje niezmieniona.

Przekształcenie architektoniczne. Jest to bardziej radykalne podejście do modyfikacji oprogramowania, ponieważ polega na wprowadzeniu znacznych zmian w architekturze systemu oprogramowania.

Restrukturyzacja oprogramowania. System jest

modyfikowany w celu zwiększenia jego zrozumiałości i

ułatwienia zmian. Nie dokłada się nowej funkcjonalności do

systemu.

(4)

Dynamika ewolucji programów to studium zmiany systemu.

Większość wyników w tej dziedzinie przypisuje się Lehmanowi i Belady’emu (1985), którzy jako wynik swych studiów sformułowali pewien zbiór „praw” zmiany systemu (tzw. prawa Lehmana).

Autorzy uważają, że „prawa” są niezmienne i mają szerokie zastosowania.

1.Dynamika ewolucji programów

(5)

Prawa Lehmana

Prawo Opis

Ustawiczna Program użytkowy w rzeczywistym środowisku nieuchronnie musi podlegać zmiana zmianom albo stawać się coraz mniej użyteczny w tym środowisku.

Rosnąca W miarę jak ewoluujący program zmienia się, jego struktura staje się coraz złożoność bardziej złożona. Na zachowywanie i upraszczanie struktury trzeba

przeznaczyć dodatkowe zasoby.

Ewolucja Ewolucja programu jest samoregulującym się procesem. Atrybuty systemu, ogromnych takie jak wielkość, czas między wydaniami i liczba zgłoszonych błędów, są programów w przybliżeniu takie same dla wszystkich wydań systemów.

Stabilność W czasie życia programu tempo jego rozwoju jest w przybliżeniu stałe organizacyjna i niezależne od zasobów przeznaczonych na zbudowanie systemu.

Stała W czasie życia systemu przyrostowa zmiana jest stała w każdym wydaniu.

(6)

2.Pielęgnacja oprogramowania

Pielęgnacja oprogramowania to ogólny proces zmieniania systemu po jego dostarczeniu.

Mogą to być proste zmiany w celu poprawienia błędów w kodzie, bardziej intensywne w celu poprawienia błędów projektowych, a nawet znaczne rozszerzenia w celu poprawienia błędów w specyfikacji lub spełnienia nowych wymagań.

Pielęgnacja oprogramowania zwykle nie obejmuje dużych zmian architektonicznych systemu.

Zmiany implementuje się przez modyfikacje istniejących

komponentów systemu oraz, gdy jest to konieczne, przez

dodawanie nowych komponentów.

(7)

Pielęgnacja w celu naprawy usterek oprogramowania. Poprawienie błędów w kodzie jest zwykle dość tanie. Błędy projektowe są znacznie kosztowniejsze, ponieważ ich poprawienie może wymagać przepisania kilku komponentów programów.

Pielęgnacja w celu dostosowania oprogramowania do innego środowiska operacyjnego. Ten rodzaj pielęgnacji jest niezbędny, gdy pewien element środowiska systemu, taki jak sprzęt, system operacyjny platformy lub oprogramowanie pomocnicze, ulega zmianie.

Pielęgnacja w celu rozszerzenia lub zmodyfikowania funkcjonalności systemu. Ten rodzaj pielęgnacji jest niezbędny, gdy zmienia się wymagania systemowe w odpowiedzi na zmiany gospodarcze i organizacyjne.

Różne rodzaje pielęgnacji

oprogramowania

(8)

Statystyczny nakład odział pracy przy pielęgnacji

(65%) (17%)

(18%)

Naprawienie usterek

Dodawanie

i modyfikowanie funkcjonalności Przystosowywanie

oprogramowania

(9)

Model spiralny tworzenia

Działanie

Specyfikowanie Implementowanie

Zatwierdzanie Początek

Wydanie 1

Wydanie 2 Wydanie 3

(10)

Stabilność zespołu. Po dostarczeniu systemu zespół wytwórczy jest zwykle rozwiązywany, a jego członkowie przechodzą do nowych przedsięwzięć. Nowy zespół albo osoby odpowiedzialne za pielęgnację systemu nie znają go ani przyczyn podjętych decyzji projektowych.

Zobowiązania umowne. Umowa na pielęgnację systemu jest zwykle oddzielona od umowy na budowę systemu. Umowa pielęgnacyjna może być podpisana z inna firmą, a nie wytwórcą pierwotnego systemu. Ten czynnik wraz z brakiem stabilności zespołu oznacza, że zespół wytwórczy nie ma motywacji do pisania oprogramowania tak, aby było łatwe do modyfikacji.

Umiejętności personelu. Personel pielęgnujący ma często małe doświadczenie i nie jest obznajomiony z dziedziną zastosowania. Pielęgnacja nie jest dobrze postrzegana przez inżynierów oprogramowania. Uważa się ją za proces wymagający mniej umiejętności niż tworzenie systemu i przydziela do niej najmłodszych pracowników.

Co więcej, stare systemy mogą być napisane w przestarzałych językach programowania.

Wiek i struktura systemu. W miarę starzenia się programu jego struktura ulega degradacji w wyniku zmian. Takie systemy jest więc trudniej zrozumieć i modyfikować.

Główne czynniki, które różnią tworzenie i pielęgnację,

i powodują wyższe koszty pielęgnacji

(11)

Proces pielęgnacji

Procesy pielęgnacji mogą znacznie się od siebie różnić zależnie od rodzaju pielęgnowanego oprogramowania, przyjętego w firmie procesu tworzenia i osób uczestniczących w tym procesie.

W niektórych przedsiębiorstwach pielęgnacja jest procesem nieformalnym, z kolei w innych firmach jest to sformalizowany proces ze strukturalną dokumentacją opracowaną na każdym etapie procesu.

Na poziomie abstrakcyjnym wszystkie procesy pielęgnacji

obejmują jednak te same zasadnicze czynności: analizę

zmiany, planowanie wydania, implementację systemu i

przekazanie systemu użytkownikom.

(12)

Szkic procesu pielęgnacji

Analiza wpływu Analiza wpływu

Naprawa usterek Naprawa

usterek Dostosowanie do platformy Dostosowanie

do platformy Rozszerzenie systemu Rozszerzenie

systemu

Wydanie systemu Wydanie

systemu Implementacja

zmiany Implementacja

zmiany Planowanie

wydania Planowanie

wydania Żądana

zmiana Żądana zmiana

(13)

Implementacja zmiany

Proponowane zmiany Proponowane

zmiany Tworzenie

oprogramowania Tworzenie oprogramowania Aktualizacja

wymagań Aktualizacja

wymagań Analiza

wymagań Analiza wymagań

(14)

Proces awaryjnej naprawy

Dostarcz zmodyfikowany

system Dostarcz zmodyfikowany

system Zmodyfikuj kod

źródłowy Zmodyfikuj kod

źródłowy Zanalizuj kod

źródłowy Zanalizuj kod

źródłowy Żądanie

zmian Żądanie zmian

(15)

Przewidywanie pielęgnacji

Menedżerowie nienawidzą niespodzianek, jeśli ich

wynikiem są nieoczekiwanie wysokie koszty. Z ich

punktu widzenia warto więc starać się przewidywać,

jakie żądania zmian systemu prawdopodobnie się

pojawią, które części systemu prawdopodobnie

sprawią personelowi pielęgnującemu największe

trudności oraz jakie będą całkowite koszty pielęgnacji

systemu w ustalonym okresie.

(16)

Przewidywanie pielęgnacji

Których części systemu będą najczęściej dotyczyły żądani zmian?

Których części systemu będą najczęściej dotyczyły żądani zmian?

Jak dużo spodziewamy się żądań zmian?

Jak dużo spodziewamy się żądań zmian?

Które części systemu będą najdroższe

w pielęgnacji?

Które części systemu będą najdroższe

w pielęgnacji?

Jaki będzie koszt pielęgnacji systemu w czasie całego jego życia?

Jaki będzie koszt pielęgnacji systemu w czasie całego jego życia?

Jakie będą koszty pielęgnacji systemu Przewidywanie

zdatności do pielęgnacji

Przewidywanie zmian systemu

Przewidywanie kosztów pielęgnacji

(17)

Czynniki mające wpływ na konieczność pielęgnacji.

Liczba i złożoność interfejsów systemu. Im większa jest liczba i złożoność tych interfejsów, tym większe jest prawdopodobieństwo pojawienia się oczekiwań zmian.

Liczba z natury płynnych wymagań systemu. Wymagania odzwierciedlające firmowe strategie i procedury są zwykle bardziej zmienne niż wymagania, których podstawą są stabilne właściwości dziedziny.

Procesy gospodarcze, w których używa się systemu. W

miarę ewolucji procesów gospodarczych powstają żądania

zmian systemu. Im bardziej w procesach gospodarczych

korzysta się z systemu, tym więcej pojawi się oczekiwań

(18)

Przykłady miar procesowych przy ocenie zdatności do pielęgnacji

Liczba żądań pielęgnacji korygujących. Jeśli rośnie liczba zgłoszonych awarii, być może w trakcie procesu pielęgnacji liczba nowych błędów wprowadzonych do programu jest większa niż liczba naprawianych błędów.

Średni czas niezbędny do wykonania analizy wpływu.

Odzwierciedla liczbę komponentów programu, na które oddziałują żądania zmian.

Średni czas spędzony nad implementacją żądania zmiany. Czas trwania zmiany zależy od trudności jej zaprogramowania.

Liczba oczekujących żądań zmian. Jeśli ta liczba rośnie z czasem,

może to oznaczać zmniejszenie zdatności do pielęgnacji.

(19)

3.Ewolucja architektoniczna

W trakcie pielęgnacji systemu wprowadzone zmiany są lokalne; nie wpływają na architekturę systemu.

Od lat osiemdziesiątych XX wieku ekonomia systemów komputerowych zmieniała się jednak radykalnie.

Najbardziej opłacalnym rozwiązaniem problemów gospodarczych jest często system rozproszony, a nie scentralizowany.

Wiele firm staje więc przed koniecznością przeobrażenia

swoich scentralizowanych systemów na komputerach

głównych w systemy klient-serwer bądź w systemy

rozproszone.

(20)

Bodźce, które przyczyniają się do przemiany

Koszt sprzętu. Koszt zakupu i utrzymania rozproszonego systemu klient-serwer jest zwykle znacznie mniejszy niż koszt zakupu komputera głównego o takiej samej mocy.

Oczekiwania wobec interfejsu użytkownika. Wiele odziedziczonych systemów na komputerach głównych oferuje znakowy interfejs formularzowy. Większość użytkowników oczekuje obecnie interfejsów graficznych i łatwiejszej interakcji z systemem.

Rozproszony dostęp do systemu. Firmy coraz bardziej rozpraszają swoje struktury i nie utrzymują wszystkich udogodnień w jednym ośrodku. Ich systemy komputerowe muszą być dostępne z wielu miejsc i za pomocą rozmaitych rodzajów sprzętu.

Niezawodność dostępu do systemu. Każda niedostępność usługi wiąże się z

potencjalną stratą zysków.

(21)

Czynniki wpływające na decyzje o rozproszeniu systemu

Czynnik Opis

Znaczenie Stopa zwrotu z inwestycji w rozproszenie systemu odziedziczonego zależy gospodarcze od znaczenia dla przedsiębiorstwa i tego, jak długo się ono utrzyma. Jeśli

rozproszenie skutecznie wspomaga stabilne procesy gospodarcze, to prawdopodobnie będzie to bardziej opłacalna strategia ewolucyjna.

Wiek systemu Im starszy jest system, tym trudniej jest modyfikować jego architekturę, ponieważ wcześniejsze zmiany pogorszyły strukturę systemu.

Struktura systemu Im system jest bardziej modularny, tym łatwiej jest zmienić jego architekturę.

Jeśli usługi użytkowe, zarządzanie danymi i interfejs użytkownika są w systemie ściśle splecione, to trudno będzie wydzielić funkcje przy

przekształceniu.

Strategie Rozproszenie programu użytkowego może być konieczne, jeśli w firmie zaopatrywania przyjęto strategię wymiany drogich komputerów głównych na tańsze się w sprzęt serwery.

(22)

Idealna i realistyczna struktura systemu odziedziczonego

Interfejs użytkownika

Usługi

Interfejs użytkownika

Usługi

Baz danych

Baz danych

Model idealny do rozproszenia Prawdziwe systemy odziedziczone

(23)

Rozproszenie systemu odziedziczonego

Baza danych

Warstwa śródprogramowa (osłona) Warstwa śródprogramowa (osłona)

System odziedziczony

System odziedziczony

Biurkowe komputery osobiste z uruchomionym programem użytkowym

Interfejs użytkownika

Usługi użytkowe

System

odziedziczony

(24)

Rozproszenie interfejsu użytkownika

Wiele systemów odziedziczonych zaprojektowano, zanim pojawiły się graficzne interfejsy użytkownika.

Takie systemy obejmowały interfejsy formularzowe działające na specjalnych terminalach, które mogły wyświetlać jedynie znaki.

Te terminale miały ograniczoną moc obliczeniową i właściwości wyświetlania, a zatem wyświetlanie i wszystkie związane z nim funkcje obliczeniowe były obsługiwane przez centralny system komputera głównego.

Nawet po zastąpieniu tych terminali przez komputery osobiste te

znakowe interfejsy są nadal w użyciu dzięki programom

naśladującym terminale na komputerze osobistym.

(25)

Rozproszenie interfejsu użytkownika

Baza danych

Opis ekranów

Biurkowe komputery osobiste z interfejsem graficznym

Śródprogram zarządzający

ekranami Usługi

użytkowe

Interfejs użytkownika

System odziedziczony

(26)

Wady i zalety strategii przenoszenia interfejsu użytkownika

Strategia Zalety Wady

Implementacja Dostęp do wszystkich funkcji Zależność od platformy z użyciem interfejsu użytkownika, a więc Trudniej osiągnąć spójność systemu okienkowego brak ograniczeń przy projekto- interfejsu

-waniu interfejsu.

Lepsza efektywność interfejsu użytkownika.

Implementacja Niezależność od platformy Potencjalnie gorsza z użyciem Niższe koszty szkolenia dzięki efektywność

przeglądarki WWW temu, że użytkownicy znają Projekt interfejsu jest

WWW ograniczony przez właści- Łatwiej osiągnąć spójność -wości przeglądarek WWW interfejsu

(27)

Opracowne na podstawie:

Ian Sommerville 2000

Inżynieria oprogramowania.

Ewolucja i refaktoryzacja oprogramowania.

Cytaty

Powiązane dokumenty

„muszę być jak najbardziej zbieżny z działaniem X, lecz jednocześnie, gdy to mi się uda, muszę prowa- dzić działania rozbieżne z X”. W takiej sytuacji otrzymuje

W dokonanym przez Jana Błońskiego wyborze esejów Barthes'a Mit i znak znalazło się pięć rozpraw krytycznych ze zbioru Pism o teatrze, poświęconych Brechtowi.. Cały

ljcji rządowej, który przewiduje ograniczę nie agitacji wyborczej w okresie świąt Wielkanocnych. Klub ten postanowił się sprzeciwić temu wnioskowi, jak również

Wystarczy użyć nazwy pliku bez ścieżki, ponieważ plik znajduje się w tym samym folderze, co program, który go używa.. Cały temat folderów i katalogów, ścieżek,

„…To jest przykład silnie sformalizowanego systemu, w którym po- jawia się coraz więcej dokumentacji… niektórzy mówią, że na przy- kład system jakości zrobił się

cji przedniojęzykowa artykulacja spółgłoski zapisywanej literą C/c przed samogłoskami /i/ oraz /e/, a także wymowa ae jako pojedyn ­ czej samogłoski /e/ zaczęły być

Ze względu na łagodny profil działań nie- pożądanych selektywne inhibitory wychwytu zwrotnego serotoniny (selective serotonin reuptake inhibitors, SSRI) są najczęściej sto-

Wpływy początku eksploatacji, s więc dynamicznego kształtowania się niecki obnizeniowej na powierzcnni terenu na obiekty liniowe stały się tematem niniejszego