티스토리 뷰

Document

UI 요구사항 확인

응용 소프트웨어 개발을 위한 UI 표준 및 지침에 의거하여, 개발하고자 하는 응용 소프트웨어에 적용될 UI 요구사항을 확인할 수 있다.

소프트웨어 아키텍처 개념

  1. 소프트웨어 아키텍처란

    소프트웨어 아키텍처는 개발하고자 하는 소프트웨어의 사전 작업을 통하여 소프트웨어 개발을 쉽게 하도록 기본 틀을 만드는 것으로, 복잡한 개발을 체계적으로 접근하기 위 한 밑그림이라 할 수 있다. 학술적인 정의로는 권도형(2004)에 따르면 소프트웨어를 구 성하는 컴포넌트들의 상호 작용 및 관계, 각각의 특성을 기반으로 컴포넌트들이 상호 유기적으로 결합하는 소프트웨어의 진화를 위한 여러 가지 원칙들의 집합이라고 할 수 있다.

  2. 소프트웨어 아키텍처의 활용

    소프트웨어 아키텍처의 중요성과 활용 방법에 대해 살펴보면, 비교적 간단한 소프트웨 어를 개발할 때에는 완성해야 하는 목적과 기능을 중점으로 설계하여도 품질에는 큰 문제가 없다. 그렇지만 소프트웨어의 기능이 복잡, 다양해짐에 따라, 그 기능을 목적에 알맞게 정의하여 분류하여야 하는 명제를 안게 되었다. 분류된 기능이 세분화되면 상 호 간에 유기적으로 통합하는 과정이 매우 어려워진다. 그러므로 완전한 소프트웨어를 개발하기 위하여 각각의 기능적 특성을 사전에 파악하여 요구 분석 단계부터 설계 단 계까지 분류된 기능과 함께 종합적인 시각으로 판단하는 것이 매우 필요해진다. 이런 이유로 개발하고자 하는 소프트웨어 시스템을 다양한 시각에서 모형화하고 문제 의 특성과 본질을 파악하고 필요에 따라 활용할 방안이 요구되었다. 이에 대한 방안으 로 필요한 것이 아키텍처이다.



UI(User Interface)의 활용

UI 흐름 이해, 상세 내용 파악, 가이드라인 비교, 활용에 대해 알아본다.

  1. UI 흐름 이해

    UI 각각의 상세 내역을 확인하기 전에 먼저 큰 흐름을 살펴보아야 한다. 목적과 그에 맞는 용도, 개발 배경 등 가장 기본이 되는 사항을 확인하여야 하며, 서로 다른 부서 또는 조직 간의 관계와 역할에 대해 명확하게 이해하고 있어야 한다.

  2. UI를 쉽게 풀이하면 사용자와 컴퓨터 상호 간의 소통을 원활히 하게 도와주는 연계 작 업을 뜻한다. 1990년대부터 시작하였으며 초창기에는 사용자와 컴퓨터의 단순한 상호 작용에 국한된 연구에서 출발하였다. 이후 업무가 복잡해지고 다양해지면서 단순한 방 법으로는 많은 문제점이 발생함에 따라 오류를 줄이기 위한 방법으로 변화되었다. 현 재에는 작업 수행 내역을 구체적으로 작성하는 기능 위주에서 단순한 기능 전달이 아 닌 정보의 내용과 그 안에 포함된 뜻을 전달하는 표현 방법으로 변화하였다.

    • UI의 세 가지 분야
      1. 정보 제공과 기능 전달을 위한 물리적 제어 분야
      2. 콘텐츠의 상세적 표현과 전체적 구성에 관한 분야
      3. 사용자의 편의성에 맞춰 쉽고 간편하게 사용 가능하게 하는 기능적 분야
    • UI의 설계 원칙
      1. 직관성 : 누구나 쉽게 이해하고 사용할 수 있어야 한다.
      2. 유효성 : 사용자의 목적을 정확하게 달성하여야 한다.
      3. 학습성 : 누구나 쉽게 배우고 익힐 수 있어야 한다.
      4. 유연성 : 사용자의 요구사항을 최대한 수용하며, 오류를 최소화하여야 한다.
    • UI의 설계 지침
      1. 사용자 중심 : 사용자가 이해하기 편하고 쉽게 사용할 수 있는 환경을 제공하 며 실사용자에 대한 이해가 바탕이 되어야 한다.
      2. 일관성 : 버튼이나 조작 방법을 사용자가 기억하기 쉽고 빠른 습득이 가능하게 설계하여야 한다.
      3. 일관성 : 버튼이나 조작 방법을 사용자가 기억하기 쉽고 빠른 습득이 가능하게 설계하여야 한다.
      4. 결과 예측 가능 : 작동시킬 기능만 보고도 결과 예측이 가능하여야 한다.
      5. 가시성 : 주요 기능을 메인 화면에 노출하여 조작이 쉽도록 하여야 한다.
      6. 표준화 : 디자인을 표준화하여 기능 구조의 선행 학습 이후 쉽게 사용할 수 있 어야 한다.
      7. 접근성 : 사용자의 직무, 연령, 성별 등 다양한 계층을 수용하여야 한다.
      8. 명확성 : 사용자가 개념적으로 쉽게 인지하여야 한다.
      9. 오류 발생 해결 : 사용자가 오류에 대한 상황을 정확히 인지할 수 있어야 한다.
    • UI가 필요한 이유
      1. 구현하고자 하는 결과의 오류를 최소화하고 적은 노력으로 구현하는 결과를 얻 을 수 있다.
      2. 막연한 작업 기능에 대해 구체적인 방법을 제시하여 준다.
      3. 사용자의 편의성을 높임으로써 작업 시간 단축과 업무에 대한 이해도를 높여 준다.
      4. 정보 제공자와 공급자의 원활하고 쉬운 매개 역할을 수행한다.


UI 요구사항 정의

김영훈(2012)에 의하면 기술의 발전과 기업 환경의 변화에 맞춰 기업의 업무용 소프트웨어 도 기존에는 단순하고 체계적이면서 구조화된 기능 중심 관점에서 그 기능을 중심으로 획 일화된 UI를 공급하는 소프트웨어 방법을 취했다면, 이제는 시스템을 주로 이용하는 사용 자 요구와 필요 기능을 중심으로 UI를 공급함으로써 실체적이고 효과적인 사용자 요구 기 능에 알맞은 서비스를 제공하는 형태로 진화하고 있다.

  1. 품질 요구사항

    소프트웨어 아키텍처 품질 특성 도출은 아키텍처 방법론에 정의된 항목을 중심으로 작 성한다.

  2. 품질 요구사항 특성
    품질 요구사항 상세 품질 요구사항
    기능성(Functionality) 적절성, 정밀성, 상호 운용성, 보안성, 호환성
    신뢰성(Reliability) 성숙성, 고장 허용성, 회복성
    사용성(Usability) 이해성, 학습성, 운영성
    효율성(Efficiency) 시간 효율성, 자원 활용성
    유지 보수성(Maintainability) 분석성, 변경성, 안정성, 시험성
    이식성(Portability) 적용성, 설치성, 대체성

    • 기능성(Functionality)

      실제 수행 결과와 품질 요구사항과의 차이를 분석하고, 실제 사용 시 정확하지 않은 결과가 발생할 확률 등과 관련하여 시스템의 동작을 관찰하기 위한 품질 기준이다.

      상세 품질 요구사항 설명
      적절성(Suitality) 소프트웨어 제품이 주어진 작업과 사용자의 목표에 필요 적절한 기능들을 제공해 줄 수 있는 소프트웨어의 능력
      정밀성(Accuracy) 소프트웨어 제품이 요구되는 정확도로 올바른 결과를 산출할 수 있는 능력
      상호 운용성(Interoperability) 소프트웨어 제품이 특정 시스템과 상호 작용하여 운영될 수 있 는 능력
      보안성(Security) 프로그램과 데이터에 대해, 비인가된 접근을 차단하고, 우연 또 는 고의적인 접근을 인지하여 대처할 수 있는 능력
      호환성(Compliance) 소프트웨어 제품이 비슷한 환경에서 연관된 표준, 관례 및 규정 을 준수하는 능력

    • 신뢰성(Reliability)

      시스템이 일정한 시간 또는 작동되는 시간 동안 의도하는 기능을 수행함을 보증한다.

      상세 품질 요구사항 설명
      성숙성(Maturity) 소프트웨어 결함으로 인한 고장을 회피할 수 있는 소프트웨어의 능력
      고장 허용성(Fault tolerance) 소프트웨어 결함이나 인터페이스 결여 시에도 특정 수준 이상의 성능을 유지할 수 있는 능력
      회복성(Recoverability) 소프트웨어 고장과 그에 대한 시간과 노력이 요구되는 경우 영향 받은 데이터를 복구하고 성능의 수준을 다시 확보할 수 있는 능 력

    • 사용성(Usablity)

      사용자와 컴퓨터 사이에 발생하는 어떠한 행위를 정확하고 쉽게 인지 가능함을 의미 한다.

      상세 품질 요구사항 설명
      이해성(Understandability) 소프트웨어의 논리적인 개념과 적용 가능성(응용 가능성)을 분간하 는 데 필요한 사용자의 노력 정도에 따른 소프트웨어 특성
      학습성(Learnability) 소프트웨어 애플리케이션 학습에 필요한 사용자의 노력 정도에 따 른 특성
      운용성(Operability) 소프트웨어의 운용과 운용 통제에 필요한 사용자의 노력 정도에 따 른 특성

    • 효율성(Efficiency)

      할당된 시간에 한정된 자원으로 얼마나 빨리 처리하는가를 의미한다.

      상세 품질 요구사항 설명
      시간 효율성(Time Behaviour) 소프트웨어의 기능을 수행하는 데 있어 반응 시간, 처리 시간 및 처 리율에 따른 소프트웨어 특성
      자원 효율성(Resource Behaviour) 소프트웨어의 기능을 수행하는 데 있어 사용되는 자원의 양과 그 지 속 시간에 따른 특성

    • 유지 보수성(Maintainability)

      요구사항을 개선하고 확장하는 데 있어 얼마나 용이한가를 의미한다.

      상세 품질 요구사항 설명
      분석성(Analyzability) 소프트웨어 고장의 원인이나 결손 진단 또는 수정이 요구되는 부분 의 확인에 필요한 노력 정도에 따른 소프트웨어 특성
      변경성(Changeability) 결함 제거 또는 환경 변화에 따른 수정에 필요한 노력 정도에 따른 특성
      안정성(Stability) 소프트웨어의 변경으로 발생하는 예상치 못한 영향에 의한 위험 요 소에 따른 특성
      시험성(Testability) 소프트웨어가 변경되어 검증에 필요한 노력의 정도에 따른 특성

    • 이식성(Portability)

      다른 플랫폼(운영 체제)에서도 많은 추가 작업 없이 얼마나 쉽게 적용이 가능한가를 의미한다.

      상세 품질 요구사항 설명
      적용성(Adaptability) 고려된 소프트웨어의 목적을 위해 제공된 수단이나 다른 조치 없이 특정 환경으로 전환되는 능력에 따른 소프트웨어 특성
      설치성(Installability) 특정 환경에 소프트웨어를 설치하는 데 필요한 노력의 정도에 따른 특성
      대체성(Replaceability) 특정 운용 환경 하에서 동일한 목적 달성을 위해 다른 소프트웨어를 대신 사용할 수 있는 능력


UI 요구사항 확인

  1. UI 요구사항 확인

    프로젝트의 요구사항은 크게 시스템이 무엇을 하여야 하는지를 설명하는 기능적 요구사항 (Functional Requirements)과 개발 과정에서 지켜져야 할 제약조건들을 설명하는 비기능적 요구사항(Nonfunctional Requirements)으로 나눠진다.

    • 기능적 요구사항
      1. 시스템의 입력으로 무엇이 포함되어야 하나?
      2. 시스템의 출력으로 무엇이 포함되어야 하나?
      3. 시스템이 어떤 데이터를 저장해야 하나?
      4. 시스템이 어떤 연산을 수행해야 하나?
      5. 기타 요구사항(예: 동기화 등
    • 비기능적 요구사항
      1. 사용성, 효율성, 신뢰성, 유지 보수성, 재사용성 등 품질에 관한 요구사항
      2. 플랫폼, 사용 기술 등 시스템 환경에 관한 요구사항
      3. 비용, 일정 등 프로젝트 계획에 관한 요구사항

'UIUX 엔지니어링 > 화면 설계' 카테고리의 다른 글

UI 설계하기  (0) 2020.09.24
UI 설계하기  (0) 2020.09.24
UI 요구사항 확인하기  (0) 2020.09.24
댓글
© 2018 webstoryboy