관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

요구사항 확인 5 - Section 11~14 : UML 다이어그램 및 유스케이스 · 활동 · 클래스 다이어그램 본문

자격증 공부/정보처리기사 실기

요구사항 확인 5 - Section 11~14 : UML 다이어그램 및 유스케이스 · 활동 · 클래스 다이어그램

huenuri 2024. 9. 23. 09:33

오늘부터는 내 자리에서 공부를 해야 한다고 해서 원래 자리로 돌아왔다. 수업을 하고 있어서 집중이 잘 되지 않는 데다 뭔가 세팅을 하는데 한참의 시간이 걸렸다. 내가 학습하는 유튜브를 노트북에서 시청하려니 찾기가 힘들었다.

이제 모든 준비를 마치고 본격적으로 아침 공부를 시작하려고 한다. 가능하면 많은 내용을 학습할 생각이다. 


 

 

세션 11 - UML 다이어그램

 

1. 다이어그램(Diagram)

 

다이어그램이 무엇인지, 구조적 다이어그램,  행위 다이어그램에는 어떤 것들이 있는지 알아두자. 어떤 다이어그램을 말하는 것인지 찾아낼 수 있을 정도로 개념을 알고 있어야 한다.


 

 

2. 구조적 다이어그램의 종류

 

컴포넌트란 예를 들어 함수를 사용할 때, 이것을 종류별로 묶어서 지원하는 것을 말한다. 예전에는 코딩을 할 때 개발자가 직접 한 줄 한 줄 코드를 짜서 직접 개발했다. 하지만 지금은 각각의 기능을 가져와서 사용한다.

 

 

 

 

다이어그램의 개념에 이름이 다 들어있으므로 내용을 잘 기억할 수 있을 것이다.


 

 

 

 

3. 행위 다이어그램의 종류

 

유스케이스 다이어그램은 사용자의 시점에서 본 행위, 기능을 표현한 것이다. 예를 들어 국세청 홈페이지에서 사용자가 할 수 있는 기능은 몇 가지 없다. 주요 기능은 로그인하여 세금 납부, 조회 등의 기능 있을 것이다. 이러한 것을 그림 형태로 표현한 것을 유스케이스 다이어그램이라고 한다.

커뮤니케이션 다이어그램을 살펴보자. 사용자, 서버, DB가 있을 때 사용자의 데이터가 서버로 가게 된다. 서버는 데이터베이스에서 정보를 검색하고, 그 결과를 서버로 돌려주며, 서버는 이것들 다시 사용자에게 돌려준다. 이렇게 동작에 참여하는 객체들이 주고받는 메시지와 객체들 간의 연관관계를 표현하는 것을 말한다.

운영체제에 보면 실행, 준비, 대기라는 3가지 상태 프로세스가 있다.

 

 

예를 들어, 라면을 끓일 때도 시간에 따른 순서가 있다. 물을 끓인 다음에 몇 분에 스프를 넣고, 면을 넣는 등 객체 상태 변화와 시간 제약을 명시적으로 표현한 것이 타이밍 다이어그램이다.


 

 

 4. 스테레오 타입

 

여기서는 다이어그램의 종류에 대해서 가볍게 살펴보았다. 다음 시간부터 이 다이어그램에 대해서 자세히 공부해 볼 것이다.

스테레오 타입을 표현할 때 사용하는 기호(《》)와 주로 표현되는 형태 알아두기


 

 

세션 12 - 유스케이스 다이어그램

 

1. 기능 모델링

 

기능 모델링이란 사용자가 요구한 기능들이 어떻게 작동하는지를 설명하기 위해 구현될 모습을 그림으로 표현한 것이라 생각하면 된다.

기능 모델링이 무엇인지 개념부터 잡기


 

 

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

 

유스케이스 다이어그램을 보고 의미를 파악할 수 있도록 각 요소들의 기능을 잘 파악해두기

 


 

 

 

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

 

크게 4가지로 나눌 수 있다. 상품 주문이라는 시스템 범위, 액터와 부엑터, 중간중간의 타원형의 유스케이스, 화살표 모양의 관계가 있다.

회원과 비회원을 고객으로, 이름으로 조회와 브랜드로 조회를 상품 조회로 일반화한다. include는 포함 관계를, 점선 화살표는 확장 관계를 나타낸다.

 

 

 

유스케이스 다이어그램을 해석하면 다음과 같다.

  • 고객은 회원과 비회원으로 구분된다.
  • 회원은 상품조회, 상품주문, 배송조회, 리뷰작성 기능을 사용할 수 있다.
  • 비회원은 상품조회 기능만 사용할 수 있다.
  • 고객은 이름이나 브랜드로 상품을 조회할 수 있다.
  • 회원이 상품주문, 배송조회, 리뷰작성 기능을 사용하려면 반드시 로그인을 수행해야 한다.
  • 회원이 리뷰작성을 할 때 필요한 경우 사진 업로드 기능을 사용하려면 반드시 로그인을 수행해야 한다.
  • 회원이 상품주문을 완료하려면 재고 시스템을 통해 재고 여부를 확인해야 한다.
  • 회원이 상품주문을 완료하려면 결제 시스템을 통해 승인을 얻어야 한다.
  • 회원은 배송업체를 통해 배송조회를 할 수 있다.

 

 

 

이 내용도 쉽지 않은 내용이니 잘 숙지해야 한다. 강사님이 설명을 잘해주셔서 유스케이스 다이어그램이 어떤 구조로 이어지는지 잘 파악할 수 있었다. 

포함 관계와 확장 관계에 대해 정리해 본다.

포함 관계

  • 두 개 이상의 유스케이스에 공통적으로 적용되는 기능을 별도로 분리하여 새로운 유스케이스로 만든 경우, 원래의 유스케이스와 새롭게 분리된 유스케이스와의 관계를 포함 관계라고 한다.
  • 원래의 유스케이스에서 새롭게 만든 포함되는 유스케이스 쪽으로 점선 화살표를 연결한 후 화살표 위에 《include》라고 표시한다.

확장 관계

  • 유스케이스가 특정 조건에 부합되어 유스케이스의 기능이 확장될 때 원래의 유스케이스와 확장된 유스케이스와의 관계를 확장 관계라고 한다.
  • 확장될 유스케이스에서 원래의 유스케이스 쪽으로 점선 화살표를 연결한 후 화살표 위에 《extends라고 표시한다.

 

 

 

 

세션 13 - 활동 다이어그램

 

1. 활동 다이어그램

 

유스케이스 다이어그램액터와 유스케이스의 이름만으로 전체적인 시스템의 기능을 설명했다면, 활동 다이어그램각각의 유스케이스에 대해 그 기능이 처리되는 흐름을 순서에 맞게 자세한 그림으로 표현한 것이다.

활동 다이어그램의 개념을 정리하고 각 요소가 다이어그램에서 어떻게 표현되는지 확실하게 파악해 두기


 

 

 2. 활동 다이어그램 구성 요소

 

조건판단과 병합은 들어오고 나가는 개수로 파악한다. 스윔레인은 수영장을 생각하면 된다. 수영 선수는 각 레인별로 할당을 받는데, 1번 레인이라면 1번에서만 왔다 갔다 할 수 있다.

 

포크 노드에서 Fork는 '갈라지다'라는 의미가 있다. 하지만 들어오는 액티비티 흐름은 한 개이고 나가는 액티비티 흐름은 여러 개인 모양이 마치 포크 모양과도 같으니 모양으로 기능을 연관시켜 기억하면 오래 기억할 수 있다.


 

 

 

스윔레인을 쳐서 여기서는 결제만, 상품 주문만 하도록 만들어준다. 그런 다음 시작과 종료를 표시한다.

이 내용도 앞선 단원처럼 비슷하지만 기억해야 할 부분이 많았다. 노드의 들어오는 것과 나가는 것의 개수로 조건이 되기도 하고 병합이 되며, 포크가 되고 조인이 된다.

 

수영 경기장에는 각 선수별로 레인을 지정하여 해당 레인 안에서만 경기를 진행하도록 구분하고 있다. 이를 스윔레인이라고 한다. 활동 다이어그램에서 사용되는 스윔레인도 액터나 시스템별로 처리 흐림이 진행되는 부분을 구분하기 위한 분석이다.

 

활동 다이어그램상품 주문 유스케이스 내부에서의 처리 흐름을 표현한 것으로, 세 개의 활동 다이어그램으로 표현된 것처럼 보이지만, 하나의 시작 노드가 있는 한 개의 활동 다이어그램을 표현한 것이다. 회원 액터가 상품을 주문하는 과정에서 부엑터, 즉 외부 시스템인 재고 시스템과 결제 시스템에 관계되어 처리되는 흐름을 표현하기 위해 액터와 외부 시스템을 스윔레인으로 각각 구분한 것이다.

또한 실제 상품 주문 과정은 회원이 주문할 상품을 선택하면 해당 상품에 대한 재고 여부를 먼저 확인한 후 재고가 있으면 결제 인증을 진행한다. 하지만 예제에서는 활동 다이어그램의 요소 중 포크 노드를 설명하기 위해 회원이 주문할 상품을 선택한 후 재고 확인과 결제 인증으로 흐름이 분할되어 동시에 처리되는 것으로 표현했다.

 

활동 다이어그램 해석은 다음과 같다.

 

<회원> 액터

  • 회원이 상품을주문하기 위해 로그인 단추를 클릭한 후 회원 정보를 입력한다.
  • 입력된 정보가 잘못됐으면 회원 정보를 다시 입력받고, 그렇지 않으면 '주문 상품 선택'으로 이동한다. <조건 노드>
  • 회원이 주문할 상품을 선택했으면 흐름이 '결제 인증'과 '상품 재고 확인'으로 분할되어 진행된다. 
  • 상품 주문을 완료하고 액티비티를 종료한다. <포크 노드>

<결제> 시스템

  • 주문한 상품에 대한 결제 인증을 진행한다.
  • 인증에 성공하면 '주문 완료'로 이동이고, 인증에 실패하면 '인증 재시도'로 이동한다. <조건 판단>
  • 다시 진행한 결제 인증이 성공하면 '주문 완료'로 이동하고, 이번에도 인증이 실패하면 결제 인증에 대한 처리 흐름을 종료한다. <병합 노드>

<재고> 시스템

  • 주문한 상품에 대한 재고를 확인한다.
  • 재고가 있으면 액티비티의 흐름을 '주문 완료'로 이동하고, 재고가 없으면 회원이 다른 상품을 선택할 수 있도록 '주문 상품 선택'으로 이동한다. <병합 노드>

 


 

 

 

 

세션 14 - 클래스 다이어그램

 

1. 정적 모델링

 

객체들을 클래스로 추상화한다는 게 무슨 말일까? 예를 들어 은행에서 프로그램을 개발한다면 이처럼 고객의 이름, 주민번호, 계좌번호 등을 받을 것이다. 그러면 고객은 입금, 출금, 잔액 조회 등을 할 수 있다.

 

 

 

이렇게 객체들이 할 수 있는 속성과 메서드를 만드는 것을 객체를 클래스로 추상화한다고 말한다. 속성은 -기호를, 메서드는 +기호를 붙였다. +는 공개의 의미이고, -는 외부에서 접근하는 것은 막겠다는 의미이다.

 

기능 모델링사용자가 요구한 기능들이 어떻게 작동하는지를 사용자 관점에서 설명한 것이라면, 정적 모델링사용자가 요구한 기능들을 구현하는데 필요한 자료들의 논리적인 구조를 개발자 관점에서 그림으로 표현한 것이다. 

예를 들어 삼품 배송 유스케이스를 프로그램으로 구현하려면 상품 배송에 필요한 동작 정보가 필요한데, 객체지향 프로그램에서는 이런 것들을 클래스라는 단위에 담아 처리한다. 정적 모델링은 이런 클래스들 사이의 관계를 이용해 시스템 내부에서 사용되는 자료들을 표현한다.

정적 모델링과 클래스 다이어그램의 개념을 정리하고 클래스 다이어그램의 각 요소가 다이어그램에서 어떻게 표현되는지 확실히 파악해 두기

 

현실 세계에서 객체사람, 자동차, 컴퓨터, 고양이 등과 같이 우리 주위에서 사용되는 물질적이거나 개념적인 것으로, 명사로 사용된다. 이러한 객체들이 가질 수 있는 속성과 동작을 추상적으로 표현한 것클래스이다.

 


 

 

2. 클래스 다이어그램


 

 

 

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

 

 

 

 

 

클래스 다이어그램을 해석한 내용은 다음과 같다.

 

야구선수 정보를 보면 경력에 제약조건이 기술되어 있다. 이것은 경력이 0 이상이라는 뜻이다. 연봉조정을 보면 모든 사람이 아닌 제약조건이 있다. 사전에는 승점이 5점 이상인 사람만 할 수 있고, 사후에는 연봉에 승점을 더한 값이 연봉이 된다.


 

 

 

4. 연관 클래스

 

 

 

 

연관 클래스를 만들어 참여하다 선의 가운데를 점선으로 찍어 참여라는 클래스와 이어준다.

★ 연관 관계에 있는 두 클래스에 추가적으로 표현해야 할 속성이나 오퍼레이션이 있는 경우 연관 클래스를 생성한다. 

 

 

이번 수업도 관계를 파악하는 것이기에 쉽지 않았지만 그래도 잘 이해했다.


 

 

 

 

학습을 마치고

문제가 다소 어려웠지만 그래도 잘 풀었다. 나머지는 암기하는 일이 남아있고 개념 이해는 모두 했다. 정보처리기사 실기시험을 공부하는 것도 정말 재미있다. 역시 자신에게 맞는 공부법으로 해야 잘 되는 것 같다.

다시 학습을 할 때는 문제 풀이 부분을 모두 삭제해 주었다.