Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2010-01-23 18:05:57

  Contravene - Użytkownik

Contravene
Użytkownik
Zarejestrowany: 2006-08-07

Testowanie modeli obiektowych

Czy znacie jakieś narzędzia/metodyki/zbiory reguł do testowania modeli obiektowych? Chodzi mi o wszystko związane z projektowaniem aplikacji w architekturze zorientowanej obiektowo, a w szczególności cześć dotycząca projektu w UML-u (lub innym abstrakcyjnym języku), czyli diagramy klas, obiektów, komponentów, pakietów itd.

W skrócie chodzi mi o wszystko związane z wykrywaniem błędów, odstępstw od standardów lub też np. potencjalnych zagrożeń w takich modelach, realizowane w jakikolwiek sposób: jako wtyczkę do aplikacji, zestaw reguł w napisanych języku naturalnym, zbiór wytycznych itd.

Pozdrawiam,
Contravene

Offline

 

#2  2010-01-23 23:27:06

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: Testowanie modeli obiektowych

Testy jednostkowe? Tyle, że do tego by się przydała chyba jednak jakaś implementacja.

Ostatnio edytowany przez kamikaze (2010-01-23 23:39:29)

Offline

 

#3  2010-01-24 16:34:24

  harry666t - Członek DUG

harry666t
Członek DUG
Zarejestrowany: 2007-01-28

Re: Testowanie modeli obiektowych

Nie, unit testy nie.

Zobacz Umbrello dla KDE. Można sobie "rysować" diagramy klas, i potrafi on potem wygenerować z tego defnicje w kilku językach. Potafi chyba też czytać definicje klas i robić z nich diagramy. A co do ogólnego sprawdzania poprawności... Nie wiem. Może po prostu miej/miejcie (jeśli to projekt zespołowy) jakiś referencyjny diagram, do którego muszą być wprowadzane i zatwierdzanie wszystkie zmiany ZANIM ktokolwiek zmieni hierarchię w kodzie.

Osobiście diagramy robię po prostu na kartkach, i po prostu przykładam do nich dużo uwagi.


[ /\/\/\ o_0 ----->>>       Ascii Art Userbar User ]

"steal and steal and steal some more and give it to all your friends and keep on stealin'"
- Reznor

Offline

 

#4  2010-01-25 09:01:03

  Contravene - Użytkownik

Contravene
Użytkownik
Zarejestrowany: 2006-08-07

Re: Testowanie modeli obiektowych

kamikaze napisał(-a):

Testy jednostkowe? Tyle, że do tego by się przydała chyba jednak jakaś implementacja.

Nie, nie testy jednostkowe. Chodzi mi o błędy na etapie projektowania.

harry666t napisał(-a):

Nie, unit testy nie.

Zobacz Umbrello dla KDE. Można sobie "rysować" diagramy klas, i potrafi on potem wygenerować z tego defnicje w kilku językach. Potafi chyba też czytać definicje klas i robić z nich diagramy. A co do ogólnego sprawdzania poprawności... Nie wiem. Może po prostu miej/miejcie (jeśli to projekt zespołowy) jakiś referencyjny diagram, do którego muszą być wprowadzane i zatwierdzanie wszystkie zmiany ZANIM ktokolwiek zmieni hierarchię w kodzie.

Osobiście diagramy robię po prostu na kartkach, i po prostu przykładam do nich dużo uwagi.

Myślę, że każdy stara się unikać błędów w modelu, ale chodzi o podniesienie ich wykrywalności wraz z konstrukcjami, które mogą w przyszłości stać się problematyczne. Sprawdziłaby się do tego jakaś aplikacja, która automatycznie wykrywałaby tego typu usterki. Inne wyjście to jakaś metoda, zestaw kroków lub punktów do sprawdzenia (albo jak napisałeś referencyjny diagram), które pozwolą osiągnąć to "manualnie" (chodzi też o błędy niespójności pomiędzy poszczególnymi diagramami). Na pewno sam przygotuję coś takiego, ale istnieje duża szansa, że coś pominę, a zależy mi, żeby metoda była jak najbardziej kompletna. Gdy już będę miał coś takiego, to odpowiednią wtyczkę do aplikacji zawsze można przygotować.

Offline

 

#5  2010-01-25 09:48:51

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: Testowanie modeli obiektowych

Mi się zdaje, że ciężko coś takiego sprawdzić. Program, który by to sprawdzał musiałby znać logikę, którą się kierowałeś. Posiadać jakąś inteligencje, a to wątpliwe. Bo pewnie zaprojektowany model obiektowy zawsze będzie poprawny, czemu miałby nie być to tylko projekt. Inna sprawa czy jest spójny i czy będzie uniwersalny. Tego chyba żaden automat nie jest w stanie określić.

Offline

 

#6  2010-01-25 14:58:54

  Contravene - Użytkownik

Contravene
Użytkownik
Zarejestrowany: 2006-08-07

Re: Testowanie modeli obiektowych

kamikaze napisał(-a):

Mi się zdaje, że ciężko coś takiego sprawdzić. Program, który by to sprawdzał musiałby znać logikę, którą się kierowałeś. Posiadać jakąś inteligencje, a to wątpliwe. Bo pewnie zaprojektowany model obiektowy zawsze będzie poprawny, czemu miałby nie być to tylko projekt. Inna sprawa czy jest spójny i czy będzie uniwersalny. Tego chyba żaden automat nie jest w stanie określić.

Są pewne elementy, które można sprawdzić automatycznie, jak np. pętle zależności, zbyt duża ilość metod w klasie itd. to też jest coś, co chciałbym automatycznie wykryć. Tak samo konwencja nazewnictwa itd.

Offline

 

#7  2010-01-25 15:37:02

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: Testowanie modeli obiektowych

No nie wiem. Pętle zależności mogą być celowe, duża ilość metod w klasie na pierwszy rzut oka widać (projektant umie liczyć co najmniej do 10, a licząc palce u nóg to nawet do 20 ;]), konwencja nazewnictwa jest przecież dowolna. Są jakieś tam reguły, ale nikt niczego nie narzuca.

Offline

 

#8  2010-01-25 16:01:14

  Contravene - Użytkownik

Contravene
Użytkownik
Zarejestrowany: 2006-08-07

Re: Testowanie modeli obiektowych

kamikaze napisał(-a):

No nie wiem. Pętle zależności mogą być celowe

Nie chodzi mi o automatyczne poprawienie, ale wyświetlenie warninga (czyt. wskazanie, że to może rodzić problemy).

kamikaze napisał(-a):

duża ilość metod w klasie na pierwszy rzut oka widać (projektant umie liczyć co najmniej do 10, a licząc palce u nóg to nawet do 20 ;]), konwencja nazewnictwa jest przecież dowolna. Są jakieś tam reguły, ale nikt niczego nie narzuca.

Chodzi właśnie o to, że trzeba spełnić jakieś reguły narzucone na projekt. A że różne projekty mają różne konwencje, stąd konieczność zautomatyzowania tego (chociaż bardziej chodzi mi tutaj o przygotowanie procedury i listy wytycznych, automatyzacja na dalszym planie).

Offline

 

#9  2010-01-26 08:14:28

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: Testowanie modeli obiektowych

Wszystko zależy od doświadczenia i umiejętności projektanta, nikt nie powinien narzucać na projekt konwencji typu 5 metod na klase bo to z deka głupota. Nie ważne ile metod ważne, że należą one do danego obiektu i są z nim spójne wykonując zadania przewidziane dla tego obiektu. A kto to najlepiej sprawdzi niż żywa ludzka inteligencja? Przygotowanie procedury i listy wytycznych to też rola projektanta, nie wyobrażam sobie żeby jakiś automat potrafił narzucić wytyczne. Masz różnego rodzaju wzorce projektowe, popularne metody postępowania. Znając je możesz zaprojektować aplikacje, jakby były do tego automaty, projektanci nie byliby potrzebni. Są automaty, które potrafią wygenerować podstawowy kod na podstawie modelu obiektowego, ale o generowaniu czy sprawdzaniu modeli obiektowych przez automat nie słyszałem. Wydaje mi się niezbyt możliwe zbudowanie czegoś takiego, ale kto wie.

Offline

 

#10  2010-01-26 08:44:21

  Contravene - Użytkownik

Contravene
Użytkownik
Zarejestrowany: 2006-08-07

Re: Testowanie modeli obiektowych

kamikaze napisał(-a):

Wszystko zależy od doświadczenia i umiejętności projektanta, nikt nie powinien narzucać na projekt konwencji typu 5 metod na klase bo to z deka głupota. Nie ważne ile metod ważne, że należą one do danego obiektu i są z nim spójne wykonując zadania przewidziane dla tego obiektu. A kto to najlepiej sprawdzi niż żywa ludzka inteligencja? Przygotowanie procedury i listy wytycznych to też rola projektanta, nie wyobrażam sobie żeby jakiś automat potrafił narzucić wytyczne. Masz różnego rodzaju wzorce projektowe, popularne metody postępowania. Znając je możesz zaprojektować aplikacje, jakby były do tego automaty, projektanci nie byliby potrzebni. Są automaty, które potrafią wygenerować podstawowy kod na podstawie modelu obiektowego, ale o generowaniu czy sprawdzaniu modeli obiektowych przez automat nie słyszałem. Wydaje mi się niezbyt możliwe zbudowanie czegoś takiego, ale kto wie.

W żadnym wypadku nie chodzi o generowanie modelu. Właśnie o taką listę wytycznych (z tym, że bardziej uniwersalną) również mi chodzi.

Offline

 

#11  2010-01-26 10:08:31

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: Testowanie modeli obiektowych

Taka lista wytycznych będzie zależeć od języka, typu projektu. Może powiedz konkretnie o co chodzi. Bo uniwersalnych wytycznych raczej nie ma, języki są różne, niektóre nie nadają się do zrobienia rzeczy, do których nadają się inne. Więc takie gadanie w powietrzu jest bez sensu. Niektóre języki wprowadzają specyfikacje i konwencje, które być znajdziesz na stronie twórców języka. Przykładem może być konwencja pisania kodu Javy zamieszczona na stronie Suna - http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html.

Offline

 

#12  2010-01-26 12:11:43

  Contravene - Użytkownik

Contravene
Użytkownik
Zarejestrowany: 2006-08-07

Re: Testowanie modeli obiektowych

kamikaze napisał(-a):

Taka lista wytycznych będzie zależeć od języka, typu projektu. Może powiedz konkretnie o co chodzi. Bo uniwersalnych wytycznych raczej nie ma, języki są różne, niektóre nie nadają się do zrobienia rzeczy, do których nadają się inne. Więc takie gadanie w powietrzu jest bez sensu. Niektóre języki wprowadzają specyfikacje i konwencje, które być znajdziesz na stronie twórców języka. Przykładem może być konwencja pisania kodu Javy zamieszczona na stronie Suna - http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html.

Nie chcę zagłębiać się do poziomu języka, ale pozostać w modelu. Na pewno nie będzie łatwo znaleźć uniwersalne reguły, ale mimo wszystko spróbuję. Umieszczę tutaj informację o wynikach.

Offline

 

#13  2010-01-26 15:42:25

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: Testowanie modeli obiektowych

Nie wiem co ty tworzysz ;] Mógłbyś się pochwalić? Ktoś ci kazał coś wymyśleć, nowe programowanie obiektowe? Imho przydałoby się żebyś jednak wział, któryś z językół obiektowych za wzór i dla niego szukać reguł. Bo obiektowość jest różna i być może części aspektów obiektowości nawet nie znasz. Jeśli np. twoje myślenie obiektowe skupia się wokół PHP, gdzie obiektowość jest mizerna. Poza tym jest kilka uniwersalnych reguł, np. utrzymanie wysokiej spójności obiektów, czy minimalizacja zależności między obiektami albo hermetyzacja. Możesz poszukać czegoś o dobrych praktykach programowania.

Offline

 

#14  2010-01-27 08:55:57

  Contravene - Użytkownik

Contravene
Użytkownik
Zarejestrowany: 2006-08-07

Re: Testowanie modeli obiektowych

kamikaze napisał(-a):

Nie wiem co ty tworzysz ;] Mógłbyś się pochwalić? Ktoś ci kazał coś wymyśleć, nowe programowanie obiektowe? Imho przydałoby się żebyś jednak wział, któryś z językół obiektowych za wzór i dla niego szukać reguł. Bo obiektowość jest różna i być może części aspektów obiektowości nawet nie znasz. Jeśli np. twoje myślenie obiektowe skupia się wokół PHP, gdzie obiektowość jest mizerna. Poza tym jest kilka uniwersalnych reguł, np. utrzymanie wysokiej spójności obiektów, czy minimalizacja zależności między obiektami albo hermetyzacja. Możesz poszukać czegoś o dobrych praktykach programowania.

Tworzę dokładnie to, co napisałem ;) Szukam sposobu, który pozwoliłby na wykrywanie błędów i sytuacji mogących powodować błędy w modelach obiektowych. Dodatkowo metoda powinna się dawać łatwo dostosowywać do konkretnego projektu i być możliwie uniwersalna.

Offline

 

#15  2010-01-27 09:36:56

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: Testowanie modeli obiektowych

Powodzenia, pochwal się jak skończysz.

Offline

 

#16  2010-01-27 09:54:55

  Contravene - Użytkownik

Contravene
Użytkownik
Zarejestrowany: 2006-08-07

Re: Testowanie modeli obiektowych

kamikaze napisał(-a):

Powodzenia, pochwal się jak skończysz.

Dzięki, nie omieszkam. Sam jestem ciekaw, co z tego wyniknie.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)