2010-11-17 38 views
7

Có thư viện/công cụ nào cho đặc tả chính thức trong C++, chẳng hạn như JML cho Java và Data Contracts trong C#?Đặc điểm kỹ thuật chính thức

EDIT:

Tôi không tìm kiếm cái gì cụ thể hơn, việc sử dụng và thêm một số giá trị/chất lượng là điều thiết thực.

EDIT2:

Tôi không tìm kiếm công cụ UML, vui lòng xem các ví dụ tôi đã cung cấp.

+0

Câu hỏi rất hay - mặc dù tôi chỉ thực hiện thông số chính thức cho các bài tập tốt nghiệp, tôi muốn biết nếu có công cụ nào cho việc đó. –

+0

Chúng tôi sử dụng một wiki cho thông số kỹ thuật của chúng tôi. –

+0

Một wiki hoạt động, tuy nhiên vấn đề tôi gặp phải là khi một số người làm việc trên mã "wiki" và các dạng "đặc tả" khác ít được thi hành với mỗi lần lặp lại. – ronag

Trả lời

1

Phần mềm Rational XML UML của IBM tạo mã C++ theo mô hình UML hoàn chỉnh.

Không bao giờ sử dụng nó mặc dù, không thực sự tôi có ý nghĩa. Chỉ cần một cái nhìn ngắn gọn và chỉ ở các chức năng UML.

+0

Nghe có vẻ giống như UML thực thi. Tuy nhiên, tôi đang tìm một cách chính thức hơn là khẳng định để xác định hành vi của việc thực hiện. – ronag

+0

Cảm ơn, chưa bao giờ nghe về UML thực thi. Thật sự thú vị. –

+0

Xin lỗi vì không rõ ràng. Điều tôi muốn nói là UML quá chính thức, tuy nhiên khẳng định của C/C++ không đủ chính thức. Tôi đã làm việc với một số công cụ dựa trên UML như Bridgepoint, và họ thêm nhiều rắc rối hơn giá trị của chúng. Các hợp đồng hàm và các biến thể lớp là những gì tôi quan tâm nhất. – ronag

0

Nếu bạn đang tìm kiếm một công cụ đơn giản để thực hiện UML mà không phiền phức, StarUML là một dự án nguồn mở (chỉ dành cho Windows). Tôi đã sử dụng IBM Rational Rose và Microsoft Visio (với phần mở rộng UML) và tôi phải nói rằng StarUML được thực hiện rất tốt.

Tôi chưa bao giờ thử bất kỳ điều gì khác ngoài sơ đồ lớp và kinh nghiệm của tôi chủ yếu là cho các thông số kỹ thuật không chính thức và các dự án nhỏ. Nó cũng có một số tính năng tạo mã, nhưng tôi chưa bao giờ thử chúng.

1

FRAMA-c - hấp dẫn, JML cảm hứng, tôi tiếp tục cố gắng sử dụng nó, nhưng không thể làm cho thời điểm đó - cụ thể để c i tin. nhưng ít nhất nên cung cấp các con trỏ để tìm các công cụ C++

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