01 UI 요구사항 확인
1. UI
- 사용자와 시스템 사이에서 의사소통할 수 있도록 고안된 물리적, 가상의 맥개체
- 유형
- CLI: 정적인 텍스트 기반
- GUI: 그래픽 반응 기반
- NUI: 직관적 사용자 반응 기반. 신체 부위, 음성 이용 (natural user interface)
- OUI: 유기적 상호작용 기반. 현실의 모든 사물이 입출력장치로 변화할 수 있는. (organic)
- UI 설계 원칙 *
1) 직관성: 누구나 쉽게 이해하고 사용
2) 유효성: 정확하게 사용자의 목표 달성
3) 학습성: 쉽게 배우고 사용
4) 유연성: 사용자의 인터랙션을 최대한 포용하고, 실수 방지
- UI 품질 요구사항
: 기능성, 신뢰성, 사용성, 효율성, 유지보수성, 이식성
02 UI 설계
1. UML
- 모델링 기술과 방법론을 통합해 만든 표준화된 범용 모델링 언어(Unified Modeling Language)
- 특징: 가시화, 구축, 명세화, 문서화
- 구성 요소: 사물, 관계, 다이어그램
- UML 다이어그램
1) 정적(구조적) 다이어그램
: 클래스, 객체, 컴포넌트, 배치, 복합체 구조, 패키지
2) 동적(행위적) 다이어그램
: 유스케이스, 시퀀스, 커뮤니케이션, 상태, 활동, 타이밍
- 스테레오 타입
: 기존의 UML 요소를 그대로 사용하지만 내부 의미는 다른 목적으로 사용하도록 확장
- <<include>>: 하나의 유스케이스가 다른 유스케이스를 실행
- <<extend>>: 하나의 유스케이스가 다른 유스케이스를 실행할 수도 있고, 않을 수도 있음
- <<interface>>: 모든 메서드가 추상 메서드
- <<entity>>: 기억 장치에 저장되어야 할 정보 표현
- <<boundary>>: 시스템과 외부 액터와의 상호작용
- <<control>>: 시스템이 제공하는 기능의 로직 및 제어
2. UML 유형
1) 클래스 다이어그램
- 개념: 클래스의 속성 및 연산과 클래스 간 정적인 관계를 표현
- 구성 요소: 클래스, 속성, 연산, 접근 제어자
- 클래스 간 관계
(1) 연관: 여러 사물이 서로 개념적으로 연결. 양방향일 경우 화살표 생략하고 실선. 다중표현ex) 1..*
(2) 집합: 독립. 하나의 사물이 다른 사물에 포함됨. [엔진]ㅡ◇[차]
(3) 복합(포함): 종속. 포함하는 사물의 변화가 포함되는 사물에 영향. [피스톤]ㅡ◆[엔진]
(4) 일반화: 한 사물이 다른 사물에 비해 더 일반적/구체적. [택시]ㅡ▷[차]
(5) 의존: 영향을 주는 짧은 시간에만 연관을 유지. [수업]·····>[교수] (점선 화살표)
(6) 실체화: 추상 클래스나 인터페이스를 상속받아 자식클래스가 추상 메서드를 구현할 때.
2) 유스케이스 다이어그램
- 개념: 기능, 외부 요소를 사용자의 관점에서 표현
- 구성 요소: 유스케이스, 액터, 시스템, 시나리오, 이벤트의 흐름
- 관계: 포함, 확장, 일반화
3) 시퀀스 다이어그램
- 개념: 객체 간 상호작용을 메시지 흐름으로 표현. 동적 상호작용을 시간 개념 중심으로 모델링.
- 구성 요소: 객체(□), 생명선(---), 실행(--ㅁ--), 메시지(->)
4) 패키지 다이어그램
- 개념: 서로 다른 패키지들 사이의 의존 관계를 표현
- 구성 요소: 패키지(폴더 모양), 의존관계(-->)
5) 활동 다이어그램
- 개념: 처리의 흐름을 단계적으로 표현
- 구성 요소: 시작점(●), 전이(->), 액션, 종료점(◎), 조건노드, 병합노드, 포크노드, 조인노드, 구획면
6) 상태 다이어그램
- 개념: 클래스의 상태변화 or 다른 객체와의 상호작용에 따른 객체의 상태변화를 표현
- 구성 요소: 상태, 시작 상태, 종료 상태, 전이, 이벤트, 전이 조건
7) 커뮤니케이션 다이어그램
- 개념: 객체들이 주고받는 메시지, 객체간의 연관 표현
- 구성 요소: 액터, 객체, 링크, 메시지
8) 컴포넌트 다이어그램
- 개념: 물리적인 컴포넌트와 그들 사이의 의존 관계를 표현. 실질적 프로그래밍 작업에 사용.
- 구성 요소: 컴포넌트, 인터페이스, 의존 관계
'기본 지식' 카테고리의 다른 글
물리 데이터 저장소 (0) | 2021.07.01 |
---|---|
논리 데이터 저장소 (0) | 2021.07.01 |
요구사항 (0) | 2021.07.01 |
현행 시스템 분석 (0) | 2021.06.29 |
소프트웨어 개발방법론 (0) | 2021.06.29 |
댓글