Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałArkadiusz Bożek Został zmieniony 11 lat temu
1
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 1 Restrukturyzacja oprogramowania l Reorganizowanie i modyfikowanie istniejącego oprogramowania aby uczynić je łatwiejszym w utrzymaniu
2
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 2 Zawartość l Tłumaczenie kodu źródłowego l Inżynieria wstecz l Ulepszanie struktury programu l Modularyzacja programu l Restrukturyzacja danych
3
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 3 l Restrukturyzacja lub przepisanie istniejącego systemu lub jego części bez zmian funkcjonalności l Konieczna kiedy część podsystemów wymaga częstej pielęgnacji l Restrukturyzacja ma uczynić system łatwiejszym do pielęgnacji. Może to oznaczać ponowne napisanie dokumentacji Restrukturyzacja systemu
4
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 4 l Kiedy zmiany dotyczą pojedynczego modułu warto ten moduł restrukturyzować l Kiedy zanika dostawca sprzętu lub oprogramowania l Kiedy pojawiają się narzędzia do restrukturyzacji Kiedy restrukturyzować
5
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 5 Zalety restrukturyzacji l Zmniejszone ryzyko Z tworzeniem oprogramowania zawsze jest związane ryzyko. Zmniejsza się ono w przypadku gdy restrukturyzujemy oprogramowanie. l Zmniejszony koszt Koszt restrukturyzacji jest często sporo niższy od kosztu tworzenia nowego oprogramowania
6
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 6 Restrukturyzacja procesów biznesowych l Polega na przeprojektowaniu procesów biznesowych aby uczynić je efektywniejszymi l Często związana jest z wprowadzeniem systemu komputerowego l Może wymusić zmiany w istniejącym oprogramowaniu, które nie jest przystosowane do nowych procesów
7
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 7 Inżynieria do przodu i restrukturyzacja Inżynieria do przodu Restrukturyzacja oprogramowania Specyfikacja systemu Projektowanie i implementacja Nowy system Istniejący system Rozpoznawanie i przekształcanie Zrestrukturyzowany system
8
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 8 Proces restrukturyzacji Pierwotny program Tłumaczenie kodu źródłowego Inżynieria wstecz Ulepszanie struktury programu Modularyzacja programu Restrukturyzacja danych Dokumentacja programu Zmodularyzowany program Pierwotne dane Zrestrukturyzowane dane Program strukturalny
9
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 9 Czynniki wpływające na koszt l Jakość oprogramowania, które ma być restrukturyzowane l Wspomaganie narzędziowe restrukturyzacji l Zakres niezbędnej konwersji danych l Dostępność ekspertów
10
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 10 Podejścia do restrukturyzacji Rosnące koszty Automatyczna konwersja kodu źródłowego Automatyczna przebudowa ze zmianami manualnymi Przebudowa i zmiany architektoniczne Przebudowa danych i programu Automatyczna przebudowa programu
11
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 11 Tłumaczenie kodu źródłowego l Polega na zmianie jednego języka na inny lub na inną wersję np. FORTRAN na C l Może być konieczna z powodu: Aktualizacji platformy sprzętowej Braków w umiejętnościach personelu Zmian w strategii firmy l Jest realistyczna jeśli istnieją automatyczne narzędzia do translacji
12
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 12 The program translation process System do restrukturyzacji Rozpoznaj różnice w kodzie źródłowym Przetłumacz kod automatycznie Zaprojektuj instrukcje translatora Przetłumacz kod manualnie System do restrukturyzacji Zrestrukturyzowany system
13
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 13 Inżynieria wstecz l Analiza oprogramowania w celu odtworzenia jego projektu i specyfikacji l Może być częścią restrukturyzacji a może być podstawą ponownej implementacji systemu l Powstaje baza informacji o programie na podstawie której generuje się raporty l Programy wspomagające (przeglądarki, generatory odnośników) mogą być używane podczas tego procesu
14
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 14 Proces inżynierii wstecz System do restrukturyzacji Dodawanie adnotacji Generowanie dokumentów Składnica informacji Diagramy struktury programu Analiza automatyczna Diagramy struktur danych Macierze śladu
15
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 15 Inżynieria wstecz l Inżynieria wstecz często poprzedza restrukturyzację ale może być robiona w innym celu Projekt i specyfikacja tworzony podczas inżynierii wstecz może służyć budowie nowego systemu Projekt i specyfikacja tworzony podczas inżynierii wstecz może służyć pielęgnacji istniejącego systemu
16
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 16 Ulepszanie struktury programu l Pielęgnacja zazwyczaj psuje strukturę programu. Program staje się coraz trudniejszy do zrozumienia l Programy mogą być automatycznie restrukturyzowane aby usunąć nieużywane fragmenty kodu l Warunki mogą być upraszczane aby poprawić ich czytelność
17
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 17 Logika spaghetti
18
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 18 Program strukturalny
19
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 19 Upraszczanie warunku -- Warunek złożony if not (A > B and (C F) ) )... -- Warunek uproszczony if A = D and E > F)...
20
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 20 Automatyczna przebudowa Program do przebudowy Analizator i generator grafów Przebudowany program Reprezentacja grafowa Generator programu
21
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 21 Problemy z przebudową l Główne problemy to: Utrata komentarzy Utrata dokumentacji Wymagania sprzętowe l Przebudowa nie poprawi struktury programu, którego powiązane elementy są porozrzucane po całym kodzie l Zrozumiałość programów opartych na bazach danych może nie poprawiać się podczas przebudowy
22
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 22 Modularyzacja programu l Proces reorganizacji programu tak, aby jego powiązane części zgromadzić razem i traktować jako jeden moduł l Zazwyczaj proces ręczny, polegający na analizie istniejącego programu
23
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 23 Typy modułów l Abstrakcje danych Abstrakcyjne typy danych wraz z powiązanymi operacjami l Moduły sprzętowe Funkcje związane z obsługą konkretnego urządzenia l Moduły funkcyjne Funkcje realizujące podobne lub ściśle powiązane zadania l Moduły wspomagania procesu Moduły, w których grupuje się wszystkie funkcje wspierające pojedynczy proces lub jego fragment
24
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 24 Restrukturyzacja danych l Polega na analizie i restrukturyzacji danych l Może być związana z przejściem z plików do bazy danych l Celem jest stworzenie modelu danych łatwego do pielęgnowania
25
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 25 Podejścia do restrukturyzacji danych
26
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 26 Problemy l Użytkownicy wolą mieć dane lokalnie zamiast na serwerach. l Systemy mogą być zmuszone do przetwarzania większej ilości danych niż ta do której były zaprojektowane l Redundantne dane mogą być przechowywane w różnych formatach w różnych miejscach w systemie
27
Migracja danych
28
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 28 Kłopoty z danymi l Nazewnictwo Nazwy mogą być trudne do zrozumienia. Ta sama rzecz może się różnie nazywać l Kłopoty z zakresami l Kłopoty z organizacją rekordów l Jawne literały w kodzie l Brak słownika danych
29
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 29 Niespójności wartości danych l Niespójne wartości danych l Niespójne jednostki l Niespójne reguły zatwierdzania l Niespójne znaczenia reprezentacji l Niespójne obsługi ujemnych wartości
30
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 30 Konwersja danych l Restrukturyzacja danych może polegać na zmianie struktury danych bez zmieniania ich wartości l Konwersja wartości może być bardzo kosztowna. Mogą być do niej przydatne dedykowane programy.
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.