나에게 있어 설계란,
개발을 요청하는 사람들이 자신의 생각을 효과적으로 정리할수 있게 해주는 틀
로 우선 정리
게시판과 같이 기능 당 CRUD 가 1대1로 대응하는 세부적인 영역의 경우, 개발자는 큰 고민없이 바로 시작가능함.
하지만, 이보다 더 복잡한 비즈니스 룰에 따르는 기능이라면 고객(또는 담당자)은 자신이 원하는 비즈니스의 영역과 구분을 한번에 말하기 힘들고, 중첩된 영역에 대해선 혼자서 말하기 어려움
즉, UML이라는 건 1명의 담당자와 1명의 개발자가 소통하기 위한 도구보단, 서로 다른 업무 혹은 서로 중첩되는 업무를 담당하는 수십명의 담당자들과 한 명의 개발자가 문제를 정의하고 소통하기 위한 도구에 가깝다고 생각.
(TO ME) 내가 개발하고 싶은 걸 다른 사람도 이해하고, 적용할 수 있게 전달하는 방법
- 최소한 누락은 없어야
- 가능하면 개발을 좀 빠르게 진행하는데 도움
(TO ME) 나에게 개발을 요청하는 사람들이 자신의 생각을 효과적으로 정리할수 있게 해주는 도구
wikipedia's Design chapter에 의하면,
UML offers a way to visualize a system's architectural blueprints in a diagram
여기서 system이니 blueprints니 하는 것들은 여러 당사자들의, 수많은 업무(job)와 프로세스, 그리고 절차들의 합으로서 한번에 나오는 게 아니라고 판단. 이러한 접근과 설계 UML 예시를 바탕으로 기본 경험을 습득
신기하게도,
처음에는 온전히 개발자의 영역이라고 생각하고 접근하고, '한번에' 누락도 없어야하고, 개발에 직접적으로 도움이 되는 '무언가'를 완성하려고 하니까 손도 못댐.
그리고 하는 것 없이 시간은 시간대로 들고, 막연했음, 확신이 없고, 붕뜬 느낌. 근데 원래 그래왔던 거 같음. 처음의 접근을 바꿨으면 됬지.
한편,
개인적으로 하도 영어문법을 많이 배워서 그런가, language하면 grammer로서 textual만 강하게 떠오름. 회화중심으로 배웠으면 language라는 것에 손짓,몸짓 등 눈으로 보이는 것들도 좀더 쉽게 떠올랐을 것 같음
한국어로 '배운 걸 너의 언어로 표현하라'라고 하면 나는 마인드 맵같은 그림부터 그렸을듯함. 편하니까, 그리고 나만 편한 게 아니니까 UML은 코드가 아닌듯
(TO ME) 시각적 요구사항 정의서
일반적으로 엑셀의 글자형태로 제공되는 요구사항 정의서에 대응하여 diagram으로 표현하는 방식이라고 이해. 이에따라 명세적 요구사항 정의서부터 시작
요구사항 정의서, 요구사항 기술서, 명세서와 동급으로 일단 이해
설명에 따라, FR은 메소드로 구현되어 결과를 리턴하는 기능. NFR의 경우 대체로, 그 회사 비즈니스 룰에 의해 제약되는 조건으로 우선 이해, 가령 반도체회사 제조 공정에서만 요구되는 특정 최소값이라든지
상단 요구사항을 유즈케이스 목록로 상세화
추가로, Diagram
(나중에 인텔리제이 플러그인으로 그릴예정)
draw.io and class diagram 참고는 해둠
현재 이클립스의 경우 관련 uml 플러그인활용(object aid을 위해선 추가 설정이 필요함. 추후 인텔리제이에서 관련 플러그인 활용으로 대체)
(나중에 인텔리제이 플러그인으로 그릴예정)
draw.io and sequence diagram 우선 활용
현재 이클립스의 경우 관련 uml 플러그인활용(object aid을 위해선 추가 설정이 필요함. 추후 인텔리제이에서 관련 플러그인 활용으로 대체)