软件工程及软件方法学
-
面向对象软件构造?(美)Bertrand Meyer美国软件开发杂志获奖图书 为软件产业带来震撼与效率 奖项背景:从1990年开始,美国权威的软件开发杂志(《Software Development》)每年从图书、设计工具等6个类别的700多个候选产品中评选出每个类别的1~2个年度震撼大奖(Jolt Award,即产品优胜奖)和2~3个年度效率大奖(Productivity Award),以表彰这些产品在推动软件开发方面的杰出贡献。回顾这12年来的获奖名单,入选的无一不是对业界产生深远影响的里程碑式作品。(详情可参阅www.sdmagazine.com)This second edition is not an update but the result of a thorough reworking. Not a paragraph of the original version has been left untouched. (Hardly a single line, actually.) Countless new topics have been added, including a whole chapter on concurrency, distribution, client-server computing and Internet programming; another on persistence and databases; one on user interfaces; one on the software lifecycle; many design patterns and implementation techniques; an in-depth exploration of a methodological issue on which little is available in the literature, how to use inheritance well and avoid misusing it; discussions of many other topics of object-oriented methodology; an extensive presentation of the theory of abstract data types : the mathematical basis for our subject, indispensable to a complete understanding of object technology yet seldom covered in detail by textbooks and tutorials; a presentation of O-O analysis; hundreds of new bibliographic and Web site references; the description of a complete object-oriented development environment (also included on the accompanying CD-ROM for the reader's enjoyment) and of the underlying concepts; and scores of new ideas, principles, caveats, explanations, figures, examples, comparisons, citations, classes, routines. -
Software for Use(美)康斯坦丁(Larry L.Constantine),(美)洛克伍德(Lucy A.D.Lockwood)著Presents a streamlined process for developing highly usable software. Desceibes practical methods and models successfully implemented in industry. Complements modern development practices, including the Unified Process and other object-oriented software engineering approaches. -
新编Visual FoxPro教程单启成主编面向21世纪高校教材 江苏省高等学校计算机等级考试系列教材江苏省教育厅组织编写。本书围绕Visual FoxPro系统的基本概念、基本操作,结合一个简单的“教学管理系统”实例,介绍了关系型数据库管理系统的功能和数据处理方法。 -
软件工程基础李成大[等]编著本书主要介绍软件工程及其应用的有关内容,包括可行性研究、需求分析、总体设计、详细设计、编码、测试、维护以及有关软件管理、软件开发工具和环境等方面的内容。为了保持教材内容的先进性,本书还介绍了面向对象软件工程学、统一建模语言UML、软件工程标准与软件文档等方面的内容。本书内容新颖,实例丰富,各章均有小结与习题,便于教学和自学。本书可作为高等院校“软件工程”课程的教材或教学参考书,也可供从事软件开发与应用的工程技术人员和管理人员阅读参考。前言软件工程是指导计算机软件开发与维护的工程学科,它采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间检验证明是正确的管理技术和当前能够得到的最好的技术方法结合起来,以便经济地开发出高质量的软件并有效地维护它。从20世纪60年代末提出“软件工程”概念以来,历经三十多年的飞速发展,软件工程逐渐成熟,现已成为计算机科学与技术领域中的一门重要学科。随着计算机的日益普及,计算机软件已无处不在。以软?乃得鳌⒖ⅰ⑽ず凸芾砦谌荩魑畔⒉档囊桓鲋е砑こ陶庖谎Э埔阎鸾ノ嗣撬煜ず凸惴河τ谩O衷诖蠹叶既鲜兜剑绻心母鱿钅坎蛔裱砑こ淘颍囟ɑ崾艿绞导某头!R虼耍险嫜安⒃谑导使ぷ髦姓返卦擞萌砑こ蹋前谠谖颐敲媲暗囊幌钍制惹械娜挝瘛*?软件工程是一门研究范围非常广泛的迅速发展的新兴学科,学科内的新技术、新方法不断涌现。本书着重从实用角度讲解软件工程的基本概念、基本原理和技术方法,同时也注意了该书的系统型和先进性。希望本书既能对实际的软件开发人员和管理人员有所帮助,又能为读者深入研究这门学科奠定较好的基础。本书共有13章。第1章介绍了软件的概念、发展和软件危机,着重介绍了软件生存期、软件开发模型及软件工程的基本概念和基本内容。第2、3、4、5、6、9、10章是本书的重点,分别论述可行性研究、需求分析、总体设计、详细设计、编码、测试、维护阶段的各种方法和技术,对SA方法、SD方法、数据流图、数据字典、层次图、HIPO图、结构图、NS图、PAD图、PDL语言、黑盒法、白盒法等逐一做了详细的介绍,读者开发软件时可根据需要灵活运用。为了保持教材内容的先进性,本书第7、8章介绍了面向对象软件工程学和统一建模语言UML,主要包括面向对象方法的基本概念、面向对象的分析、面向对象的设计、软件复用、UML的静态建模机制、UML的动态建模机制、UML软件开发过程等内容。第11章介绍了有关软件项目计划、软件项目组织、软件项目人员配备、软件项目的指导和检验、软件配置管理和配置管理工具等软件管理方面的内容。第12章介绍了软件开发工具和环境,并对计算机辅助软件工程CASE做了简要的介绍。第13章介绍了软件工程标准与软件文档,包括ISO9000质量标准、ISO/IEC12207软件生存周期过程标准、能力成熟度模型CMM等内容。在附录中给出了计算机软件开发文档编制指南,供实际应用时参考。本书内容新颖,实例丰富,语言文字通俗易懂;各章重点、难点突出,原理、技术和方法的阐述融于丰富的实例之中;各章均有小结与习题,便于教学和自学。本书可作为高等院校“软件工程”课程的教材或教学参考书,也可供从事软件开发与应用的工程技术人员和管理人员阅读参考。本书的第7、8、12、13章由李成大副教授编写,第1、2、3、4、5、11章由张京副教授编写,第9、10章由郑显举老师编写,第6章及附录由许珏老师编写,李成大老师负责统稿全书。西南交通大学计算机与通信工程学院文登敏副教授仔细审阅了本书,并提出了非常宝贵的意见,特此表示深深的谢意。由于编者水平有限,编写时间仓促,书中错误之处在所难免,恳请专家和读者批评指正。 -
软件评估、度量与最佳方法美Capers Jones著暂缺简介... -
UML面向对象结构设计与应用施昊华,张朝辉编著统一建模语言(UML)是一种通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统制品的文档。它记录了对必须构造的系统的决定和理解,可用于对系统的理解、设计、浏览、配置、维护和信息控制。UML适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具,是一种总结了以往建模技术的经验并吸收当今优秀成果的标准建模方法。本书按照从初级到高级、从基本概念到应用实例的顺序,逐渐由浅人深地对UML进行了详细地讲述,具有层次清楚、思路清晰、讲解透彻、实例丰富的特点。适合于广大软件开发人员、系统分析人员、开发人员以及相关专业的科技人员自学使用,同时也适合于广大高等院校的师生作为教材或自学参考使用。 -
使用UML(英)Perdita Stevens,(英)Rob Pooley著;包晓露,赵晓玲译本书旨在介绍使用UML进行面向对象和组件软件开发所必需的知识。本书共20章,分为四个部分。第一部分包括前4章,介绍软件工程和面向对象开发的概念。第二部分包括第5~14章,这些章节对UML语言进行了详述。第15、16、17章是第三部分,主要是三个用例学习。还包括有可能进一步扩展的提示。最后3章是第四部分,讨论质量和质量保证、验证、确认和测试、软件项目管理及团队开发等问题。本书强调理论和设计相结合,列举了大量用例。通过本书的学习,读者能够掌握面向对象、基于组件的设计及软件工程的概念,并可进行详细设计,进一步可探索分析设计中更困难的问题。本书可作为高等院校计算机科学、软件工程及相关专业高年级学生的教科书,也可作为从事软件开发的管理者、系统分析员、程序员进行面向对象软件工程设计时的参考书。 -
实用软件测试指南(美)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 -
软件技术基础实验刘云,史红星著本书是软件技术基础课程的教材,它与中央广播电视大学出版社出版、刘云教授主编的《软件技术基础》一书配套使用。实验教材根据软件技术基础的课程要求,给出了五个基本实验,内容涉及到局域网安装与使用、Internet接入与应用、Windows2000安装与配置、局域网交换机设置、路由器的基本设置等各个方面。每个实验由试验目的、实验要求、实验内容与步骤、实验报告和实验相关知识五个部分组成,目的是通过上述实验,使学生了解计算机网络的基本组件(包括传输介质、网卡、集线器等),掌握它们之间的连接,进一步掌握网络操作系统的安装和交换机、路由器的基本设置,从而对软件开发的网络环境平台有一个基本了解。 -
中国网虫传奇陆群主笔历史是由人创造的,网虫的的历史正好构成网络发展的历史。作者在这里采访与描述的不是什么取得辉煌业绩的数字英雄们——虽然他们对中国网络的贡献很大,而是把目光聚集在众多的小人物身上,通过他们的生存轨迹,包括他们的生活,爱情,文学以及特立独行的思想。在《中国网虫传奇》中,人们可以轻松自然地感受到网络的点滴进步和蕴涵的无限潜力。这些网虫热恋网络的程度有深有浅,使用网络的水平有高有低,但他们以自己的热情和生命拥抱网络,让人们更彻底地理解网络对人们生活的意义,从而感受到人类探索未知领域的本领可以创造怎样的奇迹。
