30. 사용자 인터페이스(UI)의 특징

사용자의 만족도에 가장 큰 영향을 미치는 요소, 변경이 많음

사용자 중심으로 설계되어 사용자 중심 상호작용이 되도록 함

수행 결과의 오류를 줄임

사용자의 막연한 작업에 대해 구체적 방법 제시

 

31. UI 의 구분

  • CLI(Command Line Interface): 명령, 출력이 텍스트 형태
  • GUI(Graphic User Interface): 아이콘이나 메뉴를 마우스로 클릭하여 작업 수행 형태
  • NUI(Natural User Interface): 사용자의 말이나 행동으로 조작 형태
  • VUI(Voice User Interface): 사람의 음성을 기기 조작 형태
  • OUI(Organic User Interface): 모든 사물과 사용자 간의 상호작용-> 사물인터넷, 가상현실, 증강현실, 혼합현실 등과 함께 대두되고 있음

 

32. UI 의 기본 원칙

유유학직!!ㅎㅎ

  • 유연성: 요구사항 최대한 수용, 실수 최소화
  • 유효성: 목적 정확하고 완벽하게 달성
  • 학습성: 누구나 쉽게 익힘
  • 직관성: 누구나 쉽게 이해

 

33. UI 의 설계 지침

  • 사용자 중심: 사용자 편의 위해 실사용자에 대한 이해가 바탕이 되어야 함
  • 사용성: 얼마나 빠르고 쉽게 이해
  • 심미성: 그래픽적 완성도
  • 오류 발생 해결: 오류 발생 쉽게 인지

 

35. UI 설계 도구

UI 설계 도구? 화면 구조나 배치 등을 설계 시 사용하는 도구

 

종류

  • 와이어프레임(Wireframe): 기획 단계의 초기에 제작, 개발자나 디자이너 간 진행 상태 공유 위함-> 손그림, PPT, 일러스트, 포토샵 등
  • 목업(Mockup): 와이어프레임보다 좀 더 실제 화면과 유사하게 만듬. 실제로 구현은 x -> 발사믹 목업 등
  • 스토리보드(StoryBoard): 와이어프레임에 콘텐츠 설명, 페이지 간 이동흐름 등을 추가 -> Axure 등
  • 프로토타입(Prototype): 실제 구현된 것처럼 테스트 가능 동적 모형
  • 유스케이스(Usecase): 사용자 측면에서의 요구사항 기술

 

36. 품질 요구사항

소프트웨어의 기능, 성능, 만족도 등 요구사항이 얼마나 충족되는가를 나타냄

 

ISO/IEC? International Organization for Standardization(국제 표준화 기구)/International Electrotechnical Commission(국제 전기 기술 위원회)

ISO/IEC 9126: SW 품질 특성과 평가를 위한 표준 지침

ISO/IEC 25010: 9126을 개정해서 만듬

ISO/IEC 12119: 9126을 준수한 품질 표준, 테스트 절차 포함

ISO/IEC 14598: 개발자, 구매자, 평가자 별로 제품 평가 활동을 규정

 

이기신사유효..ㅎ (이기적인 신사가 유효해..)

  • 이식성(Portability): 다른 환경에서도 얼마나 쉽게 적용할 수 있는지?
  • 기능성(Functionality): 요구사항을 정확하게 만족하는지?
  • 신뢰성(Reliability): 일관되게 기능을 오류 없이 수행할 수 있는지?
  • 사용성(Usability): 컴퓨터 상 발생하는 행위에 대해 사용자가 정확하게 이해하고 다시 사용하고 싶은지?
  • 유지보수성( Maintainability): 개선하거나 확장할 수 있는지?
  • 효율성(Efficiency(: 사용자 요구하는 기능을 할당된 시간동안 한정된 자원으로 얼마나 빨리 처리?

 

37. UI 요소

체크박스: 여러 선택지 중 1개 이상 선택

라디오버튼: 하나만 선택

텍스트박스: 사용자가 직접 입력

콤보박스: 이미 지정된 목록 상자에 사용자가 직접 입력 가능

목록상자: 목록 표시하지만 입력x

 

38. 상위 설계와 하위 설계

상위 설계

=아키텍쳐 설계, 예비 설계

시스템의 전체적인 구조

구조, DB, 인터페이스

 

하위 설계

=모듈 설계, 상세 설계

시스템의 내부 구조 및 행위

컴포넌트, 자료 구조, 알고리즘

 

39. 소프트웨어 아키텍쳐 설계의 기본 원리

  • 모듈화(Modularity): 성능을 향상시키거나 재사용, 유지보수가 용이하도록 기능들을 모듈단위로 나눔
  • 추상화(Abstraction): 전체적이고 포괄적인 개념을 세분화하여 구체화 -> 과정 추상화, 데이터 추상화, 제어 추상화
  • 단계적 분해(Stepwise Refinement): 하향식 설계 전략
  • 정보 은닉(Information Hiding): 한 모듈 내부에 포함된 절차와 자료가 숨겨져서 다른 모듈이 접근하지 못하도록 함

 

43. 파이프-필터 패턴

데이터 스트림 각 절차를 필터 컴포넌트로 캡슐화하여 파이프를 통해 데이터를 전송하는 패턴

 

*데이터 스트림? 정해진 포맷 사용하여 한 장치에서 다른 장치로 보내지는 데이터의 흐름

*필터 컴포넌트: 재사용성, 확장 용이, 재배치하여 다양한 파이프라인 구축 가능

 

데이터 변환, 버퍼링, 동기화 등에 주로 사용됨, 주로 UNIX의 쉘(Shell)

 

44. 모델-뷰-컨트롤러 패턴

서브시스템을 3개의 부분으로 구조화하는 패턴,

  • 모델(Model): 핵심기능과 데이터 저장
  • 뷰(View): 사용자에게 정보를 표시
  • 컨트롤러(Controller): 요청 명령을 보냄

45. 기타 패턴

  • 마스터-슬레이브 패턴: 마스터에서 슬레이브로 분할, 슬레이브의 결과물을 다시 돌려받음-> 병렬 컴퓨팅 시스템
  • 브로커 패턴: 사용자가 원하는 정보를 브로커에 요청하면 연결해줌-> 분산 컴퓨팅 환경
  • 피어-투-피어 패턴: 피어를 하나의 컴포넌트로 간주, 피어는 사용자가 될 수도, 정보를 제공하는 서버가 될 수도
  • 이벤트-버스 패턴: 소스가 특정 채널에 이벤트를 발생하면 해당 채널의 구독자에게 메시지 줌
  • 블랙보드 패턴: 모든 컴포넌트들이 블랙보드에 접근가능, 검색을 통해 블랙보드에서 원하는 정보 찾음. 결정가능한 해결전략이 없을 때 유용, -> 음성인식, 차량식별, 신호 해석 등 활용
  • 인터프리터 패턴: 코드의 각 라인을 수행하는 방법을 지정

46. 객체

데이터와 함수를 캡슐화한 하나의 소프트웨어 모듈

 

데이터= 속성(Attribute), 상태, 변수, 상수, 자료 구조

함수= 메소드(Method), 서비스, 동작(Operation), 연산

 

* 객체의 특성

독립적으로 식별가능 이름 가짐

상태는 시간에 따라 변함

객체 간 상호연관성에 의한 관계 형성

객체가 반응할 수 있는 메시지의 집합= 행위

 

47. 클래스

공통된 속성과 연산을 갖는 객체를 하나로 묶음. 객체의 타입을 의미

객체지향 프로그램에서 데이터를 추상화하는 단위

각각의 객체를 인스턴스-> 클래스로부터 새로운 객체를 생성하는 것을 인스턴스화(Instantiation)

 

48. 캡슐화 (Encapsulation)

데이터와 함수를 하나로 묶는 것

캡슐화된 객체는 인터페이스를 제외하고 정보 은닉됨

: 접근 제한적, 외부 모듈 변경으로 인한 파급효과 적음-> 객체 간 결합도 낮아져, 재사용 용이

 

49. 상속 (Inheritance)

이미 정의된 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것

하위클래스는 그에 더해서 첨가해서 사용가능

 

50. 다형성(Polymorphism)

메시지에 의해 객체가 연산을 수행하게 될 때, 하나의 메시지에 대해 객체가 할 수 있는 고유한 특성으로 응답하는 능력

 

하나의 함수나 연산자가 다른 클래스에 속한 인스턴스를 같은 인스턴스처럼 수행할 수 있도록 하는 것.

오버로딩: 메소드명은 같지만 인수를 받는 자료형과 개수에 따라 기능 달라져

오버라이딩(=메소드 재정의): 상위클래스에서 정의한 메소드 명은 같지만 하위 클래스에서 실행코드를 달리하여 재정의

 

 51. 연관성 (Relationship)

두 개 이상의 객체들이 상호 참조하는 관계

 

종류

  • is member of 연관화
  • is instance of 분류화
  • is part of 집단화
  • is a 일반화 + 특수화/상세화

 

52. 객체지향 분석의 방법론

  • 럼바우(Rumbaugh): 객체모델, 동적모델, 기능모델로 나누어 수행
  • 부치(Booch): 미시적과 거시적 개발 프로세스를 모두 사용
  • Jacobson: Usecase를 강조
  • Coad와 Yourdon: E-R 다이어그램 사용
  • Wirfs-Brock: 분석과 설계 간 구분이 x, 연속적으로 수행 

 

53. 럼바우의 분석 기법

=객체 모델링 기법 (OMT, Object Modeling Technique)

객체 모델링 -> 동적 모델링 -> 기능 모델링 순으로

 

  • 객체 모델링: =정보 모델링, 속성과 연산 식별 및 객체 간 관계를 규정해서 다이어그램으로 표시
  • 동적 모델링: 상태도를 이용해 시간의 흐름에 따른 동적 행위 표현
  • 기능 모델링: DFD를 이용해 프로세스들 간 자료흐름 중심 처리 과정

 

 

'CS 공부 > 정처기 핵심: 타이핑' 카테고리의 다른 글

이미 딴 정처기를 왜 다시 공부?  (0) 2024.04.16
구조패턴~Queue  (0) 2024.04.16
객체지향 설계 원칙 ~ 생성패턴  (0) 2024.04.13
HIPO~다이어그램  (0) 2024.04.08
DBMS~DD  (0) 2024.04.07

+ Recent posts