Solved

How well do UML and the C language work together?

Posted on 2010-09-13
5
633 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
Comment Utility
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
Comment Utility
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
Comment Utility
0
 
LVL 18

Accepted Solution

by:
DarrenD earned 200 total points
Comment Utility
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
Comment Utility
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

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

In Agile (http://en.wikipedia.org/wiki/Agile_software_development), time and again people ask this question "How would you estimate a release for a product?". When it comes from management they want to know the following: Calculate the man hours wh…
Transparency shows that a company is the kind of business that it wants people to think it is.
This video shows how to remove a single email address from the Outlook 2010 Auto Suggestion memory. NOTE: For Outlook 2016 and 2013 perform the exact same steps. Open a new email: Click the New email button in Outlook. Start typing the address: …
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.

744 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

Need Help in Real-Time?

Connect with top rated Experts

15 Experts available now in Live!

Get 1:1 Help Now