객체 지향 사용자 인터페이스

Object-oriented user interface

컴퓨팅에서 객체지향 사용자 인터페이스(OOUI)는 객체지향 프로그래밍 은유에 기초한 사용자 인터페이스의 일종이다.OOUI에서 사용자는 애플리케이션이 관련된 도메인의 엔티티를 나타내는 개체와 명시적으로 상호작용한다.예를 들어 많은 벡터 드로잉 애플리케이션에는 선, 원, 캔버스 등 OOUI가 있다.사용자는 명시적으로 개체를 선택하거나, 개체 속성(크기 또는 색상 등)을 변경하거나, 개체에 대해 다른 작업(예: 개체를 이동, 복사 또는 다시 정렬)을 호출할 수 있다.비즈니스 응용프로그램에 OOUI가 있는 경우, 사용자는 고객, 제품 또는 주문과 같은 비즈니스 영역의 실체를 나타내는 객체에 대한 조치를 선택 및/또는 호출할 수 있다.

Jakob Nielsen은 기능 지향 인터페이스와 대조적으로 OOUI를 정의한다: "객체 지향 인터페이스는 기능 지향 인터페이스와 비교하여 애플리케이션을 내부로 돌리는 것으로 설명되기도 한다.상호작용의 주요 초점은 사용자의 데이터와 일반적으로 화면에 아이콘이나 창에 그래픽으로 표현되는 기타 정보 개체가 되기 위해 변화한다."[1]

Dave Collins는 OOUI를 다음과 같은 세 가지 특성을 입증하는 것으로 정의한다.

  • 사용자가 사물을 인지하고 그에 따라 행동함
  • 사용자는 객체의 동작 방식에 따라 객체를 분류할 수 있음
  • 사용자들이 무엇을 하려고 하는지의 맥락에서, 모든 사용자 인터페이스 오브젝트는 일관성 있는 전체적인 표현에 함께 들어맞는다.[2]

Jef Raskin은 OOUI의 가장 중요한 특징은 'verb-noon' 방식의 상호 작용이 아닌 'noon-verb'를 채택하고 있으며, 사용성 측면에서 몇 가지 장점이 있다고 제안한다.[3]

다른 사용자 인터페이스 아이디어와의 관계

사용자 인터페이스 설계에서 OOUI 개념과 기타 중요한 아이디어 사이에는 다음과 같은 잠재적인 시너지가 많이 존재한다.

사용자 인터페이스의 많은 미래적 상상들은 OOUI와 특히 OOGUI 개념에 크게 의존한다.[4]그러나 그러한 다른 아이디어들 중 하나 이상을 구현하는 사용자 인터페이스의 많은 예들이 있지만, 실제로는 OOUI는 아니다 - 비록 그것들이 종종 OUI로 잘못 표시되지만.[5] 반대로, 그래픽이 되지 않거나 직접 조작 기술을 채택하거나 강한 은유법을 채택하지 않는 OOUI의 예들이 있다.예를 들어, 스몰토크 프로그래밍 언어의 초기 버전은 GUI, 직접 조작, 시각적 은유 등의 개발에서 선구적인 역할로 더 잘 알려졌지만 그럼에도 불구하고 분명한 OOUI인 명령행 인터페이스를 가지고 있었다.[6]

객체 지향 프로그래밍과의 관계

OUI와 객체 지향 프로그래밍 사이에는 많은 개념적 유사성이 있지만 객체 지향 프로그래밍 언어를 사용하여 OOUI를 구현해야 하는 것은 아니다.

IBM의 CUA(Common User Access) 지침에서는 '객체 지향 프로그래밍이 객체 지향 사용자 인터페이스의 개발을 촉진할 수 있지만, 사전 요구사항은 아니다'라고 명시되어 있다.객체 지향 사용자 인터페이스는 더 전통적인 프로그래밍 언어와 도구로 개발될 수 있다.'[7]

하지만 강력한 시너지가 있다.1980년 애플에 합류하기 위해 제록스 PARC를 떠난 래리 테슬러는 이 관계를 강조했다.

많은 관측자들은 [스몰토크 사용자 인터페이스]와 스몰토크 언어가 분리 가능한 혁신이라는 가설을 세웠다.결과적으로, Smalltalk 사용자 인터페이스의 영향을 받는 대부분의 시스템은 Smalltalk의 구현 접근방식에 의존하지 않고 설계되었다.애플에서는 파스칼을 사용하여 리사를 위한 6개의 초기 애플리케이션을 구현한 후, 우리는 스몰토크에서 아이디어를 더 많이 통합하기 위해 우리의 프로그래밍 언어를 변경해야 하는 설득력 있는 이유를 발견했다.Lisa 신청서는 이제 메시지 전달에 의한 객체, 클래스, 하위 클래스 및 절차 호출이 특징인 Pascal의 확장자인 Clascal 언어로 작성된다.[8]

도메인 개체 모델링에 대한 관계

또한 OOUI의 개념과 도메인 객체로부터 소프트웨어를 구성하려는 생각 사이에는 분명한 시너지가 있다.그러나 OUI 내에서 사용자가 보고 상호작용하는 개체가 애플리케이션이 구축되는 도메인 개체와 일치해야 하는 것은 따르지 않는다.

CUA 지침은 '객체 지향적인 사용자 인터페이스에서 사용자가 작업하는 물체는 프로그래머가 제품을 만들기 위해 사용했던 코드의 객체나 모듈과 반드시 일치하는 것은 아니다'[7]라고 명시했다.CUA에서 설명한 기본 설계 방법은 인터페이스를 모델링하기 위해 UML을 사용하는 OVID 방식으로[9] 더욱 세분화되었다.

Mark van Harmelen은 '객체 지향적인 사용자 인터페이스 설계는 설계자가 프로젝트의 시작부터 문제를 객체 지향적으로 볼 것을 요구하지 않는다.더 나아가 설계자들이 전체적으로 객체지향적 관점을 취하더라도, 그들은 객체 모델과 객체지향적 사용자 인터페이스 설계에 별도로 집중함으로써 이익을 얻을 것이다.'[10]

이와는 대조적으로, 벌거벗은 객체 패턴은 적어도 그것의 순진한 형태에서 OOUI에 대표되는 객체들과 기본 도메인 객체들 사이에 직접적인 대응관계를 강요하여 후자로부터 전자를 자동 생성시키는 애플리케이션 설계에 대한 접근방식이다.[11]

참조

  1. ^ Nielsen, J. 사용적합성 엔지니어링.1993, 샌프란시스코:모건 카우프만 / 학술언론
  2. ^ Collins, D. 객체 지향 사용자 인터페이스 설계.1995년, 레드우드 시티, CA: 벤자민/컴밍스
  3. ^ 라스킨, J, 휴먼 인터페이스.2000, Reading, MA: Addison-Wesley / ACM Press
  4. ^ Dayton, Tom. "Object-Oriented GUIs are the Future". Presto Innovation Blog. Retrieved 8 March 2017.
  5. ^ 콘스탄티누스, L., L.록우드, 소프트웨어 사용.1999: 애디슨 웨슬리
  6. ^ Kay, A, Smalltalk의 초기 역사, 프로그래밍 언어의 역사, T. Bergin과 R.깁슨, 편집자. 1996년 애디슨 웨슬리 / ACM 프레스: 레딩, MA. 페이지 511-
  7. ^ a b IBM, Common User Access - 사용자 인터페이스 설계 가이드.1991, IBM: Cary, North Carolina.
  8. ^ Tesler, L. Object Oriented User Interface 및 Object Oriented Language.ACM Conference n Personal and Small Computers. 1983.뉴욕: ACM.
  9. ^ Dave Roberts, Dick Berry, Scott Isensee & John Mullaly, OVID로 사용자를 위한 설계: Bridging User Interface Design and Software Engineering MacMillan, 1998년
  10. ^ van Harmelen, M, ed. 객체 모델링 및 사용자 인터페이스 설계.2001년, 애디슨 웨슬리: 레딩, MA.
  11. ^ Pawson, R, Naked Objects, Ph.D 논문, 2004, 아일랜드 더블린 트리니티 칼리지