UI 요구사항 확인하기
UI 요구사항 확인하기
- 응용 소프트웨어 개발을 위한 UI 표준 및 지침에 의거하여, 개발하고자 하는 응용 소프트웨어에 적용될 UI 요구사항을 확인할 수 있다.
U소프트웨어 아키텍처 개념
1. 소프트웨어 아키텍처란
소프트웨어 아키텍처는 개발하고자 하는 소프트웨어의 사전 작업을 통하여 소프트웨어 개발을 쉽게 하도록 기본 틀을 만드는 것으로, 복잡한 개발을 체계적으로 접근하기 위 한 밑그림이라 할 수 있다. 학술적인 정의로는 권도형(2004)에 따르면 소프트웨어를 구 성하는 컴포넌트들의 상호 작용 및 관계, 각각의 특성을 기반으로 컴포넌트들이 상호 유기적으로 결합하는 소프트웨어의 진화를 위한 여러 가지 원칙들의 집합이라고 할 수 있다.
2. 소프트웨어 아키텍처의 활용
소프트웨어 아키텍처의 중요성과 활용 방법에 대해 살펴보면, 비교적 간단한 소프트웨 어를 개발할 때에는 완성해야 하는 목적과 기능을 중점으로 설계하여도 품질에는 큰 문제가 없다. 그렇지만 소프트웨어의 기능이 복잡, 다양해짐에 따라, 그 기능을 목적에 알맞게 정의하여 분류하여야 하는 명제를 안게 되었다. 분류된 기능이 세분화되면 상 호 간에 유기적으로 통합하는 과정이 매우 어려워진다. 그러므로 완전한 소프트웨어를 개발하기 위하여 각각의 기능적 특성을 사전에 파악하여 요구 분석 단계부터 설계 단 계까지 분류된 기능과 함께 종합적인 시각으로 판단하는 것이 매우 필요해진다. 이런 이유로 개발하고자 하는 소프트웨어 시스템을 다양한 시각에서 모형화하고 문제 의 특성과 본질을 파악하고 필요에 따라 활용할 방안이 요구되었다. 이에 대한 방안으 로 필요한 것이 아키텍처이다.
UI(User Interface)의 활용
UI 흐름 이해, 상세 내용 파악, 가이드라인 비교, 활용에 대해 알아본다.
1. UI 흐름 이해
UI 각각의 상세 내역을 확인하기 전에 먼저 큰 흐름을 살펴보아야 한다. 목적과 그에 맞는 용도, 개발 배경 등 가장 기본이 되는 사항을 확인하여야 하며, 서로 다른 부서 또는 조직 간의 관계와 역할에 대해 명확하게 이해하고 있어야 한다.
2 UI 상세
UI를 쉽게 풀이하면 사용자와 컴퓨터 상호 간의 소통을 원활히 하게 도와주는 연계 작 업을 뜻한다. 1990년대부터 시작하였으며 초창기에는 사용자와 컴퓨터의 단순한 상호 작용에 국한된 연구에서 출발하였다. 이후 업무가 복잡해지고 다양해지면서 단순한 방 법으로는 많은 문제점이 발생함에 따라 오류를 줄이기 위한 방법으로 변화되었다. 현 재에는 작업 수행 내역을 구체적으로 작성하는 기능 위주에서 단순한 기능 전달이 아 닌 정보의 내용과 그 안에 포함된 뜻을 전달하는 표현 방법으로 변화하였다.
(1) UI의 세 가지 분야
- 정보 제공과 기능 전달을 위한 물리적 제어 분야
- 콘텐츠의 상세적 표현과 전체적 구성에 관한 분야
- 사용자의 편의성에 맞춰 쉽고 간편하게 사용 가능하게 하는 기능적 분야
(2) UI의 설계 원칙
- 직관성 : 누구나 쉽게 이해하고 사용할 수 있어야 한다.
- 유효성 : 사용자의 목적을 정확하게 달성하여야 한다.
- 학습성 : 누구나 쉽게 배우고 익힐 수 있어야 한다.
- 유연성 : 사용자의 요구사항을 최대한 수용하며, 오류를 최소화하여야 한다.
(3) UI의 설계 지침
- 사용자 중심 : 사용자가 이해하기 편하고 쉽게 사용할 수 있는 환경을 제공하 며 실사용자에 대한 이해가 바탕이 되어야 한다.
- 일관성 : 버튼이나 조작 방법을 사용자가 기억하기 쉽고 빠른 습득이 가능하게 설계하여야 한다.
- 단순성 : 조작 방법은 가장 간단하게 작동이 가능하도록 하여 인지적 부담을 감소시켜야 한다 결과 예측 가능 : 작동시킬 기능만 보고도 결과 예측이 가능하여야 한다.
- 가시성 : 주요 기능을 메인 화면에 노출하여 조작이 쉽도록 하여야 한다.
- 표준화 : 디자인을 표준화하여 기능 구조의 선행 학습 이후 쉽게 사용할 수 있 어야 한다.
- 접근성 : 사용자의 직무, 연령, 성별 등 다양한 계층을 수용하여야 한다.
- 명확성 : 사용자가 개념적으로 쉽게 인지하여야 한다.
- 오류 발생 해결 : 사용자가 오류에 대한 상황을 정확히 인지할 수 있어야 한다.
(4) UI가 필요한 이유
- 구현하고자 하는 결과의 오류를 최소화하고 적은 노력으로 구현하는 결과를 얻 을 수 있다.
- 막연한 작업 기능에 대해 구체적인 방법을 제시하여 준다.
- 사용자의 편의성을 높임으로써 작업 시간 단축과 업무에 대한 이해도를 높여 준다.
- 정보 제공자와 공급자의 원활하고 쉬운 매개 역할을 수행한다.
UI 요구사항 정의
김영훈(2012)에 의하면 기술의 발전과 기업 환경의 변화에 맞춰 기업의 업무용 소프트웨어 도 기존에는 단순하고 체계적이면서 구조화된 기능 중심 관점에서 그 기능을 중심으로 획 일화된 UI를 공급하는 소프트웨어 방법을 취했다면, 이제는 시스템을 주로 이용하는 사용 자 요구와 필요 기능을 중심으로 UI를 공급함으로써 실체적이고 효과적인 사용자 요구 기 능에 알맞은 서비스를 제공하는 형태로 진화하고 있다.
1. 품질 요구사항
소프트웨어 아키텍처 품질 특성 도출은 아키텍처 방법론에 정의된 항목을 중심으로 작성한다.
2. 품질 요구사항 특성
(표 1-1) ISO/IEC 9126 품질 특성
품질 요구사항 | 상세 품질 요구사항 |
---|---|
기능성(Functionality) | 적절성, 정밀성, 상호 운용성, 보안성, 호환성 |
사용성(Usability) | 이해성, 학습성, 운영성 |
효율성(Efficiency) | 시간 효율성, 자원 활용성 |
유지 보수성(Maintainability) | 분석성, 변경성, 안정성, 시험성 |
이식성(Portability) | 적용성, 설치성, 대체성 |
(1) 기능성(Functionality)
실제 수행 결과와 품질 요구사항과의 차이를 분석하고, 실제 사용 시 정확하지 않은 결과가 발생할 확률 등과 관련하여 시스템의 동작을 관찰하기 위한 품질 기준이다.
(표 1-2) 품질 요구사항의 기능성
상세 품질 요구사항 | 설명 |
---|---|
적절성(Suitality) | 소프트웨어 제품이 주어진 작업과 사용자의 목표에 필요 적절한 기능들을 제공해 줄 수 있는 소프트웨어의 능력 |
정밀성(Accuracy) | 소프트웨어 제품이 요구되는 정확도로 올바른 결과를 산출할 수 있는 능력 |
상호 운용성(Interoperability) | 소프트웨어 제품이 특정 시스템과 상호 작용하여 운영될 수 있 는 능력 |
보안성(Security) | 프로그램과 데이터에 대해, 비인가된 접근을 차단하고, 우연 또 는 고의적인 접근을 인지하여 대처할 수 있는 능력 |
호환성(Compliance) | 소프트웨어 제품이 비슷한 환경에서 연관된 표준, 관례 및 규정 을 준수하는 능력 |
(2) 신뢰성(Reliability)
시스템이 일정한 시간 또는 작동되는 시간 동안 의도하는 기능을 수행함을 보증한다
(표 1-3) 품질 요구사항의 신뢰성
상세 품질 요구사항 | 설명 |
---|---|
성숙성(Maturity) | 소프트웨어 결함으로 인한 고장을 회피할 수 있는 소프트웨어의 능력 |
고장 허용성(Fault tolerance) | 소프트웨어 결함이나 인터페이스 결여 시에도 특정 수준 이상의 성능을 유지할 수 있는 능력 |
회복성(Recoverability) | 소프트웨어 제품이 특정 시스템과 상호 작용하여 운영될 수 있 는 능력 |
보안성(Security) | 소프트웨어 고장과 그에 대한 시간과 노력이 요구되는 경우 영향 받은 데이터를 복구하고 성능의 수준을 다시 확보할 수 있는 능력 |
(3) 사용성(Usablity)
사용자와 컴퓨터 사이에 발생하는 어떠한 행위를 정확하고 쉽게 인지 가능함을 의미 한다.
(표 1-4) 품질 요구사항의 사용성
상세 품질 요구사항 | 설명 |
---|---|
이해성(Understandability) | 소프트웨어의 논리적인 개념과 적용 가능성(응용 가능성)을 분간하는데 필요한 사용자의 노력 정도에 따른 소프트웨어 특성 |
학습성(Learnability) | 소프트웨어 애플리케이션 학습에 필요한 사용자의 노력 정도에 따른 특성 |
운용성(Operability) | 소프트웨어의 운용과 운용 통제에 필요한 사용자의 노력 정도에 따른 특성 |
(4) 효율성(Efficiency)
할당된 시간에 한정된 자원으로 얼마나 빨리 처리하는가를 의미한다.
(표 1-5) 품질 요구사항의 효율성
상세 품질 요구사항 | 설명 |
---|---|
시간 효율성(Time Behaviour) | 소프트웨어의 기능을 수행하는 데 있어 반응 시간, 처리 시간 및 처 리율에 따른 소프트웨어 특성 |
자원 효율성(Resource Behaviour) | 소프트웨어의 기능을 수행하는데 있어 사용되는 자원의 양과 그 지속 시간에 따른 특성 |
(5) 유지 보수성(Maintainability)
요구사항을 개선하고 확장하는 데 있어 얼마나 용이한가를 의미한다.
(표 1-6) 품질 요구사항의 유지 보수성
상세 품질 요구사항 | 설명 |
---|---|
분석성(Analyzability) | 소프트웨어 고장의 원인이나 결손 진단 또는 수정이 요구되는 부분 의 확인에 필요한 노력 정도에 따른 소프트웨어 특성 |
변경성(Changeability) | 결함 제거 또는 환경 변화에 따른 수정에 필요한 노력 정도에 따른 특성 |
안정성(Stability) | 소프트웨어의 변경으로 발생하는 예상치 못한 영향에 의한 위험요소에 따른 특성 |
시험성(Testability) | 소프트웨어가 변경되어 검증에 필요한 노력의 정도에 따른 특성 |
(6) 이식성(Portability)
다른 플랫폼(운영 체제)에서도 많은 추가 작업 없이 얼마나 쉽게 적용이 가능한가를 의미한다.
((표 1-7) 품질 요구사항의 이식성
상세 품질 요구사항 | 설명 |
---|---|
적용성 (Adaptability) | 고려된 소프트웨어의 목적을 위해 제공된 수단이나 다른 조치 없이 특정 환경으로 전환되는 능력에 따른 소프트웨어 특성 |
설치성 (Installability) | 특정 환경에 소프트웨어를 설치하는 데 필요한 노력의 정도에 따른 특성 |
대체성 (Replaceability) | 특정 운용 환경 하에서 동일한 목적 달성을 위해 다른 소프트웨어를 대신 사용할 수 있는 능력 |
UI 요구사항 확인하기
UI 요구사항 확인하기
프로젝트의 요구사항은 크게 시스템이 무엇을 하여야 하는지를 설명하는 기능적 요구사항 (Functional Requirements)과 개발 과정에서 지켜져야 할 제약조건들을 설명하는 비기능적 요구사항(Nonfunctional Requirements)으로 나눠진다.
(1) 기능적 요구사항
- 시스템의 입력으로 무엇이 포함되어야 하나?
- 시스템의 출력으로 무엇이 포함되어야 하나?
- 시스템이 어떤 데이터를 저장해야 하나?
- 시스템이 어떤 연산을 수행해야 하나?
- 기타 요구사항(예: 동기화 등)
(비기능적 요구사항
- 사용성, 효율성, 신뢰성, 유지 보수성, 재사용성 등 품질에 관한 요구사항
- 플랫폼, 사용 기술 등 시스템 환경에 관한 요구사항
- 비용, 일정 등 프로젝트 계획에 관한 요구사항