화면 설계
User Interfacd : 사용자와 시스템 사이에서 의사소통을 도와주는 가상의 매개체
CLI : 명령어 텍스트 기반으로 입력조작
GUI : 그래픽 환경에서 마우스, 키보드 사용
NUI : 신체 부위 사용
OUI : 모든 사물이 입출력 장치
직관성(Intuitiveness) : 누구나 쉽게 이해, 사용
유효성(Efficiency) : 목표가 달성될 수있도록 제작
학습성(Learnability) : 쉽게 배우고 사용
유연성(Flexibility) : 실수예방, 포용
UI설계 지침 : 사용자 중심, 일관성, 단순성, 결과예측 가능, 가시성, 표준화, 접근성, 명확성, 오류발생 해결
기능적 요구사항 : 시스템의 기능, 입출력, 연산, 서비스에 대한 요구사항
비기능적 요구사항 : 제약조건(품질, 환경, 비용, 일정)에 대한 요구사항
UI 품질 요구사항
기능성(Functionality) : 실제 수행 결과와 품질 요구사항과의 차이 분석
- 적절성 : 적절한 기능 제공
- 상호운용성 : 특정 시스템과 상호작용
- 정밀성 : 요구되는 정확도로 결과 산출
- 보안성 : 비인가된 접근 인지하여 대처, 차단
- 호환성 : 소프트웨어 제품이 비슷한 환경에서 연관된 표준, 관례 및 규정 준수
신뢰성(Reliability) : 일정한 시간 동안 의도하는 기능을 수행함을 보증하는 기준
- 성숙성(Maturity) : 결함으로 인한 고장 회피 능력
- 회복성 : 고장 발생 시 데이터를 복구하고 성능 수준 확보
- 고장 허용성(Fault tolerance) : 결함이나 인터페이스 오류시에도 특정 수준 이상의 성능 유지
사용성(Usablity) : 사용자와 컴퓨터 사이의 행위를 쉽게 인지, 직접 제품을 사용하면서 과제를 수행한 후 질문에 답하는 테스트
- 이해성 : 소프트웨어의 논리적인 개념과 적용 가능성을 구분하는데 사용자의 노력정도
- 학습성 : 학습에 필요한 사용자의 노력 정도
- 운용성(Operability) : 운용과 운용통제에 필요한 사용자의 노력 정도
효율성(Efficiency) : 할당된 시간에 한정된 자원으로 얼마나 빨리 처리
- 시간 효율성(Time Behaviour) : 기능을 수행하는 데 반응 시간, 처리 시간 및 처리율에 따른 특성
- 자원 효율성(Resource Behaviour) : 기능을 수행하는 데 사용되는 자원과 지속 시간에 따른 특성
유지보수성(Maintainability) : 요구사항을 개선하고 확장하는데 얼마나 용이
- 분석성 : 고장 원인이나 결함 부분 확인 노력 정도
- 변경성 : 변화에 따른 수정에 필요한 노력 정도
- 안전성(Stability) : 변경으로 인한 영향에 따른 위험 요소
- 시험성 : 변경되어 검증에 필요한 노력 정도
이식성(Portability) : 다른 플랫폼에서도 추가 작업 없이 얼마나 쉽게 적응이 가능한가
- 적용성(Adaptability) : 목적을 위해 특정 환경으로 전환되는 능력
- 설치성 : 특정 환경에 설치하는데 필요한 노력
- 대체성(Replacebility) : 목적 달성을 위해 다른 소프트웨어 대신 사용이 가능한 능력
UI 표준 구성 : 전체적인 UX 원칙, 정책 및 철학, UI 스타일 가이드, UI 패턴 모델 정의, UI 표준 수립을 위한 조직 구성
3C 분석 : 고객, 자사, 경쟁사를 비교, 분석하여 차별화
SWOT : 강점, 약점, 기회, 위협을 규정하고 경영 전략 수립
시나리오 플래닝, 사용성 테스트, 워크숍
스토리보드(Storyboard) : UI 화면 설계를 위해서 구축하는 서비스를 위한 정보가 수록된 문서, 디자이너 개발자가 참고하는 산출 문서
Wireframe : 화면 단위의 레이아웃 걸계, 이해관계자들과 협의 흐름 공유
Prototype : 정적인 화면을 동적 효과를 사용하여 시뮬레이션
UML(Unified Modeling Language) : 객체 지향소프트웨어 개발 과정에서 산출물을 명세화, 시각화, 문서화 할때 사용하는 범용 모델링 언어
사물(Things) : 관계가 형성될 수 있는 대상들, 구조 행동 그룹 주해 사물
관계(Relationships) : 사물의 의미 확장, 사물과 사물을 연결하여 관계 표현, 형용사 또는 부사
Diagrams : 사물과 관계를 도형으로 표현한 것
구조적(정적) 다이어그램
- 클래스 : 속성 및 연산과 클래스 간 관계 표현
- 객체 : 클래스에 속한 사물들, 인스턴스 표현, 럼바우
- 컴포넌트 : 물리적인 컴포넌트들과 그들 사이의 의존 관계 표현 -- 구현 단계
- 배치(Deployment) : 컴포넌트간 종속성과 물리적 요소들 위치 표현 -- 구현 단계
- 복합체 구조(Composite Structure) : 클래스나 컴포넌트 복합 구조 표현
- 패키지 : 모델 요소들을 그룹화한 패키지들의 관계 표현
행위적(동적) 다이어그램
- 유스케이스 : 기능과 외부요소를 사용자 관점에서 표현 - 유스케이스(서비스, 기능), 액터(수행하는 역할), 시스템, 관계
- 시퀀스 : 시간적 개념을 중심으로 상호작용을 메시지로 표현
- 커뮤니케이션 : 객체들이 주고 받는 메시지 표현, 연관 표현
- 상태 : 자신이 속한 클래스나 객체의 상호작용에 따라 상태 변화 표현, 럼바우
- 활동 : 시스테밍 처리 로직이나 조건 처리 흐름을 순서대로 표현
- 상호작용 개요(Interaction Overview) : 상호작용 다이어그램 간의 제어 흐름 표현
- 타이밍 : 객체 상태 변화와 시간제약을 명시적으로 표현
<< >> : 스테레오 타입, 추가적인 기능 표현
<<include>> : 어떤 시점에 반드시 다른 유스케이스 실행 포함 관계
<<extend>> : 어떤 시점에 다른 유스케이스를 실행할 수도 있고 않을 수도 있는 확장 관계
<<interface>> : 추상 메서드와 상수만으로 구성된 클래스
<<exception>> : 예외 정의
<<constructor>> : 생성자 역할 수행
클래스 다이어그램
클래스 : 객체들의 집합
속성 : 특성에 해당하는 인스턴스가 보유할 수 있는 값
연산 : 연관된 행위를 호출하는데 요구하는 제약사항들 명시
접근 : 클래스에 접근할 수 있는 정도, - private + public #protectd ~default
클래스간 관계
- 연관 관계(Association) : 2개 이상의 사물이 서로 관련된 상태 1 ㅡㅡㅡㅡ 1....n
- 집합 관계(Aggregation) : 하나의 객체에 여러 개의 독립적인 객체들이 구성 ◇
- 포함(Composition) 관계 : 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계 ◆
- 일반화 관계(Generalization) : 일반적인 개념을 부모, 구체적인 개념을 자식 ⍋
- 의존 관계(Dependency) : 사물 사이에 서로 연관은 있으나 필요에 의해 서로에게 짧은 시간 동안만 연관을 유지하는 관계, 변화가 영향을 미침, (이용자) ∙∙∙▶︎ (사물)
- 실체화(Realization) 관계 : 사물이 할 수 있거나 해야하는 기능, 서로를 그룹화 할 수 있는 관계, 비행기, 새 ∙∙∙▹ 날 수 있다
시퀀스 다이어그램 : 액터, 객체, 생명선, 활성화, 메시지
패키지 다이어그램 : 패키지, 의존 관계
활동 다이어그램 : 시작노드 ●, 전이, 액션/액티비티 ◻︎, 종료노드 ⦿, 조건(판단)노드 ◇, 병합노드 ◇, 포크 노드 ----, 조인 노드, 스윔레인
상태 다이어그램 : 상태, 시작 상태, 종료 상태, 전이, 이벤트, 전이 조건
커뮤니케이션 다이어그램 : 액터, 객체, 링크, 메시지
컴포넌트 다이어그램 : 컴포넌트, 인터페이스, 의존 관계
UI 시나리오 문서 작성 요건
완전성(Complete) : 누락이 없어야 하고 상세하게 기술, 사용자 태스크에 초점
일관성(Consistent) : 목표, 사용자의 요구사항이 일관성이 있어야함, UI 스타일도 일관적
이해성(Understandable) : 처음 접하는 사람도 이해하기 쉽도록 구성, 어려운 용어는 사용X
가독성(Readable) : 쉽게 읽을 수 있어야 하며 표준화된 템플릿 사용
추적 용이성(Traceable) : 변경 사항들에대한 추적이 쉬워야함
수정 용이성(Modifiable) : 쉽게 변경 가능해야하고 개선 사항을 시나리오에 쉽게 반영
화면 설계 도구 : 파워 목업, 발사믹 목업, 카카오 오븐
Mockup : 실제 제품이 나오기 전 만드는 모형