소프트웨어 아키텍처 - 6(Quality Attributes)

박승현·2023년 9월 18일
1

아키텍처

목록 보기
6/30
post-thumbnail

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 성능
      • 더 많은 사용자나 데이터를 처리하기 위해 더 많은 자원을 할당하여 확장성을 향상시킬 수 있지만 이로 인해 성능이 희생될 수 있음

profile
KMU SW

0개의 댓글