分类: 嵌入式
2009-12-19 10:38:56
或者说
用oo的uml进行设计,用c实现软件,最后会不会把c下很简单的事弄得很复杂?而且嵌入式系统平台下软件应更关注系统资源的消耗
there are some books about uml for real-time, like omt, real-time uml, crc card.
rational rose is a case tool for business domain. you can use rational rose realtime, it is a case tool for real-time domain. it supports psos and other major rtos. porting to a specific rtos could be easy.
also rhapsody from i-logix is a good tool.
in general speaking, uml is used in business domain, not real-time domain, it is totaly different between both domains. how to use oo in real-time doamin is a big challenge. i have used rational rose real-time for developing a cell phone system,and got a very good result. rose real-time can generate all c codes not skeleton like rose. and have a very good state machine for simulating the system before doing any hardware implement.
rose real-time comes from objectime based on "real-time object-oriented modeling" written by bran selic.
rhapsody is based on "doing hard time" and "real-time uml" written by douglass.
if you read these books, you can find a lot of methods, those may help you to understand some issues in real-time domain.
again, how to use oo in real-time domain is a key point.
在实时嵌入式系统中,利用uml进行设计开发是不是技术的方向呢?如果不是,那么现在实时嵌入式系统的软件开发方法有哪些,各有什么优势?
let me clear some basic issues.
1. uml is a notation, not a methodology.
2. omt, octopus, real-time are some kind of oo methodology.
3. any oo methodology should be notated by some notation like uml.
4. oo used in real-time system is a technical trend.
if you want to use uml in real-time system, you need do following
steps.
1. study oo methodology for real-time
2. study uml for business domain, and uml for real-time domain
3. use a case tool for implement your design, coding, and testing
oo methodology is important, that is why i emphasis it serveral times.
在嵌入式系统中使用了面象对象的分析设计方法,并且最后的代码是用c语言实现的。
在这里,分析设计是用的rose,但没有用它生成代码,仅提供了系统的动态和静态模型文档。代码是手工逐行写出的!书写原则是:书写编译后的代码。这些模型是可以写出c++代码的,我们直接书写c++预编译成c语言后的c代码。当然这需要对c++是如何编译实现的要有深入了解。
uml是完全可应用到嵌入式系统中。只是你所选的辅助工具不同,会对你的工作难度和工作量产生巨大影响。
-------------------------------------------------------------------
我见过rhapsody,很不错的工具,可以把uml图直接转换成c++或c代码。但它也会在系统中引入它的一个程序框架,用以支持顺序图、状态图的运行、调式和仿真。它带来的好处显而易见,但同时,它对很多嵌入式应用又形成阻力。例如,如果你新增功能是在原来的已有的过程式软件包上打个补丁,新的框架和原系统的怎么配合?那么你得真正消化和吸收这个附加的框架,这个难度应该不底于探索mfc结构。对于一个完全新的项目,rhapsody很不错。对于扩功能打补丁的项目,三思呀。 不知道rose real-time 在这方面的表显如何?