1 / 169

D. 지뢰찾기 분석 설계 예제

D. 지뢰찾기 분석 설계 예제. 0. 지뢰찾기 분석. 분석의 목적. 시스템과 사용자 사이의 인터페이스를 정의 사용자 관점에서 인식할 수 있는 것만 정의한다 시스템 내부는 언급하지 않는다 사용자는 몰라도 되고 개발자만 알면 되는 것은 언급하지 않는다 여기서 언급한 사용자는 꼭 사람만을 의미하는 것은 아님 시스템과 명령이나 데이터를 주고 받는 것 시스템 내부가 아니고 외부 환경에 속하는 것. 분석 단계의 산출물 ( 중요도 순서로 나열됨 ). 1. Use-case 모델

Download Presentation

D. 지뢰찾기 분석 설계 예제

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. D. 지뢰찾기 분석 설계 예제

  2. 0. 지뢰찾기 분석

  3. 분석의 목적 • 시스템과 사용자 사이의 인터페이스를 정의 • 사용자 관점에서 인식할 수 있는 것만 정의한다 • 시스템 내부는 언급하지 않는다 • 사용자는 몰라도 되고 개발자만 알면 되는 것은 언급하지 않는다 • 여기서 언급한 사용자는 • 꼭 사람만을 의미하는 것은 아님 • 시스템과 명령이나 데이터를 주고 받는 것 • 시스템 내부가 아니고 외부 환경에 속하는 것

  4. 분석 단계의 산출물 (중요도 순서로 나열됨) 1. Use-case 모델 (Use-case Diagram + Use-case Specification) 2. 보충 요구사항 명세서 (Supplementary Requirement Specification) 3. 개념 모델 (Conceptual Level Class Diagram) 4. 화면/메뉴 설계 5. 개발계획 6. 기타 : 용어사전, 사용자 메뉴얼

  5. 0-1. Use-case Model

  6. Use-case Diagram 지뢰찾기 닫힌 칸을 열기 지뢰를 표시 플레이어 닫힌 칸들을 열기

  7. 앞의 Use-case 모델은 적절한가? • 무엇을 기준으로 판단할 것인가? • 좋은 모델의 기준은 무엇인가?

  8. 좋은 모델의 기준은? • 좋은 모델은 정보의 전달이라는 목적에 충실해야 한다 • Use-case 모델이 고객에게 전달하는 정보 : 시스템을 이렇게 만들면 되나? • Use-case 모델이 개발자에게 전달하는 정보 :이러한 시스템을 만들어라 • 전달해야 하는 정보를 빠짐 없이 포함해야 한다 • 이해하기 쉽고 간결해야 한다

  9. 빠진 Use-case 는? • 새 게임 시작하기 시나리오 • 초급 중급 고급 선택 • 색깔 소리 같은 옵션 지정 • 최고 기록 보기 • 위와 같은 것도 포함해야 하나?

  10. Use-case Diagram 의 목적 • Use-case Diagram -> 조감도 (Bird’s Eye View) • 시스템이 제공하는 기능을 큰 단위로 표현한 것 • 모든 세세한 기능을 Use-case Diagram 으로 표현하지 말라 • 세밀한 묘사는 다른 적당한 다이어그램에서 표현하면 된다

  11. 지뢰찾기의 Use-case ? • 지뢰찾기 게임이 사용자에게 제공하는 기능을 크게 분류하면?

  12. Use-case Diagram 지뢰찾기 닫힌 칸을 열기 지뢰를 표시 플레이어 닫힌 칸들을 열기

  13. Use-case Specification • 자세한 내용은 Use-case Specification 에서 설명한다

  14. Use-case Specification • Name : 닫힌 칸을 열기 • Description: • 지뢰가 없을 것으로 짐작되는 칸을 연다 • Actor: 플레이어 • Precondition: • 칸은 닫혀있어야 한다 • 지뢰 표시가 없는 칸이어야 한다

  15. 닫힌 칸을 열기 • Main Flow • 지뢰가 없을 것으로 짐작되는 칸을 플레이어가 마우스 왼쪽 버튼으로 클릭한다 • 칸은 열려진 상태로 표시되며, 주변의 지뢰의 수가 칸 안에 표시된다 3. 주변의 지뢰의 수가 0 이면 • 지뢰 수 0은 표시되지 않고 • 주변의 닫힌 칸들이 모두 열려지며 • 각 칸 안에 그 주변의 지뢰의 수가 표시된다. • 이 과정은 재귀적으로 반복된다

  16. 닫힌 칸을 열기 • Alternative Flow A2. 지뢰가 있는 칸이었으면 지뢰가 폭발하여 게임은 실패로 종료된다 A2. 모든 칸이 열려졌으면 게임은 성공으로 종료된다

  17. Use-case Specification • Name : 지뢰를 표시 • Description: • 지뢰가 있을 것으로 짐작되는 칸에 지뢰 표시를 한다 • Actor: 플레이어 • Precondition: • 칸은 닫혀있어야 한다

  18. 지뢰를 표시 • Main Flow: • 지뢰가 있을 것으로 짐작되는 칸을 플레이어가 마우스 오른쪽 버튼으로 클릭한다 • 칸에 지뢰 표시가 되고, 남은 지뢰 수 표시가 1 감소한다. • 지뢰 표시가 된 칸을 마우스 오른쪽 버튼으로 클릭한다 • 칸에서 지뢰 표시가 제거되고, 남은 지뢰 수 표시가 1 증가한다

  19. 지뢰를 표시 • Notes: • 지뢰 표시가 된 칸은 열 수가 없다"닫힌 칸 열기" 의 Precondition 참고

  20. Use-case Specification • Name : 닫힌 칸들을 열기 • Description: • 인접한 지뢰가 모두 표시되었을 경우, 지뢰가 없는 인접한 빈 칸을 모두 동시에 연다 • Actor: 플레이어 • Precondition: • 클릭하는 칸은 열려 있어야 한다 • 열려진 칸에 표시된 주변 지뢰 수 만큼 주변 칸들에 지뢰 표시들이 있어야 한다

  21. 닫힌 칸들을 열기 • Main Flow • 열려진 칸에서 마우스 왼쪽과 오른쪽 버튼을 동시에 클릭한다 • 인접한 8개의 칸들 중 지뢰 표시가 되어 있지 않은 칸들 이 열려진다. 열려진 각 칸들에는 인접한 지뢰의 수가 표시된다. • 열려진 칸의 주변 지뢰의 수가 0이면 • 지뢰 수 0은 표시되지 않고 • 주변의 칸 모두 열려지며 • 각 칸 안에 그 주변의 지뢰의 수가 표시된다. • 이 과정은 재귀적으로 반복된다

  22. 닫힌 칸들을 열기 • Alternative Flow A2. 지뢰가 있는 칸이었으면 지뢰가 폭발하여 게임은 실패로 종료된다 A2. 모든 칸이 열려졌으면 게임은 성공으로 종료된다

  23. 0-2. 보충 요구사항

  24. 보충 요구사항 • 모든 것을 Use-case 형태에 맞춰서 표현할 필요없다 • 사용자와 시스템 사이의 작업 시나리오 절차들은 Use-case 형태로 표현하는 것이 적당하다 • 기타 요구사항으로 표현하는 편이 더 단순한 것들도 있다

  25. 보충 요구사항 • 난이도 • 초급: 9 행 9 열의 칸, 10개의 지뢰 • 중급: 16 행 16 열의 칸, 40개의 지뢰 • 고급: 16 행 30 열의 칸, 99개의 지뢰 • 화면에 남은 지뢰수가 표시된다 • 남은 지뢰수 = 전체 지뢰 수 –지뢰 표시의 수 • 화면에 초시계가 표시된다 • 첫 칸을 연 때부터 초시계가 시작하고 • 성공하거나 실패한 순간 초시계가 정지한다 • 난이도 별로 최단시간 성공 기록을 유지한다

  26. 0-3. 개념모델 (Conceptual Model)

  27. 개념모델 • Use-case 모델의 이해를 돕기 위해 작성 • Use-case 모델에 등장하는 개념들의 관계를 표현한다 • 용어 사전과 비슷한 역할을 한다

  28. 지뢰찾기의 개념모델 • 개념모델의 목적은 시스템 설계가 아니고 관련 개념의 이해이다 • 모듈 설계와 다르다 • 다음의 개념들을 이해하기 쉽게 표현하기 위한 모델이다 • 지뢰, 이웃칸, 지뢰표시, 칸의 상태 … • 사용자와 개발자들이 위 개념들을 잘 알고 있다면, 개념모델은 생략 가능하다 • 지뢰 찾기의 경우 사실 개념 모델은 필요없다 • 금융 정보시스템을 개발하는 경우라면, 관련 개념들이 이해하기 매우 어려울 것이므로 개념모델이 꼭 필요할 것이다.

  29. 지뢰찾기의 개념모델

  30. 0-4. 화면/메뉴 설계

  31. 화면설계 진행화면 성공 실패

  32. 메뉴설계

  33. 0-5. 개발 계획

  34. 점진적 개발 • 크고 복잡한 시스템을 한 번에 완성하는 것은 매우 어렵다 • 작게 쪼개어 하나씩 만들어 가는 것이 좋다 • Use-case 단위로 만들어 나간다 • 중요한 Use-case 를 먼저 선택하여 • 설계, 구현, 테스트하여 완성하고 • 그 다음 Use-case 를 선택하여 만들어 나간다

  35. Use-case 단위로 점진적 개발 • Use-case 의 우선순위 별로 점진적 개발 • 닫힌 칸을 열기 • 지뢰를 표시 • 닫힌 칸들을 열기 • 1차 개발 • 닫힌 칸을 열기 • 2차 개발 • 지뢰를 표시 • 닫힌 칸들을 열기

  36. 1-1. 1차개발 : 분석

  37. 1차개발 개요 • 가장 중요한 use-case 인 "닫힌 칸을 열기" 를 구현한다 • 1차개발의 완료는 빠르면 빠를 수록 좋다 • 실행하고 테스트 해 볼 수 있는 1차 버전은, 고객으로부터 요구사항 수집하는데, 개발자가 시스템을 이해하고 개발하는데, 아주 큰 도움이 된다 • 1차개발을 빠르게 완료하기 위하여, use-case 를 단순하게 수정하고 구현하는 것도 좋다. • 단순하게 수정된 내용은 2차 개발에서 보충 구현한다.

  38. 1-1-1. Use-case 모델

  39. Use Case Diagram 지뢰찾기 닫힌 칸을 열기 지뢰를 표시 플레이어 닫힌 칸들을 열기

  40. Use Case Specification (단순화됨) • Name : 닫힌 칸을 열기 • Description: • 지뢰가 없을 것으로 짐작되는 칸을 연다 • Actor: 플레이어 • Precondition: • 칸은 닫혀있어야 한다

  41. 닫힌 칸을 열기 • Main Flow • 지뢰가 없을 것으로 짐작되는 칸을 플레이어가 마우스 왼쪽 버튼으로 클릭한다 • 칸은 열려진 상태로 표시되며, 주변의 지뢰의 수가 칸 안에 표시된다

  42. 닫힌 칸을 열기 • Alternative Flow A2. 지뢰가 있는 칸이었으면 지뢰가 폭발하여 게임은 실패로 종료된다 A2. 모든 칸이 열려졌으면 게임은 성공으로 종료된다

  43. 1-1-2. 보충 요구사항

  44. 보충 요구사항 • 난이도 • 초급: 9 행 9 열의 칸, 10개의 지뢰

  45. 1-1-3. 화면 설계

  46. 화면설계 진행화면 성공하거나 실패했을 경우 위와 같은 대화상자가 출력된다

  47. 메뉴설계

  48. 1-2. 1차개발 : 아키텍처 설계

  49. 아키텍처 설계의 목적 • 주요 클래스 사이의 인터페이스를 정의 • 시스템을 몇 개의 주요 클래스로 나누고 • 그들 사이의 인터페이스를 정의한다 • 주요 클래스 사이의 상호작용만 정의한다 • 주요 클래스 내부는 언급하지 않는다 • 주요 클래스 내부는 상세 설계 단계에서 • 설계에서 아키텍처 설계 단계가 가장 중요하다

  50. 아키텍처 설계의 산출물 (중요도 순서로 나열됨) • Class Diagram • 주요 클래스를 그린 클래스 다이어그램 • Specification Level Class Diagram • Sequence Diagram • 주요 클래스 사이의 상호 작용을 설계 • Specification Level Sequence Diagram • Use-case specification 에서 주요 이벤트 각각에 대하여 sequence diagram 이 그려져야 한다 • Activity Diagram or Statechart Diagram

More Related