RDD분석 순서
(1)프로젝트 정의와 계획
2.자세히 묘사한다.
3.오브젝트 분석
(2)RDD Design
2.design refinement
참고한곳:Overview of Responsibility-Driven Design
(1)프로젝트 정의와 계획
1.system을 분석
1)high-level system 의 architecture을 개발한다.
:UML이나 간단한 박스나 화살표을이용하여 만든다.
:주요 subsystems을 정의한다.
2)System 개념들을 정의한다.
:중요한 용어나 개념들의 문서들은 일반적으로 시스탬에 대해서 일찍 대화를 한다.
3)system의 책임들을 정의한다.
:무엇이 전체시스탬의 중요한 책임인가?책임을 분할할것인가를 알아낸다.
:UML이나 간단한 박스나 화살표을이용하여 만든다.
:주요 subsystems을 정의한다.
2)System 개념들을 정의한다.
:중요한 용어나 개념들의 문서들은 일반적으로 시스탬에 대해서 일찍 대화를 한다.
3)system의 책임들을 정의한다.
:무엇이 전체시스탬의 중요한 책임인가?책임을 분할할것인가를 알아낸다.
2.자세히 묘사한다.
1)특별한 개발환경을 정의한다.
:툴,프래임워크,Api등 개발하는동안 사용할것들을 정의한다.
2)특별한 사용자의 작업들
:다른 타입의 사용자로 정의한다.
:나라타주 usecase를 만든다.
:시나리오을 이용하여 구체적인 사용법을 만든다.
3)Non-Functional 요구를 분석한다.(Analyze Non-Function Requirements)
4)System Dynamaic을 문서화한다.
:activity diagrams을 만들고 usecase의 interaction을 capture한다.
5)use interface을 prototype한다.
:화면을 만들고 비슷한게 prototype을 한다.
:네비게이션 디자인을한다.
-유저 인터페이스의 주요 요소들은 무엇인지,그것들은 어떻게 관련있는지,
다른 어플리케이션의 어느section과 연동하는지를 정의한다.
:툴,프래임워크,Api등 개발하는동안 사용할것들을 정의한다.
2)특별한 사용자의 작업들
:다른 타입의 사용자로 정의한다.
:나라타주 usecase를 만든다.
:시나리오을 이용하여 구체적인 사용법을 만든다.
3)Non-Functional 요구를 분석한다.(Analyze Non-Function Requirements)
4)System Dynamaic을 문서화한다.
:activity diagrams을 만들고 usecase의 interaction을 capture한다.
5)use interface을 prototype한다.
:화면을 만들고 비슷한게 prototype을 한다.
:네비게이션 디자인을한다.
-유저 인터페이스의 주요 요소들은 무엇인지,그것들은 어떻게 관련있는지,
다른 어플리케이션의 어느section과 연동하는지를 정의한다.
3.오브젝트 분석
1)구체적인 책임들을 가지고있는 오브젝트를 찾는다.
:crc card를 가지고 후보 roles 과 objects를 찾는다.
:초기 object를 만들때까지 iterate를한다.
2)문서에 concepts 과 terms를 추가한다.
:정의한 concepts,중요한 behaviors describe,그리고 business rules capture
을 조그만한 사전이나 다른 문서로 만든다.
:무엇이 business rules인가?
-특별한 집단의 다양한 프로세스을 customize한 정책을 말한다.
:crc card를 가지고 후보 roles 과 objects를 찾는다.
:초기 object를 만들때까지 iterate를한다.
2)문서에 concepts 과 terms를 추가한다.
:정의한 concepts,중요한 behaviors describe,그리고 business rules capture
을 조그만한 사전이나 다른 문서로 만든다.
:무엇이 business rules인가?
-특별한 집단의 다양한 프로세스을 customize한 정책을 말한다.
(2)RDD Design
1.실험적인 Design
1)"solution"objects을 domain objects과 연관시킨다
2)objects에게 책임을 할당한다.
3)초기 협력모델을 개발한다.
이에따른 결과물
1)objects,roles,responsibillites,and collaborators의 crc 모델
2)sequence/collaboration 다이어그램
3)후보 클래스 찾음
4)작업 prototypes
2)objects에게 책임을 할당한다.
3)초기 협력모델을 개발한다.
이에따른 결과물
1)objects,roles,responsibillites,and collaborators의 crc 모델
2)sequence/collaboration 다이어그램
3)후보 클래스 찾음
4)작업 prototypes
2.design refinement
1)올바른 결정
:design 의견들 문서
2)design application 제어 스타일들
:제어스타일을 정의하고 책임을 결정한다.
3)object들 사이의 relationships을 가시적으로 만든다.
:UML을 이용한다.
4)유연성,지속성,일관성을 위한 object수정
:새로운 추상적인 object를 만든다.(계층적 상속 개발)
:적정한 role stereotypes을 이용하여 object roles를 수정.
:간단한 interfaces 와 패턴의 협력
:class들에게 역활을 할당한다.(class들은 다양한 interface를 implement한다.)
:디자인 패턴을 사용한다.
5)UML을 가지고 디자인한다.
6)시스탬 object와 class사이의 계약들을 정식화한다.
:design 의견들 문서
2)design application 제어 스타일들
:제어스타일을 정의하고 책임을 결정한다.
3)object들 사이의 relationships을 가시적으로 만든다.
:UML을 이용한다.
4)유연성,지속성,일관성을 위한 object수정
:새로운 추상적인 object를 만든다.(계층적 상속 개발)
:적정한 role stereotypes을 이용하여 object roles를 수정.
:간단한 interfaces 와 패턴의 협력
:class들에게 역활을 할당한다.(class들은 다양한 interface를 implement한다.)
:디자인 패턴을 사용한다.
5)UML을 가지고 디자인한다.
6)시스탬 object와 class사이의 계약들을 정식화한다.
참고한곳:Overview of Responsibility-Driven Design
Posted by 전용우