Suzanne Miller - Principal researcher at the SEI (the Carnegie Mellon University Software Engineering Institute)
Dr. Neil Ernst - A fellow researcher who works in the SEI’s Architectural Practices Initiative
요약
우리는 소프트웨어의 품질 속성에 대해 이야기한다. 이러한 것을 비 기능 요구 사항이라고 한다. 더 일반적인 것일 수도 있는데 품질 속성은 반응해야 하는 속도와 같은 것을 지정한다. 그리고 품질 속성은 시스템에 제약 조건을 추가한다.
성능 제약 조건은 보안 제약 조건, 사용 편의성 제약 조건 내에서 수행해야 하는데 이러한 것들이 모두 품질 속성이 되는 것이다. 품질 속성은 기능적 측면보다 관심을 덜 받는 경향이 있어 경영진은 더 관심이 있다.
아키텍처 측면에서 볼 때 품질 속성은 아키텍처 결정에 가장 큰 영향을 미칠 때가 있다. 예를 들어 로그인 화면을 구현하기 위해 여러 프레임워크 중에서 선택할 수 있지만 성능을 고려하면 선택의 폭을 좁힐 수 있다. (그것은 트레이드 오프 부분이다)
하지만 품질 속성은 잊혀지는 경향이 있다. 어떤 성능을 원하거나 보안을 원하는 것과는 다르다. 이 것은 절충점을 찾아야 한다. 이러한 절충점은 실제로 결정하기 어려운 경우가 많다.
암호를 보면, 모든 속성을 가진 14 자 암호를 사용해야 할 때 사용자로서 영숫자인 것을 기억하기가 쉽지 않다. 새 은행 사이트를 사용할 때 6자에서 8자로 제한되고 영숫자만 가능하다면 이것은 쉽게 해킹 당할 수 있다. 보안 측면을 고려하지 않았고 균형도 못 맞췄다.