软件工程及软件方法学
-
UML系统分析设计与应用案例冀振燕编著本书是一本内容全面的面向对象技术书籍。书中介绍了UML语言的基础知识以及UML在面向对象的软件系统分析和设计中的应用,并通过实例讲解了系统的面向对象分析与设计过程,以及如何用UML语言为系统建模。此外,还介绍了如何使用Rational Rose 2000中的前向工程和逆向工程。本书结合了丰富的实例,通过实例启发读者如何将所学到的面向对象技术应用于软件系统的分析、设计与开发中。本书可作为软件设计与开发人员的参考手册,也可作为大专院校做面向对象分析与设计课程的教材使用。 -
应用极限编程( )Ken Auer,( )Roy Miller著;唐东铭译极限编程(XP)是一种经历过实践考验的轻量级软件开发方法学,本书是为对极限编程(XP)感兴趣的软件开发人员和技术经理们编写的。也许他们还不知道一旦采用XP后应该如何开始,或如何深入下去。本书的目标就是根据真实的经验,为他们提供一些有实际意义的建议。本书共分5个部分,第1部分——开始之前,介绍了XP的基础知识。第2部分——完美的理念,包括第2章至第7章。这一部分包括了在开始采用XP时,我们面临的来自精神及情绪方面的挑战,并帮助我们克服这些障碍。第3部分——先做最重要的事,包括第8章至第18章。这一部分建议了要尽早关注哪些最重要的实践,并帮助您在您所处的环境中做出一份采纳这些实践的计划。第4部分——故事的其余部分,包括第19章至第27章。该部分在进一步引进其他实践上为您提供建议。第5部分——未知领域,包括第28章至第33章。这一部分描述了作者们尚未探索到的XP领域中的其他部分,对他们的介绍使您认识到在XP的旅程当中,也许还会遇到一些具体的挑战。本书语言轻松活泼,实用性与可读性较强,适合于软件开发人员、软件项目管理人员、客户以及任何与软件开发有关的各界人士阅读参考。本书可作为达到Kent在《解析极限编程——拥抱变化》一书中所勾画出的目标的一本指导手册。 -
ADSP SHARC系列DSP应用系统设计刘书明,罗军辉编著数字信号处理技术的迅猛发展,使DSP产品广泛地应用于通信、图像处理、生物医学、自动控制等领域。本书选定ADI公司最新的高性能DSP器件,简要介绍了ADSP SHARC系列芯片的基本工作原理及性能指标,并着重阐述了应用ADSP SHARC系列芯片组成数字信号处理系统时,在外围硬件接口、软件设计、系统设计等方面必须解决的问题。书中还提供了大量的设计实例,介绍了很多设计经验,同时也提供了系统设计范例,可供相关技术人员参考。本书面向广大电子工程设计人员,可供大专院校通信工程、电子工程、计算机应用、工业自动化、自动控制等专业的教师、研究生和高年级本科学生作为教材使用,也可供通信和电子领域从事DSP芯片开发应用的广大科技人员阅读参考。 -
软件能力成熟度模型(CMM)与软件开发技术单银根,王安,黎连业编著软件能力成熟度模型(CMM)是卡内基—梅隆大学软件工程研究院为了满足美国联邦政府评估软件供应商能力的要求,于1986年开始研究的模型,并于1991年正式推出了CMM10版.CMM自问世以来备受关注,在一些发达国家和地区得到了广泛应用,已成为衡量软件公司对软件开发管理水平的重要参考因素和软件过程改进事实上的工业标准软件能力成熟度模型,它的基础就是软件开发技术.所谓软件就是应用计算机科学数学和管理科学的知识,通过某种表达方式(语言)编制程序,在计算机上实现人们预定的工作目标由于软件不同于硬件的制造过程,它是逻辑产品的开发,是人的智力的高度发挥.尽管人是聪明的,但也容易犯错误,软件中的许多错误都是由于人的认识.知识和经验不足或开发过程中的疏忽或交流不够造成的如何解决这一问题?如何提高软件开发技术水平?这是我们所关心的问题为此,中国科学院计算所(二部)网络研究开发中心培训部组织在软件开发方面有一定造诣的专家.学者编写了《软件能力成熟度模型(CMM)与软件开发技术》一书.本书可供从事软件开发的科技人员学习和参考,现作为北京中科天地网络技术有限公司的培训教材建议有关培训机构采用全书分为上下两篇上篇重点介绍软件能力成熟度模型,由前七章组成下篇为软件开发技术,由后八章组成上篇的内容是:能力成熟度模型(CMM)概述,软件过程评估的国际标准,可重复级(等级2),已定义级(等级3),已管理级(等级4),优化级(等级5),能力成熟度模型(CMM)的提问单简要地向读者介绍了目前国际上对软件开发技术规范的要点,衡量软件开发水平,即能力成熟度模型下篇的内容是:软件产业实施CMM的对策与分析,与CMM相关的软件工程技术,与CMM相关的可行性分析与项目立项,与CMM相关的系统分析及其设计,与CMM相关的程序设计及其编码,与CMM相关的系统测试,与CMM相关的系统试运行与维护,与CMM相关的系统验收与鉴定.向读者介绍软件开发过程中具体怎么去做软件开发是一个“软件学”技术,长期以来给刚刚从事软件工作的同志一种神秘的感觉.这种“软件学”知识,一直存在于少数从事设计人员的头脑中,成为一种“艺术”和经验为了使这种“艺术”和经验能够为多数人掌握与借鉴,使人的“艺术”和经验成为一种工艺,对它进行“硬化”,变为“硬技术”说白了,就是把“糊在窗户上的一层纸给桶开”,揭开软件开发技术的神秘面纱.本书同时也给从事软件人员提供一个参考依据:国际上对软件开发有哪些要求和规范?在具体开发过程中又怎样去实现?这就是我们编写这本书的目的所在本书作为“艺术”和经验的硬化,是新鲜的,但带有作者的个人观点和主张(读者可以从书中看出).因此,作者希望能起到抛砖引玉的作用,把软件开发工作做得更好,培养出更多的走向国际化的软件人才作为最主要的问题,哪些人使用这本书?本书适合下列几种不同工作类型的人员阅读:(1)需要了解软件开发建设全过程的人员,(2)从事软件开发的技术人员,(3)已有软件编程经验,也有大中型工程项目经验的人员,(4)大.中型软件项目的管理人员和设计人员,(5)科研企事业单位的软件人员,(6)从事系统分析.设计的人员,(7)从事出口软件劳务的技术开发人员,(8)软件开发培训班的教师和学员本书在编写过程中,参考了大量的技术参考资料技术规范和有关书籍,并先后得到了许多同志的支持和帮助李淑春黎娜王月冬张维.单银根陈建华王兆康.王长富对本书稿提出了许多修改意见,北京中科天地网络技术有限公司的王刚刘春阳滕华.梁艳刘占全张静.张洪波张黎明顾寿筠等同志为本书的写作提供了许多方便,在此对上述同志一并表示感谢!由于作者水平有限,书中的错误和不当之处,欢迎读者批评.指正作者于中科院计算所二部2003年元月这是一本介绍软件能力成熟度模型CMM(CapacityMaturityMode1)与软件开发技术的参考教材。全书由十五章组成。各章内容分别是:软件能力成熟度模型(CMM)概述;软件过程评估的国际标准;可重复级(等级2);已定义级(等级3);已管理级(等级4);优化级(等级5);能力成熟度模型(CMM)的提问单;软件产业实施CMM的对策与分析;与CMM相关的软件工程技术;与CMM相关的可行性分析与项目立项;与CMM相关的系统需求分析及其设计;与CMM相关的程序设计及其编码;与CMM相关的系统测试;与CMM相关的系统试运行与维护;与CMM相关的系统验收与鉴定。本书的特点是:在叙述上由浅入深、循序渐进;在内容上系统全面、重点突出;在概念上清晰易懂。它是一本掌握软件能力成熟度模型(CMM)与软件开发技术很好的书籍,对提高我国软件行业及软件产品会有很大帮助。本书是北京中科天地网络技术有限公司的培训教材,也可供软件技术开发人员、软件设计人员、科研管理人员以及大专院校有关专业的师生参考。 -
掌握需求过程(英)Suzanne Robertson,(英)James Robertson著;王海鹏译本书是为那些希望得到正确需求的人而写的。《掌握需求过程》一书用一个接一个的步骤、一个接一个的模板、一个接一个的例子,向我们展示了一个经过业界检验的需求收集和验证过程。它为精确地发现顾客所需所想提供了技巧和深刻见解。本书共分14章。第1章介绍了需求说明规范的模板与需求框架。第2章概述了Volere过程。第3章介绍了让需求项目有一个成功和有效的开始所需的东西。第4章介绍了如何确定产品的合适组成部分以及如何确定要构造的最好产品。第5章至第7章节介绍了如何网罗需求以及功能性需求和非功能性需求。第8章至第13章介绍了需求说明编写,以及相关内容,如验收标准、质量关、原型和场景、重用需求、鉴定需求规格说明书等。最后一章讨论了写好需求之后该做的事。两个附录给出了完整的需求过程模型和编写需求说明规范的模板。本书论述了软件开发中的重要课题——如何得到正确需求。本书可作为计算机专业高年级本科生及研究生掌握需求过程的教材,也可作为软件开发人员在开发过程中随时参考手册。 -
软件工程米昶,幸莉珊主编《软件工程(第3版)》是新世纪高职高专教材编委会组编的计算机类课程规划教材之一。本教材主要讲述了软件工程的基本概念、原理和方法。通过理论教学与实践教学的结合,使学生基本掌握结构化开发方法,熟悉面向对象的开发方法,学会软件工程文档的编写方法,了解软件工程管理等内容。本教材主要针对第二版教材存在的问题,结合部分高职高专院校教师对《软件工程(第3版)》的建议进行修订,修订的指导思想是:根据高职高专学生在软件行业主要就业岗位的能力要求,着重培养学生软件详细设计、编码、测试与维护能力。修订的重点一是重新编写了面向对象软件工程内容;二是充实了与学生职业能力相关的内容;三是增加了大量教学案例和课后习题。修订后的教材更加符合高职高专学生的学习特点,更加适合高职高专教育的教学要求。本教材具有如下两大特点:1.突出了教材的实践性。教材以“高校图书管理系统”为教学案例,贯穿教材主要章节,涉及软件工程问题定义与可行性研究、需求分析、软件设计各主要阶段,通过这种“任务驱动”的教学方式,使学生带着任务学习、为应用而学习。2.突出了教材的实用性。为提高学生的职业能力,在详细设计章节,着力培养学生运用各种图形工具描述算法的技能;在编码章节,着力培养学生形成良好的程序设计风格。通过大量例题去讲解抽象的理论知识,使学生通过案例学习、在应用中学习。 -
管理信息系统腾佳东主编高等院校经济与管理类专业公共基础课标准教材。管理信息系统是进行有效管理、正确决策和实现管理现代化的重要手段。作为一门新兴学科,管理信息系统综合了管理科学与工程、计算机科学、经济理论、统计学和运筹学等许多学科的概念和方法,形成了独特的体系和领域。本书的目的是要让学员通过学习管理信息系统的基本概念和基本知识,建立系统的概念,从信息系统的角度来审视、考虑和处理组织中的问题,使学员初步掌握管理信息系统分析、设计、实施和评价的方法,懂得人的因素、社会因素在发展管理信息系统中的重要作用。本书并不要求学员具有信息技术和信息系统的专业知识,它适合大学本科各专业了解和掌握管理信息系统及其有关方面的内容使用。本书在论述方面力求通俗易懂,有关技术章节部分的内容可供以前没有这方面知识的学生选学。 -
面向对象程序设计房晓溪主编《面向对象程序设计》是按照本科院校学生的培养目标和基本要求,并结合多年来教学和软件工程实践的经验,为实施教学改革,使计算机教学进一步面向应用实践而编写的教材。《面向对象程序设计》内容包括:从面向过程到面向对象、C++程序设计初步、表达式和引用、程序控制语句、类与对象、构造函数与析构函数、继承与派生、多态性和虚函数、进一步使用成员函数、运算符重载、流类库、模板、异常处理等。每章后都配有习题,书后附录提供了部分习题答案和课程设计,体现了教材的理论性和实用性的统一。《面向对象程序设计》可作为计算机及相关专业的教学用书,也可作为工程技术人员的参考用书。 -
软件质量工程的度量与模型(美)Stephen H.Kan著;王振宇等译;王振宇译理论、技术和实例的结合是本书的显著特点。本书的重点是使用度量,而不只是描述度量。除详细讲述基本问题和技术,包括软件度量、软件可靠性模型和程序复杂性的模型和分析外,还讨论了诸如过程中度量、缺陷排除有效性、顾客满意度等问题。书中有众多活生生的例子,其中许多来自作者的经历,他曾是荣获Baldrige奖的1BMAS/400系统软件质量活动的中心人物。这些例子向你展示怎样把理论和技术用于工作中。此书还包括来自惠普、摩托罗拉和NASA软件工程实验室这些著名计算机公司的例子。 理论、技术和实例的出色平衡,使此书成为关于软件开发中最重要问题之一的高度指导性的和实用的著作。StephenH.Kan博士,ASQC资格认证的质量工程师和资格认证可靠性工程师,是AS/400产品开发中质量管理过程的过程经理。从1988年AS/400的最初发布版本起,他就已经成为其软件系统的软件质量活动的中心人物。 本书详细论述了软件质量工程中的基本问题和技术,除软件度量、软件可靠性模型和程序复杂性的模型和分析外,还讨论了过程中度量、缺陷排除有效性、顾客满意度等问题。理论、技术和实例的结合是本书的显著特点,书中有许多来自IBM、摩托罗拉等软件工程实验室的例子。通过这些实例,读者可进一步了解如何把书中所讲的理论和技术用于实际工作中,以测量和改进整个软件开发过程的质量。 -
实用软件测试指南(美)James A.Whittaker著;马良荔,俞立军译;马良荔译本书所给出的测试并非传统意义上基于书面测试计划实施的循规蹈矩的测试,也没有讨论艰深的测试理论,而是直接面向实际应用,使测试员进行“自由”的测试,提出了对软件进行攻击的思想,从软件的用户界面、文件系统接口和操作系统接口三个最易于攻击的方面来实施攻击,并利用了所开发的软件,帮助测试员简单地捕获异常并强制执行一般错误,最终能更快、更多地发现软件中的错误,改进软件,提高软件质量。本书可作为计算机专业高年级本科生、计算机专业研究生的软件测试教材或参考书,也可作为软件开发人员、软件测试人员和软件管理人员的参考手册。前言关于本书本书基本上没有包含测试理论。阐述测试理论的书很多,但讲述一个好的测试员如何开展实际测试的书基本上没有。所以我写了这样一本书。我试图进入我所遇到过的最佳测试员的大脑并把最好的技术形成文字,指出隐错在什么地方以及如何最有效地找到这些隐错的方式继而获得可发布的高质量产品。我写本书的第二个目的是使它阅读起来充满趣味性并且包含的技术应用起来也很有趣。我爱中断软件。我希望我的热情将为软件测试行业增添光彩的一页。关于本书读者听起来有点像推销,但每一个读者都可以从本书中获得一些他所需要的知识。它以一种吸引初学者的指导风格书写,而最老练的测试人员可能欣赏本书独特的内容。当然,目前我作为大学教授也意味着我在写作本书时要把学生放在心上。我把本书用于本科生和研究生测试课程。学会如何成为一个优秀的测试员并超越基础理论是很重要的。关于本书的例子本书给出了来自实际应用软件的真实错误消息和奇异行为(我敢说是“隐错”吗?)的屏幕显示。包含这些例子用来描述本书所讲述的攻击技术。其中有些是大隐错,而有些只是小麻烦。例子的主要目的是教学和说明。这并不意味着仅仅作为大隐错的例子(尽管其中的一些确实如此),也不意味着我们取笑生产该应用程序的公司。实际上,我精心选择了市场领头羊的应用程序,所以能够被绝大多数读者立即认可。更进一步,每个例子都来自我平常交往的、其开发实践和文化是我所推崇的公司生产的应用程序。我提醒读者在应用本书中的技术或再现屏幕显示的隐错时要谨慎。许多攻击会使应用程序崩溃。确信在尝试攻击之前保存了你的工作,确保不丢失任何重要的数据。关于本书的组织本书由四部分组成。第一部分是对软件中断研究领域的介绍,以适应讲授对软件和它所工作的复杂环境的理解。对软件测试人员而言,理解软件环境很重要,这样他们就注意到软件内部在做什么以及它是如何与环境交互的。没有这样的理解,很难成为一个成功的软件中断者。第二部分详细介绍了能通过用户接口应用的特定攻击。无论接口是GUI或是程序的API,这一部分将会给出如何从接口攻击软件,何时应用每个攻击,攻击在破坏软件时为什么会成功以及是怎样成功的。这一部分可能成为在对你的软件目标进行攻击行动时最常引用的部分。第三部分讨论了非人类系统接口的测试问题(即如何测试应用程序的文件系统、操作系统、软件接口)。讨论了攻击策略。介绍了一个新的称为HEAT的工具,即不利环境应用程序测试器(HostileEnvironmentApplicationTester)。你可以在本书选配光碟中找到“CannedHEAT”。CannedHEAT允许测试员以一种称为运行期故障植入的技术来测试系统接口。第四部分是结论,结论是软件测试永远不能真正地掌握。相反,它要求不断地学习并获取新的技能。这部分我们描述了在Florida技术学院发生的两件有趣的充满教训的事。你可以把它们用在你?氖笛槭依铩K潜Vつ馨蜒昂陀槔止餐谌氲饺魏稳砑馐苑绞街校?附录B~附录D为软件中断者提供了特定的资源。附录B讨论了运行期故障植入。附录C描述了CannedHEAT的使用,CannedHEAT是选配光碟上的一个易于使用的故障植入工具。附录D重印了在“IEEESoftware”上已发表过的一篇文章,它描述了一般的软件测试过程。这些附录补充了本书的内容,可以单独阅读或作为本书的附加材料阅读。附录A包含了常用编程术语的定义。关于本书的内容本书脱离了传统的测试。在传统测试中,测试员准备好书面测试规划并把它作为测试软件时的脚本,测试提前规划好并以一种机械的方式执行。本书中的测试技术是灵活的,而传统测试是严格的。如果在一个软件项目中,需求改变了,隐错变成特性,进度压力强制计划重新评估时,就需要灵活性。软件测试并不是可以预先确定测试什么、执行计划并按计划来实施的一门精确的科学,这需要上帝般的远见。不是靠计划,而是靠智能、洞察力、经验以及对隐错隐藏位置的敏锐判断等来指导测试人员。本书会帮助测试员开发这种洞察力。作为测试规划和自动测试执行的一个长期拥护者,我对这种自由形式测试的第一个感觉是怀疑。但是,事实简单地驳倒了我。聪明的人做的探索测试找到了所有我见过的最佳隐错。同样是这些聪明的人在最佳测试自动化上也做得更好,不是一个小的零头而是一个数量级。当项目需做困难的、认真的测试时,往往是调入最聪明的测试员而不是测试计划或测试自动化。当需要做出关键的运载决定时,聪明的管理员会忽略测试计划的部署而注重最有经验的测试员的意见。我不久就确信我那宏大的全自动测试研究议程需要认真地重新考虑。我对那些知道产品并找出了所有隐错的人表示出强烈的兴趣。我可以证实这些民间方法没有脚本并设法抛开了压在桌上文档下的正式的测试计划。被提问时,他们总是回答:“那份计划并未瞄准隐错所在之处。”本书中体现的技术不仅允许测试员脱离脚本,也鼓励他们这么做。不要盲目相信文档,它们可能是过期的或在产品可测试之前写的。相反,应该开动脑筋!睁大眼睛!想一点,测试一点,再想一点。但是,不要认为我反对计划或文档。本书简单地讲授测试中的紧张工作计划。不要认为测试自动化是令人沮丧的。有许多重复复杂的任务需要好的工具(确实,收录在本书选配光碟上的就是这样的工具)。但是,工具永远不能代替智能使用。测试员思考并使用工具收集数据,以帮助他们更加快速有效地探究应用程序。如果给本书一句题词,则可以是:熟悉你的产品,考虑你的步调,并让经验引导你。甚至可以更简单:开动脑筋,睁开眼睛……测试!我长期热衷于研究这样的测试。我通过观察人们以及研究他们的隐错来做这项工作。为找出隐错,最好的测试员在做些什么?最佳隐错有什么共同之处?有没有方法推广有经验的测试员的行动使得缺乏经验的测试员能做得更好?我的意图是捕捉我所遇到的最优秀的测试员的最好思想,并把这些思想形成文字,以这种方式使测试新手能够学到有用的知识并变得更好。如果本书内容未能达到这个目标,那只是因为我个人的沟通技巧不足所致,而不是我的研究主体本身的技巧的反映。本书中好的内容都出自同事们细致研究过的工作。我感谢他们公开了他们找出的隐错以及他们的洞察力。本书中的错误全都归咎于我。把测试的辉煌景象形成文字对于像我这样的凡人来说是很困难的事。关于本书的补充材料本书提供了一张选配光碟,它包含了两个非常有用的工具,它们是Florida技术学院的教员和学生编写的。CannedHEAT和HolodeckLite是运行期监视和故障植入工具,运行于WindowsNT系列的平台上。两个工具都很容易使用,在本书的第三部分和附录中有详细的解释。另外,www.HowToBreakSoftware.com是获得最近的工具更新、隐错故事和与破坏软件原理相关的技术公告等信息的在线通道。JamesA.WhittakerMelbourne,FloridaAugust2001
