Wykład 14

 

Technologia ponownego użycia

 

Uwaga: Przy konstruowaniu tej prezentacji wykorzystano udostępnione w sieci elementy wykładu, którego autorami są:

Kazimierz Subieta Instytut Podstaw Informatyki PAN, Warszawa

Ewa Stemposz  Polsko-Japońska Wyższa Szkoła Technik Komputerowych, Warszawa

 

 

Jedną ze strategii zwiększenia efektywności pracy zespołów projektujących systemy informacyjne jest wielokrotne używanie raz opracowanych fragmentów projektu lub modułów programowych.

Ponowne użycie wcześniej opracowanego fragmentu projektu albo modułu programu ma wiele zalet, wśród których na plan pierwszy wysuwają się: obniżenie kosztów, przyspieszenie realizacji projektu oraz minimalizacja błędów

 

 

Na czym polega  ponowne użycie ?

 

Istotą ponownego użycia jest wykorzystanie efektu aktywności zespołu projektowego z procesu  konstrukcji jednego produktu (również pomysłów czy  doświadczenia w ogóle) do wytworzenia innego produktu.

 

Ponowne użycie powinno być pojmowane w terminach całego cyklu życiowego produktu programistycznego. Kiedy ponownemu użyciu podlegają produkty skonstruowane we wczesnych fazach cyklu życiowego, to prawdopodobieństwo ponownego  wykorzystania produktów innych faz jest także wysokie.

 

Nie tylko czynniki techniczne mają wpływ na osiąganie zysków z ponownego użycia. Ważna jest też organizacja

 

 

- Ponowne użycie nie zdarza się przypadkiem ani w sposób spontaniczny.
- Wymaga świadomych inwestycji!
- Wymaga więc także wiedzy o tym,  jak postępować, by te  inwestycje w  ponowne użycie zwróciły się.

 

 

Korzyści, jakie przynosi ponowne użycie

         Z  reguły znacznemu skróceniu ulega czas        konstruowania oprogramowania.

         Koszt rozwoju i utrzymania oprogramowania oraz całego systemu zostaje także zwykle poważnie zmniejszony.

         Używane, a więc z reguły dobrze sprawdzone (przetestowane), składniki oprogramowania zawierają mniej błędów niż te, które są             konstruowane od podstaw, dzięki czemu         wzrasta niezawodność i poprawność całości systemu.

         Z  reguły znacznemu skróceniu ulega czas        konstruowania oprogramowania.

          Koszt rozwoju i utrzymania oprogramowania oraz całego systemu zostaje także zwykle  poważnie zmniejszony.

          Używane, a więc z reguły dobrze sprawdzone (przetestowane), składniki oprogramowania zawierają mniej błędów niż te, które są             konstruowane od podstaw, dzięki czemu         wzrasta niezawodność i poprawność całości systemu.

 

 

Potencjał ponownego użycia

 

Potencjał ponownego użycia aktywu,
czyli  prawdopodobieństwo jego wykorzystania
w wielu produktach  jest wysokie, gdy aktyw  posiada pewne pożądane właściwości, które zbierzemy i omówimy na następnym slajdzie.

 

Potencjał ponownego użycia jest większy, gdy aktyw jest:

 

         generyczny, czyli dostatecznie uniwersalny o szerokim przeznaczeniu,

         hermetyczny, wyizolowany z otoczenia, maksymalnie niezależny od  kontekstu, z dobrze zdefiniowanym interfejsem,

         spójny i kompletny,

         niezawodny,

         odporny na błędy i wyjątki, a przez to bezpieczny,

         dobrze udokumentowany, łatwy do zrozumienia,

         łatwy do testowania,

         łatwy do konserwacji  poprzez  wbudowane możliwości adaptacji,  specjalizacji, modyfikacji,

         zestandaryzowany,

         przenaszalny na różne platformy sprzętowo/programowe (dotyczy to języków programowania, systemów operacyjnych,  sprzętu, wymagań niefunkcjonalnych,  itp.),

         legalizowany (to znaczy, że posiada różne certyfikaty).

 

 

Co może być aktywem podlegającym ponownemu użyciu?

 

 

Przy realizacji postulatu powtórnego użycia elementy podlegające temu powtórnemu użyciu mogą mieć różny charakter, co jest opisywane przez jeden z czterech modeli:

 

         Model czarnej skrzynki

         Model szklanej skrzynki

         Model białej (otwartej) skrzynki

         Model szarej skrzynki

 

 

 

Model czarnej skrzynki

 

Przykładem czarnej skrzynki może być np. biblioteka procedur  w postaci skompilowanej czy też zamknięty pod względem formy formularz.

Model czarnej skrzynki uważa się za najbardziej pożądany stereotyp aktywu ponownego użycia.

Z drugiej strony, jest to model najtrudniejszy do opracowania, szczególnie w małych  organizacjach.

„Czarna skrzynka” może być użyta poprzez odsyłacz lub poprzez skopiowanie.

Częściej stosowane jest kopiowanie aktywu, które z kolei  może być nie wskazane, gdy aktyw jest na bieżąco utrzymywany (pielęgnowany) przez odpowiednią  komórkę.

W takim przypadku  kopiowanie  powoduje, że akcje usunięcia błędów
i modyfikacje wprowadzane na bieżąco przez opiekunów aktywu nie będą automatycznie propagowane do kopii funkcjonujących w nowszych
i pozornie doskonalszych systemach.

 

 

Model sparametryzowanej czarnej skrzynki

 

Model czarnej skrzynki  występuje często w postaci sparametryzowanej. Zakłada to ponowne użycie transformacyjne: Projektant dostarcza specyfikację, a czarna skrzynka - generator aplikacji - generuje implementację. Rozwiązanie takie uważa się za bardziej uniwersalne.Przykładem takiego rozwiązania są wszelkie parametryczne generatory oprogramowania (np. generatory programów tworzących raporty). Wadą takiego rozwiązania jest konieczność precyzyjnego ustalenia semantyki parametrów w powiązaniu z sytuacjami, w których jest  używany dany aktyw. Zmniejsza to korzyści ponownego użycia.Tendencja do nadmiernego zwiększania uniwersalności aktywu powoduje  często niepożądany rozrost liczby parametrów oraz stopnia ich złożoności, a także wzajemnej zależności pomiędzy nimi, co utrudnia korzystanie
z zasady ponownego użycia, które powinno preferować prostotę.  

 

 

Model szklanej skrzynki

 

Przy tym modelu zarówno budowa aktywu, jak i jego cechy zewnętrzne są widoczne, chociaż nie można ich zmienić.

 Znajomość budowy aktywu i zrozumienie zasad jego działania  sprzyjają właściwemu stosowaniu, ale niemożność dokonania jakichkolwiek zmian może być źródłem frustracji.

 

Model  białej (otwartej) skrzynki

 

Użytkownik widzi strukturę aktywu i w zasadzie może go dowolnie modyfikować.  Przykładem mogą tu być wszelkiego rodzaju wzorce projektowe, wzorce dokumentacji,  fragmenty tekstu programów, itp.

Model białej skrzynki jest najłatwiejszy do wdrożenia, gdyż zasadniczo polega na opisaniu pewnego wykonanego fragmentu dokumentacji lub oprogramowania.

Taki opis może być jednak trudno generalizowalny, zaś zmiany aktywu przez osoby inne niż konstruktor aktywu są ryzykowne i  mogą doprowadzić do naruszenia  założonych na początku własności.

Z drugiej strony, dokładny opis fragmentów,  które mogą podlegać zmianom oraz określenie dopuszczalnego zakresu  zmian może okazać się bardzo trudnym zadaniem.

Użycie białej skrzynki następuje  poprzez skopiowanie
i zmodyfikowanie.

 

 

Do przytoczonego asortymentu podstawowych modeli niektórzy analitycy systemów dodają jeszcze jeden model

 

Niektórzy specjaliści postulują mianowicie wprowadzenie dodatkowego elementu  pośredniego między czarną a białą skrzynką,
tzw. szarą skrzynkę.

W modelu szarej skrzynki konstruktor aktywu będzie mógł określić, które części aktywu i dla jakich użytkowników będą widoczne.

 

 

Trudności...

 

Próby wprowadzania technologii
ponownego użycia do firm często kończą się niepowodzeniem.

 

Powodem tego bywają przeważnie nie czynniki  technologiczne,  ale  organizacyjne, a nawet socjologiczne czy  psychologiczne.

 

 

Źródła trudności:

 

         Powszechna niechęć do wprowadzania jakichkolwiek zmian. Ponowne użycie wymusza zmianę w sposobie myślenia
o całości  procesu  produkcji  oprogramowania,

         Przekonanie osób ze szczebli kierowniczych, że technologia ta obdarzona jest  wysokim stopniem ryzyka,

         Brak wypracowanych metod, jak należy w praktyce stosować tę technologię,

         Brak narzędzi wspierających,

         Brak bibliotek, katalogów aktywów,

         Brak mechanizmów nagradzania, systemu zachęt zarówno do produkowania nowych aktywów jak i do korzystania z już istniejących,

         Brak zaufania do obcych aktywów,

         Przekonanie, że ponowne użycie jest wrogiem kreatywności.

 

 

 

Promowanie technologii ponownego użycia

         Ponowne użycie musi być umiejętnie    promowane, jeśli  ma być zakończone             sukcesem.

          Promocja musi być skierowana do osób
            z  różnych poziomów  w hierarchii firmy.

         Ponowne użycie stanowi  fundamentalną          zmianę w sposobie ich pracy i jak każda          zmiana będzie odpierane. 

 

 

Promocja powinna obejmować:

         uwidacznianie celów i zysków możliwych do osiągnięcia dzięki wprowadzeniu   tej technologii,

 

         nauczanie technik ponownego użycia,

 

         stworzenie systemu nagradzania, który to organizacyjnie wesprze.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Kultura ponownego użycia

 

Wysoka jakość elementu ponownego użycia posiada w tej technologii  ogromne znaczenie. Konsument nie będzie korzystał z elementu  ponownego użycia, o ile napotka jakiekolwiek trudności,  pomijając fakt, że musi włożyć pewien wysiłek w wyszukanie gotowych elementów, które mógłby wykorzystać w procesie tworzenia konkretnego oprogramowania.

W większości firm ponowne użycie nie jest podtrzymywane organizacyjnie.

Oznacza to, że konstruktor oprogramowania zyska większe uznanie (w  bezpośredni sposób przekładające się na pieniądze)  wtedy,  gdy skonstruuje oprogramowanie od zera, niż gdy wykorzysta już istniejące elementy, tzw. syndrom “nie-wynaleziono-tutaj  (NIH, Not-Invented-Here). 

 

 

Jeśli technologia ponownego użycia ma się upowszechnić to konieczna jest zmiana systemu wynagradzania

 

Nagrody finansowe, jak postuluje wielu autorów, stanowią co prawda silny element systemu zachęt, ale jedynie w pierwszym etapie wprowadzania technologii ponownego użycia.  

 

Wiele badań wskazuje na to, że w dłuższym okresie czasu, mają one znacznie mniejsze znaczenie niż zadowolenie z pracy, uznanie współpracowników i przełożonych oraz możliwość realizowania się w ciekawej, stawiającej wyzwania pracy.

 

 

Ustanawianie bibliotek aktywów

 

Ustanawianie bibliotek aktywów ponownego użycia polega na zdefiniowaniu  mechanizmów,  umożliwiających przechowywanie, zarządzanie i udostępnianie aktywów.

 

 

Ustanowienie mechanizmów  umożliwiających przechowywanie, zarządzanie i udostępnianie aktywów gronu użytkowników zawsze stanowi ważny krok do przodu na drodze upowszechniania  technologii ponownego użycia.

 

W praktyce, przedsiębiorstwa  wprowadzając technologię  ponownego użycia, wolą na początku poeksperymentować z  niewielką  liczbą aktywów. Zarządzanie nimi nie musi być wtedy zbyt wyrafinowane.

 

Z upływem czasu  możliwe, a nawet wysoce prawdopodobne, są zarówno  modyfikacje przechowywanych aktywów,  jak i wzrost ich liczby. Utworzenie biblioteki  staje się wtedy krytyczne

 

Biblioteka ponownego użycia może nie być konieczna, gdy:

 

         Przedsiębiorstwo posiada stabilny personel.  Jako przykład może tu  posłużyć fakt dużej skuteczności działania firm japońskich mimo stosowania stosunkowo prostych metod zarządzania zbiorem  aktywów przeznaczonych do wielokrotnego wykorzystywania.

          Przedsiębiorstwo  praktykuje technologię ponownego użycia w oparciu o techniki generacyjne, a nie techniki kompozycyjne.

 

 

Zalecane jest, by  proces konstrukcji  biblioteki ponownego użycia  rozpoczynał się od określenia:

 

 

 

 

Rodzaje przechowywanych aktywów

 

Ustalenie rodzajów przechowywanych aktywów  niezbędne jest  nie tylko do określenia wymagań na zawartość i organizację biblioteki, ale także do ustanowienia wytycznych ułatwiających konstruowanie elementów spełniających odpowiednie wymagania.

Przesłanka: Aktywa duże, złożone,  na wyższym poziomie abstrakcji i pochodzące z wcześniejszych etapów  konstrukcji produktu programistycznego posiadają większy potencjał ponownego użycia i tym samym są lepszymi  kandydatami  na elementy  składowe przyszłej biblioteki.

 

 

Fizyczna organizacja biblioteki

 

Biblioteka scentralizowana jest zaplanowana z myślą o tym, że będzie dostępna wszystkim chętnym.

 

Zalety: Konstrukcja i konserwacja biblioteki jest
z reguły przeprowadzana w bardziej formalny sposób, tzn. przestrzegane są obowiązujące w danym przedsiębiorstwie  standardy,  np. na programowanie,  nazewnictwo, kryteria weryfikacji, itp. Ponadto, zostaje ustanowiony personel odpowiedzialny za działalność biblioteki

Wady: Rosnąca liczba aktywów - nieuniknione zjawisko na przestrzeni czasu - pociąga za sobą konieczność zwiększania nakładów nie tylko na konserwację biblioteki, ale i na dostęp do aktywów.

 

 

Fizyczna organizacja biblioteki

Biblioteka scentralizowana jest zaplanowana z myślą o tym, że będzie dostępna wszystkim chętnym.

 

Zalety: Konstrukcja i konserwacja biblioteki jest
z reguły przeprowadzana w bardziej formalny sposób, tzn. przestrzegane są obowiązujące w danym przedsiębiorstwie  standardy,  np. na programowanie,  nazewnictwo, kryteria weryfikacji, itp. Ponadto, zostaje ustanowiony personel odpowiedzialny za działalność biblioteki

Wady: Rosnąca liczba aktywów - nieuniknione zjawisko na przestrzeni czasu - pociąga za sobą konieczność zwiększania nakładów nie tylko na konserwację biblioteki, ale i na dostęp do aktywów.

 

Praktyka wykazuje, że kilka bibliotek lokalnych
w miejsce jednej scentralizowanej, zawierających maksymalnie  do kilkuset aktywów  ponownego użycia (rzadko powyżej trzystu)  w pełni zaspakaja wymagania tej grupy czy dziedziny zastosowań, na potrzeby których zostały  skonstruowane,  przynosząc przy tym znaczące korzyści.

Wady: Poszczególne lokalne biblioteki mogą zawierać bardzo podobne aktywa, a nawet wręcz duplikaty. Ponadto, niektóre grupy osób czy dziedziny zastosowań mogą potrzebować aktywów  powiązanych koncepcyjnie z inną lokalną biblioteką.

 

Podejście łączące obie koncepcje:


W pierwszym kroku,  aktywa ponownego użycia byłyby umieszczane w lokalnych bibliotekach.

 
Po analizie i  weryfikacji  ich przydatności dla różnych grup czy dziedzin zastosowań,  mogłyby być przesuwane do biblioteki centralnej.


Każda z grup użytkowników miałaby zapewniony dostęp do biblioteki centralnej i swojej lokalnej.

Logiczna organizacja biblioteki

Warstwa 1      Aktywa tu umieszczane nie podlegały żadnej  weryfikacji jakości czy przydatności dla potrzeb ponownego użycia.

Warstwa 2      Aktywa były wykorzystane przynajmniej w jednej aplikacji i zachowują przyjęte w danej firmie standardy na jakość i  dokumentację. Nie były przygotowywane do wielokrotnego wykorzystywania. Również ich dokumentacja nie została sporządzona zgodnie z zasadami przyjętymi dla aktywów ponownego użycia.

Warstwa 3      Aktywa zostały skonstruowane zgodnie z zasadami przyjętymi dla elementów ponownego użycia,  ale nie poddano ich żadnemu procesowi weryfikacji; innymi słowy nie posiadają certyfikatów przydatności dla ponownego użycia.

Warstwa 4      Aktywa spełniają wszystkie wymagania, jakie są stawiane elementom ponownego użycia.

Ustanawianie schematu klasyfikacyjnego dla biblioteki aktywów do ponownego użycia

W  literaturze spotykane są trzy modele schematów klasyfikacyjnych:

 

1) oparte o metody wykorzystywane w bibliotekarstwie, 2) wykorzystujące metody sztucznej inteligencji,  3) stosujące systemy  hipertekstowe.

 

Schematy klasyfikacyjne wykorzystujące wiedzę bibliotekarską można podzielić na dwie zasadnicze kategorie:

  z ograniczoną liczbą terminów używanych do klasyfikacji i/lub  precyzyjnie  określonymi  zasadami łączenia tych terminów,   np.: schematów opartych o wyliczanie, 
z  wykorzystaniem  wektora cech
czy też par „cecha-wartość”,

  bez jakichkolwiek ograniczeń na liczbę terminów, a czasami  i  na zasady ich łączenia, np. rozwiązania pełnotekstowe.

 

Schematy klasyfikacyjne oparte o wyliczanie

Bazują na podziale dziedziny przedmiotowej na wzajemnie wykluczające się poddziedziny.

 

Zalety: Schematy klasyfikacyjne oparte o wyliczanie są przejrzyste, łatwe do             zrozumienia i wykorzystania.

Wady: Schematy takie są trudne do    modyfikacji. Kolejny problem - co zrobić z aktywami, które mogłyby zająć miejsca             w więcej niż jednym węźle hierarchii?

 

 

 

-------------------------                                                                                            ------------------------

 

Schematy klasyfikacyjne oparte o wektory cech

 

Wykorzystują pewien uporządkowany zbiór własności. Dla każdej z własności musi  być określony skończony zbiór wartości. Wartość NULL wskazuje, że dana cecha nie opisuje aktywu.

Zalety: Łatwość modyfikacji - po prostu dodaje się nowe cechy. Praktyka wykazuje, że liczba cech nie powinna przekraczać 10, bo operacja klasyfikowania przestaje być prosta. Ponadto,  przy małej liczbie dobrze określonych cech, występuje znaczna eliminacja niejednoznaczności.

Wady: Spory wysiłek potrzebny do ustanowienia dobrego zbioru cech i  konieczność jego konserwacji.

 

 

-------------------------                                                                                            ------------------------

 

Schematy wykorzystujące pary „cecha-wartość”

 

Są podobne do schematów opartych o wektory cech. Różni je brak uporządkowania zbioru cech i określenia zbioru wartości dla każdej z  cech.

Zalety: Łatwość modyfikacji (jak uprzednio),  a przede wszystkim łatwość konserwacji

Wada: Zbiór wartości cech nie jest ani skończony ani a priori określony przez twórców czy konserwatorów biblioteki.

 

 

-------------------------                                                                                            ------------------------

 

 

 

Rozwiązania pełnotekstowe

 

Wykorzystują słowa kluczowe lub całe frazy do opisu aktywów.

Zaleta: Możliwość automatyzacji operacji klasyfikowania.

Wady: Aktywa wypełniające różne zadania mogą być opisywane tymi samymi słowami  kluczowymi,  jak również aktywa wypełniające te same zadania mogą być opisywane różnymi słowami kluczowymi. Prowadzi to do niejednoznaczności i redundancji zasobów bibliotecznych.

 

Nie udowodniono wyraźnej przewagi jednych, z opisanych powyżej  schematów, nad innymi.

Metryki wykorzystywane do porównywania efektywności schematów klasyfikacyjnych opartych o metody stosowane w bibliotekarstwie:

  stosunek ilości zwróconych,  relewantnych dla          sformułowanego  zapytania aktywów, do całkowitej ilości              relewantnych aktywów pozostających w zasobach      testowanej biblioteki,

  precyzja, czyli stosunek ilości zwróconych, relewantnych dla            sformułowanego zapytania aktywów, do całkowitej ilości    zwróconych  aktywów,

  szybkość wyszukiwania,

  łatwość użycia,

  pomoc w zrozumieniu istoty aktywu.

Znaczące różnice wystąpiły wyłącznie przy porównywaniu szybkości wyszukiwania.

Najlepszą bazą do wyszukiwania okazał się być schemat oparty o wyliczanie, a najgorszą pełnotekstowy.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Dobór narzędzi wspierających

 

Konstrukcja i operowanie na zawartości biblioteki może być zrealizowane z wykorzystaniem narzędzi, takich jak np.: narzędzia katalogujące, narzędzia konfigurujące, przeglądarki, wyszukiwarki oraz repozytoria, w skład których mogą wchodzić wszystkie poprzednio wymienione narzędzia.

 

 

Narzędzia katalogujące

 

Informacja przechowywana w katalogu, powinna być wystarczająca do zrozumienia istoty aktywu i oceny jego jakości z punktu widzenia potrzeb ponownego użycia.

 

Narzędzia katalogujące powinny umożliwiać zautomatyzowanie przeglądania bibliotek (czy plików) z aktywami,  w celu  ekstrakcji  informacji opisującej aktywa. Takie podejście powoduje, że istniejące elementy składowe oprogramowania są natychmiast  gotowe do wykorzystania. Można testować ich potencjał  ponownego użycia przed podjęciem ostatecznej decyzji o utworzeniu biblioteki i  systematycznym podejściu do wszystkich związanych z tym problemów.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Podsumowanie