
| Roger S. Pressman is an internationally recognized authority in software process improvement and software engineering technologies. For over three decades, he has worked as a software engineer, a manager, a professor, an author, and a consultant, focusing on software engineering issues. . As an industry practitioner and manager, Dr. Pressman worked on the development of CAD/CAM systems for advanced engineering and manufacturing applications... << 查看详细 |
| 第1章软件工程介绍.1 1.1软件角色的演化2 1.2软件4 1.3软件特性的变化8 1.4遗产软件10 1.4.1遗产软件的质量11 1.4.2软件演化11 1.5软件神话13 1.6这一切是如何开始的?15 1.7小结16 参考文献17 习题与思考题17 推荐读物与阅读信息18 第一部分软件过程 第2章过程综述20 2.1软件工程:一种层次化技术21 2.2过程框架22 2.3能力成熟度模型集成cmmi27 2.4过程模式31 2.5过程评估34 .2.6个人过程模型和团队过程模型36 2.6.1个人软件过程36 2.6.2团队软件过程38 2.7过程技术39 2.8产品与过程40 2.9总结41 参考文献42 习题与思考题43 推荐读物与阅读信息43 第3章过程模型45 3.1惯例过程模型46 3.2瀑布模型47 3.3增量过程模型48 3.4演化过程模型51 3.4.1原型开发51 3.4.2螺旋模型54 3.4.3并行开发模型56 3.4.4演化模型的最终评述57 3.5专用过程模型59 3.5.1基于构件的开发59 3.5.2形式化方法模型60 3.5.3面向方面的软件开发61 3.6统一过程62 3.6.1简史63 3.6.2统一过程的阶段64 3.6.3统一过程工作产品66 3.7小结67 参考文献68 习题与思考题69 推荐读物与阅读信息70 第4章敏捷视角下的过程71 4.1敏捷是什么?73 4.2敏捷过程是什么?74 4.2.1敏捷开发的动机75 4.2.2人的因素76 4.3敏捷过程模型77 4.3.1极限编程(extreme programming, xp)78 4.3.2自适应软件开发(adaptive software development, asd)82 4.3.3动态系统开发方法(dynamic system development method,dsdm)84 4.3.4scrum85 4.3.5crystal87 4.3.6特征驱动开发(feature driven development, fdd)88 4.3.7敏捷建模(agile modeling,am)89 4.4小结91 参考文献92 习题与思考题93 推荐读物与阅读信息94 第二部分软件工程实践 第5章软件工程实践96 5.1软件工程实践97 5.1.1实践的精髓97 5.1.2核心原则99 5.2沟通实践101 5.3策划实践104 5.4建模实践107 5.4.1分析建模原则108 5.4.2设计建模原则109 5.5构造实践112 5.5.1编码原则和概念113 5.5.2测试原则114 5.6部署116 5.7小结118 参考文献119 习题与思考题120 推荐读物与阅读信息120 第6章系统工程122 6.1基于计算机的系统123 6.2系统工程层次结构125 6.2.1系统建模126 6.2.2系统仿真128 6.3业务过程工程概述129 6.4产品工程概述130 6.5系统建模132 6.5.1hatley-pirbhai建模133 6.5.2uml系统建模135 6.6小结139 参考文献140 习题与思考题140 推荐读物与阅读信息141 第7章需求工程142 7.1连接设计和构造的桥梁143 7.2需求工程任务144 7.2.1起始144 7.2.2导出145 7.2.3精化145 7.2.4协商146 7.2.5规格说明147 7.2.6确认147 7.2.7需求管理148 7.3启动需求工程过程149 7.3.1确认共同利益者150 7.3.2识别多种观点150 7.3.3协同合作151 7.3.4首次提问151 7.4导出需求152 7.4.1协同收集需求153 7.4.2质量功能部署156 7.4.3用户场景157 7.4.4导出工作产品158 7.5开发用例159 7.6构建分析模型164 7.6.1分析模型的元素164 7.6.2分析模式168 7.7协商需求169 7.8确认需求171 7.9小结172 参考文献172 习题与思考题173 推荐读物与阅读信息174 第8章构建分析模型175 8.1需求分析176 8.1.1整体目标和原理177 8.1.2分析的经验规则178 8.1.3域分析178 8.2分析建模的方法179 8.3数据建模概念181 8.3.1数据对象181 8.3.2数据属性182 8.3.3关系182 8.3.4基数和形态183 8.4面向对象的分析185 8.5基于场景建模186 8.5.1编写用例186 8.5.2开发活动图191 8.5.3泳道图192 8.6面向流的建模194 8.6.1创建数据流模型194 8.6.2创建控制流模型197 8.6.3控制规格说明198 8.6.4处理规格说明200 8.7基于类的建模201 8.7.1识别分析类201 8.7.2描述属性204 8.7.3定义操作205 8.7.4类-责任-协作者(crc)建模208 8.7.5关联和依赖214 8.7.6分析包215 8.8生成行为模型216 8.8.1识别用例事件217 8.8.2状态表现218 8.9小结221 参考文献222 习题与思考题223 推荐读物与阅读信息224 第9章设计工程226 9.1软件工程中的设计227 9.2设计过程和设计质量229 9.3设计概念233 9.3.1抽象233 9.3.2架构233 9.3.3模式234 9.3.4模块化235 9.3.5信息隐藏236 9.3.6功能独立236 9.3.7精化237 9.3.8重构238 9.3.9设计类239 9.4设计模型242 9.4.1数据设计元素243 9.4.2架构设计元素243 9.4.3接口设计元素244 9.4.4构件级设计元素246 9.4.5部署级设计元素247 9.5基于模式的软件设计248 9.5.1描述设计模式248 9.5.2在设计中使用模式249 9.5.3框架249 9.6小结250 参考文献251 习题与思考题251 推荐读物与阅读信息252 第10章创建体系结构设计254 10.1软件体系结构255 10.1.1什么是体系结构255 10.1.2为什么体系结构如此重要256 10.2数据设计257 10.2.1体系结构级的数据设计257 10.2.2构件级的数据设计258 10.3体系结构风格和模式259 10.3.1体系结构风格的简单分类260 10.3.2体系结构模式264 10.3.3组织和精化265 10.4体系结构设计266 10.4.1系统的环境表示266 10.4.2定义原始模型268 10.4.3将体系结构精化为构件269 10.4.4描述系统实例271 10.5评估可选的体系结构设计272 10.5.1体系结构权衡分析方法272 10.5.2体系结构复杂性274 10.5.3体系结构描述语言274 10.6映射数据流到软件体系结构275 10.6.1变换流276 10.6.2事务流276 10.6.3变换映射277 10.6.4事务映射284 10.6.5精化体系结构设计288 10.7小结288 参考文献289 习题与思考题290 推荐读物与阅读信息291 第11章构件级设计建模292 11.1什么是构件293 11.1.1面向对象的观点294 11.1.2传统观点295 11.1.3过程相关的观点298 11.2设计基于类的构件298 11.2.1基本设计原则299 11.2.2构件级设计指导方针302 11.2.3内聚性303 11.2.4耦合性305 11.3实施构件级设计307 11.4对象约束语言313 11.5设计传统构件315 11.5.1图形设计表示316 11.5.2表格设计表示317 11.5.3程序设计语言318 11.5.4设计表示方法的比较320 11.6小结321 参考文献322 习题与思考题322 推荐读物与阅读信息323 第12章完成用户界面设计324 12.1黄金规则325 12.1.1置用户于控制之下325 12.1.2减轻用户的记忆负担327 12.1.3保持界面一致328 12.2用户界面的分析与设计329 12.2.1界面分析和设计模型330 12.2.2界面分析和设计过程331 12.3界面分析333 12.3.1用户分析333 12.3.2任务分析和建模335 12.3.3显示内容分析340 12.3.4工作环境分析341 12.4界面设计步骤341 12.4.1应用界面设计步骤342 12.4.2用户界面设计模式343 12.4.3设计问题345 12.5设计评估349 12.6小结351 参考文献351 习题与思考题352 推荐读物与阅读信息353 第13章——软件测试策略354 13.1软件测试的策略性方法355 13.1.1验证与确认356 13.1.2软件测试的组织356 13.1.3常规软件体系结构的测试策略358 13.1.4面向对象软件体系结构的测试策略359 13.1.5测试完成的标准360 13.2策略问题361 13.3传统软件的测试策略362 13.3.1单元测试362 13.3.2——集成测试365 13.4面向对象软件的测试策略372 13.4.1面向对象语境中的单元测试372 13.4.2面向对象语境中的集成测试373 13.5确认测试374 13.5.1确认测试准则374 13.5.2配置评审374 13.5.3——α测试与β测试374 13.6系统测试376 13.6.1恢复测试377 13.6.2安全测试377 13.6.3压力测试377 13.6.4性能测试378 13.7调试艺术379 13.7.1调试过程379 13.7.2心理因素..381 13.7.3调试策略382 13.7.4错误改正384 13.8小结384 参考文献385 习题与思考题385 推荐读物与阅读信息386 第14章测试战术388 14.1软件测试基础389 14.2黑盒测试与白盒测试391 14.3白盒测试392 14.4基本路径测试393 14.4.1流图表示393 14.4.2独立程序路径394 14.4.3测试用例的设计396 14.4.4图矩阵399 14.5控制结构测试400 14.5.1条件测试400 14.5.2数据流测试400 14.5.3循环测试401 14.6黑盒测试402 14.6.1基于图的测试方法403 14.6.2等价划分405 14.6.3边界值分析406 14.6.4正交数组测试407 14.7面向对象测试方法410 14.7.1——oo概念的测试用例设计的含义410 14.7.2传统测试用例设计方法的可应用性411 14.7.3基于故障的测试411 14.7.4测试用例与类层次412 14.7.5基于场景的测试412 14.7.6表层结构和深层结构的测试414 14.8类层次可应用的测试方法415 14.8.1面向对象的随机测试415 14.8.2类层次的分割测试416 14.9类间测试用例设计417 14.9.1多个类测试417 14.9.2从行为模型中生成的测试418 14.10针对特定环境、体系结构和应用的测试420 14.10.1用户界面测试420 14.10.2客户/服务器体系结构420 14.10.3测试文档和帮助设施421 14.10.4实时系统的测试422 14.11测试模式424 14.12小结425 参考文献426 习题与思考题427 推荐读物与阅读信息428 第15章产品度量429 15.1软件质量430 15.1.1——mccall的质量因素431 15.1.2——iso 9126质量因素432 15.1.3向量化视图的变迁433 15.2产品度量框架434 15.2.1测度、度量和指标434 15.2.2产品度量的挑战434 15.2.3测量原则435 15.2.4——面向目标的软件测量436 15.2.5有效软件度量的属性437 15.2.6产品度量风景438 15.3分析模型的度量440 15.3.1基于功能的度量440 15.3.2规格说明质量的度量444 15.4设计模型的度量445 15.4.1体系结构设计度量445 15.4.2面向对象设计的度量448 15.4.3面向类的度量——ck度量套449 15.4.4面向类的度量——mood度量套452 15.4.5lorenz与kidd提出的面向对象度量453 15.4.6构件级设计度量454 15.4.7面向操作的度量456 15.4.8用户界面设计度量457 15.5源代码的度量458 15.6测试的度量459 15.6.1应用于测试的halstead度量459 15.6.2面向对象测试的度量459 15.7维护的度量460 15.8小结461 参考文献462 习题与思考题464 推荐读物与阅读信息465 第三部分应用web工程 第16章web工程468 16.1基于web的系统及应用的特点469 16.2webapp工程的层次472 16.2.1过程472 16.2.2方法473 16.2.3工具与技术474 16.3web工程过程474 16.3.1定义框架475 16.3.2精化框架477 16.4web工程的最佳实践478 16.5小结479 参考文献480 习题与思考题480 推荐读物与阅读信息481 第17章开始一个webapp项目482 17.1表达基于web的系统483 17.1.1表达问题483 17.1.2webapp的需求收集485 17.1.3分析模型的过渡489 17.2策划web工程项目490 17.3web工程团队491 17.3.1人员491 17.3.2组建团队492 17.4web工程的项目管理问题493 17.4.1webapp策划——外包494 17.4.2webapp策划——内部web工程498 17.5web工程与webapp的度量500 17.5.1web工程工作的度量501 17.5.2评估商业价值的度量502 17.6webapp项目的“最坏实践”502 17.7小结504 参考文献504 习题与思考题505 推荐读物与阅读信息506 第18章——webapp分析507 18.1webapp的需求分析508 18.1.1用户层次509 18.1.2开发用例510 18.1.3精化用例模型512 18.2webapp的分析模型513 18.3内容模型513 18.3.1定义内容对象514 18.3.2内容关系与层次514 18.3.3webapp的分析类515 18.4交互模型516 18.5功能模型519 18.6配置模型521 18.7关系导航分析521 18.7.1关系分析——关键问题522 18.7.2导航分析523 18.8小结524 参考文献525 习题与思考题525 推荐读物与阅读信息526 第19章设计webapp527 19.1web工程的设计问题528 19.1.1设计与webapp质量528 19.1.2设计目标531 19.2webe设计金字塔532 19.3webapp界面设计533 19.3.1界面设计原则与指导方针534 19.3.2界面控制机制539 19.3.3界面设计工作流539 19.4美学设计541 19.4.1布局问题542 19.4.2美术设计问题542 19.5内容设计543 19.5.1内容对象543 19.5.2内容设计问题544 19.6体系结构设计545 19.6.1内容体系结构545 19.6.2webapp体系结构547 19.7导航设计549 19.7.1导航语义549 19.7.2导航语法551 19.8构件级设计552 19.9超媒体设计模式552 19.10面向对象的超媒体设计方法(oohdm)554 19.10.1oohdm的概念设计554 19.10.2oohdm的导航设计555 19.10.3抽象界面设计与实现556 19.11webapp的设计度量556 19.12小结557 参考文献558 习题与思考题560 推荐读物与阅读信息561 第20章webapp测试562 20.1webapp的测试概念563 20.1.1质量维度563 20.1.2webapp环境中的错误564 20.1.3测试策略565 20.1.4测试计划566 20.2测试过程——概述566 20.3内容测试569 20.3.1内容测试的目标569 20.3.2数据库测试571 20.4用户界面测试573 20.4.1界面测试策略573 20.4.2测试界面机制574 20.4.3测试界面语义576 20.4.4可用性测试576 20.4.5兼容性测试578 20.5构件级测试579 20.6导航测试581 20.6.1测试导航语法581 20.6.2测试导航语义582 20.7配置测试583 20.7.1服务器端问题584 20.7.2客户端问题584 20.8安全性测试585 20.9性能测试587 20.9.1性能测试的目标587 20.9.2负载测试588 20.9.3压力测试588 20.10小结590 参考文献591 习题与思考题592 推荐读物与阅读信息593 第四部分管理软件项目 第21章项目管理596 21.1管理涉及的范围597 21.1.1人员597 21.1.2产品598 21.1.3过程598 21.1.4项目598 21.2人员599 21.2.1共同利益者599 21.2.2团队负责人600 21.2.3软件团队601 21.2.4敏捷团队604 21.2.5协调和通信问题605 21.3产品606 21.3.1软件范围606 21.3.2问题分解607 21.4过程608 21.4.1合并产品和过程608 21.4.2过程分解609 21.5项目610 21.6w5hh原则612 21.7关键实践612 21.8小结613 参考文献614 习题与思考题614 推荐读物与阅读信息615 第22章过程和项目度量617 22.1过程和项目领域中的度量618 22.1.1过程度量和软件过程改进618 22.1.2项目度量621 22.2软件测量622 22.2.1面向规模的度量623 22.2.2面向功能的度量624 22.2.3调和代码行和功能点的度量方法624 22.2.4面向对象的度量626 22.2.5面向用例的度量627 22.2.6web工程项目度量627 22.3软件质量度量629 22.3.1测量质量630 22.3.2缺陷排除效率631 22.4在软件工程过程中集成度量632 22.4.1支持软件度量的论点633 22.4.2建立基线633 22.4.3度量收集、计算和评估634 22.5小型组织的度量634 22.6制定软件度量大纲636 22.7小结638 参考文献638 习题与思考题639 推荐读物与阅读信息640 第23章估算642 23.1对估算的观察643 23.2项目计划过程644 23.3软件范围和可行性645 23.4资源645 23.4.1人力资源646 23.4.2可复用软件资源646 23.4.3环境资源647 23.5软件项目估算648 23.6分解技术649 23.6.1软件规模估算649 23.6.2基于问题的估算650 23.6.3基于loc估算的实例651 23.6.4基于fp估算的实例653 23.6.5基于过程的估算654 23.6.6基于过程估算的实例655 23.6.7基于用例的估算656 23.6.8基于用例的估算实例657 23.6.9调和不同的估算方法658 23.7经验估算模型659 23.7.1估算模型的结构660 23.7.2cocomoii模型660 23.7.3软件方程式662 23.8面向对象项目的估算663 23.9特殊的估算技术664 23.9.1敏捷开发的估算664 23.9.2web工程项目的估算665 23.10自行开发或购买的决策666 23.10.1创建决策树667 23.10.2外包668 23.11小结669 参考文献670 习题与思考题671 推荐读物与阅读信息671 第24章项目进度安排673 24.1基本概念674 24.2项目进度安排676 24.2.1基本原则677 24.2.2人员与工作量之间的关系678 24.2.3工作量分配680 24.3为软件项目定义任务集合681 24.3.1一个任务集合的例子682 24.3.2主要任务的求精682 24.4定义任务网络683 24.5进度安排684 24.5.1时序图685 24.5.2跟踪进度686 24.5.3跟踪oo项目的进展688 24.6获得值分析690 24.7小结691 参考文献691 习题与思考题692 推荐读物与阅读信息693 第25章风险管理694 25.1被动和主动的风险策略695 25.2软件风险696 25.3风险识别697 25.3.1评估整体项目风险698 25.3.2风险因素和驱动因子699 25.4风险预测700 25.4.1建立风险表701 25.4.2评估风险影响703 25.5风险求精705 25.6风险缓解、监测和管理705 25.7rmmm计划708 25.8小结709 参考文献710 习题与思考题710 推荐读物与阅读信息711 第26章质量管理712 26.1质量概念713 26.1.1质量714 26.1.2质量控制714 26.1.3质量保证715 26.1.4质量成本715 26.2软件质量保证716 26.2.1背景717 26.2.2sqa活动717 26.3软件评审719 26.3.1软件缺陷对成本的影响720 26.3.2缺陷放大和消除720 26.4正式的技术评审722 26.4.1评审会议722 26.4.2评审报告和记录保存723 26.4.3评审指导原则724 26.4.4样本驱动评审725 26.5sqa的形式化方法727 26.6基于统计的软件质量保证727 26.6.1一个普通的例子728 26.6.2软件工程中的六西格玛729 26.7软件可靠性730 26.7.1可靠性和可用性的测量731 26.7.2软件安全731 26.8iso9000质量标准733 26.9sqa计划734 26.10小结735 参考文献736 习题与思考题737 推荐读物与阅读信息737 第27章变更管理739 27.1软件配置管理740 27.1.1scm场景741 27.1.2配置管理系统元素742 27.1.3基线743 27.1.4软件配置项743 27.2scm中心存储库745 27.2.1中心存储库的作用745 27.2.2一般特征和内容746 27.2.3scm特征747 27.3scm过程748 27.3.1软件配置中对象的标识749 27.3.2版本控制750 27.3.3变更控制752 27.3.4配置审核755 27.3.5状态报告756 27.4web工程的配置管理756 27.4.1webapp的配置管理问题757 27.4.2webapp的配置对象758 27.4.3内容管理758 27.4.4变更管理761 27.4.5版本控制763 27.4.6审核和报告764 27.5小结765 参考文献766 习题与思考题767 推荐读物与阅读信息768 第五部分软件工程高级课题 第28章形式化方法770 28.1基本概念771 28.1.1非形式化方法的缺陷772 28.1.2软件开发中的数学773 28.1.3形式化方法概念773 28.2数学预备知识776 28.2.1集合与构造性规格说明776 28.2.2集合运算符778 28.2.3逻辑运算符780 28.2.4序列780 28.3应用数学表示法描述形式化规格说明781 28.4形式规格说明语言783 28.5对象约束语言(ocl)784 28.5.1ocl语法及语义概述784 28.5.2使用ocl举例786 28.6z规格说明语言788 28.6.1z语法及语义概述788 28.6.2使用z举例788 28.7形式化方法的十条戒律791 28.8形式化方法——未来之路792 28.9小结793 参考文献793 习题与思考题794 推荐读物与阅读信息795 第29章净室软件工程796 29.1净室方法797 29.1.1净室策略798 29.1.2净室方法的特异之处800 29.2功能规格说明801 29.2.1黑盒规格说明802 29.2.2状态盒规格说明803 29.2.3清晰盒规格说明803 29.3净室设计804 29.3.1设计求精与验证804 29.3.2设计验证的优点808 29.4净室测试809 29.4.1统计使用测试810 29.4.2认证811 29.5小结812 参考文献812 习题与思考题813 推荐读物与阅读信息814 第30章基于构件的开发815 30.1基于构件系统的工程816 30.2cbse过程818 30.3领域工程819 30.3.1领域分析过程819 30.3.2特征化函数820 30.3.3结构化建模与结构点821 30.4基于构件的开发822 30.4.1构件合格性检验、适应性修改与组装822 30.4.2构件工程825 30.4.3复用的分析与设计826 30.5构件分类与检索827 30.5.1描述可复用构件827 30.5.2复用环境829 30.6cbse经济学830 30.6.1对质量、生产率及成本的影响830 30.6.2运用结构点的成本分析831 30.7小结832 参考文献833 习题与思考题834 推荐读物与阅读信息835 第31章再工程837 31.1业务过程再工程838 31.1.1业务过程839 31.1.2bpr模型839 31.2软件再工程841 31.2.1软件维护841 31.2.2软件再工程过程模型842 31.3逆向工程846 31.3.1理解数据的逆向工程848 31.3.2理解处理的逆向工程848 31.3.3用户界面的逆向工程849 31.4重构850 31.4.1代码重构850 31.4.2数据重构851 31.5正向工程852 31.5.1客户/服务器体系结构(c/s)的正向工程853 31.5.2面向对象体系结构的正向工程854 31.5.3用户界面的正向工程855 31.6再工程经济学855 31.7小结856 参考文献857 习题与思考题858 推荐读物与阅读信息859 第32章未来之路860 32.1软件的重要性——再论861 32.2变化的范围861 32.3人及其构造系统的方式863 32.4"新"的软件工程过程864 32.5表示信息的新模式865 36.6技术作为推动力867 32.7软件工程师的责任868 32.8结束语870 参考文献871 习题与思考题871 推荐读物与阅读信息871 索引...873 |
商品评论(0条)