이 질문의 초점 : 일부 소프트웨어는 소프트웨어의 하나 이상의 내부 오류에도 불구하고 "최종적으로 성공 / 만족스러운"결과의 가능성을 높이기 위해 "추가 작업"을 수행하므로 이러한 오류가 발생하면 실행 시간이 길어집니다. 결과가 성공적이면 사용자 모르게이 모든 것이 발생합니다.
복잡한 소프트웨어의 정의 :
- 평생 동안 10 명 이상의 개발자가 작성 (기여) 한 코드를 포함하며 동일한 시간대로 작성되지 않음
- 각각 10 가지 이상의 외부 라이브러리에 따라 달라짐
- 일반적인 소프트웨어 작업 (사용자가 원하는 결과를 생성하기 위해)에는 10 개 이상의 입력 매개 변수가 필요합니다. 여기서 대부분의 기본값이 있지만 사용자가 제어해야하는 경우 구성 할 수 있습니다.
- 가장 중요한 것은 수행중인 작업과 관련하여 적절한 복잡성을 갖는 소프트웨어, 즉 불필요하게 복잡하지 않은 소프트웨어입니다 .
편집 : 복잡한 것은 무엇입니까? Complex와 Complicated 사이에는 큰 차이가 있음을 참조하십시오 . (직접 링크)
이 질문에서 중복 / 견고성의 정의 :
(주석에 따라 견고성 추가)
- 현재 매개 변수 세트를 사용할 때 소프트웨어 태스크가 실패한 경우 다른 매개 변수를 시도하십시오.
- 분명히 이러한 "다른"매개 변수가 다른 코드 경로를 사용하여 결과적으로 다른 결과를 얻을 수 있다는 내부 지식이 있어야합니다.
- 때때로 이러한 다른 코드 경로는 외부 라이브러리의 관찰에 따라 선택됩니다.
- 마지막으로 수행 된 실제 작업이 사용자의 사양과 약간 다른 경우 사용자에게 불일치에 대한 보고서가 표시됩니다.
- 마지막으로 10 개 이상의 구성 가능한 매개 변수와 마찬가지로 중복 및보고도 구성 할 수 있습니다.
그러한 소프트웨어의 예 :
- 데이터베이스 마이그레이션
- 사업 데이터베이스
- 소스 제어 데이터베이스 등
- Word 문서와 OpenOffice 문서, PowerPoint 및 OpenOffice Draw 등의 일괄 변환
- 전체 웹 사이트 자동 번역
- Doxygen과 같은 소프트웨어 패키지를 자동으로 분석하지만 분석이보다 신뢰할 수 있어야하는 곳 (예 : 문서 도구가 아님)
- 패킷이 손실되고 여러 번의 재 시도가 예상되는 네트워크 통신
이 질문은 원래 의도적으로 잘못된 코드 를 어떻게 처리합니까?
그러나 이제 소프트웨어 팽창의 원인 중 하나에 만 초점을 맞 춥니 다. 이 질문은 새로운 기능 추가와 같은 소프트웨어 팽창의 다른 원인을 다루지 않습니다.
아마도 관련 :