2009-10-31 14 views
9

Wygląda na to, że analizator statyczny do użytku z umowami Code 4.0 dla systemu .NET będzie dostępny tylko w wersjach pakietu Visual Studio w pakiecie Team Suite, co znacznie ogranicza budżet mojego zespołu.Wszelkie alternatywy dla analizatora statycznego .Net 4 Code Contracts?

Czy są dostępne alternatywy (o otwartym kodzie źródłowym, bezpłatne lub w rozsądnej cenie), które oferują podobną analizę statyczną do projektowania według kodu umowy (niekoniecznie z wykorzystaniem kontraktów z kodem .net). Zgaduję, że odpowiedź brzmi nie, ponieważ pełna wartość pojawia się tylko wtedy, gdy sama BCL ma kontrakty - ale czy są jakieś, które wchodzą w grę?

Odpowiedz

2

Nie jestem pewien, czy to jest to, czego szukasz, ale może trzeba spojrzeć na Frama-C i jego ACSL język adnotacji C.

W porównaniu do umów .NET kontrakty ACSL nie są wykonywalne (nie można ich sprawdzić za pomocą twierdzeń wykonawczych), ale lepiej nadają się do analizy statycznej (są bardziej wyraziste i pozwalają na zapisanie pełnej specyfikacji i sprawdzenie statyczne, przynajmniej teoretycznie)

+0

Szybki rzut oka, który wygląda naprawdę imponująco - zwłaszcza ze wszystkimi wtyczkami. Wtyczka analizy wartości jest jedną z rzeczy, które chciałbym wykorzystać. Na pewno to sprawdzę! Widzę, że jest to ogólny zestaw narzędzi do wszystkiego w rodzinie C - jakiekolwiek doświadczenie, jak to pasuje do C# lub typowych pułapek, aby uniknąć? – FinnNk

+0

@FinnNk Nie jestem pewien co do "czegokolwiek w rodzinie C" ... To tylko dla C. Początkowy wysiłek polegał na obsłudze krytycznego osadzonego C, więc problem z łączeniem C# lub innymi językami z ich własną składnią dla umów został całkowicie ignorowane. A ponieważ w dalszym ciągu dzieje się wiele na stronie .NET contract, to i tak będzie to jeszcze trochę przedwczesne, chociaż brzmi to interesująco. –

+0

@FinnNk Jeśli chodzi o pułapki, we wtyczce do analizy wartości szybko się okaże, że obsługa ACSL jest dość częściowa (nawet wśród podzbiorów ACSL, które mogą być obsługiwane w automatycznej analizie statycznej propagacji do przodu). Jako typowe ograniczenie, analiza wartości wciąż nie rozumie \ wyniku w warunkach post-warunków. Widziałeś samouczek Jessie? Ma wiele kompletnych specyfikacji dla prostych funkcji, wyrażonych jako kontrakty. http://frama-c.cea.fr/jessie_tutorial_index.html –

0

Używam analizy statycznej w VS2010 Premia.

Powiązane problemy