Thread View: pl.comp.objects
6 messages
6 total messages
Started by Dariusz Cieslak
Fri, 23 Feb 2007 09:48
Wykorzystanie OCL-a w produkcji oprogramowania / walidacja
Author: Dariusz Cieslak
Date: Fri, 23 Feb 2007 09:48
Date: Fri, 23 Feb 2007 09:48
20 lines
1774 bytes
1774 bytes
Od jakiegoś czasu próbuję zaprząc język OCL (Object Constraint Language) do utrwalenia decyzji projektowych i wymagań dla tworzonego systemu. Korzystam z USE (UML-based Specification Environment, http://www.db.informatik.uni-bremen.de/projects/USE). Dzięki symulacji jest teoretycznie możliwa dynamiczna walidacja wyrażeń OCL podczas testowania (ale nie udało mi się jeszcze tego mechanizmu zintegrować z Pythonem). Z praktyki w innych firmach widzę, że nawet modele klas UML są zwykle sprowadzane do schematów bazy danych w postaci graficznej i na tym etap modelowania się kończy (projekty małe, poniżej 8 programistów). Czy ktoś z grupowiczów korzysta z OCL-a w procesie konstrukcji oprogramowania? Jeśli tak, to z jakich narzędzi korzystacie i czy dają one jakąkolwiek możliwość (buć może częściową) sprawdzenia poprawności / funckjonalności kodu względem specyfikacji? -- Dariusz Cieslak http://aplikacja.info - systemy informatyczne na zamówienie
Re: Wykorzystanie OCL-a w produkcji oprogramowania / walidacja
Author: Peri
Date: Fri, 16 Mar 2007 09:37
Date: Fri, 16 Mar 2007 09:37
21 lines
1723 bytes
1723 bytes
On Fri, 23 Feb 2007 10:48:44 +0100, Dariusz Cieslak <cieslakd@xyz.invalid> wrote: Ja nie odpowiem, ale chciałbym zapytać Ciebie :) > Od jakiegoś czasu próbuję zaprząc język OCL (Object Constraint > Language) do utrwalenia decyzji projektowych i wymagań dla tworzonego > systemu. Korzystam z USE (UML-based Specification Environment, > ... Tzn., że nie ma już miejsca na refaktoring kodu? > http://www.db.informatik.uni-bremen.de/projects/USE). Dzięki symulacji > jest teoretycznie możliwa dynamiczna walidacja wyrażeń OCL podczas > testowania (ale nie udało mi się jeszcze tego mechanizmu zintegrować z > Pythonem). Z tego co widzę w przykładach na tej stronie to wygląda jak zwykłe testy jednostkowe lub akceptacyjne tylko mniej wygodne. Czy się myle? -- Piotr
Re: Wykorzystanie OCL-a w produkcji oprogramowania / walidacja
Author: Dariusz Cieslak
Date: Mon, 19 Mar 2007 15:45
Date: Mon, 19 Mar 2007 15:45
32 lines
2131 bytes
2131 bytes
On 2007-03-16, Peri <email@server.net> wrote: > Ja nie odpowiem, ale chciałbym zapytać Ciebie :) > > > Od jakiegoś czasu próbuję zaprząc język OCL (Object Constraint > > Language) do utrwalenia decyzji projektowych i wymagań dla > > tworzonego systemu. Korzystam z USE (UML-based Specification > > Environment, > > Tzn., że nie ma już miejsca na refaktoring kodu? To są rzeczy niezależne od siebie. Refaktoryzację przeprowadza się w istniejącym kodzie, specyfikacja jest dla kodu, który dopiero powstanie. > > http://www.db.informatik.uni-bremen.de/projects/USE). Dzięki > > symulacji jest teoretycznie możliwa dynamiczna walidacja wyrażeń > > OCL podczas testowania (ale nie udało mi się jeszcze tego > > mechanizmu zintegrować z Pythonem). > > Z tego co widzę w przykładach na tej stronie to wygląda jak zwykłe > testy jednostkowe lub akceptacyjne tylko mniej wygodne. Czy się > myle? Nie, to jest metoda na naszkicowanie funkcjonalności. Można opisać decyzje projektowe i założenia systemu w bardzo kompaktowy sposób nieosiągalny dla zwykłego zapisu np. w Javie czy SQL-u. Dzięki temu specyfikacje są zwięzłe. -- Dariusz Cieslak http://aplikacja.info - systemy informatyczne na zamówienie
Re: Wykorzystanie OCL-a w produkcji oprogramowania / walidacja
Author: Piotr Dembiński
Date: Mon, 19 Mar 2007 18:23
Date: Mon, 19 Mar 2007 18:23
31 lines
2159 bytes
2159 bytes
Dariusz Cieslak <cieslakd@xyz.invalid> writes: > On 2007-03-16, Peri <email@server.net> wrote: > >> Ja nie odpowiem, ale chciałbym zapytać Ciebie :) >> >> > Od jakiegoś czasu próbuję zaprząc język OCL (Object Constraint >> > Language) do utrwalenia decyzji projektowych i wymagań dla >> > tworzonego systemu. Korzystam z USE (UML-based Specification >> > Environment, >> >> Tzn., że nie ma już miejsca na refaktoring kodu? > > To są rzeczy niezależne od siebie. Refaktoryzację przeprowadza się > w istniejącym kodzie, specyfikacja jest dla kodu, który dopiero > powstanie. Tak, ale zakres istotnych własności programu, które powinny zostać zachowane, można określić właśnie na podstawie specyfikacji. Warto zauważyć, że -- tak czy inaczej -- na potrzeby refaktoryzacji jest zwykle tworzona tymczasowa, zawężona i uszczegółowiona specyfikacja własności programu i że ta zawężona specyfikacja często nie zostaje skodyfikowana. Co do samej refaktoryzacji, to -- według definicji Fowlera -- ma ona kluczowy wpływ na strukturę programu, czyli musi mieć wpływ zarówno na sam kod, jak i na projekt. -- http://www.piotr.dembiński.prv.pl
Re: Wykorzystanie OCL-a w produkcji oprogramowania / walidacja
Author: Peri
Date: Tue, 20 Mar 2007 08:47
Date: Tue, 20 Mar 2007 08:47
46 lines
2927 bytes
2927 bytes
On Mon, 19 Mar 2007 16:45:15 +0100, Dariusz Cieslak <cieslakd@xyz.invalid> wrote: > On 2007-03-16, Peri <email@server.net> wrote: > >> Ja nie odpowiem, ale chciałbym zapytać Ciebie :) >> >> > Od jakiegoś czasu próbuję zaprząc język OCL (Object Constraint >> > Language) do utrwalenia decyzji projektowych i wymagań dla >> > tworzonego systemu. Korzystam z USE (UML-based Specification >> > Environment, >> >> Tzn., że nie ma już miejsca na refaktoring kodu? > > To są rzeczy niezależne od siebie. Refaktoryzację przeprowadza się w > istniejącym kodzie, specyfikacja jest dla kodu, który dopiero > powstanie. > Ok. To oczywiste. Czyli co z takim OCL'em dalej robimy? Programiści mają pisać "pod niego"? A jak podczas implementacji okaże się że specyfikacja jest niedobra (inne nazwy metod, inne klasy - pewnie tak jest w 90% przypadków) to trzeba wracać do tego OCL'a i poprawiać, aby był zgodny z kodem? >> > http://www.db.informatik.uni-bremen.de/projects/USE). Dzięki >> > symulacji jest teoretycznie możliwa dynamiczna walidacja wyrażeń >> > OCL podczas testowania (ale nie udało mi się jeszcze tego >> > mechanizmu zintegrować z Pythonem). >> >> Z tego co widzę w przykładach na tej stronie to wygląda jak zwykłe >> testy jednostkowe lub akceptacyjne tylko mniej wygodne. Czy się >> myle? > > Nie, to jest metoda na naszkicowanie funkcjonalności. Można opisać > decyzje projektowe i założenia systemu w bardzo kompaktowy sposób > nieosiągalny dla zwykłego zapisu np. w Javie czy SQL-u. Dzięki temu > specyfikacje są zwięzłe. > Zastanawiam się tylko co z tym się dalej robi w trakcie tworzenia aplikacji. Zgadzam się, że to może kompaktowe, ale co gdy kod, który powstanie, wygląda inaczej niż początkowa specyfikacja? Skaczemy cały czas między kodem, a OCL'em, aby były zgodne i ten OCL mógł cokolwiek zwalidować? -- Peri
Re: Wykorzystanie OCL-a w produkcji oprogramowania / walidacja
Author: Dariusz Cieslak
Date: Tue, 20 Mar 2007 22:11
Date: Tue, 20 Mar 2007 22:11
50 lines
3416 bytes
3416 bytes
On 2007-03-20, Peri <email@server.net> wrote: > > To są rzeczy niezależne od siebie. Refaktoryzację przeprowadza się w > > istniejącym kodzie, specyfikacja jest dla kodu, który dopiero > > powstanie. > > Ok. To oczywiste. Czyli co z takim OCL'em dalej robimy? Programiści mają > pisać "pod niego"? A jak podczas implementacji okaże się że specyfikacja > jest niedobra (inne nazwy metod, inne klasy - pewnie tak jest w 90% > przypadków) to trzeba wracać do tego OCL'a i poprawiać, aby był zgodny z > kodem? W mojej firmie OCL jest tworzony wraz z rozwojem systemu dla poszczególnych zadań. W pliku specyfikacji zawieram opis fragmentu istniejącego systemu ważnego dla tworzonej funkcjonalności (np. trzy tabele z niektórymi atrybutami i kluczowe klasy) wraz z projektem nowych struktur / metod. OCL po implementacji jest "wyrzucany". Dzięki temu osoba pracująca na danycm use casem ma nieduży fragment systemu do poznania za każdym razem (nie musi obejmować całości). To jest typowy proces przyrostowy. Nie ma jednego głównego projektu OCL, wygodniej jest nam się posługiwać UML/OCL jako szkicownikiem na wysokim poziomie abstrakcji. > > Nie, to jest metoda na naszkicowanie funkcjonalności. Można opisać > > decyzje projektowe i założenia systemu w bardzo kompaktowy sposób > > nieosiągalny dla zwykłego zapisu np. w Javie czy SQL-u. Dzięki > > temu specyfikacje są zwięzłe. > > Zastanawiam się tylko co z tym się dalej robi w trakcie tworzenia > aplikacji. Zgadzam się, że to może kompaktowe, ale co gdy kod, który > powstanie, wygląda inaczej niż początkowa specyfikacja? Skaczemy > cały czas między kodem, a OCL'em, aby były zgodne i ten OCL mógł > cokolwiek zwalidować? Aktualnie OCL nie jest używany przez nas bezpośrednio do automatycznej walidacji tworzonej funkcjonalności. Istnieją jednak metody, które pozwalają sprawdzać poprawność działania systemu w trakcie wykonania względem OCL-a, ale jakość takiego sprawdzenia zależy od jakości pokrycia kodu testami: http://www.db.informatik.uni-bremen.de/publications/Richters_2003_UMLWS_AOD.ps Ponieważ nie walidujemy OCL-a względem kodu (jak nadmieniłem powyżej) cząstkowe specyfikacje poszczególnych przyrostów idą na "śmietnik" po utworzeniu zadanej funkcjonalności. -- Dariusz Cieslak http://aplikacja.info - systemy informatyczne na zamówienie
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads