Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

How well do UML and the C language work together?

Posted on 2010-09-13
5
648 Views
Last Modified: 2013-11-12
I'm aware that UML is language-agnostic, but since it was originally developed for OOP, I'm wondering how well it would describe a procedural language like C.   I need to model legacy code, but if not UML, then what?

Thank you.
0
Comment
Question by:fuze44
5 Comments
 
LVL 16

Assisted Solution

by:SriVaddadi
SriVaddadi earned 100 total points
ID: 33667242
Are you using Object C? or plain C? It also depends on what you want to draw i mean use-case would make sense but at the same time class diagram may not make sense. Sequence diagram may make some sense.
0
 
LVL 12

Assisted Solution

by:marklorenz
marklorenz earned 200 total points
ID: 33667866
Do you need to create designs for new efforts in C or need to document and add to existing C code designs? In either case, you will want to use a tool - doing this by hand is not feasible in any reasonable size project.  Enterprise Architect (EA) among other tools will reverse engineer as well as generate C code from UML designs.  So, in either situation you should be all set.

There are ways to do OO designs that apply to function-oriented languages.  Take a read of this:
http://www.planetpdf.com/codecuts/pdfs/ooc.pdf

In addition, there are parts of UML and agile (e.g. user stories, collaboration and state diagrams) that apply no matter the language.  Finally, C++ and C# are in the same language family, adding different levels of OO support.  That may be a path you could consider.

Best of luck, Mark
0
 
LVL 12

Assisted Solution

by:marklorenz
marklorenz earned 200 total points
ID: 33667871
0
 
LVL 18

Accepted Solution

by:
DarrenD earned 200 total points
ID: 33673084
Hi,

This is an interesting article on Rhapsody.

http://www.drdobbs.com/184401948;jsessionid=0ZOCMNSXZ3R3LQE1GHPCKH4ATMY32JVN?pgno=1

The company has been bought by IBM since and you can get a trial version here.
http://www-01.ibm.com/software/awdtools/rhapsody/

Just a thought,

Darren
0
 

Author Comment

by:fuze44
ID: 33674318
This effort is to diagram an existing system which is coded in plain C.  The system is very large and complex, and it employs many complex mathematical algorithms.  No one developer can understand it all, so we're wanting to make the parts and the whole more comprehensible to the team.  Abstraction via diagrams would be very helpful.  

Perhaps an OO paradigm applied to this procedural code would be helpful.  Many of the developers here are actually engineers, so it might make concepts more tangible.   Processes and data could be discussed as more distinct entities.

Thanks to everyone for your input and links.  I will read those and follow up with any questions/comments that arise.  I'll also be checking here for additional posts.
0

Featured Post

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
BT Wayleave process and solicitors. 1 68
IT project management 7 140
software update managed change control 1 92
Project Operations Manual 2 74
Dependencies in Software Design In software development, the idea of dependencies (http://en.wikipedia.org/wiki/Coupling_%28computer_programming%29) is an issue of some importance. This article seeks to explain what dependencies are and where they …
Introduction Many of the most common information processing tasks require sorting data sets.  For example, you may want to find the largest or smallest value in a collection.  Or you may want to order the data set in numeric or alphabetical order. …
With the power of JIRA, there's an unlimited number of ways you can customize it, use it and benefit from it. With that in mind, there's bound to be things that I wasn't able to cover in this course. With this summary we'll look at some places to go…

860 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question