2. 기술 분석가와 도메인 전문가가 도출한 모델 개발자가 즉흥적으로 만든설계 이 둘간의 차이를 좁혀 모델 = 설계 를 만들자.
3. 모델 주도 설계 (Model Driven Design) 모델링 패러다임과 도구 지원 내부 드러내기 : 왜 모델이 사용자에게 중요한가 실천적 모델러(Hands-On Modeler)
4. 모델 주도 설계 (Model Driven Design) 모델링 패러다임과 도구 지원 내부 드러내기 : 왜 모델이 사용자에게 중요한가 실천적 모델러(Hands-On Modeler)
5. 모델 주도 설계 (Model Driven Design) 분석 모델 (Analysis Model) 업무 도메인의 개념만을 체계화 하고자 분석한 결과물. 이해하기 위한 수단으로만 간주되어 실제 설계로 이어지지 않는다. DDD 에서 모델과 설계의 연결로는 적합하지 않다. 중요한 발견은 설계/구현 도중에 나타난다.
6. 모델 주도 설계 (Model Driven Design) 설계 / 모델 느슨한 대응 ▶ 모델가치가 없다. 소프트웨어의 정확도 감소. 설계 / 모델 복잡한 대응 ▶이해하기 어렵다. 설계 변경시 유지보수가 어렵다. 핵심만 뽑아내서 적당하게 합시다.
7. 모델 주도 설계 (Model Driven Design) 도메인 모델을 있는 그대로 반영. Ubiquitous Language 를 지원. 분석, 설계 두가지 측면을 충분히 만족하는 단일 모델만들기. 기본적으로 사용한 용어 도출. (코드 작성시 사용) 모델링 패러다임을 지원하는 개발 도구와 언어 필요.
8. 모델 주도 설계 (Model Driven Design) 모델링 패러다임과 도구 지원 내부 드러내기 : 왜 모델이 사용자에게 중요한가 실천적 모델러(Hands-On Modeler)
9. 모델링 패러다임과 도구 지원 모델 패러다임 설계 밀접한 대응을 위해서는 패러다임이 필수적!!
10. 모델링 패러다임과 도구 지원 모델 패러다임 설계 객체지향 프로그래밍!! 개념적 모델과 직접적으로 유사한 객체와 관계를 만들 수 있다.
11. 모델링 패러다임과 도구 지원 절차적인 방식의 치명적 단점. 프로그래머가 도메인의 개념을 생각할 수는 있으나 프로그램 자체에 도메인 모델이 들어가 있지 않다. P53. 예제 (절차적인 방식에서 모델 주도적인 방식으로)
12. 모델 주도 설계 (Model Driven Design) 모델링 패러다임과 도구 지원 내부 드러내기 : 왜 모델이 사용자에게 중요한가 실천적 모델러(Hands-On Modeler)
13. 내부 드러내기 : 왜 모델이 사용자에게중요한가 MS IE 의 즐겨찾기 예. 사용자 ▶세션간 지속되는 웹사이트 이름 목록 구현 ▶ URL 이 저장된 파일로 간주 파일의 이름을 목록에 추가 결과 ▶즐겨찾기이름에 / : * ? “ < > | 등의 문자 포함 불가
14. 내부 드러내기 : 왜 모델이 사용자에게중요한가 문제점 ▶ 사용자 모델 / 구현 모델 달라 혼란 초래. 해결방안1 ▶구현 모델을 사용자에게 알리고 대안모델 제거. 해결방안2 ▶ 구현과 다른 새로운 규칙을 만들어 새로운 모델 제공. 결론 ▶ 실제 사용자의 관심사를 반영한 모델에 기반을 두면 사용자가 일관성있고 예상 가능한 행위를 할것이다.
15. 모델 주도 설계 (Model Driven Design) 모델링 패러다임과 도구 지원 내부 드러내기 : 왜 모델이 사용자에게 중요한가 실천적 모델러(Hands-On Modeler)
17. 실천적 모델러(Hands-On Modeler) 제조업 == 소프트웨어 개발업 ?? 숙련된 엔지니어 ▶ 제품 설계 노동자 ▶제품 조립 팀장님 ▶소프트웨어 설계 나 ▶Copy & Paste
18. 실천적 모델러(Hands-On Modeler) 제조업 == 소프트웨어 개발업 ?? 숙련된 엔지니어 ▶ 제품 설계 노동자 ▶제품 조립 팀장님 ▶소프트웨어 설계 나 ▶ Copy & Paste
19. 실천적 모델러(Hands-On Modeler) 프로그래머가 모델을 모른다면… 모델은 소프트웨어와 무관해진다. 코드변경이 곧 모델변경 이라는걸 모른다면… 리팩토링은모델을 강화가 아닌 약화 시킨다. 모델러가구현 프로세스와 분리됐을 경우… 구현상의 제약조건이 모델에 반영되지 못한다. 숙련된 설계자의 지식과 솜씨가 전달되지 못한다.
20. 실천적 모델러(Hands-On Modeler) 팀내 모든 팀원들은 자신의 일차적 직무와는 상관없이 모델과 코드를 둘다 알아야 한다. Ubiquitous Language 를 활용해 도메인 이해에 적극 참여해야 한다.
22. 모델 주도 설계 (Model Driven Design) 모델링 패러다임과 도구 지원 내부 드러내기 : 왜 모델이 사용자에게 중요한가 실천적 모델러(Hands-On Modeler) 분석과 설계 모두를 만족하는 단일 모델을 만들자.
23. 모델 주도 설계 (Model Driven Design) 모델링 패러다임과 도구 지원 내부 드러내기 : 왜 모델이 사용자에게 중요한가 실천적 모델러(Hands-On Modeler) 1. 패러다임은 객체지향 프로그래밍이 갑. 2. 도메인의 핵심 개념을 잘 뽑아 내자.
24. 모델 주도 설계 (Model Driven Design) 모델링 패러다임과 도구 지원 내부 드러내기 : 왜 모델이 사용자에게 중요한가 실천적 모델러(Hands-On Modeler) 사용자의 Needs 를 반영하는 모델을 만들어야 뒤끝이 없다.
25. 모델 주도 설계 (Model Driven Design) 모델링 패러다임과 도구 지원 내부 드러내기 : 왜 모델이 사용자에게 중요한가 실천적 모델러(Hands-On Modeler) 1. 모든 팀원들이 Ubiquitous Language 를 통해 코드와 도메인 이해를 다 해야 한다. 2. 팀원 모두가 코드==모델 임을 인식해야 한다. 3. 나도 팀장님과 똑같은 위치다.