엔지니어로서 우리 모두는 인공물 (건물, 프로그램, 회로, 분자 등)을 "설계"합니다. 그것은 일종의 결과 (디자인 명사)를 생성하는 활동 (디자인 동사)입니다.
우리는 모두 명사 디자인이 인공물 자체와 다른 실체라는 데 동의한다고 생각합니다.
소프트웨어 비즈니스 (실제로 결과 제품 아티팩트를 향상시켜야하는 비즈니스)의 주요 활동은 "디자인 (명사)"을 이해하는 것입니다. 그러나 우리는 커뮤니티로서 사람들이 자신의 코드 기반에 대한 사실을 재발견하기 위해 노력한 노력의 양에 의해 증명되는 것처럼 그것을 기록하는 데 거의 완전히 실패한 것처럼 보입니다. 누군가에게 코드의 디자인을 보여주고 당신이 얻는 것을 보도록 요청하십시오.
소프트웨어 디자인은 다음과 같은 것으로 생각합니다.
- 어떤 소프트웨어에 대한 명시 적 사양은 어떻게해야되고 그리고 그것을 얼마나 잘하는지
- 코드의 명시 적 버전 (이 부분은 간단합니다. 누구나 가지고 있음)
- 코드의 각 부분이 사양을 달성하는 방법에 대한 설명 (예 : 사양 조각과 코드 조각 간의 관계)
- 코드가 왜 그런지에 대한 이론적 근거 (예를 들어, 왜 다른 것이 아닌 특정 선택이되는지)
디자인이 아닌 것은 코드에 대한 특정 관점입니다. 예를 들어 [특별히 선택하지 말 것] UML 다이어그램은 디자인이 아닙니다. 오히려 코드에서 파생 할 수있는 속성이거나 코드에서 파생 할 수있는 속성입니다. 그러나 일반적으로 UML에서 코드를 파생시킬 수는 없습니다.
50 년 이상 소프트웨어를 구축 한 후에 왜 이것을 표현할 수있는 방법이 없습니까? (명백한 예와 저를 모순하지 마십시오!)
우리가 그렇게해도 대부분의 커뮤니티는 디자인 코드를 잃어 버릴 수 있도록 "코드"를 얻는 데 집중하는 것 같습니다. (IMHO, 디자인이 엔지니어링의 목적이 될 때까지 디자인에서 추출 된 아티팩트로이 문제를 해결하지는 않습니다).
디자인을 녹음하는 수단으로 무엇을 보았습니까 (설명한 의미에서)? 논문에 대한 언급은 좋을 것입니다. 구체적이고 일반적인 수단이 성공적이지 않다고 생각하는 이유는 무엇입니까? 이것을 어떻게 바꿀 수 있습니까?
[나는 위의 글 머리 기호 관점을 살려 내 자신의 아이디어 가 있지만 다른 사람들의 답변에 관심이 있습니다 ... 그리고 내 계획을 구현하기가 어렵습니다 [아마도 그게 진짜 문제입니다 :-]]]
2011/1/3 편집 : 답변 스레드 중 하나는 "문서"(특히 텍스트가 아닌 형식 일 수 있음)가 적절할 수 있음을 암시합니다. 나는 이것을 믿지 않는다는 것을 분명히해야한다고 생각합니다. CASE 도구는 80 년대 초반에 등장했지만 초기 도구는 주로 그린 그림에 대한 픽셀 만 캡처했습니다. 이 도구는 상업적으로 성공했지만 실제로는 큰 도움이되지 못했습니다. 추가 "디자인"아티팩트를 공식적으로 해석 할 수없는 경우 심각한 도구 도움말을 얻을 수 없다는 것이 핵심 통찰력이었습니다. 장기적으로 유용한 형태의 디자인 캡처에도 동일한 통찰력이 적용된다고 생각합니다. 공식적인 구조가 없다면 실제로는 사용되지 않습니다. 텍스트 문서는이 테스트에 거의 실패합니다.