软件项目管理在嵌入式系统中的应用研究
扫描二维码
随时随地手机看文章
项目管理方法通常用于PC系统的大型软件开发中。本文以项目时间管理为例,把软件项目管理方法引入嵌入式系统的开发之中。
以嵌入式USB主机为例,建立工作分解结构,利用网络图技术分析项目的关键路径,从而合理分配了嵌入式USB主机项目的设计开发时间,控制进度。
传统的嵌入式系统开发往往被归类于硬件开发,而采用汇编语言控制硬件CPU的方法被严格区分于面向过程、面向对象的PC平台软件的开发。但是随着嵌入式处理器和控制器、嵌入式实时操作系统等的发展,嵌入式系统的软件开发工作已越来越多的采用高级语言来进行,汇编语言则只应用在部分需要高效率的模块中并且嵌入在高级语言中。面向嵌入式CPU的软件编译器的特性也越来越接近于纯PC的软件编译环境。
在建立了硬件开发平台(包括嵌入式CPU选型、外围电路设计、功能模块设计、PCB电路板制作等)之后,嵌入式系统软件的开发工作对于整个系统的成功与否至关重要。其从算法设计、代码实现、流程控制到代码重用性、可靠性的提高等,都接近于PC平台的软件设计。二者都可以利用软件工程的方法来优化软件质量,通过软件项目管理来控制整个开发过程,使得每个项目能够有序、高效、高质量、按时的完成。二者的异同如图1所示。在嵌入式系统的开发中,同样应该利用软件项目管理方法来规划、控制整个项目的进行。
1 在嵌入式系统项目开发中进行软件项目时间管理的必要性
软件项目管理就是以项目管理的体系、融合软件开发的具体特点、为适应软件开发项目的需要,揭示最常见的、困扰软件项目的主要问题,提出较好的实践方法和解决方案。软件项目管理包括9大领域:项目整体、范围、时间、成本、质量、人力资源、沟通、风险和采购管理。范围、时间、成本和质量管理是软件项目管理的核心内容。而范围、时间、成本是项目管理的3要素,相互约束着执行,成功的项目应该是同时实现这3个方面的。
据美国国防部19世纪70年代立项研究软件项目做不好的原因,结果发现70%的项目问题是由于管理不善引起的,而不是因为技术能力不够;1995年,Standish Group研究表明,所有的开发项目中有32%的项目在它们结束之前被中止,此外多于一半的软件项目花费的成本相当于原来预算的2倍;只有42%的软件项目完成时达到了预期的范围和功能。可见,时间对于一个项目的成功是至关重要的。
本文以嵌入式USB主机项目为例,把软件项目时间管理的理念和方法引入其中。
2 嵌入式USB主机功能描述
有关嵌入式USB主机的内容可参见参考文献[5]。简而言之,嵌入式USB主机就是将PC上的USB主机功能嵌入式化。该系统由6大模块组成:MC68HC912D60A模块;SL811HS模块;CAN总线模块;键盘输入模块;LCD显示模块;SCI通信模块。
3 创建工作分解结构WBS
工作分解结构WBS(Work Breakdown Structure)是将项目按照其内在结构或实施过程的顺序逐层分解而形成的结构示意图。WBS是实施项目、创造最终产品或服务所必须进行的全部活动的一张清单,也是进度计划、人员分配和预算计划的基础。
根据分析,嵌入式USB主机项目的工作分解结构WBS如图2所示。
4 制定项目进度计划
关键路径法CPM(Critical Path Method)和计划评审技术PERT(Program Evaluation and Review Technique)在网络图的画法上基本相同,基本原理是用网络图来表达项目中各项活动的进度及其之间的相互关系,并在此基础上进行网络分析,计算网络中各项时间参数,确定关键活动与关键路线,利用时差不断地调整与优化网络,以求得最短工期,又叫做网络图技术。本文采用网络图技术,为嵌入式USB主机项目制定进度计划。
4.1 制定项目的活动表
在嵌入式USB主机项目的工作分解结构WBS的基础上,经过分析每一项任务的工作量和前后关系,可制定出如表1所示的项目活动表。
4.2 绘制前导图
以项目活动表为基础,前导图的绘制规则是:无先行活动的活动从开始结点发出,有的活动是并行的,有的活动是有先后顺序的,根据活动表中的关系,画出网络图。绘制的嵌入式USB主机项目的前导图如图3所示。其中无后继活动的活动汇聚于结束结点。每个节点的结构为,其中A代表节点活动编号;B代表最迟结束时间;C代表活动浮动时间;D代表最早结束时间。
4.3 前向路径计算活动最早开始时间TES和最早结束时间TEF
根据图3所示的前导图,求出每个项目活动的最早开始时间TES和最早结束时间TEF,结果如表2所示。计算顺序是前向从节点1往后计算,直至计算到节点9。
每一项活动的最早开始时间,均需要按照前导图的前后关系逐渐累加计算。需要说明的是,活动I是由F、G、H共3项活动汇聚而成的,因此I的最早开始时间TES等于这3个活动的最早结束时间的最大值,即如表2所示,I的最早开始时间
TES-I=max{18,13,10}=18
下一步,从表3中选取每一个节点的最早结束时间,填入前导图中,如图4所示。
需要特殊说明的是节点9的最早开始时间就是活动J的最早结束时间,即21。
4.4 后向路径计算活动最迟开始时间TLS和最迟结束时间TLF
这里,需要计算的是在不影响整个项目按期完成的前提下,本活动必须开始和完成的最迟时间。反向计算各活动的最迟结束时间时,要以结束结点的最迟结束时间等于最早开始时间为准。若一个结点有几个活动发出,则该结点(事件)的最迟开始时间取各活动最迟开始时间的小者。计算结果如表3所示。计算顺序是后向从节点9开始往前算。
最后,将每一个节点的最迟结束时间填入前导图,如图5所示。
4.5 确定关键活动及关键路径
(1)确定关键节点
总浮动时间是最迟开始时间和最迟结束时间的差,首先将计算后的各活动的总浮动时间填入表3,并将节点总浮动数填入前导图,如图6所示。
最早时间与最迟时间相等的点,也就是总浮动时间为0的节点是关键节点。因此,由图6可知,嵌入式USB主机项目的所有节点1、2、3、4、5、6、7、8、9均为关键节点。这是本项目的特殊之处。
(2)确定关键路径
由以上分析,以及表1可知,嵌入式USB主机项目的关键路径是1-2-3-4-5-6-7-8-9,而相应的关键活动是A、B、C、D、E、F、I、J。
这条关键路径在时间上没有回旋余地,即每个关键活动应满足最早开始时间等于最迟开始时间,而非关键活动则有富裕时间。这使得人们在实施嵌入式USB主机项目计划时做到心中有数,项目的关键活动工作包括:
项目需求分析(A);系统总体设计(B);系统硬件设计(C);初始化及用户交互界面软件设计(D);单片机与接口芯片通信软件设计(E);USB主机系统软件设计(F);系统联调测试(I);项目结题报告(J)。
要严格控制按预定工作时间进行,否则就会拖长整个任务的工期,延误项目的按时完成。相对来说,作为非关键工作的MS 设备类协议软件设计和FAT 文件系统软件设计由于有浮动时间存在,在资源或人力不足时,可适当调整这些工作的耗费时间和开始时间,不会影响总工期。
参考文献
1 殷人昆.清华大学《软件项目管理》课程讲义.2005,
2 Schwalbe K.IT项目管理(英文版,第2版).北京:机械工业出版社,2003
3 郑人杰.实用软件工程.北京:清华大学出版社,1997
4 Jalote P著,施平安译.软件项目管理实践.北京:清华大学出版社,2003
5 马 伟.计算机USB系统原理及其主/从机设计.北京:北京航空航天大学出版社,2004
6 金振华.面向对象方法在汽车排放测试系统软件开发中的应用.电子技术应用,2001;(4)