软件软件软件

新手学习嵌入式开发的几个步骤软件开发过程与思想

计算机软件尤其是数据库软件,成为了当代计算机应用的主流。因此软件开发人员就必须掌握正确的开发手段,了解软件开发的主要过程,这样心中对软件项目才有清醒的认识,才能达到事半功倍的效果。本文就软件开发过程中的一些方法,结合本人开发过的一些软件项目做一些详细论述。
对于很多的嵌入式新手来说,嵌入式学习过程中如果能得到前辈们的一些指点是再幸运不过的事了。例如包括:嵌入式开发如何入门?如何一步步学 括每个阶段学习中需要重点学习的环节等等。接下来本文就为大家介绍新手学习嵌入式开发的几个步骤:
  学习嵌入式开发,大概分为以下几步:硬件平台选择,开发环境建立,应用程序编写,驱动程序编写;而对于嵌入式项目的开发,一般有以下几个步骤:硬件开发,交叉编译环境的建立,内核的移植,文件系统的建立,驱动程序的编写,应用程序的开发。 因此对于一个新手来说,第一件事就是拥有一块自己的开发板,然后先在开发板上学习嵌入式环境的建立以及应用程序的编写,接着学习编写驱动程序。接下来本文将按照这一顺序来撰写嵌入式开发新手指南。
  首先,硬件平台是整个嵌入式开发学习的基础。光靠看看资料,自己不动手编程的学习是不可能有什么效果的。所以选择一款嵌入式开发平台,是必须的第一步。有了一套嵌入式开发平台以后,一边看资料,一边动手,进步就非常快。同时选择硬件平台的过程,也有利于大家加深对硬件系统的了解。
  1 开发前的准备工作
  一般软件项目在开发前都有系统任务书,主要规定软件的开发目标、主要任务、功能、性能指标及研制人员和经费、进度等安排,作为系统设计开发和检验的基本依据。
  其次,嵌入式开发环境的构建是在有了硬件平台之后的又一项重要的基础工作。包括上位机操作系统的安装和配置,编译器的安装和一些其他软件的安装。然后要将启动程序,内核和文件系统编译以后烧写到目标板上。在完成了这些准备工作之后,我们就能够真正进入到后面的开发学习阶段了。
  然后,学习应用程序:其实应用程序的复杂程度不比内核低,项目开发周期大多耗在应用程序的编写上。应用程序也是一个系统,比如大家都熟知的qtopia,要玩懂它的话还是要花上很多时间的。
  最后, 对于想要深入研究嵌入式的朋友,学习驱动程序也是必不可少的一个环节。学习驱动程序和内核源码,现在市面上已经有很多好书了,其中LDD算是一部最完美的杰作。如果你熟悉单片机系统的开发,要想学会驱动程序的开发是很简单的。开发驱动之前先看别人写的书,理解了驱动的基本模型之后,再看内核文档里面对设备模型的概述(考验你英语水平的时候到了),如果理解了驱动编写的接口,再把其中某个模型拿出来通读,之后就可以自己动手编写了,这样的学习过程对于一个新手来说进步是最大的。驱动程序掌握后,内核中的很多知识自然就懂了,那时候你可能就具备了一定的开发能力了。 对于移植,可以借鉴开发板的开发方法来做。相信熟悉了内核的你肯定能很好地理解。
  经过以上几个阶段的学习之后,基本上算初步成功,又一个嵌入式开发工程师诞生了。理论上来说,完成了这几个部分学习的人,已经完全有能力参与嵌入式项目的研发工作。接下来需要的就是通过实战的磨练来积累经验。其实,很多资深的嵌入式开发工程师都有这样的感觉。嵌入式开发真是一个魅力无穷的领域。它提供我们的,不仅是开发的平台,更是创造的平台。通过这个平台,我们不仅一直创造技术,产品,财富。我们更是创造生活!
  系统任务书的基本框架如下:
  学习技术并不难,关键要有恒心,更多学习嵌入式单片机的童鞋们请咨询李老师QQ982288214 TEL:13500505486  (1)引言
  包括编写目的,背景,参考资料。
  (2)系统的目标及任务
  包括系统建设目标,系统的主要任务,系统性能指标,系统标准化要求。
  (3)系统的结构及功能
  包括系统应用组成及结构,系统主要功能。
  (4)系统的规模及进度要求
  包括系统规模,系统研制进度,人员计划。
  但是系统任务书只是这个软件项目的一个基本要求,针对具体情况,软件开发人员和需求分析人员就要联合对软件项目的细节进行具体分析,必要时还要进行实地调研,然后共同商讨写出系统的需求分析,需求分析的编写目的在于:
  a. 说明系统在军事方面、技术方面、经济方面和社会条件方面实现的可行性和必要性;
  b. 分析原系统(工作环境)现状,描述待开发系统的详细需求,提供用户和开发人员之间沟通的基础,提供项目设计的基本信息。
  需求分析报告的基本框架如下:
  (1) 概述
  包括 编写目的,背景,参考资料,术语及缩写词。
  (2) 对现有系统的分析
  (3)待开发系统的详细需求
  包括 功能需求,使用范围,业务流程,用户界面,输出要求,故障处理。
  (4)使用环境
  包括 网络环境,硬件环境,软件环境,与其他系统的关系,安全与保密。
  (5) 可行性分析
  包括 技术可行性分析,经济可行性分析,人员可行性分析,影响待开发系统的主要因素。
  (6)结论意见
  2 软件开发过程
  有了系统任务书和需求分析报告,软件设计人员就要对软件项目的实现进行系统分析,系统分析包括系统的总体方案,系统的设计说明,作为软件设计的依据。具体说明如下。
  2.1 系统总体方案
  在系统开发单位和用户充分交互、理解的基础上,提出系统的技术构架,对系统功能、性能等主要指标作描述,对实现方法和要求作规定,是系统进行详细设计的依据。
  系统总体方案基本框架包括:
  (1)引言
  包括 :编写目的,背景,参考资料,术语及定义。
  (2)项目概述
  包括 :
  --项目的主要内容
  --系统需求分析:①用户需求调查分析②现行系统的现状调查分析。
  --系统功能:①系统的功能要求②系统主要技术性能。
  --系统的数据要求:①基础数据②业务数据③交换数据④其它数据。
  --系统的设计要求:①技术结构要求②系统划分及其接口要求③系统运行环境要求④系统标准化综合要求。
  (3)实施总计划
  包括 :进度,预算,问题和措施。
  2.2 系统设计说明
  根据《系统总体方案》提出的系统构架、功能、性能及数据要求,确定系统的物理结构,说明系统主要技术方面的设计和采用的技术方法以及系统的标准化约束等,是系统实施的基本依据。就本人曾经开发过的一个软件项目,说明其基本框架:
  (1) 引言
  包括 :编写目的;背景;条件和限制;参考资料;术语及定义。
  (2) 系统总体技术方案
  包括:
  --概述:①系统目标②基本要求。
  --系统设计:
  ①系统结构
  a、 应用结构。
  b、 功能结构。
  c、 技术结构。
  ② 系统功能设计:根据以上的分析,功能设计自然
  包括业务管理功能设计、综合查询功能设计、邮件收发功能设计、数据库接口设计、文电接口设计。在对这些功能进行综合分析的基础上,开始进行数据库表的设计。在对表的设计过程中,既要考虑到关系数据库冗余字段的处理,又要考虑到系统运行的速度和实现的方便性等综合因素,笔者在实际开发后认为这两种考虑比例可以为7:3。
  ③系统安全设计:可以考虑以下一些安全设计思想,例如系统的数据传输通过电子邮件实现,要求电子邮件内部只传代码,不传涉密数据;系统的数据库操作需要充分利用Oracle数据库的事务提交和回滚机制,确保业务处理的完整性和一致性;系统的数据结构应充分利用存储空间,在不同的用户之间通过数据冗余提高整个系统的数据安全性;系统中存贮的用户口令、备份口令、数据库连接信息等重要数据,必需经过安全加密。
  ④ Oracle数据库自动优化设计:对于Oracle数据库可以进行数据库配置,可以大大提高大数据量查询速度,笔者已经做过尝试,并已经成功应用。
  ⑤ 友好界面设计:对于一个良好的应用系统当然需要设计良好的使用界面。
  2.3 软件开发
  对于开发语言的选择因人而易,开发数据库系统我比较倾向于DELPHI,因为它对于数据库开发的支持是很完善的。在软件实现方面,上面已经说明了一种客户/服务器结构,但是这种结构本身也包含了一些问题,例如客户/服务器结构经常把应用系统的企业逻辑编写在客户端的应用程序中,因此当应用系统需要改变时,所有在客户端的应用系统都必须改变,这对于MIS系统的维护来说成本太高了;为了解决这些重复开发应用系统的成本以及为了增加应用系统的重复使用性发挥面向对象分析/面向对象设计的功能,就必须导入所谓的应用程序服务器,软件开发人员以一种特定的组件形式,例如Microsoft的COM/DCOM,CORBA对象,或是Enterprise JavaBean等,组装企业的逻辑程序代码。新手学习嵌入式开发的几个步骤软件开发过程与思想(图1)这种经过组装,能够执行特定企业功能的对象便称为"企业对象",然后把这些企业对象分发到此应用程序服务器。由于本文不是专门讨论多层系统的文章,所以只是简单提一下,不再赘述。
  程序设计中要注意合理的程序设计结构,可以将所有的公用组件放在一起。例如Delphi语言中可以新建一个单元,将所有编写的函数放在这个单元里,其他单元均可以调用,还可以新建一个数据模块(Datamodule),将所有的公共数据库控件放在这里,可以减少系统资源浪费,优化数据库程序设计。
  关于程序设计中的技巧很多,这里也不再赘述。
  3 软件开发后的工作
  软件项目在开发完成后还要进行系统测试,以测试开发出的软件的功能和性能是否达到预定要求。
  3.1 软件测试大纲
  这是软件设计人员用来自测系统的。包括:
  (1)测试环境①硬件环境②软件环境③数据环境④网络环境。
  (2)功能测试内容①模拟现场测试②应用现场测试。
  (3)性能测试内容
  另有附表:附表一 系统功能测试表;附表二 系统性能测试表。
  3.2 用户应用测试
  由用户在实际使用过程中进行测试,并给出应用证明。
  4、总结
  开发软件项目是一个庞大的系统工程,以上只是介绍了一般性软件主要是数据库软件的开发过程和设计思想,它要求软件开发者对此要有精深的理解,熟悉软件开发的思路。
  通常一个人难以完成所有工作,需要一个良好的合作团队来协作完成,其中需求分析员和系统分析员要提供软件项目的具体要求和设计思想,由软件开发组把这些要求创建出便于维护和可持续开发的系统资源。

未经允许不得转载:软件 » 新手学习嵌入式开发的几个步骤软件开发过程与思想