软件工程及软件方法学
-
对象软件项目求生法则(美)Alistair Cockburn著本书论述了面向对象软件开发项目中所有重要的工作内容,包括进度安排、预算、人员配置以及成本控制中可能的风险及相应的解决办法。关键内容都附有短小的真实案例,可以帮助管理人员应对对象软件项目中各种无法预知的问题,取得整个项目的成功。本书适合从事软件开发和软件项目管理的人员使用,也可作为软件企业培训或高等院校软件工程类课程的辅助教材。 -
现代软件工程陈松乔,任胜兵,王国军编著从软件工程概念正式提出至今,已经经历了将近40年的发展,取得在大量的理论和应用研究成果,形成和促进了软件产业的飞速发展,在社地作画活中扮演着愈来愈重要的角色。正是由于学术界和产业界的不懈努力,软件工程正逐步发展成为一门成熟的专业学科。本教材正是为了适应软件工程高等教育的需要,组织具有多年软件工程教学和实践经验的教师编写而成的。本书系统地介绍了软件工程的概念、原理、方法、技术、标准和相关法律法规。全书共十章,以软件生存周期为主线,对软件工程有关的分析、设计、验证、维护和管理等方面内容作了详尽阐述,突出结构化技术、面向对象技术和组件技术在软件开发过程中的运用,强调软件产品质量和软件过程质量的分析和保证。本书最后简要介绍了软件工程标准化和软件知识产权的有关内容及其对软件工程的影响。本书包括了软件生存期过程、用例建模、面向对象软件设计模式和模型/视图/控制器框架等相关内容的介绍。并且,为方便读者理解与应用设计模式和模型/视图/控制器框架,本书附录中给出了简明、完整的程序代码。本书内容新颖,讲述力求理论联系实际、深入浅出、循序渐进。每章均附有习题。本书主要用作高等院校计算机科学与技术专业本科学生的“软件开发技术”课程或研究生“软件工程”课程的教材,也可作为其他相关专业的教学用书,或作为从事软件开发的科技人员的参考书、培训教材等。 -
可交付软件产品管理(美)John W.Rittinghouse著;罗强一,张红旭译;罗强一译本书描述了一套用于在公司环境中建立有效软件工程管理办公室的过程,SPMO的功能经过了实践的证明,有员工实施软件管理活动的所有企业,都需要这样的过程,在有些情况下,机构可能已经拥有针对企业所管理的所有项目的PMO,但是绝大多数的企业甚至都还滑听说过,这些企业管理的所有项目都是相互隔离的。本书提供了一个可下载的网站,读者从那里可得到实施本书描述的活动所需的各种类型的模板。本书讲述了如何在软件程序的开发过程中,如何以清晰明确的方式提供可供以后维护中使用的一系列可交付软件产品,并沿着软件开发生命周期路线图,为这些可交付产品提供了实用的、可供参考的模板。全书皆是作者的经验之谈,有切实的现实依据,是一本软件工程人士不可多得的参考书。 -
软件测试与质量管理许育诚编著;王慧文改编本书面向软件质量管理人员,分别从理论、实践、管理的角度介绍了软件测试与质量管理的精华与要点。在理论部分,介绍了软件开发流程、软件错误的种类、测试配置、问题跟踪系统与软件测试流程。在实践部分,介绍了测试用例设计与实际测试示范,并讲解了如何撰写Test Plan、Test Case、FAQ、相容测试报告、性能使用报告和测试报告,提供了各类文件的范本与示范程序,方便读者直接把握实践的要点。在管理部分,介绍了项目管理的技巧、QA人员的角色与责任、衡量时间的技术与方法,以及其他管理中应该注意的事项。随书光盘内容为书中的范例文件。本书的主要读者对象是企业软件质量管理人员和软件测试人员,以及高校软件工程专业相关师生。本书也可以作为软件学院的教学参考书。 -
软件质量工程(美)Stephen H.Kan著;吴明晖,应晶等译;吴明晖译本书是一本关于软件开发本质主题的权威著作。作者通过大量详尽的工业实例,深入浅出地介绍了怎样测量软件质量,以及利用测量来实现软件开发过程的改进。书中通过四个主要的质量度量和模型类别展开论述:质量管理、软件可靠性和预测、复杂性以及客户观点。另外,本书还讨论了测量理论的基础,特殊的质量度量和工具,以及在软件开发过程中应用度量的方法。全书内容丰富,层次分明,并在前一版的基础上进行了大量的更新,补充了许多相关的理论与应用。本书可作为计算机及相关专业本科生与研究生的教材或参考书,也是每一位从事软件质量工程研究的人员的宝贵资料。 -
UML与软件工程基础王立暂缺简介... -
软件项目管理(美)克里斯·F.克默勒(Chris F.Kemerer)著;李玉英等译本书提供了大量比较前沿的实用性和应用性资料及案例,而且文章的内容非常适时和重要。全书重点在于讲授模型的开发,目的是使人们更好地了解软件的开发和工具的使用,提高过程的生产率和质量,为项目管理的相关内容提供了完整的知识体系。 本书适合可作为软件管理课程的主要必备教材,以及系统分析和设计、信息系统管理、信息系统项目课程的补充教材,在向信息系统和计算机科学专业的研究生和高年级本科生,实际软件开发人员和软件管理人员。 -
软件工程曹哲主编内容提要本书从实用的角度出发系统地介绍了软件工程的基本理论、方法、技术、工具和环境。全书共17章。内容主要包括:概述,软件项目管理,计算机系统工程,需求分析,面向数据流的分析方法,面向数据的分析方法与形式化方法,面向对象的需求分析,软件设计基础,面向数据流的设计方法,面向数据的设计方法,面向对象的设计方法,人机界面设计,程序设计语言与编码,软件测试、软件维护、软件配置管理以及软件开发新技术简介等。本书结构合理,在选材上注重了实用性,以期达到理论与实践相结合、学以致用的目的,本书对计算机辅助软件工程(CASE)工具的介绍几乎贯穿全书,概念清楚、通俗易懂、内容翔实、实例丰富、习题思考题与内容配合紧密。本书既可作为高等院校“软件工程”课程的教材或教学参考书,也可作为软件开发人员的参考书。前言软件工程是计算机学科中一个非常有价值并具有广阔发展空间的研究领域。多年来,随着计算机硬件技术的迅猛发展,人们开发优质软件的能力远远落后于社会各个领域对计算机软件的需求,也就是说,时至今日,仍然经受着“软件危机”的困扰。为了克服“软件危机”,自2世纪6年代末期以来,人们在这一领域做了大量的研究与实践工作,积累了大量的软件开发技术和方法,进而逐渐形成了系统的软件项目开发与管理理论。于是,一门新兴的学科——软件工程学(简称软件工程)诞生了。软件工程所研究的范围十分广泛,主要包括软件项目开发和软件维护的有关理论、技术、方法、标准、计算机辅助工具和环境以及软件项目管理等诸多方面。软件工程领域的研究成果为缓解软件危机发挥了关键性作用。“软件工程”课程是高等学校计算机学科教学计划中的一门主干课程。本书正是为普通高校计算机学科“软件工程”课程而编写的教材。本书共17章,其中第1章~第3章介绍软件工程的基本概念、软件项目管理、计算机系统工程:第4章~第7章介绍需求分析的有关内容,包括需求分析概念、面向数据流、面向数据、形式化、面向对象等需求分析方法、需求规格说明与评审等;第8章一第12章介绍软件设计的有关内容,包括软件设计的概念、设计过程和一般性技术,面向数据流、面向数据、面向对象以及人机界面的设计方法与技术、设计规格说明与评审等:第13章~第16章介绍软件的实现、测试与维护,主要包括程序设计语言与编码、软件测试与调试、软件维护、软件配置管理等:第17章简单介绍近期出现的与软件开发有关的新技术,包括软件重用技术、Intemet与Java、对象链接与嵌入(OLE)技术以及分布计算技术等。本书具有以下几个特点:(1)结构合理,系统地介绍了软件工程的基本原理、概念、方法和工具。(2)在选材上注重了实用性,以期达到理论与实践相结合、学以致用的目的。(3)对计算机辅助软件工程(CASE)工具的介绍几乎贯穿全书。(4)概念清楚、通俗易懂、内容翔实、实例丰富,习题思考题与内容配合紧密。本书可以作为高等院校“软件工程”课程的教材或教学参考书,也可以作为软件开发人员的参考书。本书由曹哲主编,由高诚、车进辉、吴燕任副主编,具体分工为:第1章、第2章和第14章由曹哲编写;第5章、第6章、第8章、第9章、第1章、第12章、第16章由高诚编写,第7章、第11章、第13章、第15章、第17章由车进辉编写,第3章和第4章由吴燕编写。本书由朱敦名教授主审。在本书的编写过程中,北华大学计算机科学技术学院计算机实验室的全体同志给予了多方面的支持和帮助。赵津燕、刘艳、李益民、胡晓宏、尹健慧、葛建梅、王双立等同志也参与了大纲讨论,并提出了很多宝贵意见。在此,编者向他们表示衷心地感谢。由于时间仓促及编者水平有限,书中难免存在疏漏和不妥之处,恳请广大读者批评指正。编者联系方式:Zxqu3@tom.com。编者24年5月 -
基于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:案例分析光盘案例讨论;在实践中运行检查列表 -
软件工程王庆育编本书全面系统地讲授软件工程的理论与实践,力求从不同的角度帮助读者迅速掌握软件工程的理论、方法和思路。全书共分软件工程基础、软件项目管理、传统的软件工程、面向对象的软件工程、软件工程的最新技术等五个部分。内容主要包括:软件工程概论、软件过程、软件建模语言、软件项目、团队管理、软件配置管理、系统设计、软件测试、面向对象的分析与设计、编码实现、基于构件的软件工程、客户服务器与Web软件工程、设计模式等。本书理论与实践相结合,采用案例教学并附有大量习题便于读者学习掌握。本书既可作为高等学校相关专业的教材或教学参考书,也可作为软件设计人员的自学用书。
