티스토리 뷰

소프트웨어 아키텍처 개념

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) 기능성(Functionality)

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

(2) 신뢰성(Reliability)

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

(3) 사용성(Usablity)

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

(4) 효율성(Efficiency)

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

(5) 유지 보수성(Maintainability)

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

(6) 이식성(Portability)

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

UI 요구사항 확인

1. UI 요구사항 확인

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

(1) 기능적 요구사항

(가) 시스템의 입력으로 무엇이 포함되어야 하나?

(나) 시스템의 출력으로 무엇이 포함되어야 하나?

(다) 시스템이 어떤 데이터를 저장해야 하나?

(라) 시스템이 어떤 연산을 수행해야 하나?

(마) 기타 요구사항(예: 동기화 등)

(2) 비기능적 요구사항

(가) 사용성, 효율성, 신뢰성, 유지 보수성, 재사용성 등 품질에 관한 요구사항

(나) 플랫폼, 사용 기술 등 시스템 환경에 관한 요구사항

(다) 비용, 일정 등 프로젝트 계획에 관한 요구사항

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

UI 상세설계  (0) 2020.09.25
UI 흐름설계  (0) 2020.09.25
UI 프로토타입 제작, 검토  (0) 2020.09.25
댓글
© 2018 webstoryboy