软件工程及软件方法学
-
嵌入式系统开发与应用田泽编著内容简介目录全面讲述了嵌入式系统开发与应用技术,以嵌入式系统的基本开发技术为主线,以ARM处理器核及国内应用广泛的Samsung公司S3C44B0X(基于ARM7TDMI)为硬件平台,系统讲述了嵌入式系统开发的基本知识、基本流程、基本方法及以ARM微处理器为核心的嵌入式系统软、硬件开发过程。主要内容包括:◆ 嵌入式系统开发基础知识;◆ ARM技术概述;◆ 基于ARM的嵌入式系统应用程序设计;◆ 基于S3C44B0X的嵌入式系统应用开发实例;◆ μC/OSⅡ和μCLinux嵌入式操作系统及应用开发。本书可作为高校计算机和电类专业的本科生、研究生教材,以及相关工程技术人员进行嵌入式系统应用开发的教材,也可供基于ARM核嵌入式系统开发的工程技术人员参考。本书配套多媒体教学课件。嵌入式技术的发展以8位单片机(或微控制器,MCU)为核心的嵌入式系统早已广泛应用于各个领域,这些应用大多数还处于单机使用的嵌入式低层次阶段。其特点是以MCU为核心,与一些简单的传感器及监测、伺服控制、指示和显示等设备配合,实现一定的测量、显示、信息处理及控制等功能。虽然在一些工业控制、汽车电子和智能家居等多机应用中,为了实现多个MCU构成的系统间的信息交流,通常是利用CAN、RS232和RS485等总线将MCU组网。但这种网络的应用空间有限,相关的通信协议也比较单一,并且一般孤立于广泛应用的Internet以外。目前,Internet已成为社会重要的基础信息设施,是信息流通的重要渠道。嵌入式系统必将与Internet完美融合,方便、低廉地将信息传送到世界上任何一个地方。随着嵌入式设备与Internet的广泛结合,手机、PDA、路由器和调制解调器等复杂的高端应用对嵌入式处理器的性能提出了更高的要求。虽然以8位单片机为核心的嵌入式技术不断发展,性能也不断提高,但由于其性能的局限性,已无法满足未来高性能嵌入式技术的发展需求。激烈的市场和技术竞争要求不断提高嵌入式系统的性价比;同时,也要求缩短嵌入式系统的开发周期。自从20世纪70年代初出现嵌入式系统的概念以来,嵌入式系统以其高性能、低功耗等特点高速发展。当时的嵌入式系统很多都不采用操作系统,它们只是为了实现某个控制功能,使用简单的循环控制来对外界的控制请求进行处理。随着嵌入式系统的发展,当应用系统越来越复杂、使用范围越来越广泛时,每增加一项新的应用功能,都可能需要从头开始设计系统软件,没有操作系统已成为其最大缺陷。但目前在8位单片机上运行嵌入式操作系统尚有一定困难,因此,以32位处理器作为高性能嵌入式系统开发的核心已是嵌入式技术发展的必然趋势。20世纪90年代后,嵌入式系统设计从以嵌入式微处理器/DSP为核心的"集成电路"级设计,逐渐转向"集成系统"级设计,提出了片上系统SoC(Sytem on a Chip)的基本概念。目前,嵌入式系统已进入以SoC为核心的设计阶段,并开始逐步实用化和规范化。SoC为高性能嵌入式系统开发提供了功能丰富的硬件平台,也为实时嵌入式操作系统的广泛使用提供了硬件基础。从20世纪80年代开始,陆续出现了一些嵌入式操作系统,比较著名的有VxWorks、Windows CE、Palm、μCLinux、pSOS和μC/OSⅡ等,但真正广泛使用只是近几年的事情。一方面是因为嵌入式系统软件开发复杂度增加的需求;另一方面是大量高性能、面向实际应用、集成多种系统功能的SoC芯片成为高端嵌入式应用的硬件核心,为可靠、高效、低成本地运行嵌入式操作系统提供了硬件平台。大部分嵌入式操作系统价格昂贵,而源代码开放的μC/OSⅡ、μCLinux是大家比较看好的,也比较适用于教学。有关嵌入式操作系统的知识体系相对复杂,一些出版社已经出版了多种相关的书籍,如果在教学、科研中对这方面内容比较感兴趣,请参阅相关资料。嵌入式微处理器具有体积小、重量轻、成本低和可靠性高的优点,是嵌入式系统的核心。目前比较有影响的32位嵌入式处理器有ARM公司的ARM、Compaq公司的Alpha、HP公司的PARISC、IBM公司的PowerPC、MIPS公司的MIPS和Sun公司的Sparc等。而ARM处理器具有高性能、低功耗和低成本等显著优点,已成为高性能、低功耗嵌入式微处理器的代名词,是目前32位、64位嵌入式处理器中应用最为广泛的一个系列。20世纪90年代初,半导体行业产业链形成设计业、制造业和封装测试业三业分离的产业分工。台积电、联电等半导体代工厂崛起,一些fabless、chipless公司如雨后春笋般出现。而英国先进RISC机器公司(Advanced RISC Machines,简称ARM公司)作为fabless、chipless这一生产模式最为成功的典范。ARM公司既不生产芯片,也不销售芯片,而是设计出高效的IP内核,授权给各半导体公司使用;半导体公司在ARM技术的基础上,根据自己公司的产品定位,添加自己的设计并推出芯片产品;最后由OEM客户采用这些芯片来构建基于ARM技术的最终应用系统产品。经过10多年的发展,ARM公司已是业界领先的IP供应商。回顾ARM技术的发展历程,在ARM7体系结构(体系结构版本v3)刚被广泛接受和使用时,嵌入式微处理器的市场仍然大都由8位、16位处理器占领。然而,这些产品却不能满足当时移动电话、调制解调器等高端应用对处理器性能的要求。这些高端产品需要32位RISC处理器的性能和更优于16位CISC处理器的代码密度,这就要求要以更低的成本取得更好的性能和更优的代码密度。为了满足这种发展需求,ARM体系结构增加了T变种,开发了一种新的指令体系,即16位Thumb指令集。Thumb技术是ARM技术的一大特色。ARM发布的ARM7TDMIT体系结构(体系结构版本v4T)的处理器,是第一个支持Thumb指令集的微处理器,其工作模式可以方便地切换到Thumb状态。在该状态下运行的指令集是16位Thumb指令集,这在当时的16位系统与现在需要的32位系统之间搭起了一座桥梁。性能更优而不需要付出额外代价的ARM,为那些在当时使用8位或16位处理器,却一直在寻找更优性能处理器的用户来说,提供了解决方案,也极大地推动了ARM技术的发展。16位处理器一直没有像人们预期的那样发展起来的原因很复杂,由于32位ARM微处理器提供了低于一般16位微处理器的价格而高于一般16位微处理器的性能,使得高端的嵌入式应用可以完全跨越16位而直接进入32位应用领域,这也许是原因之一。ARM微处理器得到了众多半导体厂家和整机厂商的大力支持,全球已有100多家IT公司在采用ARM技术,20家最大的半导体厂商中有19家是ARM的用户,包括TI、Philips和Intel等公司。优良的性能和准确的市场定位极大地丰富了ARM资源,加速了基于ARM核的面向各种应用系统芯片的开发应用,使得ARM获得了更广泛的应用,确立了ARM技术的市场领先地位。ARM在高性能嵌入式应用领域获得了巨大的成功,已在32位嵌入式应用中稳居世界第一。在2002年,基于ARM核的芯片占据了整个32位、64位嵌入式微处理器市场的79.5%,全世界已使用了20多亿个ARM核。如今,ARM公司已经成为业界的龙头老大,"每个人口袋中都装着ARM"是毫不夸张的,因为几乎所有的手机、移动设备、PDA都是用基于ARM核的系统芯片开发的。为了顺应当今世界技术革新的潮流,了解、学习和掌握高性能嵌入式技术,就必然要学习以32位ARM微处理器为核心的嵌入式开发技术及其应用开发环境和平台。 对IT产业发展规律进行总结可发现:如果说过去20年PC机的广泛应用是集成电路和IT相关技术发展的驱动器并且极大地促进了IT相关技术发展,那么未来几十年除了PC技术要继续高速发展之外,主要驱动器应该是与Internet相结合的、可移动的(Mobile)、便携的(Portable)、实时嵌入式Internet的信息处理设备,即进入了后PC(PostPC)时代。目前嵌入式Internet还仅局限于移动商务、智能家居(家电上网)、工业控制和智能设备的应用等方面。随着相关应用技术的发展,嵌入式技术必将与许多实际应用领域相结合,以难以想像的速度发展。这必然会极大地拓展嵌入式应用的广度和深度,体现嵌入式系统与实际应用密切结合的价值。当代通用计算机工业是Wintel(Microsoft和Intel公司20世纪90年代初建立的联盟)垄断的工业。随着信息技术和网络技术的高速发展,嵌入式技术的广泛应用使得这种垄断在后PC时代不再存在。嵌入式系统正是非PC设备的主体。互联网技术在世界范围的扩展及中国通信事业的高速发展,为我国开发嵌入式产品造就了巨大市场。与实际应用密切结合且技术高度分散的嵌入式技术,为我国IT技术的发展提供了难得的机遇。加快嵌入式技术的开发应用,学习与掌握嵌入式系统开发的核心技术,对于IT技术并不发达的中国是非常重要的。学习32位嵌入式系统应用开发知识的迫切性与传统的以8位51单片机为核心的开发应用相比,ARM微处理器的性能和处理能力遥遥领先,应用也日益广泛,但与之相应的,基于ARM的32位嵌入式系统软/硬件开发的复杂度和难度也急剧加大。现在我国嵌入式应用开发技术人才状况是:掌握低端8位单片机应用技术的人才相对过剩;而真正了解高端32位嵌入式系统开发技术的人才,却凤毛麟角,需求与供给严重失衡。就我国大部分高校目前的嵌入式系统教学而言,整体仍然停留在20世纪80年代初发展起来的以8位51单片机为核心的单片机教学水平上。目前教学内容设置、教学方法、教学手段、教材编写体系与这门课程以实际应用为主的基本特征严重脱节。学生学习了这门课程后,只能进行一般的、基于指令基础上的简单编程,而不能进行基本的应用系统设计。在此基础上要想完成具有较大规模的应用程序设计是有一定难度的,要独立进行一般的开发工作就更加有难度。一般学生进入技术开发岗位后,基本上要进行相当长一段时间的实际培训,才能基本进入开发流程;要独立承担项目,还需要更长一段时间。发展嵌入式技术,人才是关键。培养和培训相关人才,一方面,要在高校中加强嵌入式系统教学,这是人才的源头;另一方面,有一定实际项目开发经验的工程技术人员也需要加强嵌入式系统开发技术的学习。因此,为满足高等院校相关专业嵌入式系统教学要求,迫切需要适合教学特点的高水平教材;从事嵌入式系统开发的一般工程技术人员也迫切需要对嵌入式系统应用开发技术进行全面、系统、深入介绍的参考资料。作者是国内最早翻译ARM bible级的《ARM SoC体系结构》\[1\]一书的译者之一,并从事于ARM技术的相关教学及科研工作多年,积累了大量的嵌入式系统教学和开发经验;作者与ARM公司、基于ARM核的芯片厂商以及对ARM感兴趣的读者建立了广泛的联系,获得了大量的技术信息和建议。因此,为满足高等院校相关专业的师生及嵌入式系统开发工程技术人员的需要,作者在此基础上,编写了4本图书,即本书及另外3本一套的《嵌入式系统开发与应用系列教程》。本书涉及的硬件平台及开发环境Samsung公司S3C系列芯片是国内市场占有率最高的基于ARM核的微处理器之一,其接口模块丰富,适用面广,故本书和《嵌入式系统开发与应用系列教程》都选择Samsung公司S3C44B0X(基于ARM7TDMI)作为硬件平台。在学习基于ARM的嵌入式系统开发时,选择合适的开发工具可以加快开发进度,降低开发成本。目前世界上有几十家公司提供不同类别的ARM开发工具和产品。ARM应用的开发工具主要包括集成开发环境IDE、嵌入式实时操作系统、评估板和JTAG仿真器等。一般来说,一套具备最基本功能的嵌入式集成开发环境IDE是嵌入式系统开发所必不可少的。目前国内外主要使用的IDE环境有ARM 公司的SDT和ADS、美国Green Hills软件公司的Multi 2000、台湾的Hitool for ARM以及英蓓特公司的Embest IDE for ARM等,而国内使用较多的IDE为ARM公司的SDT、ADS以及英蓓特公司的Embest IDE。仿真器有ARM公司的Muti-ICE和英蓓特公司的Embest系列ARM JTAG仿真器。SDT和ADS是ARM公司早期的集成开发环境(IDE),其用户界面不太符合中国人的使用习惯,而且软件本身价格很高,仿真器也是价格不菲。SDT和ADS目前都已经停止升级。英蓓特公司的ARM集成开发环境套件(包括Embest IDE、指令集模拟器、仿真器及Flash编程器等相关开发工具)是国内最早的ARM开发工具之一。作为国内较早成功开发出IDE环境的公司,英蓓特是目前国内唯一的ARM Connected Community Membership(参见http://arm.convergencepromotions.com/catalog/Embest.htm),完全自主开发,本土技术支持实力雄厚,且价格合理,并能为嵌入式系统开发人员提供软硬件开发工具和嵌入式系统完整解决方案及技术信息服务;因此,本书和《嵌入式系统开发与应用系列教程》都选用英蓓特公司的集成开发环境套件作为ARM应用开发的工具。学习32位嵌入式系统开发与应用技术所需的基础知识嵌入式系统开发与应用的内容繁杂,涉及基本的硬件知识(如嵌入式微处理器及其基本接口、扩展人机接口和网络通信接口等知识)、操作系统(应该至少了解一种操作系统的中断、优先级、任务间通信和同步等知识)、程序设计知识(C语言、C++语言和汇编语言程序设计,至少要熟悉C语言);同时,还要具备一定的数字电路知识以及使用示波器、逻辑分析仪等基本技能。因此,在系统地学习本书和《嵌入式系统开发与应用系列教程》之前,必须有学习过微机原理与接口、C语言程序设计等课程的基础,掌握计算机操作系统原理、体系结构和系统结构的基本概念,同时对于网络协议有一定的了解。本书内容组成本书全面、系统地讲述了嵌入式系统开发的基础理论与应用技术,以嵌入式系统的基本开发技术为主线,以ARM处理器核及目前应用广泛的Samsung公司的S3C44B0X(基于ARM7TDMI)为硬件平台,系统讲述了嵌入式系统开发的基本知识、基本流程、基本方法及以ARM微处理器为核心的嵌入式系统软/硬件开发过程。在加强嵌入式系统开发基础、嵌入式系统应用软件设计、嵌入式基本硬件接口、嵌入式操作系统移植及应用内容的基础上,紧密结合嵌入式系统开发过程的实际工程应用,将嵌入式系统外围复杂的实用模块开发例程移植到了本书内容中。本书按技术内容分为8章,共5大部分。各部分具体内容及包含的章节如下:第1部分: 为书的第1章,主要介绍嵌入式系统开发的基础知识。内容包括嵌入式系统的基本概念、组成结构、硬件组成、操作系统、应用软件开发、开发流程和发展趋势。通过本部分的学习,可使读者系统地建立起嵌入式系统开发的整体概念和知识体系。第2部分: 为书的第2章,主要对ARM技术进行全面论述。通过本部分的学习,可使读者全面地了解ARM技术,并建立起以ARM技术为基础的嵌入式系统应用和以ARM核为基础的嵌入式SoC芯片设计的技术框架。在学习本部分时,可根据自己的具体情况有所取舍。第3部分: 为书的第3、4和5五章。主要介绍嵌入式系统的应用程序设计。第3章主要介绍ARM指令集。第4章主要介绍Thumb指令集。ARM和Thumb这两种指令集只是基于ARM的嵌入式编程的基础。第5章主要介绍如何运用前面学过的汇编指令并结合C语言来进行嵌入式程序设计。首先介绍伪操作、宏指令和伪指令等嵌入式汇编语言程序设计基础知识;然后讲述ARM汇编语言程序设计,以实际例程中用到的C语言讲述嵌入式C语言程序设计基础,并在此基础上列举一个嵌入式C程序设计实例;对于嵌入式编程技巧和C语言与汇编混合编程也进行了简述;最后通过一个基于Embest IDE for ARM开发环境的嵌入式软件开发与调试实例讲述了嵌入式软件开发流程和开发工具的使用。本章密切结合嵌入式系统开发的实际例程,通过学习能使读者掌握嵌入式程序设计的基本知识、基本方法和基本流程。第4部分: 为书的第6章。主要介绍基于S3C44B0X的嵌入式系统开发。Samsung公司的S3C44B0X片上功能很强大,是国内应用广泛的基于ARM7TDMI内核的SoC。本部分以S3C44B0X为例,对嵌入式系统开发进行全面介绍,涉及片上基本功能模块及这些模块的应用开发;在此基础上还介绍基于S3C44B0X的S3CEV40开发板设计,并对基于S3CEV40的启动程序和基于S3CEV40的USB接口的嵌入式开发进行讲述,其他如网络等功能的完整的应用开发可详见《嵌入式系统开发与应用实验教程》\[2\]一书。通过对这些嵌入式外围主要模块应用功能(部分内容可参见《嵌入式系统开发与应用实验教程》)开发的讲述,可使读者对嵌入式系统开发有一个全面了解。第5部分: 为书的第7、第8章,主要对于嵌入式操作系统μC/OSⅡ和μCLinux的基本知识进行讲述,在此基础上分别对基于S3C44B0X的移植及应用开发进行介绍。本书包含大量软件和硬件设计资源,为系统学习与掌握基于ARM的嵌入式开发技术提供了一种选择方案。通过该书的学习,不仅可使读者系统地掌握嵌入式系统开发的基本知识,而且对复杂实用的外围接口模块的开发、嵌入式操作系统的移植也能有一个全面了解。本书提供的实际嵌入式系统开发例程也可应用到实际开发过程中。本书读者对象本书力求将嵌入式系统开发与应用技术全面介绍给读者,内容全面、详细和系统,非常适于学习嵌入式系统开发的工程技术人员阅读。因其内容较多,不太适宜作为高等院校嵌入式系统课程的短学时教材,但高校研究生或本科生的多学时嵌入式系统课程可选用此书作为教材。此书亦可作为嵌入式系统开发工程技术人员的培训资料。对于选用《嵌入式系统开发与应用系列教程》作为教材的高校师生,亦可将此书作为配套参考资料。为了便于教学和培训,本书还配套了多媒体教学课件。本书与《嵌入式系统开发与应用系列教程》的配套使用作者编写的另外3本一套的《嵌入式系统开发与应用系列教程》是专门针对高校嵌入式系统教学特点而编写的教材,包括:◆ 《嵌入式系统开发与应用教程》(理论课教材,即将出版):配套多媒体教学课件◆ 《嵌入式系统开发与应用实验教程》(实验课教材):配套Embest ARM实验教学系统:配套多媒体教学课件◆ 《嵌入式系统开发与应用学习指导》(即将出版)本套教程中的理论教材:《嵌入式系统开发与应用教程》,是针对高校嵌入式系统教学的特点,在本书基础上将内容重新整合而成的,更适合于短学时的教学和培训。本书可结合《嵌入式系统开发与应用系列教程》中的实验教材:《嵌入式系统开发与应用实验教程》来学习,这样可使读者用最短时间掌握32位嵌入式系统应用开发的基础理论和实践知识,培养高端嵌入式产品的研发和设计能力,达到社会对高素质、开拓型嵌入式人才的要求。作者根据实际教学情况和相关技术的发展,对《嵌入式系统开发与应用实验教程》进行了修订,其第2版即将出版。教学课件及获取方式为了便于教学和实验,作者针对本书以及《嵌入式系统开发与应用系列教程》的理论课和实验课教材3本书,为教师提供相配套的多媒体教学课件。有需要的教师,请与北京航空航天大学出版社联系。联系方式如下:通讯地址:北京市海淀区学院路37号北京航空航天大学出版社市场及客户服务部邮编:100083Email:bhpress@263.netTel:01082317031Fax:01082317031致谢在《嵌入式系统开发与应用系列教程》及本书的编写过程中,得到了北京航空航天大学出版社的大力支持,并得到了ARM中国总裁谭军博士、北京理工大学马忠梅教授的关心和指导,北京大学信息科学技术学院盛世敏教授、于敦山博士和蒋安平博士也给予了大量的支持和帮助。感谢我的博士导师中国科学院微电子研究所的仇玉林研究员、北大盛世敏教授,感谢我的硕士导师西安交通大学邱祖廉教授,感谢他们对我一如既往的关心、理解和帮助。他们将我带入科学研究的殿堂,并给予我各种帮助,是我无穷的精神源泉,在此表示深深感谢!我的硕士研究生万永波、闫效莺、车晓萍、杨峰、陈群英、李攀、王进军、刘涛和余兆安以及本科生谢辉、杨冬峰、张精通、徐德正、宋文博、侯利军、杨艳锋、杨景松、宫志坚、郑晓亮和朱书恬等同学亦参与了这一系列图书编写的部分工作,在此表示感谢! 深圳市英蓓特信息技术有限公司的徐光峰、张国瑞、黄日新、唐晖等工程师也提供了更详细的Embest ARM实验教学系统的技术资料和各种帮助,并提出了大量意见和建议,在此表示感谢!感谢我的爱人王永红给予我的理解和支持,是她在家庭中默默地劳作和操持,使我可以安心于工作。正是由于她给予我最及时、最需要的关心和照顾,使我在单调的工作之余,生活总是绚丽、多彩。感谢我的儿子田祎琨,我很少在生活和学习上给予他照顾,希望他幼小的心灵能够理解我!感谢北京航空航天出版社的编辑们,正是由于他们高效、努力的工作,才使得本书能够及时与大家见面!感谢所有帮助过我的人们,有了他们的理解、帮助和支持,我才能完成写作。由于时间仓促及众多客观条件的制约,书中存在的错误不足之处,敬请读者谅解,并真诚地欢迎读者提出宝贵意见和建议。希望教育界、科研界、产业界携手并进,抓住嵌入式技术为我国IT发展提供的难得机遇,促进我国嵌入式技术快速、稳定、健康地发展。田泽2004年10月 第1章 嵌入式系统开发基础1.1 嵌入式系统的基本概念11.1.1 嵌入式计算机11.1.2 嵌入式系统的概念51.1.3 嵌入式系统的特点61.1.4 嵌入式系统的分类91.1.5 嵌入式系统的应用范围91.1.6 嵌入式技术是中国IT发展的难得机遇91.2 嵌入式系统的组成结构101.2.1 嵌入式系统硬件基本结构介绍111.2.2 嵌入式系统软件的层次结构121.2.3 启动程序BootLoader介绍141.3 嵌入式系统的硬件组成151.3.1 嵌入式处理器151.3.2 典型嵌入式处理器介绍161.3.3 嵌入式SoC211.3.4 可编程片上系统SOPC221.3.5 嵌入式外围接口电路和设备接口241.4 嵌入式操作系统251.4.1 嵌入式操作系统261.4.2 嵌入式实时操作系统261.4.3 典型嵌入式操作系统介绍281.5 嵌入式应用软件开发311.5.1 嵌入式软件开发的特点和技术挑战311.5.2 嵌入式软件开发环境321.5.3 嵌入式应用软件开发的基本流程351.5.4 嵌入式软件开发的可移植性和可重用性391.6 嵌入式系统的开发流程401.6.1 嵌入式开发考虑的要素411.6.2 软硬件协同设计411.6.3 嵌入式系统开发的基本流程421.7 嵌入式系统的发展趋势441.7.1 即将来临的以ARM为核心的32位浪潮441.7.2 嵌入式系统与Internet的融合461.7.3 嵌入式系统的发展趋势47习题48第2章 ARM技术概述2.1 ARM体系结构的发展历史和技术特征502.1.1 ARM技术的发展历程512.1.2 RISC体系结构562.1.3 ARM体系结构的技术特征612.2 ARM体系结构不同版本的发展概述622.2.1 ARM体系结构的基本版本622.2.2 ARM体系结构的演变652.2.3 ARM体系结构的命名规则672.3 Thumb技术介绍672.3.1 Thumb的技术概述682.3.2 Thumb的技术实现682.3.3 Thumb的技术特点702.4 ARM处理器工作状态702.5 ARM处理器工作模式712.6 ARM寄存器组成722.6.1 ARM寄存器组成概述722.6.2 ARM状态下的寄存器组织732.6.3 Thumb状态下的寄存器组织782.7 ARM的异常中断792.7.1 ARM的异常中断响应过程802.7.2 从异常中断处理程序中返回812.7.3 异常中断向量表832.7.4 异常中断的优先级832.8 ARM组织结构简介842.8.1 3级流水线ARM的组织842.8.2 5级流水线ARM的组织872.9 ARM存储器接口及存储器层次892.9.1 ARM存储数据类型和存储格式892.9.2 ARM的存储器层次简介902.9.3 ARM存储系统简介912.10 ARM协处理器942.11 ARM片上总线AMBA952.11.1 总线标准概述962.11.2 AHB简介962.11.3 ASB简介982.11.4 APB简介982.12 基于JTAG的ARM系统调试992.12.1 JTAG边界扫描测试接口简介1002.12.2 ARM的调试结构1032.12.3 ARM的嵌入式跟踪1062.13 ARM核综述1072.13.1 ARM7系列核介绍1072.13.2 ARM9系列核介绍1152.13.3 ARM10系列核1202.13.4 StrongARM和XScale系列核1232.13.5 SecurCore系列核1282.14 基于ARM核的芯片选择1292.14.1 应用角度的ARM芯片选择原则1292.14.2 多内核ARM角度芯片选择原则1312.14.3 国内常用ARM芯片及供应商简介132习题133第3章 ARM指令集3.1 ARM指令集概述1343.1.1 ARM指令集编码1343.1.2 条件执行1353.1.3 指令分类及指令格式1363.2 ARM寻址方式1373.2.1 立即寻址1373.2.2 寄存器寻址1393.2.3 寄存器间接寻址1403.2.4 基址加偏址寻址1413.2.5 堆栈寻址1433.2.6 块拷贝寻址1443.2.7 相对寻址1463.3 ARM指令详细介绍1463.3.1 数据处理指令1463.3.2 Load/Store指令1543.3.3 状态寄存器与通用寄存器之间的传送指令1633.3.4 转移指令1663.3.5 异常中断产生指令1703.3.6 协处理器指令1733.3.7 未使用的指令空间177习题179第4章 Thumb指令集4.1 Thumb指令集概述1824.1.1 Thumb指令集编码1834.1.2 Thumb状态切换1834.1.3 编程模型1844.1.4 Thumb指令集特点1854.2 Thumb指令详细介绍1864.2.1 Thumb数据处理指令1864.2.2 Thumb转移指令1944.2.3 数据存取指令1984.2.4 异常中断指令204习题206第5章 基于ARM的嵌入式程序设计5.1 ARM汇编语言的伪操作、宏指令与伪指令2085.1.1 2种编译模式的集成开发环境IDE介绍2095.1.2 ADS编译环境下的ARM伪操作和宏指令2095.1.3 GNU编译环境下的ARM伪操作与宏指令2365.1.4 ARM汇编语言的伪指令2465.2 ARM汇编语言程序设计2505.2.1 ARM汇编中的文件格式2505.2.2 ARM汇编语言语句格式2505.2.3 ARM汇编语言编程的重点2605.2.4 ARM汇编程序实例2675.3 嵌入式C语言程序设计基础2735.3.1 C语言的"预处理伪指令"在嵌入式程序设计中的应用2735.3.2 嵌入式程序设计中的函数及函数库2925.3.3 嵌入式程序设计中常用的C语言语句3075.3.4 嵌入式程序设计中C语言的变量、数组、结构和联合3125.4 嵌入式C语言程序设计实例3185.4.1 实例实现功能介绍3185.4.2 实例实现程序源代码介绍3215.5 嵌入式C语言程序设计技巧3355.5.1 变量定义3355.5.2 参数传递3375.5.3 循环条件3375.6 C语言与汇编语言混合编程3385.6.1 ATPCS介绍3395.6.2 内嵌汇编3425.6.3 C语言和ARM汇编语言程序间相互调用3495.7 基于Embest IDE for ARM 环境的软件开发实例3515.7.1 开发实例介绍3525.7.2 源文件解释3525.7.3 建立工程3595.7.4 工程配置3605.7.5 在RAM中调试软件3675.7.6 软件的固化3695.7.7 程序在Flash中调试369习题370第6章 基于S3C44B0X的嵌入式系统应用开发实例6.1 S3C44B0X处理器介绍3746.1.1 Samsung S3C44B0X简介3746.1.2 Samsung S3C44B0X特点3746.1.3 S3C44B0X功能结构框图3786.1.4 S3C44B0X引脚信号描述3786.2 S3C44B0X存储控制器功能及应用开发3836.2.1 S3C44B0X存储控制器概述3846.2.2 S3C44B0X存储器空间划分简述3846.2.3 S3C44B0X存储控制器功能描述3856.2.4 S3C44B0X存储控制器的特殊功能寄存器3866.2.5 S3C44B0X存储器应用编程3906.3 S3C44B0X I/O端口功能及应用开发3926.3.1 S3C44B0X I/O功能概述3926.3.2 S3C44B0X端口功能配置3936.3.3 S3C44B0X端口功能控制描述3946.3.4 S3C44B0X I/O端口的特殊功能寄存器3966.3.5 S3C44B0XI/O端口应用编程4016.4 S3C44B0X DMA功能及应用开发4046.4.1 S3C44B0XDMA概述4046.4.2 S3C44B0XZDMA/BDMA操作4046.4.3 S3C44B0X DMA特殊功能寄存器4096.4.4 S3C44B0XDMA应用编程4156.5 S3C44B0X UART接口功能及应用开发4176.5.1 S3C44B0X UART概述4176.5.2 S3C44B0X UART的操作4196.5.3 S3C44B0X UART的特殊功能寄存器4226.5.4 S3C44B0X UART应用编程4276.6 S3C44B0X中断控制器功能及应用开发4316.6.1 S3C44B0X中断概述4316.6.2 S3C44B0X中断控制器的操作4326.6.3 S3C44B0X中断源4326.6.4 S3C44B0X矢量中断模式4356.6.5 S3C44B0X矢量中断模式的程序举例4356.6.6 S3C44B0X中断控制器的特殊功能寄存器4386.6.7 S3C44B0X中断控制器应用编程4436.7 S3C44B0X时钟电源管理器功能及应用开发4456.7.1 S3C44B0X时钟电源管理器概述4456.7.2 S3C44B0X时钟电源管理器功能描述4466.7.3 S3C44B0X时钟发生器与电源管理特殊功能寄存器4516.7.4 S3C44B0X时钟与电源管理器应用编程4536.8 S3C44B0X PWM定时器功能及应用开发4556.8.1 S3C44B0X PWM定时器概述4556.8.2 S3C44B0X PWM定时器工作原理4576.8.3 S3C44B0X PWM 定时器操作4576.8.4 S3C44B0X PWM定时器的特殊功能寄存器4596.8.5 S3C44B0X PWM定时器应用编程4646.9 S3C44B0X LCD控制器功能及应用开发4666.9.1 S3C44B0X LCD控制器概述4666.9.2 S3C44B0X LCD控制器的特性4666.9.3 S3C44B0X LCD外部接口信号4676.9.4 S3C44B0X LCD控制器框图4676.9.5 S3C44B0X LCD 控制操作4686.9.6 S3C44B0X LCD视频操作4696.9.7 S3C44B0X LCD控制器的特殊功能寄存器4726.9.8 S3C44B0X LCD控制器应用编程4776.10 S3C44B0X A/D转换器功能及应用开发4796.10.1 S3C44B0X的A/D转换器概述4806.10.2 S3C44B0X A/D转换器特点4806.10.3 S3C44B0X的A/D转换操作4806.10.4 S3C44B0X A/D转换的特殊功能寄存器4826.10.5 S3C44B0X A/D转换器应用编程4846.11 S3C44B0X RTC功能及应用开发4846.11.1 S3C44B0X RTC概述4856.11.2 S3C44B0X RTC特性4856.11.3 S3C44B0X RTC操作4856.11.4 S3C44B0X RTC特殊功能寄存器4876.11.5 S3C44B0X RTC应用编程4936.12 S3C44B0X看门狗定时器功能及应用开发4956.12.1 S3C44B0X看门狗定时器概述4966.12.2 S3C44B0X看门狗定时器特殊功能寄存器4966.12.3 S3C44B0X看门狗定时器应用编程4986.13 S3C44B0X I2C总线接口功能及应用开发4996.13.1 S3C44B0X I2C总线概述4996.13.2 S3C44B0X I2C总线接口操作4996.13.3 S3C44B0X I2C接口特殊功能寄存器5036.13.4 S3C44B0X I2C总线应用编程5066.14 S3C44B0X IIS总线接口功能及应用开发5076.14.1 S3C44B0X IIS概述5076.14.2 S3C44B0X IIS特性5086.14.3 S3C44B0X IIS功能描述5086.14.4 S3C44B0X IIS接口工作模式5096.14.5 S3C44B0X音频串行接口格式5096.14.6 S3C44B0X IIS接口特殊功能寄存器5116.14.7 S3C44B0X IIS应用编程5146.15 S3C44B0X SIO功能及应用开发5176.15.1 S3C44B0X SIO概述5176.15.2 S3C44B0X SIO特点5176.15.3 S3C44B0X SIO正常操作模式 5176.15.4 S3C44B0X SIO DMA 操作5186.15.5 S3C44B0X SIO 接口特殊功能寄存器5196.16 基于S3C44B0X的S3CEV40开发介绍5216.16.1 S3CEV40基本功能介绍5216.16.2 S3CEV40X外围接口硬件资源简介5226.17 S3C44B0X启动程序设计5266.18 USB接口功能开发实例5336.18.1 USB简介5336.18.2 USB接口电路设计5356.18.3 USB接口控制程序设计536习题543第7章 μC/OSⅡ及应用开发7.1 实时操作系统5447.2 μC/OSⅡ操作系统5457.2.1 μC/OSⅡ简介5457.2.2 μC/OSⅡ的特点5477.2.3 μC/OSⅡ的内核结构5487.3 μC/OSⅡ的内核5547.3.1 任务调度5547.3.2 任务间的通信与同步5557.3.3 任务管理5587.3.4 时间管理5597.3.5 内存管理5607.3.6 μC/OSⅡ的文件体系5617.4 μC/OSⅡ应用程序开发5627.4.1 变量类型5627.4.2 应用程序基本结构5637.4.3 μC/OSⅡAPI介绍5647.4.4 μC/OSⅡ多任务实现机制5657.5 μC/OSⅡ在S3CEV40上的移植5667.5.1 移植条件5667.5.2 移植步骤5677.5.3 移植μC/OSⅡ后的测试572习题573第8章 μCLinux及应用开发8.1 嵌入式Linux概况5748.1.1 Linux简介5748.1.2 嵌入式Linux5798.1.3 嵌入式Linux的版本5808.1.4 嵌入式Linux应用5818.2 开发工具GNU的使用5828.2.1 GNU简介5828.2.2 GCC介绍5838.2.3 makefile介绍5888.2.4 gdb调试工具5908.3 Linux内核分析5918.3.1 Linux内核概述5928.3.2 进程管理5928.3.3 内存管理5948.3.4 文件系统管理5968.3.5 设备管理5978.3.6 网络管理5988.4 μCLinux操作系统5998.4.1 进程管理6008.4.2 内存管理6028.4.3 文件系统6038.5 构造嵌入式Linux系统6058.5.1 构造嵌入式Linux系统的几个关键问题6058.5.2 构造嵌入式Linux系统的关键步骤6088.6 μCLinux应用程序开发6108.6.1 μCLinux程序设计要点6108.6.2 高效的程序开发6118.7 μCLinux在 S3CEV40上的移植6128.7.1 移植前的准备6128.7.2 移植步骤6128.8 基于S3CEV40平台的μCLinux开发实例6168.8.1 μCLinux编译运行6168.8.2 Boot Loader编译运行6178.8.3 μClinux内核调试实验6188.8.4 在文件系统中增加应用程序6188.8.5 多进程应用程序的编写及调试6198.8.6 网络应用程序的编写及调试619习题620参考文献621
-
五金手册(软件版)V1.0陈桦,赵汝嘉,王建文主编;孙波等编写;数字化手册编委会编本手册(软件版)在分析和总结我国五金手册资料和标准的基础上,将设计过程中可能需要查询的各种数据、资料进行重新整理、充实、更新,并进行了软件化设计。本手册(软件版)内容包括常用数据和资料、常用金属材料、量具、刃具、工具、通用零部件及器材、建筑五金、日用五金等,并提供了目录查询、索引查询、模糊查询、条件组合查询等多种方便的查询方法。本手册(软件版)可供从事机械设计、制造的工程技术人员以及从事五金产品生产、科研、设计、销售、采购的人员使用,也可供相关专业的工程技术人员以及大专院校的师生参考。
-
软件开发(英)苏格兰学历管理委员会(SQA)著2005年6月中国时代经济出版社与苏格兰学历管理委员会签署第三批英国高等教育文凭项目(SQA/HND)教材的协议,本次共引进教材190种,为商科、计算机、旅游酒店管理、物流、工程等五大类15个专业的教材。现已出版。其余将在年底前陆续出齐。英国高等教育文凭项目(SQA/HND)教材,由国外富有教学经验的资深专家编撰,严格遵循课程大纲,可以帮助国内教师更好地把握课程精髓。教材中的许多国际通行案例,同时根据我国国情收录了适应于国内的教学案例,使学生掌握前沿知识。为了确保教材内容紧跟时代前沿,增强教材实用性和可操作性,SQA负责至少每两年更新教材一次。
-
软件开发(英)苏格兰学历管理委员会(SQA)著2005年6月中国时代经济出版社与苏格兰学历管理委员会签署第三批英国高等教育文凭项目(SQA/HND)教材的协议,本次共引进教材190种,为商科、计算机、旅游酒店管理、物流、工程等五大类15个专业的教材。现已出版。其余将在年底前陆续出齐。英国高等教育文凭项目(SQA/HND)教材,由国外富有教学经验的资深专家编撰,严格遵循课程大纲,可以帮助国内教师更好地把握课程精髓。教材中的许多国际通行案例,同时根据我国国情收录了适应于国内的教学案例,使学生掌握前沿知识。为了确保教材内容紧跟时代前沿,增强教材实用性和可操作性,SQA负责至少每两年更新教材一次。
-
软件开发(英)苏格兰学历管理委员会(SQA)编2005年6月中国时代经济出版社与苏格兰学历管理委员会签署第三批英国高等教育文凭项目(SQA/HND)教材的协议,本次共引进教材190种,为商科、计算机、旅游酒店管理、物流、工程等五大类15个专业的教材。现已出版。其余将在年底前陆续出齐。英国高等教育文凭项目(SQA/HND)教材,由国外富有教学经验的资深专家编撰,严格遵循课程大纲,可以帮助国内教师更好地把握课程精髓。教材中的许多国际通行案例,同时根据我国国情收录了适应于国内的教学案例,使学生掌握前沿知识。为了确保教材内容紧跟时代前沿,增强教材实用性和可操作性,SQA负责至少每两年更新教材一次。
-
实用软件需求(美)Benjamin L.Kovitz著;胡辉良,张罡等译;胡辉良译本书特色:●软件问题的元素●用户接口或其他接口设计文档●如何从已知的编程技巧中得到有用的需求●描述问题域●分解问题的非层次化方法●应用MichaelJackson的“问题框架”●常见错误及如何纠正它们●来自真实项目的文档实例本书从实用的角度出发,通过全新的视角介绍了书写良好需求的格式和指导原则,以及分析需求问题的框架模型。本书讲述了问题域概念,列举了需求文档和规格说明书所包含的具体内容,重点引入了MichaelJackson的问题框架概念,通过非层次化的方法,举例演示了如何使用问题框架把巨大、复杂的问题分解成简单的问题。本书内容丰富、编排合理,为程序员、测试人员、用户接口设计人员以及技术写作人员等提供了所需的全部信息。“在被僵化的方法论驱动的领域,我欣喜地发现,本书采用实用的、非教条的方法为枯燥但必要的任务注入了新的激情……”———P.Abrahams,ComputingReviews“……包含完整并且吸引人的丰富实例。”——AlanZeichick,SoftwareDevelopmentMagazine“一本面向问题的书……含有优秀的素材,我从中学到了很多……”——GregoryV.Wilson,Dr.Dobb''''sJournal·我发现本书非常好……全新的视角……作者在线论坛是极好的资源……”———JasonBennett,Slashdot·充满了好东西——见解精辟、内容充实。”——MichaelJackson,JSP和JSD的创立者
-
软件工程卢潇 主编;孙璐 等编著内容简介目录本书是作者在多年的软件工程教学和科研实践的基础上,总结和吸取了国内外大量同类书刊的精华,精心设计和撰写的。全书正文共13章,内容可分四部分:第一部分主要介绍软件工程的基本概念,并概要介绍了软件生存周期、开发模型及软件开发的各种方法;第二部分按生命周期模型详细介绍软件计划、需求分析、设计、编码、测试和维护各个阶段的有关概念和工作内容,重点介绍了结构化方法和Jackson方法的实施,并介绍了软件体系结构的相关内容;第三部分介绍面向对象的方法及UML建模语言;第四部分介绍了软件标准、文档、质量评价和质量保证技术、软件工程的管理、认证等内容。该书的内容系统完整,在介绍传统理论体系的基础上,融人当前软件工程的最新发展和新技术。书中采用大量图表,描述尽量做到通俗易懂,将原理、方法与实例结合,并较详实地给出了一个软件系统的开发过程。通过大量的练习和案例分析,帮助读者加深对理论知识的理解。该书可作为高等院校软件工程课程的教材或教学参考书,也可作为软件项目管理者和软件开发人员的参考书。 软件工程学(通常简称软件工程)是一门迅速发展的新兴学科. 所谓软件工程是指用"工程化"的思想来指导并解决软件研制中的各种问题. 其研究的范围非常广泛, 包括技术方法. 工具和管理等许多方面. 软件工程的目标在于研究一套科学的工程方法, 并建立与此相适应的. 方便实用的工具系统, 力求以最少的成本获得较高的软件质量. 近年来, 软件工程发展迅速, 新的技术方法和工具不断涌现. 本书力求系统地给出软件工程的框架, 在保证全书的内容全面. 系统的基础上, 着重从实用角度讲述软件工程的基本原理. 概念和技术方法. 希望本书能为读者今后深入研究这门学科奠定良好的基础, 并能对实际的软件开发工作有所帮助. 本书正文共13章, 从内容上可分四部分. 第一部分(第1章), 概括介绍软件工程学产生的历史背景以及相关的基本原理. 概念和方法. 主要介绍软件工程的基本概念, 并概要介绍软件生存周期. 开发模型及软件开发的各种方法. 第二部分(第2章至第8章), 按生命周期模型, 详细介绍软件计划. 需求分析. 设计. 编码. 测试和维护各个阶段的有关概念. 工作内容. 重点介绍了结构化方法和Jackson方法的实施, 并介绍了软件体系结构的相关内容. 其中, 第2章介绍了软件生命周期的第一个阶段:软件计划的任务和相关技术, 主要内容有可行性研究. 软件计划和对于成本/效益分析, 第3章介绍了需求分析的发现. 求精. 建模. 规格说明和复审的过程以及需求管理的内容, 讨论了获取需求的方法及需求分析的原则, 重点介绍了结构化分析技术和原型技术, 并给出了软件需求规格说明书的要求, 第4章阐述了软件设计中用到的基本概念及软件总体结构. 数据结构与软件过程等概念, 重点介绍软件总体设计的方法和设计表达工具, 详细阐述了和结构化需求分析方法相衔接的. 面向数据流的设计方法:结构化软件设计方法(SD方法)和面向数据结构的设计方法:Jackson设计方法, 第5章介绍了详细设计的任务. 方法和工具, 并阐述了近年来软件工程领域的新的研究热点和关键技术之一:软件体系结构的有关内容, 第6章围绕着编码质量谈论了程序设计语言的选择及编码风格等内容, 第7章讨论了软件测试的相关概念. 步骤, 介绍了常用的测试技术和工具, 第8章介绍软件维护的任务. 特点. 组织以及软件维护可能带来的问题. 如何提高软件的可维护性等. 第三部分(第9章), 介绍了面向对象技术的基本概念, 以实例的形式阐述了UML建模语言进行系统分析. 系统设计和系统实施的基本过程. 第四部分包括(第10章至第13章), 其中第10章介绍了软件工程标准化的相关概念. 国内外的现状以及软件文档的相关内容. 第11章介绍了软件质量的特性, 并给出软件质量的度量方法及如何进行质量评价, 最后还简单介绍了软件的质量保证和质量管理体系. 第12章讨论了软件工程管理技术, 并介绍了目前流行的管理工具. IPMP与PMP认证体系及我国目前的项目管理认证体系的发展状况等内容. 第13章比较完整地介绍了一个实际软件的开发. 着重阐述从问题定义到实现的过程, 将这个具体例子与书中前几章的内容结合起来学习, 有助于加深对一些基本概念和方法的理解. 本书第1~5章和第13章由卢潇编写, 第6~9章由孙璐编写, 第10~12章由刘娟编写, 附录A由张科英编写. 研究生车从领. 王莉对书中的实例及图表作了大量的工作. 在本书的编写过程中参考了大量书籍. 资料和网站, 同时, 也融入了作者多年教学和科研工作的体会和经验. 作者的联系地址是Luxiaohons@aohu. com, 有什么问题和要求欢迎读者用电子邮件与作者联系. 鉴于编者的学识水平有限, 书中谬误和不足在所难免, 敬请读者不吝指正. 作者 2005. 1 第1章概述 1. 1软件的概念 1. 1. 1软件技术的发展阶段 1. 1. 2软件的定义 1. 1. 3软件的分类 1. 2软件危机 1. 2. 1什么是软件危机 1. 2. 2产生软件危机的原因 1. 2. 3解决软件危机的途径 1. 3软件工程 1. 3. 1软件工程的定义 1. 3. 2软件工程的内容 1. 3. 3软件工程的基本原理 1. 3. 4软件工程项目的基本目标 1. 3. 5软件工程的开发原则 1. 4软件过程和软件生存期 1. 4. 1软件过程 1. 4. 2软件生存周期 1. 5软件开发过程模型 1. 5. 1瀑布模型 1. 5. 2原型模型(快速原型模型) 1. 5. 3螺旋模型 1. 5. 4喷泉模型 1. 5. 5构件组装模型 1. 5. 6统一过程RUP模型 1. 5. 7第四代技术 1. 6软件开发方法简述 1. 6. 1结构化方法 1. 6. 2面向数据结构的开发方法 1. 6. 3面向对象的方法 1. 6. 4可视化开发方法 1. 7软件工程的最新发展动向 小结 习题1 第2章软件计划 2. 1可行性研究 2. 1. 1可行性研究的任务 2. 1. 2可行性研究的步骤 2. 2系统流程图 2. 2. 1系统流程图的符号 2. 2. 2系统流程图举例 2. 2. 3分层 2. 3制定软件计划 2. 3. 1确定软件计划 2. 3. 2复审软件计划 2. 4成本/效益分析 2. 4. 1成本估算技术 2. 4. 2成本/效益分析的方法 小结 习题2 第3章需求分析 3. 1需求分析的概念和任务 3. 1. 1需求的概念 3. 1. 2需求的层次 3. 1. 3需求分析的任务 3. 2获取需求的方法 3. 2. 1存在问题 3. 2. 2常用方法 3. 2. 3需求分析的原则 3. 2. 4需求分析方法概述 3. 3结构化分析方法 3. 3. 1结构化分析方法的基本思想 3. 3. 2描述工具 3. 3. 3数据流图 3. 3. 4数据字典 3. 3. 5加工逻辑说明 3. 4原型法 3. 4. 1原型的概念 3. 4. 2快速原型开发过程 小结 习题3 第4章总体设计 4. 1总体设计的任务及目标 4. 1. 1总体设计的任务 4. 1. 2总体设计的目标 4. 2总体设计的概念和原理 4. 2. 1软件结构和过程 4. 2. 2模块化 4. 3设计准则 4. 4总体设计的常用方法及工具 4. 4. 1面向数据流的设计方法 4. 4. 2面向数据结构的分析设计方法 小结 习题4 第5章详细设计 5. 1详细设计的任务 5. 2详细设计的原则 5. 3详细设计的方法和工具 5. 3. 1详细设计的方法 5. 3. 2详细设计的工具 5. 3. 3详细设计工具的选择 5. 4详细设计规格说明与复审 5. 4. 1详细设计说朋 5. 4. 2设计复审 5. 5界面设计 5. 5. 1用户界面设计的一般原则和步骤 5. 5. 2字符界面设计 5. 5. 3菜单设计 5. 5. 4对话框设计 5. 5. 5多窗口界面设计 5. 6软件体系结构 5. 6. 1软件体系结构的兴起 5. 6. 2软件体系结构的概念 5. 6. 3软件体系结构的现状及发展方向 5. 6. 4软件体系结构的风格 5. 6. 5软件体系结构的描述方法 5. 7几种新型的软件体系结构 5. 7. 1正交软件体系结构 5. 7. 2三层C/S软件体系结构 5. 7. 3C/S与B/S混合软件体系结构 5. 8软件体系结构与操作系统 5. 8. 1操作系统的体系结构 5. 8. 2模块结构 5. 8. 3分层结构 5. 8. 4微内核结构 小结 习题5 第6章编码 6. 1程序设计语言 6. 1. 1程序设计语言的分类 6. 1. 2选择程序设计语言的标准 6. 2程序设计风格 6. 2. 1源程序文档化 6. 2. 2数据说明 6. 2. 3语句结构 6. 2. 4输入和输出(I/O) 6. 3实例 小结 习题6 第7章软件测试 7. 1软件测试的任务和目标 7. 1. 1软件测试的目标 7. 1. 2软件测试原则 7. 2软件测试的方法 7. 2. 1白盒测试法 7. 2. 2黑盒测试法 7. 3软件测试的步骤 7. 3. 1单元测试 7. 3. 2集成测试 7. 3. 3确认测试 7. 3. 4系统测试 7. 4调试 7. 4. 1调试过程 7. 4. 2调试方法 7. 4. 3调试原则 7. 5软件测试工具 7. 5. 1自动软件测试的优点 7. 5. 2测试工具分类 7. 5. 3测试脚本 7. 5. 4自动测试的相关问题 7. 5. 5常用软件测试工具及特点 7. 6实例 小结 习题7 第8章软件维护 8. 1软件维护的概念 8. 2软件维护的特点 8. 2. 1影响维护的问题很多 8. 2. 2维护的代价高昂 8. 3软件维护的步骤 8. 3. 1维护申请报告 8. 3. 2维护工作实施 8. 3. 3维护文档整理 8. 3. 4维护活动评价 8. 4软件的可维护性 8. 4. 1影响软件可维护性的因素 8. 4. 2提高软件的可维护性方法 8. 5逆向工程和再工程 8. 5. 1预防性维护 8. 5. 2软件的逆向工程和再工程 8. 6实例 小结 习题8 第9章面向对象方法学 9. 1面向对象方法学的引入 9. 1. 1传统方法学的缺点 9. 1. 2面向对象技术特点 9. 1. 3面向对象方法学的优点 9. 2面向对象的基本概念和特性 9. 2. 1面向对象的基本概念 9. 2. 2面向对象的基本特性 9. 3面向对象分析 9. 3. 1面向对象分析的目标和任务 9. 3. 2面向对象分析的基本原则 9. 3. 3面向对象分析的基本过程 9. 3. 4面向对象建模 9. 4面向对象设计 9. 4. 1面向对象设计的基本原则 9. 4. 2面向对象设计的基本内容 9. 5几种流行的面向对象方法 9. 5. 1Coad-Yourdon方法 9. 5. 2对象模型技术 9. 5. 3Booch的方法 9. 6统一建模语言 9. 6. 1统一建模语言概述 9. 6. 2UML视图 9. 6. 3对象建模 9. 6. 4动态建模 9. 6. 5功能建模 9. 7面向对象实现 9. 7. 1程序设计语言 9. 7. 2程序设计风格 9. 7. 3面向对象的程序测试 9. 7. 4面向对象的软件维护 9. 8面向对象实例 9. 8. 1图书馆管理信息系统的需求说明 9. 8. 2UML建模 小结 习题9 第10章软件工程标准化和软件文档 10. 1软件工程标准化的概念 10. 1. 1什么是软件工程标准化 10. 1. 2软件工程标准化的意义 10. 1. 3软件工程标准化的类型 10. 2软件工程标准的制定与推行 10. 2. 1软件工程标准的制定与推行 10. 2. 2软件工程标准在开发机构中的推行 10. 3软件工程标准的层次和体系框架 10. 3. 1软件工程标准的层次 10. 3. 2软件工程标准的体系框架 10. 3. 3中国的软件工程标准化工作 10. 4ISO 9000国际标准简介 10. 4. 1ISO 9000标准概述 10. 4. 2ISO 9000标准的特点 10. 4. 3ISO 9000标准的构成 10. 5软件文档 10. 5. 1软件文档的作用和分类 10. 5. 2软件文档的编制要求 10. 5. 3软件文档的管理和维护 小结 习题10 第11章软件工程质量 11. 1软件质量特性 11. 1. 1软件质量的定义 11. 1. 2软件质量的特性 11. 2软件质量的度量和评价 11. 2. 1软件质量的度量 11. 2. 2软件质量的评价 11. 3软件质量保证 11. 3. 1什么是软件质量保证 11. 3. 2软件质量保证的主要任务 11. 3. 3软件质量保证体系 11. 4软件质量管理体系 11, 4. 1软件产品质量管理的特点 11. 4. 2软件质量管理的指导思想 11. 4. 3软件开发的质量管理体系 小结 习题11 第12章软件工程项目管理 12. 1软件项目管理 12. 1. 1软件项目管理的特点 12. 1. 2软件项目管理的主要职能 12. 2常见管理技术及工具简介 12. 2. 1软件项目管理的主要内容 12. 2. 2常见工具简介 12. 3软件过程成熟度模型 12. 3. 1CMM概述 12, 3. 2CMM的成熟度级别 12. 4利用CMM对软件机构进行成熟度评估 12. 5项目管理认证体系IPMP与PMP 12. 5. 1IPMP概况 12. 5. 2PMP简介 12. 5. 3我国目前的项目管理认证体系的发展状况 小结 习题12 第13章开发实例 13. 1项目论证和计划 13. 1. 1系统调查 13. 1. 2新系统的总体功能需求和性能要求 13. 1. 3完成文档 13. 2需求分析 13. 2. 1数据流分析 13. 2. 2数据字典 13. 2. 3处理逻辑描述 13. 2. 4形成需求规格说明书并进行需求评审 13. 3系统设计 13. 3. 1系统总体概要设计 13. 3. 2代码设计 13. 3. 3数据库设计 13. 3. 4界面设计 13. 3. 5完成设计文档和设计评审 13. 4系统实现 小结 附录A项目开发文档 参考文献
-
管理信息系统滕佳东编著本书第一版出版两年来,受到广大读者的欢迎。由于近年来信息技术的快速发展,原教材中的许多内容已无法满足客观形势的需要。为了进一步深化财经类专业教育教学改革,提高人才的培养质量,在听取专家和读者意见的基础上,我们对本书内容进行了修订。本书以结构化方法为主线,展开了一个包括系统规划、系统分析、系统设计、系统实施、系统运行和维护的完整的开发过程。本书在论述过程中不是从单纯的技术观点出发来对管理信息系统开发过程和信息系统开发方法进行介绍,而是从管理和决策的角度,将信息技术、管理理论和组织行为等有机地结合起来进行讨论和分析。本书阐述了在现代商业环境下,企业管理者应具备的现代信息技术知识,通过对有实际应用价值的管理信息系统案例的分析,使读者能够有效地了解和掌握现代管理科学的最新理论和实际应用。全书共分为9章,第1、第2章详细介绍了管理信息系统的一些基本概念、管理信息系统的结构和类型、管理信息系统学科与其他学科的关系以及信息系统与管理决策的关系。第3章介绍了管理信息系统开发的基本知识。第4、第5、第6、第7章全面介绍了管理信息系统的开发过程和开发方法。第8章介绍了管理信息系统管理的主要内容。第9章介绍了目前常见的企业管理信息系统。
-
UML软件开发(英)Ken Lunn著;马蔷,杨南海等译本书主要面向IT专业领域的大学一二年级本科学生,将UML符号和软件开发的方法协调融合起来,进行从整个项目概念到测试、系统配置和强化方面的介绍,这在其他同类书籍中是很少见的。 对于那些没有UML知识并且在IT系统和软件开发方面的能力稍显不足的IT管理者和开发人员来说,本书将会对入门很有帮助。 本书包含非常广泛的例子,这是我读一本书时所喜欢的,也是我在大学中和商业培训中的学生们所喜欢的。书中有一些例子遍布各个章节,并且在附录中有一个完整的实例。本书是给出了以UML作为建模语言进行软件开发的过程指导。书中紧密结合UML的符号与具体的软件开发方法,通过一个实例,贯穿从整体构想到测试、发布及升级的项目全过程。以一家拥有多元化业务流程的石油公司ICANDO为例,具体讲述了软件开发的整个流程。本书的各部分内容包括引言和实例研究,IT项目的开端、组织和管理,分析,构架和设计,构造、测试与部署,以及总结。在最后,提供了一个颇具代表性的完整实例。 本书的实用性与可读性强,实例生动有趣,十分有助于读者学习和理解。本书可作为高等学校统一建模语言课程的教材,也可作为IT行业管理和开发人员的参考书和使用指南。 主要网站和参考资料 全套讲稿的辅助资料,包括幻灯片、拓展练习和例子,可以从下面的网址获得: http://www.palgrave.com/science/computing/lunn/
-
超越传统的软件开发雷剑文,陈振冲,李明树著本书特色:本书从软件工程理论,软件开发实验,编程心理学等多千方面,深入剖析了极限编程的原理和实质。全书以分析对极限编程的种种误解为主线,以编程实验数据为基础,用科学的方法阐释了极限编程的内涵。全书分为三大部分,共10章。本书不仅对极限编程做了客观而深刻的剖析,而且其实验方法和分析方法具有极大的借鉴价值。在本书中,作者在融会各种学科的知识,以及引用几十部软件工程和计算机科学经典著作的基础上,旁征博引地对软件开发方法和实践进行了深入的探讨;同时,作者独辟蹊径,通过丰富的联想,用许多生动有趣的例子来注解软件开发的内涵与要点,因此,读者在读到下面的内容时不要惊讶:*罗密欧与朱丽叶的温情对白*编程中的橄榄球技巧*大人国与小人国是不可能存在的*最先进的前掠翼战斗机X-29居然不实用*软件开发中也有太极功夫……本书适合各个层次的编程爱好者、软件开发人员阅读,也可作为高等院校计算机相关专业特别是软件学院的教学用书。本书从软件工程理论、软件开发实验、编程心理学等多个方面,深入剖析了极限编程的原理和实质。全书以分析对极限编程的种种误解为主线,以编程实验数据为基础,用科学的方法阐述了极限编程的内涵,以解破幻象,还极限编程以真面目。全书分为三大部分,共10章。本书不仅对极限编程做了客观而深刻的剖析,而且其实验方法和分析方法具有极大的借鉴价值。作者通过融会各种学科的知识,旁征博引地对开发软件开发方法和实践进行了深入的研讨,这是值得读者精读本书的另一大特色。本书适合各类软件开发人员、编程爱好者和高等院校计算机相关专业的师生阅读。