2009-10-31 30 views
9

Dường như máy phân tích tĩnh để sử dụng với các hợp đồng mã .NET 4.0 sẽ chỉ có sẵn cho các phiên bản Team Suite của Visual Studio - điều này đặt nó bên ngoài ngân sách cho nhóm của tôi.Bất kỳ lựa chọn thay thế nào cho .Net 4 Code Hợp đồng phân tích tĩnh?

Có bất kỳ giải pháp thay thế nào (nguồn mở, miễn phí hoặc giá hợp lý) cung cấp phân tích tĩnh tương tự cho thiết kế theo mã kiểu hợp đồng (không nhất thiết phải sử dụng hợp đồng mã net). Tôi đoán câu trả lời sẽ không có giá trị đầy đủ chỉ đến khi bản thân BCL có hợp đồng - nhưng có cái nào đi một phần không?

Trả lời

2

Tôi không chắc chắn nếu đó là những gì bạn đang tìm kiếm, nhưng bạn có thể có một cái nhìn tại Frama-C và ngôn ngữ chú thích ACSL của nó đối với C.

So với hợp đồng .NET hợp đồng ACSL, không thực thi (không thể kiểm tra chúng với các xác nhận thời gian chạy) nhưng phù hợp hơn với phân tích tĩnh (chúng mang tính biểu cảm hơn và cho phép một đặc tả đầy đủ được viết và kiểm tra tĩnh. Ít nhất về mặt lý thuyết)

+0

Nhìn lướt qua trông rất ấn tượng - đặc biệt là với tất cả các plugin. Plugin phân tích giá trị nói riêng nằm trong số những thứ tôi muốn sử dụng. Tôi chắc chắn sẽ kiểm tra xem nó ra! Tôi thấy rằng đó là một bộ công cụ chung cho bất cứ điều gì trong gia đình C - bất kỳ kinh nghiệm làm thế nào nó phù hợp với C# hoặc những cạm bẫy phổ biến để tránh? – FinnNk

+0

@FinnNk Tôi không chắc chắn về "bất cứ điều gì trong gia đình C" ... Chỉ dành cho C. Nỗ lực ban đầu hướng tới xử lý nhúng C quan trọng, do đó, vấn đề giao tiếp C# hoặc các ngôn ngữ khác với cú pháp riêng của họ cho các hợp đồng đã được hoàn toàn bị bỏ qua. Và vì vẫn còn rất nhiều điều xảy ra ở bên ký kết hợp đồng .NET, nên nó vẫn còn hơi sớm ngay bây giờ, mặc dù điều đó nghe có vẻ giống như một chủ đề thú vị. –

+0

@FinnNk Về những cạm bẫy, trong trình cắm thêm phân tích giá trị, bạn sẽ nhanh chóng thấy rằng hỗ trợ ACSL là một phần (ngay cả trong tập hợp con của ACSL có thể được hỗ trợ trong phân tích tĩnh tự động chuyển tiếp). Như một giới hạn điển hình, phân tích giá trị vẫn không hiểu được \ dẫn đến hậu điều kiện. Bạn đã xem hướng dẫn của Jessie chưa? Nó có một vài thông số kỹ thuật hoàn chỉnh cho các chức năng đơn giản, được biểu diễn dưới dạng hợp đồng. http://frama-c.cea.fr/jessie_tutorial_index.html –

0

Tôi đang sử dụng phân tích tĩnh trong VS2010 Đặc biệt.

Các vấn đề liên quan