앞서, 프로그램의 실행화면과 설계 / 개발 환경 및 사용된 Tool 들과 요구사항 분석에 대해서 설명했으니, 이제는 StarUML 을 사용하여 진행한 설계 부분에 대해서 말씀드리겠습니다. ver 0.1 과 비교하여 차이점 위주로 설명드리겠습니다.


(테트리스 ver 0.1 (3) - 프로그램 설계 (Use Case, Class, Sequence) 참고)

http://kkikkodev.tistory.com/44


[TetrisForDesktop 의 Use Case Diagram]

ver 0.1 과 동일합니다.


[TetrisForDesktop 의 Class Diagram]


Class Diagram 을 살펴보면, 지난 버전과 비교해서 TetrisManager 클래스와 TetrisView 클래스에 각각 GetDownMilliSecond 함수만 추가된 것을 볼 수 있습니다. 


[TetrisManager 의 함수들 - 새로 변경된 부분]

 함수명

매개변수

(변수명 : 자료형)

반환형

설명

TetrisManager_GetDownMilliSecond

tetrisManager : TetrisManager*

DWORD

속도 레벨에 따른 블럭이 떨어질 시간 간격 (밀리 세컨드) 을 계산하여 반환합니다.


TetrisManager_GetDownMilliSecond 함수는 속도 레벨에 따라서 블럭이 떨어질 시간 간격을 밀리 세컨드 단위로 계산하여 반환하는 함수입니다. 먼저, milliSecond 변수에 INITIAL_SPEED (= 500) 로 초기화하고, 최소 속도 레벨부터 현재의 속도 레벨까지 반복하면서, 최소 속도 레벨 (= 1) 부터 최대 속도 레벨 (= 10) / 2 까지는 SPEED_LEVEL_OFFSET (= 100) 을 빼고, 그 이후부터는 SPEED_LEVEL_OFFSET / 5 를 뺍니다. 최종 milliSecond 값을 반환합니다.


[TetrisView 의 함수들 - 새로 변경된 부분]

 함수명

매개변수

(변수명 : 자료형)

반환형

설명 

TetrisView_GetDownMilliSecond

tetrisView : TetrisView*

DWORD

TetrisManager_GetDownMilliSecond 함수를 호출하여 반환값을 받아서 재 반환합니다.


TetrisView_GetDownMilliSecond 함수는 main 함수에서 TetrisManager_GetDownMilliSecond 함수를 호출하기 위해 만든 wrapping 함수입니다. main 함수에서 직접 TetrisManager 에 접근하지 못하도록, TetrisView 에서 한 번 더 감싸서 함수를 만들었습니다.


[TetrisForDesktop 의 Sequence Diagram (main 함수) - 새로 변경된 부분]

위의 Sequence Diagram 에서 ver 0.1 과 달라진 점은 블럭을 자동으로 떨어뜨리는 처리를 하는 부분입니다.

by kkikkodev 2015. 6. 12. 15:33