소프트웨어 아키텍처 - 6(Quality Attributes)
Quality Attribute
- 제품 또는 서비스의 모든 특성과 특징의 총체는 명시적 또는 암시적으로 제시된 요구를 충족하는 능력에 영향을 미친다
- 품질의 정의, 서비스의 특성과 특징은 품질을 만족 시키기 위해 고려되어야 함
Quality Attribute
- 품질특성이란 양이나 질로 관찰하여 수치로 측정할 수 있는 시스템의 특성
- 품질특성은 시스템의 비기능적 요구사항의 중요한 부분이다
- 시스템의 측정 가능하거나 테스트 가능한 속성으로 관계자의 요구사항을 얼마나 효과적으로 충족시키는지를 나타냄
Quality Attributes in Implementation
- Implementation attributes(런타임시 관측되지 않는 구현 특성에서의 퀄리티 특성)
- Interoperability(상호 운용성)
- 내부 구성 요소 간의 데이터 교환 및 보편적 접근성
- Maintainability and Extensibility(유지보수성 및 확장성)
- 시스템을 수정하고 편리하게 확장할 수 있는 능력
- Testability(테스트 가능성)
- Portability(이식성)
- 소프트웨어 및 하드웨어 플랫폼에 대한 독립성 수준(독립성이 높아야 다른 플랫폼으로 이동하기 유리함)
- Scalability(확장성)
- 사용자 요청의 증가에 대응하는 시스템의 능력(기능적보단 규모적인 측면 강조)
- Flexibility(유연성)
- 원래 설계된 목적 외의 다양한 환경이나 문제에 맞게 수정할 수 있는 능력
Quality Attributes in Runtime
- Runtime attributes(런타임시 관찰 가능한 퀄리티 특성)
- Availability(가용성)
- 시스템이 이용 가능한 능력(연중무휴 그런 느낌)
- Security(보안)
- 시스템이 외부 또는 내부로부터의 악의적인 공격에 대응하는 능력
- Performance(성능)
- 시스템의 응답 시간, 처리량 및 자원 활용과 관련된 효율성 향상
- Usability(사용성)
- Reliability(신뢰성)
- 장애 발생 빈도, 출력 결과의 정확성, 고장에서의 복구능력, 고장 예측 능력 및 평균 고장 시간
- Maintainability(유지보수성)
- (확장성, 적응성, 서비스 가능성, 테스트 가능성, 호환성 및 설정 가능성): 소프트웨어 시스템 변경의 편의성
Quality Attributes in Business needs
- 비즈니스 특성
- Time to market(출시 시간): 요구사항 분석부터 제품이 출시되는 날짜까지 걸리는 시간
- Cost(비용): 시스템을 구축, 유지 보수 및 운영하는 비용
- Lifetime(수명): 제품이 사용되는 기간, 제품이 사용 종료되기까지의 시간
비즈니스 측면에서의 소프트웨어 퀄리티
Typical quality attribute tradeoff pairs(상충관계)
- 여러 조합이 존재하긴 하지만 일반적인 tradeoff의 쌍이 있음
- 신뢰성 and 성능
- 시스템의 안정성과 오류 없이 작동하는 능력인 신뢰성을 달성하기 위해 추가적인 안정화, 오류 처리 메커니즘을 도입하면 성능이 저하될 수 있음
- 확장성(Scalability) and 성능
- 더 많은 사용자나 데이터를 처리하기 위해 더 많은 자원을 할당하여 확장성을 향상시킬 수 있지만 이로 인해 성능이 희생될 수 있음