软件体系结构原理、方法与实践(第2版).张友生(带书签文字版).pdf
2019-12-21 20:10:26 39.56MB 软件体系结构
1
【作者】张友生 编著【丛书名】软件工程专业核心课程系列教材【出版日期】2014.01【出版社】北京:清华大学出版社【页 码】376页【ISBN】978-7-302-33504-7【主题词】软件 系统结构【中图分类号】TP311.5【摘要】本书系统地介绍软件体系结构的基本原理、方法和实践,全面反映软件体系结构研究和应用的最新进展,既讨论软件体系结构的基本理论知识,又介绍软件体系结构的设计和工业界应用实例,强调理论与实践相结合。第 1 章 软件体系结构概论 16 从软件危机谈起 16 软件危机的表现 16 软件危机的原因 17 如何克服软件危机 18 构件与软件重用 19 构件模型及实现 19 构件获取 20 构件管理 21 构件重用 24 软件重用实例 29 软件体系结构的定义 33 软件体系结构的意义 34 软件体系结构的发展史 36 软件体系结构的应用现状 37 思考题 42第 2 章:软件体系结构建模  43 “4+1”视图模型 43 逻辑视图 44 开发视图 45 进程视图 46 物理视图 47 场景 49 软件体系结构的核心模型 49 软件体系结构的生命周期模型 50 各阶段之间的关系 50 软件体系结构的生命周期 52 软件体系结构抽象模型 53 构件及其关系的抽象描述 53 连接件 58 软件体系结构 58 软件体系结构关系 59 软件体系结构范式 60 思考题 62第 3 章:软件体系结构风格  63 经典软件体系结构风格 63 管道与过滤器 64 数据抽象和面向对象系统 65 基于事件的系统 66 分层系统 66 仓库系统及知识库 67 C2风格 68 客户/服务器风格 69 三层C/S结构风格 71 各层的功能 72 三层C/S结构应用实例 73 三层C/S结构的优点 77 浏览器/服务器风格 77 公共对象请求代理体系结构 79 CORBA技术规范 79 CORBA风格分析 80 正交软件体系结构 82 正交软件体系结构的抽象模型 83 软件体系结构的正交化 84 正交软件体系结构的实例 85 正交软件体系结构的优点 88 基于层次消息总线的体系结构风格 88 构件模型 89 构件接口 90 消息总线 91 构件静态结构 92 构件动态行为 93 运行时刻的系统演化 93 异构结构风格 94 异构结构的实例分析 95 异构组合匹配问题 97 互连系统构成的系统及其体系结构 98 互连系统构成的系统 99 基于SASIS的软件过程 100 应用范围 102 特定领域软件体系结构 103 DSSA的定义 104 DSSA的基本活动 104 参与DSSA的人员 106 DSSA的建立过程 107 DSSA实例 108 DSSA与体系结构风格的比较 111 思考题 111第 4 章:软件体系结构描述  114 软件体系结构描述方法 114 软件体系结构描述框架标准 116 体系结构描述语言 117 ADL与其他语言的比较 118 ADL的构成要素 119 典型的软件体系结构描述语言 121 UniCon 121 Wright 123 C2 124 Rapide 127 SADL 128 Aesop 129 ACME 130 思考题 136第 5 章:统一建模语言  138 UML概述 138 UML的发展历史 139 UML的应用领域 139 UML的结构 140 结构概述 141 事物 141 关系 143 图形 144 用例图 145 类图和对象图 147 交互图 148 顺序图 148 通信图 149 定时图 150 状态图 150 活动图 151 基本活动图 152 带泳道的活动图 152 交互概览图 153 构件图 154 部署图 155 使用UML建模 156 使用UML的扩展机制 159 思考题 162第 6 章:可扩展标记语言  163 XML概述 163 XML的特点 164 XML的作用 166 XML的应用 167 解析XML 168 CSS与XSL 172 XML与HTML的区别 169 XML文档 169 XML编程接口 175 API接口 175 XML开发工具 177 XML建模 178 基于XML的软件体系结构描述语言 179 XA
2019-12-21 20:04:42 39.56MB 软件工程 架构 体系结构 方法
1
代码阅读方法与实践(中英文版及源代码)
2019-12-21 20:03:12 16.3MB 源代码 设计模式 软件工程 项目管理
1
系统架构师指定教材 更多资料点开我的资料里查找
(1)在软件开发出来之前,用户自己也不清楚软件的具体需求。(2〕用户对软件需求的描述不精确,可能有遗漏、有二义性、甚至有错误。(3〕在软件开发过程中,用户还提出修改软件功能( function)、界面( interface)、支撑环境( environment)等方面的要求(4)软件开发人员对用户需求的理解与用户本来愿望有差异2、缺乏正确的理论指导缺乏有力的方法学和工具方面的支持。由于软件不同于大多数其他工业产品,其开发过程是复杂的逻辑思维过程,其产品极大程度地依赖于开发人员高度的智力投入。由于过分地依靠程序设计人员在软件开发过程中的技巧和创造性,加剧软件产品的个性化,也是发生软件危机的一个重要原3、软件规模越来越大随着软件应用范围的增广,软件规模愈来愈大。大型软件项目需要组织一定的人力共同完成,而多数管理人员缺乏开发大型软件系统的经验,而多数软件开发人员又缺乏管理方面的经验。各类人员的信息交流不及时、不准确、有时还会产生误解。软件项目开发人员不能有效地、独立自主地处理大型软件的全部关系和各个分支,因此容易产生疏漏和错误。4、软件复杂度越来越高软件不仅仅是在规模上快速地发展扩大,而且其复杂性〔 complexity)也急郾地增加。软件产品的特殊性和人类智力的局張性,导致人们无力处理“复杂问题”。所谓“复杂问题”的概念是相对的,一旦人们采用先进的组织形式、开发方法和工具提高了软件开发效率和能力,新的、更大的、更复杂的问题又摆在人们的面前。第1章:软件体系结构概论如何克服软件危机人们在认真地研究和分析了软件危机背后的真正原因之后,得出了“人们面临的不单是技术问题,更重要的还是管理问题。管理不善必然导致失败”的结论,便开始探索用工程的方法进行软件生产的可能性,即用现代工程的概念、原理、技术和方法进行计算机软件的开发、管理和维护。于是,计算机科学技术的一个新领域——软件工程( software engineering)诞生了软件工程是用工程、科学和教学的原则与方法硏制、维护计算机软件的有关技术及管理方法。软件工程包括三个要素:方法、工具和过程,其中软件工程方法为软件开发提供了“如何做”的技术,是完成软件工程项目的技术手段。软件工具是人们在开发软件的活动中智力和体力的扩展和延伸,为软件工程方法提供了自动的或半自动的软件支撑环境。软件工程过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。迄今为止,软件工程的研究与应用已经取得很大成就,它在软件开发方法、工具、管理等方面的应用大大缓解了软件危机造成的被动局面。第1章:钦件体系结构概论构件与软件重用尽管当前社会的信息化过程对软件需求的增长非常迅速,但目前软件的开发与生产能力却相对不足,这不仅造成许多急需的软件迟迟不能被开发出来,而且形成了软件脱节现象。自20世纪60年代人们认识到软件危机、并提岀软件工程以来,已经对软件开发问题进行了不懈的硏究。近年来人们认识到,要提高软件开发效率,提高软件产品质量,必须采用工程化的开发方法与工业化的生产技术。这包括技术与管理两方面的问题:在技术上,应该采用基于重用(英文单词为“ reuse",有些文献翻译为“复用″)的软件生产技术;在管理上,应该采用多维的工程管理模式。近年来,人们认识到,要真正解决软件危机,实现软件的工业化生产是唯一可行的途径。分析传统工业及计算机硬件产业成功的模式可以发现,这些工业的发展模式均是符合标准的零部件/构仵(英文单词为" component",有些文献翻译为“组件”或“部仵件”)生产以及基于标准构件的产品生产,其中,构件是核心和基础,重用是必需的手段。实践表明,这种模式是产业工程化、工业化的成功之路,也将是软件产业发展的必经之路。软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相近软件元素的过程。软件元素包括程序代码、测试用例、设计文档、设计过程、需求分析文档甚至领域( domain)知识。通常,把这种可重用的元素称作软构件( software component),简称为构件。可重用的软件元素越大,就說重用的粒度( granularity)越大。使用软件重用技术可以减少软件开发活动中大量的重复性工作,这样就能提高软件生产率,降低开发成本,缩短开发周期。同时,由于软枃件大都经过严格的质量认证,并在实际运行环境中得到检验,因此,重用软构件有助于改善软件质量。此外,大量使用软构件,软件的灵活性和标准化程度也能得到提高。第1章:软件体系结构论构件模型及实现一般认为,构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语乂描述、通讯接口和实现代码的复合体。简单地说,构件是具有定的功能,能够独立工作或能同其它构件装配起來协凋工作的程序体,构件的使用同他的开发、生产无关,从拍象程度来看,面向对象( Object Orientation.OO)技术已达到了类级重用(代码重用),它以类为封装的单位。这样的重用粒度还太小,不足以解决异构互操作和效率更高的重用。构件将抽象的程度提到一个更高的层次,它是对一组类的组合进行封装,并代表完成一个或多个功能的特定服务,也为用户提供了多个接口。整个构件隐藏了具体的实现,只用接口对外提供服务构件模型(mode)是对构件本质特征的抽象措述。目前,国际上已经形成了许多构件樸型这些模型的目标和作用各不相同,其中部分模型属于参考模型(例如,3模型),部分模型属于描述模型(例如, RESOLVE模型和REB○OT模型)。还有一部分模型属于实现模型。近年来,已形成三个主要流派,分别是OMG( Object Management Group,对象管理组织)的 CORBA( Common Object Request Broker Architecture,通用对象请求代理结构)、Sun的EJBEnterprise Java Bean)和 Microsoft的DcoM( Distributed Component Object Model,分布式构件对象模型)。这些实现模型将构件的接口与实现讲行了有效的分离,提供了构件交互Interaction)的能力,从而增加了重用的机会,并适应了目前网络环境下大型软件系统的需要。国内许多学者在构件模型的硏究方面做了不少的工作,取得了一定的成绩,其中较为突出的是北京大学杨芙清院土等人提岀的“青哆构件模型″,下面,就以这个模型为例。青鸟构件模型充分吸收了上述模型的优点,并与它们相容。青鸟构件模型由外部接口interface)与内部结构两部分组成,如图1-1所示多蚊化属构件名称力能描述具体成品拟成所需到均件D图1-1青乌构件模型1、外部接口构件的外音接口是指构件向其重用者提供的基本信息,包括:构件名称、功能描述、对外功能接口、所需的构件、参数化属性等。外部接口是构件与外部世界的一组交互点,说明了构件所提供的那些服务(消息、操作、变量2、内部结构构件的内音结构包括两方面内容:内部成员以及内部成员之间的关系。其中内部成员包括具体成员与虚找成员,而成员关系包括内部成员之间的互联,以及内部成员与外部接口之间的互联构件实现是指具体实现构件功能的逻辑系统,通常也称为代码构件。构件实现由构件生产者完成,构件重用者则不必关心构件的实现细节。重用者在重用构件时,可以对其定制,也可以对其特例化。第1章:软件体系结构概论构件获取存在大量的可重用的构件是有效地使用重用技术的前提。通过对可重用信息与领域的分析,可以得到:(1)可重用信息具有领域特定性,即可重用性不是信息的一种孤立的属性,它依赖于特定的问题和特定的问题解决方法。为此,在识别( identify)、获取( capture)和表示( represent)可重用信息时,应采用面向领域的策略。(2)领域具有内聚性( cohesion)和稳定性( stability),即关于领域的解决方法是充分内聚和充分稳定的。一个领域的规约和实现知识的內聚性,使得可以通过一组有限的、相对较少的可重用信息来解决大量问题。领域的稳定性使得获取的信息可以在較长的时间内多次重用领域是一组具有相似或近软件需求的应用系统所覆盖的功能区域,领域工程( domainengIneering)是一组相似或相近系统的应用工程( application engineering)建立基本能力和必备基础的过程。领域工程过程可划分为领城分析、领域设计和领域实现等多个活动,其中的活动与结果如图12所示析领需求建立青足领域需求的代码紉实现百的女性及变化性向领烛的构兰了域工程领域分析领域计领城实现领城需可重用吻伴件医图1-2领域工程中的活动与结果在建立基于构件的软件开发( component- Based Software Development,CBSD)中,构件获取可以有多种不同的途径(1)从现有构件中获得符合要求的构件,直接使用或作适应性〔 flexibility)侉改,得到可重用的构件。(2)通过遇留工程( legacy engineering),将具有潜在重用价值的构件提取出来,得到可重用的构件(3)从市场上购买现成的商业构件,即COTS( Commercial off- The-Shell)构件。(4)开发新的符合要求的构件。一个组织在进行以上决策时,必须考虑到不同方式获取构件的一次性成本和以后的维护成本,然后做出最优的选择。第1章:软件体系结构概论构件管理对大量的构件进行有效的管理,以方便构件的存储、检索和提取,是成功重用构件的必要保证。构件管理的内容包括构件描述、构件分类、构件库组织、人员及权限管理和用户意见反馈等。、构件描述构件模型是对构件本质的抽象描述,主要是为构件的制作与构件的重用提倛依据;从管理角度岀发,也需要对构件进行描述,例如:实现方式、实现体、注释、生产者、生产日期、大小、价格、版本和关联构件等信息,它们与构件模型共同组成了对构件的完整描述2、构件分类与组织为了给使用者在查询构件时提供方便,同时也为了更好地重用构件,就必须对收集和开发的构件进行分类( classif)并置于构件库的适当位置。构件的分类方法及相应的庳结构对构件的检索和理解有极为深刻的影响。因此,构件库的组织应方便构件的存储和检索。可重用技术对构件库组织方法的要求是:1〕支持构件库的各种维护动作,如增加、删除以及修改构件,尽量不要影响构件库的结构。(2)不仅要支持精确匹配,还要支持相似构件的查找。(3)不仅能进行简单的语法匹配,而且能够查找在功能或行为方面等价或相似的构件。(4)对应用领域具有较强的描述能力和较好的摧述精度。(5)库管理员和用户容易使用目前已有的构件分类方法可以归纳为三大类,分别是关键字分类法、刻面分类法和超文本组织方法。(1)关键字分类法关键字分类法( keyword classification)是一种最简单的构件库组织方法,其基本思想是:根据领域分析的结果将应用领域的概念按照从抽象到具体的顺序逐次分解为树形或有向无回路图结构。每个概念用一个描述性的关键字表示。不可分解的原子级关键字包含隶属于它的某些构件。图1-3给出了构件库的关键字分类结构示例,它支持图形用户界面设计。图形用户界面窗单对话框葶处玨信键盘点图形窗匚窗匚处理图1-3关键字分类结构示例当加入构件时库管理员必须对构件的功能或行为讲行分析,在浏览上述关键字分类结构的同时将构件置于最合适的原子级关键字之下。如果无法找到构件的属主关键字,可以扩充现有的关键宇分类结构,引进新的关键字。但库管理员必须俣证,新关键字有相同的领域分析结果作为支持例如,如果需要增加一个“图形文字混合窗口“构件时,则只需把该构件放到属主关键字“窗口”的下一级(2)刻面分类法刻面分类法( faceted classification)的主要思想来涼于图书馆学,这种分类方法是 PrietoDiaz和 Freeman在1987年提出来的。在刻面分类机制中,定义若干用于刻画构件特征的“面”facet),每个面包含干概念,这些柢念表述构件在面上的特征。刻面可以描述构件抹行的功能、被操作的数据、构件应用的语境或仼意其他特征。描述构件的刻面的集合称为刻面描述符facet descriptor),通常,刻面描述被限定不超过7或8个刻面。当描述符中出现空的特征值时表示该构件没有相应的面。作为一个简单的在构件分类中使用刻面的例子,考志使用下列构件描述符的模式:i function object type, system type刻面描述符中的每个刻面可含有一个或多个值,这些值一般是描述性关键词,例如,如果功能是某构件的刻面,赋给此刻面的典型值可能是function =(copy, from)or(copy, replace, all)多个刻面值的使用使得原函数copy能够被更完全地细化。关键词(恒)被赋给重用库中的每个构件的刻面集,当软件工程师在设计中希望查询构件库以发现可能的构件时,规定一列值然后到库中寻找匹配项。可使用自动工具以完成同乂词词典功能,这使得查找不仅包括软件工程师给出的关键词,还包括这些关键词的技术同义词。作为一个例子,青鸟构件库就是采用刻面分类方法对构件进行分类的,这些刻画包括(i)使用环境。使用(包括理解/组装/修改)该构件时必须提供的硬件和软件平台( platform)。ⅱ〕应用领域。构件原来或可能被使用到的应用领域(及其子领域)的名称。(ⅲi)功能。在原有或可能的软件系统中所提供的软件功能集合。(ⅳ∽)层次。构件相对于软件开发过程阶段的抽象层次,如分析、设计、编码等。(ⅴ)表示方法。用来描述构件内容的语言形式或媒体,如源代码构件所用的编程语言环境等。关键字分类法和刻面分类法都是以数据库系统作为实现背景。尽管关系数据库可供选用,但面向对象数据库( object- oriented database)更适于实现构件库,因为其中的复合对象、多重继承inheritance)等机制与表格相比更适合描述构件及其相互关系。(3)超文本组织方法超文本方法( hypertext classification}与基于数据库系统的构件库组织方法不同,它基于全文检索( full text search)技术。其主要思想是:所有构件必须辅以详尽的功能或行为performance)说明文档;说明中出现的重要概念或构件以网状链接方式相互连接;检索者在阋读文档的过程中可按照人类的联想思维方式任意跳转到包含相关概念或构件的文档;全文检索系统将用户给出的关键字与说明文档中的文字进行匹配,实现构件的浏览式检索。超文本是一种非线性的网状信息组织方法,它以结点为基本单位,链作为结点之间的联想式关联,如图1-4所示图1-4超文本结构示意图一般地,结点是一个信息块。对可重用构件而言,结点可以是域概念、功能或行为名称、构件名称等。在图形用户界面上,结点可以是字符串,也可以是图象、声音和动画等。超文本组织方法为构造构件和重用构件提供了友好、直观的多媒体方式。由于网状结构比较自由、松散,因此,超文本方法比前两种方法更易于修改构件库的结构。例如, Windows环境下的联机帮助系统就是一种典型的超文本系统。为构造构件的文档,首先要根据领域分析的结果在说明文档中标识超文本结点并在相关文档中建立链接关系,然后用类似于联机帮助系统编译器的工具对构件的说明文档讲行编译,最后用相应的工具(例如:IE浏览器)运行编译后的目标即可。如果把软件系统看成是构件的集合,那么从构件的外部形态来看,构成—个系统的构件可分为5(1)独立而成熟的构件。独立而成熟的构件得到了实际运行环境的多次检验,该类构件隐藏了所有接口,用户只需用规定好的命令进行使用。例如,数据库管理系统和操作系统等。(2)有限制的构件。有限尙的构件提供了接口,指岀了使用的条件和前提,这种构件在装配时,会产生资源中突、覆盖等影响,在使用时需要加以测试。例如,各种面向对象程序设计语言中的基础类库等。(3〕适应性构件。适应性构件进行了包装或使用了接口技术,把不秉容性、资源冲突等进行了处理,可以直接使用。这种构件可以不加修改地使用在各种环境中。例如 Activex等。(4)装配的构件。装配( assemble)的构件在安装时,已经装配在操作系统、数据库管理系统或信息系统不同层次上,使用胶水代码( glue code)就可以进行连接使用。目前一些软件商提供的大多数软件产品都属这一类。5〕可修改的构件。可修改的构件可以讲行版本替换。如果对原构件修改错误、增加新功能可以利用重新“包装”或写接口来实现构件的晳换。这种构件在应用系统开发中使用得比较多。3、人员及权限管理构件库系统是一个开放的公共构件共亨机制,任何使用者都可以通过网络访问构件库,这在为使用者带来便利的同时,也给系统的安全性带来了一定的风险,因此有必要对不同使用者的访问权跟( privilege)作出适当的限制,以保证数据安全。一般来讲,构件库系统可包括五类用户,即注册用户、公共用户、构件提交者、一殷系统管理员和超级系统管理员。他们对构件库分别有不同的职责和权限,这些人员相互协作,共同维护着构件库系统的正常运作。同时,系统为每一种操作定义一个权限,包括提交构件、管理构件、查询构件及下载构件。每一用户可被赋予—项或多项操作权限,这些操作权限组合形成该人员的权限,从而支持对操作的分工,为权艰分配提供了灵活性第1草:软件体系结枃概论构件重用构件开发的目的是重用,为了让构件在新的软件项目中发挥作用,库的使用者必须完成以下工作:检索与提取构件,理解与评价构件、修改构件,最后将构件组装到新的软件产品中1、检索与提取构件构件库的检索方法与组织方式密切相关,因此,本节针对1.2.3节介绍的关键字分类法、刻面分类法和超文本组织方法分别讨论相应的检索方法。(1)基于关键字的检索这种简单检索方法的基本思想是:系统在图形用户界面上将构仵库的关键字树形结构直观地展示给用户;用户通过对树形结构的逐级浏览寻找需要的关键字并提取相应的构件。当然,用户也可直接给出关键字(其中可含通配符),由系统自动给出合适的候选构件清单这种方法的优点是简单、易于实现,但在某些场合没有应用价值,因为用户往往无法用构件库中已有的关键字描述期望的构件功能或行为,对库的浏览也容易使用户迷失方向。(2)刻面检索法该方法基于刻面分类法,由三步构成:第一步:构造查询。用户提供要查找的构件在每个刻面上的特征,生成构件描述符。此时,用户可以从构件库已有的概念中进行挑诜,也可将某些特征值指定为空。系统在检索过程中将忽略特征值为空的刻面第二步:检索构件。实现刻面检索法的计算机辅助软件工程( Computer Aided SoftwareEngineering,CASE)工具在构件库中寻找相同或相近的构件描述符及相应的构件第三步:对构件进行排序。被检索岀来的构件清单除按相似程度排序外,还可以按照与重用有关的度量信息排序。例如,构件的复杂性,可重用性,已成功的重用次数等。这种方法的优点是它易于实现相似构件的查找,但用户在构造查询时比较麻烦(3)超文本检索法超文本检索法的基本步骤是:用户首先给出—个或数个关键字,系统在构件的说明文档中进行精确或模糊的语法匹配,匹配成功后,向用户列岀相应的构件说明。如1.2.3节所述,构件说明是含有许多超文本结点的正文,用户阅读这些正文时可实现多个构件说明文档之间的自由跳转,最终选择合适的构件。为了避免用户在跳转过程中迷失方向,系统可以通过图形界面提供浏览历史信息图,允许将特定画面定义为命名“书签”并随时跳转至“书签”,并帮助用户逆跳转路径而逐步返这种方法的优点是用户界面友好,但在某些情况下用户难以在超文本浏览过程中正确选取构件(4)其他检索方法上述检索方法基于语法( syntax)匹配,要求使用者对构件库中出现的众多词汇有较全面的把握、较精确的理解。理论的检索方法是语义( semantic)匹配:构件库的用户以形式化formalization)手段描述所需要的构件的功能或行为语义,系统通过定理证明及基于知识的推理过程寻找语义上等价或相近的构件。遗憾的是,这种基于语义的检索方法涉及许多人工智能〔 artificial intelligence)难颎,目前尚难于支持大型构件库的工程实现。2、理解与评价构件要使库中的构件在当前的开发项目中发挥作用,准确地理解构件是至关重要的。当开发人员需要对构件进行某些修改时,情况更是如此。考虑到设计信息对于理解构件的必要性以及构件的用户逆向发掘设计信息的困难性,必须要求构件的开发过程遵循公共软件工程规范,并且在构件库的文档中,全面、准确地说明以下内容(1)构件的功能与行为(2)相关的领域知识。(3)可适应性约束条件与例外情形。(4)可以预见的修改部分及修改方法
2019-12-21 19:58:42 36.09MB 系统架构师
1
软件体系结构原理、方法与实践(第2版).张友生(带书签文字版)
2019-12-21 19:58:25 33.65MB 软件体系结构
1
从事眼动跟踪研究必不可少的一本书 值得拥有
2019-12-21 19:47:09 16.7MB 眼睛跟踪 方法学 实践
1
围绕软件测试的核心概念,介绍了软件测试的基本方法和过程,并通过丰富的案例予以实践。全书共三部分。第一部分软件测试概述,对软件测试的核心概念与思想(软件缺陷、测试用例、自动化测试)展开初步的讨论和测试实践。第二部分软件测试技术,详细讨论了传统的黑盒测试方法和白盒测试方法,针对每种测试方法均按照基本原理、测试用例设计和捉虫实践的顺序依次展开阐述;对应黑盒测试和白盒测试给出了综合案例实践。第三部分软件测试应用,从测试实施的角度,分为单元测试、集成测试和系统测试三个阶段进行讨论;最后提供了综合应用案例实践,从自动化测试的角度,结合单元测试工具、功能测试工具和性能测试工具,讨论自动化测试的设计与实施。
2019-12-21 19:40:19 8.4MB 电子教案
1
代码阅读有自身的一套技能,重要的是能够确定什么时候使用哪项技术。本书中,作者使用600多个现实的例子,向读者展示如何区分好的(和坏的)代码,如何阅读,应该注意什么,以及如何使用这些知识改进自己的代码。养成阅读高品质代码的习惯,可以提高编写代码的能力。 阅读代码是程序员的基本技能,同时也是软件开发、维护、演进、审查和重用过程中不可或缺的组成部分。本书首次将阅读代码作为一项独立课题,系统性地加以论述。本书引用的代码均取材于开放源码项目——所有程序员都应该珍视的宝库。本书围绕代码阅读,详细论述了相关的知识与技能。“他山之石、可以攻玉”,通过仔细阅读并学习本书,可以快速地提高读者代码阅读的技能与技巧,进而从现有的优秀代码、算法、构架、设计中汲取营养,提高自身的开发与设计能力。 本书适用于对程序设计的基本知识有一定了解,并想进一步提高自身开发能力的读者。
2019-12-21 19:21:20 37.94MB 代码阅读
1
软件工程-理论、方法与实践答案(由孙家广、陈强编著)有详细解析和附加选择题
2019-12-21 18:51:15 2.17MB 软件工程 答案 (孙家广、 陈强)
1