2009년 11월 11일 수요일

HCI-HW : 7.design rules ~ 8.Implementation Support

HCI-HW : 7.design rules ~ 8.Implementation Support

★ finding
Q1. 집단경험 VS 개인경험 or 역사경험 VS 개인경험
도킨스는 역사적 유물이 기록되는 유전자의 존재로서 meme을 제시했고, 융은 인류의 집단적, 역사적 무의식으로서 'root 무의식' 개념을 언급했다. 이처럼, 어쩌면 인류에게는 공통된 경험사가 있고, 이것이 분명 인터페이스에 영향을 끼치는 요인도 있을테다.
HCI 전문가들은 흔히 특정 인터페이스에 익숙한 정도를 언급할 때, 개인 경험만을 말한다. 인터넷 매체에 친숙하기 때문에 Mac OS를 잘 사용하고, Mac OS에 친숙하기에 Mac application에 잘 적응할 수 있고, 등등이 그것이다.
친숙도의 개념을 '집단경험 혹은 역사경험'으로 부터 증명할 수 있으리라 본다. 만약 그러면, 동시대가 아닌 역사를 관통하는 HCI의 principle, standard, guideline을 만들 수 있지 않을까?

Q2. 우선순위 부여
multi-modalities에 '우선순위'를 부여할 수 있지 않을까? 모든 인간의 업부믄 소위 '우선순위' 따라 이뤄진다. 대표적인 스켸쥴러인 프랭클린 다이어리의 구조가 이를 반증한다. 기본 형식은 '우선순위'를 사용자 스스로 설정할 수 있도록 돕고, 사용자는 이에 따라 업무의 강약을 조절 할 수 있다.
현재의 컴퓨터 기반 multi-modality는 대게 동시적 수행/알림 등의 경우만을 포괄한다. 업무의 우선순위 배치에 대한 배려는 없다.
우선순위 배치를 위한 다부진 아이디어를 듣고 싶다.

Q3. system pre-emptive VS user pre-emptive
HCI에 대해 곰곰이 생각해 보노라면, 봉착하는 질문이 있다. 과연 'right' 인터페이스는 무엇인가? 너무 광범위하고 철학적인 질문일 수도 있기에, 이를 몇 가지 경우로 축소해서 조금씩 그 정의를 구축할 수 있으리라 본다.
그래서, system pre-emptive 와 user pre-emptive 사이의 갈등관계에서만 살펴보더라도, 무엇이 right한 인터페이스인지 묻고 싶다.

☆ summary

7.1. introduction
- 주요 문제 중 하나 : 디자인 결정으로서 유저빌리티 결론 능력을 디자인에게 어떻게 제공하는가의 문제
=> 디자인 룰의 필요성
- 룰의 2개 차원
(1) 룰의 권위성 : 룰인지에 대한 파단 여부
(2) 룰의 일반성 : 룰의 적용 가능성 살펴보기
- 주변 개념
- 프린시플 : 추성적 디자인 룰, 일반성이 높고 권위성이 낮음
- 스탠다드 : 특정적 디자인 룰, 권위성이 높고 일반성이 낮음
- 가이드라인 : 권위성이 낮고, 일반성이 높음
- 디자인 룰은 관습적으로 심리학, 인지학, 어고노믹스, 사회학, 경제학, 컴퓨터공학에 적용됨

+ 프린시플
- 문제영역의 심리학적, 컴퓨터 공학적, 사회학적 양상에 대한 지식으로부터 분리
- 기술과 매우 많은 부분에서 독립적
- 인터랙션에 있어 인간요소에 보다 의존적
- 보다 넓게 적용되고, 특적 디자인 충고에는 비유용

+ 가이드라인
- 덜 추상적이고 테크놀로지 기반적

+ 스탠다드
- 권위가 매우 높은 수준에 이르기 때문에, 근본적으로 이론이 옭고(correct) 건전하게(sound) 함

7.2. principle to support usability
- 가장 추상적 디자인룰
- 인터랙티브 시스템에서는 유저빌리티를 생성시키기위해 적용가능
- 패러다임과 연관해서는, 왜 패러다임이 성공하는지, 언제 패러다임이 성공하지 못하는지,에 대한 설명가능
- 3개의 주요 카테고리
- learnability : 새로운 사용자에게 효과적인 인터랙션을 시작할 수 있고, 최고수준의 퍼퍼먼스를 수행할 수 있는 용이성
- flexibility : 사용자와 시스템이 정보를 교환하는 방식의 다중성(multiplicity)
- robustness : 사용자가 성공적인 수행(acivement)과 목표에의 접근을 결정하는데, 제공하는 서포트의 수준

7.2.1. learnability
predictability
- 정의 : 인터랙션 역사에 대한 사용자의 지식이 미래 인터랙션의 결과를 결정하는데 효과적이라는 의미
- 사용자 중심개념 : 컴퓨터 시스템 자체의 결정론적인 행동과는 구분된다. 즉, predictability는 사용자 관점으로서의 결정론적인 행동이다.
- predictability 개념은 시스템에서 오퍼레이션의 효과를 결정하는 사용자의 능력을 다룬다. 즉, 수행(perform)될 수 잇는 오퍼레이션을 아는 사용자의 능력과 연관한다.
=> opertion visibility : 다음에 수행될 수 있는 오퍼레이션의 능력이 사용자에게 보여지는 방식
=> 인간에게 잇어, recall 보다 recognition이 우월하다는 것을 증명

synthesizability
- 정의 : 현재 상태에서 과거 오퍼레이션의 효과에 엑세스하는 사용자의 능력
- 필요이유 : 시스템 행동 모델을 formulate하기 위해서 이진 인터랙션 연속체에 접근하는 것이 사용자에게 중요하기 때문
- honesty : obserbavle하고 informative한 내부상태의 변화를 사용자 인터페이스로 제공하는 것
(1) immediately : 사용자에 의한 개시없이 나이간 인터랙션하는 상황
예. visual desktop interface
(2) evetually : 변화를 observable하게 명령하는 상황
예. command language interface
- enventually honesty의 단점 : 사용자가 변화를 찾는 것(look for)을 알아야 한다.

familiarity
- 많은 수의 어플리케이션 도메인을 통해 사용자의 wealth of experience 발생
- 원인/출처 :
(1) 실제세계에서의 인터랙션
(2) 다른 컴퓨터 시스템과의 인터랙션
- 인터랙티브 시스템의 familiarity 측정 : 사용자에게 존재하는 지식과 효과적 인터랙션을 위해 요구되는 지식 사이의 상호관계 측정
+ guessability
- familiarity는 시스템과의 초기 imprescion과 연관 (예. metaphor)
+ affordance
- 시각적 대상은 사용자에게 조작될 수 있는 방법을 제시

generalizability
- 정의 : 특정 인터랙션 행동을 (우연히 만나지 않은) 비슷한 상황으로 확대적용 시도
consistency 형식으로 보여질 수도
- 단일 어플리케이션 혹은 다양한 어플리케이션 사이에서 발생
예. cut, paste, copy

consistency
- 같은 상황 혹은 같은 업무 객체로부터 발생한 행동 내에서의 likeness와 연관
- 가장 많이 언급되는 principle
+ 다른 principle과의 연계성
- fimailiarity : 과거 실재세계 경험으로부터의 consistency
- generalizability : 동일 플랫폼의 어플리캐이션 혹은 동일 시스템에 대한 경험으로 부터의 consistency
=> 논쟁점 有 : consistency를 learnability, flexibility, robustness와 동급으로 취급해야 하는 것 아닌가?
- 시스템의 개념적 모델에서 행동의 의미라는 점에서, 인풋 표현 혹은 아웃풋 반응의 형식

7.2.2. flexibility
- 정의 : end-user와 시스템 사이에 정보를 교환하는 방식의 다양성

dialog innitiative
- 정의 : 어느 파트너(사용자, 시스템)가 먼저 다이알로그를 시작하는가가 중요
- 종류
- system pre-emptive : 시스템이 모든 다이알로그를 주도, 사용자는 요청정보에 대해 대담
- user pre-emptive : 사용자가 시스템에게 어떠한 액션을 취하는데 자유로움
=> 사용자의 관점에서, 전자는 flexibility 방해, 후자는 flexibility 긍정
- 최적의 모습 : 시스템을 선전하는 사용자의 능력을 최대화하고, 사용자를 선점하는 시스템의 능력을 최소화
=> 몇몇 경우에서 무지 필요
- 협동적 편집cooperative editing
- safety
- system pre-emptive의 단점 : 사용자가 시도했지만 아직 완성되지 않은 업무의 track을 잃을 수 있다.
=> 좋은 디자인으로 해결 가능

multi-threading
- 정의 : 한 번에 하나 이상의 업무를 서포트하는 인터랙션
- 종류
- concurrent : 분리된 업무에 속하는 정보를 동시에 커뮤니케이션 하는 것
- interleaned : 분리된 업무사이의 일시적 오버랩 허용. 즉, 어떤 급작스런 다이알로그가 주어지더라도 단일 업무로 한정 가능

- 다이알로그의 멀티양식(modality)는 multi-threaing과 연관
- multi-modal system의 2가지 특징
(1) 분리된 modalies가 단일 인풋 혹은 아웃풋 표현 형식으로 결합되는 방법에 대해 고려 가능
: multi channel은 가능하지만, 하나의 표현은 하나의 채널로 제한됨
예. 윈도우창을 ㅇ려기 위해, 3가지 표현 기능(마우스 클릭, 키보드, 명령어)
(2) 단일표현은 채널의 mixing에 의해 형성됨
예. 에러경고 : text message + audio beep
- 윈도우 시스템은 자연스럽게 interleaded한 multi-thread 다이알로그 지원
- multi-modal 다이알로그는 동시적 multi-threading 허용

task migratability
- 정의 : 시스템과 상요자 사이 업무 실행 제어의 이동성(transfer) 고려
예. spell-checking, safety-critical application

substitutivity
- 동등한 value가 서로를 대리할 수 있을 때 필요
=> 사용자의 머릿 속에서 불필요한 계산을 피함으로써, substitutivity는 사용자 에러들과 인지적 노력을 최소화할 수 있다.

- representation multiplicity : flexibility를 렌더릴 상태로 묘사
예. 온도계의 다양한 presentation (시간별, 온도별)
=> 사용자는 현재 업무에 적당한 representation을 자유롭게 고려 가능
- equal opportunity : 인터페이스에서 인풋과 아웃풋 사이를 흐림
예. 스프레드시트에서 입력값과 결과값을 반대로 입력하는 경우
=> equal opportunity는 시스템이 사용자에 대해 선도적이 않다는 것을 함축

customizability
- 정의 : 사용자 혹은 시스템에 의해 사용자인터페이스의 modifiability
+ 종류
- adaptability = user-initiated modification
- adaptivity = system-initiated modification
+ adaptability
- 정의 : 인풋과 아웃풋 형식을 조정하는(adjust) 사용자의 능력
- 매우 제한적(스크린 위 소프트버튼 포지션 조정, 명령 이름을 수정)
- lexical customization

+ adaptivity
- 정의 : 시스템의 사용자 인터페이스에 대한 자동적 customization

+ adaptability 와 adaptivity 의 차이
- adaptability : 사용자가 명백한 역할에서 play
- adaptivity : 사용자가 불명확한 역할에서 play

7.2.3. robustness
인터랙션 robustness
- 역할 : 목표에의 접근과 성공적인 성취(acivement)를 서포트하는 성질들을 커버

observability
- 정의 : 사용자가 시스템의 내부 상태를 평가할 수 있도록 함
- 수단 : 인터페이스에서 인지가능한 표현(representation)
+ 5가지 다른 성질과 연관
- browsability : 사용자가 인터페이스에서 제공되는 제한적 시각(view)을 통해 현재 시스템의 내부적 상태를 탐험하도록 함
- default : passive recall을 통해 사용자를 도움 (예. 질문에 대해서 '추천된' 반응들)
인풋값의 수를 감소시켜서, cornor를 사전에 방지하는 매커니즘
- 종류
- statio : 세션 내 전개되지 않음
- dynamic : 세션 동안 전개
- reachability : observable 시스템 상태를 통하는 네비게이션의 가능성
사용자는 어떤 상태이든지로부터 어떤 상태이로든지까지 네비게이션 가능
시스템의 recoverability에 영양 끼침
rechability의 수준은 flexibility에 영향끼침
- persistence : 커뮤니케이션 해동의 효과와 그 행동 효과를 사용하려는 사용자의 능력에 대한 길이(duration)

recoverability
- 정의 : 이전 인터랙션에서의 약간의 에러에 대한 인지(recognition)이후, 욕구된(desired) 목표에 도달하려는 으력
+ 종류
- forward error recovery : 현상태의 수용과 현상태에서 욕구된 상태를 향하는 negotiation
- backward error recovery : 진행하기 이 전에 앞선 상태로 돌아가기 위해, 이전 인터랙션 효과를 언상으로 되돌리려는 시도
+ 시스템 혹은 사용자에 의해 초기화 가능
- 시스템에 의해 초기화 될 때 : 소프트웨어 엔지니어링 모든 주제와 연관, 시스템 기능성과 연관
- 사용자에 의해 초기화 될 대 : 사용자의 recovery 행동의도에 의해 결정 -> forward/backwad와 연관
+ rechability와 연관 : 바라지 않는 상태에서 바라는 상태로 이를 때, block되는 것을 사용자가 원치 않기 때문

responsiveness
- 정의 : 시스템과 사용자 사이의 커뮤니케이션 비율 측정
- 반응시간이란 ? 사용자에게 상태변화를 표현하기 위해 시스템에 의해 필요한 시간 길이(duration)
=> 일반적으로 짧은 duration과 instaneous 반응 시간을 원함

task conformance
- 정의
(1) 시스템이 관심있는 모든 종류의 task를 서포트 하는지,
(2) 시스템이 사용자가 원하는 대로 이 task를 서포트하는지,
- task completeness -> coverage issue
- task adquacy -> task에 대한 사용자의 이해도
- task conformance 논의에 대한 뿌리 : 직접조작 인터페이스의 성공에 대한 이해의 시도에 뿌리르 둠

7.3. standards
- 정의 : 큰 커뮤니티의 디자인 룰
- 스탠다드의 적용점 : 하드웨어와 소프트웨어 => 디자인 스탠다드의 이용성에 영향끼침
- 기본적 이론
- 하드웨어는 심리학 혹은 어고노믹스/인간요소의 기본에 기반 -> 하드웨어 스펙에 직접적으로 연관
- 소프트웨어는 심리학, 인지과학에 기반 -> 보다 분명치 않게 언급됨
- 변화점
- 하드웨어는 안정적
- 소프트웨어는 변화적
+ 역사
- 초기 협회는 소프트웨어보다 하드웨어에 대한 스탠다드가 多
- 점점 소프트웨어 스탠다느 증가
+ ISO 스탠다드 9241
- 유저빌리티 스펙에 부속
- 하드웨어와 소프트웨어 모두에 적용
- 유저빌리티 정의 : usability, effectiveness, effeciency, satisfaction
- 역할 : 유저빌리티에 대한 명확한 측정 묘사의 수단 제공
- 장점 : 권위성 즉, 커뮤니티에 계속 머무르도록 하는 능력 -> 권위는 관습으로 획득됨

7.4. Guidelines
- 인터랙티브 소프트웨어 디자인 이론의 불완전성으로 인한 권위적이고 특정적인 스탠다드 생산 어려움 봉착
-> 그결과, 인터랙티브 시스템 디자인 룰 대부분이 개인적이고 추천적인 일반적 가이드라인 수준
- 가이드라인이 추상적일수록, 가이드라인은 프린시플을 닮아가고 -> 스펙의 요ㅣ구에 맞는 방향으로 나아감
- 가이드라인이 특정적일수록, 가이드라인은 디테일 디자인에 적합하게 됨

7.5. golden rules and heuristics
7.5.1. Shneiderman`s eight golden rules of interface design
- consistency를 살려라
- 사용자가 숏컷을 자주 사용할 수 있도록 하라
- 정보적 피드백을 제공하라
- 실제와 가깝게 다이알로그를 디자인하라
- 에러 방지와 간단한 에러 다루는 것을 제공하라
- 행동에 대한 간단한 반전을 제한하라
- 제어하는 내적인 현장을 서포트하라
- STM 로드를 줄여라

7.5.3. Norman’s seven principles for transforming difficult tasks into simple ones
- 세계의 지식과 머릿속 지식 모두를 사용하라
- 업무의 구조를 단순화해라
- 눈에보이게 만들어라
- 파워를 늘려라
- 에러를 위한 디자인을 하라
- 실패하는 모든 것은 스탠다드화하라

7.6. HCI patterns
- 정의 : 성공적인 디자인의 근본적 디테일을 추상화하는 지식을 재사용하고 캡쳐하는 접근
특정 컨텍스트 내에서 재발하는 문제에 대한 솔루션


8.1. Introduction
+ 본 챕터의 주제 : 인터랙티브 시스템의 구현을 위해 제공되는 프롸그램 지원에 대해 논의 할 것
- programming support tool은 현재의 표현적이지 못한 수준의 executable language를 프로그래머가 보다 상위 레벨에서 직접적으로 응용의 interaction object들을 이용해 코딩할 수 있도록 해 준다.
- 여기서 강조하는 것은 어떻게 필수적인 하드웨어 소프트웨어 서비스 위해 추상화 레벨을 구축하는가 이다.

8.2. Elements of Wondowing System
Windowing system :
- 현대(modern) WIMP 인터페이스의 기본(foundation)
- 프로그래머를 위한 천연그대로(crude) 수준의 추상(abstraction)
- 프로그래머로 하여금 기기 독립성과 멀티플 어플리케이션 제어를 갖을 수 있도록 함
- 어플리케이션 아이알로그와 프리젠테이션에 대해 분리된 제어 수단을 제공하지는 않음

+ 역할 : 프로그래머를 하드웨어 디바이스 특정부분으로 부터 독립화
- 프로그램이 업무를 보다 쉽게
- 어플리케이션 프로그램의 이동성을 가능하게
+ 제공하는 것
- 프로그래밍의 특정부분을 하드웨어 디바이스로부터 분리
- 다양하고 독립적이지만 동시적으로 액티브한 어플리케이션을 관리

8.2.1. Architectures of windowing systems
+ 분리된 어플리케이션의 이동성 감소
- OS의 커널 내에서 관리 역할을 구현
- 분리된 어플리케이션으로서 관리 역할을 구현 = 클라이언트 서버 아키텍쳐
- 인터페이스를 다른 모든 OS를 관통하는 어플리케이션 프로그램에 제공
- X window system은 네트워크 프로토콜에 기반
- 윈도우 관리자 : 인풋/아웃풋 리퀘스트사이의 갈등을 해결
- ICCCM(인터-클라이언트 커뮤니케이션 컨벤션 메뉴얼) : 다양한 정책 이슈를 위한 관습 제공

8.3. Programming the Application
- Interactive application = 사용자 주도적
+ Read-evaluation loop
- 제어 흐름이 어플리케이션 프로그램 자체에 내재적
- 이벤트 프로세싱에 대한 완전한 제어
- 프로그래머는 클라이언트가 받을 예정인 가능한 모든 이벤트에 대해 제어 실행해야만 함
+ Notification based
- 어플리케이션 내에 존재하지 않은 이벤트 프로세싱을 위한 주요 제어 루핑

8.4. Using toolkits
+ WIMP 인터페이스의 주요 특징
- 디스플레이 스크린에 독립적으로 링크된 인풋/아웃풋 행동
- 가상 커서의 움직임을 통해 사용자 스스로가 실제 움직인다고 느낌
- 환영은 사용자에게 그 대상들과 하나라는 느낌을 야기
+ 툴킷(Toolkits)
- 환영을 창조하기 위해 어플리케이션 프로그램에서 많은 노력 필요
- 프로그래머에게 인풋과 아웃풋에 초점을 맞출 수 있도록 도움
- 프로그래머에게 이미 만들어진 인터랙션 오브젝트를 제공
+ 툴킷을 가진 프로그래밍의 잇점
- 인풋 형식과 아웃풋 형식 사이의 consistency를 강화
- look and feel이 좋음

8.5. User Interface Management Systems
+ UIMS
- 정의 : 툴킷 수준을 넘어선 인터랙티브 시스템을 위한 다른 수준의 서비스를 더하기위 제안된, 디자인 테크닉과 프로그램밍
- 주요 내용
- 인터랙티브 시스템의 구조를 위한 개념적 아키텍쳐
- 어플리케이션과 프리젠테이션의 분리를 구현하기 위한 테크닉
- 실시간 인터랙티브 환경을 평가하고 구현하고 관리하기 위한 테크닉 보조

8.5.1. UIMS as a conceptual architecture
+ 어플리케이션과 인터페이스 사이의 분리
=> 어플리케이션과 인터페이스를 제어하는 다이알로그로서 커뮤니케이션의 역할
- 인터랙티브 시스템의 3개 주요 구성요소
- 어플리케이션
- 프리젠테이션
- 다이알로그 제어

댓글 없음:

댓글 쓰기