소스 코드 주석 처리가 소프트웨어 품질, 유지 보수성 및 개발자 생산성에 미치는 영향에 대한 경험적 연구가 있습니까? [닫은]


11

나는 소스 코드에 대해 의견을 말하고 소프트웨어 제품을 문서화하는 것을 옹호합니다. 필자가 언급 한 소스 코드 작업은 소프트웨어를 키우거나 유지해야 할 때 다른 방식으로 도움이되었다는 것이 개인적인 경험과 관찰입니다.

그러나 논평은 궁극적으로 가치가 없거나 그 가치에 의문을 제기하는 또 다른 캠프가 있습니다. 의견을 제시하지 않은 수많은 코딩 지지자들은 다음과 같이 주장합니다.

  • 코드 조각이 잘 작성된 경우 자체 설명이 필요하므로 주석을 달 필요가 없습니다.
  • 코드가 설명이 아닌 경우 리팩토링하여 설명이 필요하지 않으므로 설명이 필요하지 않습니다.
  • 테스트 스위트는 실제 문서입니다
  • 시간이 지남에 따라 코드와 주석이 동기화되지 않아 두통의 또 다른 원인이됩니다.
  • 애자일은 작업 코드가 문서 더미보다 중요하므로 주석 작성을 무시해도 안전합니다

나에게 이것은 단지 교리입니다. 다시 말하지만, 저의 개인적인 관찰은 똑똑하고 숙련 된 개발자 팀이 작성한 소프트웨어는 궁극적으로 자명하지 않은 상당한 양의 코드로 끝납니다.

다시 말하지만 Java API, Cocoa API, Android API 등은 양질의 문서를 작성하고 유지하려는 경우 가능하다는 것을 보여줍니다.

이 모든 것을 말하면서, 문서의 장단점에 대한 대화와 개인적인 신념을 기반으로 한 소스 코드에 대한 주석은 일반적으로 잘 끝나지 않으며 만족스러운 결론을 내리지 않습니다.

따라서 저는 소프트웨어 문서, 특히 소스 코드 주석, 품질 및 유지 관리 성 및 팀 생산성에 미치는 영향에 대한 학술 논문과 실증적 연구를 찾고 있습니다.

그러한 기사를 우연히 발견했으며 그 결과는 무엇입니까?


2
어쨌든 이것이 흥미로운 질문이라고 생각하지만 여기서 닫힐 수 있다는 사실은별로 놀랍지 않습니다. 이것이 내가 Quora에 이것을 게시 한 이유입니다.
Behrang Saeedzadeh

4
@gnat- "소프트웨어 개발 분야의이 측면에서 어떤 연구가 수행 되었습니까?" "주제에 관한 책을주세요"요청과는 다소 다른 질문입니다.
Josh Kelley

1
제목을 읽는 것만으로 : 품질에 미치는 영향에 대한 경험적 연구는 없습니다. 있다면이 사이트는 존재하지 않을 것입니다.
Euphoric

2
@Euphoric 두 진술은 서로 모순됩니다. "미친"30 년 된 문서를 무시하면 충돌이 없습니다. 그러나 어쨌든 우리는 그 결과가 오래되었다는 것을 무시 해서는 안되며 , 그들이 새로운 결과와 마찬가지로 현대 연구와 어떻게 관련되는지 비판적으로 평가해야합니다.

3
@Euphoric 나는 당신이 대답으로 게시하기를 원하므로 담요 어설 션에 대한 연구의 부족을 완전히 줄일 수 있습니다. 소프트웨어 품질에 대한 다양한 기술의 영향에 관한 경험적 및 기타 논문과 연구가 많이 있습니다. 소프트웨어 엔지니어링에 대해 공부 한 적이 있습니까?
Andres F.

답변:


9

에서 "모듈화 및 프로그램의 이해에 대한 의견의 효과" (1981), 우드 필드는 Dunsmore, 그리고 쉔은 "그 프로그램 과목 댓글 댓글이없는 것보다 더 많은 질문에 대답 할 수 있었다 포함되어 있습니다."발견

그러나 "코드 가독성을위한 메트릭 학습" (2010)에서 Raymond PL Buse와 Westley Weimer는 주석이 가독성과 품질에 미치는 영향이 제한적이라는 사실을 발견했습니다.

초록에서 :

우리는 자동화 된 가독성 측정을 구성하고이 메트릭이 소프트웨어 품질의 세 가지 측정 값, 즉 코드 변경, 자동화 된 결함 보고서 및 결함 로그 메시지와 밀접하게 관련되어 있음을 보여줍니다. 데이터에 따르면 주석 자체는 덜 중요합니다. 가독성에 대한 현지 판단에 대한 단순한 빈 줄보다.

12 페이지부터 :

의견은 주석 작성자의 가독성 (33 % 상대 검정력) 개념과 중간 정도의 상관 관계가있는 것으로 나타났습니다. 한 가지 결론은 주석이 가독성을 향상시킬 수 있지만 일반적으로 주석이 잘 읽히지 않는 코드 세그먼트 (주석과 읽을 수없는 코드가 효과적으로 균형을 잡는 부분)에서 사용된다는 것입니다. 순 효과는 주석 자체가 항상 가독성이 높거나 낮은 것을 나타내는 것은 아닙니다.

"코멘트없는 코딩"지지자들은 코멘트가없는 코드가 코멘트가있는 코드보다 낫다고 말하는 것은 아닙니다. 그들은 주석이없는 특정 스타일의 코드 ( 자체 설명 이름이있는 메소드코드를 추출하는 코드 , 변수를 설명 하는 코드, 테스트 스위트가 좋은 코드)가 그 일을하지 않는 코드보다 낫다고 주장합니다 그러나 의견이 있습니다. 이로 인해 수행 된 모든 연구의 적용 가능성이 복잡해질 수 있습니다.


1
Woodfield 등의 논문은 현재 Javadoc이라고하는 것과 거의 비슷한 특정 의견에 관한 것입니다. "특히,이 연구는 논리적 모듈 바로 앞에 삽입 된 짧은 의견이 기능을 간략하게 설명함으로써 이해를 도울 수 있는지를 결정하려고합니다. 논리 모듈의 경계를 정의하는 데 도움이됩니다. "

나는 그 당시에 추가 했어야했는데 그것은 가치가 없다고 말하는 것이 아니라 실제로 흥미롭고 잘 구성된 연구이다. 나는 그들이 모든 의견 을 받아들이지 않는다고 말하는 것이 필요하다고 생각했습니다 .
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.