유연성은 현재 시스템을 손상시키지 않고 기능을 추가/수정/제거할 수 있는 소프트웨어의 능력입니다. 확장성은 시스템을 손상시키지 않고 기능을 추가하는 소프트웨어의 능력이므로 유연성의 하위 집합으로 간주될 수 있습니다. 이러한 기능적 변경은 요구사항의 변화에 따라 또는 개발 프로세스가 반복적인 방법 중 하나인 경우 발생할 수 있습니다. 소프트웨어 개발의 변화는 불가피하므로 이는 고품질 소프트웨어의 가장 중요한 속성 중 하나입니다.
유지 관리 가능성은 유연성과 다소 유사하지만 버그에 중점을 둡니다. 수정 및 사소한 기능 수정보다는 수정을 위한 수정입니다. 주요 기능의 확장성보다 이는 유용한 인터페이스 정의, 문서, 자체 문서화 코드 및/또는 코드 문서를 통해 지원될 수 있습니다. 문서가 더 정확하고 유용할수록 유지 관리 가능성이 높아집니다.
성능은 주로 소프트웨어의 응답 시간과 관련이 있습니다. 이 응답 시간은 허용 가능한 간격(예: 최대 몇 초) 내에 있어야 하며 트랜잭션 수가 증가하더라도 증가해서는 안 됩니다. 또한 리소스 비용도 비쌉니다. 효율성은 자원 활용을 통해 뒷받침되어야 합니다. 과장된 예로서, 간단한 기능을 수행하기 위해 32 프로세서 시스템 또는 1TB의 디스크 공간만 사용하는 것은 허용되지 않습니다. 최고의 소스/성능 비율을 목표로 해야 합니다.
로드가 증가하더라도 허용 가능한 시간 내에 사용자 작업에 응답하는 확장 가능한 시스템입니다. 물론 증가하는 사용자 트랜잭션을 처리하기 위해 더 많은 하드웨어를 추가할 수 있지만 그렇게 할 때 아키텍처가 변경되어서는 안 됩니다. 이를 수직적 확장성이라고 합니다. 점점 더 많은 수의 컴퓨터에서 실행되는 능력이 다중 처리입니다. 소프트웨어가 그러한 처리를 수행할 수 있다면 이를 수평적 확장성이라고 합니다. 선호되는 확장 가능한 시스템은 두 가지 접근 방식을 모두 수용해야 합니다.
가용성, 견고성, 내결함성 및 신뢰성:
견고한 소프트웨어는 대부분의 오류 상태에서도 가용성을 잃지 않아야 합니다. 일부 구성 요소에 오류가 발생하더라도 계속 작동할 수 있습니다. 또한 전체 애플리케이션이 충돌하더라도 백업 하드웨어와 데이터 및 내결함성 방법을 사용하여 자체적으로 복구할 수 있습니다. 항상 플랜 B나 C, D가 있어야 합니다. 신뢰성은 또한 높은 부하 조건에서도 소프트웨어의 무결성과 일관성을 나타냅니다. 따라서 이는 가용성 및 확장성과 관련이 있습니다. 신뢰할 수 없는 시스템은 확장도 불가능합니다.
사용자의 관점에서 보면 사용자 인터페이스는 소프트웨어에서 유일하게 눈에 보이는 부분입니다. 따라서 이 경우에는 단순성, 작업 완료에 소요되는 시간 단축, 빠른 학습 등이 매우 중요합니다. 이 속성의 가장 유명한 원칙은 KISS(Keep It Simple Stupid)입니다. 단순한 것이 항상 최고입니다. 또한 사용 가능한 소프트웨어는 장애인을 위한 다양한 접근성 유형의 제어를 지원해야 합니다.
품질 소프트웨어는 가능한 한 많은 플랫폼에서 실행되어야 합니다. 따라서 더 많은 사람들이 혜택을 누릴 수 있습니다. 다양한 상황에서는 다양한 플랫폼을 지칭할 수 있으며 이는 운영 체제 플랫폼, 브라우저 유형 등일 수 있습니다. 이식성이란 더 나은 플랫폼 호환성을 위해 소프트웨어를 다양한 플랫폼에서 실행하도록 조정하는 것을 의미합니다. 이런 의미에서 이식성은 유연성에 관한 것이기도 합니다.
테스트 가능성 및 관리 용이성
고품질 소프트웨어에는 품질 테스트가 필요합니다. 소스 코드는 최대한의 적용 범위와 가장 효율적인 테스트 방법으로 테스트되어야 합니다. 이는 캡슐화, 인터페이스, 패턴, 낮은 결합 등과 같은 기술을 올바르게 사용하여 수행할 수 있습니다. 테스트 가능성 외에도 좋은 소프트웨어는 배포 후 관리가 쉬워야 합니다. 예를 들어 성능이나 데이터 사용 상태를 모니터링하거나 개발자가 시스템을 쉽게 구성할 수 있도록 할 수 있습니다. 성공적인 로깅 시스템을 만드는 것은 관리 효율성과 관련된 또 다른 매우 중요한 문제입니다.
보안은 소프트웨어 개발에서 매우 중요한 문제입니다. 특히 수백만 명의 사용자가 시스템에 원격으로 액세스할 수 있는 웹 기반 또는 모바일 장치 기반 소프트웨어 개발의 경우 더욱 그렇습니다. 보안 정책을 구축하고 진입점을 남기지 않음으로써 올바르게 적용해야 합니다. 여기에는 승인 및 인증 기술, 사이버 공격 보호, 데이터 암호화 등이 포함될 수 있습니다. 가능한 모든 유형의 보안 취약성을 고려해야 합니다. 그렇지 않으면 단 한 번의 공격만으로도 전체 애플리케이션과 회사 전체가 다운될 수 있습니다.
기능성(또는 정확성)은 실제 요구 사항 및 사양에 대한 소프트웨어의 적합성을 의미합니다. 실제로 이는 애플리케이션의 우선순위 속성이며 품질 요소가 아닐 수도 있지만 주의를 끌기 위해 이를 마지막 품질 요소로 만들고 싶습니다. 작동하지 않는 소프트웨어에 대해 이야기할 때 품질 요소는 의미가 없습니다. 제대로. 먼저 필요한 기능을 수행하고 올바른 소프트웨어를 생성한 다음 품질 요소를 적용합니다. 두 사람이 손을 잡고 갈 수 있다면 가장 좋을 것입니다.
위 내용은 소프트웨어 개발에서 무시할 수 없는 10가지 요소의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!