Không Silver Bullet
-Essence và Tai nạn trong Software Engineering
Frederick P. Brooks, Jr.
Đại học North Carolina tại Chapel Hill
Không có phát triển duy nhất, trong cả hai công nghệ hoặc quản lý
kỹ thuật, mà bởi chính nó hứa hẹn thậm chí một trật tự-of-độ lớn
cải thiện trong vòng một thập kỷ về năng suất, độ tin cậy, trong sự đơn giản.
Tóm tắt
1
Tất cả các phần mềm xây dựng liên quan đến nhiệm vụ cần thiết, những chế tác phức tạp
cấu trúc tư tưởng mà soạn thực thể phần mềm trừu tượng, và các công việc tình cờ, các
đại diện của các thực thể trừu tượng trong ngôn ngữ lập trình và lập bản đồ của
các máy vào ngôn ngữ trong không gian và tốc độ hạn chế. Hầu hết các quá khứ lớn
lợi nhuận trong sản xuất phần mềm đã đi từ loại bỏ rào cản nhân tạo đã
thực hiện các nhiệm vụ tình cờ inordinately cứng, chẳng hạn như hạn chế phần cứng nghiêm trọng,
ngôn ngữ lập trình khó khăn, thiếu thời gian máy. Làm thế nào nhiều về những gì các phần mềm
kỹ sư bây giờ vẫn được dành cho việc tình cờ, như trái ngược với sự cần thiết? Trừ khi đó
là hơn 9/10 của tất cả nỗ lực, thu hẹp lại tất cả các hoạt động tình cờ để không có thời gian sẽ không
cung cấp cho một đơn đặt hàng cải thiện độ lớn.
Do đó nó xuất hiện mà đã có thời gian để giải quyết những phần thiết yếu của
nhiệm vụ phần mềm, những người có liên quan với fashioning cấu trúc khái niệm trừu tượng của đại
phức tạp. Tôi đề nghị:
Khai thác thị trường đại chúng để tránh xây dựng những gì có thể được mua.
•
Sử dụng mẫu nhanh như một phần của một sự lặp lại kế hoạch trong việc thiết lập phần mềm
•
yêu cầu.
Trồng phần mềm hữu cơ, thêm càng nhiều chức năng cho hệ thống khi chúng được
•
chạy, sử dụng, và thử nghiệm.
Xác định và phát triển các nhà thiết kế khái niệm to lớn của các thế hệ đang lên.
•
Giới thiệu
Trong tất cả những con quái vật đã lấp đầy những cơn ác mộng của văn hóa dân gian của chúng tôi, không khiếp sợ hơn
người sói, bởi vì họ biến đổi bất ngờ từ quen thuộc thành nỗi kinh hoàng. Đối với
những, chúng ta tìm kiếm những viên đạn bạc hơn kỳ diệu có thể đặt chúng để nghỉ ngơi.
Sao chép từ: Frederick P. Brooks,
The Mythical Man-Month, Anniversary edition với 4 mới
1
chương, Addison-Wesley (1995), tự in lại từ Proceedings của IFIP Tenth Thế giới Hội nghị Computing, H.-J. , Elsevier Science BV, Amsterdam, NL (1986) pp Kugler, ed.. 1069-1076. F. Brooks: Không Silver Bullet-Essence và tai nạn trong công nghệ phần mềm (1986) 2 Các dự án phần mềm quen thuộc cũng có một cái gì đó của nhân vật này (ít nhất là theo cách nhìn của các nhà quản lý không kỹ thuật), thường vô tội và đơn giản, nhưng có khả năng trở thành một con quái vật lịch trình bỏ qua, ngân sách thổi, và sản phẩm hoàn thiện. Vì vậy, chúng tôi nghe thấy tuyệt vọng tiếng kêu cứu cho một viên đạn bạc, một cái gì đó để làm cho chi phí phần mềm thả nhanh như máy tính chi phí phần cứng làm. Tuy nhiên, như chúng ta nhìn vào chân trời của một thập kỷ do đó, chúng tôi thấy không có viên đạn bạc. Không có phát triển duy nhất, trong cả hai công nghệ hoặc quản lý kỹ thuật, mà bởi chính nó hứa hẹn thậm chí một thứ tự cải thiện độ lớn về năng suất, độ tin cậy, trong sự đơn giản. Trong chương này, chúng tôi sẽ cố gắng để xem lý do tại sao, nhưng kiểm tra cả bản chất của các vấn đề phần mềm và các tính chất của những viên đạn được đề xuất. Chủ nghĩa hoài nghi không phải là bi quan, tuy nhiên. Mặc dù chúng tôi thấy không có những đột phá đáng ngạc nhiên, và quả thật, tin rằng như vậy là không phù hợp với bản chất của phần mềm, nhiều cải tiến đáng khích lệ đang được tiến hành. Một xử lý kỷ luật, nỗ lực nhất quán để phát triển, truyền bá và khai thác chúng thực sự nên năng suất được cải thiện trật tự của độ richter. Không có đường hoàng, nhưng có một con đường. Bước đầu tiên hướng tới việc quản lý của bệnh là sự thay thế của lý thuyết quỷ và humours lý thuyết của lý thuyết mầm bệnh. Đó là biện pháp rất, khởi đầu của hy vọng, tự nó tiêu tan mọi hy vọng của các giải pháp huyền diệu. Nó nói với nhân viên tiến độ sẽ được thực hiện từng bước, lúc nỗ lực tuyệt vời, và rằng một, chăm sóc không ngớt liên tục sẽ phải được trả cho một kỷ luật của sự sạch sẽ. Vì vậy, đó là với công nghệ phần mềm hiện nay. Điều đó có phải là khó? - Những khó khăn Essential Không chỉ có không có đạn bạc bây giờ trong quan điểm, chính bản chất của phần mềm làm cho nó không chắc rằng sẽ có bất kỳ-không có những phát minh đó sẽ làm cho sản xuất phần mềm, độ tin cậy và tính đơn giản những gì thiết bị điện tử, bóng bán dẫn, và quy mô lớn hội nhập đã làm cho phần cứng máy tính. Chúng tôi không bao giờ có thể mong đợi để xem tăng gấp đôi mỗi hai năm. Đầu tiên, chúng ta phải thấy rằng sự bất thường mà không phải là tiến trình phần mềm như vậy là chậm nhưng mà tiến bộ phần cứng máy tính là quá nhanh. Không có công nghệ khác kể từ khi nền văn minh đã bắt đầu đã thấy sáu đơn đặt hàng của các cường độ tăng giá hiệu suất trong 30 năm. Trong không khác công nghệ ai có thể chọn để có những lợi trong hoặc cải thiện hiệu suất hoặc giảm chi phí. Những lợi ích này chảy từ việc chuyển đổi sản xuất máy tính từ một ngành công nghiệp lắp ráp thành một ngành công nghiệp. Thứ hai, để xem những gì tiến độ chúng ta có thể mong đợi trong công nghệ phần mềm, chúng ta hãy xem xét những khó khăn của mình. Sau Aristotle, tôi chia chúng thành chất-những khó khăn vốn có trong bản chất của các phần mềm và tai nạn-những khó khăn mà ngày nay tham dự sản xuất của mình nhưng điều đó không phải là vốn có. Các vụ tai nạn tôi thảo luận trong phần tiếp theo. Đầu tiên chúng ta hãy xem xét bản chất. Bản chất của một thực thể phần mềm là một cấu trúc của lồng vào nhau khái niệm: tập hợp dữ liệu, các mối quan hệ giữa các hạng mục dữ liệu, thuật toán, và các viện dẫn các chức năng. Bản chất này là trừu tượng, trong đó các cấu trúc khái niệm đều nằm cùng nhiều khác nhau đại diện. Đó là dù sao chính xác cao và đa dạng về chi tiết. Tôi tin rằng phần cứng của phần mềm xây dựng được các đặc điểm kỹ thuật, thiết kế, thử nghiệm và các cấu trúc khái niệm này, không phải là lao động đại diện cho nó và kiểm tra độ trung thực của các đại diện. Chúng tôi vẫn còn làm cho các lỗi cú pháp, chắc chắn; nhưng họ là lông tơ so với các lỗi về khái niệm trong hầu hết các hệ thống. F. Brooks: Không Silver Bullet-Essence và tai nạn trong công nghệ phần mềm (1986) 3 Nếu điều này là đúng, xây dựng phần mềm sẽ luôn luôn được khó khăn. Vốn không có bạc đạn. Chúng ta hãy xem xét các đặc tính vốn có của bản chất không thể rút gọn này của hiện đại phần mềm hệ thống:. Phức tạp, phù hợp, hay thay đổi, và tàng hình. Complexity thực thể phần mềm phức tạp hơn cho kích thước của chúng có lẽ hơn bất kỳ khác xây dựng con người, bởi vì không có Hai phần này là như nhau (ít nhất là trên cấp độ báo cáo). Nếu có, chúng tôi làm cho hai bộ phận tương tự thành một, một chương trình con, mở hoặc đóng cửa. Trong này tôn trọng các hệ thống phần mềm khác nhau một cách sâu sắc từ các máy tính, các tòa nhà, hoặc xe ô tô,., Nơi yếu tố lặp đi lặp lại rất nhiều máy tính kỹ thuật số là tự phức tạp hơn so với hầu hết những người xây dựng; họ có số lượng rất lớn của các quốc gia. Điều này làm cho việc thụ thai, mô tả, và thử nghiệm chúng cứng. Hệ thống phần mềm có đơn đặt hàng của các cường độ nhiều quốc gia hơn các máy tính làm. Tương tự như vậy, một rộng-up của một thực thể phần mềm không chỉ đơn thuần là một sự lặp lại của cùng một nguyên tố có kích thước lớn hơn; nó hẳn là một sự gia tăng về số lượng các yếu tố khác nhau. Trong hầu hết các trường hợp, các yếu tố tương tác với nhau trong một số thời trang phi tuyến, và phức tạp của toàn bộ tăng nhiều hơn so với tuyến tính. Sự phức tạp của phần mềm là tài sản quan trọng, không phải là một một tai nạn. Do đó mô tả của một phần mềm thực thể trừu tượng đi phức tạp của nó thường là trừu tượng đi của nó bản chất. Toán học và khoa học vật lý có những bước tiến lớn cho ba thế kỷ bởi xây dựng các mô hình đơn giản của hiện tượng phức tạp, xuất phát từ tính chất các mô hình, và xác minh những đặc tính thực nghiệm. Điều này làm việc vì sự phức tạp bỏ qua trong các mô hình không phải là những đặc tính thiết yếu của các hiện tượng. Nó không hoạt động khi sự phức tạp là bản chất. Nhiều người trong số các vấn đề cổ điển của phát triển sản phẩm phần mềm có nguồn gốc từ này phức tạp cần thiết và phi tuyến của nó tăng lên với kích thước. Từ sự phức tạp đến khó khăn trong việc giao tiếp giữa các thành viên trong nhóm, dẫn đến sai sót của sản phẩm, chi phí vượt, chậm trễ tiến độ. Từ sự phức tạp đến khó khăn trong việc liệt kê, sự hiểu biết ít nhiều, tất cả các trạng thái có thể có của các chương trình, và từ đó đến sự không đáng tin cậy. Từ sự phức tạp của các chức năng đi kèm những khó khăn của cách gọi những chức năng, mà làm cho chương trình khó sử dụng. Từ phức tạp của cấu trúc đến các khó khăn trong việc mở rộng chương trình đến các chức năng mới mà không tạo ra tác dụng phụ. Từ phức tạp của cấu trúc đi kèm tình trạng unvisualized đó mà tạo an ninh trapdoors. Không chỉ là vấn đề kỹ thuật, nhưng vấn đề quản lý cũng đến từ sự phức tạp. Sự phức tạp này làm cho tổng quan cứng, do đó cản trở vẹn khái niệm. Nó làm cho nó khó khăn để tìm thấy và kiểm soát tất cả các đầu lỏng lẻo. Nó tạo ra những học to lớn và gánh nặng sự hiểu biết mà làm cho kim ngạch nhân viên một thảm họa. Sự phù hợp. Phần mềm người ta không đơn độc trong việc đối mặt phức tạp. Vật lý giao dịch với các đối tượng khủng khiếp phức tạp ngay cả ở cấp độ hạt "cơ bản". Nhà vật lý người lao động trên, tuy nhiên, trong một niềm tin vững chắc rằng có những nguyên tắc thống nhất được tìm thấy, cho dù trong quark hoặc trong lý thuyết trường thống nhất. Einstein liên tục lập luận rằng có phải được đơn giản hóa các giải thích về bản chất, bởi vì Thiên Chúa không phải là thất thường hoặc tùy ý. Không có đức tin như vậy an ủi các kỹ sư phần mềm. Phần lớn sự phức tạp, ông phải nắm vững là phức tạp tùy ý, ép buộc mà không vần điệu hay lý do của con người nhiều F. Brooks: Không Silver Bullet-Essence và tai nạn trong công nghệ phần mềm (1986) 4 tổ chức và hệ thống để mà giao diện của mình phải xác nhận. Có khác với các giao diện để giao tiếp, và theo thời gian, không phải vì cần thiết nhưng chỉ vì họ đã được thiết kế bởi những người khác nhau, chứ không phải bởi Thiên Chúa. Trong nhiều trường hợp các phần mềm phải xác nhận bởi vì nó đã gần đây nhất đến hiện trường. Trong những người khác nó phải phù hợp vì nó được xem như là phù hợp nhất. Nhưng trong mọi trường hợp, nhiều phức tạp xuất phát từ cấu tạo các giao diện khác; điều này không thể được đơn giản hóa ra bởi bất kỳ thiết kế lại phần mềm một mình.
đang được dịch, vui lòng đợi..