소프트웨어 아키텍처
소프트웨어 아키텍처(Software Architecture)
- 개발 대상 시스템의 전반적인 구조를 체계적으로 설계하는 것
- 다수의 이해관계자가 참여하는 복잡한 개발에서 상호이해, 타협, 의사소통을 체계적으로 접근하기 위한 것
- 소프트웨어를 구성하는 컴포넌트들의 상호작용 및 관계, 각각의 특성을 기반으로 컴포넌트들이 상호 유기적으로 결합하는 소프트웨어의 여러 가지 원칙들의 집합
소프트웨어 아키텍처 품질 요구사항
- 소프트웨어의 기능, 성능, 만족도 등의 요구사항이 얼마나 충족하는가를 나타내는 소프트웨어 특성의 핵심 집합
- 사용자의 요구사항을 얼마나 충족시키느냐에 따라 확립됨
ISO/IEC 9126 모델
- 소프트웨어 품질 특성과 평가를 위한 국제 표준
- 내외부 품질 : 기능성, 신뢰성, 사용성, 효율성, 유지보수성, 이식성으로 구분
- 사용 품질 : 효과성, 생산성, 안정성, 만족도
- 외부지표(External Metrics) : 실행 가능한 SW, 시스템을 시험, 운영 또는 관찰을 통하여 시스템을 구성하고 있는 일부분으로부터 추출된 소프트웨어 제품의 측정에 사용. 사용자, 평가자, 시험자 및 개발자에게 시험 수행이나 운영 중에 소프트웨어 제품에 대한 품질을 평가하는 항목
- 내부지표(Internal Metrics) : 설계, 코딩 도중에 실행할 수 없는 SW 제품(명세서, 원시 코드 등)에 대하여 적용하고 설계상 요구되는 외부 품질을 성취하기 위하여 ISO 9126-3에 규정함. 사용자, 평가자, 시험자 및 개발자가 소프트웨어 제품의 품질을 평가할 수 있도록 도움을 줌
ISO/IEC 25010
- ISO/IEC 9126에서 ISO/IEC 25010으로 개정되어 특성 기준이 6개에서 8개로 증가함
- 기존 : 기능성, 신뢰성, 사용성, 유지보수성, 이식성, 효율성
- 변경 : 기능 적합성, 실행 효율성, 호환성, 사용성, 신뢰성, 보안성, 유지보수성, 이식성, 부특성 일부가 증가함
UI 표준을 위한 환경 분석
사용자 경향 분석
- 기존/현존 UI 경향을 숙지하고 현재 UI 단점을 작성함
- 사용자의 요구사항을 파악하고, 쉽게 이해 가능한 기능 위주로 기술 영역을 정의함
기능 및 설계 분석
- 기능 조작성 분석 : 사용자 편의를 위한 조작에 관한 분석을 확인함. 예) 스크롤바 지원 가능 여부, 마우스 조작 시 동선 확인
- 오류 방지 분석 : 조작 시 오류에 대해 예상 가능한지 확인함. 예) 의도치 않는 페이지 이동, 기능 버튼의 명확한 구분 가능한지 확인, 기능 버튼 이름이 사용자 조작과 일치하는지 확인
- 최소한의 조작으로 업무 처리 가능한 형태 분석 : 작업 흐름에 가장 적합한 레이아웃 인지 확인함. 예) 기능 특성에 맞는 UI 확인 및 조작 단계 최소화와 동선 단순 여부 확인
- UI의 정보 전달력 확인 : 중요정보 인지, 쉽게 전달 가능한지, 정보 제공의 간결성, 명확성을 확인하고 정보 제공방식의 일관성, 사용자 이해성 확인, 상호연관성 높은 정보인지 확인함. 예) 오류 발생 시 해결 방법 접근 용이성 확인
요구사항 요소
구분 | 설명 |
데이터 요구 | - 사용자 요구 모델과 객체들의 핵심 특성에 기반하여 데이터 객체를 정리함 - 인터페이스에 영향을 줄 수 있으니 초기에 확인 예) Email 메시지 속성 : 제목, 송신자, 송신일, 참조인, 답변 등 |
기능 요구 | - 동사형으로 사용자의 목적 달성을 위해 실행해야 할 기능을 설명함 - 기능 요구 목록으로 정리 - 최대한 철저하게 작성해야 함 예) 사용자는 메일을 작성하거나, 수신, 참조하여 발송할 수 있음 |
제품, 서비스 품질 | - 감성 품질과 데이터/기능 요구 외 제품 품질, 서비스 품질을 고려 - 시스템 처리 능력 등 정량화 가능한 요구사항을 확인함 |
제약 사항 | 비용, 데드라인, 시스템 준수에 필요한 규제 등 사전에 제약 사항의 변경 여부를 확인함 |
정황 시나리오 작성
- 개발하는 서비스의 초기 모양을 상상하는 단계
- 사용자 관점에서 작성하며 요구사항 정의에서 가장 기초적인 시나리오를 의미
- 높은 수준과 낙관적인 상황에서 이상적 시스템 동작에 초점을 둠
- 육하원칙을 따르고 사용자가 주로 사용하는 기능 기반에서 작성함
- 간단명료하게 작성하여 정확하게 전달하고, 같은 동작 기능은 하나의 시나리오에 통합함
- 외부 전문가, 경험자에게 검토를 의뢰하도록 함
- 정황 시나리오 작성 예
정황 시나리오 | 요구사항 |
- 사원은 출근하여 시스템에 로그인하고 오늘 업무를 확인함 - 어제 요청한 결제가 승인되었는지 확인함 |
- 로그인하면 맨 위 화면에 오늘 업무가 표시되어야 함 - 결제 요청 내역에 결제 승인 여부가 확인될 수 있도록 승인 내역은 다른 색을 이용함 |
UI 표준 및 지침
UI(User Interface)
- 인간, 디지털 기기, 소프트웨어 사이에서 의사소통 할 수 있도록 만들어진 매개체
- 인간과 컴퓨터의 상호작용(HCI)에 필요한 화상, 문자, 소리, 수단(장치)을 의미
UI 분야
- 표현에 관한 분야 : 전체적인 구성과 콘텐츠의 상세 표현을 위한 분야
- 정보 제공과 전달 분야 : 물리적 제어를 통한 정보 제공과 전달을 위한 분야
- 기능 분야 : 기능적으로 사용자가 쉽고 간편하게 사용하도록 하는 분야
UI의 특징
- 실사용자의 만족도에 직접 영향을 줌
- 적절한 UI 구성으로 편리성,가독성, 동선의 축약 등으로 작업 시간을 줄일 수 있고 업무 효율을 높일 수 있음
- 실사용자가 수행해야 할 기능을 구체적으로 제시함
- UI 설계 전 소프트웨어 아키텍처를 우선 숙지하고 있어야 함
UI 개발 시스템이 가져야 할 기능
- 사용자 입력의 검증
- 에러 처리와 에러 메시지 처리
- 도움과 프롬프트(Prompt) 제공
UI 설계
UI 설계 원칙
직관성, 유효성, 학습성, 유연성
- 직관성(Intuitiveness) : 누구나 쉽게 이해하고 사용할 수 있도록 함
- 유효성(Efficiency) : 사용자의 목적을 정확히 달성할 수 있도록 유용하고 효과적이어야 함
- 학습성(Learnability) : 사용자가 쉽게 배우고 익힐 수 있어야 함
- 유연성(Flexibility) : 사용자의 요구를 최대한 수용하면서 오류를 최소화해야 함
UI 설계의 필요성
- 구현 대상 결과의 오류 최소화와 적은 노력으로 구현하는 결과를 얻을 수 있음
- 막연한 작업 기능에 대하여 구체적 방법을 제시함
- 사용자편의성을 높여 작업 시간 단축, 업무 이해도 높임
- 정보 제공자/공급자 사이의 원활하고 쉬운 매개 임무를 수행
UI 설계 지침
구분 | 설명 |
사용자 중심 | 실사용자의 이해를 바탕으로 쉽게 이해하고, 쉽게 사용할 수 있는 환경을 제공함 |
일관성 | 사용자가 기억하기 쉽고 빠른 습득이 가능하도록 버튼이나 조작법을 제공 |
단순성 | 인지적 부담을 줄이도록 조작 방법을 가장 간단히 작동하도록 함 |
가시성 | 주요 기능은 메인 화면에 배치하여 조작이 쉽게 함 |
표준화 | 기능 구조와 선행 학습 이후 쉽게 이용할 수 있도록 디자인을 표준화함 |
접근성 | 사용자의 직무, 성별, 나이 등 다양한 계층을 수용해야 함 |
결과 예측 가능 | 작동 대상 기능만 보고도 결과 예측이 가능해야 함 |
명확성 | 사용자 관점에서 개념적으로 쉽게 인지할 수 있어야 함 |
오류 발생 해결 | 오류가 발생하면 사용자가 상황을 정확히 인지할 수 있어야 함 |
UI 표준
UI 구현 표준
- 전체 시스템 개발 중에 개발자 간 협업을 통하여 각기 개발한 화면 간에 갖추어야 할 최소한의 UI 요소 및 배치 규칙 등의 규칙을 의미
- 공통으로 적용되어야 할 화면 구성, 화면 이동 등이 있음
UI 설계 시 오류 메시지나 경고에 관한 지침
- 메시지는 이해하기 쉬워야 함
- 오류로부터 회복을 위한 구체적인 설명이 제공되어야 함
- 오류로 인해 발생될 수 있는 부정적인 내용을 적극적으로 사용자들에게 알려야 함
한국형 웹 콘텐츠 접근성 지침 2.1 4가지 원칙
- 인식의 용이성 : 대체 텍스트, 멀티미디어 대체 수단, 명료성
- 운용의 용이성 : 입력 장치 접근성, 충분한 시간 제공, 광(光) 과민성 발작 예방, 쉬운 내비게이션
- 이해의 용이성 : 가독성, 예측성, 콘텐츠의 논리성, 입력 도움
- 견고성 : 문법 준수, 웹 애플리케이션 접근성
UX(User eXperience)
UX 사용자 경험
- 제품을 대상으로 직간접적으로 사용하면서 느끼고 생각하게 되는 지각과 반응, 행동 등 모든 경험을 의미
- UI는 사람과 시스템 간의 상호작용을 의미하지만, UX는 제품과 서비스, 회사와 상호작용을 통해서 전체적인 느낌이나 경험을 말함
- UX에 영향을 주는 요소 : 성능, 시간
모바일 사용자 UX 설계 시 고려사항 (행정안전부 고시)
- 시스템을 사용하는 대상, 환경, 목적, 빈도 등을 고려함
- 사용자가 직관적으로 서비스 이용 방법을 파악할 수 있도록 함
- 입력의 최소화, 자동 완성 기능을 제공함
- 사용자의 입력 실수를 수정할 수 있도록 되돌림 기능을 제공함
- 모바일 서비스의 특성에 적합한 디자인을 제공함
728x90
반응형
'정보처리기사 > 소프트웨어 설계' 카테고리의 다른 글
소프트웨어 설계 모델링 (1) (1) | 2023.07.08 |
---|---|
UI (2) (0) | 2023.07.08 |
UML (2) (0) | 2023.07.08 |
UML (1) (0) | 2023.07.08 |
요구사항 확인 기법 (0) | 2023.07.08 |