UML은 C++을 사용하여 모델링 시스템에 가장 일반적으로 사용됩니다. 내 프로젝트에서 C는 구현 언어이다. C에 적용 할 수있는 UML 전략에 대한 자료를 찾고 있습니다. 설계 중에 UML을 사용하고 시스템의 여러 측면을 표현하고자합니다.C 프로그래밍 언어 용 UML
답변
특히 C에 대해 UML을 사용하는 것에 대해 논의하는 기존 리소스에 대해서는 잘 모릅니다. 다른 사람들이 언급했듯이 UML은 언어에 구애받지 않습니다.
UML을 사용하면 문제 도메인에 대한 모델과 구현에 대한 모델을 가질 수 있습니다. 문제 도메인을 C로 모델링하지 말고, 고차원 OO로 모델링하십시오. 문제 도메인을 충분히 이해하면 구현 모델링을 시작할 수 있습니다.
절차 스타일의 C 구현을 모델링를 들어, 다음 다이어그램은 유용 할 수 :
는- 클래스 다이어그램 :
- 쇼 C 모듈 API를
- 쇼 C 모듈 관계 (주로 비 종속성 OO)
- 구조 및 열거 형 표시 (< < 스테레오 타입>>)
- 패키지 다이어그램 : 라이브러리의 내용 표시 (모듈) 및 라이브러리 사이의 종속 관계
- 활동 다이어그램 : 설명하는 흐름도 적지 않은 알고리즘
- 시퀀스/협력 다이어그램 : 표시 방법 모듈/개체 간의 이벤트/메시지/입력/출력은 시간에 발생합니다.
- 상태 차트 다이어그램 : 물론 상태 시스템의 경우!
, 클래스 다이어그램에 확장 할 수 있습니다 "학대"그 절차 스타일의 C에 대한 다음과 같은 방법으로 :
- 글로벌 통근 기능 -> 공공 방법
- 지역 정적 함수 -> 개인 방법
- 글로벌 통근 변수 -> public 멤버
- 지역 정적 변수 -> 개인 회원
- 구조체 -> "구조체"stereotyp와 클래스 전자
#define
상수 -> "열거"고정 관념
실험, 당신은 UML을 남용에 대한 자신의 규칙을 찾을 수와 클래스입니다.
C의 문제점은 절차 적 프로그래밍 언어에 더 가깝다는 것입니다. C 애플리케이션으로 세분화 된 디자인을 얻는 것이 어렵습니다. C로 작업하는 경우 시퀀스 다이어그램 및 구성 요소 다이어그램을 종속성 및 상호 작용의 그래프가 아닌 진행중인 작업의 개요 및 개요와 함께 유지할 수 있습니다.
C는 "기능적"프로그래밍 언어가 아닙니다. 내가 찾은 용어는 "절차 적"이라고 생각합니다. – coobird
당신은 그것에 대해 옳았어요, 생각하고 있었는데 ... 기능은 아니지만 클래스 = 기능적 ...하지만 가장 엄격한 정의에 따르면 기능적입니다 ... 작동합니다 : P – monksy
UML이 C에 적합하지 않다는 것에 동의합니다. UML이 객체 지향적 인 사고 체계에서 파생되었다는 점을 감안할 때. 하지만 상속과 다형성은 단순하지는 않지만 함수 포인터를 포함하는 구조체를 사용하여 C에서 최소한의 관계 기반의 객체 지향 구조를 해킹 할 수 있습니다. 어느 쪽이든, UML은 C 언어에서 그다지 유용하지 않습니다. –
객체 지향 디자인은 언어와 독립적이며, 물론 UML을 사용하여 시스템을 디자인 할 수 있습니다. 랩소디와 같은 일부 도구는 코드 생성 및 라운드 트립을 허용 할 것이며 C++가 옵션이 아닌 몇 가지 특수 프로젝트에 사용합니다. 직접 코드를 작성하려면 Subsystem_Module_Class_Method와 같은 명명 규칙을 사용하여 객체 지향 방식으로 함수의 이름을 지정하고 클래스 당 .c 파일을 사용하십시오. C를 사용하면 깨끗한 디자인에 대한 장애물이되지 않습니다.
- 1. 다른 프로그래밍 언어 용 Selenium-RC 만들기
- 2. .NET 용 D 프로그래밍 언어 사용 - 프로젝트
- 3. C# 모양 계층 프로그래밍 언어
- 4. gcc로 c 프로그래밍 언어 확장하기
- 5. "C Set 2"프로그래밍 언어
- 6. OpenGL 스크린 샷 소프트웨어 용 프로그래밍 언어
- 7. C 언어 초보자 용 RDMS?
- 8. C++ 용 UML 다이어그램을 만드는 프로그램
- 9. Objective C 용 무료 UML 다이어그램 도구
- 10. 온보드 Symbian 프로그래밍 언어
- 11. 휴대 전화 프로그래밍 언어
- 12. 프로그래밍 언어 :
- 13. 프로그래밍 언어
- 14. HTTPS 용 C++ 프로그래밍
- 15. Ruby 용 UML
- 16. AOP 용 UML 확장
- 17. .NET 용 UML 라이브러리
- 18. 스위치 프로그래밍 언어
- 19. 프로그래밍 언어 질문 만들기
- 20. 유형 안전한 프로그래밍 언어 ..?
- 21. 웹용 프로그래밍 언어
- 22. 스크립팅 또는 프로그래밍 언어?
- 23. 프로그래밍 언어 이름의 역사?
- 24. SIMD 프로그래밍 언어
- 25. 깊이있는 C 언어 학습을위한 프로그래밍 리소스
- 26. C 프로그래밍 언어 2. ed. 질문 :
- 27. 웹 프로그래밍 언어 벤치마킹?
- 28. 다른 프로그래밍 언어 가능성
- 29. UML 코드 생성 도구 (C#
- 30. OCaml 직접 개체 용 UML
제 질문은 C에서 OOP을 수행하는 방법에 관한 것이 아닙니다.이를 위해 www.state-machine.com/devzone/cplus_3.0_manual.pdf와 www.planetpdf.com/codecuts/pdfs/ooc와 같은 여러 가지 방법이 있습니다. .pdf. 언급 된 스티븐 (steven)이 말했듯이 C에서는 시퀀스 다이어그램과 컴포넌트 다이어그램 만 사용할 수 있습니다. 이 전략을 설명하는 자료를 찾고 있습니다. 나는 파일이 모듈을 나타내며 시퀀스 다이어그램에서 객체 대신 사용될 수 있다는 생각을 가지고 있습니다. 그리고이 전략을 사용하여 여러 모듈 간의 흐름을 보여줍니다. – Andy
링크를 제공해 주셔서 감사합니다, Andy. –