1)high-level system 의 architecture을 개발한다. :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과 연동하는지를 정의한다.
3.오브젝트 분석
1)구체적인 책임들을 가지고있는 오브젝트를 찾는다. :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.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사이의 계약들을 정식화한다.
댓글을 달아 주세요