소프트웨어 부패는 주로 성능 또는 지저분한 코드를 가리 킵니까?


22

소프트웨어 부패 에 대한 Wikipedia의 정의소프트웨어 성능에 중점을 둡니다. 이것은 내가 익숙한 것과는 다른 사용법입니다. 코드의 청결성과 디자인 측면에서 코드의 표준 품질 특성 인 가독성, 유지 관리 성 등의 측면에서 훨씬 더 많이 생각했습니다. 이제 코드를 읽을 수 없게되면 성능이 저하 될 수 있습니다. 아무도 무슨 일이 일어나고 있는지 모르기 때문입니다. 그러나 소프트웨어 부패라는 용어에는 성능에 대한 특별한 언급이 있습니까? 또는 코드의 청결성을 의미한다고 생각합니까? 또는 이것은 아마도 일반적인 용어로 사용되는 용어에 대한 여러 의미의 경우 일 수도 있습니다. 사용자 관점에서 보면 성능과 관련이 있습니다. 그러나 소프트웨어 장인의 경우 코드를 읽는 방법과 더 관련이 있습니까?


1
Wikipedia에는 ​​3 가지 원인이 있으며 그 중 2 가지는 성능, 미사용 코드거의 업데이트 되지 않은 코드 와 관련이 없습니다 .
Izkata

2
"소프트웨어는 시간이 지남에 따라"성능 "이 저하되고 일반적으로"레거시 "라고 불리며 오류가 누적 될 수 있습니다. 일반적으로 소프트웨어 부패로 간주되지는 않지만 동일한 결과가 발생할 수 있습니다." 소프트웨어 부패가 성능과 관련이 없다는 것이 분명하다고 생각합니다.
zzzzBov

1
전체 위키피디아 페이지의 유일한 재개 기능은 소스를 참조하지 않는 태그 경고입니다.
mattnz

답변:


39

이 용어는 성능 관련이 아니며 적어도 내가 본 곳은 아닙니다.

특히 잘 유지되지 않고 더러워지고 썩은 코드에 관한 것입니다. 변경 사항이 적용되어 디자인이 업데이트되지 않았으며 읽고 이해하기 어려운 코드에 관한 것입니다.


1
예를 들어 "Windows rot"과 같이 성능을 나타내는 데 사용한다고 들었습니다. 시간이 지남에 따라 속도가 느려지면 Windows를 자주 다시 포맷하고 다시 설치해야한다는 느낌입니다.
Carson63000

3
하지만 ... "소프트웨어 썩음"과 "창 썩음"은 다른 용어입니다.
Stephen C

4
@Oded-비유는 비유가 아닙니다. 오래된 건물에서 발생하는 부패와 함께 구조적으로 소리가 나지 않습니다.
Stephen C

18

현실을 직시하자. "소프트웨어 썩음"은 잘 정의 된 기술 개념이 아닙니다. 소프트웨어가 제대로 유지 관리되지 않을 때 발생하는 상황에 대한 자세한 설명입니다.

Wikipedia 페이지는 하나의보기를 나타내지 만 분명히 다른보기가 있습니다. 그리고 당신은 다른 견해가 그 견해를 가진 사람의 다른 우선 순위와 관심사를 반영한다고 말할 수 있습니다.

  • 소프트웨어를 빠르게 만드는 데 주력하는 사람은 성능에서 "소프트웨어 부패"의 증거를 찾는 경향이 있습니다.

  • 디자인 / 아키텍처에 중점을 둔 사람 (예 : 새로운 기능을 추가하거나 기능 버그를 수정해야하기 때문에)은 이러한 관점에서 "소프트웨어 부패"를 보게됩니다.

그리고 누구의 관점이 더 옳은지를 말하는 것은 실제로 유용하지 않습니다. 청록색이 더 녹색인지 또는 파란색인지를 논쟁하는 것과 같습니다.


1
OP의 게시물은 Wikipedia에 관한 것이기 때문에 나는 제시합니다 : 청록색 (컬러) - "녹색"이지만 "청색"입니다. 그래서 나는 당신의 주장이 건전하다고 생각합니다 :).
Ben Lee

6

"소프트웨어 부패"라는 용어는 일반적으로 당면한 작업에 대한 적합성을 말합니다. 버그 수정, 새로운 기능 및 미세 조정으로 인해 소프트웨어가 의도 한 작업에 적합하지 않을 수 있습니다. 종합하면 유지 관리 성과 성능에 모두 부정적인 영향을 줄 수 있습니다. 또한 조직의 요구는 시간이 지남에 따라 변경 될 수 있으며 소프트웨어는 실제로 의도하지 않은 역할을하게 될 수 있습니다. 이러한 모든 요소로 인해 소프트웨어가 조직의 요구에 적합하지 않게되며 소프트웨어 유지 관리 노력으로도 발생할 수 있습니다.


6

Wikipedia는 소프트웨어 부패와 코드 부패가 동일하다고 말합니다. 동의하지 않습니다.

코드 썩음은 코드에 점점 더 많은 변경이 가해 짐에 따라 가독성과 유지 관리 성이 점진적으로 손실됩니다.

소프트웨어 썩음은 소프트웨어가 한 환경 에뮬레이터에서 다른 환경 에뮬레이터로 이동함에 따라 점진적인 성능 손실입니다. 예를 들어 에뮬레이터에서 실행되는 모든 Data General PDP 소프트웨어가 있습니다. 사실, 소프트웨어가 아닌 썩은 환경입니다.


+1. 위키 백과는 코드 부패와 소프트웨어 부패를 동일시했다. 편집해야합니다. 더 많은 소프트웨어 부패가 있습니다. 한 가지 예로 GUI를 사용할 수 없거나 어려움이 있습니다. 오래되었거나 잘못된 문서도 제공됩니다.
Jayan

3

소프트웨어는 실제로 나 빠지지 않고, 전통적인 의미에서 부패하거나, 마모되거나 "부패"되지 않습니다.

소프트웨어가 작동하는 환경이 변하지 않으면 소프트웨어는 기본적으로 영원히 지속됩니다. 저자가 지난 5 분 동안 라이브러리를 업데이트하지 않았기 때문에 누군가가 어떤 라이브러리가 "죽었다"고 묻었을 때 너무 엿보 인 이유입니다 (효과를 위해 약간만 과장).

그러나 환경은 보통 않습니다 변화; 운영 체제가 패치 및 업데이트되고 컴퓨터가 더 강력한 시스템으로 교체되며 소프트웨어가 의존 할 수있는 최신 버전의 Internet Explorer, 장치 드라이버 또는 기타 라이브러리와 같은 클라이언트와 같은 새로운 프로그램이 설치됩니다. 따라서 이러한 변경 사항을 고려하여 소프트웨어를 업데이트해야합니다.

크게 업데이트되거나 유지 관리되지 않고 문자 그대로 수십 년 동안 지속적으로 안정적으로 실행되는 소프트웨어 시스템이 있습니다. 은행 거래를 처리하는 메인 프레임에서 실행되는 COBOL 소프트웨어가 떠 오릅니다 (Y2K를 처리하기 위해 1999 년에 모두 수정해야했지만).

Wikipedia의 성능에 대한 강조는 요점을 벗어난 것 같습니다. 많은 소프트웨어 응용 프로그램은 실제로 새로운 환경에 설치 될 때 성능이 향상 됩니다. Wikipedia 기사는 실제로 소프트웨어 팽창에 더 관심이있는 것 같습니다 .


소프트웨어 팽창 — 예, 좋은 지적입니다. 질문에 대한 용어를 이해하면서 소프트웨어 썩음은 코드 정리 및 디자인 표준이 하위 그룹 인 개발자 그룹에 의해 계속 수정되었다는 사실과 관련이있었습니다.
Kazark

3

"소프트웨어 썩음"-매우 모호한 용어 이며, 개념에 대한 인식은 물론 시야각 이 어떻게되는지에 따라 모든 사람에게 다양한 것을 의미 할 수 있습니다 .

소프트웨어 부패 에 대한 Wikipedia의 정의 는 일부 개인이 작성하기 때문에 표준을 설정하지 않습니다. 이 용어는 다양한 의미를 지니고 있으며, 참조되는 특정 영역으로 세분화되어야한다고 생각합니다.

  • 프로그래머 는 이것을 안티 패턴으로 가득 찬 유지 관리가 불가능한 코드 기반으로 이해하고 명명 및 코딩 스타일의 일관성을 이해할 수 없습니다.
  • 시스템 관리자 는 이것을 성능 저하, 메모리 누수 및 지옥으로 가득한 것으로 이해할 수 있습니다. 유지.
  • 최종 사용자 는 이것을 매우 복잡하고 직관적이지 않은 작업하기 어려운 소프트웨어로 이해할 수 있습니다.

2

나는 항상 소프트웨어 부패를 일정 기간 동안 소프트웨어를 사용하지 않을 때 발생하는 조건으로 생각했습니다. 어쨌든 소프트웨어는 빌드 할 수없는 상태로 변형됩니다. 그런 다음 빌드 할 수있는 지점에 도달하면 이전과 마찬가지로 입력 및 출력에서 ​​작동하지 않습니다. 마치 코드 디지털 방식으로 저장되어 있어도 실제로 형태 저하 되는 것처럼 보입니다 .


1
환경 (컴파일러, 라이브러리 등)이 변경 되었기 때문에? Wikipedia가 그에 대해 이야기합니다.
Kazark
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.