정보처리기사

[정처기 실기] 소프트웨어 설계 - (2) 요구사항 확인2

Churnobyl 2024. 4. 24. 15:48
728x90
반응형

 


Part1. 소프트웨어 설계

소프트웨어 설계 혹은 소프트웨어 디자인은 소프트웨어 문제 해결과 계획 과정이다.

 

2. 요구사항 확인 2

 

 


039. 유스케이스 다이어그램 (Use Case Diagram)

유스케이스 다이어그램

  • 유스케이스 다이어그램은 사용자와 다른 외부 시스템들이 개발될 시스템을 이용해 수행할 수 있는 기능을 사용자 관점에서 표현한 것이다.
  • 구성 요소
    • 시스템(System)
      • 시스템 내부의 유스케이스들을 사각형으로 묶어 시스템의 범위를 표현한 것
    • 액터(Actor)
      • 시스템과 상호작용을 하는 모든 외부 요소
      • 주로 사람이나 외부 시스템을 의미함
      • 사람 모양이나 Actor라는 이름을 붙여서 표현함
      • 주액터 - 시스템을 사용함으로써 이득을 얻는 대상으로 주로 사람에 해당됨
      • 부액터 - 주액터의 목적 달성을 위해 시스템에 서비스를 제공하는 외부 시스템으로 조직이나 기관이 될 수 있음
    • 유스케이스(Use Case)
      • 사용자가 보는 관점에서 시스템이 액터에게 제공하는 서비스나 기능을 표현한 것
      • 타원 안에 글씨로 나타냄
    • 관계(Relationship)
      • 유스케이스 다이어그램에서 관계는 액터와 유스케이스, 유스케이스와 유스케이스 사이에서 나타날 수 있음
      • 유스케이스에서 나타날 수 있는 관계 : 포함(Include) 관계, 확장(Extends) 관계, 일반화(Generalization) 관계

 


040. 유스케이스에서 나타날 수 있는 관계

유스케이스의 관계

  • 포함(Include) 관계
    • 두 개 이상의 유스케이스에 공통적으로 적용되는 기능을 별도로 분리하여 새로운 유스케이스로 만든 경우, 원래의 유스케이스와 새롭게 분리된 유스케이스와의 관계를 포함 관계라고 함
    • 원래의 유스케이스에서 새롭게 만든 포함되는 유스케이스 쪽으로 점선 화살표를 연결한 후 화살표 위에 ≪include≫라고 표기함
    • ex> 상품 주문, 배송 조회, 리뷰 작성 ----- ≪include≫------> 로그인
  • 확장(Extend) 관계
    • 유스케이스가 특정 조건에 부합되어 유스케이스의 기능이 확장될 때 원래의 유스케이스와 확장된 유스케이스와의 관계를 확장 관계라고 함
    • 확장될 유스케이스에서 원래의 유스케이스 쪽으로 점선 화살표를 연결한 후 화살표 위에 ≪extend≫라고 표기함
    • ex> 사진 업로드 ----- ≪extend≫ -----> 리뷰 작성

 

 


041. 활동 다이어그램 (Activity Diagram)

활동 다이어그램 예시

  • 활동 다이어그램사용자의 관점에서 시스템이 수행하는 기능을 처리 흐름에 따라 순서대로 표현한 것이다.
  • 구성 요소 
    활동 다이어그램 구성 요소
    • 액션(Action) / 액티비티(Activity)
      • 액션 - 더 이상 분해할 수 없는 단일 작업
      • 액티비티 - 몇 개의 액션으로 분리될 수 있는 작업
    • 시작 노드 (Start Node)
      • 액션이나 액티비티가 시작됨을 표현한 것
    • 종료 노드 (End Node)
      • 액티비티 안의 모든 흐름이 종료됨을 표현한 것
    • 조건(판단) 노드
      • 조건에 따라 제어의 흐름이 분리됨을 화살표가 나가는 마름모꼴로 표현한 것
      • 들어오는 제어 흐름은 한 개이고 나가는 제어 흐름은 여러 개임
    • 병합 노드
      • 여러 경로의 흐름이 하나로 합쳐짐을 화살표가 들어오는 마름모꼴로 표현한 것
      • 들어오는 제어 흐름은 여러 개이고 나가는 제어 흐름은 한 개임
    • 포크(Fork) 노드
      • 액티비티의 흐름이 분리되어 수행됨을 표현한 것
      • 들어오는 액티비티 흐름은 한 개이고 나가는 액티비티 흐름은 여러 개임
    • 조인(Join) 노드
      • 분리되어 수행되던 액티비티의 흐름이 다시 합쳐짐을 표현한 것
      • 들어오는 액티비티 흐름은 여러 개이고 나가는 액티비티 흐름은 한 개임
    • 스윔레인(Swim Lane)
      • 액티비티 수행을 담당하는 주체를 구분하는 선
      • 가로 또는 세로 실선을 그어 구분함

 

 


042. 클래스 다이어그램 (Class Diagram)

클래스 다이어그램

  • 클래스 다이어그램은 클래스와 클래스가 가지는 속성, 클래스 사이의 관계를 표현한 것이다.
  • 구성 요소
    • 클래스(Class)
      • 각각의 객체들이 갖는 속성과 오퍼레이션(동작)을 표현한 것
      • 일반적으로 3개의 구획(Compartment)로 나눠 클래스 이름, 속성, 오퍼레이션을 표기
      • 속성(Attribute) - 클래스의 상태나 정보를 표현
      • 오퍼레이션(Operation) - 클래스가 수행할 수 있는 동작으로, 함수(메소드)라고도 함
    • 제약조건
      • 속성에 입력될 값에 대한 제약조건이나 오퍼레이션 수행 전후에 지정해야 할 조건이 있다면 이를 쪽지 형태의 사각형에 적음
      • 클래스 안에 제약조건을 기술할 때는 중괄호 { }를 이용함
    • 관계
      • 관계는 클래스와 클래스 사이의 연관성을 표현함
      • 클래스 다이어그램에 표현하는 관계에는 연관 관계, 집합 관계, 포함 관계, 일반화 관계, 의존 관계가 있음

 

 


043. 연관 클래스

연관 클래스

  • 연관 클래스연관 관계에 있는 두 클래스에 추가적으로 표현해야 할 속성이나 오퍼레이션이 있는 경우 생성하는 클래스이다.
  • 두 클래스의 연관 관계를 나타내는 선의 가운데로부터 점선을 연관 클래스로 이어 표시한다.
  • 연관 클래스의 이름은 연관 관계의 이름을 이용해 지정한다.

 


044. 시퀀스 다이어그램 (Sequence Diagram)

시퀀스 다이어그램

  • 시퀀스 다이어그램시스템이나 객체들이 메시지를 주고받으며 상호작용하는 과정을 그림으로 표현한 것이다.
  • 구성 요소
    • 액터 (Actor)
      • 시스템으로부터 서비스를 요청하는 외부 요소로, 사람이나 외부 시스템을 의미함
      • 사람 형태 아래에 이름을 적어 나타냄
    • 객체 (Object)
      • 메시지를 주고받는 주체
      • 네모 박스 안에 이름을 적어 나타냄
    • 생명선 (Lifeline)
      • 객체가 메모리에 존재하는 기간으로, 객체 아래쪽에 점선을 그어 표현
      • 객체 소멸(X 표시)이 표시된 기간까지 존재함
    • 실행 상자 (Active Box, 활성 상자)
      • 객체가 메시지를 주고받으며 구동되고 있음을 표현하며, 긴 막대기 형태로 나타냄
    • 메시지 (Message)
      • 객체가 상호 작용을 위해 주고받는 메시지로, 화살표와 함께 설명을 적어 나타냄
    • 객체 소멸
      • 해당 객체가 더 이상 메모리에 존재하지 않음을 표현한 것으로, X표시로 나타냄
    • 프레임 (Frame)
      • 다이어그램의 전체 또는 일부를 묶어 표현한 것으로, 여러 요소를 감싸는 네모 박스 왼쪽 위에 해당 프레임의 이름을 적음.

 


045. 커뮤니케이션 다이어그램 (Communication Diagram)

커뮤니케이션 다이어그램

  • 커뮤니케이션 다이어그램시스템이나 객체들이 메시지를 주고받으며 상호작용하는 과정과 객체들 간의 연관을 그림으로 표현한 것이다.
  • 구성 요소
    • 액터 (Actor)
      • 시스템으로부터 서비스를 요청하는 외부 요소로, 사람이나 외부 시스템을 의미함
    • 객체 (Object)
      • 메시지를 주고받는 주체
    • 링크 (Link)
      • 객체들 간의 관계를 표현한 것
      • 액터와 객체, 객체와 객체 간에 실선을 그어 표현함
    • 메시지 (Message)
      • 객체가 상호 작용을 위해 주고받는 내용
      • 화살표의 방향을 메시지를 받는 쪽으로 향하게 표현함
      • 일정한 순서에 의해 처리되는 메시지의 경우 숫자로 순서를 표시함

 


046. 상태 다이어그램 (State Diagram)

상태 다이어그램

  • 상태 다이어그램객체들 사이에 발생하는 이벤트에 의한 객체들의 상태 변화를 그림으로 표현한 것이다.
  • 구성 요소
    • 상태 (State)
      • 객체의 상태를 표현한 것으로 네모 박스에 상태를 표현함
    • 시작 상태
      • 상태의 시작을 표현한 것으로 검정 동그라미로 표현
    • 종료 상태
      • 상태의 종료를 표현한 것으로 검정 동그라미에 동그라미 하나를 덧씌워 표현
    • 상태 전환
      • 상태 사이의 흐름, 변화를 화살표로 표현한 것
    • 이벤트 (Event)
      • 상태에 변화를 주는 현상
      • 이벤트에는 조건, 외부 신호, 시간의 흐름 등이 있음
    • 프레임 (Frame)
      • 상태 다이어그램의 범위를 표현한 것

 


047. 패키지 다이어그램

패키지 다이어그램

  • 패키지 다이어그램유스케이스나 클래스 등의 요소들을 그룹화한 패키지 간의 의존 관계를 표현한 것이다.
  • 구성 요소
    • 패키지 (Package)
      • 객체들을 그룹화한 것
      • 단순 표기법 - 패키지 안에 패키지 이름만 표현
      • 확장 표기법 - 패키지 안에 요소까지 표현
    • 객체 (Object)
      • 유스케이스, 클래스, 인터페이스, 테이블 등 패키지에 포함될 수 있는 다양한 요소들
    • 의존 관계 (Dependency)
      • 패키지와 패키지, 패키지와 객체 간을 점선 화살표로 연결하여 표현함
      • 스테레오 타입을 이용해 의존 관계를 구체적으로 표현할 수 있음
      • 의존 관계의 표현 형태는 사용자가 임의로 작성할 수 있으며, 대표적으로 import와 access가 사용됨
        • import - 패키지에 포함된 객체들을 직접 가져와서 이용하는 관계
        • access - 인터페이스를 통해 패키지 내의 객체에 접근하여 이용하는 관계

 


048. 구조적 방법론

 

-- (생략) --

반응형