Apple Human Interface Guidelines - Characteristics of Great Software(4/7)
Characteristics of Great Software
- High Performance
- Ease of Use
- Attractive Appearance
- Reliability
- Adaptability
- Interoperability
- Mobility
신뢰할만한 프로그램은 사용자의 데이터의 무결성을 유지시켜주고 데이터 상실이나 전와될만한 것을 방지해주기 위해 가능한 모든 것을 수행한다. 또한 이러한 것들을 충분히 해결할 수 있고 충돌 없이 복잡한 상황을 처리할 수 있다.
Reliability는 소프트웨어 디자인의 모든 분야에서 중요하며, 특히 오래 실행되는 프로그램에서 더욱 중요하다.
예를 들어, 과학 프로그램은 종종 큰 데이터 셋 계산을 수행하며, 계산을 수행하는데 오랜 시간이 걸린다. 만약 이러한 프로그램이 계산 도중 충돌이 일어난다면, 과학자는 몇일 또는 몇주간의 일하는 시간을 잃어버릴 수도 있다.
Guidelines
- 사용자 인터페이스는 예상 가능한 방식으로 작동하게 하라.
- 같은 종류의 액션들은 각각 같은 결과를 만들어야 한다.
- 문서에 예상 가능한 결과를 제공하라.
- 출력에서 있어, 사용자가 화면에서 보는 컨텐츠는 출력이 되는 것과 같게 하라.(Mac OS X 프린팅 다이얼로그에서는 프린트 미리보기 옵션을 제공하고 있다)
- 문서를 불러오거나(import) 내보낼때(export) 데이터 손실을 줄이거나 없애라.
- 프로그램이 다른 어플리케이션의 파일을 불러오거나 가져올 때, 파일 포맷을 완벽하게 지원하라.
- 어플리케이션이 주어진 파일 포맷에서 모든 데이터를 가져오지 못하면, 사용자에게 데이터 손실이 일어날 수도 있다는 경고를 하고 원본 파일의 복사본에서 작업할 수 있는 옵션을 제공하라.
- 다양한 환경에서 소프트웨어를 테스트하고 적절하게 반응하지는 검증하라.
- 네트워크가 다운되거나 마운트된 볼륨이 사라지는지에 대해 시뮬레이션하고 소프트웨어가 적절하게 반응하고 처리하는지 확실하게 하라.
- 패키징시 소프트웨어가 시스템 요구사항을 명확히 표기하라.
- 소프트웨어가 저사양 하드웨어에서 테스트할 때까지 저사양 하드웨어에서 돌아간다고 가정하지 마라.
- 마찬가지로, 지원하는 Mac OS X버전을 표기하라.
- 에러를 예측하고 우아하게 다뤄라.
- 함수가 결과 코드를 반환하면, 문제가 있는지 적절하게 반응하지는지에 대해 체크하라.
- 또한 에러를 잡기 위해 예외 처리자를 사용할 수 있다.; 그러나, 최소한응로 사용하라.
- 예외 처리자는 어플리케이션의 메모리가 차지하는 공간을 증가시키며 이는 performance를 떨어뜨린다.
- 사용자 입력이 예상한대로 입력된 것인지 확실히 하기 위해 사용자 입력의 유효성을 확인하라.
- 형식지정자(formatter object)는 사용자가 숫자와 날짜를 올바르게 입력할 수 있도록 도와준다.
- 문제가 발생하는 것을 막기 위해 코드에서 사용자 입력 데이터의 유효성을 확인해야 한다.
- 메모리 누수와 코드에서 발생하는 다른 문제들을 찾기 위해 애플이 제공하는 performance와 debugging 툴을 사용하라.
- 이러한 툴들은 개발자가 알지 못하는 숨겨진 버그를 찾아낸다.
- Legacy API보다는 modern API를 선택하라.
- Modern API는 legacy API보다 더나은 시스템 설정 처리를 제공한다.
- 커스텀 API을 시스템과 표준 기반의 API에 속하게 하라.
- (표준 방식에 맞추라는 의미인듯)
출처 : Apple Human Interface Guidelines