软体工程——实践者之路


软体工程——实践者之路

文章插图
软体工程——实践者之路【软体工程——实践者之路】《软体工程——实践者之路》是2011年出版的图书,主要讲述了软体工程的套用 。
基本介绍书名:软体工程——实践者之路
ISBN:9787302128366
定价:79元
装帧:平装
基本信息印次:6-6印刷日期:2011-7-8图书简介本书从1982年的第1版开始,就受到软体工程界的重视,成为高等学校计算机专业软体工程课的重要教学参考书 。20多年来,它的各个后继版本一直都是软体专业人士熟悉的读物 。它在全面而系统、概括而清晰地介绍软体工程有关的概念、原则、方法和工具方面获得了广大读者的好评 。此外,本书在给出传统的、对学科发展具有深刻影响的方法时,又适当地介绍了当前发展的、且有着生命力的新技术 。本书第6版共32章,分为5个部分,分别属于5个专题:第一部分为软体过程,给出了软体过程的不同论点,考虑到所有重要的过程模型,涉及到传统的过程和(近年发展起来的)敏捷过程在指导思想上的争论 。第二部分为软体工程实践,给出了分析、设计和测试方法,其中重点讨论了面向对象技术和UML建模 。第三部分为套用Web工程,提供了Web套用系统的分析、设计和测试的全面工程方法 。第四部分为软体项目管理,给出的是与计画、管理和控制软体项目的人员关心的问题 。第五部分是软体工程的高级课题,涉及到形式化方法、净室软体工程、基于构件的软体工程、再工程以及软体工程未来的发展趋势等问题 。书籍目录目录第1章软体工程介绍 11.1软体角色的演化 21.2软体 41.3软体特性的变化 81.4遗产软体 101.4.1遗产软体的质量 111.4.2软体演化 111.5软体神话 131.6这一切是如何开始的? 151.7小结 16参考文献 17习题与思考题 17推荐读物与阅读信息 18第一部分软体过程第2章过程综述 202.1软体工程:一种层次化技术 212.2过程框架 222.3能力成熟度模型集成CMMI 272.4过程模式 312.5过程评估 342.6个人过程模型和团队过程模型 362.6.1个人软体过程 362.6.2团队软体过程 382.7过程技术 392.8产品与过程 402.9总结 41参考文献 42习题与思考题 43推荐读物与阅读信息 43第3章过程模型 453.1惯例过程模型 463.2瀑布模型 473.3增量过程模型 483.4演化过程模型 513.4.1原型开发 513.4.2螺旋模型 543.4.3并行开发模型 563.4.4演化模型的最终评述 573.5专用过程模型 593.5.1基于构件的开发 593.5.2形式化方法模型 603.5.3面向方面的软体开发 613.6统一过程 623.6.1简史 633.6.2统一过程的阶段 643.6.3统一过程工作产品 663.7小结 67参考文献 68习题与思考题 69推荐读物与阅读信息 70第4章敏捷视角下的过程 714.1敏捷是什幺? 734.2敏捷过程是什幺? 744.2.1敏捷开发的动机 754.2.2人的因素 764.3敏捷过程模型 774.3.1极限编程(eXtremeProgramming,XP) 784.3.2自适应软体开发(AdaptiveSoftwareDevelopment,ASD) 824.3.3动态系统开发方法(DynamicSystemDevelopmentMethod,DSDM) 844.3.4Scrum 854.3.5Crystal 874.3.6特徵驱动开发(FeatureDrivenDevelopment,FDD) 884.3.7敏捷建模(AgileModeling,AM) 894.4小结 91参考文献 92习题与思考题 93推荐读物与阅读信息 94第二部分软体工程实践第5章软体工程实践 965.1软体工程实践 975.1.1实践的精髓 975.1.2核心原则 995.2沟通实践 1015.3策划实践 1045.4建模实践 1075.4.1分析建模原则 1085.4.2设计建模原则 1095.5构造实践 1125.5.1编码原则和概念 1135.5.2测试原则 1145.6部署 1165.7小结 118参考文献 119习题与思考题 120推荐读物与阅读信息 120第6章系统工程 1226.1基于计算机的系统 1236.2系统工程层次结构 1256.2.1系统建模 1266.2.2系统仿真 1286.3业务过程工程概述 1296.4产品工程概述 1306.5系统建模 1326.5.1Hatley-Pirbhai建模 1336.5.2UML系统建模 1356.6小结 139参考文献 140习题与思考题 140推荐读物与阅读信息 141第7章需求工程 1427.1连线设计和构造的桥樑 1437.2需求工程任务 1447.2.1起始 1447.2.2导出 1457.2.3精化 1457.2.4协商 1467.2.5规格说明 1477.2.6确认 147 7.2.7需求管理 1487.3启动需求工程过程 1497.3.1确认共同利益者 1507.3.2识别多种观点 1507.3.3协同合作 1517.3.4首次提问 1517.4导出需求 1527.4.1协同收集需求 1537.4.2质量功能部署 1567.4.3用户场景 1577.4.4导出工作产品 1587.5开发用例 1597.6构建分析模型 1647.6.1分析模型的元素 1647.6.2分析模式 1687.7协商需求 1697.8确认需求 1717.9小结 172参考文献 172习题与思考题 173推荐读物与阅读信息 174第8章构建分析模型 1758.1需求分析 1768.1.1整体目标和原理 1778.1.2分析的经验规则 1788.1.3域分析 1788.2分析建模的方法 1798.3数据建模概念 1818.3.1数据对象 1818.3.2数据属性 1828.3.3关係 1828.3.4基数和形态 1838.4面向对象的分析 1858.5基于场景建模 1868.5.1编写用例 1868.5.2开发活动图 1918.5.3泳道图 1928.6面向流的建模 1948.6.1创建数据流模型 1948.6.2创建控制流模型 1978.6.3控制规格说明 1988.6.4处理规格说明 2008.7基于类的建模 2018.7.1识别分析类 2018.7.2描述属性 2048.7.3定义操作 2058.7.4类-责任-协作者(CRC)建模 2088.7.5关联和依赖 2148.7.6分析包 2158.8生成行为模型 2168.8.1识别用例事件 2178.8.2状态表现 2188.9小结 221参考文献 222习题与思考题 223推荐读物与阅读信息 224第9章设计工程 2269.1软体工程中的设计 2279.2设计过程和设计质量 2299.3设计概念 2339.3.1抽象 2339.3.2架构 2339.3.3模式 2349.3.4模组化 2359.3.5信息隐藏 2369.3.6功能独立 2369.3.7精化 2379.3.8重构 2389.3.9设计类 2399.4设计模型 2429.4.1数据设计元素 2439.4.2架构设计元素 2439.4.3接口设计元素 2449.4.4构件级设计元素 2469.4.5部署级设计元素 2479.5基于模式的软体设计 2489.5.1描述设计模式 2489.5.2在设计中使用模式 2499.5.3框架 249 9.6小结 250参考文献 251习题与思考题 251推荐读物与阅读信息 252第10章创建体系结构设计 25410.1软体体系结构 25510.1.1什幺是体系结构 25510.1.2为什幺体系结构如此重要 25610.2数据设计 25710.2.1体系结构级的数据设计 25710.2.2构件级的数据设计 25810.3体系结构风格和模式 25910.3.1体系结构风格的简单分类 26010.3.2体系结构模式 26410.3.3组织和精化 26510.4体系结构设计 26610.4.1系统的环境表示 26610.4.2定义原始模型 26810.4.3将体系结构精化为构件 26910.4.4描述系统实例 27110.5评估可选的体系结构设计 27210.5.1体系结构权衡分析方法 27210.5.2体系结构複杂性 27410.5.3体系结构描述语言 27410.6映射数据流到软体体系结构 27510.6.1变换流 27610.6.2事务流 27610.6.3变换映射 27710.6.4事务映射 28410.6.5精化体系结构设计 28810.7小结 288参考文献 289习题与思考题 290推荐读物与阅读信息 291第11章构件级设计建模 29211.1什幺是构件 29311.1.1面向对象的观点 29411.1.2传统观点 29511.1.3过程相关的观点 29811.2设计基于类的构件 29811.2.1基本设计原则 29911.2.2构件级设计指导方针 30211.2.3内聚性 30311.2.4耦合性 30511.3实施构件级设计 30711.4对象约束语言 31311.5设计传统构件 31511.5.1图形设计表??31611.5.2表格设计表示 31711.5.3程式设计语言 31811.5.4设计表示方法的比较 32011.6小结 321参考文献 322习题与思考题 322推荐读物与阅读信息 323第12章完成用户界面设计 32412.1黄金规则 32512.1.1置用户于控制之下 32512.1.2减轻用户的记忆负担 32712.1.3保持界面一致 32812.2用户界面的分析与设计 32912.2.1界面分析和设计模型 33012.2.2界面分析和设计过程 33112.3界面分析 33312.3.1用户分析 33312.3.2任务分析和建模 33512.3.3显示内容分析 34012.3.4工作环境分析 341 12.4界面设计步骤 34112.4.1套用界面设计步骤 34212.4.2用户界面设计模式 34312.4.3设计问题 34512.5设计评估 34912.6小结 351参考文献 351习题与思考题 352推荐读物与阅读信息 353第13章软体测试策略 35413.1软体测试的策略性方法 35513.1.1验证与确认 35613.1.2软体测试的组织 35613.1.3常规软体体系结构的测试策略 35813.1.4面向对象软体体系结构的测试策略 35913.1.5测试完成的标準 36013.2策略问题 36113.3传统软体的测试策略 36213.3.1单元测试 36213.3.2集成测试 36513.4面向对象软体的测试策略 37213.4.1面向对象语境?械牡ピ?测试 37213.4.2面向对象语境中的集成测试 37313.5确认测试 37413.5.1确认测试準则 37413.5.2配置评审 37413.5.3α测试与β测试 37413.6系统测试 37613.6.1恢複测试 37713.6.2安全测试 37713.6.3压力测试 37713.6.4性能测试 37813.7调试艺术 37913.7.1调试过程 37913.7.2心理因素 38113.7.3调试策略 38213.7.4错误改正 38413.8小结 384参考文献 385习题与思考题 385推荐读物与阅读信息 386第14章测试战术 38814.1软体测试基础 38914.2黑盒测试与白盒测试 39114.3白盒测试 39214.4基本路径测试 39314.4.1流图表示 39314.4.2独立程式路径 39414.4.3测试用例的设计 39614.4.4图矩阵 39914.5控制结构测试 40014.5.1条件测试 40014.5.2数据流测试 40014.5.3循环测试 40114.6黑盒测试 40214.6.1基于图的测试方法 40314.6.2等价划分 40514.6.3边界值分析 40614.6.4正交数组测试 40714.7面向对象测试方法 41014.7.1OO概念的测试用例设计的含义 41014.7.2传统测试用例设计方法的可套用性 41114.7.3基于故障的测试 41114.7.4测试用例与类层次 41214.7.5基于场景的测试 41214.7.6表层结构和深层结构??测试 41414.8类层次可套用的测试方法 41514.8.1面向对象的随机测试 41514.8.2类层次的分割测试 41614.9类间测试用例设计 417 14.9.1多个类测试 41714.9.2从行为模型中生成的测试 41814.10针对特定环境、体系结构和套用的测试 42014.10.1用户界面测试 42014.10.2客户/伺服器体系结构 42014.10.3测试文档和帮助设施 42114.10.4实时系统的测试 42214.11测试模式 42414.12小结 425参考文献 426习题与思考题 427推荐读物与阅读信息 428第15章产品度量 42915.1软体质量 43015.1.1McCall的质量因素 43115.1.2ISO9126质量因素 43215.1.3向量化视图的变迁 43315.2产品度量框架 43415.2.1测度、度量和指标 43415.2.2产品度量的挑战 43415.2.3测量原则 43515.2.4面向目标的软体测量 43615.2.5有效软体度量的属性 43715.2.6产品度量风景 43815.3分析模型的度量 44015.3.1基于功能的度量 44015.3.2规格说明质量的度量 44415.4设计模型的度量 44515.4.1体系结构设计度量 44515.4.2面向对象设计的度量 44815.4.3面向类的度量--CK度量套 44915.4.4面向类的度量--MOOD度量套 45215.4.5Lorenz与Kidd提出的面向对象度量 45315.4.6构件级设计度量 45415.4.7面向操作的度量 45615.4.8用户界面设计度量 45715.5原始码的度量 45815.6测试的度量 45915.6.1套用于测试的Halstead度量 45915.6.2面向对象测试的度量 45915.7维护的度量 46015.8小结 461参考文献 462习题与思考题 464推荐读物与阅读信息 465第三部分套用Web工程第16章Web工程 46816.1基于Web的系统及套用的特点 46916.2WebApp工程的层次 47216.2.1过程 47216.2.2方法 47316.2.3工具与技术 47416.3Web工程过程 47416.3.1定义框架 47516.3.2精化框架 47716.4Web工程的最佳实践 47816.5小结 479参考文献 480习题与思考题 480推荐读物与阅读信息 481 第17章开始一个WebApp项目 48217.1表达基于Web的系统 48317.1.1表达问题 48317.1.2WebApp的需求收集 48517.1.3分析模型的过渡 48917.2策划Web工程项目 49017.3Web工程团队 49117.3.1人员 49117.3.2组建团队 49217.4Web工程的项目管理问题 49317.4.1WebApp策划--外包 49417.4.2WebApp策划--内部Web工程 49817.5Web工程与WebApp的度量 50017.5.1Web工程工作的度量 50117.5.2评估商业价值的度量 50217.6WebApp项目的"最坏实践" 50217.7小结 504参考文献 504习题与思考题 505推荐读物与阅读信息 506第18章WebApp分析 50718.1WebApp的需求分析 50818.1.1用户层次 50918.1.2开发用例 51018.1.3精化用例模型 51218.2WebApp的分析模型 51318.3内容模型 51318.3.1定义内容对象 51418.3.2内容关係与层次 51418.3.3WebApp的分析类 51518.4互动模型 51618.5功能模型 51918.6配置模型 52118.7关係导航分析 52118.7.1关係分析--关键问题 52218.7.2导航分析 52318.8小结 524参考文献 525习题与思考题 525推荐读物与阅读信息 526第19章设计WebApp 52719.1Web工程的设计问题 52819.1.1设计与WebApp质量 52819.1.2设计目标 53119.2WebE设计金字塔 53219.3WebApp界面设计 53319.3.1界面设计原则与指导方针 53419.3.2界面控制机制 53919.3.3界面设计工作流 53919.4美学设计 54119.4.1布局问题 54219.4.2美术设计问题 54219.5内容设计 54319.5.1内容对象 54319.5.2内容设计问题 54419.6体系结构设计 54519.6.1内容体系结构 54519.6.2WebApp体系结构 54719.7导航设计 54919.7.1导航语义 54919.7.2导航语法 55119.8构件级设计 55219.9超媒体设计模式 552 19.10面向对象的超媒体设计方法(OOHDM) 55419.10.1OOHDM的概念设计 55419.10.2OOHDM的导航设计 55519.10.3抽象界面设计与实现 55619.11WebApp的设计度量 55619.12小结 557参考文献 558习题与思考题 560推荐读物与阅读信息 561第20章WebApp测试 56220.1WebApp的测试概念 56320.1.1质量维度 56320.1.2WebApp环境中的错误 56420.1.3测试策略 56520.1.4测试计画 56620.2测试过程--概述 56620.3内容测试 56920.3.1内容测试的目标 56920.3.2资料库测试 57120.4用户界面测试 57320.4.1界面测试策略 57320.4.2测试界面机制 57420.4.3测试界面语义 57620.4.4可用性测试 57620.4.5兼容性测试 57820.5构件级测试 57920.6导航测试 58120.6.1测试导航语法 58120.6.2测试导航语义 58220.7配置测试 58320.7.1伺服器端问题 58420.7.2客户端问题 58420.8安全性测试 58520.9性能测试 58720.9.1性能测试的目标 58720.9.2负载测试 58820.9.3压力测试 58820.10小结 590参考文献 591习题与思考题 592推荐读物与阅读信息 593第四部分管理软体项目第21章项目管理 59621.1管理涉及的範围 59721.1.1人员 59721.1.2产品 59821.1.3过程 59821.1.4项目 59821.2人员 59921.2.1共同利益者 59921.2.2团队负责人 60021.2.3软体团队 60121.2.4敏捷团队 60421.2.5协调和通信问题 60521.3产品 60621.3.1软体範围 60621.3.2问题分解 60721.4过程 60821.4.1合併产品和过程 60821.4.2过程分解 60921.5项目 61021.6W5HH原则 61221.7关键实践 61221.8小结 613参考文献 614习题与思考题 614推荐读物与阅读信息 615第22章过程和项目度量 61722.1过程和项目领域中的度量 61822.1.1过程度量和软体过程改进 61822.1.2项目度量 621 22.2软体测量 62222.2.1面向规模的度量 62322.2.2面向功能的度量 62422.2.3调和代码行和功能点的度量方法 62422.2.4面向对象的度量 62622.2.5面向用例的度量 62722.2.6Web工程项目度量 62722.3软体质量度量 62922.3.1测量质量 63022.3.2缺陷排除效率 63122.4在软体工程过程中集成度量 63222.4.1支持软体度量的论点 63322.4.2建立基线 63322.4.3度量收集、计算和评估 63422.5小型组织的度量 63422.6制定软体度量大纲 63622.7小结 638参考文献 638习题与思考题 639推荐读物与阅读信息 640第23章估算 64223.1对估算的?鄄?64323.2项目计画过程 64423.3软体範围和可行性 64523.4资源 64523.4.1人力资源 64623.4.2可复用软体资源 64623.4.3环境资源 64723.5软体项目估算 64823.6分解技术 64923.6.1软体规模估算 64923.6.2基于问题的估算 65023.6.3基于LOC估算的实例 65123.6.4基于FP估算的实例 65323.6.5基于过程的估算 65423.6.6基于过程估算的实例 65523.6.7基于用例的估算 65623.6.8基于用例的估算实例 65723.6.9调和不同的估算方法 65823.7经验估算模型 65923.7.1估算模型的结构 66023.7.2COCOMOⅡ模型 66023.7.3软体方程式 66223.8面向对象项目的估算 66323.9特殊的估算技术 66423.9.1敏捷开发的估算 66423.9.2Web工程项目的估算 66523.10自行开发或购买的决策 66623.10.1创建决策树 66723.10.2外包 66823.11小结 669参考文献 670习题与思考题 671推荐读物与阅读信息 671第24章项目进度安排 67324.1基本概念 67424.2项目进度安排 67624.2.1基本原则 67724.2.2人员与工作量之间的关係 67824.2.3工作量分配 68024.3为软体项目定义任务集合 68124.3.1一个任务集合的例子 68224.3.2主要任务的求精 68224.4定义任务网路 683 24.5??劝才?68424.5.1时序图 68524.5.2跟蹤进度 68624.5.3跟蹤OO项目的进展 68824.6获得值分析 69024.7小结 691参考文献 691习题与思考题 692推荐读物与阅读信息 693第25章风险管理 69425.1被动和主动的风险策略 69525.2软体风险 69625.3风险识别 69725.3.1评估整体项目风险 69825.3.2风险因素和驱动因子 69925.4风险预测 70025.4.1建立风险表 70125.4.2评估风险影响 70325.5风险求精 70525.6风险缓解、监测和管理 70525.7RMMM计画 70825.8小结 709参考文献 710习题与思考题 710推荐读物与阅读信息 711第26章质量管理 71226.1质量概念 71326.1.1质量 71426.1.2质量控制 71426.1.3质量保证 71526.1.4质量成本 71526.2软体质量保证 71626.2.1背景 71726.2.2SQA活动 71726.3软体评审 71926.3.1软体缺陷对成本的影响 72026.3.2缺陷放大和消除 72026.4正式的技术评审 72226.4.1评审会议 72226.4.2评审报告和记录保存 72326.4.3评审指导原则 72426.4.4样本驱动评审 72526.5SQA的形式化方法 72726.6基于统计的软体质量保证 72726.6.1一个普通的例子 72826.6.2软体工程中的六西格玛 72926.7软体可靠性 73026.7.2软体安全 73126.8ISO9000质量标準 73326.9SQA计画 73426.10小结 735参考文献 736习题与思考题 737推荐读物与阅读信息 737第27章变更管理 73927.1软体配置管理 74027.1.1SCM场景 74127.1.2配置管理系统元素 74227.1.3基线 74327.1.4软体配置项 74327.2SCM中心存储库 74527.2.1中心存储库的作用 74527.2.2一般特徵和内容 74627.2.3SCM特徵 74727.3SCM过程 74827.3.1软体配置中对象的标识 74927.3.2版本控制 75027.3.3变更控制 75227.3.4配置审核 75527.3.5状态报告 75627.4Web工程的配置管理 75627.4.1WebApp的配置管理问题 757 27.4.2WebApp的配置对象 75827.4.3内容管理 75827.4.4变更管理 76127.4.5版本控制 76327.4.6审核和报告 76427.5小结 765参考文献 766习题与思考题 767推荐读物与阅读信息 768第五部分软体工程高级课题第28章形式化方法 77028.1基本概念 77128.1.1非形式化方法的缺陷 77228.1.2软体开发中的数学 77328.1.3形式化方法概念 77328.2数学预备知识 77628.2.1集合与构造性规格说明 77628.2.2集合运算符 77828.2.3逻辑运算符 78028.2.4序列 780规格说明 78128.4形式规格说明语言 78328.5对象约束语言(OCL) 78428.5.1OCL语法及语义概述 78428.5.2使用OCL举例 78628.6Z规格说明语言 78828.6.1Z语法及语义概述 78828.6.2使用Z举例 78828.7形式化方法的十条戒律 79128.8形式化方法--未来之路 79228.9小结 793参考文献 793习题与思考题 794推荐读物与阅读信息 795第29章净室软体工程 79629.1净室方法 79729.1.1净室策略 79829.1.2净室方法的特异之处 80029.2功能规格说明 80129.2.1黑盒规格说明 80229.2.2状态盒规格说明 80329.2.3清晰盒规格说明 80329.3净室设计 80429.3.1设计求精与验证 80429.3.2设计验证的优点 80829.4净室测试 80929.4.1统计使用测试 81029.4.2认证 81129.5小结 812参考文献 812习题与思考题 813推荐读物与阅读信息 814第30章基于构件的开发 81530.1基于构件系统的工程 81630.2CBSE过程 81830.3领域工程 81930.3.1领域分析过程 81930.3.2特徵化函式 82030.3.3结构化建模与结构点 82130.4基于构件的开发 82230.4.1构件合格性检验、适应性修改与组装 82230.4.2构件工程 82530.4.3复用的分析与设计 82630.5构件分?嘤爰焖?82730.5.1描述可复用构件 82730.5.2复用环境 82930.6CBSE经济学 83030.6.1对质量、生产率及成本的影响 83030.6.2运用结构点的成本分析 831 30.7小结 832参考文献 833习题与思考题 834推荐读物与阅读信息 835第31章再工程 83731.1业务过程再工程 83831.1.1业务过程 83931.1.2BPR模型 83931.2软体再工程 84131.2.1软体维护 84131.2.2软体再工程过程模型 84231.3逆向工程 84631.3.1理解数据的逆向工程 84831.3.2理解处理的逆向工程 84831.3.3用户界面的逆向工程 84931.4重构 85031.4.1代码重构 85031.4.2数据重构 85131.5正向工程 85231.5.1客户/伺服器体系结构(C/S)的正向工程 85331.5.2面向对象体系结构的正向工程 85431.5.3用户界面的正向工程 85531.6再工程经济学 85531.7小结 856参考文献 857习题与思考题 858推荐读物与阅读信息 859第32章未来之路 86032.1软体的重要性--再论 86132.2变化的範围 86132.3人及其构造系统的方式 86332.4"新"的软体工程过程 86432.5表示信息的新模式 86536.6技术作为推动力 86732.7软体工程师的责任 86832.8结束语 870参考文献 871习题与思考题 871推荐读物与?亩列畔?871索引 873