대부분의 IT 직원은 아니지만 코딩하기 전에 UML 또는 다른 유형의 다이어그램으로 소프트웨어를 모델링하는 것이 유리하다고 생각합니다. (제 질문은 UML에 관한 것이 아니며 소프트웨어 디자인에 대한 그래픽 또는 텍스트 설명 일 수 있습니다.)
확실하지 않습니다. 주된 이유는 다음과 같습니다. 코드가 거짓말을하지 않습니다. 컴파일러 또는 인터프리터에서 확인합니다. 자동화 된 테스트가 있기를 바라며 정적 코드 분석을 통과해야합니다. 모듈이 다른 모듈과 올바르게 인터페이스하지 않으면 일반적으로 오류 메시지가 표시되므로 코드에서 분명합니다.
이 모든 것은 다이어그램 및 기타 문서로는 수행 할 수 없습니다. 예, UML을 검사하는 도구가 있지만 지금까지 본 모든 것은 매우 제한적입니다. 따라서 이러한 문서는 불완전하거나 일관성이 없거나 단순하지 않은 경향이 있습니다.
다이어그램 자체가 일관성이 있어도 코드가 실제로이를 구현하는지 확신 할 수 없습니다. 예. 코드 생성기는 있지만 모든 코드를 생성하지는 않습니다.
필자는 때로는 코드가 필연적으로 건축가, 디자이너 또는 큰 그림을 얻는 다른 보수가 많은 사람들이 다룰 필요가 없다는 이해할 수없는 혼란이 있어야한다는 가정에서 모델링 결과에 대한 집착과 같은 느낌을받습니다. 그렇지 않으면 너무 비쌀 것입니다. 따라서 모든 설계 결정은 코드에서 멀어져 야합니다. 코드 자체는 코드를 작성할 수 있지만 읽을 수는있는 전문가 (코드 원숭이)에게 맡겨야합니다. 아마도 어셈블러가 유일한 옵션 일 때 이치에 맞았지만 현대 언어에서는 매우 높은 수준의 추상화로 코딩 할 수 있습니다. 따라서 더 이상 모델링이 필요하지 않습니다.
소프트웨어 시스템 모델링에 대한 어떤 주장이 빠져 있습니까?
그건 그렇고, 다이어그램은 소프트웨어 디자인의 특정 측면을 문서화하고 의사 소통하는 좋은 방법이라고 생각하지만 소프트웨어 디자인을 기반으로 해야한다는 것을 의미하지는 않습니다 .
설명:
그 질문은 불분명 한 것으로 보류되었다. 따라서 몇 가지 설명을 추가하겠습니다.
소프트웨어를 소프트웨어 설계에 대한 기본 진리의 원천으로 소프트웨어를 모델링하는 비 코드 문서를 사용하는 것이 타당한 지 묻고 있습니다. 이 문서에서 코드의 상당 부분이 자동으로 생성되는 경우를 염두에 두지 않습니다. 이 경우 문서 자체를 모델이 아닌 소스 코드로 간주합니다.
이 절차의 몇 가지 단점을 나열한 이유는 (많은 사람들이 내 경험에 따라) 소프트웨어 설계를 선호하는 방법으로 생각하는 이유입니다.