클래스 시퀀스 다이어그램 - keullaeseu sikwonseu daieogeulaem

[UML] 클래스 & 시퀀스 다이어그램 [소프트웨어 설계]

클래스 시퀀스 다이어그램 - keullaeseu sikwonseu daieogeulaem
UML
클래스 시퀀스 다이어그램 - keullaeseu sikwonseu daieogeulaem
 

2013. 5. 15. 16:33

클래스 시퀀스 다이어그램 - keullaeseu sikwonseu daieogeulaem
https://blog.naver.com/greenbox2000/140189176876

출처 : http://blog.naver.com/nawoo?Redirect=Log&logNo=80179977867

문제 제기

주제 선정

웹 하드 시스템

유스케이스 다이어그램

클래스 시퀀스 다이어그램 - keullaeseu sikwonseu daieogeulaem

그림 1

클래스 다이어그램이란

 : 클래스 다이어그램은 "클래스"라고 하는 객체지향 설계단위를 이용하여 시스템의 정적인 구조(모델)를 표현한 것이다. 클래스 다이어그램은 분석, 설계, 구현 등 다양한 상황에서 그 사용목적에 맞게 입도를 조절하여 기술 할 수 있다.

클래스

 - 객체의 구조를 표현·확인

 - 속성(변수)의 사양을 표현·확인 함

 - 조작(메소드)의 사양을 표현·확인 함

클래스 시퀀스 다이어그램 - keullaeseu sikwonseu daieogeulaem

가시성(Visuality)

 - 속성(변수)나 조작(메소드)을 외부에서 보는 법을 표현·확인 함

 - 클래스의 캡슐화 레벨을 표현·확인 함

클래스 시퀀스 다이어그램 - keullaeseu sikwonseu daieogeulaem

스코프

 - 속성이나 조작이 정의되는 범위를 표현·확인 함

 - static의 속성이나 조작을 표현·확인 함

클래스 시퀀스 다이어그램 - keullaeseu sikwonseu daieogeulaem

관계(Relationship)

 - 클래스 사이의 관계를 표현·확인 함

 - 메시지의 송신처, 수신처를 표현·확인 함

클래스 시퀀스 다이어그램 - keullaeseu sikwonseu daieogeulaem

2항 관계(Binary Association)

 - 2개 클래스 사이의 관계를 표현·확인 함

클래스 시퀀스 다이어그램 - keullaeseu sikwonseu daieogeulaem

N항 관계(N-ary Association)

 - 3개 이상의 클래스 사이의 관계를 표현·확인 함

클래스 시퀀스 다이어그램 - keullaeseu sikwonseu daieogeulaem

관계명

 - 클래스 사이의 관계 내용을 표현·확인 함

 - 클래스간 관계의 방향을 표현·확인 함

클래스 시퀀스 다이어그램 - keullaeseu sikwonseu daieogeulaem

다중도

 - 클래스 사이에 관계를 맺고 있는 인스턴스 수를 표현·확인 함

클래스 시퀀스 다이어그램 - keullaeseu sikwonseu daieogeulaem

집약(Aggregation)

 - 클래스 사이의 "전체-부분" 관계를 표현·확인 함

클래스 시퀀스 다이어그램 - keullaeseu sikwonseu daieogeulaem

컴포지션(Composition)

 - 라이프사이클이 동일해지는 클래스 사이의 "전체-부분" 관계를 표현·확인 함

클래스 시퀀스 다이어그램 - keullaeseu sikwonseu daieogeulaem

일반화(Generalization)

 - 추상적인 클래스와 구체적인 클래스 사이의 관계를 표현·확인 함

 - 계승하는 쪽 클래스(extends)와 계승받는 쪽 클래스를 표현·확인 함

클래스 시퀀스 다이어그램 - keullaeseu sikwonseu daieogeulaem

의존(Dependency)

 - 일시적으로 사용하는 클래스와의 관계를 표현·확인 함

클래스 시퀀스 다이어그램 - keullaeseu sikwonseu daieogeulaem

시퀀스 다이어그램

  • 시퀀스 다이어그램은 특정 사용 케이스에 대한 상세한 흐름이나 심지어는 특정 사용 케이스의 일부분 까지도 보여준다. 대부분이 설명을 포함하고 있다. 시퀀스에서 다른 객체들 간의 호출관계를 보여주고 있고, 다른 객체들로의 다른 호출까지 상세하게 보여줄 수 있다.

  • 시퀀스 다이어그램은 2차원으로 그려진다. 수직 차원은 발생 시간 순서로 메시지/호출 시퀀스를 보여주고 있다. 수평 차원은 메시지가 전송되는 객체 인스턴스를 나타내고 있다.

  • 시퀀스 다이어그램은 그리기가 매우 간단하다. 다이어그램의 상단에 각 클래스 인스턴스를 박스 안에 놓아 클래스 인스턴스(객체)를 구분한다. 박스 안에 클래스 인스턴스 이름과 클래스 이름을 스페이스/콜론/스페이스 " : "로 분리시킨다. 클래스 인스턴스가 메시지를 또 다른 클래스 인스턴스로 보내면 클래스 인스턴스를 받는 곳을 가리키는 화살표를 긋는다. 그 라인 위에 메시지/메소드 이름을 적는다. 중요한 메시지의 경우는 원래의 클래스 인스턴스를 다시 향하도록 점선 화살표를 그릴 수 있다. 점선 위에 리턴 값을 라벨링한다. 개인적으로는 리턴 값을 포함하곤 하는데 상세한 부분을 읽기 쉽기 때문이다.

  • 시퀀스 다이어그램을 읽기는 매우 간단하다. 시퀀스를 시작하는 "드라이버(driver)" 클래스 인스턴스가 있는 왼쪽 상단 코너부터 시작한다. 그런 다음, 다이어그램 아래쪽을 각 메시지를 따라간다..

본문

3. Design Use Case Realization

(1) class diagram : 웹하드 시스템

- 저장된 파일은 데이터베이스에 저장되어 있습니다. 웹하드 클래스에서 파생되어 나가는 구조이며, 불법 다운로드 목록 검사를 수행하는 것은 Isillegal 입니다. 웹하드의 뷰 영역은 JSP 를 통하여 구현되어 집니다. 기존 유스케이스의 5개 외, 네트워크라는 클래스를 만들어서 서로가 네트워킹이 가능하도록 설계하였습니다.

기본틀이 되는 WEBHARD 클래스는 기본적으로 유저 의 정보를 저장하고 있습니다. 이는 JSP와 연결되어 유저가 원하는 데이터 및 정보를 출력하도록 연결하였습니다. 또한 데이터 DB와도 연결되어 있어서 웹하드는 파일의 정보를 저장할 수 있습니다. 네트워크 클래스는 기본적으로 저장 폴더 찾기, 데이터 정보얻기, 파일정보 얻기, 송 수신 및 유저 아이디 체크 기능을 하고 있습니다.

그 이외의 클래스들은 유스케이스에 명세한 것들의 기능을 하고있습니다.

클래스 시퀀스 다이어그램 - keullaeseu sikwonseu daieogeulaem

그림 2

(2) sequence diagram : 상품관리-기본흐름

(1) 로그인

: 로그인은 간단하게 ID, Password 입력을 통해 DB에 확인하여 로그인을 하는 절차로 구성하였습니다.

클래스 시퀀스 다이어그램 - keullaeseu sikwonseu daieogeulaem

그림 3

(2) 회원가입

: 회원가입은 제일먼저 실명인증을 하고 그다음 회원정보를 입력하도록 하였습니다.

클래스 시퀀스 다이어그램 - keullaeseu sikwonseu daieogeulaem

그림 4

(3)결제하기

:결제하기는 결제프로그램을 설치한다음 결제수단을 선택합니다. 결제수단을 설택하였으면 결제를 하고 DB에서 회원을 유료회원으로 전환시켜 줍니다.

클래스 시퀀스 다이어그램 - keullaeseu sikwonseu daieogeulaem

그림 5

(4)다운로드

다운로드는 유저가 먼저 다운로드 목록을 DB에 요청 하게됩니다. DB는 매니저에게 목록을 전송하고 매니져는 목록을 유저에게 보여주게됩니다. 유저가 자신의 파일들을 보게되면 유저는 다운로드할 파일을 선택합니다. 매니저는 파일정보를 받아서 DB에 파일전송을 요구하게되고 DB는 바로 유저에게 파일을 전송합니다. 파일을 다 받았으면 다 받았다는 메시지를 전달해주고 DB에 파일을 받아갔다는 기록을 합니다.

클래스 시퀀스 다이어그램 - keullaeseu sikwonseu daieogeulaem

그림 6

(5)업로드

업로드는 다운로드와 비슷하지만 업로드파일을 전송한다음 DB가 불법 자료가 아닌지 검사를 수행합니다.

클래스 시퀀스 다이어그램 - keullaeseu sikwonseu daieogeulaem

그림 7

참고 문헌

[1] [소심쟁이::네이버 블로그]

http://blog.naver.com/search200?Redirect=Log&logNo=80099441416