👨💻 UI(User Interface) 개념
- UI(사용자 인터페이스)는 넓은 의미에서 사용자와 시스템 사이에서 의사소통할 수 있도록 고안된 물리적, 가상의 매개체
- 좁은 의미로는 정보 기기나 소프트웨어의 화면 등에서 사람이 접하게 되는 화면
- UX(사용자 경험)은 UI(사용자 인터페이스)를 포함하고 있다.
UI 유형
- CLI ( Command Line Interface )
- 정적인 텍스트 기반 인터페이스
- 명령어를 텍스트로 입력하여 조작하는 사용자 인터페이스
- GUI ( Graphical User Interface )
- 그래픽 반응 기반 인터페이스
- 그래픽 환경을 기반으로 한 마우스나 전자펜을 이용하는 사용자 인터페이스
- NUI ( Natural User Interface )
- 직관적 사용자 반응 기반 인터페이스
- 키보드나 마우스 없이 신체 부위를 이용하는 사용자 인터페이스
- 터치, 음성 포함
- OUI ( Organic User Interface )
- 유기적 상호작용 기반 인터페이스
- 현실에 존재하는 모든 사물이 입출력장치로 변화할 수 있는 사용자 인터페이스
🛣 UI 분야
- 물리적 제어 분야
- 정보 제공과 기능 전달을 위한 하드웨어 기반
- 디자인적 분야
- 콘텐츠의 정확하고 상세한 표현과 전체적 구성
- 기능적 분야
- 사용자의 편의성에 맞춰 쉽고 간편하게 사용 가능
🤔 UI 설계 원칙
- 직관성 ( Intuitiveness )
- 누구나 쉽게 이해하고, 쉽게 사용할 수 있어야 함.
- 쉬운 검색 / 쉬운 사용성 / 일관성
- 유효성 ( Efficiency )
- 정확하고 완벽하게 사용자의 목표가 달성될 수 있도록 제작
- 쉬운 오류 처리 및 복구
- 학습성 ( Learnability )
- 초보와 숙련자 모두가 쉽게 배우고 사용할 수 있게 제작
- 쉽게 학습 / 쉬운 접근 / 쉽게 기억
- 유연성 ( Flexibility )
- 사용자의 요구사항을 최대한 수용하고 실수를 방지할 수 있도록 제작
- 오류 예방, 실수포용, 오류 감지
UI 설계 지침
- 사용자 중심, 일관성, 단순성, 결과 예측 가능, 가시성, 표준화, 접근성, 명확성, 오류 발생 해결
UI 요구사항 확인
- UI 요구사항은 사용자가 정보시스템을 구축하여 얻고자 하는 최종 목적의 기준
- 요구사항은 시스템 개발과정 전체에 대한 기준이 되며,
시스템 개발 종류 및 검수의 기준
UI 요구사항 구분
- 기능적 요구사항 / 비기능적 요구사항
- 시스템이 무엇을 하여야 하는지를 설명하는
기능적 요구사항
- 개발과정에서 지켜져야 할 제약조건들을 설명하는
비기능적 요구사항
기능적 요구사항
- 시스템이 제공하는 기능, 서비스에 대한 요구사항
- 시스템의 입출력, 데이터, 연산에 관한 요구사항
비기능적 요구사항
- 사용성, 효율성, 신뢰성, 유지보수성, 재사용성 등 품질에 관한 요구사항
- 플랫폼, 사용 기술 등 시스템 환경에 관한 요구사항
- 비용, 일정 등 프로젝트 계획에 관한 요구사항
UI 요구사항 확인
- 응용 소프트웨어 개발을 위한 UI 표준 및 지침에 따라,
기능 및 비기능 요구사항의 도출을 통해
개발하고자 하는 응용 SW에 적용될 UI 요구사항을 확인 가능
UI 표준 및 지침 -> 기능적 요구사항 / 비기능적 요구사항 -> UI 요구사항 확인
UI 품질 요구사항 ( ISO/IEC 9126 기반 )
- 기능성 / 신뢰성 / 사용성 / 효율성 / 유지보수성 / 이식성
1. 기능성 ( Functionality )
- 실제 수행 결과와 품질 요구사항과의 차이를 분석하고,
실제 사용 시 정확하지 않은 결과가 발생할 확률과 관련하여 시스템의 동작을 관찰하기 위한 품질 기준.
기능성 상세 품질 요구사항
- 적절성(Suitability)
소프트웨어 제품이 주어직 작업과 사용자의 목표에 필요 적절한 기능들을 제공해줄 수 있는 소프트웨어의 능력
- 정밀성(Accuracy)
소프트웨어 제품이 요구되는 정확도로 올바른 결과를 산출할 수 있는 능력
- 상호 운용성(Interoperability)
소프트웨어 제품이 특정 시스템과 상호작용하여 운영될 수 있는 능력
- 보안성(Security)
비인가된 접근을 차단하고, 우연 또는 고의적인 접근을 인지하여 대처할 수 있는 능력
- 호환성(Compliance)
소프트웨어 제품이 비슷한 환경에서 연관된 표준, 관례 및 규정을 준수하는 능력
2. 신뢰성 (Reliability)
- 시스템이 일정한 시간 또는 작동되는 시간 동안 의도하는 기능을 수행함을 보증하는 품질 기준
신뢰성 상세 품질 요구사항
- 성숙성(Maturity)
소프트웨어 결함으로 인한 고장을 회피할 수 있는 소프트웨어의 능력
- 고장 허용성(Fault tolerance)
소프트웨어 결함이나 인터페이스 오류 시에도 특정 수준 이상의 성능을 유지할 수 있는 능력
- 회복성(Recoverability)
소프트웨어 고장 발생 시 영향을 받은 데이터를 복구하고 성능의 수준을 다시 확보할 수 있는 능력
3. 사용성(Usability)
- 사용자와 컴퓨터 사이에 발생하는 어떠한 행위를 정확하고 쉽게 인지할 수 있는 품질 기준
사용성 상세 품질 요구사항
- 이해성(Understandability)
소프트웨어의 논리적인 개념과 적용 가능성(응용 가능성)을 구분하는 데 필요한 사용자의 노력 정도에 따른 소프트웨어 특성
- 학습성(Learnability)
소프트웨어 애플리케이션 학습에 필요한 사용자의 노력 정도에 따른 특성
- 운용성(Operability)
소프트웨어의 운용과 운용 통제에 필요한 사용자의 노력 정도에 따른 특성
4. 효율성(Efficiency)
- 할당된 시간에 한정된 자원으로 얼마나 빨리 처리할 수 있는가에 대한 품질 기준
효율성 상세 품질 요구사항
- 시간 효율성(Time Behaviour)
소프트웨어의 기능을 수행하는 데 있어서 반응 시간, 처리 시간 및 처리율에 따른 소프트웨어 특성
- 자원 효율성(Resource Behaviour)
소프트웨어 기능을 수행하는 데 있어서 상요되는 자원의 양과 그 지속 시간에 따른 특성
5. 유지보수성(Maintainability)
- 요구사항을 개선하고 확장하는 데 있어 얼마나 용이한가에 대한 품질 기준
유지보수성 상세 품질 요구사항
- 분석성(Analyzability)
소프트웨어 고장의 원인이나 결함 진단 또는 수정이 요구되는 부분의 확인에 필요한 노력 정도에 따른 소프트웨어 특성
- 변경성(Changeability)
결함 제거 또는 환경 변화에 따른 수정에 필요한 노력 정도에 따른 특성
- 안정성(Stability)
소프트웨어의 변경으로 발생하는 예상치 못한 영향에 의한 위험 요소에 따른 특성
- 시험성(Testability)
소프트웨어가 변경되어 검증에 필요한 노력의 정도에 따른 특성
6. 이식성
- 다른 플랫폼(운영체제)에서도 많은 추가 작업 없이 얼마나 쉽게 적용이 가능한가에 대한 품질 기준
이식성 상세 품질 요구사항
- 적용성(Adaptability)
고려된 소프트웨어의 목적을 위해 제공된 수단이나 다른 조치 없이 특정 환경으로 전환되는 능력에 따른 소프트웨어 특성
- 설치성(Installablity)
특정 환경에 소프트웨어를 설치하는 데 필요한 노력의 정도에 따른 특성
- 대체성(Replaceability)
특정 운용 환경하에서 동일한 목적 달성을 위해 다른 소프트웨어를 대신 사용할 수 있는 능력