프로그래밍 패러다임 및 유지 보수 개발자 [닫기]


9

유지 보수 섹션이있는 소프트웨어 엔지니어링의 사실과 오류를 읽고있었습니다. 저는 몇 년 동안 유지 보수 개발자로 일해 왔기 때문에 매우 흥미로운 사실을 제시했습니다. 여기 3 개가 있습니다.

  • 사실 41 : 유지 보수는 일반적으로 소프트웨어 비용의 40-80 % (평균, 60 %)를 소비합니다. 따라서 아마도 소프트웨어의 가장 중요한 수명주기 단계 일 것입니다.
  • 사실 42 : 향상은 소프트웨어 유지 관리 비용의 약 60 %를 담당합니다. 오류 수정은 약 17 %입니다. 따라서 소프트웨어 유지 관리는 주로 수정하지 않고 이전 소프트웨어에 새로운 기능을 추가하는 것입니다.
  • 사실 45 : 더 나은 소프트웨어 엔지니어링 개발로 더 많은 유지 보수가 가능합니다.

이것은 직관적이지 않았으며, 좋은 소프트웨어는 변경하기 쉽기 때문에 더 많은 유지 보수가 필요하다는 것이 밝혀졌습니다. 따라서 더 오래 사용되므로 더 많은 변경 사항이 발생합니다.

기능, 객체 지향, 절차와 같은 패러다임은 유지 관리 성이 가장 우수하며이를 뒷받침하는 연구가 있습니까?


사실과 오류의 사본을 소유하고 있으며 각 사실 (및 오류)에 대해이를 지원하는 다양한 출판물에 대한 인용이 있습니다. 나는 사본을 가지고 있지 않지만 그 인용 중 어느 것이 패러다임이 유지 보수에 미치는 영향에 대해 논의하고 있습니까?
토마스 오웬스

이 책은 2003 년에 작성되었으며 오늘날에도 여전히 많은 결론을 내립니다. 사람들이 특정 패러다임에 대한 새로운 연구가 있는지 궁금합니다. 유지 보수는 토론에서 간과 된 부분처럼 보입니다.
KaizenSoze

Facts and Fallacies에 인용 된 연구 나 간행물이 특정 패러다임의 유지 관리 가능성에 관한 것이라면 IEEE 또는 ACM 데이터베이스에서 해당 논문을 인용하는 다른 기사와 논문을 검색 할 수 있습니다. IEEE 또는 ACM 데이터베이스에 액세스 할 수없는 경우 집에 돌아갈 때 책 사본을보고 그러한 검색을 수행 할 수 있는지 확인할 수 있습니다. 불행히도, 나는 당신에게 종이 자체가 아닌 다른 종이의 이름 만 얻을 수있을 것입니다.
토마스 오웬스

답변:


12

기능, OO 및 절차와 같은 패러다임이 소프트웨어 유지 관리 기능과 의미있는 방식으로 연결되지는 않을 것입니다.

소프트웨어 유지 관리 기능을 통해 다음과 같은 내용을 훨씬 더 명확하게 확인할 수 있습니다.

  • 요구 사항 수집 및 요구 사항 엔지니어링 레벨

  • 좋은 개발 관행 : (느슨한 커플 링, 높은 응집력, 단위 테스트, YAGNI ...)

  • 숙련되고 자격을 갖춘 소프트웨어 엔지니어 (무론보다 10 배나 가치가 있음)

  • 자격을 갖춘 체계적인 기술 QA 팀

  • 유능한 프로젝트 관리자가 주도하는 우수한 프로젝트 관리 (숙련 된 소프트웨어 개발자보다 IMHO를 찾기가 더 어렵다)

  • 좋은 제품 소유자 또는 응용 프로그램 관리자, 강력한 리더십, 좋은 장기 방향, 프로젝트 팀에 대한 좋은 피드백, 전반적인 비전.


+1 좋은 문서를 목록에 추가하고 싶습니다
treecoder

+1 "Value Focused"프로세스를 목록에 추가하십시오. 프로세스는 수행 한 작업과 수행하지 않은 작업을 정의하고 추진합니다. 프로세스 측정이 중요하고 프로세스가 측정하지 않는 것은 중요하지 않습니다. HR 직원이 "모론"으로 좌석을 채우기 시작할 때 특히 그렇습니다.
mattnz

2

이것은 직관적이지 않았으며, 좋은 소프트웨어는 변경하기 쉽기 때문에 더 많은 유지 보수가 필요하다는 것이 밝혀졌습니다. 따라서 더 오래 사용되므로 더 많은 변경 사항이 발생합니다.

당신은 비용의 비율이 아니라 유지 보수의 양에서 이것을보고있는 것 같습니다. 더 많은 기능이 추가 된 좋은 소프트웨어는 많은 양의 소프트웨어입니다. 유지 관리 비율이 고정되어 있으면 (소프트웨어가 양호하고 추가 기능이 양호한 소프트웨어로 추가되었다고 가정하기 때문에) 양이 증가합니다. 그것은 같은 수의 조각을 가진 더 큰 파이 조각 일뿐입니다.

요청한 내용에 따라 "좋은"소프트웨어가 기능적, OOP 또는 절차 적 코드로 작성되었는지 여부가 중요합니다. 사람이 측정하는 방법을 모른다면 누군가에게 레이저 유도 식 파워 쏘를 주면 목재를 절약 할 수 있습니까?

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.