Modyfikacja oprogramowania1 Modyfikacja oprogramowania l Omówienie zagadnień związanych z modyfikacją oprogramowania.

Slides:



Advertisements
Podobne prezentacje
Leszek Smolarek Akademia Morska w Gdyni 2005/2006
Advertisements

SKUTECZNOŚĆ i EFEKTYWNOŚĆ SYSTEMU
Prezentacja na temat: Porównanie Windows XP i Windows 7
Projektowanie w cyklu życia oprogramowania
Role w zespole projektowym
Inżynieria Oprogramowania 6. Projektowanie architektoniczne
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 1 Restrukturyzacja oprogramowania l Reorganizowanie i modyfikowanie istniejącego.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Prototypowanie oprogramowania l Błyskawiczne tworzenie oprogramowania służące.
Projektowanie Aplikacji Komputerowych
Architektura systemu Gra strategiczna „Strusia Jama”
SYSTEM ZARZĄDZANIA JAKOŚCIĄ
10 błędów / wg E. Cochran’a /
Rachunek kosztów planowanych – zagadnienia podstawowe
Cykle życia oprogramowania
KOSZTY PRODUKCJI BUDOWLANEJ
Pomiary w inżynierii oprogramowania
Administracja zintegrowanych systemów zarządzania
Jakość systemów informacyjnych (aspekt eksploatacyjny)
Wzorce projektowe w J2EE
1 Podstawy informatyki H. P. Janecki- 2006_ Systemy Operacyjne W6.
Praca Inżynierska „Analiza i projekt aplikacji informatycznej do wspomagania wybranych zadań ośrodków sportowych” Dyplomant: Marcin Iwanicki Promotor:
Analiza i ocena procesów wdrożeniowych systemów klasy MRP/ERP w firmie
Proces tworzenia oprogramowania
Analiza, projekt i częściowa implementacja systemu obsługi kina
Wykład 2 Cykl życia systemu informacyjnego
Zarządzanie projektami
Zarządzanie projektami
C.d. wstępu do tematyki RUP
SIEĆ P2P 1. Definicja sieci równouprawnionej. To taka sieć, która składa się z komputerów o takim samym priorytecie ważności, a każdy z nich może pełnić.
Koszty produkcji w długim okresie Opracowano na podstawie M. Rekowski.
Wykonawcy:Magdalena Bęczkowska Łukasz Maliszewski Piotr Kwiatek Piotr Litwiniuk Paweł Głębocki.
Rozwój aplikacji przy wykorzystaniu ASP.NET
Kompleksowe zarządzanie jakością informacji (TIQM)
Budowa systemu komputerowego
Microsoft Solution Framework
Zadania gospodarki smarowniczej w przedsiębiorstwie przemysłowym
Wymiana integracja ? oprogramowania dr Danuta Kajrunajtys.
Rational Unified Process Implementacja Aleksandra Reiman, gr. I-52.
„Kalkulator zużycia oraz kosztu energii elektrycznej online „
Dr Karolina Muszyńska Na podst.:
Zarządzanie Projektami
MS Excel - wspomaganie decyzji
Proces tworzenia oprogramowania
©Ian Sommerville 2000Inżynieria oprogramowania, Rozdział 4 Slide 1 Zarządzanie przedsięwzięciami l Zarządzający programowaniem odpowiadają za planowanie.
Waterfall model.
Walidacja danych alina suchomska.
Zarządzanie zagrożeniami
Ocena projektów inwestycyjnych
System Zarządzania Bazą Danych
Proces tworzenia oprogramowania Proces tworzenia oprogramowania jest zbiorem czynności i związanych z nimi wyników, które prowadzą do powstania produktu.
Teoria równowagi ogólnej Urszula Mazek Mark Blaug „Metodologia Ekonomi"
Eksploatacja zasobów informatycznych przedsiębiorstwa.
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 14Slide 1 Projektowanie z użyciem wielokrotnym l Jak w procesie projektowania systemu można ponownie.
7/1/ Projektowanie Aplikacji Komputerowych Piotr Górczyński Cykl życia systemu.
Logical Framework Approach Metoda Macierzy Logicznej
Struktura systemu operacyjnego
Moduł e-Kontroli Grzegorz Dziurla.
MACHINE REPAIR Symulacja z arkuszem kalkulacyjnym Magdalena Gołowicz Agnieszka Paluch.
Ważone indeksy w badaniu podmiotów ekonomii społecznej Marek Bożykowski
Punkt Informacyjny Funduszy Europejskich, styczeń 2014 r.
Temat: Porównanie technologii php,c# oraz javascript na przykładzie webaplikacji typu społecznościowy agregator treści Autor: Wojciech Ślawski.
Architektura Rafał Hryniów. Architektura Wizja projektu systemu, którą dzielą twórcy Struktura komponentów systemu, ich powiązań oraz zasad i reguł określających.
ANALIZA WARTOŚCI PRZEDSIĘWZIĘĆ PROJEKTOWYCH ZE SZCZEGÓLNYM UWZGLĘDNIENIEM KRYTERIUM ICH EFEKTYWNOŚCI Bartłomiej Czekaj Numer albumu: 1892 Promotor: Prof.
Cykle życia oprogramowania oraz role w zespole projektowym Autor: Sebastian Szałachowski s4104.
Kontrolowanie Mateusz Turczyn.
Wady i zalety pracy w chmurze
LUDZIE POPEŁNIAJĄ BŁĘDY
{ Wsparcie informacyjne dla zarządzania strategicznego Tereshkun Volodymyr.
JavaBeans by Paweł Wąsala
Zapis prezentacji:

Modyfikacja oprogramowania1 Modyfikacja oprogramowania l Omówienie zagadnień związanych z modyfikacją oprogramowania

Modyfikacja oprogramowania2 Prezentowane zagadnienia: l Dynamika ewolucji programów l Pielęgnacja oprogramowania l Ewolucja architektoniczna

Modyfikacja oprogramowania3 Wstęp - Potrzeba modyfikacji oprogramowania l Niezależnie od wielkości nie da się zbudować systemu, którego nie będzie trzeba zmieniać. l 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. l Zatem firmy muszą inwestować w modyfikację systemu, aby utrzymywać ich wartość.

Modyfikacja oprogramowania4 Strategie modyfikowania oprogramowania l Pielęgnacja oprogramowania. Oprogramowanie jest zmieniane w odpowiedzi na zmiany wymagań, ale zasadnicza struktura oprogramowania pozostaje niezmieniona. l Przekształcenie architektoniczne. Jest to bardziej radykalne podejście do modyfikacji oprogramowania, ponieważ polega na wprowadzeniu znacznych zmian w architekturze systemu oprogramowania. l 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.

Modyfikacja oprogramowania5 l Dynamika ewolucji programów to studium zmiany systemu. l Większość wyników w tej dziedzinie przypisuje się Lehmanowi i Beladyemu (1985), którzy jako wynik swych studiów sformułowali pewien zbiór praw zmiany systemu (tzw. prawa Lehmana). l Autorzy uważają, że prawa są niezmienne i mają szerokie zastosowania. 1.Dynamika ewolucji programów

Modyfikacja oprogramowania6 Prawa Lehmana PrawoOpis UstawicznaProgram użytkowy w rzeczywistym środowisku nieuchronnie musi podlegać zmianazmianom albo stawać się coraz mniej użyteczny w tym środowisku. RosnącaW 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. EwolucjaEwolucja programu jest samoregulującym się procesem. Atrybuty systemu, ogromnychtakie jak wielkość, czas między wydaniami i liczba zgłoszonych błędów, są programóww przybliżeniu takie same dla wszystkich wydań systemów. StabilnośćW czasie życia programu tempo jego rozwoju jest w przybliżeniu stałe organizacyjnai niezależne od zasobów przeznaczonych na zbudowanie systemu. StałaW czasie życia systemu przyrostowa zmiana jest stała w każdym wydaniu. zmienność

Modyfikacja oprogramowania7 2.Pielęgnacja oprogramowania l Pielęgnacja oprogramowania to ogólny proces zmieniania systemu po jego dostarczeniu. l 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ń. l Pielęgnacja oprogramowania zwykle nie obejmuje dużych zmian architektonicznych systemu. l Zmiany implementuje się przez modyfikacje istniejących komponentów systemu oraz, gdy jest to konieczne, przez dodawanie nowych komponentów.

Modyfikacja oprogramowania8 l 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. l 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. l 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

Modyfikacja oprogramowania9 Statystyczny nakład odział pracy przy pielęgnacji (65%) (17%) (18%) Naprawienie usterek Dodawanie i modyfikowanie funkcjonalności Przystosowywanie oprogramowania

Modyfikacja oprogramowania10 Model spiralny tworzenia Działanie Specyfikowanie I mplementowanie Zatwierdzanie Początek Wydanie 1 Wydanie 2 Wydanie 3

Modyfikacja oprogramowania11 l 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. l 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. l 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. l 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

Modyfikacja oprogramowania12 Proces pielęgnacji l 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. l 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. l 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.

Modyfikacja oprogramowania13 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

Modyfikacja oprogramowania14 Implementacja zmiany Proponowane zmiany Proponowane zmiany Tworzenie oprogramowania Tworzenie oprogramowania Aktualizacja wymagań Aktualizacja wymagań Analiza wymagań Analiza wymagań

Modyfikacja oprogramowania15 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

Modyfikacja oprogramowania16 Przewidywanie pielęgnacji l 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.

Modyfikacja oprogramowania17 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 w następnym roku? Przewidywanie zdatności do pielęgnacji Przewidywanie zmian systemu Przewidywanie kosztów pielęgnacji

Modyfikacja oprogramowania18 Czynniki mające wpływ na konieczność pielęgnacji. l 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. l 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. l 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.

Modyfikacja oprogramowania19 Przykłady miar procesowych przy ocenie zdatności do pielęgnacji l 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. l Średni czas niezbędny do wykonania analizy wpływu. Odzwierciedla liczbę komponentów programu, na które oddziałują żądania zmian. l Średni czas spędzony nad implementacją żądania zmiany. Czas trwania zmiany zależy od trudności jej zaprogramowania. l Liczba oczekujących żądań zmian. Jeśli ta liczba rośnie z czasem, może to oznaczać zmniejszenie zdatności do pielęgnacji.

Modyfikacja oprogramowania20 3.Ewolucja architektoniczna l W trakcie pielęgnacji systemu wprowadzone zmiany są lokalne; nie wpływają na architekturę systemu. l Od lat osiemdziesiątych XX wieku ekonomia systemów komputerowych zmieniała się jednak radykalnie. l Najbardziej opłacalnym rozwiązaniem problemów gospodarczych jest często system rozproszony, a nie scentralizowany. l 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.

Modyfikacja oprogramowania21 Bodźce, które przyczyniają się do przemiany l 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. l 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. l 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. l Niezawodność dostępu do systemu. Każda niedostępność usługi wiąże się z potencjalną stratą zysków.

Modyfikacja oprogramowania22 Czynniki wpływające na decyzje o rozproszeniu systemu CzynnikOpis ZnaczenieStopa zwrotu z inwestycji w rozproszenie systemu odziedziczonego zależy gospodarczeod 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 systemuIm starszy jest system, tym trudniej jest modyfikować jego architekturę, ponieważ wcześniejsze zmiany pogorszyły strukturę systemu. Struktura systemuIm 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. StrategieRozproszenie programu użytkowego może być konieczne, jeśli w firmie zaopatrywaniaprzyjęto strategię wymiany drogich komputerów głównych na tańsze się w sprzętserwery.

Modyfikacja oprogramowania23 Idealna i realistyczna struktura systemu odziedziczonego Interfejs użytkownika Usługi Interfejs użytkownika Usługi Baz danych Model idealny do rozproszeniaPrawdziwe systemy odziedziczone

Modyfikacja oprogramowania24 Rozproszenie systemu odziedziczonego Baza danych 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

Modyfikacja oprogramowania25 Rozproszenie interfejsu użytkownika l Wiele systemów odziedziczonych zaprojektowano, zanim pojawiły się graficzne interfejsy użytkownika. l Takie systemy obejmowały interfejsy formularzowe działające na specjalnych terminalach, które mogły wyświetlać jedynie znaki. l 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. l 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.

Modyfikacja oprogramowania26 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

Modyfikacja oprogramowania27 Wady i zalety strategii przenoszenia interfejsu użytkownika StrategiaZalety Wady ImplementacjaDostęp do wszystkich funkcji Zależność od platformy z użycieminterfejsu użytkownika, a więc Trudniej osiągnąć spójność systemu okienkowegobrak ograniczeń przy projekto- interfejsu -waniu interfejsu. Lepsza efektywność interfejsu użytkownika. ImplementacjaNiezależność od platformy Potencjalnie gorsza z użyciemNiższe koszty szkolenia dzięki efektywność przeglądarki WWWtemu, że użytkownicy znają Projekt interfejsu jest WWW ograniczony przez właści- Łatwiej osiągnąć spójność -wości przeglądarek WWW interfejsu

Modyfikacja oprogramowania28 Opracowne na podstawie: Ian Sommerville 2000 Inżynieria oprogramowania. Ewolucja i refaktoryzacja oprogramowania.