[Software Design] Human-Computer Interaction Design
Interface Design는 시스템이 외부의 어떤 것과 상호 작용하는 방식을 정의한다.
System interface는 기계와 기계 간의 interface이고 system 통합의 일부로 처리된다.
User Interface는 사람과 컴퓨터 간의 interface이다.
사용자의 관점에서 User Interface(UI)는 system이다.
Human-Coumpter interaction layer는 data management layer과 독립적이지만 Problem domain과 physical architecture 둘 모두에 의존한다.
GUI는 Graphical User Interface의 약자이다.
GUI의 세 가지 기본 요소는 다음과 같다.
첫 번째, Navigation mechanism이다.
두 번째는 Input mechanism고, 세 번째는 Output mechanism이다.
User Interface Design의 원리 는 다음과 같다.
- Layout of the screen, form or report
: arrangement(배열), consistent flow(일관된 흐름), size(크기), shape(모양)에 대한 명확한 이해가 필요하다.
- Content Awareness(콘텐츠 인식)
: 포함된 정보를 사용자가 얼마나 잘 이해하는지 알아야 한다.
- Aesthetics(미적 요소)
: 해당 요소가 사용자에게 얼마나 잘 어필하는지 알아야 한다.
- User Experience
: 그것이 사용하기 쉬운지 판단해야한다.
- Consistency
: 응용 프로그램의 다양한 영역에서 나타나는 프레젠테이션의 유사성
- Minimal User Effort(최소한의 사용자 노력)
: 작업을 신속하게 수행할 수 있는가?
Layout 원리를 알아보자.
화면의 항목들을 배열하는 것이다.
유사한 항목들을 기준으로 일정한 영역들로 그룹화 된다.
이러한 영역들은 더 세분화 할 수 있다.
각 영역은 자연스러운 직관적인 흐름이 필요하다.
예를 들어, 서구 국가들의 사용자들은 왼쪽에서 오른쪽으로 그리고 위에서 아래로 읽는 경향이 있다.
하지만 다른 지역의 사용자들은 서로 다른 흐름을 가질 수 있기 때문에 그러한 사항들을 고려하여 영역들의 배치가 필요하다.
다음은 Content Awareness이다.
일반적으로 interface, 각 화면, 화면의 각 영역 및 하위 영역에도 적용된다.
모든 interface에는 제목을 포함시킨다.
메뉴들은 사용자의 위치와 사용자가 어떻게 그 곳에 도달하게 되었는지 보여주어야 한다.
모든 영역을 잘 정의하고 논리적으로 그룹화해야 하며 시각적으로 쉽게 식별할 수 있어야 한다.
Aesthetics의 원리를 보자.
Interface는 기능적이고, 사용하고 싶게 보여야하고, 사람들에 효과적으로 눈에 띄게 보여야한다.
단순한 미니멀리즘 디자인이 일반적으로 더 낫다.
공백은 분리를 제공하는데 중요하다.
허용 가능한 정보의 밀도는 사용자의 전문 지식에 비례한다.
초보적인 사용자들은 낮은 밀도를 선호하고, 전문적인 사용자는 더 높은 밀도를 선호한다.
Text design에도 차이가 있다.
크기나 글꼴, 대문자 사용 여부에 따른 차이가 있다.
그리고 색과 패턴도 중요하다.
User Experience도 보자.
- Ease of learning
: 예로는 아이패드가 있다
: 경험이 없는 사용자에게 중요한 문제다.
: 사용자 수가 많은 시스템과 관련이 있다.
- Ease of use
: 전문적인 사용자에게 중요한 문제다.
: 전문화된 시스템에서 가장 중요하다.
- Ease of learning and easy of use are related
Complementary(보완) : 유사한 설계의 결정으로 이어진다.
Conflicting(충돌) : 설계자는 초보자 또는 전문가를 만족시킬지 여부를 선택해야 한다.
Consistency의 원리를 보자.
시스템을 단순화하는 데 있어 매우 중요한 개념이다.
Consistency는 사용자들이 무슨 일이 일어날지 예측할 수 있게 해준다.
시스템의 모든 부분이 동일한 방식으로 작동한다.
사용자는 한 부분이 어떻게 작동하는지 학습하고 다른 부분에 즉시 적용한다.
Consistency의 핵심 영역은 Navigation control 그리고 용어다.
용어에는 form과 report에 동일한 설명자를 사용한다.
Minimal User Effort는 Interface가 작업 수행에 필요한 노력을 최소화하도록 설계됨과 관련이 있다.
보편적인 rule은 three-clicks rule이다.
사용자는 마우스를 세 번 이상 클릭하지 않고 시스템의 메인 메뉴에서 원하는 정보로 이동할 수 있어야 한다는 rule이다.
Usability Principles(사용적합성 원칙)
- 사용자가 다음에 무엇을 할 수 잇고 무엇을 해야 하는지 항상 알고 있어야 한다.
- 효과적인 오류 메시지를 포함하여 좋은 피드백을 제공한다.
- 사용자가 항상 작업을 종료하거나, 다시 이동하거나, 실행 취소할 수 있는지 확인한다.
- 응답 시간이 적절한지 확인한다.
User Interface Design Process 에 대해 알아보자.
첫 번째, Use Scenario Development이다.
두 번째, Navigation Structure Design이다.
세 번째, Interface Standards Design이다.
마지막 네 번째, Interface Design Prototyping이다.
Use Scenario Development는 Use-case를 기반으로 하는 시나리오를 생성하는 것이다.
Use Scenario는 사용자가 작업의 일부를 수행하기 위해 진행하는 단계를 개략적으로 설명한다.
Use Scenario는 필수적인 use case를 통한 하나의 경로다.
간단한 설명으로 표시된다.
Interface 설계가 이러한 상황에서 사용하기 쉽도록 가장 일반적인 사례를 문서화한다.
Navigation Structure Design에서 navigation structure은 interface의 기본 구성 요소를 정의한다.
그리고 사용자에게 기능을 제공하기 위해 함께 작동하는 방법을 정의한다.
Windows Navigation Diagrams(WND)라는 개념도 존재한다.
Behavioral State machine과 유사하다.
시스템에서 사용하는 모든 화면과 form, report 간의 관계를 보여준다.
그리고 사용자가 어떻게 이동하는지 보여준다.
Box는 구성요소를 나타내고, 화살표는 호출 상태로의 전환을 나타낸다.
그리고 <<Stereotypes>>은 interface 유형을 보여준다.
Interface Standards Design 단계에서 Interface Standards는 system user interface에서 발견되는 기본 설계 요소이다.
다음에 대한 기준이 필요하다.
Interface methaphor
: interface가 작동하는 방식을 정의한다.
(예 : 구매를 위해 선택된 품목을 저장하기 위한 쇼핑 카트)
Interface objects
Interface actions
Interface icons
Interface templates
이를테면 다음과 같은 사진이다.
Interface Design Prototyping은 컴퓨터 화면, form, report의 모형화 또는 시뮬레이션이다.
일반적인 접근법은 다음과 같다.
Wireframe Diagram : 사용자가 점차 받게 될 실제 user interface와 유사한 그림이다.
Storyboard : 화면의 모양과 화면 간의 흐름에 대한 손으로 그린 그림
User Interface prototype : 실행 가능한 prototype
Navigation design의 Navigation 구성 요소를 사용하여 명령을 입력하고 정보를 검토하며 사용자에게 메시지를 표시할 수 있다.
이 Navigation system의 목표는 system을 가능한 단순하게 만드는 것이다.
좋은 navigation 구성 요소는 사용자가 전혀 눈치채지 못하게 하는 구성 요소이다.
기본적은 원리는 다음과 같다.
실수를 예방하고, 실수로부터의 회복이 쉽게 만들어야한다. 그리고, 일관된 문법 순서를 사용해야 한다.
Message 는 시스템이 사용자에게 상호 작용의 상태를 알려주는 방법이다.
(교수님이 가장 좋아하시는 부분이라고 해서 스스로는 중요하다고 생각하고 있다.)
- Error message : 사용자가 허용되지 않는 작업을 수행했다.
- Confirmation : 예 - "Are you sure?"
- Acknowledgment messages(팝업 메시지) : 예 - "Order entered"
- Delay messages : Process가 실행 중이라는 Feedback을 사용자에게 제공한다.
- Help messages : 사용자가 작업을 수행하는 데 도움이 되는 시스템에 대한 추가 정보를 제공한다.
Input Design은 data 입력에 사용되는 화면이다.
Data가 정형화되거나 비정형화될 수 있다.
정형화된 Data에는 날짜, 이름, 제품 등 이고, 비정형화된 Data에는 댓글, 설명이 있다.
기본적인 원리에는 다음과 같다.
- Online VS batch processing
: Online은 입력을 했을 때 해당 feedback(?)이 그때 그때 바로 되지만, batch processing은 save를 누르면 그제서야 오류 부분이 뜬다.
- Capture data at the source (예 : barcode vs RFID)
- Minimize keystrokes (예 : 자주 사용하는 값에 대한 기본값 사용)
Types of Inputs은 다음과 같다.
Free form controls은 영숫자 정보 입력란, 자동 형식 지정이 있는 숫자 box, 별표가 있는 문자를 숨기고 잘라내거나 복사할 수 없는 암호 box를 말한다.
자동 형식 지정이 있는 숫자 box는 전화번호로 예를 들 수 있는데 3451236789의 전화번호를 입력했을 때 (345)-123-6789의 형식으로 자동적으로 지정되는 것이다.
Selection boxes는 여러 항목을 선택할 수 있는 경우의 확인란, 항목이 상호 배타적인 경우의 라디오 버튼, 선택 항목 집합을 표시하는 목록 상자, 그리고 슬라이더(이동할 수 있는 포인터)를 말한다.
Input Validation는 정확성을 보장하기 위해 data를 입력하기 전에 확인하는 것이다.
잘못된 data를 수락하지 않는다. 예를 들어, 숫자가 필요한 경우인데 텍스트를 입력하는 경우다.
Validation check하는 항목은 다음과 같다.
- Completeness(완전성)
- Format(예 : MM/DD/YYYY)
- Range(예 : 숫자가 최소 및 최대값 내에 있다.)
- Check sum digit : 숫자 입력 오류가 감소한다.
- Consistency : Data가 관련되어 있다.
- Database check : Entity 또는 referential integrity(= 테이블 간의 관계를 항상 consistent하게 유지되어야 한다는 개념)를 위반하지 않는다.
Output Design은 시스템에서 생성된 data에서 생성된 report다.
기본 원칙은 다음과 같다.
report 사용 및 빈도가 Layout에 영향을 미친다.
report 정보 부하를 관리한다. 필요한 정보만 제공하고 가장 중요한 정보를 맨 위에 배치한다.
특히 그래픽 디스플레이에서 bias를 최소화한다.
Types of Outputs은 다음과 같다.
Detail reports - 사용자는 전체 정보가 필요하다.
Summary reports - 세부 정보가 집계된다.(예 : 합계, 평군)
Exception reports - 오류 신호
Turnaround documents - Turnaround documents가 반환되고 입력된다.
Graphs - 쉽게 시각적으로 비교할 수 있다.
report를 위한 매체는 전자식(화면에 표시되는) 또는 하드카피(종이에 인쇄된)일 수 있다.
Nonfunctional Requirements과 HCI Layer Design는 다음과 같은 관계가 존재한다.
HCI layer는 nonfunctional requirements의 영향을 많이 받는다.
HCI layer에서 중요한 nonfunctional requirements의 네 가지 주요 유형은 다음과 같다.
- Operational requirements : 하드웨어 및 소프트웨어 플랫폼 선택 / 휴대성
- Performance
- Security
- Cultural and political requirements : 날짜 형식 및 고객의 제목(?) 등등