modyfikacja oprogramowania

27
Modyfikacja oprogramowania 1 Modyfikacja oprogramowania Omówienie zagadnień związanych z modyfikacją oprogramowania

Upload: riona

Post on 21-Jan-2016

49 views

Category:

Documents


0 download

DESCRIPTION

Modyfikacja oprogramowania. Omówienie zagadnień związanych z modyfikacją oprogramowania. Wstęp - Potrzeba modyfikacji oprogramowania. Niezależnie od wielkości nie da się zbudować systemu, którego nie będzie trzeba zmieniać. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Modyfikacja oprogramowania

Modyfikacja oprogramowania 1

Modyfikacja oprogramowania

Omówienie zagadnień związanych z modyfikacją oprogramowania

Page 2: Modyfikacja oprogramowania

Modyfikacja oprogramowania 3

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ść.

Page 3: Modyfikacja oprogramowania

Modyfikacja oprogramowania 4

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.

Page 4: Modyfikacja oprogramowania

Modyfikacja oprogramowania 5

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

Page 5: Modyfikacja oprogramowania

Modyfikacja oprogramowania 6

Prawa LehmanaPrawo 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ę corazzł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łeorganizacyjna 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.zmienność

Page 6: Modyfikacja oprogramowania

Modyfikacja oprogramowania 7

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.

Page 7: Modyfikacja oprogramowania

Modyfikacja oprogramowania 8

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

Page 8: Modyfikacja oprogramowania

Modyfikacja oprogramowania 9

Statystyczny nakład odział pracy przy pielęgnacji

(65%)

(17%)

(18%)

Naprawienieusterek

Dodawanie i modyfikowaniefunkcjonalności

Przystosowywanieoprogramowania

Page 9: Modyfikacja oprogramowania

Modyfikacja oprogramowania 10

Model spiralny tworzenia

Działanie

Specyfikowanie Implementowanie

Zatwierdzanie

Początek

Wydanie 1

Wydanie 2

Wydanie 3

Page 10: Modyfikacja oprogramowania

Modyfikacja oprogramowania 11

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

Page 11: Modyfikacja oprogramowania

Modyfikacja oprogramowania 12

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.

Page 12: Modyfikacja oprogramowania

Modyfikacja oprogramowania 13

Szkic procesu pielęgnacji

Analizawpływu

Analizawpływu

Naprawausterek

Naprawausterek

Dostosowaniedo platformy

Dostosowaniedo platformy

Rozszerzenie systemu

Rozszerzenie systemu

Wydaniesystemu

Wydaniesystemu

Implementacjazmiany

Implementacjazmiany

Planowaniewydania

Planowaniewydania

Żądanazmiana

Żądanazmiana

Page 13: Modyfikacja oprogramowania

Modyfikacja oprogramowania 14

Implementacja zmiany

Proponowanezmiany

Proponowanezmiany

Tworzenieoprogramowania

Tworzenieoprogramowania

Aktualizacjawymagań

Aktualizacjawymagań

Analizawymagań

Analizawymagań

Page 14: Modyfikacja oprogramowania

Modyfikacja oprogramowania 15

Proces awaryjnej naprawy

Dostarczzmodyfikowany

system

Dostarczzmodyfikowany

system

Zmodyfikuj kodźródłowy

Zmodyfikuj kodźródłowy

Zanalizuj kodźródłowy

Zanalizuj kodźródłowy

Żądaniezmian

Żądaniezmian

Page 15: Modyfikacja oprogramowania

Modyfikacja oprogramowania 16

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.

Page 16: Modyfikacja oprogramowania

Modyfikacja oprogramowania 17

Przewidywanie pielęgnacji

Których części systemubędą najczęściej

dotyczyły żądani zmian?

Których części systemubędą najczęściej

dotyczyły żądani zmian?

Jak dużo spodziewamysię żądań zmian?

Jak dużo spodziewamysię żądań zmian?

Które części systemubędą najdroższew pielęgnacji?

Które części systemubędą najdroższew pielęgnacji?

Jaki będzie kosztpielęgnacji systemu

w czasie całego jego życia?

Jaki będzie kosztpielęgnacji systemu

w czasie całego jego życia?

Jakie będą kosztypielęgnacji systemuw następnym roku?

Przewidywaniezdatności

do pielęgnacji

Przewidywaniezmian systemu

Przewidywaniekosztów

pielęgnacji

Page 17: Modyfikacja oprogramowania

Modyfikacja oprogramowania 18

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ń zmiany systemu.

Page 18: Modyfikacja oprogramowania

Modyfikacja oprogramowania 19

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.

Page 19: Modyfikacja oprogramowania

Modyfikacja oprogramowania 20

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.

Page 20: Modyfikacja oprogramowania

Modyfikacja oprogramowania 21

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.

Page 21: Modyfikacja oprogramowania

Modyfikacja oprogramowania 22

Czynniki wpływające na decyzje o rozproszeniu systemu

Czynnik OpisZnaczenie 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, toprawdopodobnie 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ńszesię w sprzęt serwery.

Page 22: Modyfikacja oprogramowania

Modyfikacja oprogramowania 23

Idealna i realistyczna struktura systemu odziedziczonego

Interfejsużytkownika

Usługi

Interfejsużytkownika

Usługi

Baz danychBaz danych

Model idealny do rozproszenia Prawdziwe systemy odziedziczone

Page 23: Modyfikacja oprogramowania

Modyfikacja oprogramowania 24

Rozproszenie systemu odziedziczonego

Bazadanych

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

Systemodziedziczony

Systemodziedziczony

Biurkowe komputery osobiste z uruchomionym programem użytkowym

Interfejs użytkownika

Usługi użytkowe

Systemodziedziczony

Page 24: Modyfikacja oprogramowania

Modyfikacja oprogramowania 25

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.

Page 25: Modyfikacja oprogramowania

Modyfikacja oprogramowania 26

Rozproszenie interfejsu użytkownika

Bazadanych

Opis ekranów

Biurkowe komputery osobistez interfejsem graficznym

Śródprogramzarządzający

ekranami

Usługiużytkowe

Interfejs użytkownika

Systemodziedziczony

Page 26: Modyfikacja oprogramowania

Modyfikacja oprogramowania 27

Wady i zalety strategii przenoszenia interfejsu użytkownikaStrategia Zalety WadyImplementacja Dostęp do wszystkich funkcji Zależność od platformyz użyciem interfejsu użytkownika, a więc Trudniej osiągnąć spójnośćsystemu okienkowego brak ograniczeń przy projekto- interfejsu

-waniu interfejsu.Lepsza efektywność interfejsuuż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 WWWinterfejsu

Page 27: Modyfikacja oprogramowania

Modyfikacja oprogramowania 28

Opracowne na podstawie:

Ian Sommerville 2000

Inżynieria oprogramowania.

Ewolucja i refaktoryzacja oprogramowania.