嵌入式软件开发工作计划(精华12篇)
发布时间:2019-02-27嵌入式软件开发工作计划(精华12篇)。
❖ 嵌入式软件开发工作计划 ❖
学习嵌入式,该学习什么基本的知识呢?
首先C语言,这个是毋庸置疑的,不管是做嵌入式软件还是硬件开发的人员,对C语言的掌握这个是必需的,特别是对于以后致力于嵌入式软件开发的人,现在绝大部分都是用C语言,你说不掌握它可以吗?至于如何学习C语言,我想这些基础的知识每个人都有自己的方法,关键要去学习,看书也好,网上找些视频看也好。很多人会问,C语言要学到怎么样,我觉得这没有标准的答案。我想至少你在明白了一些基础的概念后,就该写代码了,动手才是最重要的,当你动手了,遇到问题了,再反过来学习,反过来查查课本,那时的收获就不是你死看书能得到的。
其次,应该对操作系统有所了解,这对你对硬件和软件的理解,绝对有很大的帮助。应该把系统的管理理解一下,比如进程、线程,系统如何来分配资源的,系统如何来管理硬件的,当然,不是看书就能把这些理解透,如果不是一时能理解,没关系,多看看,结合以后的项目经验,会有更好的理解的。
还有应该学习嵌入式系统,如linux或者wince下的编程,这些对以后做应用的编程很有帮助,当然,如果做手机的话,那可以学习MTK、塞班、Android等操作系统,Android是以后发展的趋势,现在很热门,Android也是基于linux系统封装的,所以建议先学习下linux。
还有,应该学习下单片机或者ARM或者MIPS,很多人说我没有单片机的经验,直接学ARM可以吗?我觉得那完全没有问题的,当然如果你学习过单片机,那最好不过了,以后学习ARM就更简单了。
最后如果你把以上的知识都有所了解后,就该去阅读阅读一些优秀的代码,比如结合arm芯片手册学习去学习下UBOOT的源代码,了解下最小的系统开发,那对你整个嵌入式开发的非常有帮助的,可以的话,还可以学习下linux的源代码,当然如果你直接阅读2.6的代码,我想你会很痛苦的,可以先看看linux 代码早期的版本,比如0.12 的代码等
等,麻雀虽小,五脏俱全,如果你全看完了,那我想你就是一名很成功的嵌入式工程师。
至于上面说的知识如何学习呢?每个人都应该去找自己最好的方法,所谓的最好的方法就是最适合自己的方法。很多人看不进书,那就去看看视频吧。视频也应该要选择,不是随便看看,应该要有所选择,有所挑眩我也是这样一路走过来的,不过我这人比较懒,我看不进书,一看书我就想睡觉,所以这几年我都是看视频过来的,现在也算学有所成,但也不敢说是高手吧。
我在网上看到,有人把自己学习嵌入式的视频总结出来,嵌入式系列实践和视频教程,大家可以看看网址我仔细看了觉得很不错,我本来也想整理下,可是奈何我自己的电脑硬盘空间才40G,没有办法,时间也是不够,心有余而力不足,我不是在帮他做广告,虽然要花钱,我觉得算不错,至少自己不用去整理和花大量的时间去找资源,当然如果网上有的下,你网速和硬盘都够的话,我建议大家自己网上下也好。想想我自己该开始学的时候,那时视频资源少之又少,我买书和买视频至少花了几千块,但是我觉得那很值,至少我现在赚回来了很多知识。
最后,希望这篇文章对热爱嵌入式,想致力于嵌入式开发的朋友有所帮助。送给大家一句简单而又朴素的话,坚持就是胜利,贵在坚持,也可以看看如何坚持嵌入式学习!
❖ 嵌入式软件开发工作计划 ❖
摘要:J2ME是Java 2平台的一个版本,使用在各种各样的消费电子产品和嵌入式设备上。Java Card技术规范得Java应用能运行在智能卡和更小的嵌入式设备上。本文介绍J2ME和Java Card的硬件平台和软件体系结构,以及如何进行J2ME和Java Card应用程序开发。Java在移动通信领域的应用已经引起广泛的关注,本文对此进行了详细的描述。Java是在1991年由Sun公司James Gosling Patrick Naughton、Chis Warth、Ed Frank以及Mike Sherindan等组成的“STAR7”小组所构想出来的。于1995年5月正式推出。Java计算平台包括JVM(Java虚拟机)和Java API(Java应用编程接口)。JVM是一种抽象化的计算机,运行在操作系统之上,可以在它上面执行Java的字节线,使Java应用程序在现有的各种平台上都可以顺利执行。Java API和Java的函数类库,分为基本核心类库和各种外加功能的扩展类库。
年12月8日,Sun公司的最新一个版本的JDK(Java Software Development Kit)正式发布,Sun的升级版本,而且还是完善的Java平台。
Java 2定义组成Java企业平台的核心技术包括15个核心API。这15个核心API构成了整个Java 2技术的灵魂,包括Applet、AWT、Beans、IO、Lang、Math、Net、Rmi、Security、SQL、Text、Util、Accessibility、Swing和CORBA。与以往的`JDK比较,Java 2平台具有很多优势,如更灵活的安全模式、更好的性能、与其他企业级系统的互用性、应用开发更容易、全球化的提高以及更好的跨平台性等。
Java 2可以根据对软、硬件需求的不同分为4个版本。J2EE(Java 2 Platform,Enterprise Edition)用于企业服务器端应用程序开发;J2SE(Java 2 Platform,Standard Edition)用于个人计算机上的应用程序开发;J2ME(Java 2 Platform,Micro Edition)用于信息家电等资源有限的设备上的应用程序开发;Java Card Platform用于智能卡上的应用程序开 发。
Java 程序语言在其产生之初,本身就是为嵌入式设备--机顶盒设备设计的。现在Java又凭借J2MEE和Java Card Platform回到嵌入式系统开发领域。
Java卡是Java平台中最小的子集,也是一种特殊的智能卡。智能卡是一种嵌入
[1] [2] [3] [4] [5]
❖ 嵌入式软件开发工作计划 ❖
摘要:覆盖测试是验证软件功能结构正确性以及查找问题的非常重要的方法和手段,它要借助一定的工具才能取得较好的效果,满足软件在质量和时间上的双重要求(纯粹的人工测试工作量大、不方便、周期长)。如何利用好这方面比较成熟的工具,对其机理的研究及适应性改造是很重要。本文着重描述这类工具的工作机理,以及对嵌入式软件测试的特殊要求,并以对自主知识产权嵌入式操作系统的`测试为例进行说明。
软件测试是很广的概念。从其贯穿软件生命周期全过程来看,测试可分为模块测试、集成测试、系统测试等阶段。测试还可分为静态检查和动态运行测试两大类。在动态运行测试中,又可有基于程序结构的白盒测试(或称为覆盖测试)和基于功能的黑盒测试。测试不仅关注程序的功能,还有性有测试、强度测试等等。
要达到比较好的测试效果,除了要有周全的测试计划、可控的测试过程、测试人员丰富的经验外,还需要借助一些行之有效的辅助工具,尤其在当今软件规模日益庞大、测试工作量成倍增加的情况下。对应上述的测试分类情况,测试工具可划分为:支持对程序源代码进行静态规则检查和质量评估的静态分析工具、支持对程序单元进行动态覆盖测试的工具、对软件系统的整体运行性能进行测试的工具。另外,还有一些特殊用途的或专用工具,如协议测试仪、内存检测工具等。这些工具都有较为成熟的商业化产品,也可通过自行开发的方式获得。
本文具体讨论了对一类特殊的系统软件――嵌入式实时操作系统――进行覆盖测试的情况。内容涉及对这类软件特性的研究、测试的难点和特点、对现有测试工具的适应性改造和测试实例说明。
❖ 嵌入式软件开发工作计划 ❖
嵌入式系统发展的最初阶段。所有的开发包括软件和硬件设计,通常都是一个工程师来承担。软件在整个工作址中的比例很小,大约5%-10%。随着时间的推移软件开发占工程时间的比例持续增长。至20世纪80年代中期,软件开发已经是由专业欢件人员来做,所占比例一般已超过整个开发工作量的50%。
在最近几年,虽然硬件设计变得更加复杂,但软件的份量也急剧增长,目前通常占到开发总量70%-80%。因此,需要有软件团队参与,同时也产生了一些新的挑战。这些挑战中的一个,就是要有可用的硬件平台来进行软件测试。由于要在更短的时间内开发更多的软件,就需要尽快建立测试环境。发出更多的软件,就需要尽快建立测试环境。有多种可行的方法,如本地代码执行原型环境、指令集软仿真(模拟),以及使用标准的、低成本的、现成的评估板。此外,低成本的主机一目标机连接技术,也变得越来越普及,有代表性的就是JTAG接口。
❖ 嵌入式软件开发工作计划 ❖
个人信息
姓 名:
性 别:男
出生日期:1984-06-05
籍 贯:北京市
目前城市:北京市
工作年限:
目前年薪:xx万人民币
联系电话:15900000000
应聘方向
求职行业:
计算机软件,计算机硬件,计算机服务(系统、数据服务,维修) ,互联网/电子商务,通信/电信/网络设备
应聘职位:
软件测试,技术文员/助理,测试员,系统测试
求职地点:北京市 薪资要求:面议
工作经历
2008/03—现在 ***公司
所属行业:计算机服务(系统、数据服务,维修)
软件开发 软件工程师
主要职责:
1. 远程同步嵌入式todolist记事系统;
2. 参与todolist记事系统的系统分析和设计;
3. 开发了本地数据管理系统,实现数据本地的增删改查的功能;
4. 开发了下载和上传引擎,实现mobile与server间的数据同步;
5. 设计开发系统控制模块,该模块集成数据模型,数据管理模块和数据通讯模块;
6. 设计开发了图形用户界面;
7. 在模拟器和真机测试todolist记事系统。
2007/09—2007/11 tom在线
所属行业:互联网/电子商务
网站事业部 网站编辑
主要职责:负责网页内容的更新与维护,独立制作新闻专题。
教育培训
2004/09—至今 北京信息工程学院 电子商务 本科
2008/03—2008/06 渥瑞达symbian os 嵌入式开发
职业技能
外 语: 英语:一般
自我评价
1. 熟悉计算机网络,信息安全等相关知识,了解计算机软硬件安装调试;
2. 熟悉各种计算机操作系统、熟悉office软件。
3. 熟悉sql server数据库操作。
4. 精通面向对象的程序设计和开发,熟练掌握c++语言。
5. 熟练掌握visual c++、codewarrior、evc等开发工具。
6. 熟悉dream wear、photoshop等网页制作软件。
❖ 嵌入式软件开发工作计划 ❖
摘要:分析嵌入式软件的特点,综述传统的软件测试方法;针对嵌入式软件的特点,提出嵌入式软件的四级测试流程和集成测试的测试模型,并结合开发数控系统的实例进行分析。
关键词:模块化设计 嵌入式软件 软件测试 测试方法 测试模型 数控系统
嵌入式设计已经成为工业现代化、智能化的必经之路,嵌入式产品已经深入到各行各业。嵌入式系统的专用程度较高,系统的整体继承性相对较小,为了保证系统的稳定性,软件的测试成为嵌入式开发的一个重要环节。由于嵌入式软件自身的特点,传统的软件测试理论不能直接用于嵌入式软件的测试,因此,研究嵌入式软件的测试有重要意义。
软件的设计是以一定的方法为基础的。面对越来越复杂的软件开发任务,人们提出了各种软件设计的模型。从用户需求和系统要实现的任务功能出发,把大型的软件划分为相对较小的模块。为了减少模块与模块之间的关联性,模块之间的逻辑结构相对独立,无函数的交叉调用,数据传递由全局变量完成,这就是模块化设计的基本思想。模块化设计的核心是模块的独立性,主要包括功能独立性和结构独立性,这使得软件开发的分工易于实现。软件测试是软件开发中的关键环节,基于模块化设计的软件测试模型简单,查错和纠错都易于实现。下面以单链路数据传递的软件模型说明模块化软件设计的软件测试的基本原则。
在图1中,函数F(X-Y)定义为软件模块X到软件模块Y的接口函数,用来通过终端显示由模块X进入模块Y的数据。如果模块C执行后发生错误,则由模块B和模块C的数据接口函数F(B-C)判断是否是模块B出来的数据就是错误的。如果F(B-C)不错,则证明模块C存在错误;如果F(B-C)传递数据错误,再察看F(A-B)传出的数据是否错误,如果不错则证明模块B存在错误。用此依次前推孤立错误的方法,即可以很容易地定位错误所在的模块。这就是模块化设计时软件测试的基本原则。
嵌入式系统开发有其自身的特点。一般先进行硬件部分的开发,主要包括形成裸机平台,根据需要移植实时操作系统,开发底层的硬件驱动程序等。硬件平台测试通过后,应该软件的开发调试是基于该硬件平台进行的,这同时也是对硬件平台的一个测试。整个嵌入式系统开发流程如图2所示。因此可以说,嵌入式系统的开发过程是一个软硬件互相协调,互相反馈和互相测试的过程。一般来说,在嵌入式系统软件中,底层驱动程序、操作系统和应用程序的界线是不清晰的,根据需要甚至混编在一起。这主要是由于嵌入式系统中软件对硬件的依赖性造成的。嵌入式软件对硬件的依赖性要求,软件测试时必须最大限度地模拟被测软件的实际运行环境,以保证测试的可靠性。底层程序和应用程序界限的不清晰增加了测试时的难度,测试时只有确认嵌入式系统平台及底层程序正确的情况下才能进行应用程序的测试,而且在系统测试时,错误的定位较为困难。软件的专用性也是嵌入式软件的一个重要特点。由于嵌入式软件设计是以一定的目标硬件平台为基础的、面向固定的任务进行的,因此,一旦被加载到目标系统上,功能必须完全确定。这个特点决定了嵌入式应用软件的继承性较差,延长的系统的测试时间,增加了测试费用。嵌入式软件的另外一个重要特点就是实时性。这是从软件的执行角度出发说明的,也就是说嵌入式软件的执行要满足一定的时间约束。嵌入式系统中,应用软件自身算法的复杂度和操作系统任务调度,决定了系统资源的分配和消耗,因此,对系统实时性进行测试时,要借助一定的测试工具对应用程序算法复杂度和操作系统任务调度进行分析测试。可见嵌入式软件与传统的面向对象和面向过程的软件相比有其自身的特点。针对这些特点对嵌入式软件的测试进行研究是必要的,有意义的。
软件测试是从经济、效率的角度出发,对软件代码进行质量、正确性保证的一个过程。软件测试是软件开发中的一个重要环节,也是软件从开发过程到应用过程的关键一环。嵌入式软件也不例外,图3给出了嵌入式软件测试的统一测试模型。软件测试逐渐成为一门成熟的学科,前人针对面向对象和面向过程的非实时软件的测试作了大量的研究,其中大部分方法可以用到嵌入式软件的测试。
根据不同的指标,软件测试方法有不同的划分方法。从软件开发过程中测试所处的不同阶段可分为模块测试、集成测试和系统测试。根据是否需要运行目标代码分为动态测试和静态测试;根据目标代码的可见性可分为白盒测试(结构测试)和黑盒测试(功能测试)。在软件的.测试中,每种测试方法都不是孤立的。为了最经济最有效地达到测试的目的,各种测试方法往往是互相嵌套的。例如,在软件的单元测试
阶段,可以用黑盒测试和白盒测试的方法分别进行动态测试。
值得一提的是,近年来软件测试中,测试代码的覆盖率逐渐成为软件测试的统一标准,因此不管采用何种测试方法,尽可能地提高软件测试中的代码覆盖率是必需的。软件测试代码覆盖率是基于白盒测试方法的,因此,为了提高软件测试的代码覆盖率,测试人员必须清楚源代码的结构,拥有程序设计文档,以便设计测试用例使测试尽可能地覆盖程序内部结构的每条语句,提高代码的覆盖率。
❖ 嵌入式软件开发工作计划 ❖
摘要:实时性、可靠性的要求,使得许多嵌入式应用使用自己的内存管理程序。本文探讨嵌入式系统中对内存管理的要求、存在的问题以及可能的解决策略;介绍一种“一次分配,多次使用”的动态内存分配方法,并给出2个例子。关键词:嵌入式系统 内存管理 一次分配多次使用
1 嵌入式系统中对内存分配的要求
①快速性。嵌入式系统中对实时性的保证,要求内存分配过程要尽可能地快。因此在嵌入式系统中,不可能采用通用操作系统中复杂而完善的内存分配策略,一般都采用简单、快速的内存分配方案。当然,对实性要求的程序不同,分配方案也有所不同。例如,VxWorks采用简单的最先匹配如立即聚合方法;VRTX中采用多个固定尺寸的binning方案。
②可靠性。也就是内存分配的请求必须得到满足,如果分配失败可能会带来灾难性的后果。嵌入式系统应用的环境千变万化,其中有一些是对可靠性要求极高的。比如,汽车的自动驾驶系统中,系统检测到即将撞车,如果因为内存分配失败而不能相应的操作,就会发生车毁人亡的事故,这是不能容忍的。
③高效性。内存分配要尽可能地少浪费。不可能为了保证满足所有的内存分配请求而将内存配置得无限大。一方面,嵌入式系统对成本的要求使得内存在其中只是一种很有限的资源;另一方面,即使不考虑成本的因素,系统有限的空间和有限的板面积决定了可配置的内存容量是很限的。
2 静态分配与动态分配
究竟应用使用静态分配还是动态分配,一直是嵌入式系统设计中一个争论不休的总是。当然,最合适的答案是对于不同的系统采用不同的方案。如果是系统对于实时性和可靠性的要求极高(硬实时系统),不能容忍一点延时或者一次分配失败,当然需要采用静态分配方案,也就是在程序编译时所需要的内存都已经分配好了。例如,火星探测器上面的嵌入式系统就必须采用静态分配的方案。另外,WindRiver公司的一款专门用于汽车电子和工业自动化领域的实时操作系统OSEKWorks中就不支持内存的动态分配。在这样的应用场合,成本不支持内存的动态分配。在这样的应用场合,成本不是优先考虑的对象,实时性和可靠性才是必须保证的。当然,采用静态分配一个不可避免的总是就是系统失去了灵活性,必须在设计阶段就预先知道所需要的内存并对之作出分配;必须在设计阶段就预先考虑到所有可能的情况,因为一旦出现没有考虑到的情况,系统就无法处理。这样的分配方案必须导致很大的浪费,因为内存分配必须按照最坏情况进行最大的配置,而实际上在运行中可能使用的只是其中的一小部分;而且在硬件平台不变的情况下,不可能灵活地为系统添加功能,从而使得系统的升级变得困难。
大多数的系统是硬实时系统和软实时系统的综合。也就是说,系统中的一部分任务有严格的时限要求,而另一部分只是要求完成得越快越好。按照RMS(Rate Monotoin Scheduling)理论,这样的系统必须采用抢先式任务调度;而在这样的系统中,就可以采用动态内存分配来满足那一部分可靠性和实时性要求不那么高的任务。采用动态内存分配的好处就是给设计者很大的灵活性,可以方便地将原来运行于非嵌入式操作系统的程序移植到嵌入式系统中,比如,许多嵌入式系统中使用的网络协议栈。如果必须采用静态内存分配,移植这样的协议栈就会困难得多。另外,采用动态内存分配可以使设计者在不改变基本的硬件平台的情况下,比较灵活地调整系统的功能,在系统中各个功能之间作出权衡。例如,可以在支持的VLAN数和支持的路由条目数之间作出调整,或者不同的版本支持不同的协议。说到底,动态内存分配给了嵌入式系统的程序设计者在比较少的限制和较大的自由。因此,大多数实时操作系统提供了动态内存分配接口,例如malloc和free函数。
3 RTOS提供的内存分配接口
不同的RTOS由于其不同的定位,采用不同的内存分配策略。例如VRTX中,采用类似于GNU C中由Doug Lea开发的内存分配方案,即Binning算法,系统内存被分成了一些固定尺寸的内存块的算法,系统内存被分成了一些固定尺寸的内存块的集合。这种方法的优点是查找速度快而且不会产生内存碎片。但是,它的缺点也很明显,就是容易造成浪费,因为内存块的尺寸只有有限个,分配时只能取较大的内存块来满足一个较小的需求,累积起来,浪费就很大了;而且操作系统管理这样一个内存分配表也是一个很大的负担。
下面详细介绍一下我们常用的RTOS——美国风河公司(WindRiver)的VxWorks中采用的内存分配策略。VxWorks的前身就是VRTX,据说VxWorks的名称来自make vrtx work。
VxWorks的内存管
❖ 嵌入式软件开发工作计划 ❖
根据嵌入式系统的开发流程,为了最经济地实现系统的功能,采用自顶向下、层层推进的方法对嵌入式系统进行测试,提出了如图4所示的基于模块化设计的嵌入式软件四级测试流程。在四级测试中,本测试阶段以前的测试完成后,当发现错误时,可排队此测试阶段以前的错误,在本测试阶段内查找错误。这并不是一个绝对准确的方法,但最大限度地节了错误定位的时间。
这部分包括硬件电路测试、操作系统及底层驱动程序的测试等。硬件电路的测试需要用专门的测试工具进行测试。这里不再多述。操作系统和底层驱动程序的测试主要包括测试操作系统的任务调度、实时性能、通信端口的数据传输率。该阶段测试完成后,系统应为一个完整的嵌入式系统平台,用户只需添加应用程序即可完成特定的任务。
把大型的嵌入式软件系统划分为若干个相对较小的任务模块,由不同的程序员分别同时对其进行编码。编码完成后,把各个模块集成起来前,必须对单个模块进行测试。由于没有其它数据模块进行数据传递的支持,该阶段测试一段是在宿主机上进行的(宿主机有丰富的资源和方便的调试环境)。此阶段主要是进行白盒测试,尽可能地测试每一个函数、每一个条件分支、每一个程序语句,提高代码测试的覆盖率。由于只有单个模块正确才有整体集成的必要性,因此,单个模块测试时测试一定要充分、完整。模块测试阶段,测试用例的构造不但要测试系统正常的运行情况,还要进行边界测试。边界测试就是进行某一数据变量的最大值和最小值的测试,同时进行越界测试,即输入不该输入的数据变量测试系统的运行情况。理想的嵌入式系统是不应该由用户的信息交互导致死机的,这也是嵌入式设计的一个基本要求。因此,不论进行何种测试,系统死机都该被作为测试错误处理。在模块测试阶段,由模块化编程的基本思想,根据模块内部的紧凑程序,也可以把大的模块划分成小的模块。在程序内部,小模块之间数据传递的入口设计接口函数,用于快速地定位错误。用此模块嵌套的思想进行软件测试,需要模块内部结构清晰,数据链路简单。
单个软件模块测试正确之后,将所有模块集成起来进行测试。本阶段主要是找出各模块之间数据传递和系统组成后的逻辑结构的错误。在宿主机上采用黑盒与白盒相结合的方法进行测试,要最大限度地模拟实际运行环境,可以屏蔽掉一些不影响系统执行的和数据传递的难以模拟的函数。集成测试是模块化设计软件的测试优点充分体现的阶段。集成测试前,应该由程序员根据模块之间的数据的输入输出编写模块接口函数,这需要负责不同软件模块的程序员共同协调完成,然后将模块接口函数集成到接收数据模块的入口处。由前面的分析可知,单链路数据传递的软件模块集成测试时容易定位错误所在的软件模块。一个软件模块的数据不一定只有另外一个模块提供,即软件模块的数据链路不一定只是单链路的,测试时可以把复杂链路结构的数据传递划分为单链路结构数据传送进行错误定位。修改输出数据的软件模块时,可能导致输入数据的软件模块引入新的错误,因此在这里引入关联矩阵确定修改某一模块后需要重要测试的模块。
假定模块化设计的嵌入式系统软件由软件模块Ai(i=1,2,…,m,n)组成,m表示矩阵的行号,n表示矩阵的列号。图5所示的矩阵即为其关联矩阵。
在关联矩阵中,Aij=1表示Aj接受了Ai输出的数据,故修改了Ai重新测试Ai的同时也需重新测试Aj。
集成测试是在拥有程序设计文档、程序结构和数据结构时,对软件模块在集成中出现的错误进行测试。集成测试时,根据模块接口函数定位错误修改代码,根据关联矩阵确定重新测试的软件模块。图6给出了模块化设计的嵌入式软件集成测试模型。
集成测试完成后,退出宿主机测试环境,把系统移植到目标机上来,完成应用到现场环境中,从用户的角度对系统进行黑盒测试,验证每一项具体的功能。由于测试者对程序内容程序执行情况一无所知,因此本测试阶段的错误定位比较困难。系统测试阶段应该进行意外测试和破坏性测试,即测试系统正常执行情况下不该发生的激发活动和人为的破坏性的测试,进一步验证系统性能。系统测试阶段不应该确定错误后立即修改代码,应根据一定的错误
发生频率,确定测试周期,在每个测试周期结束时修改代码,进行反复测试;否则,不但增加了完全测试的任务量,而且降低了测试的可信度。
测试结果的分析可以定位错误,指导程序员修改代码,同时指出测试进行的程序并进一步指明测试方向。测试结果的分析是一个由测试结果和测试预得结果进行分析、比较和定位错误的过程。测试结果的分析是一次测试的最后环节,分析时应该考虑软件的运行环境和实际运行环境的差异以及各种外界因素的影响等。
测试用例是为了测试目标程序设计的包括输入项和预得结果的一种文件,根据测试环境和测试目标程序的不同,可分为某种格式的文档或某种输入行为(如一次按键)等。测试用例的构造要尽可能覆盖所有可能的取值范围,使测试尽可能地覆盖所有程序代码,提高代码的测试覆盖率,同时又不作多余、重复和无意义的测试。在嵌入式软件测试的不同阶段,要构造不同的测试用例;在系统平台测试阶段,要构造针对系统任务调度、实时性能和底层驱动程序的测试用例;在模块测试阶段,应构造针对某一模块进行测试的测试用例;在集成测试阶段,针对系统集成时数据传递、结构斜接的问题构造相应的测试用例;在系统测试阶段,要构造针对某项功能的或多项功能结合在一起的测试用例,或使用已经在同类产品上已经验证正确的测试用例。测试用例是可复用的。此外大型的软件开发过程中,测试用例的种类繁多,应该按一定的方法进行管理。用数据库的来管理测试用例是一个很好的选择。根据测试阶段将测试用例进行划分,然后用关键字唯一确定。这样在使用、修改和保存测试用例时都很方便,直接用查询的方式就可以调出测试用例。
本数控系统采用ARM7处理器,操作系统采用μC/OS实时操作系统,是一个典型的嵌入式系统。由于数控系统较为复杂,开发过程中将任务进行了详细的划分,软件的开发采用模块化开发。模块的划分及数据流向如图7所示。
根据图7所示的软件模块和数据流向可构造关联矩阵,如图8所示。
开发过程中,几个模块由不同的程序员分别进行编码,分别由程序员进行模块测试,并按白盒测试的方法进行覆盖测试。最后集成测试前,根据关联矩阵,程序员协作编写了模块接口函数F(A1-A2)、F(A1-A4)、F(A1-A5)、F(A1-A6)、F(F2-A3)、F(A3-A4)、F(A4-A5)、F(F5-A6)、F(A6-A2),然后根据图6所示的测试模型和图8所示的关联矩阵对系统进行了集成测试。分析可知,一些关键模块,如译码模块和刀补模块的测试代码覆盖率达到90%之上。图9所示的整个系统经过系统测试之后性能稳定,图10为其加工的零件,目前该系统已经小批量生产。
文章对嵌入式软件的特点和传统的测试方法作了分析之后,提出了四级测试流程和集成测试的模型。此测试方法用于工程机械控制器和数控系统开发的测试。测试的效率和可靠性满足要求。文中的单链路数据传递的错误定位、模块接口函数、关联矩阵等方法也可以用于面向对象的和面向对象的软件系统。
❖ 嵌入式软件开发工作计划 ❖
软件项目开发工作计划篇1:软件开发工作计划及进度管理工作指引 软件开发工作计划及进度管理工作指引 1 目的1.1 规定软件开发部工作计划及进度管理的内容、职责。1 适用范围
1.1 适用于软件开发部工作计划及进度管理工作。2 定义
2.1 计划:包括责任人、工作内容、起始时间、完成时间和计划调整时间。2.2 完成时间:是指经过设计评审后,可以发行的时间。3 职责
3.1 部门经理:负责软件开发部工作计划的制订、审批及进度管理。3.2 项目经理:负责本项目组计划的制订。4 内容 4.1 计划分类
4.1.1 周工作计划:一周的工作计划。4.1.2 月工作计划:一个月的工作计划。1 4.1.3 年工作计划:一年的工作计划。4.1.4 项目开发计划:项目开发完成的计划。4.2 工作任务的制定
4.2.1 项目组工作任务的制订来源以下方面 4.2.1.1 《项目开发计划书》要求。4.2.1.2 软件开发部下达的任务。4.2.1.3 客户需求下达的任务。
4.2.1.4 客户或公司内部提出的设计更改。4.2.1.5 项目组自己安排的工作任务。
4.2.2 项目组的工作任务不能偏离《项目开发计划书》。公司下达的任务 和客户需求下达的任务是开发过程中的不断完善过程。项目经理应合理安排。4.3 工期估计
4.3.1 工期是指任务开始到结束的全部时间。在估计工期时要考虑以下因 素: 4.3.1.1 考虑社会平均技术能力条件下的完成时间。4.3.1.2 考虑人力资源的配置。4.3.1.3 考虑技术难易程度。4.3.1.4 考虑非工作日和法定节假日。4.3.1.5 考虑资源的配备周期。2 4.3.1.6 考虑市场需求和压力。
4.3.2 对于存在高度不确定因素的项目,可以给每个任务工期估计三个时 间: 4.3.2.1 乐观时间:在任何事情都进展顺利,没有遇到任何困难的情 况下,完成某项任务需要的时间。
4.3.2.2 最可能时间:在正常情况下完成某项任务最经常出现的时 间。如果某项任务已经做过多遍,最经常发生的实际工期可 以用作最可能时间估计。
4.3.2.3 悲观时间:某项任务在最不利的情况下(如不可预见或不可 抗拒)能够完成是时间。4.4 计划的制订和审核
4.4.1 项目开发计划由项目经理负责并提交给部门经理,由项目评审组评 审通过之后生效。项目经理负责本项目组的周工作计划和月工作计划,同时提交给部门经理,由部门经理汇总成本部门的周工作计划和月工作计划,月工作计划需提交给总经理由总经理审批通过后生效,周工作计划由部门经理审批即生
3 效。部门经理负责制定软件开发部的年工作计划并提交给总经理审批,总经理审批通过之后生效。以上计划都需要上级和下级充分协商。
4.4.1.1 周工作计划、月工作计划、项目开发计划和年工作计划用 PROJECT软件编制甘特图。
4.4.1.2 计划进度主要进行时间管理,控制项目任务的关键路线,篇2:软件项目开发计划书 软件开发计划书
项目名称:乐吧乐游戏平台 参与人员: 目 录
1引言-3 1.1编写目的----4 1.5 系统动机
----6 2.2主要参加人员--8 2.3.1程序
---8 2.3.3服务
----9 2.4.1代码的验收
---9 2.4.2 文档验收
-9 2.4.3 服务验收---10 2.5完成项目的最迟期限
---10 3实施总计划--11 3.1.1 需求分析
---11 6 3.1.2 系统设计
---11 3.1.3 编码及测试阶段
11 3.1.5 项目总结
---11 3.2工作任务的分解
----12 3.3接口人员--13 3.5预算
--14 4支持条件
7 15 4.1计算机系统支持
----15 4.2需要用户承担的工作
---16 5专题计划要点
-17 5.3 质量保证计划
17 5.4 人员配置计划
17 5.5 客户培训计划
17 5.6 安全保密计划
17 1引言 1.1编写目的 8 为了保证项目团队按时保质地完成项目目标,便于项目团队成员更好地了解项目情况,使项目工作开展的各个过程合理有序,有必要以文件化的形式,把对于在项目生命周期内的工作任务范围、各项工作的任务分解、项目团队组织结构、各团队成员的工作责任、团队内外沟通协作方式、开发进度、经费预算、项目内外环境条件、风险对策等内容以书面的方式描述出来,作为项目团队成员以及项目干系人之间的共识与约定,项目生命周期内的所有项目活动的行动基础,项目团队开展和检查项目工作的依据。本项目开发计划用于从总体上指导《了吧了游戏平台》项目顺利进行并最终得到通过评审的项目产品。本项目开发计划面向项目组全体成员。
1.2背景
《乐吧乐游戏平台》主要功能是,为广大用户提供一个面对面的游戏平台;基本可包括所有保单系列产品,以及国内外比较流行的博彩游戏~该项目在计划中...表1.1 项目背景规划
在保单产品越来越被广大玩家所孰知的情况下,玩家渐渐的变的聪明起来,这致使机器作 弊的手段的成功率越来越底~大大的降低了玩家对保单系列产品的信任度,同时直接和间接 的影响了游戏场地和厂家的利益~从而形成了“不作弊盈利困难的“大难题~分析得出主要原因是玩家对机器不信
9 任!为解决这一重大难题!改变当下这种现状特开发出P to P《乐吧乐游戏平台》!1.3定义 专门术语: SQL SERVER:系统服务器所使用的数据库关系系统(DBMS)。SQL:一种用于访问查询数据库的语言
事务流:数据进入模块后可能有多种路径进行处理。主键:数据库表中的关键域。值互不相同。外部主键:数据库表中与其他表主键关联的域。ROLLBACK:数据库的错误恢复机制。缩写: 系统:若未特别指出,统指本了吧了游戏平台。SQL:Structured Query Language(结构化查询语言)。ATM:Asynchronous Transfer Mode(异步传输模式)。
UML:统一建模语言、是一套用来设计软件蓝图的标准建模语言,是一种从软件分析、设计到编写程序规范的标准化建模语言。
UDP :User Datagram Protocol 是无连接的传输层协议 分布式代理: 可隐藏服务器ip,减少服务器的危险;服务器代理: 可验证用户数据的正确性,以及安全性,进行处理 10 三级代理: 减轻服务器压力,可实现智能作弊系统~ 1.4参考资料
文档格式要求按照我国GB/T8567-1988国家标准和IEEE/ANSI830-1993标准规范要求进行。包括以下文件: ? 游戏传输关系系统需求说明书 ? 软件工程项目开发文档范例 ? 软件工程国家标准文档 ? 需求说明书
? 软件需求说明书编写规范 书籍包括: ? 《软件项目管理》 朱少民,韩莹 编著,人民邮电出版社。? 《软件项目管理》 Rajeev T Shandilya编著 科学出版社。篇3:软件开发计划书 软件开发计划书 1(引言(Introduction)1.1 目的(Purpose)本章提供整个软件开发计划的综述。主要是确定以下内容:(1)软件生存周期的选取及裁剪。(2)软件规范、方法和标准的选择。11(3)软件工作产品的规模估计。(4)软件工作量和成本的估计。(5)软件进度表的制定。(6)软件风险的估计。(7)软件项目培训计划。1.2 范围(Scope)说明该软件开发计划的范围,简要描述软件开发计划的内容。一般而言,对于一个较大的软件项目(工期6个人月以上),计划书包括如下内容:(1)软件规模估计(2)工作模块计划(3)人力资源计划(4)其他资源计划(5)进度安排计划
(6)配置管理计划(可单独做一个计划)(7)质量保证计划(可单独做一个计划)1.3 术语定义(Terms Gloary)将该软件开发计划中的术语、缩写词进行定义。包括用户应用领域与计算机领域的术语与缩写词等。例如: [1] 软件相关组:指软件配置管理组、文档支持组、测试组。[2] 软件质量保证组:指计划和实施软件质量保证活动的 12 人员的集合。
1.4 参考资料(References)说明该软件开发计划使用的参考资料,如项目的用户需求报告、商务合同、用户领域的资料等,每一个文件、文献要有标题、索引号或文件号,发布或发表日期以及出版单位。
[1] …… [2] ……
1.5 相关文档(Related Documents)当该文档变更时,可能对其他文档产生影响,受影响的文档叫相关文档,需将它们列出。
[1] …… [2] ……
1.6 版本更新记录(Version Updated Record)版本更新记录格式,如表4-8所示。表4-8 版本更新记录
2(项目概述(Project Summary)2.1 项目的目的(Project Purpose)说明该软件项目的目的。2.2 项目的范围(Project Scope)本章的内容,主要参照《立项建议书》/《合同》与《用户需求报告》中相关章节,简要描述该软件项目的实现范围:(1)主要功能点列表 13(2)主要性能点列表(3)主要接口列表
(4)本软件项目与其他软件项目之间的关系(5)项目实施方面的限制等内容 2.3 项目的使用对象(Project Reader)在本章节中,要识别出顾客与最终用户,对顾客与最终用户的情况要有简单描述,如最终用户的教育水平、技术水平及本系统的使用频度等。
3(项目组织(Project Organization)项目组织是为开发项目而组建的队伍。建议以框图的方式表示项目的组织结构,并对每一组织的负责人和职责加以说明。可能的项目组织单元,如:(1)项目管理组(2)质量保证组(3)配置管理组(4)软件工程组(5)测试组(6)需求管理组 各组织说明如下:(1)项目管理组,执行SPP和SPTO过程,对项目实施负全部责任。(2)质量保证组,执行SQA过程,负责项目过程与产品 14 的质量控制和报告。
(3)配置管理组,执行SCM过程,负责项目产品的版本、配置管理以及配置库状态报告。
(4)软件工程组,执行软件项目工程过程,负责项目产品的开发和维护工作。(5)测试组,执行软件项目测试过程,负责项目产品的测试。(6)需求管理组,负责对需求基线和需求变更进行管理。4(软件生存周期(Software Life Cycle)本章节记录项目策划生存期定义的工作结果,需要描述的主要内容:(1)项目生存期框图(2)项目生存期说明
5(规范、方法和标准(Criterion,Means,Standard)本章节中需要描述采用的供开发和维护软件用的规范、方法和标准。6(任务与工作产品(Task and Work Products)项目任务和工作产品,是指根据项目生存期阶段划分的任务,和相应阶段的工作产品。记录项目生存期各阶段确定的需重点控制的阶段任务和工作产品。建议以表格的形式,列出生存期各阶段的任务和工作产品。项目包含的任务,如:(1)需求分析 15(2)系统设计(3)系统实现(4)测试(5)产品交付(6)产品维护
项目可能包含的产品,如:(1)需求分析说明书(2)规格分析说明书(3)系统设计说明书(4)源代码(5)各种测试报告(6)用户手册
(7)软件问题维护记录
7(工作产品、任务规模、工作量估计(Estimates of Work Product,Task Size and Workload)项目规模估算是为了确定项目所需的人工。需要描述的主要内容有:(1)对软件工作产品规模估计依据的简要描述。(2)每种任务和工作产品规模估计的结果。
(3)规模估算的结果,建议用《任务规模和工作量估算表》的形式列出。8(成本估计(Estimates of Costs)16 成本估计,是指对项目完成过程中耗费的人力、物力、财力资源的估算。成本估计应按类别进行估算,可能的成本估算类别,如:(1)直接人工(2)直接费用(3)间接成本(4)制造费用(5)管理费用(6)不可预见费用
9(关键计算机资源计划(Critical Computer Resource Plan)项目的关键计算机资源计划,是指系统在开发环境、测试环境、及用户目标环境中,对关键计算机资源,如计算机存储能力、计算机处理器速度、通信通道容量、服务器处理能力等的估计,使之能满足软件开发、测试、运行的要求。
10(软件项目进度计划(Software Project Schedule)件项目进度计划,是对项目的进度、人员工作分工所做的计划,此计划依据上述各章的估算和分析结果,计划方式建议采用表格的形式。若采用工具制定项目计划,应将工具生成的图表作为项目计划的附件。本章节中需要描述的主要内容有:(1)软件项目每个阶段的进度时间表 17(2)设定的里程碑(3)评审时间(4)缓冲时间
11(配置管理计划(可单独做一个计划)(Configuration Management Planning)本书单独作为一章论述。12(质量保证计划(可单独做一个计划)(Software Quality Aurance Planning)本书单独作为一章论述。13(风险分析(Risks Analysis)项目风险分析,是指对可能发生的将会对项目按预期时间、资源和预算完成产生重大影响的事件的分析包括:(1)被识别出的重大风险事件:政策风险、技术风险、技能风险等。
(2)易发生重大风险事件的高风险区域:用户需求、设计、测试、运行平台等。(3)重大风险事件的级别:功能不全、性能不稳、迅速受限制等。(4)拟采取的预防措施:增加投入、纠错、延时等。
(5)风险事件发生后建议采用的处理措施:更改计划、降低难度系数等。14(设备工具计划(Equipment and Tools Planning)项目设备工具计划,是根据项目的工作指派及进度确定项目所需要的设备和工具,以确保设备工具在任务执行前到
18 位,保证项目任务的顺利执行,在本计划中应包含以下几方面的内容:(1)所需的设备(2)基本的要求(3)应到位的时间
15(培训计划(Training Planning)项目的培训计划,应根据项目的特点和项目组成员技能情况,制定出项目组成员所需的培训内容,培训计划中应包含以下几方面:(1)培训内容(2)培训时间(3)教员
(4)接受培训的人员(5)培训目的(应达到的效果)16(项目评审(Project Reviews)项目评审,是对项目策划过程所做的定期性评审。其内容可分为:(1)评审点(2)评审周期(3)评审层次(4)评审条款和措施
(5)管理评审活动中提交的工作产品(列出被评审的工 19 作产品)17(度量(Measurement)度量是按规定在项目进行过程中,需要采集的度量数据,以便量化地反映项目的进展情况,为管理者提供对项目进展的适当的可视性,同时度量数据是项目过程改善的数据基础。应规定项目度量值的记录人(一般为项目经理或其指定人员)、记录时间(一般以定期评审为基础)和记录的数据。常用的度量数据如:(1)项目过程的评审次数(2)项目计划修改次数
(3)项目各阶段的人员投入(各阶段投入的人月数)(4)各类任务耗用时间统计(如设计、编码、测试、文档编写等)(5)统计(如文档字数、功能点数、用况数、源代码行数等)20
工作产品
软件开发实施方案
软件开发公司简介
软件开发合同样本
软件开发年终工作总结
软件开发工作汇报模板
❖ 嵌入式软件开发工作计划 ❖
应聘职位: 嵌入式软件开发(Linux/单片机/DLC/DSP…):ARM软件开发工程师,嵌入式软件开发(Linux/单片机/DLC/DSP…):ARM驱动工程师,嵌入式软件开发(Linux/单片机/DLC/DSP…):单片机软件工程师
月薪要求: 5000--8000 希望工作地区: 广州,佛山,深圳
担任职位: 嵌入式/底层软件开发(Linux/单片机/DSP/...)
工作描述: (1)主要使用了MC52I设计了GPRS通讯控制模块。
(2)使用VB60软件通过串口控制单片机运行的通讯程序。
工作描述: 一、主要负责网络设备信号采集卡的软件及硬件的开发.
该采集卡使用飞思卡尔芯片作为主控芯片,软件需要实现以下要求:
(1)支持带电插拔子板卡及子板卡类型的自动识别功能。
(2)支持对256个子板卡的状态信号采集及功能状态的修改及设置,同时要支持各机架间的级联。
(3)程序支持已有的串行通讯子板卡及并行通讯子板卡控制及读取之间的相互软件及硬件的兼容。
(4)信号采集卡支持电压检测,温度及湿度检测,风扇转速的检测。
(5)通过串口(MAX485)与ARM9开发板的嵌入式LINUX操作系统间进行的数据通讯。
(6)在保持程序与旧有子板卡兼容的基础上,扩展出对未来未知子板卡的信号采集及控制方式。
二、完成ARM开发板的嵌入式LINUX系统的移植及网络功能的移植及支持。
使用S3C2410作为主控芯实现,主要是对信号采集卡所收集的数据进行网络的传输及交换。
(1)完成嵌入式LINUX系统的移植(U-BOOT-1.1.4+LINUX-2.6.14.1+BUSYBOX-1.13.3)。
(2)完成UDP,TCP/IP,NET-SNMP的移植及测试程序的编写。
(3)完成对NAND FLASH的YAFFS文件系统的移植(根文件系统使用CRAMFS文件格式,指定某一路径为YAFFS文件格式)。
(4)ARM9开发板启动后能自动运行指定的程序。
工作描述: 主要负责电梯相关的控制产品的开发及跟进。
1.负责电梯多媒体8.4寸液晶显示屏的开发及维护(WINXP+PC104).
-
●一起合同网Hc179.coM小编好专题推荐:
- 软件开发合同 | 软件开发协议 | 嵌入式著作权范文 | 软件开发实习报告 | 嵌入式软件开发工作计划 | 嵌入式软件开发工作计划
2.负责电梯多媒体10.4寸液晶显示屏的开发及维护(WINXP+PC104).
3.负责电梯多媒体15寸液晶显示屏的开发及维护(WINXP+PC104).
4.负责电梯LCD楼层显示板的软硬件开发.
5.负责OTIS电梯BA接口板的硬件开发工作.
6.4KVA稳压器的硬件开发及生产跟进。
10.液晶显示器的QT应用.
工作描述: (1)使用PROTEL99SE制造电子线路板及抄电子线路板的原理图
(2)协助项目经理完成元件清单等各项工艺文件的书写。
(3)协助测试室完成相关的测试工作。
(4)对空调机项目进行跟进及指导工作。
(5)擅长使用松翰及三星单片机编写程序。
(6)擅长使用MSC51及AVR单片机编写程序。
(7)能独立开发净水器项目及电暖器项目(包括软件及硬件)。
(8)能独立开发小家电产品。
(9)熟练使用PROTEL99SE设计PCB板。
(10)熟练使用各种单片机的仿真及编译软件。
(11)能独立完成相关的公司流程及沟通协调工作。
(12)主要负责美的.电风扇,电暖器,油汀机,电烤箱,净水器,暖风机等设备的软硬件开发及项目进度管理工作。
(13)能独立开发电磁炉项目。
(14)能独立开发广告屏及游戏机项目。
(15)能熟练的使用义隆,三星,松翰,合泰,51,AVR等芯片开发产品。
(16)能熟练的使用DELPHI,VB对计算机串并口进行控制,从而实现计算机与单片机的底层通讯。
工作描述: (1)对部门的服务器和办公电脑进行升级维护及部门网站架设。
(2)对DELL及NEC的相关机种进行故障的分析及维修。
(3)学习计算机的硬件架构及相关的故障分析方法。
(4)能熟练的使用办公软件及测试软件。
(5)学习相关的管理观念及执行方法。
(6)学习相关的生产流程及管理方法.
(1)在原有的LED显示条屏系统中添加编写12种显示方式。
(2)编写各种显示板的显示程序。
---编写澳门游戏机的控制板和显示板的程序。
---编写香港电梯控制板和显示板的显示程序。
---深圳采石场电子地磅的显示屏程序。
(3)编写电视机遥控器(红外线)与单片机通讯程序。
(4)编写LED显示条屏的灰度的调节程序。
(5)编写I2C和FLASH的读写通讯程序。
(6)编写键盘与单片机的通讯程序。
(7)使用FM软件对GAL芯片进行逻辑门电路的硬件设计。
(8)编写LCD显示屏的显示程序。
(9)使用WINDOWS的API函数编写程序,控制计算机底层与单片机进行串口通讯。
(10)有对软件项目开发进程的管理及实操经验.
1994-09-01 -06-01 广东省茂名市职业高级中学 应用电脑专业 中专毕业证 -
1997-09-01 2000-06-01 广东省科技干部学院 应用电子专业 大专毕业证 -
2000-03-01 2000-07-01 广东省科技干部学院 家电维修 家电维修中级证 -
2008-03-01 2008-05-01 广东省嵌入式软件公共技术中心 嵌入式LINUX就业班 ATC认证 -
能独立完成LED及LCD的项目开发,熟悉LED和LCD显示屏的显示原理及实现过程.
能独立进行嵌入式LINUX的移植及驱动的编写,能对ARM进行裸机程序.
能独立运用DELPHI进行串口通讯软件的开发,有面向对象程序设计的经验及技术.
参独立使用PROTEL 99 SE设计原理图及板图.
有多种类型(MSC51,AVR,合泰,松翰,义隆,飞思卡尔)单片机的开发经验.
能熟练的运用汇编及C语言进行单片机编程.
了解公司的内部运作流程,有独立进行项目开发过程管理的经验.
在本人工作的这几年里,得到了单位领导的帮助和自已的努力,在个人技能及观念上本人也有长足的发展.
将来希望从事软件的工作,希望能在单片机与嵌入式LINUX方面能有所发展.
❖ 嵌入式软件开发工作计划 ❖
XXXX公司
软件开发计划
1.引言
1-1编写目的(阐明编写软件计划的目的,指出读者对象。)
1-2 项目背景(可包括:(1)项目委托单位、开发单位和主管部门;(2)该软件系统与其他系统的关系。)
1-3 定义(列出本文档中用到的专门术语的定义和缩略词的原文。)
1-4参考资料
1-4-1项目经核准的计划任务书、合同或上级机关的批文;
1-4-2文档所引用的资料、规范等;列出资料的作者、标题、编号、发表日期、出版单位或资料来源。
2.项目概述
2-1工作内容(简要说明项目的各项主要工作,介绍所开发软件的功能 性能等.若不编写
可行性研究报告,则应在本节给出较详细的介绍。)
2-2条件与限制(阐明为完成项目应具备的条件 开发单位已具备的条件以及尚需创造的条件.必要时还应说明用户及分合同承包者承担的工作 完成期限及其它条件与限制。)
2-3产品
2-3-1程序(列出应交付的程序名称 使用的语言及存储形式。)
2-3-2文档(列出应交付的文档。)
2-3-3运行环境(应包括硬件环境 软件环境。)
2-3-4服务(阐明开发单位可向用户提供的服务.如人员培训 安装 保修 维护和其他运行支持。)
2-3-5验收标准
3.实施计划
3-1任务分解(任务的划分及各项任务的负责人。)
3-2 进度(按阶段完成的项目,用图表说明开始时间 完成时间。)
3-3预算
3-4关键问题(说明可能影响项目的关键问题,如设备条件 技术难点或其他风险因素,并说明对策。)
4.人员组织及分工
5.交付期限
6.专题计划要点(如测试计划 质量保证计划 配置管理计划 人员培训计划 系统安装计划等。)
编制人:
项目编号:XXXXX-1
XXXX公司
日期:
项目编号:XXXXX-2
❖ 嵌入式软件开发工作计划 ❖
(1)对软件开发成本和进度的估计经常很不准确。实际成本比估计成本有可能高出一个数量级,实际进度比预期进度拖延几个月甚至几年的现象并不罕见。这种现象降低了软件开发组织的信誉。而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量,从而不可避免地会引起用户的不满。
(2)用户对“已完成的”软件系统不满足的现象经常发生。软件开发人员经常在对用户要求只有模糊的了解,甚至对所要解决的新问题还没有确切熟悉的情况下,就仓促上阵匆忙着手编写程序。软件开发人员和用户之间的信息交流往往很不充分,“闭门造车”必然导致最终的产品不符合用户的实际需要。
(3)软件产品的质量往往靠不住。软件可靠性和质量保证的确切的定量概念刚刚出现不久,软件质量保证技术(审查、复审和测试)还没有坚持不懈地应用到软件开发的全过程中,这些都导致软件产品发生质量新问题。
(4)软件经常是不可维护的。很多程序中的错误是非常难改正垢,实际上不可能使这些程序适应新的硬件环境,也不能根据用户的需要在原有程序中增加一些新的功能。“可重用的软件”还是一个没有完全做到的、正在努力追求的目标,人们仍然在重复开发类似的或基本类似的软件。
(5)软件通常没有适当的文档资料。计算机软件不仅仅是程序,还应该有一整套文档资料。这些文档资料应该是在软件开发过程中产生出来的,而且应该是“最新式的”(即和程序代码完全一致的)。软件开发组织的管理人员可以使用这些文档资料作为“里程碑”,来管理和评价软件开发工程的进展状况;软件开发人员可以利用它们作为通信工具,在软件开发过程中准确地交流信息;对于软件维护人员而言,这些文档资料更是至关重要必不可少的。缺乏必要的文档资料或者文档资料不合格,必然给软件开发和维护带来许多严重的困难和新问题。
(6)软件成本在计算机系统总成本中所占的比例逐年上升。由于微电子学技术的进步和生产自动化程度不断提高,硬件成本逐年下降,然而软件开发需要大量人力,软件成本随着通货膨胀以及软件规模和数量的不断扩大而持续上升。美国在1985年软件成本大约已占计算机系统总成本的90。
(7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋向。软件产品“供不应求”的现象使人类不能充分利用现代计算机硬件提供的巨大潜力。
软件工程的七条基本原理:
1、用分阶段的生命周期计划严格管理有人经统计发现,在不成功的软件项目中有一半左右是由于计划不周造成的,可见把建立完善的计划作为第一条基本原理是吸取了前人的教训而提出来的。在软件开发和维护的漫长的生命周期中,需要完成许多性质各异的工作。这条基本原理意味着,应该把软件生命周期划分成若干个阶段,并相应地制定出切实可行的计划,然后严格按照计划对软件的开发和维护工作进行管理。Boehm认为,在软件的整个生命周期中应该制定并严格执行六类计划,它们是项目概要计划,里程碑计划,项目控制计划,产品控制计划,验证计划,运行维护计划。不同层次的管理人员都必须严格按照计划各尽其职地管理软件开发和维护工作,绝不能受客户或上级人员的影响而擅自背离预定计划。
2、坚持进行阶段评审当时已经熟悉到,软件的质量保证工作不能等到编码阶段结束之后再进行。这样说至少有两个理由:第一,大部分错误是在编码之前造成的,例如,根据Boehm等人的统计,设计错误占软件错误的63,编码仅占37;第二,错误发现和改正得越晚,所需付出的代价也越高。因此,在每个阶段都进行严格的评审,以便尽早发现在软件开发过程中所犯的错误,是一条必须遵循的重要原则。
3、实行严格的产品控制在软件开发过程中不应随意改变需求,因为改变一项需求往往需要付出较高的代价,但是,在软件开发过程中改变需求又是难免的,由于外部环境的变化,相应地改变用户需求是一种客观需要,显然不能硬性禁止客户提出改变需求的要求,而只能依靠科学的产品控制技术来顺应这种要求。也就是说,当改变需求时,为了保持软件各个配置成分的一致性,必须实行严格的产品控制,其中主要是实行基准配置管理。所谓基准配置又称基线配置,它们是经过阶段评审后的软件配置成分(各个阶段产生的文档或程序代码)。基准配置管理也称为变动控制:一切有关修改软件的建议,非凡是涉及到对基准配置的修改建议,都必须按照严格的规程进行评审,获得批准以后才能实施修改。绝对不能谁想修改软件(包括尚在开发过程中的软件),就随意进行修改。
4、采用现代程序设计技术从提出软件工程的概念开始,人们一直把主要精力用于探究各种新的程序设计技术。60年代末提出的结构程序设计技术,已经成为绝大多数人公认的先进的程序设计技术。以后又进一步发展出各种结构分析(SA)和结构设计(SD)技术。实践表明,采用先进的技术既可提高软件开发的效率,又可提高软件维护的效率。
5、结果应能清楚地审查软件产品不同于一般的物理产品,它是看不峥摸不着的`逻辑产品。软件开发人员(或开发小组)的工作进展情况可见性差,难以准确度量,从而使得软件产品的开发过程比一般产品的开发过程更难于评价和管理。为了提高软件开发过程的可见性,更好地进行管理,应该根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,从而使得所得到的结果能够清楚地审查。
6、开发小组的人员应该少而精这条基本原理的含义是,软件开发小组的组成人员的素质应该好,而人数则不宜过多。
开发小组人员的素质和数量是影响软件产品质量和开发效率的重要因素。素质高的人员的开发效率比素质低的人员的开发效率可能高几倍至几十倍,而且素质高的人员所开发的软件中的错误明显少于素质低的人员所开发的软件中的错误。此外,随着开发小组人员数目的增加,因为交流情况讨论新问题而造成的通信开销也急剧增加。
-
推荐阅读:
嵌入式软件开发工作计划(精华12篇)
最新嵌入式软硬件售后工程师工作计划(经典14篇)
软件开发协议之一
有关软件开发合同汇总简短
[荐]软件开发协议模板(7篇)
[推荐协议]
软件开发保密协议范例
-
更多精彩的嵌入式软件开发工作计划,欢迎继续浏览:嵌入式软件开发工作计划