개발공부/정보처리기사

[정보처리기사 실기] 2장 화면 설계

햄❤️ 2023. 4. 14. 01:13
728x90

정보처리기사 수제비 2022 실기 문제집을 요약하며 공부했습니다! 😁 

 

2-1 UI 요구사항 확인

📌  UI 개념 및 유형

- UI: 사용자와 시스템 사이에서 소통할 수 있도록 고안된 물리적, 가상의 매개체. 정보 기기나 소프트웨어 화면 등에서 사람이 접하게 되는 화면

- UI 유형

  • CLI(Command Line Interface): 명령어를 텍스트로 입력하여 조작하는 사용자 인터페이스 
  • GUI(Graphic User Interface): 그래픽 환경을 기반으로 한 마우스나 전자펜을 이용하는 사용자 인터페이스 
  • NUI(Natural User Interface): 키보드나 마우스 없이 신체 부위를 이용하는 사용자 인터페이스 
  • OUI(Organic User Interface): 현실에 존재하는 모든 사물이 입출력장치로 변화할 수 있는 사용자 인터페이스 

 

📌  UI 설계 원칙, 설계 지침

✏️ UI 설계 원칙

  • 직관성(Intuitiveness) : 누구나 쉽게 이해하고, 쉽게 사용할 수 있어야 한다.
  • 유효성(Efficiency) : 정확하고 완벽하게 사용자의 목표가 달성 될 수 있도록 제작한다.
  • 학습성(Learnability) : 모두가 쉽게 배우고 사용할 수 있어야 한다.
  • 유연성(Flexibility) : 사용자의 요구사항(인터랙션)을 최대한 포용하고, 실수를 방지할 수 있도록 제작

✏️ UI 설계 지침

  • 사용자 중심:사용자가 이해하기 쉽고 편하게 사용할 수 있는 환경 제공
  • 일관성 : 사용자가 기억하기 쉽고 빠르게 습득할 수 있도록 설계
  • 단순성 : 조작 방법은 가장 간단하게 작동되도록 해 인지적 부담 최소화
  • 결과 예측 가능: 작동 시킬 기능만 보고도 예측이 가능해야 함
  • 가시성 : 주요 기능을 메인 화면에 노출해 쉬운 조작이 가능해야 함
  • 표준화: 디자인을 표준화하여 이후 쉽게 사용 가능해야 함
  • 접근성: 다양한 계층을 고려해야 함
  • 명확성 : 사용자가 개념적으로 쉽게 인지해야 함
  • 오류 발생 해결: 사용자가 오류에 대한 상황을 정확하게 인지할 수 있어야 함

 

📌  UI 품질 요구사항

  1. 기능성(Functionality): 실제 수행결과와 품질 요구사항의 차이 분석 -> 적절성, 정밀성, 상호 운용성, 보안성, 호환성
  2. 신뢰성(Reliability): 의도 기능을 수행함을 보증함 -> 성숙성, 고장 허용성, 회복성
  3. 사용성(Usability): 사용자와 컴퓨터 사이에 발생하는 어떠한 행위를 정확하고 쉽게 인지할 수 있음 -> 이해성, 학습성, 운용성
  4. 효율성(Efficiency): 할당된 시간에 한정된 자원으로 얼마나 빨리 처리하는가 -> 시간 효율성, 자원 효율성
  5. 유지보수성(Maintainability): 요구사항을 개선하고 확장하는데 얼마나 용이한지 -> 분석성, 변경성, 안정성, 시험성
  6. 이식성(Portability): 다른 플랫폼(OS)에도 많은 추가 작업 없이 얼마나 쉽게 적용 가능한가 -> 적용성, 설치성, 대체성

 

📌  UI  개발을 위한 주요 기법

  • 3C 분석: Customer, Company, Competitor를 비교하고 분석하여 경쟁에서 어떻게 이길지 분석
  • SWOT 분석: 강점, 약점, 기회, 위협 요인 규정하고 토대로 경영 전략 수립
  • 시나리오 플래닝: 불확실성이 높은 상황 변화를 사전에 예측하고 다양한 시나리오를 설계하는 방법
  • 사용성 테스트: 사용자가 직접 제품을 사용하면서 미리 작성된 시나리오에 맞추어 과제 수행 후 질문에 답하는 테스트
  • 워크숍: 소집단 정도의 인원으로 특정 문제나 과제에 대한 새로운 지식, 기술, 아이디어를 교환하고 검토하는 연구회 및 세미나

 

📌  UI  스토리보드/프로토타입

- 스토리보드: 정책, 프로세스, 와이어 프레임, 콘텐츠의 구성, 와이어프레임, 데이터베이스 연동 등 서비스 구축을 위한 대부분의 정보가 수록된 문서로 디자이너와 개발자가 최종적으로 참고하는 산출 문서

- 와이어프레임:  서비스의 간략한 흐름을 공유하기 위해 화면 단위의 레이아웃을 설계하는 작업

- 프로토타입: 정적인 화면으로 설계된 와이어프레임 또는 스토리보드에 동적 효과를 적용하여 실제 구현된 것처럼 시뮬레이션 할 수 있는 모형(시제품) 

 


 

2-2. UI 설계

 

📌  UML 개념 및 구성요소

- UML(Unified Modeling Language): 객체지향 소프트웨어 개발 과정에서 산출물을 명세화, 시각화, 문서화 할 때 사용되는 모델링 기술과 방법론을 통합해서 만든 표준화된 범용 모델링 언어

- 구성요소

  • 사물(Things): 주제, 명사, 동사
  • 관계(Relationships): 사물과 사물을 연결하여 관계를 표현하는 요소
  • 다이어그램(Diagrams): 사물과 관계를 모아 그림으로 표현한 형태

 

📌  UML 다이어그램

크게 구조적(정적) 다이어그램, 행위적(동적) 다이어그램으로 나뉜다. 

  • 구조적 다이어그램(Structural / Static Diagram)
    • 클래스: 클래스의 속성 및 연산과 클래스 간 정적 관계를 표현한 다이어그램
    • 객체: 클래스에 속한 사물, 즉 인스턴스를 특정 시점의 객체와 객체 사이로 표현한 다이어그램
    • 컴포넌트: 컴포넌트와 그들 사이의 의존 관계를 나타낸 다이어그램 (구현 단계에서 사용)
    • 배치(Deployment): 컴포넌트 사이의 종속성을 표현, 결과물, 컴포넌트 등 물리적 요소들의 위치를 표현하는 다이어그램 (구현 단계에서 사용)
    • 복합적 구조(Composite Structure):  클래스나 컴포넌트가 복합 구조를 갖는 경우 그 내부 구조를 표현하는 다이어그램
    • 패키지(Package):  유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현한 다이어그램
  • 행위적 다이어그램(Behavioral / Dynamic Diagram)
    • 유스케이스: 시스템이 제공하고 있는 기능 관련된 외부 요소를 사용자의 관점에서 표현
    • 시퀀스: 객체 간 상호작용을 시간적 개념을 중심으로 메시지 흐름으로 표현
    • 커뮤니케이션: 동작에 참여하는 객체들이 주고받는 메시지를 표현, 객체 간의 연관까지 표현
    • 상태: 다른 객체와의 상호작용에 따라 상태가 어떻게 변화하는지 표현
    • 활동: 어떤 기능을 수행하는지를 객체의 처리 로직, 조건에 따른 처리의 흐름을 순서대로 표현
    • 타이밍: 객체 상태 변화와 시간 제약을 명시적으로 표현

 

📌  UML 유형

✏️ 1. 클래스 다이어그램

- 객체지향 모델링 시 클래스의 속성 및 연산과 클래스 간 정적인 관계를 표현한 다이어그램

- 구성요소: 클래스, 속성, 연산(메서드), 접근제어자( - (클래스 내부 접근만 허용 private) / + (클래스 외부 접근을 허용 public) / # (동일 패키지/파생 클래스에서 접근 가능 protected) / ~ (동일 패키지 클래스에서 접근 가능 default) )

- 클래스간의 관계  🌟

  1. 연관(Association) 관계: 클래스가 서로 개념적으로 연결. 사물 사이를 실선으로 표현
  2. 의존(Dependency) 관계: 하나의 클래스가 또 다른 클래스를 사용하는 관계. 영향을 받는 사물에게 점선으로 화살표 연결
  3. 일반화(Generalization) 관계: 상속관계, 부모와 자식으로 구성된 관계. 부모 방향으로 속이 빈 화살표로 연결
  4. 실체화(Realization) 관계:  추상 클래스나 인터페이스를 상속받아 자식 클래스가 추상 클래스를 구현할 때 사용. 점선
  5. 포함(Composition) 관계:  = 복합관계. 집합관계보다 더 강하다. 포함하는쪽(상위)으로 속이 채워진 마름모 연결
  6. 집합(Aggregation) 관계: 하나의 객체에 여러개의 독립적인 객체들이 구성. 포함하는 쪽으로 속이 빈 마름모 연결

 

✏️ 2. 유스케이스 다이어그램

 - 시스템이 제공하고 있는 기능 및 그와 관련된 외부 요소를 사용자의 관점에서 표현하는 다이어그램

- 구성요소

  • 유스케이스: 시스템이 제공해야하는 서비스, 기능
  • 액터: 사용자가 시스템에 대해 수행하는 역할. 시스템과 상호작용하는 사람 또는 사물
  • 시스템: 전체 시스템의 영역
  • 시나리오: 발생되는 이벤트의 흐름 
  • 이벤트의 흐름: 사람, 시스템, 하드웨어, 시간의 흐름에 의해 시작

- 관계

  1. 포함(Include) 관계: 유스케이스를 수행할 떄 다른 유스케이스가 반드시 수행되는 관계  <<include>>
  2. 확장(Extend) 관계: 특정 조건에서 한 유스케이스로만 확장되는 관계 <<extend>>
  3. 일반화(Generalization) 관계: 추상적인 액터와 좀 더 구체적인 액터 사이에 맺어주는 관계 (속이 빈 삼각형 화살표를 실선으로 연결)

 

✏️ 3. 시퀀스 다이어그램

- 객체 간 상호작용을 메시지 흐름으로 표현한 다이어그램

- 구성요소: 객체, 생명선, 실행, 메시지

✏️ 4. 패키지 다이어그램

 - 서로 다른 패키지들 사이의 의존 관계를 표현

- 구성요소: 패키지, 의존관계 (점선)

✏️ 5. 활동 다이어그램

- 시스템이 어떤 기능을 수행하는지를 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서대로 표현

- 구성요소: 시작점, 전이, 액션, 종료점, 조건노드,  병합노드,  포크노드,  조인노드, 구획면

 

✏️ 6. 상태 다이어그램

 - 하나의 객체가 자신이 속한 클래스들의 상태 변화 혹은 다른 객체와의 상호 작용에 따라 상태가 어떻게 변화하는지 표현

- 구성요소: 상태,  시작상태,  종료상태,  전이,  이벤트,  전이조건

✏️ 7. 커뮤니케이션 다이어그램

 - 메시지와 객체간의 연관까지 표현하는 다이어그램. 메시지를 주고받으며 시간의 흐름에 따라 상호 작용하는 과정을 표현

- 구성요소: 액터,  객체,  링크,  메시지

✏️ 8. 컴포넌트 다이어그램

 - 물리적인 컴포넌트와 그들 사이의 의존관계를 표현

- 구성요소: 컴포넌트, 인터페이스, 의존관계

 

 

📌  UI 시나리오 문서의 작성 요건

- 완전성, 일관성, 이해성, 가독성, 추적 용이성, 수정 용이성

 

728x90