UML jest najczęściej używany do modelowania systemu za pomocą C++. W moich projektach C jest językiem implementacji. Szukam zasobów dotyczących strategii UML, które mają zastosowanie dla C. Chcę używać UML podczas projektowania i reprezentować różne aspekty systemu.UML dla języka programowania C
Odpowiedz
Nie znam żadnych istniejących zasobów, które omawiają używanie UML specjalnie dla C. Jak wspomnieli inni, UML nie jest agnostykiem językowym.
Należy pamiętać, że w przypadku UML można mieć model dla domeny problemu, a inny dla implementacji. Staraj się nie modelować domeny problemu pod względem C, ale raczej jako OO wysokiego poziomu. Po odpowiednim zrozumieniu domeny problemu można rozpocząć modelowanie implementacji.
do modelowania implementacje proceduralny w stylu C, następujące schematy mogą być użyteczne:
- schemat Klasa:
- Pokaż C API
- relacje Pokaż Moduł C Moduł (głównie Zależności dla nie- OO)
- Pokazywanie struktur i wyliczeń (przy użyciu < < stereotypu>>)
- Pakiet schemat: Pokaż zawartość (moduły) bibliotek, a relacje z zależnościami między bibliotekami schemat
- aktywny: flowchartów algorytmy nietrywialne
- Sequence Diagram/współpraca: Pokaż, jak wydarzenia/komunikaty między modułami/podmiotów/wejścia/wyjścia pojawiają się w czasie
- Schemat statechart: Oczywiście dla maszyn państwowych!
Rozszerzając diagramów klas, można „nadużycie” je w następujący sposób dla proceduralny w stylu C:
- globalne funkcji extern -> metod publicznych
- lokalne funkcje statyczne -> Metody prywatne
- Globalne zmienne extern -> członkowie publiczne
- lokalne zmienne statyczne -> Użytkownicy prywatni
- elemencie -> klasa z "struct" stereotyp e
#define
stałe -> klasa z "wyliczenia" stereotypu
doświadczeniu, a znajdziesz swoje własne konwencje za nadużywanie UML.
Problem z C polega na tym, że jest to bardziej proceduralny język programowania. Trudniej jest uzyskać drobnoziarnisty projekt za pomocą aplikacji C. Jeśli pracujesz z C, możesz chcieć trzymać się diagramów sekwencji i diagramów komponentów, ponieważ opisują one i przeglądują to, co się dzieje, a nie wykres zależności i interakcji.
C nie jest "funkcjonalnym" językiem programowania. Uważam, że termin, którego szukano, jest "proceduralny". – coobird
Masz rację, myślałem ... funkcje, ale nie klasy = funkcjonalne ... ale według najostrzejszej definicji jest funkcjonalna ... działa: P – monksy
Zgadzam się, że UML nie jest dobrze przystosowany do C , biorąc pod uwagę, że UML pochodzi ze szkoły myśli zorientowanej na obiekt. Ale możesz * zhakować razem minimalną, opartą na relacjach, rozwodnioną konstrukcję obiektową w C używając struktur zawierających wskaźniki funkcji ... chociaż dziedziczenie i polimorfizm nie są tak proste. Tak czy inaczej, UML nie jest tak przydatny w C –
Projekt zorientowany obiektowo jest niezależny od języka i można oczywiście zaprojektować system przy użyciu języka UML. Niektóre narzędzia, takie jak Rhapsody, umożliwią także generowanie kodu i rundę w obie strony, używamy w niektórych specjalnych projektach, w których C++ nie wchodzi w grę. Jeśli chcesz napisać swój kod ręcznie, użyj konwencji nazewnictwa, takiej jak Subsystem_Module_Class_Method, aby nazwać twoje funkcje w sposób zorientowany obiektowo i użyj pliku .c dla każdej klasy. Używanie C nie przeszkadza w utrzymaniu czystego projektu.
Nie jest przeszkodą dla czystego projektu ... ale nie będziesz miał poziomu abstrakcji i projektowania komponentów tak jak w przypadku języka OOP. Z tego powodu stworzono OOP. – monksy
OOP można również wykonać w C: GTK jest tego dobrym przykładem. Znacznie wykorzystuje makra, ale syntaktycznie jest całkiem czysty. Zgadzam się, że inne języki integrują go lepiej w swojej składni, a kod wygląda może nieco czystszy, ale z C możesz osiągnąć te same cele. Abstrakcja jest w projekcie, kod po prostu odzwierciedla ją mniej więcej dobrze. – jdehaan
- 1. Konwencja nazewnictwa dla języka UML
- 2. Dobra biblioteka programowania liniowego dla języka C#?
- 3. Inicjalizacja strukturalna języka programowania C/C++?
- 4. EBNF lub BNF dla języka programowania LOGO
- 5. Sterownik PostgreSQL dla języka programowania Go
- 6. Obsługa dynamosu AWS dla języka programowania "R"
- 7. algebra liniowa biblioteki dla języka programowania D
- 8. Diagramy klas UML dla Xcode (szybkie programowanie)
- 9. Jak się uczyć R jako języka programowania?
- 10. Proponuj edytor tekstów lub IDE dla języka programowania kaplicy
- 11. wsparcie dla języka C++ 11?
- 12. RDMS dla początkującego języka C?
- 13. Objective-C i UML Modelowanie
- 14. Czy planujesz używać języka programowania Factor?
- 15. Jakie są zalety języka programowania Kotlin?
- 16. jak zminimalizować czas kompilacji języka programowania?
- 17. Funkcjonalna biblioteka programowania dla Objective-C
- 18. Schemat klasy UML C++ struct
- 19. Wtyczka UML dla Netbeans 7.0?
- 20. Interfejs API wyszukiwarki Google dla języka C#
- 21. Najlepszy analizator składni dla języka C#?
- 22. Tryb Emacsa dla języka w stylu c
- 23. C#: uzyskać litery alfabetu dla języka skandynawskiego?
- 24. Jaśmin dla języka C# i/lub Java
- 25. Rozwiązanie dla języka tureckiego-I w C++
- 26. Czy istnieje język programowania z semantyką zbliżoną do języka angielskiego?
- 27. Dobre maniery programowania C
- 28. C++ Builder lub Visual Studio dla natywnego programowania C++?
- 29. Nauka programowania języków programowania
- 30. Zrozumienie składni programowania C
Moje pytanie nie dotyczy tego, jak można zrobić OOP w C. Do tego mamy wiele metod, takich jak www.state-machine.com/devzone/cplus_3.0_manual.pdf i www.planetpdf.com/codecuts/pdfs/ooc .pdf. Jak wspomniano steven, w C możemy chcieć użyć tylko diagramu sekwencji i diagramu komponentów. Szukam niektórych zasobów, które opisują te strategie. Mam pewne pojęcie, że plik reprezentuje moduł i można go używać zamiast obiektu w diagramie sekwencji. I pokazuję przepływ pomiędzy różnymi modułami za pomocą tej strategii. – Andy
Dzięki za linki, Andy. –