본문 바로가기
공부/정보처리기사

[5] UI 설계

by Lagooni 2021. 9. 28.

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

UML특징 (가/구/명/문)

  • 가시화 언어: 개념 모델 작성 시 오류가 적고 의사소통이 용이
  • 구축 언어: 다양한 프로그래밍 언어로 실행 시스템의 예측 가능, UML을 소스코드로 변환하여 구축가능, 역 변환하여 역공학 가능
  • 명세화 언어: 정확한 모델 제시, 완전한 모델 작성 가능
  • 문서화 언어: 시스템에 대한 평가 및 의사소통의 문서

UML구성요소 (사/관/다)

사물(Things): 추상적인 개념으로, 주제를 나타내는 요소; 단어 관점에서 '명사' 또는 '동사'를 의미

관계(Relationships): 사물의 의미를 확장하고 명확히 하는 요소; 단어 관점에서 '형용사' 또는 '부사'를 의미

다이어그램(Diagram): 사물과 관계를 모아 그림으로 표현한 형태; 형식과 목적에 따라 9가지로 정의

UML다이어그램은 구분에 따라 구조적(정적), 행위적(동적) 다이어그램으로 구분된다.

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

UML 확장 모델의 스테레오 타입(Stereotype): UML의 스테레오 타입은 UML의 기본적 요소 이외의 새로운 요소를 만들어 내기 위한 확장 메커니즘이다; UML스테레오 타입은 '<<>>'(길러멧; Guillemet)기호를 사용하여 표기한다.

유형 설명
<<include>> 하나의 유스케이스가 어떤 시점에 반드시 다른 유스케이스를 실행하는 포함 관계
<<extend>> 하나의 유스케이스가 어떤 시점에 다른 유스케이스를 실행할 수도 있고 아닐 수도 있는 확장 관계
<<interface>> 모든 메서드가 추상 메서드이며 바로 인스턴스를 만들 수 없는 클래스로 추상메서드와 상수만으로 구성된 클래스
<<entity>> 일반적으로 정보 또는 오래 지속되는 연관된 행위를 형상화하는 클래스로 유스케이스 처리 흐름이 수행되는 과정에서 기억 장치에 저장 되어야 할 정보를 표현하는 클래스
<<boundary>> 시스템과 외부 액터와의 상호작용을 담당하는 클래스
<<control>> 시스템이 제공하는 기능의 로직 및 제어를 담당하는 클래스

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

클래스 다이어그램 구성요소

  • 클래스(Class): 공통의 속성, 연산관계, 의미를 공유하는 객체들의 집합
  • 속성(Attribute): 클래스의 구조적 특성에 이름을 붙인 것으로 특성에 해당하는 인스턴스가 보유할 수 있는 값의 범위를 기술
  • 연산(Operation), 메서드: 이름, 타입, 매개변수들과 연관된 행위를 호출하는데 요구되는 제약사항들을 명시하는 클래스의 행위적 특징; 객체에 요청하여 행동으로 영향을 줄 수 있는 서비스
  • 접근 제어자(Access Modifier): 클래스에 접근할 수 있는 정도를 표현

UML의 관계 (연/집/복 일/의/실)

  • 연관 관계
    • 클래스가 서로 개념적으로 연결된 선
    • 사물 사이를 실선으로 연결하여 표현; 방향성은 화살표로 표현; 서로에게 영향을 주는 양방향 관계의 경우 화살표 생략
  • 집합관계
    • 하나의 객체에 여러 개 의 독립적인 객체들이 구성되는 관계
    • 포함 되는 쪽에서 포함 하는 쪽으로 속이 빈 마름모를 연결
  • 복합관계
    • 영구적이고 집합관계보다 더 강한 관계로 구성
    • 포함되는 쪽에서 포함 하는 쪽으로 속이 채워진 마름모를 연결
  • 일반화 관계
    • 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지를 표현
    • 일반적인 개념을 부모, 구체적인 개념을 자식
    • 자식 사물에서  부모 사물 쪽으로 속이 빈 화살표를 연결하여 표현
    • 상속 관계라고 함
  • 의존 관계
    • 하나의 클래스가 또 다른 클래스를 사용하는 관계
    • 다른 클래스의 멤버 함수 사용
    • 사물 사이에 서로 연관은 있으나 필요에 따라 서로에게 영향을 주는 짧은 시간 동안만 유지하는 관계 (예: 교수 <- 수업)
    • 영향을 주는 사물이 영향을 받는 사물쪽으로 점선 화살표를 연결하여 표현
  • 실체화 관계
    • 추상클래스나 인터페이스를 상속받아 자식클래스가 추상 메서드를 구현할 때 사용
    • 사물이 할 수 있거나 해야 하는 기능으로 서로를 그룹화할 수 있는 관계를 표현

추상 클래스: 객체 인스턴스를 생성하지 않고 단지 유사 클래스의 공통된 특징을 정의하고 하나 이상의 추상 메서드와 일반 필드 및 일반 메서드를 포함하는 클래스; 동일한 부모를 가지는 클래스를 묶는 개념으로 상속을 받아서 기능을 확장시키는 것이 목적

인터페이스: 기능(function)을 모아놓은 클래스로 추상메서드와 상수만을 포함하는 추상 클래스; 구현하는 모든 클래스에 대해 특정한 메서드가 반드시 존재하도록 강제하는 역할

유스케이스 다이어그램(Usecase Diagram): 시스템이 제공하고 있는 기능 및 그와 관련된 외부 요소를 사용자의 관점에서 표현하는 다이어그램이다.

유스케이스 다이어그램 구성요소

  • 유스케이스: 시스템이 제공해야하는 서비스, 기능; 액터가 시스템을 통해 수행하는 일련의 행위
  • 액터(Actor): 사용자가 시스템에 대해 수행하는 역할; 이벤트 흐름을 시작하게 하는 객체
  • 시스템: 전체 시스템의 영역을 표현
  • 시나리오: 발생되는 이벤트의 흐름
  • 이벤트의 흐름: 사람, 시스템, 하드웨어, 시간의 흐름에 의해 시작

유스케이스 다이어그램의 관계

  • 포함(Include)관계
    • 유스케이스를 수행할 때 다른 유스케이스가 반드시 수행되는 관계
  • 확장(Extend)관계
    • 포함관계처럼 어러 유스케이스에 걸쳐 중복적으로 사용되지 않고 특정 조건에서 한 유스케이스로만 확장되는 관계
    • 특정 조건이 만족되는 상황에서만 확장 유스케이스의 이벤트 흐름이 발생
  • 일반화(Generalization)관계
    • 추상적인 액터와 좀 더 구체적인 액터 사이에 맺어주는 관계
    • 하위 액터나 유스케이스에서 상위 액터,유스케이스 쪽으로 속이 빈 삼각형 화살표를 실선으로 연결

시퀀스 다이어그램: 객체 간 상호작용을 메시지 흐름으로 표현한 다이어그램이다; 객체 간의 동적 상호작용을 시간적 개념을 중심으로 모델링하는 과정이다.

시퀀스 다이어그램 구성요소

  • 객체(Object), 생명선(Lifeline), 실행(Activation), 메시지(Message)

댓글