3. 소프트웨어 설계

  1. 사물[Things] : 구조(개념, 물리적 요소) / 행동 / 그룹 / 주해(부가적 설명, 제약 조건)

  2. 관계[Relationship]

    연관 관계[Association] 2개 이상의 사물이 서로 관련
    집합 관계[Aggregation] 하나의 사물이 다른 사물에 포함(전체-부분 관계)
    포함 관계[Composition] 집합 관계 내 한 사물의 변화가 다른 사물에게 영향
    일반화 관계[Generalization] 한 사물이 다른 사물에 비해 일반/구체적인지 표현
    (한 클래스가 다른 클래스를 포함하는 상위 개념일 때)
    의존 관계[Dependency] 사물 간 서로에게 영향을 주는 관계
    (한 클래스가 다른 클래스의 기능을 사용할 때)
    실체화 관계[Realization] 한 객체가 다른 객체에게 오퍼레이션을 수행하도록 지정 / 서로를 그룹화할 수 있는 관계
  3. 다이어그램[Diagram]

    | 구조, 정적 다이어그램

    (클객컴배복패) 클래스[Class] 클래스 사이의 관계 및 속성 표현
    객체[Object] 인스턴스를 객체와 객체 사이의 관계로 표현
    컴포넌트[Component] 구현 모델인 컴포넌트 간의 관계 표현
    배치[Deployment] 물리적 요소(HW/SW)의 위치/구조 표현
    복합체 구조[Composite Structure] 클래스 및 컴포넌트의 복합체 내부 구조 표현
    패키지[Package] UML의 다양한 모델요소를 그룹화하여 묶음
    각 패키지 간 의존관계[dependency]를 표현
    행위, 동적
    다이어그램
    (유시커상활타상) 유스케이스[Use case] 사용자의 요구를 분석(사용자 관점)
    → 사용자(Actor) + 사용 사례(Use Case)
    시퀸스[Sequence] 시스템/객체들이 주고받는 메세지 표현
    → 구성항목: 액터/객체/생명선/메시지 제어 삼각형
    커뮤니케이션[Communication] 객체들이 주고받는 메시지와 객체 간의 연관관계까지 표현
    상태[State] 다른 객체와의 상호작용에 따라 상태가 어떻게 변하는지 표현
    활동[Activity] 객체의 처리 로직 및 조건에 따른 처리의 흐름을 순서에 따라 표현
    타이밍[Timing] 객체 상태 변화와 시간 제약 명시적으로 표현
    상호작용 개요[Interaction Overview] 상호작용 다이어그램 간 제어 흐름 표현

UI 설계[User Interface] : 직관성, 유효성(사용자 목적 달성), 학습성, 유연성