2009-08-30 57 views
8

Tôi đang làm việc trên một dự án khá lớn, một vài năm làm, tại một công ty khá lớn và tôi đang thực hiện nhiệm vụ lái xe tốt hơn chất lượng mã tổng thể.Làm thế nào để bạn đo mã "chất lượng" trên một dự án lớn

Tôi đã tự hỏi bạn sẽ sử dụng loại số liệu nào để đo lường chất lượng và độ phức tạp trong ngữ cảnh này. Tôi không tìm kiếm các biện pháp tuyệt đối, nhưng một loạt các mặt hàng có thể được cải thiện theo thời gian. Cho rằng đây là một chút của một hoạt động vĩ mô trên hàng trăm dự án (tôi đã nhìn thấy một số câu hỏi về các dự án nhỏ hơn nhiều), tôi đang tìm kiếm một cái gì đó tự động hơn và toàn diện.

Cho đến nay, tôi có một danh sách giống như thế này:

  • tỷ lệ che phủ Mã trong đầy đủ chức năng kiểm tra
  • Recurrance thất bại BVT
  • phụ thuộc đồ thị/điểm, dựa trên một số công cụ như NDepend
  • số xây dựng cảnh báo
  • số cảnh báo FxCop/StyleCop tìm thấy/supressed
  • số "CATC h" báo cáo
  • Số triển khai thủ công bước
  • Số dự án
  • Tỷ lệ mã/dự án đó là 'chết', như trong, không tham khảo bất cứ nơi nào
  • Số WTF trong thời gian đang xét
  • Tổng số dòng mã, có thể bị phá vỡ bởi tầng
+4

Sự hiện diện của mido-chlorians. – cletus

+0

http://stackoverflow.com/questions/84556/whats-your-favorite-programmer-cartoon/84609#84609 –

+1

Câu hỏi bỏ phiếu. – Raedwald

Trả lời

1

Độ phức tạp là một chỉ số "chất lượng". Tôi chắc rằng các nhà phát triển có thể tìm cách "chơi" nó nếu đó là chỉ số duy nhất! :)

Và sau đó có số liệu C.R.A.P. ...

P.S. NDepend có khoảng mười tỷ chỉ số, do đó có thể đáng xem. Xem thêm CodeMetrics cho Trình phản xạ.

D'oh! Tôi chỉ nhận thấy rằng bạn đã đề cập đến NDepend.

Số lỗi đã thông báo sẽ là thú vị để theo dõi, quá ...

+0

Chụp. CodeMetrics PS đó có thể đáng được hỏi một mình. – askheaves

+0

Chúng tôi có rất nhiều người trong nội bộ mở và theo dõi lỗi. Hàng chục nghìn lỗi trên ứng dụng của tôi và các lỗi khác trên mỗi bản phát hành. Như tôi đã nói ... LỚN. – askheaves

0

Lượng software cloning/duplicate code, ít rõ ràng là tốt hơn. (Liên kết thảo luận về các dòng vô tính và các kỹ thuật khác nhau để phát hiện/đo lường chúng.)

+0

Trình gắn cờ bằng lái xe: bạn có thể có quyền lịch sự để giải thích lý do tại sao bạn phản đối điều này. –

1

Nếu bạn thực hiện nhiệm vụ hướng tới chất lượng mã tổng thể tốt hơn. Bạn có thể xem:

  • Bạn đang gặp phải bao nhiêu vấn đề mở và mất bao lâu để giải quyết?
  • Bạn có quy trình gì để thu thập yêu cầu?
  • Nhân viên của bạn có tuân theo các phương pháp hay nhất không?
  • Bạn có định nghĩa của sop để mô tả phương pháp lập trình của công ty bạn hay không.

Khi bạn có một số nhà phát triển tham gia vào một dự án lớn, mọi người đều có cách lập trình. Mỗi kiểu lập trình giải quyết vấn đề nhưng một số câu trả lời có thể kém hiệu quả hơn các câu trả lời khác.

Làm thế nào để bạn utlize nhân viên của bạn khi tấn công một tính năng mới hoặc sửa mã tồn tại. Có các nhà phát triển làm việc theo nhóm sau khi lập trình cho mọi người để trở thành một mã tốt hơn.

Khi người của bạn mã hiệu quả hơn sau quy tắc, thời gian phát triển của bạn sẽ nhanh hơn.

Bạn có thể nhận được tất cả các số liệu mà bạn muốn nhưng tôi nói trước hết bạn phải xem có bao điều đang được thực hiện:

gì bạn thực hành phát triển?

Nếu không biết mọi thứ hiện đang được thực hiện, bạn có thể nhận được tất cả các số liệu bạn muốn nhưng bạn sẽ không bao giờ thấy bất kỳ trình cải tiến nào.

+0

Tôi thích câu trả lời này bởi vì nó nói về phía bên kia của vấn đề của tôi ... tôi đưa ra những tiêu chuẩn nào để phát triển? Tôi nghĩ rằng tôi đang xem xét các chỉ số đang thúc đẩy các tiêu chuẩn đó, nhưng chúng tôi có thể thực hiện điều này từ cả hai hướng. – askheaves

5

Bạn nên tổ chức công việc của mình trong sáu đặc điểm chất lượng phần mềm chính: chức năng, độ tin cậy, khả năng sử dụng, hiệu quả, tính bảo trì và tính di động. Tôi đã đặt một số diagram online mô tả các đặc điểm này. Sau đó, đối với từng đặc tính, hãy quyết định các chỉ số quan trọng nhất mà bạn muốn và có thể theo dõi. Ví dụ, một số chỉ số, giống như các chỉ số của Chidamber và Kemerer phù hợp với phần mềm hướng đối tượng, các số liệu khác, như độ phức tạp của chu trình là mục đích chung hơn.

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