©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 1 Restrukturyzacja oprogramowania l Reorganizowanie i modyfikowanie istniejącego.

Slides:



Advertisements
Podobne prezentacje
I część 1.
Advertisements

Projektowanie w cyklu życia oprogramowania
Inżynieria Oprogramowania 10. Szacowanie kosztu oprogramowania cz. 2
Zaawansowane metody programowania – Wykład V
Role w zespole projektowym
Wydział Zastosowań Informatyki i Matematyki SGGW
Modele systemu Abstrakcyjne opisy sytemu, którego wymagania są opisywane.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Prototypowanie oprogramowania l Błyskawiczne tworzenie oprogramowania służące.
Wyszukiwanie błędów Testowanie programów w celu wyszukania błędów.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 1 Szacowanie kosztu oprogramowania l Szacowanie kosztu i pracy niezbędnej do wyprodukowania.
Procesy Inżynierii Wymagań
Projektowanie architektoniczne
FIT Środowisko Testów Integracyjnych
Projektowanie Aplikacji Komputerowych
KONKURS WIEDZY O SZTUCE
Dokumentowanie wymagań w języku XML
Zarządzanie konfiguracją Doskonalenie Procesów Programowych Wykład 6 Copyright, 2001 © Jerzy.
Modele systemu Abstrakcyjny opis systemów pomocniczych w analizowaniu wymagań stawianych tym systemom.
Wykład 2: Systemy klasy C.A.T. (Computer-Aided Translation)
Inżynieria Oprogramowania dla Fizyków
„Migracja środowisk Novell NDS/eDirectory oraz Novell Groupwise do środowiska Microsoft Active Directory oraz Microsoft Exchange przy użyciu narzędzi Quest.
Pomiary w inżynierii oprogramowania
Pomiary w inżynierii oprogramowania
Praca Inżynierska „Analiza i projekt aplikacji informatycznej do wspomagania wybranych zadań ośrodków sportowych” Dyplomant: Marcin Iwanicki Promotor:
1/18 LOGO Profil zespołu. 2/18 O nas Produkcja autorskich rozwiązań informatycznych dla małych i średnich firm w zakresie systemów: Baz danych Aplikacji.
Przykład wykorzystania komercyjnych i niekomercyjnych źródeł informacji w pracy Biblioteki Chemicznej ZUT Agnieszka Bajda
Dalsze elementy metodologii projektowania. Naszym celem jest...
Wykład 2 Cykl życia systemu informacyjnego
Wykład 10 Narzędzia CASE.
SZPIF – Harmonogram, Opis narzędzi, Schemat bazy danych
Wykonawcy:Magdalena Bęczkowska Łukasz Maliszewski Piotr Kwiatek Piotr Litwiniuk Paweł Głębocki.
Wprowadzenie do JSP Copyright © Politecnico di Milano September 2003 Translation: Kamil Żyła, Politechnika Lubelska.
Twoje narzędzie do pracy grupowej
Instytut Tele- i Radiotechniczny WARSZAWA
Kontrola spójności modeli UML za pomocą modelu przestrzennego DOD
Model przestrzenny Diagramu Obiegu Dokumentów
Rozwiązania informatyczne dla przedsiębiorstw
Wymiana integracja ? oprogramowania dr Danuta Kajrunajtys.
Prezentacja i szkolenie
Plan prezentacji Zarys projektu Geneza tematu
Zwiększenie wykorzystania energii z OZE w budownictwie
Moduł: Informatyka w Zarządzaniu
Opracowanie powłoki bazy danych MySQL
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
Proces tworzenia oprogramowania
Podstawy programowania
W W W Łukasz Stochniał.
C++.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
PROCESY W SYSTEMACH SYSTEMY I PROCESY.
Komputerowe wspomaganie projektowania
Walidacja danych alina suchomska.
Zarządzanie zagrożeniami
Proces tworzenia oprogramowania Proces tworzenia oprogramowania jest zbiorem czynności i związanych z nimi wyników, które prowadzą do powstania produktu.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Kalendarz 2020.
Podstawy języka skryptów
Projektowanie architektoniczne
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 1 Szacowanie kosztu oprogramowania l Przedstawienie metod szacowania kosztu i pracy.
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 14Slide 1 Projektowanie z użyciem wielokrotnym l Jak w procesie projektowania systemu można ponownie.
Podstawy programowania
Oprogramowaniem (software) nazywa się wszystkie informacje w postaci zestawu instrukcji i programów wykonywanych przez komputer oraz zintegrowanych danych.
Dokumentacja programu komputerowego i etapy tworzenia programów.
T ESTY JEDNOSTKOWE W C# Alicja Majka, A GENDA Wprowadzenie do środowiska Czym są testy jednostkowe i po co je stosować? XUnit, NUnit Pokrycie.
©Ian Sommerville 2000 Inżynieria oprogramowania, Rozdział 28Slide 1 Restrukturyzacja oprogramowania l Przedstawienie procesu restrukturyzacji oprogramowania,
Analiza, projekt i częściowa implementacja systemu wspomagania pracy Referatu Reprografii Promotor: mgr inż. Dariusz OlczykWykonała: Katarzyna Ściwiarska.
Programowanie strukturalne i obiektowe Klasa I. Podstawowe pojęcia dotyczące programowania 1. Problem 2. Algorytm 3. Komputer 4. Program komputerowy 5.
Wady i zalety pracy w chmurze
IEEE SPMP Autor : Tomasz Czwarno
Zapis prezentacji:

©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

©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

©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

©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ć

©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

©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

©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

©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

©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

©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

©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

©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

©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

©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

©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

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

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 17 Logika spaghetti

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 18 Program strukturalny

©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)...

©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

©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

©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

©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

©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

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 25 Podejścia do restrukturyzacji danych

©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

Migracja danych

©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

©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

©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.