软件工程及软件方法学
-
软件工程钟珞《软件工程》面向普通高等院校本科教学的需要及软件工程技术的发展。主要内容包括:软件工程概述、可行性研究和需求定义、需求分析、系统设计、详细设计、程序编码、软件测试、软件维护、软件项目计划与管理、软件过程能力成熟度模型CMM、软件的可靠性及软件工具及环境。本书主要特色在于理论、方法与应用相结合,不仅对软件的分析、设计、开发到维护过程进行全面地讲述,而且配有丰富的实例。除了对传统的软件工程方法进行讲述外,还增添了面向对象的软件工程方法、CMM成熟度模型以及软件工具与环境等较为成熟的内容。本书概念清楚,内容丰富,每章配有小结和习题,便于教学和学习。本书可供高校本科生学习与后续技术开发使用,也可供广大计算机爱好者阅读。 -
软件工程李伟波、刘永祥、王庆春传统理论体系的基础上,融入当前软件工程的最新发展和技术,系统地介绍了软件工程的概念、原理、方法和技术。全书深入浅出,循序渐进,具有很强的可读性。本书系统地介绍了软件工程的概念、原理、方法和技术。全书共12章,第1章至第5章按生命周期模型顺序介绍软件开发计划、需求分析、设计、编码和测试;第6章至第8章介绍面向对象的方法及UML建模语言;第9章介绍软件维护;第10章介绍软件质量、软件工程标准化、ISO 9000标准及质量认证;第11章介绍软件项目管理和软件能力成熟度模型CMM;第12章介绍常用的软件工程工具与软件开发环境。本书在介绍传统理论体系的基础上,融入当前软件工程的最新发展和技术,深入浅出,循序渐进。为方便教学,每章都有学习目的与要求、小结及习题。本书可作为高等院校软件工程课程的教材或教学参考书,也可作为软件工程管理者和技术人员的参考书。 -
程序切片技术及其应用李必信编著本书主要介绍程序切片的起源和发展,程序切片技术的图论基础,程序切片的各种变体(如静态切片、动态切片、有条件切片、并发切片、面向对象程序的切片、体系结构切片和规约切片等),计算程序切片的各种方法,以及程序切片技术在软件调试、波动分析、软件测试、度量、重用、程序理解、逆向工程和软件安全等方面的应用,并讨论了程序切片技术的发展趋向。本书适合作为高等院校计算机软件专业学生学习"软件工程"、"软件分析与测试"等课程的参考书或工具书,也适合作为软件分析与测试研究人员的参考书。上篇程序切片技术基本原理第1章 概论1.1 程序切片技术的起源和发展1.1.1 从数据流方程到程序依赖图1.1.2 从可执行的程序切片到不可执行的程序切片1.1.3 静态切片、动态切片和有条件切片1.1.4 后向切片和前向切片1.1.5 从源程序代码切片到软件规约切片1.1.6 从单一切片到多种切片1.2 程序切片技术的应用概述1.2.1 程序调试1.2.2 软件维护1.2.3 同归测试1.2.4 软件度量1.2.5 软件重用1.2.6 软件安全1.3 程序切片工具简介1.3.1 支持C语言的PST1.3.2 支持Ada语言的PST1.3.3 支持Oberon-2语言的PST1.3.4 支持Java语言的PST1.3.5 其他PST小结思考题参考文献第2章 图论基础2.1 控制流图2.1.1 基本模块2.1.2 控制流图定义2.1.3 基本属性2.2 控制流分析2.2.1 控制流2.2.2 控制流的表示方法2.2.3 支配节点和后必经节点2.2.4 循环识别2.3 数据流分析2.3.1 可到达定义2.3.2 数据流方程2.3.3 活性分析2.4 数据依赖和控制依赖2.4.1 控制依赖2.4.2 数据依赖2.5 程序依赖图2.5.1 过程内依赖图2.5.2 过程间依赖图小结思考题参考文献第3章 静态程序切片3.1 引言3.2 Mark weiser程序切片3.2.1 初步理解3.2.2 基本术语3.2.3 Mark weiser的数据流算法3.3 过程内切片3.3.1 构造程序依赖图3.3.2 图可达性算法3.3.3 例子分析3.4 过程间切片3.4.1 构造系统依赖图3.4.2 构造特征子图的算法3.4.3 过程间切片的算法小结思考题参考文献第4章 动态程序切片4.1 引言4.2 基本术语4.2.1 程序依赖图和静态切片4.2.2 执行历史和动态切片准则4.3 Agrawal和Horgan的动态切片4.3.1 动态切片方法14.3.2 动态切片方法24.3.3 动态切片方法34.3.4 动态切片方法44.4 Korel和Laski的动态切片小结思考题参考文献第5章 有条件程序切片5.1 引言5.2 有条件切片5.2.1 准静态切片5.2.2 同时动态切片5.2.3 一般的有条件切片模型5.2.4 有条件切片计算5.3 切片模型关系分析5.4 分割分析小结思考题参考文献第6章 面向对象程序切片6.1 引言6.2 传统系统依赖图的缺陷分析6.3 面向对象系统依赖图6.3.1 OOSDG的基本组成模型6.3.2 OOSDG对SDG的扩充6.3.3 类依赖图6.3.4 虚函数调用图的构造6.3.5 OOSDG的构造算法6.3.6 基于OOSDG的程序切片算法小结思考题参考文献第7章 并发程序切片7.1 引言7.2 Cheng的并发程序切片思想7.3 Krinke多线程程序静态切片方法7.3.1 线程控制流图7.3.2 线程程序依赖图7.3.3 基于tPDG的切片7.4 Nanda和Ramesh的并发程序切片方法7.5 并发程序的动态切片7.5.1 进程图和静态程序依赖图7.5.2 进程图到并发图7.5.3 构建DPDG7.6 面向对象并发程序的切片方法7.6.1 Zhao的早期方法7.6.2 Java并发程序的切片方法小结思考题参考文献第8章 规约切片8.1 形式规约切片8.1.1 静态形式规约切片8.1.2 动态形式规约切片8.1.3 其他形式规约切片8.2 基于规约的程序切片8.2.1 前置和后置条件8.2.2 基于规约的切片8.3 体系结构规约切片8.3.1 体系结构规约8.3.2 体系结构切片定义8.3.3 体系结构信息流图和体系结构切片的计算8.4 动态软件体系结构切片8.5 JVM规约切片小结思考题参考文献第9章 新型切片变体9.1 无定型切片9.1.1 程序投影9.1.2 无定型简单性度量9.1.3 无定型静态切片9.1.4 无定型有条件切片9.1.5 无定型切片的实现以及相关问题9.2 削片9.2.1 静态削片9.2.2 动态削片9.2.3 削片的性质和构造策略9.3 砍片小结思考题参考文献中篇程序切片技术的基本应用第lO章 程序调试10.1 引言10.1.1 什么是程序渊试10.1.2 为什么用切片进行调试10.2 如何用切片辅助程序调试10.2.1 调试中的错误分析及切片选取10.2.2 面向对象程序切片与调试10.3 基于切片的调试工具10.3.1 C-Debug10.3.2 SPYDER小结思考题参考文献第11章 波动分析11.1 引言11.2 程序切片与REA过程11.3 后向切片存在的必要性11.3.1 定义修改11.3.2 使用修改11.3.3 控制修改11.4 程序切片运算11.5 直接波动和诱导波动11.5.1 通用程序切片11.5.2 REA例子小结思考题参考文献第12章 软件测试12.1 引言12.2 基于程序切片的软件测试12.2.1 例子简介12.2.2 依赖图模型12.2.3 基本性质12.3 回归测试12.3.1 受影响的定义一使用关系类型12.3.2 BackwardWalk算法12.3.3 ForwardWalk算法12.3.4 进一步讨论12.3.5 回归测试的一般步骤12.4 基于切片技术的软件测试工具模型小结思考题参考文献第13章 软件维护13.1 引言13.2 软件维护模型13.3 分解切片与软件维护13.3.1 分解切片13.3.2 使用分解切片的几条规则13.4 联合切片与软件维护13.4.1 联合切片13.4.2 利用联合切片维护软件13.5 基于切片的软件维护模型小结思考题参考文献第14章 复杂性度量14.1 引言14.2 早期基于切片的度量14.3 内聚度量14.3.1 数据切片14.3.2 胶水、强力胶水和粘性14.3.3 内聚度量14.3.4 类内切片和类内聚14.4 耦合度量14.4.1 Java源代码中存在的耦合问题分析14.4.2 基于切片的Java耦合度量框架小结思考题参考文献第15章 软件安全15.1 引言15.2 软件安全分析的几种常用方法15.2.1 失效模式效应分析法15.2.2 软件故障树分析法15.2.3 Petri网分析法15.3 临界安全组件与软件故障树分析15.3.1 共同模式失效问题15.3.2 临界安全组件15.4 基于程序切片的共同模式失效分析方法15.4.1 基本原理15.4.2 例子分析小结思考题参考文献第16章 软件重用16.1 引言16.2 转换切片Lj重用16.3 有条件切片与重用16.4 规约驱动切片与重用16.5 软件体系结构切片与重用小结思考题参考文献第17章 应用扩展17.1 程序分析理解17.1.1 Lucia等人的初步思想17.1.2 Korel的大型程序理解手段17.1.3 Kumar的CONCEPT技术17.2 逆向工程和再工程17.2.1 传统切片17.2.2 接口切片17.3 Tip的类型错误定位方法17.3.1 静态语义规约和类型检17.3.2 项重写和依赖追踪17.3.3 切片精确度问题17.4 程序验证17.5 其他应用小结思考题参考文献下篇程序切片技术展望第18章 层次切片模型及其实现18.1 面向对象程序的层次结构模型18.2 层次切片模型18.3 SSA算法的基本思想18.4 HSM和SSA的实现18.4.1 代码信息树18.4.2 依赖图的生成算法和切片算法18.5 Jato:Java程序切片工具18.5.1 依赖图生成层18.5.2 切片生成层18.6 层次切片复杂度小结思考题参考文献第19章 层次切片模型的应用19.1 静态信息流分析19.2 耦合度量19.2.1 方法m1和m2之间的耦合度量19.2.2 类c的耦合度量19.3 内聚度量19.3.1 子功能内聚19.3.2 功能内聚19.4 复杂度度量小结思考题参考文献第20章 结束语20.1 基本原理总结20.2 基本应用总结20.3 未来研究课题20.3.1 程序切片的形式语义20.3.2 无定型程序切片20.3.3 规约切片20.3.4 基于规约程序切片20.3.5 软件体系结构切片20.3.6 程序切片应用参考文献附录附录A 汉英名词对照附录B 缩略语英汉对照 -
实用软件工程(澳)马查斯泽克在实践中应该如何进行软件工程?如何开发现今的企业级应用?《实用软件工程(英文版)(附光盘1张)》用大量实例给出了答案。《实用软件工程(英文版)(附光盘1张)》讨论了如何将理论与行业实践联系起来,即集中精力进行系统设计和实现以及着手解决重要的实践问题。书中以一个主要的案例研究和两个小型的案例研究 (经过改编以适应教学的需要) 为中心展开叙述,提供了针对大型系统开发的软件工程,全面论述了开发生命周期、建模语言、工程工具、项目规划以及过程管理。通过主要案例研究的三次迭代,说明了迭代和增量式开发的概念。《实用软件工程(英文版)(附光盘1张)》特点●强调面向对象的建模和程序设计。●针对需求分析和详细设计,广泛使用UML和模式。●认识到数据库和数据工程在软件工程中的重要性。●解释组件和业务对象。●覆盖多层解决方案 (包括GUI和Web客户) ,通过Web和应用服务器扩展到数据库。●突出应用架构设计和重构。《实用软件工程(英文版)(附光盘1张)》将改变读者学习软件工程知识的方式,帮助IT专业人员改进软件开发实践,并带给读者新的开发思想和方向。随书光盘中包括软件开发工具、案例研究模型以及Java和数据库代码等。 -
中间件张志檩编中间件是构件化软件表现形式。中间件抽象了典型的应用,应用软件工程师可以基于标准的中间件再开发、定制和部署,而不是原有意义上的编程或设计,是软件构件化、装配化的具体实现。中间件产品应用的优点如下:提高应用软件开发效率,缩短开发周期,降低开发成本,提高开发质量;保护现有硬件、网络、软件资源,方便系统集成;便于系统升级、维护、扩充和移值,适应业务流程重组,延长应用软件的生命周期,降低运行维护成本。据国外公司估计,开发周期可缩短25%-50%,应用系统可节省系统资源75%,运行成本减少50%,而自行开发中间件则增加成本100工%-400%。编写此书的目的就是帮助软件人员、应用业务人员和信息系统建设方面的领导比较系统地学习中间件、了解中间件、研究中间件,进而主动地、自觉地、适时地应用、推广、普及中间件,并通过应用推动中间件产品的标准化、系列化、通用化、商品化,进而促进中国中间件软件产业的发展。 -
软件工程薛德黔本书以传统的软件工程和面向对象的软件工程为主线,根据软件开发“工程化”思想,通过大量的应用实例,系统地介绍软件工程的基本概念、基本原理、软件开发的过程、开发方法、应用技术和实用工具。主要包括可行性研究、需求分析、总体设计、详细设计、编码、测试、维护以及有关软件管理、软件开发工具和环境等方面的内容。本书力图反映软件工程领域的最新发展,并从实用性出发,各章节均结合实例讲解,深入浅出,使读者易于理解和掌握。.本书适合作为高等院校计算机专业及相关专业教材,也可供计算机软件开发和管理人员参考。... -
软件工程简明教程陆惠恩, 陆培恩编著本书着重从实用角度讲述软件工程的基本概念、原理、方法和工具,系统地介绍目前较成熟的、广泛使用的软件工程技术。具体内容包括有:软件工程概论,需求分析,系统设计与实现(概要设计、详细设计、界面设计与程序设汁),软件测试、验证与确认,软件维护,面向对象设计方法和UML的使用,软件工程管理技术,软件开发工具与集成化环境,软件开发实例等。本书不仅可作为应用型本科和高职高专计算机专业的教材,也可供从事计算机软件开发及应用的广大科技人员参考。软件工程已成为计算机科学的一个重要分支。本书着重从实用角度讲述软件工程的基本概念、原理、方法和工具,系统地介绍目前较成熟的、广泛使用的软件工程技术。本书内容包括:软件工程概论,需求分析,系统设计与实现(概要设计、详细设计、界面设计与程序设汁),软件测试、验证与确认,软件维护,面向对象设计方法和UML的使用,软件工程管理技术,软件开发工具与集成化环境,软件开发实例等。每章都有小结供读者复习总结,有习题供选用。本书可作为应用型本科和高职高专计算机专业的教材,也可供从事计算机软件开发及应用的广大科技人员参考。 -
软件工程与实践杨文元本书为高职高专计算机专业系列教材之一。全书分为四部分:第一部分是传统软件工程的基本知识;第二部分是面向对象内容,有面向对象的分析设计和实现、统一开发过程和统一建模语言UML以及用UML构建Web应用等内容;第三部分是软件项目管理,包括软件开发项目的管理和度量方法、软件项目维护、软件的质量保证以及极限编程方法等内容;第四部分是软件开发工具和软件工程实践,介绍UML实现工具Rational Rose的使用、软件分析设计工具PowerDesigner的使用以及用UML,设计图书馆图书借阅和预定管理的应用程序等,可供实践实训教学使用。 -
领域驱动设计(美)伊文斯(Evans, E.)著;陈大峰译“每个有思想的软件开发者的书架上都应该有这样一本书”——KentBeck“Eric设法收集了经验丰富的对象设计人员一直使用的一些设计过程,作为一个团队的人们在这些过程中却没能够成功地完成剩下的工作。人们将知识弄得支离破碎……却从来没有将建立领域逻辑的原则组织起来并使其系统化。这本书是非常重要的。”——KyleBrown,《EnterpriseJavaProgrammingwithIBMWebSphere》的作者。本书涉及的主题具体包括:●隔离领域●实体、值对象、服务和模块●一个领域对象的生命周期●将过程表示为领域对象●创建没有副作用的函数●总体轮廓●独立的类●扩展说明●应用分析模式●将设计模式与模型相联系●维护模型的完整性●设计领域前景声明●选择重构目标●职责层次●创建可插入的组件框架●结合大比例结构与界限上下文本书为读者系统地介绍了领域驱动的设计方法。书中介绍了大量优秀的设计示例、基于经验的技术以及促进处理复杂领域的软件开发的基本原则。本书将设计和开发实践相结合,在介绍领域驱动设计时,还提供了大量的Java示例,这些例子都是从实际中提取出来的,展示了领域驱动设计在软件开发中的实际应用。通过对本书的阅读,读者将获得对领域驱动设计的总体认识,了解领域驱动设计中涉及的关键原则、术语和推断。本书介绍的经验和标准模式将为开发团队提供一种通用语言。另外,书中还介绍了如何在领域模型中进行重构,如何与敏捷开发进行集成,如何获得对领域更深的认识并增进领域专家和程序员之间的交流等。并在此基础上,介绍了在复杂系统和较大组织中进行的领域驱动设计。 -
软件复杂性与质量控制张凯暂缺简介...
