软件工程及软件方法学
-
软件工程王庆育编本书全面系统地讲授软件工程的理论与实践,力求从不同的角度帮助读者迅速掌握软件工程的理论、方法和思路。全书共分软件工程基础、软件项目管理、传统的软件工程、面向对象的软件工程、软件工程的最新技术等五个部分。内容主要包括:软件工程概论、软件过程、软件建模语言、软件项目、团队管理、软件配置管理、系统设计、软件测试、面向对象的分析与设计、编码实现、基于构件的软件工程、客户服务器与Web软件工程、设计模式等。本书理论与实践相结合,采用案例教学并附有大量习题便于读者学习掌握。本书既可作为高等学校相关专业的教材或教学参考书,也可作为软件设计人员的自学用书。 -
软件工程王宜贵编本书系统地介绍了软件工程的基本概念、软件开发方法、软件开发工具和软件项目管理。其中,第1章概要介绍软件工程;第2~7章按生命周期模型详细介绍制定计划、需求分析、软件设计、程序编码、软件检验和软件维护各个阶段的相关概念和工作内容,重点介绍了结构化方法和面向对象方法;第8章介绍软件开发工具和环境;第9章介绍软件项目管理;第10章是一个文档实例最后介绍了统一建模语言(UML)。 本书可供高职高专计算机专业及其相关专业师生使用。 -
基于UML的软件项目的过程质量保障(美国)恩海尔克著、曹学军等译本书是一本专注于过程的探讨基于UML的软件项目的质量保障的图书,它简明扼要地阐述了UML的历史背景,UML定义,以及UML和实际的建模技术的相关性,通过一系列的对基于UML的CASE工具和开发过程的讲座来加深读者对采用UML进行直接和实际建模的理解。本书还特别地强调对要从事每个开发过程活动的角色的定义,重视系统开发中社会特征的重要性。本书适合于IT业的质量经理、项目经理、过程工程师、测试人员、系统设计师、开发人员、业务分析员、系统架构师、学术研究人员等人阅读,也可作为大中院校的教材。前言质量是主观判断1本书探讨在基于UML的软件项目中,实施质量保障中的过程这方面的问题。过程是软件质量保障的两个主要领域之一,另一个是建模。鉴于基于UML的软件项目的质量保障的,尤其是专注于过程这一方面的文献缺乏的现状,本书应运而生了。这是因为,尽管UML的文献资料现在非常流行,但还是需要一些讨论UML在项目中的应用的质量和实践问题的图书。虽然我们现在已经有了一些非常优秀的论述软件开发过程的文献(其中包括由Jacobson等人创作的最为著名的《TheUnifiedProcess》,以及由IanGraham等人撰写的《TheOPENProcessSpecification》),但是看起来还是缺乏单独的针对质量做探讨的图书。另一方面,像Binder的《TestingObjectOrientedSoftware》这样的作品,关注的是采用UML表示法进行的技术层面的测试内容。当然,我们不能责备上述提到的文献缺少对质量方面问题的讨论,因为这些作品并不是专门致力于讨论质量的。这些让人尊敬和受到广泛欢迎的作品的关注焦点要么是开发,要么是测试。而在您手中的这本书就填补了在UML领域对质量问题的关注空缺。好的质量包括了所有能够满足用户需要的各个方面的内容。不过,“好”是一个主观色彩非常浓厚的词。对质量做出判定的参考点取决于时间、地点和形势,而所有这些都随时会发生变化!因此,能够产生好质量的基本要素是:一个能够满足用户不断变化的需求的产品;一个能够使创建、验证、确认这样一个产品成为可能的开发过程;一套能够建立良好沟通的通用机制;对生产产品的开发过程的连续不断的改进。当这些要素应用到软件开发领域中时,这些质量上的需求就变成了生产的软件产品必须能够在规划、扩展和变更等各方面满足客户的需求——主要是业务方面的。我们不仅需要能够生产出这样的软件产品的开发过程,而且需要能够对这些用来构建软件产品的模型和过程做有效检查和交叉查证。我们同样也需要建立、遵循和查证所有的过程步骤,以期能够建立一套可以生产高质量软件产品的成熟过程体系。这些过程步骤必须以一种迭代式的、渐增的、充分的方式进行。过程步骤必须足够灵活,以适应不同的开发环境和不同类型与规模大小的软件项目。这些都是专门化的与过程质量相关的工作领域的内容,这些内容对于本书所探讨的在项目中实施UML技术而言是必需的。这些质量方面的工作包括如何组织整个质量职能体系,还包括验证和确认这些UML框图所需的步骤,以及什么时候实施这样的验证,如何理解质量工作的结果数据,应该由谁来负责创建和确认UML框图,如何建立质量控制(测试)策略。这些过程步骤将促成高质量的模型产生。通过对软件模型实施质量检查也能够进一步提升质量,从而确保它们句法正确、语义一致和美学上和谐。如果希望了解对于UML框图的模型质量的详细分析和讨论,我推荐读者阅读《ModelQualityAssuranceofUML-BasedProject》。本书分为6章,内容概述如下表所示。章说明1.质量竞赛建立背景理论和有关质量方面的论点2.质量环境:质量职能管理质量管理,团队组建,高质量团队的社会学和心理学特性;过程的重要性3.质量过程体系架构过程组件由能够组成一个质量软件过程体系的活动、任务、交付品和角色构成4.实施质量软件过程实践中的质量过程、迭代、渐增和并行的软件开发5.基于UML的项目估算和度量一些针对实际的基于UML的软件项目的时间、预算和人员的估算建议6.软件产品的质量控制针对质量控制和测试策略做详尽的讨论第1章质量竞赛本章是有关质量保障的背景介绍。我们讨论了在软件开发背景条件下质量的不确定特性。而建模,尤其是采用UML技术的建模,作为一种能够改进沟通和质量的手段,在分别是问题、解决方案和背景的三个彼此相关的建模空间中得以实施。我们将在技术(做什么)、方法(如何做)和社会学(谁来做)三个维度的背景条件下讨论软件过程。这以后我们会讨论不同类型的检查(语法方面、语义方面和美学方面),这些检查是我们确认和验证基于UML的模型的手段。我们还将讨论高质量过程体系所必需的必要性、充分性和可塑性等内容的一些检查。在本章中,我们也将讨论质量职能的组织,以及如何应用到不同类型(包括开发、集成、工具包实现、外包、数据仓库和教育类项目)和不同规模大小(小型、中型和大型)的软件项目中去。第2章质量环境:质量职能管理质量在软件过程方面的内容包括建立和管理一个质量环境的管理职能。这是因为,质量并不只是验证和确认生产出了什么东西,同时它也要求我们努力遵循一种生产模型和软件的规程体系。这套规程包括与生产出高质量模型或软件相关的所有软件过程和相关步骤。本书的这一部分将全面考察质量职能机构的组织和执行,其中将仔细强调基于UML的软件开发过程方面的内容。换句话说,我们将讨论在基于UML的软件项目中,质量职能体系将“如何”得到组织和贯彻。至于人员方面的问题(“谁来做”),我们在本章的适当地方也会给予足够的关注。第3章质量过程体系架构在本章中,我们将讨论这样一个软件过程是由什么组成的,以及这样的过程在基于UML的软件项目中是如何改进质量的。这一章并没有提出什么新的软件过程,而是讨论了一个一般意义上的软件过程,我们将从技术、方法和社会学三个维度来讨论一个开发过程的组成,以及它在各主要维度中的内容。开发过程的技术维度主要关注的是“做什么”的问题,方法维度考虑的是“如何做”的问题,社会学维度主要考虑整个过程中“谁来做”的问题。我们将采用普通工作日的例子来说明这些维度中的内容。这个通用过程会进一步地描述一些最常见的活动和任务,这些活动和任务在任何一个开发过程中都应该被提到。我们讨论这些活动和任务及它们相关的角色和交付品的目的在于,希望能够改进这样一个开发过程的具体规程,从而提升基于UML的交付品的质量,最终提高软件产品的质量。第4章实施质量软件过程在本章中,我们将讨论如何运转一个实例软件过程,这个实例涵盖了在配置一个迭代、渐增、并行的(IIP)项目的计划过程中会遇到的种种实际问题。我们将基于在前一章中讨论的过程组件来分析。我们也会讨论到一些跟踪项目进展的实际问题,以及基于跟踪到的情况来修改项目计划的内容。与顺序式的项目计划相比,迭代的、渐增的项目计划更容易处理各种变化情况。从软件过程的可塑性出发,我们也会讨论如何建立和管理这样一个可变化的项目计划。我们还会应用软件过程的术语来讨论当“轮胎撞到路面”时会发生什么事情。第5章基于UML的项目估算和度量在本章中,我们将讨论的重要问题是在基于UML的软件项目中如何实施估算和度量。首先我们会论述实施好的项目估算的必要性,以及一个好的项目度量体系是如何帮助实现好的项目估算的,这一章我们会深入探讨这些度量指标和估算对于改进项目中的模型和过程质量的重要意义。有关UML成品和框图的大小及复杂性在内的技术方面的度量指标也会被谈及。我们会以一个采用UML的项目为例来讨论如何做项目估算,通过这个例子我们希望能够让大家了解到,在实际的项目中是如何应用度量指标并发挥其关键作用的。第6章软件产品的质量控制本章我们将详细讨论在质量生命周期中,如何进行质量控制和测试。我们在上一章中讨论过程质量的时候,已经把质量控制(测试)作为一个主要的过程组件了。它会帮助我们在创建模型时和随后的开发过程中验证和确认我们的努力成果。好的质量控制本身就是从负面来看问题,因为它的目标在于打破系统中的所有事物,包括逻辑组成、执行过程和性能。因此,尽管质量控制是质量保障的不可分割的一部分,然而它并不是和质量保障同步进行的。在本书的这个独立章节中,我们已经对这种控制和保障的分离现象给予了应有的重视。光盘和Web支持本书附带的只读光盘中包含了各章内容的一些详细资料、框图和一套模板文件(包括成品、项目计划等),这些模板可以在具体的项目中做个性化定制。光盘中还包括了一些为改进质量而推荐的度量指标(例如实例的数量,以及在类的创建中所花费的工作量等)。经过工具厂商的许可,光盘中还包括了一些和质量过程有关的过程工具的评估版软件。读者指南现在有不少专门讨论UML和讨论软件过程的图书。这些书涵盖的内容既包括学术研究,也包括实际应用。本书试图将质量过程应用到基于UML的软件项目中。由于本书的关注点在于软件过程,因此我们期望读者已经熟悉了UML和基于UML的建模技术,本书不打算讨论UML的建模技术,请参考相关资料。不过,任何一名负责质量保障的读者都会发现本书的内容是相对独立的,读完本书后,应该可以拓展对UML的理解。下面是一个图书分类的交叉引用表,通过这个表,读者应该可以了解自己对每一章内容感兴趣的程度。兴趣强度值是通过星号“*”的个数表示的(三颗星代表最强烈)。章质量经理项目经理测试人员过程工程师系统设计师开发人员业务分析员系统架构师学术研究人员主管1.质量竞赛**********2.质量环境:质量管理职能**********3.质量过程体系架构**********4.实施软件质量过程**********5.项目估算和基于UML的项目度量指标*******6.软件产品的质量控制***********语义说明我非常信任中性词汇,因此我将尽可能地使用人这样的中性词。不过,为了便于阅读,我也会使用他。除非特别声明,程序员及质量经理这样的术语都是指充当特定角色的人。这些词指的并不是如你我这样的真实人物,因此他们完全可以在很短的时间内从程序员的角色跳到质量经理或者主管之类的角色。读者也应该意识到,人们可以同时充当一个以上的角色。例如,一个业务分析员也可能是一个兼职的学术或者研究人员。我们一词贯穿全书,指的都是读者和作者,也就是你和我。偶尔,我们也会指代一般意义上的信息技术(IT)人员全体,当然作者也是其中的一员。我们还可能指代作者本人所工作的团队。因此,尽管这是一本由一个作者写成的书,你会发现我们指的既可能是作者自己,也可能是IT人员全体。正如你和我从本书中看到的情况一样,现实的话语往往不能按静态的方式来理解。和研讨班的内容对应本书表述的UML和质量实践方面的内容在很多的研讨和会议上非常热门。在基于本书内容所做的多次演讲的讲稿中,特别值得一提的是,它们在加拿大多伦多举行的UML21大会上被接纳作为教程,另外它们在印度孟买、班加罗尔和德里举行的为期两天的系列2研讨会上被作为研究资料。在本书写作时,还有不少额外的研讨班也被安排进了日程。下面的表格列出了基于本书内容而做的两天研讨班中的一天的内容大纲。针对学生或者学术工作者,本书的每一章内容都对应一个三小时的主题介绍,两天讨论班第一天的内容主要集中在采用案例分析的方式来建立基于UML的模型。本书各章和两天研讨班中的一天内容的对应时间段讨论和介绍的主题内容对应的章节说明9:-1:3质量方面的压力;在UML项目中的意义1,2概述质量不确定的特性;提出解决质量问题的必要性和方法11:-12:3质量管理;质量过程体系架构3,4如何组建质量职能部门;质量管理和质量过程1:3-3:过程的运转;项目估算和度量;UML成品的质量控制(测试)5,6关于数字的实践研讨。基于UML的软件项目的人员、时间和预算3:3-5:案例分析光盘案例讨论;在实践中运行检查列表 -
UML与软件工程基础王立暂缺简介... -
软件质量工程(美)Stephen H.Kan著;吴明晖,应晶等译;吴明晖译本书是一本关于软件开发本质主题的权威著作。作者通过大量详尽的工业实例,深入浅出地介绍了怎样测量软件质量,以及利用测量来实现软件开发过程的改进。书中通过四个主要的质量度量和模型类别展开论述:质量管理、软件可靠性和预测、复杂性以及客户观点。另外,本书还讨论了测量理论的基础,特殊的质量度量和工具,以及在软件开发过程中应用度量的方法。全书内容丰富,层次分明,并在前一版的基础上进行了大量的更新,补充了许多相关的理论与应用。本书可作为计算机及相关专业本科生与研究生的教材或参考书,也是每一位从事软件质量工程研究的人员的宝贵资料。 -
DSP集成开发环境CCS使用指南尹勇,欧光军,关荣锋编著本书详细介绍了如何使用TI公司的DSP软件开发集成环境CCS2开发和调试C语言及DSP汇编语言程序,尽量达到帮助读者熟练使用CCS2软件的目的。本书不是介绍DSP软件和硬件方面的知识,而是采用实例方式循序渐进地介绍如何操作CCS2软件。读者只要按照实例步骤实践,就能在最短的时间内熟练使用CCS2。<br>本书可供从事DSP应用系统开发的技术人员、工程师以及高等院校工科电子类专业师生学习参考。 -
软件工程徐仁佐主编;徐仁佐,叶俊民编《面向21世纪计算机专业本科系列教材:软件工程》是“面向21世纪计算机专业本科系列教材”之一,是紧扣“计算机学科教学计划2000”进行编写的,是系统、全面地介绍软件工程的思想、技术和方法的最新教科书。《面向21世纪计算机专业本科系列教材:软件工程》分软件工程技术与软件工程管理两部分。软件工程技术部分包括软件工程概述,软件需求分析,软件复用,软件测试,软件维护与软件再工程,软件工具与软件开发环境等内容;软件工程管理部分包括软件质量管理(含软件可靠性与软件容错技术).软件文档与软件工程标准化,软件项目、配置及人员组织管理,软件知识产权保护等内容:最后介绍当前国际上软件工程研究的新方向。《面向21世纪计算机专业本科系列教材:软件工程》可作为计算机专业本科生的软件工程教材,也可作为广大软件产业及IT产业从业人员的软件工程参考工具书。 -
嵌入式系统的实时概念(美)李庆(Qing Li)著;王安生译;王安生译嵌入式系统无所不在,并且在现代日常生活中扮演着重要的角色。嵌入式系统也是多样化的,在消费类电子产品中,如数码相机、DVD播放器和打印机;在工业机器人中;在先进的航空航天器中,如导弹制导系统和飞行控制系统;在医疗设备中,如强心剂无节律监视器和强心剂心律调整器;在汽车设计中,如燃料加注系统和自动刹闸系统,到处可以找到嵌入式系统。嵌入式系统深深地改变了我们今天的生活方式,也将继续改变我们明天的生活方式。嵌入式系统编程是一门特殊的学科,要求嵌入式系统的开发者具有多种技术领域的工作知识。这些领域覆盖从低层的硬件设备、编译技术和调试技术,到实时操作系统的内部工作和多线程应用设计。这些要求可以难倒新进入嵌入式世界的程序员,学习过程很长而且强度很大。这样,我感到有责任通过实践的讨论和演示,分享我的知识经验,使你跳过嵌入式系统项目的起始阶段。有些书用更传统的方法,主要集中在控制基本硬件设备的低层的驱动程序和软件上。另一些书提供使用面向对象的方法和建模语言的高层抽象方法。然而,本书架起了嵌入式系统开发的高层抽象建模概念和低层的基本编程方面的桥梁。贯穿本书的讨论来自于多年商业嵌入式系统的设计和实现、从先前的错误中学到的经验、从他人处获得的才智以及学术研究的结果。这些因素聚在一起,形成了非常有用的且可以在实时嵌入式项目中实际应用的洞察力、指导和建议。本书用详细的实例说明了实时嵌入式系统的关键概念,并提供了与设计问题和解决方案相关的工业化知识。本书提供了丰富的可立即用于嵌入式建造的模块集合,以便加快你的开发工作和提高生产效率。我希望当你开始着手开发时,《嵌入式系统的实时概念》一书能成为你的一本关键参考书。如果你希望通过E-mail得到消息的更新,请发E-mail到:rtconcepts@news.cmpbooks.com。如果对本书有建议、纠错或其他问题,请发E-mail到:qingli@speakeasy.net。 -
嵌入式软件与Hopen系统钟锡昌,张倪编著本书既可作为学习嵌入式软件方面的知识的入门读物,也可供从事嵌入式软件开发的人员参考。前言本书的编写目的是向读者介绍一些有关嵌入式软件的基本概念以及一个实际的嵌入式软件系统——Hopen,从而使读者能对嵌入式软件系统有一个初步但比较全面的认识。本书首先给出了嵌入式系统和嵌入式软件的概念、特性,并从操作系统、软件开发环境、窗口系统、网络系统、数据库管理系统及Java虚拟机等几个方面对嵌入式软件作了一个综合性的介绍;然后以Hopen系统为实例对以上几个方面的内容进行了深化。之所以采用通过讲述以上内容来达到向读者介绍嵌入式软件的目的这样一种方法,是出于以下的考虑:第一,在嵌入式软件这一领域中没有唯一的占绝对主导地位的系统。嵌入式软件的性质和应用范围决定了,在嵌入式软件这一领域中没有出现台式机领域中那种由Microsoh一家公司的Windows系统独霸天下的局面。一种嵌入式软件系统只要其功能定位得当,就有可能占有一定的市场份额。所以在讲述嵌入式软件时,就不存在以国外的某种绝对“主流”的系统为蓝本的问题。第二,以Hopen系统为实例介绍嵌入式系统是比较合适的选择之一。提起Hopen系统,自然会使人们联想起发生在1999年的“维纳斯”计划和“女娲”计划之争。当然“女娲”计划的实施和Hopen系统的研制并不始于1999年。早在1996年初,为了扭转我国的操作系统市场基本被国外厂商所控制的被动局面,在国家科委的支持下,我们承担了“PDA操作系统及开发平台的研究与开发”这一国家“九五”重点攻关项目的研发工作。从那时起,Hopen系统的研制工作就已启动。经过多年的努力,Hopen系统已完成了由研发阶段向产业化阶段的过渡,在PDA、机顶盒、瘦客户机及智能手机等领域中得到了很好的应用,是国内自行研制的嵌入式软件系统中的主要品种之一,而且其构成比较齐全。在本书所介绍的操作系统、软件开发环境、窗口系统、网络系统、数据库管理系统及Java虚拟机等诸方面,除数据库管理系统之外(一些第三方厂商开发的数据库管理系统可在Hopen系统上运行,如人大金仓信息技术公司的“小金灵”系统),它都有对应的部分,比较适合作讲述的实例。第三,嵌入式软件的内容已大大地丰富,形成了由操作系统、支撑系统及应用系统3个层面所组成的体系。传统的观点一般认为:一个嵌入式系统的软件部分应当由操作系统和建立在其上的应用软件所组成,甚至在有些嵌入式系统上根本没有操作系统,其应用软件直接建立在硬件之上;但在进入了后PC时代后,位于操作系统之上、应用软件之下的支撑软件得到了快速的发展,在嵌入式系统中出现了窗口系统、网络系统和数据库管理系统等一系列支撑软件。在一些嵌入式系统中,特别是一些浅度的嵌入式系统中,它们成为不可缺少的部分。因此,在介绍嵌入式软件时就理所当然地包括这些内容。在本书即将出版之时,我们首先要向祝庆、蒋宁、靖树峰、奉旭辉、孙毓英、韦忠、张向阳、许晶、王云、刘玉瑛、张今、段大卫、刊、健、王晓云、冯翌坤等为本书的编写付出过辛勤劳动的同事和朋友表示衷心的感谢。他们或直接参加了部分内容的编写,或为我们提供了非常有意义的资料,或为本书绘制了插图,或对书中的源程序做了调试和校正,或做了很多的录入工作。没有他们所做的这一切,本书是不能够在此时与广大读者见面的。嵌入式软件是一个范围很广的研究领域,涉及芯片技术、操作系统、软件开发环境、窗口系统、网络系统及数据库管理系统等多方面的知识。本书的意图是想通过一个具体的系统,从多方面对嵌入式软件作一个综合性的介绍。这对我们具有一定的难度,要求我们对上述各技术领域的问题都有比较深入的了解;但遗憾的是,对这些技术领域,有些我们很熟悉,有些>匕较熟悉,有些则理解得较肤浅。由于这种原因,本书中定会存在一些错误和不足之处。对此,我们衷心地恳请各方面的专家提出宝贵的意见,以便我们把工作做得更好。 -
嵌入式应用程序开发综合实验9例俞建新等编本书是嵌入式系统应用软件开发案例实验教材。全书共分10章。第1章嵌入式系统实验概论,介绍了基于ARM处理器和μC/OS—II 操作系统的嵌入式编程的基础知识和独有特点,以及基于UP-NetARM300实验系统开发应用软件的流程。随后各章分别说详细介绍一个UP-NetARM300实验系统的综合实验案例项目。它们是一些典型的嵌入式应用软件,类似于手持设备上的游戏软件。项目名称依次是:游蛇吃豆、十字路口交通控制系统、井字棋、电子菜单、华容道、世界时钟、汉诺塔、计算器和捉小鸡。.对本书的每一个综合实验案例项目,分别用实验报告书、实验指导书和源代码详解3个部分予以介绍。通过这些案例,读者可以获知嵌入式综合应用程序的编写方法、实验报告书的编写要点、自行开发娄似程序的帮助指导、嵌入式应用软件的开发流程和技巧。..本书可以作为高等院校有关嵌入式系统教学的本科生或者研究生的案例实验教材,也适合作为各类相关培训班的教材,还可以作为机电仪一体化控制系统、信息电器、工业控制、手持设备、智能不玩具、游戏软件等方面嵌入式应用软件开发人员的参考书及嵌入式系统爱好者的自学用书。...
