더북(TheBook)

소프트웨어 설계는 소프트웨어 품질에 상당한 영향을 미친다고 알려져 있다. 이 책의 초점은 소프트웨어 설계에 맞췄는데, 표 2.1은 소프트웨어 설계 맥락에서 품질*을 정리한 것이다. 표 2.1에서는 ‘설계 단편’Design Fragment이라는 용어를 사용하여 추상화(클래스, 인터페이스, 추상 클래스)나 추상화의 집합과 이들 사이의 관계(상속 계층, 의존성 그래프) 등 설계의 일부를 표시하는데, 이 점에 주목하자.

 

▼ 표 2.1 중요한 품질 속성과 정의

품질 속성

정의

이해 가능성

설계 단편을 어느 정도 쉽게 이해할 수 있는가?

변경 가능성

기존 기능을 변경할 때, 파급 효과를 일으키지 않고 설계 단편을 얼마큼 쉽게 수정할 수 있는가?

확장 가능성

새로운 기능을 지원할 때, 파급 효과 없이 설계 단편을 얼마큼 쉽게 개선하거나 확장할 수 있는가?

재사용 가능성

원래 설계 단편을 개발한 목적 이외에 다른 맥락의 문제에서 얼마큼 쉽게 해당 설계 단편을 사용할 수 있는가?

테스트 가능성

테스트를 거쳐 결함을 설계 단편에서 얼마큼 쉽게 감지할 수 있는가?

안정성

설계 단편이 기능을 얼마큼 올바르게 현실화하고, 실행 과정에서 문제점이 발생할 때 효과적으로 방어할 수 있는가?

 

 


* 구조적인 설계 악취가 영향을 미치는 다른 중요한 품질 속성(성능과 보안 등)이 많다는 사실에 주목하자. 하지만 이런 품질과 설계 악취의 관련성을 자세히 설명하면 책 한 권 분량이므로 책에서는 다른 품질 속성은 설명을 생략한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.