아꿈사 Ooad 6장 발표자료 v0.2 20100817

12
복습 : 1 장 ~ 5 장 위대한 소프트웨어 개발 고객이 원하는 기능 구현 객체지향 원리 소프트웨어를 유연 유지보수 , 재사용 하기 쉬운 디자인 유스케이스 분석 ( 주경로 , 대체경로 ) 캡슐화 느슨한 구조로 연결 ( 기능중심 -> 인터페이스 중심 ) [ 변경 ] 목 표

Transcript of 아꿈사 Ooad 6장 발표자료 v0.2 20100817

복습 : 1 장 ~ 5 장

위대한 소프트웨어 개발

고객이 원하는

기능 구현

객체지향 원리소프트웨어를 유연

유지보수 , 재사용 하기 쉬운 디자인

•유스케이스

•분석 ( 주경로 , 대체경로 )

•캡슐화

•느슨한 구조로 연결

( 기능중심 -> 인터페이스 중심 )

[ 변경 ]

목 표

6 장 . 정말 큰 문제들 해결하기

작은 문제 를 푼 것과 똑같은 방식으로 큰 문제 도 해결한다 .

• 여러분의 소프트웨어 가 고객이 원하는

기능 을 하도록 하세요

2 . 객체지향의 기본 원리 를 적용해서 소프트

웨어를 유연하게 하세요

3 . 유지보수 , 재사용 이 쉬운 디자인을 위

해서 노력하세요

우리가 이미 알고 있는 것들은…

변하는 것은 캡슐화하여 , 프로그램을 더 유연하고 변경하기 쉽게

만든다

좋은 요구사항을 얻는 가장 좋은 방법은

시스템이 해야 할 일을 이해하는 것이

다 .

구현에 맞추어 코딩하는

것보다 인터페이스에 맞

추어 코딩하면 소프트웨어의 확장이 더 쉬어진다 .

위대한 소프트웨어

는 변경과 확장이

쉽고 고객이 원하는 일을 합니다 .

비전기술서

□ 게리와 이야기

□ 프레임워을 사용할 사람과 이야기

□ 요구사항 수집

□ 유스케이스를 작성

□ 클래스 다이어그램 그리기

□ 패키지 다이어그램 그리기

무엇을 먼저 해야 하나요 ?

더 많은 정보가 필요해요…

요구 사항과 유스케이스부터 시작하면 될까요…

.. 그런데 시스템에 대해서 정말 무엇을 알고 있는가 ?

더 많은 정보가 필요하다…

무엇이 비슷하죠 ? 무엇이 다르죠 ?

특징 [Feature]

특징 (feature) 찾아내기

특징 (feature) 란 무엇인가 ?

시스템이 해야 할 일에 대해 추상적으로 설명한 것

다양한 타입의 지형을 지원한다 .

타일은 지형의 타입과 관련있다 .

게임 디자이너는 지형타입을 만들수 있다 .

각 지형은 유닛들의 움직임에 영향을 주는 특성이 있다 .

요구사항 ( 개발자용 )

특징(feature)

유스케이스 다이어그램

항상 세부내용은 늦출 수 있을 때까지 최대한 늦추세요 .

유스케이스 다이어그램 작성 <- 청사진 , 모든 특징 (feature) 가 포함

프레임워크는 타일들로 구성된 보드를 제공 프레이워크는 다양한 타입의 지형을 지원

프레이워크는 다양한시대를 지원

프레임워크는 다양한 유닛 타입들을 지원

프레임워크는 추가 모듈을 지원

프레이워크는 누구의 차레인지에 대한 정보를 유지하고 유닛들의 기본적인 움직임 관장

프레임워크는 타일들로 구성된 보드를 제공

프레이워크는 다양한 타입의 지형을 지원

유스케이스 다이어그램

새로운 게임

기존 게임 변경

게임 배치하기

보드 만들기

차레바꾸기

유닛들 이동하기

유닛 추가 / 삭제

프레이워크는 누구의 차레인지에 대한 정보를 유지하고 유닛들의 기본적인 움직임 관장

누구의 차레인지에 대한 정보를 유지

유닛들의 기본적인 움직임 관장

크게 나누기

모델 (model)- 뷰 (view)- 컨트롤러(Controller) 패턴

도메인 분석

프레임워크는 타일들로 구성된 보드를 제공

프레이워크는 다양한 타입의 지형을 지원

프레이워크는 다양한시대를 지원

프레임워크는 다양한 유닛 타입들을 지원

프레임워크는 추가 모듈을 지원

누구의 차레인지에 대한 정보를 유지

유닛들의 기본적인 움직임 관장

우리가 고객에게 제공하는 정보 ..

6 장 정리

1. 비전기술서 ( 고객의 말 ] 2. 시스템의 기능 확인 3. 시스템의 청사진 ( 설계도 )

4. 기능 단위의 작은 조각 5. 디자인 패턴을 적용

위대한소프트웨어