Các mô hình lập trình và nhà phát triển bảo trì [đã đóng]


9

Tôi đã đọc, Sự kiện và Ngụy biện của Kỹ thuật phần mềm, có một phần bảo trì. Kể từ khi, tôi là một nhà phát triển bảo trì trong nhiều năm nay, tôi đã trình bày những sự thật rất thú vị. Đây là ba.

  • Sự thật 41: Bảo trì thường tiêu tốn 40 đến 80 phần trăm (trung bình, 60 phần trăm) chi phí phần mềm. Do đó, nó có lẽ là giai đoạn vòng đời quan trọng nhất của phần mềm.
  • Sự thật 42: Cải tiến chịu trách nhiệm cho khoảng 60 phần trăm chi phí bảo trì phần mềm. Sửa lỗi là khoảng 17 phần trăm. Do đó, bảo trì phần mềm chủ yếu là về việc thêm khả năng mới cho phần mềm cũ, chứ không phải sửa nó.
  • Sự thật 45: Phát triển công nghệ phần mềm tốt hơn dẫn đến bảo trì nhiều hơn chứ không phải ít hơn.

Cái này là phản trực giác, hóa ra phần mềm tốt có nhiều bảo trì hơn, bởi vì nó dễ thay đổi. Do đó, nó được sử dụng lâu hơn, dẫn đến, có, nhiều thay đổi hơn.

Mô hình nào (như chức năng, hướng đối tượng, thủ tục) có khả năng duy trì tốt nhất, và có nghiên cứu nào để sao lưu điều này không?


Tôi sở hữu một bản sao của Sự kiện và Ngụy biện, và đối với mỗi sự kiện (và sai lầm), có những trích dẫn cho các ấn phẩm khác nhau hỗ trợ nó. Tôi không có một bản sao tiện dụng, nhưng có bất kỳ trích dẫn nào thảo luận về tác dụng của mô hình đối với việc bảo trì không?
Thomas Owens

Cuốn sách được viết vào năm 2003, phần lớn kết luận vẫn còn liên quan đến ngày nay. Tôi tò mò nếu mọi người có bất kỳ nghiên cứu mới nào về các mô hình cụ thể. Bảo trì có vẻ như là một phần bỏ qua của cuộc thảo luận.
KaizenSoze

Nếu bất kỳ nghiên cứu hoặc ấn phẩm nào được trích dẫn trong Sự kiện và Ngụy biện là về khả năng duy trì của một mô hình cụ thể, một lựa chọn sẽ là tìm kiếm cơ sở dữ liệu của IEEE hoặc ACM cho các bài báo và bài báo khác trích dẫn bài báo đó. Nếu bạn không có quyền truy cập vào cơ sở dữ liệu của IEEE hoặc ACM, tôi có thể xem bản sao của cuốn sách khi tôi về nhà và xem liệu tôi có thể thực hiện tìm kiếm như vậy không. Thật không may, tôi chỉ có thể lấy cho bạn tên của các loại giấy tờ khác chứ không phải bản thân giấy tờ.
Thomas Owens

Câu trả lời:


12

Tôi nghĩ bạn sẽ thấy rằng các mô hình như chức năng, OO và thủ tục có thể không phù hợp với khả năng bảo trì phần mềm theo một cách có ý nghĩa.

Những gì bạn có thể tìm thấy các phần tử sau đây rõ ràng hơn nhiều với khả năng bảo trì phần mềm:

  • Mức độ thu thập yêu cầu và yêu cầu kỹ thuật

  • Thực hành phát triển tốt: (Khớp nối lỏng lẻo, Độ kết dính cao, Thử nghiệm đơn vị, YAGNI ...)

  • Kỹ sư phần mềm có tay nghề và có trình độ (Chúng có giá trị gấp 10 lần một kẻ ngốc)

  • Đội ngũ QA kỹ thuật có trình độ và tổ chức

  • Quản lý dự án tốt được dẫn dắt bởi các nhà quản lý dự án có thẩm quyền (Thậm chí khó tìm hơn các nhà phát triển phần mềm lành nghề IMHO)

  • Chủ sở hữu sản phẩm tốt hoặc người quản lý ứng dụng, lãnh đạo mạnh mẽ, định hướng dài hạn tốt, phản hồi tốt cho các nhóm dự án, tầm nhìn tổng thể.


+1 Tôi muốn thêm tài liệu tốt vào danh sách
treecoder

+1 Thêm quy trình "Giá trị tập trung" vào danh sách. Quá trình xác định và điều khiển những gì đã làm và không được thực hiện. Những gì các biện pháp quá trình là quan trọng, và những gì quá trình không đo lường là không quan trọng. Đặc biệt đúng khi những người nhân sự bắt đầu lấp đầy chỗ ngồi bằng "morons".
mattnz

2

Cái này là phản trực giác, hóa ra phần mềm tốt có nhiều bảo trì hơn, bởi vì nó dễ thay đổi. Do đó, nó được sử dụng lâu hơn, dẫn đến, có, nhiều thay đổi hơn.

Bạn dường như đang xem điều này từ số tiền bảo trì và không phải là tỷ lệ phần trăm của chi phí. Phần mềm tốt có nhiều tính năng được thêm vào chỉ là số lượng phần mềm lớn hơn. Nếu phần trăm bảo trì được cố định (vì đó là phần mềm tốt và chúng tôi giả sử các tính năng bổ sung đã được thêm dưới dạng phần mềm tốt), số tiền sẽ tăng lên. Nó chỉ là một miếng bánh lớn hơn với cùng số lát.

Dựa trên những gì bạn hỏi, vấn đề là phần mềm "tốt" được viết bằng: chức năng, OOP hay mã thủ tục. Sẽ cung cấp cho ai đó một máy cưa dẫn hướng bằng laser tiết kiệm gỗ nếu người đó không biết cách đo?

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.