2010-06-10 3 views
0

나는 거의 전체적으로 직선 -c (nginx)로 작성된 소스 기반으로 작업하고있다. 그러나 컴파일 타임 메타 프로그래밍 및 런타임 디스패치 (OOP)와 같은 풍부한 고급 프로그래밍 기술을 사용합니다.C 프로그램을 모델링하기위한 협약

ER 다이어그램, UML 클래스 다이어그램 및 UML 시퀀스 다이어그램을 그려보고 싶습니다. 그러나 둘 사이에 깔끔한 매핑을 유지하려면 일관된 규칙을 적용해야합니다. 그래서, 나는 비슷한 스타일의 c-code에 그러한 관습을 수립하거나 적용하는 자료에 대한 언급이있다.

편집

음, 문제는 아주 구체적인, 그리고 같은 나는 곧 유용한 답변을 기대하지 않습니다.

Diomides Spinelles의 "코드 읽기 - 오픈 소스 관점"이라는 책에서 발췌 한 내용을 읽기 시작했습니다. 이 책은 대형 복합 시스템의 코드를 읽는 기술을 가르치기 위해 작성되었으며, 곧은 c가이 책에 사용 된 지배적 인 언어 인 것으로 보입니다. UML은 첫 번째 장에서 선택한 모델링 언어로 소개됩니다.

나는이 책에서 수립 한 규칙을 따라야한다고 믿는다.

답변

1

C에서 코드의 클래스와 같은 함수 조직이 자주 사용됩니다. 이 에 따르면 절차 언어의 경우 "클래스 패턴" 함수 앞에는 "클래스"이름 접두사가 붙습니다. 하나는 컨스트럭터, 액세서 및 뮤 테이터 기능을 구분할 수 있습니다. 이러한 것들을 UML 클래스 다이어그램에 매핑하는 것은 간단합니다. 다시 말하지만, 요즘은이 패턴이 매우 일반적이므로 드로잉 할 가치가 있습니다.

UML 시퀀스 다이어그램은 C++에서 this과 같은 수신자 개체가 없기 때문에 C 함수에 직접 적용 할 수 없습니다.이 개체는 수직선이있는 막대로 표시 할 수 있습니다. 따라서 UML 시퀀스 다이어그램 대신 일반 그래프 콜 그래프을 사용할 수 있습니다. 어떻게 든 UML로 호출 그래프를 표현할 수있는 몇 가지 방법이 있다고 생각합니다. 그러나 그렇게 편리하지 않을 수도 있습니다.

C 코드에서 암시 적으로 정의 된 유한 상태 시스템 (FSM)을 보는 것이 일반적입니다. C에서 직접 표현할 수는 없지만 개발자는 여러 가지 상황에서 개발자가 컨트롤 논리를 구성하는 데 C를 사용할 수 있습니다. "FSM 패턴"의 인스턴스는 C 소스에서 추출 할 수 있으며 UML 상태 차트 다이어그램으로 그릴 수 있습니다.

마지막으로, 파일 분해의 시각적 표현은 상당히 유익 할 수 있습니다. 패키지가 함수와 정적 데이터를 포함하는이 목적을 위해 UML 패키지 다이어그램을 사용할 수 있습니다.

+0

더 빨리, 잘 쓰여진 답변을 수락하지 못해 죄송합니다. 나는 관계형이 현대 C의 OO, 콜 그래프 및 메타 프로그래밍 요소를 포착하는 ER 다이어그램으로 C 파일을 분해하는 유사한 접근법을 고안해 냈습니다. 나는 맞춤형 스텐실로 ipad에서 omnigraffle을 사용하고 있습니다. –

관련 문제