专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »嵌入式开发 » uml建模软件:用UML建模开发嵌入式软件 »正文

uml建模软件:用UML建模开发嵌入式软件

来源: 发布时间:星期五, 2008年12月12日 浏览:2次 评论:0

引 言
    
面向对象开发方法无疑是当前最流行软件开发方法这归功于面向对象开发众多优点:可靠性高所开发更健壮;由于面向对象编程可重用性可以在应用中大量采用成熟类库从而缩短了开发时间;继承和封装使得应用修改带来影响更加局部化应用更易于维护、更新和升级另外UML建模语言和Rosc等CASE工具为面向对象流行也起了很太作用这些工具允许应用规范面向对象分析和设计方法与理论远离纠缠不清源代码使得构建和设计变得更直观、更容易理解与修改从而大大提高开发效率

嵌入式系统应用越来越广泛嵌入式计算机在数量上远远超过了各种通用计算机嵌入式软件开发与PC软件开发相比存在些特别地方;①嵌入式软件代码往往要求高质量、高可靠性;②嵌入式软件要求尽可能短二进制代码长度和数据长度尽管半导体技术发展使处理器速度不断提高、片上存储器容量不断增加但在大多数应用中存储空间仍然是宝贵;③嵌入式系统往往存在实时性要求这些特别要求使得面向对象开发不太适合嵌入式系统汇编语言是种非结构化语言对于大型结构化设计已经完全不能胜任了而C语言相比其他高级语言具有明显性能优势这些原因使得C语言成为嵌入式系统开发最佳选择

随着后PC时代到来嵌入式应用迅速增长应用复杂性也急剧增加C语言对应传统结构化设计方法已不能满足嵌入式软件设计和开发需要能不能把面向对象开发与C语言优点结合起来?对这个问题已经有人提出过些方法主要集中在用C语言来实现C语法如用结构来模拟类指针来表示成员这些方法使得本来语法就已经很复杂C语言更加麻烦同时没有了C语言快速、高效优点这里提出种新方法:用面向对象方法进行分析和设计最后直接用C语言进行编码

1 应用实例
    
绕线机控制系统是个控制两个电机单片机控制系统我们使用本文提出新开发方法进行这个系统开发系统采用瑞萨公司H8/300H系列16位单片机H8/3062整个系统硬件结构如图l所示单片机通过I/O口与Flash芯片、控制面板、扬声器以及电机驱动电路相连并通过光电编码盘检测直流电机转动圈数



作为面向对象建模工业标准UML几乎被所有面向对象软件项目所使用这个项目也使用UML来建模用到CASE工具是RoseUML提供了5类图进行不同阶段建模:用例图、静态图、行为图、交互图、实现图在开发过程中可根据不同阶段具体要求选择不同图形来描述系统静态结构模型或者动态行为模型般过程是:①用UML用例模型确定目标系统主要功能和行为以便准确、完整地识别系统需求;②通过对用例模型分析从用例描述中识别反映问题域本质类和对象并利用UML类图以及类之间关系揭示系统结构和组成;③利用UML动态模型中顺序图、协作图、状态图和活动图描述系统结构元素动态特性和行为

1.1 需求过程
    
系统主要运行过程:①开机时步进电机自动对原点;②修改参数设置时单片机把修改值存入Flash;③启动键按下时直流电机开始转动绕线单片机通过光电编码盘检测转动圈数并控制步进电机按照设置参数排线绕线完成后自动停止;④暂停键按下时直流电机停止绕线步进电机排完已转舀数后停止;⑤复归键按下时系统重启

系统参与者只有用户1个通过对系统需求分析可以识别3个主要用例:开机、机器设置和绕线控制通过对用例步分解得出系统用例图如图2所示



1.2 设计过程
    
完成需求分析之后进入设计阶段这个阶段中以需求分析结果为基础找出系统所需要类和对象以及其相互关系针对嵌入式系统特点面向对象些高级特性不能使用动态创建对象、派生和多态这样特性会大大降低系统速度并增大代码空间和数据空间对瑞萨H8/3062这款单片机只有128KBROM和4KBRAM节省每个字节都显得非常重要

通过对用例和系统结构分析识别出来类和关系如图3所示



出于可移植性考虑所有类被分成3个层次:

最顶层是功能逻辑类抽象MachineStting为机器设置类;Keys为按键类Displayr为显示类MotorController为电机控制器类这些逻辑上类与硬件无关便于以后硬件修改同时使得开发绕线机不同版本变得非常容易如从平绕机到开发环行机从二轴绕线机到开发三轴绕线机

中间层是外围硬件类抽象Flash为Flash存储类用于存储设置参数;Speaker为扬声器类;Panel为面板类;DCMoto/为直流电机类;StepMotor为步进电机类

最底层是单片机及其内部功能模块类抽象H8/3062为单片机类用于封装输入/输出口;Timer_KeyShake为按键防抖定时器;Timer_DCMotor为直流电机PWM脉冲产生定时器;Timer_DCCapture为直流电机圈数捕获定时器;Timer_StepMotor为步进电机PWM脉冲产生定时器分这层可以使得变换单片机类型非常容易瑞萨H8/300H系列单片机在国内应用非常罕见之所以选用这款是为了与国外产品竞争这样可以更快、更好地打开国际销路但在选择这款单片机同时已经做好了移植到ARM内核单片机准备

为了理解系统动态行为还应该用顺序图、协作图、状态图和活动图对系统动态行为进行描述状态图对嵌入式系统设计尤其重要这里用其对MotorController状态转换进行描述如图4所示



可以用时序图等对用例进行进分析“启动”按键按下后处理时序图如图5所示



建模过程不是个直线过程它往往是个演化、迭代过程不断地分析、评价、修改、再分析才可能得到个高质量模型为高质量软件打下基础

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: