가이드라인: 인터페이스
주제
- 시스템에서 수행하는 역할을 반영할 인터페이스의 이름을 지정하십시오.
- 이름은 한 개에서 두 개 단어로 짧아야 합니다.
- 이름에 단어 "interface"는 포함하지 마십시오.
이는 모델 요소 유형(예: interface)으로 암시됩니다.
- 설명을 통해 인터페이스의 책임을 전달해야 합니다.
- 설명은 몇 줄의 긴 문장에서 짧은 단락으로 이루어져야 합니다.
- 설명은 단순히 인터페이스의 이름을 다시 언급해서는 안되며
시스템에서 인터페이스가 수행하는 역할을 설명해야 합니다.
- 조작 이름은 조작의 결과를 반영해야 합니다.
- 조작이 정보를 설정하거나 가져올 경우
조작 이름에 set(설정) 또는 get(가져오기)을 포함하는 것은
불필요한 반복입니다. 설정 또는 검색 중인 모델 요소의 등록 정보와 동일한 이름을 조작에
부여하십시오. 매개변수 없이 이름 지정된
조작은 등록 정보를 검색하는 반면, 매개변수가 있는 이름 지정된 조작은 등록 정보를
설정합니다.
예
name()은 객체 이름을 리턴하며 name(aString)은
객체 이름을 aString으로 설정합니다.
- 조작 설명에서 모든 중요 알고리즘을 포함하여 조작이 수행하는
내용 및 조작이 리턴하는 값을 설명해야 합니다.
- 조작으로 전달 중인 정보를 표시하는 조작의 매개변수 이름을
지정하십시오.
- 매개변수의 유형을 식별하십시오.
인터페이스에서 정의하는 작동은 일련의 조작으로 지정됩니다.
추가 정보를 전달해야 합니다.
- 조작이 사용되는 방법 및 조작이 수행되는 순서
(순서 다이어그램의 예로 설명됨).
- 가능한 외부적으로 준수해야 할 요소에서 인터페이스가 내재될 수 있음을 인식하는
모델 요소를 설명합니다(상태 기계에서 설명되며 가이드라인:
Statechart 다이어그램 참조).
- 인터페이스를 인식하는 모델 요소의 작동을 테스트하는 테스트 계획 및
스크립트.
이 정보를 그룹화하고 관리하기 위해서는 인터페이스 및 모든 관련 결과물을 포함하는
패키지를 작성해야 합니다.
모든 인터페이스는 시스템에서 'seam'(시스템을 "분리"하고
다시 빌드하거나 다시 설계할 수 있는 위치)을 표시합니다. 인터페이스는
설계 또는 구현으로부터 스펙의 분리를 표시합니다. 잘 구조화된
인터페이스는 다음과 같습니다.
- 단순하지만 완벽하여 단일 서비스를 지정하기에 충분한 모든 필요 조작을
제공합니다.
- 이해가 가능하여 기존 사용법 또는 구현을 조사할 필요 없이 인터페이스를
인식하고 사용할 수 있는 충분한 정보를 제공합니다.
- 접근이 가능하여 조작의 세부사항으로 인해 압박을 받지 않고 중요 등록 정보로
사용자를 안내하는 정보를 제공합니다.
인터페이스를 구성할 경우
- 시스템에 seam의 존재를 단순히 지정해야 할 때마다 "lollipop" 표기법을
사용하십시오. 서브시스템에서 이 표기법이 가장 자주 필요하지만
클래스에서는 필요하지 않습니다.
- 서비스 자체의 세부사항을 표시해야 할 때 펼쳐진 "클래스" 표기법을
사용하십시오. 패키지 또는 서브시스템에서 제공하는 서비스를 지정할 경우
이 표기법이 가장 자주 필요하게 됩니다.
|