Tài liệu tham khảo có thể thực hiện được cho phần mềm


14

Tôi hiện đang viết luận án tiến sĩ. Tôi đã dành một phần đáng kể tiến sĩ của mình để dọn dẹp và mở rộng mã khoa học hiện có, áp dụng các thực tiễn tốt nhất về công nghệ phần mềm mà trước đây không được sử dụng và muốn viết về điều này trong luận án của tôi. Thay vì chỉ đơn giản nói "Tôi đã thêm bài kiểm tra đơn vị", tôi muốn có thể viết một cái gì đó như thế này:

J. Doe đã phát minh ra các bài kiểm tra đơn vị vào năm 1975 [ 23 ] . Một nghiên cứu gần đây của Bloggs và cộng sự [ 24 ] đã chỉ ra rằng các thử nghiệm đơn vị giúp giảm 73% tỷ lệ lỗi phần mềm ... 234 thử nghiệm đơn vị riêng biệt đã được thêm vào cơ sở mã, được quản lý bởi khung xUnit được tạo bởi Timpkins et al [ 25 ][23][24][25]

Tôi đang tìm kiếm các tài liệu tham khảo học thuật có thể đọc được (tốt nhất là các bài báo trong các tạp chí được đánh giá ngang hàng, nơi tôi có thể nhận được DOIs, BibTeX, v.v.) để thực hành tốt nhất về kỹ thuật phần mềm được chấp nhận rộng rãi, cụ thể:

  • kiểm tra đơn vị
  • kiểm soát phiên bản
  • mô đun hóa / tách mối quan tâm
  • hồ sơ hiệu suất / tối ưu hóa dựa trên thông tin hồ sơ
  • theo dõi lỗi / vấn đề

Tôi đang tìm kiếm thông tin cả về phát minh ban đầu và các đánh giá hiệu quả tiếp theo. Nếu có một bài viết đánh giá liệt kê tất cả những thứ này ở một nơi thì càng tốt thì càng tốt.


1
Điều này có giúp được không: plosbiology.org/article/ từ
akid

Nếu mục đích của việc thêm tài liệu tham khảo là để thuyết phục người đọc rằng thực tiễn tốt hơn là tốt hơn, thì có thể có ý nghĩa hơn để giải thích lý do tại sao họ trực tiếp tốt hơn; chỉ đơn giản là đưa ra các tài liệu tham khảo có thể ít thuyết phục hơn. Hãy nhớ rằng rất nhiều trong số những điều này là phổ biến trong các khóa học kỹ thuật phần mềm đại học, có thể được tìm thấy trong sách giáo khoa tiêu chuẩn, và không nhất thiết phải là nghiên cứu tiên tiến.
Kirill

Kinh nghiệm của tôi là bạn cần cả động lực và tài liệu tham khảo. Tôi vừa có một cuộc trò chuyện với các đồng nghiệp ngày hôm qua (cả hai đều là các nhà khoa học thực hành), những người cho rằng phương pháp thử nghiệm ad hoc hoạt động tốt hơn (câu trả lời ngắn: họ không). Điều quan trọng là thể hiện động lực về mặt số liệu mà các nhà khoa học tính toán dường như quan tâm: các bài báo có tác động cao hơn nhanh hơn và kết quả chính xác hơn (xem liên kết về nghiên cứu tái tạo). Chỉ vào tài liệu tham khảo bởi vì mọi người sẽ đấu tranh với bạn về những điểm này cho rằng không có lợi ích đáng kể.
Geoff Oxberry

Trong mọi trường hợp, những người sẽ kiểm tra luận án của tôi sẽ là giáo sư khoa học vật liệu hoặc hóa học chứ không phải là chuyên gia khoa học tính toán. Họ có thể sẽ có một số kinh nghiệm viết mã nhưng gần như chắc chắn họ sẽ không thực hiện bất kỳ mã hóa nghiêm trọng nào kể từ khi họ còn là sinh viên hoặc chính các tài liệu hậu kỳ. Những gì tôi cần là một cái gì đó nói rằng "Năm đó, bằng tiến sĩ của tôi mà tôi đã dành cho việc này, tôi thực sự đã làm một việc gì đó hữu ích và không chỉ dừng lại ở đó"
user1915639

Câu trả lời:


13

Cuốn sách Code Complete của Steve McConnell , ấn bản thứ 2 có một thư mục mở rộng thảo luận về những vấn đề này từ nhiều quan điểm của các nhà phát triển phần mềm hơn là các nhà khoa học tính toán. Cuốn sách đang bắt đầu trở nên ít thời gian, trong đó nó đã gần một thập kỷ, vì vậy nó không bao gồm các phương pháp thử nghiệm gần đây như phát triển theo hành vi. Tuy nhiên, đó là điều gần nhất với một bài viết đánh giá toàn diện về xây dựng phần mềm mà tôi biết. Bạn cũng có thể tìm các bài viết trong Phần mềm IEEE.

Về mặt khoa học tính toán, tôi nghĩ rằng bài viết hay nhất có lẽ là phiên bản PLoS của bản in arXiv DavidKetcheson đã trích dẫn về "Thực tiễn tốt nhất cho tính toán khoa học". Tôi nói điều này đến từ một nền tảng kỹ thuật, nơi ít người trích dẫn các tài liệu tham khảo arXiv hoặc đăng các bản in lại arXiv, và do đó, trích dẫn một "bài báo thực sự" (tất nhiên, tất cả các vấn đề về xuất bản khoa học đang được tranh luận ngay bây giờ ) được xem xét thuận lợi hơn (và tôi có ấn tượng đó là lý do tại sao những tác giả đó chọn xuất bản nó trên một tạp chí).

Các tác giả của bài báo PLoS mà DavidKetcheson và tôi đã trích dẫn là một phần của một tổ chức có tên là Software Carpentry đặt "trại khởi động" (thường là 2 ngày) để dạy các nhà khoa học về một số thực tiễn tốt nhất để phát triển phần mềm và kỹ năng tính toán hữu ích cho các nhà khoa học (không chỉ các nhà khoa học tính toán). Trang web Mộc phần mềm có một thư mục mở rộng liên quan đến phát triển phần mềm trong khoa học. Nếu bạn quan tâm đến những vấn đề này, tôi khuyến khích bạn tiếp cận với chúng; họ luôn tìm kiếm nhiều người ủng hộ các thực tiễn tốt nhất trong phát triển phần mềm để làm tình nguyện ở nhiều năng lực khác nhau. ( Tuyên bố miễn trừ trách nhiệm : Tôi tình nguyện với Phần mềm mộc.)

Một cách biện minh phổ biến khác để tham gia vào các thực tiễn tốt nhất về phát triển phần mềm là khả năng tái tạo. Victoria Stodden đã sắp xếp một danh sách dài các tài liệu tham khảo nghiên cứu có thể tái tạo có thể được quan tâm, tùy thuộc vào những gì bạn muốn nói.


Danh sách đọc "Phần mềm mộc" có vẻ hữu ích.
dùng1915639

6

Tôi không có tài liệu tham khảo về nguồn gốc của từng ý tưởng / thực tiễn này. Nhưng đây là một số tài liệu tham khảo rất gần đây:


Tôi chắc chắn đứng thứ hai trong số các tài liệu tham khảo đầu tiên :-) Thông tin đầy đủ của nó là Wolfgang Bangerth, Timo Heister Điều gì làm cho các thư viện phần mềm nguồn mở tính toán thành công? Khoa học tính toán & Khám phá, tập. 6, bài viết 015010 (18 trang), 2013
Wolfgang Bangerth

-2

IMHO Tôi sẽ rất cẩn thận trích dẫn "Thực tiễn tốt nhất" trong bối cảnh các phương pháp đã được khoa học chứng minh. Hầu hết các thực tiễn đều bắt nguồn từ "những gì dường như hoạt động cho một tập hợp các dự án bởi một người được coi là bậc thầy tham gia vào các dự án đó", thay vì xuất phát từ thử nghiệm nghiêm ngặt các phương pháp khác nhau. Có quá nhiều biến số và yếu tố con người trong công nghệ phần mềm để nêu ra một danh sách "thực tiễn tốt nhất" có thể tham khảo (ví dụ, một thực tiễn hoạt động trên một dự án sẽ hoàn toàn thất bại trên một dự án khác).

Tôi sẽ tiếp cận nó bằng cách nêu rõ dự án của bạn cần gì, tại sao nó cần nó và thêm các tham chiếu đến các phương thức được sử dụng và tại sao bạn sử dụng chúng.

Tôi cũng sẽ nghiêng về báo cáo kết quả có thể định lượng hơn là tham chiếu để nêu quan điểm của bạn. Ví dụ: nếu đơn vị của bạn kiểm tra phát hiện 100 lỗi, 10 trong số đó đủ nghiêm trọng để gây nghi ngờ về kết quả được công bố trước đó. Đây là một tuyên bố mạnh mẽ hơn nhiều để có trong tiến sĩ của bạn hơn là một tuyên bố mà bạn biết nguồn gốc của các bài kiểm tra đơn vị.

chỉnh sửa: (sửa lỗi chính tả) - Trả lời như sau - Tôi thường cho con nuôi như một sự tương tự với các dự án phần mềm. Có nhiều phương pháp và cách thử nghiệm để nuôi dạy chúng, cố gắng nuôi con bằng một phương pháp vì nó hoạt động với mức trung bình hoặc mẫu phụ được thử nghiệm, sẽ hoạt động miễn là con bạn giống như phương pháp được thử nghiệm. Tốt hơn là nên biết nhiều phương pháp và áp dụng những phương pháp hoạt động trong ví dụ của bạn. Có thử nghiệm đơn vị có thể được chứng minh, nhưng áp dụng nó dựa trên điều đó một mình có thể có nghĩa là dự án của bạn được đưa ra thị trường muộn và do đó không thành công (nếu đó là mục tiêu). Tôi đang nói rằng áp dụng một phương pháp để có được kết quả và đưa ra kết quả của kết quả đó, theo tôi là tốt hơn trong một luận án, hơn là liệt kê những điều bạn đã thử dựa trên các dự án khác - trừ khi chủ đề của luận án là đo lường phương pháp luận :)


1
Trên thực tế, các nghiên cứu đã so sánh các chiến lược phát hiện lỗi như kiểm tra đơn vị, lập trình cặp, bước qua một chương trình với trình gỡ lỗi và xem xét mã chính thức và đánh giá hiệu quả của chúng. Bạn đúng rằng mỗi chiến lược có vị trí của nó. Cộng đồng phát triển phần mềm nhận ra điểm này trong tài liệu và gợi ý những gì có thể hoạt động tốt nhất cho các loại dự án khác nhau. Nếu "quá nhiều biến số và yếu tố con người" thực sự là một trở ngại cho việc hình thành các thực tiễn tốt nhất, thì chúng ta sẽ không có chúng trong y học, hoặc các lĩnh vực khác có vấn đề phức tạp tương tự, nhưng chúng ta vẫn làm. Tôi không mua đối số của bạn.
Geoff Oxberry

"một chuyện lãng mạn tuyên bố mạnh mẽ hơn trong tiến sĩ của mình" là một lỗi đánh máy đáng yêu
denis
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.