Zpo-8-wyk-Slajd26: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Bwalter (dyskusja | edycje)
Nie podano opisu zmian
 
Bwalter (dyskusja | edycje)
Nie podano opisu zmian
 
Linia 1: Linia 1:
==Pull Up Method==
==Podział  przekształceń – sposób weryfikacji(1)==


[[Image:zpo-8-wyk-Slajd26.PNG|Pull Up Method]]
[[Image:zpo-8-wyk-Slajd26.PNG|Podział  przekształceń – sposób weryfikacji(1)]]




Pierwszym z przekształceń jest przeniesienie w górę hierarchii dziedziczenia metody, która występuje w wielu podklasach posiadających wspólną nadklasę. Celem jest zatem przeniesienie metody do nadklasy, tak aby była ona dziedziczona, a nie definiowana w poszczególnych podklasach.
Jednak wśród przekształceń trudnych także można wyróżnić dwie podgrupy: przekształceń testowalnych i nieokreślonych. Szczególnie interesująca jest druga kategoria: należące do niej przekształcenia wprawdzie wymagają testowania, jednak można dość precyzyjnie wskazać niezmienniki, które powinny być zweryfikowane (lecz, oczywiście, nie dowiedzione!) za pomocą testów. Zatem możliwe jest zapewnienie programiście wsparcia co do rodzaju i sposobu tworzenia testów, a nawet częściowe zautomatyzowanie tego procesu. Kategoria przekształceń nieokreślonych zawiera przekształcenia, które wymagają testów, ale nie można wskazać ich natury i sposobu realizacji. Do tej kategorii należą przekształcenia tradycyjnie trudne, i w ich przypadku pracochłonność nadal jest bardzo wysoka.
 
Krokiem wstępnym tego przekształcenia jest ujednolicenie metod w poszczególnych podklasach. Następnie należy zadeklarować metodę w nadklasie i skopiować do niej ciało metody w jednej z podklas. Jeżeli wszystkie podklasy definiowały tę metodę, wówczas nadal nie powinna wystąpić zmiana zachowania programu.
 
W kolejnych krokach metoda jest usuwana z podklas (wówczas jest ona dostępna wyłącznie poprzez dziedziczenie z nadklasy).
 
W efekcie metoda jest usuwana z wszystkich podklas i przeniesiona do nadklasy. Jeżeli niektóre podklasy definiują metodę odmiennie od pozostałych, wówczas mogą pozostawić metodę pokrytą.




[[zpo-8-wyk-Slajd25 | << Poprzedni slajd]] | [[zpo-8-wyk-toc|Spis treści ]] | [[zpo-8-wyk-Slajd27 | Następny slajd >>]]
[[zpo-8-wyk-Slajd25 | << Poprzedni slajd]] | [[zpo-8-wyk-toc|Spis treści ]] | [[zpo-8-wyk-Slajd27 | Następny slajd >>]]

Aktualna wersja na dzień 18:13, 4 lis 2006

Podział przekształceń – sposób weryfikacji(1)

Podział przekształceń – sposób weryfikacji(1)


Jednak wśród przekształceń trudnych także można wyróżnić dwie podgrupy: przekształceń testowalnych i nieokreślonych. Szczególnie interesująca jest druga kategoria: należące do niej przekształcenia wprawdzie wymagają testowania, jednak można dość precyzyjnie wskazać niezmienniki, które powinny być zweryfikowane (lecz, oczywiście, nie dowiedzione!) za pomocą testów. Zatem możliwe jest zapewnienie programiście wsparcia co do rodzaju i sposobu tworzenia testów, a nawet częściowe zautomatyzowanie tego procesu. Kategoria przekształceń nieokreślonych zawiera przekształcenia, które wymagają testów, ale nie można wskazać ich natury i sposobu realizacji. Do tej kategorii należą przekształcenia tradycyjnie trudne, i w ich przypadku pracochłonność nadal jest bardzo wysoka.


<< Poprzedni slajd | Spis treści | Następny slajd >>