软件工程及软件方法学
-
数据结构与算法许卓群等编著《数据结构与算法》把数据结构的原理和算法分析技术有机地结合在一起,系统地介绍了各种类型的数据结构和排序、检索的各种算法,还引入了一些比较高级的数据结构及相关的算法分析技术。.《数据结构与算法》分为基本数据结构、排序和检索、高级数据结构三部分。借助抽象数据类型,从逻辑结构的角度系统地介绍了线性表、字符串、二叉树、树和图等各种基本数据结构;从算法的角度讨论排序、检索和索引算法;从应用的角度介绍了一些复杂的线性表结构、复杂树结构以及空间数据结构。《数据结构与算法》采用能够自然体现抽象数据类型概念的C++语言作为算法描述语言,注意对每一种数据结构的不同存储方法与有关算法进行比较分析。很多算法使用了参数化的模板,从而提高算法中数据类型的通用性,支持高效的代码重用。..《数据结构与算法》注意对概念的清晰引入,论述上加强逻辑性,并增加了一些新颖内容。《数据结构与算法》可作为高等院校计算机及相关专业学生的教材和参考书,也可供从事计算机的工程技术人员学习参考。 -
高级用例建模(美)Frank Armour,(美)Granville Miller著;饶若楠译本书为软件工程实践者提供了一个全面而易读的对用例建模的指南,同时阐明了高级用例建模思想,描述了实现用例建模的过程,并讨论了各种用例建模问题。本书的两位作者是业内的资深专家,拥有深厚的技术背景和丰富的实践经验。全书结构严谨,条理清晰、图文并茂,是一本非常优秀的面向对象的专业书籍。本书适合各类软件人员阅读,同时还非常适合作为高等院校计算机及相关专业面向对象分析(OOA)课程的教材。“这本书不仅仅是一本介绍用例的书。作者利用他们丰富的经验,给出了一系列极好的、有深刻见解的详细例子,解释了一些关键问题并提出了士。何使用用例的宝贵建议。”——MariaEricsson软件开发者经常利用用例来阐明他们所构造的系统应该执行的行为。尽管用例驱动的软件系统分析、设计和测试变得愈来愈流行,但很少有书阐述用例在整个软件生命周期中的作用。本书满足了这类需要,它描述了如何为复杂的软件开发项目创建用例模型,采用了大量实例来解释概念性的信息。作者扩展了面向对象大师IvarJacobson的工作,使用统一建模语言(UML)作为描述书中模型的符号。本书主要针对专业人员,同时也包含将用例技术与业务过程相联系的信息。本书阐述了在一个框架中创建和维护用例模型的过程,该过程可以根据具体情况进行定制。本书作者是在软件开发中应用用例的先驱者,他们介绍了很多经验,主要涵盖以下主题:■应用用例模型的过程模型■如何保证用例建模工作循着正确的路线进行■用例建模中的提示和易犯的错误■如何组织大型系统开发的用例模型■高级用例建模和RUP框架的相似点■用例对用户界面设计的作用■高质量用例建模的指南 -
基于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:案例分析光盘案例讨论;在实践中运行检查列表 -
极限编程透视(美)Michele Marchesi[等]著;卢庆龄[等]译;卢庆龄译本书收集了47篇有关XP的论文。这些论文共分为六个主要部分:XP和AM概述,XP开发实践,向XP和AM转变过程中所包含的问题,应用XP进行工作的实际经验,如何使用极限工具帮助实际应用XP和AM,最后讨论了一些发展和扩充XP的思想。围绕XP和其他灵活方法论中讨论的多个关键主题,本书提出了有效实施XP的经验性技术,并给出了实现成功转变的策略。本书收集的论文涉及多个行业中的极限编程实践。对于已经在进行XP开发,或者是准备转换到这种灵活方法论上的人来说,具有较强的指导意义。对于采用传统开发方法的程序员来说,也有助于他们开阔视野,进而接受这些新的编程思想。前言为什么我们需要另一本Agile/XP的图书?如果XP和AgileManifesto都很简洁,那么为什么还需要那么多的书籍、文章、讨论会、用户讨论组、Yahoo分组电子邮件以及辩论会进行阐述呢?这是因为简洁并不表示过于简单,“简洁”的原则和实践的有效组合可以产生复杂的、智能的行为。XP的12种实践,DSDM的9个原则,BobCharette的“节俭开发”(LeanDevelopment)中的12条准则,以及与AgileManifesto有关的12条准则(12似乎是Agilists非常流行的数字)并不简单。这些复杂的问题,受技术和人类能力的限制,不太容易解决,但我们可以通过一些内在的规则、实践和准则很好地逼近,使“应用程序”产生无穷的有创造性的想法,这些想法反过来又可以为我们的顾客带来价值。这一点很关键,但严格的方法论支持者并不理解。他们中的许多人只相信内在的规则、程序和过程,而不相信生成的规则。如果有问题,可以翻到过程57、活动24、任务87、步骤4,即可找到答案。遗憾的是,复杂的问题并不能通过这些数字来找到答案。复杂的问题,也就是每人每天都要面对的现实问题,即软件产品开发杂乱无章的局面,可以在几个关键原则的指导下,基于几个关键实践,通过有创造性的、革新的想法来解决。正如KathleenEisenhardt和DonaldSull在“HarvardBusinessReview'’一文(“StrategyaSSimpleRules”,2001.01)中所写的那样,“如果商务前景是简单的,那么公司可以采取复杂的策略,但现在的商务是如此复杂,因此需要对它们进行简化”。简化并不意味着过于简单,而是意味着要从数以百计的软件开发规则和实践中提取出能够使我们清晰、有效地考虑所面临问题的一些内容。如果实践过于简单,我们将不需要有关单个实践的全部书籍:重构(MartinFowler),或结对编程(LaurieWilliams和RobertKessler),或测试优先开发(KentBeck)。本书各章的差异证明了我的观点。本书由Agile/XP领域的著名领导者和不太为人所知的领导者合作编写,他们每天都在努力工作以为其顾客创造价值。这些章节反映了现实世界问题的复杂性及其解决办法,有助于我们了解几个非常有价值的关键、简单的观点。类似这样的图书是很有价值的。虽然各个章节不一定适合每位读者,但可以先跳过一些章节,只学习感兴趣的部分,之后再学习其他章节,这样读者可以深人了解同时代的人如何使用AgUe/XP实践来解决众多的现实世界问题。但我们必须承认,参与在地中海撒丁岛海滩举行的XP2001会议的人对本书许多章节的形成都有一定的贡献。JimHighsmith -
DSP集成开发环境CCS使用指南尹勇,欧光军,关荣锋编著本书详细介绍了如何使用TI公司的DSP软件开发集成环境CCS2开发和调试C语言及DSP汇编语言程序,尽量达到帮助读者熟练使用CCS2软件的目的。本书不是介绍DSP软件和硬件方面的知识,而是采用实例方式循序渐进地介绍如何操作CCS2软件。读者只要按照实例步骤实践,就能在最短的时间内熟练使用CCS2。<br>本书可供从事DSP应用系统开发的技术人员、工程师以及高等院校工科电子类专业师生学习参考。 -
UML与软件工程基础王立暂缺简介... -
软件工程徐仁佐主编;徐仁佐,叶俊民编《面向21世纪计算机专业本科系列教材:软件工程》是“面向21世纪计算机专业本科系列教材”之一,是紧扣“计算机学科教学计划2000”进行编写的,是系统、全面地介绍软件工程的思想、技术和方法的最新教科书。《面向21世纪计算机专业本科系列教材:软件工程》分软件工程技术与软件工程管理两部分。软件工程技术部分包括软件工程概述,软件需求分析,软件复用,软件测试,软件维护与软件再工程,软件工具与软件开发环境等内容;软件工程管理部分包括软件质量管理(含软件可靠性与软件容错技术).软件文档与软件工程标准化,软件项目、配置及人员组织管理,软件知识产权保护等内容:最后介绍当前国际上软件工程研究的新方向。《面向21世纪计算机专业本科系列教材:软件工程》可作为计算机专业本科生的软件工程教材,也可作为广大软件产业及IT产业从业人员的软件工程参考工具书。 -
软件工程初步贾长云《软件工程初步》是高等教育出版社与CEAC国家信息化教育认证管理办公室联合推出的认证课程教材,为CEAC计算机软件技术专业助理工程师认证课程配套。《软件工程初步》针对职业学校学生的特点,充分体现素质为基础、能力为本位、需求为依据、就业为导向的基本原则,教学内容注重选择当前软件工程中的一些新理论、新方法与新技术,通过一个小型软件项目为案例贯穿全书,使学生在学完本书后能掌握软件工程的基本理论与方法以及它们在软件项目开发中的实际应用。其主要内容涉及软件工程中的软件系统策划、需求分析、软件设计、编码实现、软件测试及实施与维护等方面的内容,考虑到职业院校学生的就业定位,重点侧重于详细设计、软件编码、软件测试、软件维护这几个方面的基本知识与技能。为保持教学内容的先进性,同时便于对教学进行科学、灵活的组织,对诸如UML方法、面向对象的分析、面向对象的设计与编程、面向对象软件测试、CMM等也做了介绍。《软件工程初步》可以作为职业学校计算机类专业的软件工程课程的教材或参考书,也可作为IT行业程序员、测试员、维护员等的培训教材或参考书。 -
机械系统建模与动态分析温熙森[等]编著本书以机械工程为背景,介绍机械系统建模与动态分析的基本理论及其在机械工程中的应用技术。主要内容包括基础理论篇、时域建模与分析篇、频域建模与分析篇和综合应用篇等四个部分。本书可作为机械工程及相关专业硕士研究生教材,使其掌握机械系统建模与动态分析的思想、原理、方法和技术手段,也可用作相关领域工程技术人员的参考书。 -
软件工程技术与实践刘志峰主编本书在注重实用的前提下,汇集了近年来国内外在软件工程开发和管理领域的主流技术和应用工具,内容丰富、系统严谨。本书主要介绍了软件工程领域的组织模式、项目管理模式、人员管理模式及质量管理模式。以理论和实践相结合的方式论述了软件开发管理策略和分析工具、可行性研究方法、需求分析方法、系统设计模型、编码、测试、维护等,并提供了大量已实际应用的范例。本书可作为高等院校高年级学生及研究生的教学参考书,同时对软件组织和单位的开发者、组织者、管理者来说也是一本实用性很强的参考书。
