目录 第1章软件工程概述/1 1.1软件的概念、特点与分类1 1.1.1软件的概念1 1.1.2软件的特点2 1.1.3软件的分类3 1.2软件危机4 1.2.1软件危机的出现4 1.2.2产生软件危机的原因5 1.2.3消除软件危机的途径5 1.3软件工程6 1.3.1软件工程的定义6 1.3.2软件工程的基本原理7 1.3.3软件工程的框架7 1.3.4软件工程方法学7 1.4软件的生命周期10 1.4.1软件生命周期及其各个阶段10 1.4.2软件生命周期模型11 1.5软件工程的目标和原则12 1.5.1软件工程的基本目标12 1.5.2软件工程的原则12 1.6本章小结13 习题113 第2章软件过程/14 2.1软件过程概述14 2.2通用过程模型15 2.2.1过程框架15 2.2.2普适性活动15 2.2.3过程的适应性调整16 2.2.4过程流16 2.3惯用过程模型17〖1〗软 件 工 程目录〖3〗〖3〗2.3.1瀑布模型17 2.3.2增量过程模型20 2.3.3演化过程模型21 2.3.4并发模型23 2.4专用过程模型23 2.4.1基于构件的开发24 2.4.2形式化方法模型25 2.4.3面向方面的软件开发26 2.5统一过程模型26 2.5.1统一过程简介26 2.5.2统一过程开发阶段27 2.5.3统一过程成分28 2.6本章小结29 习题229 第3章敏捷软件过程/30 3.1敏捷联盟30 3.2敏捷原则32 3.3极限编程实践34 3.3.1客户作为团队成员34 3.3.2用户故事35 3.3.3短交付周期35 3.3.4结对编程36 3.3.5持续集成与可持续开发36 3.3.6开放的工作空间37 3.3.7简单的设计37 3.3.8重构38 3.3.9隐喻38 3.4敏捷过程模型39 3.4.1XP过程39 3.4.2Scrum40 3.5敏捷统一过程42 3.5.1宏观上连续42 3.5.2微观上迭代43 3.5.3持续增量发布43 3.5.4AUP的原则43 3.5.5何时采用AUP44 3.6本章小结44 习题345 第4章软件过程改进/46 4.1能力成熟度模型46 4.1.1CMM的5层体系结构48 4.1.2成熟度级别的行为特征49 4.1.3CMM的评估和评价方法51 4.2能力成熟度模型集成52 4.2.1从CMM到CMMI52 4.2.2CMMI体系52 4.2.3CMMI过程域57 4.2.4CMMI评估方式SCAMPI58 4.3个人软件过程59 4.3.1个人软件过程简介59 4.3.2PSP的结构59 4.3.3PSP过程59 4.4团队软件过程60 4.4.1团队软件过程简介60 4.4.2TSP的团队管理组合61 4.4.3TSP的6条原则61 4.5能力成熟度模型与软件过程之间的关系61 4.5.1能力成熟度模型与软件过程的有机结合61 4.5.2CMM/TSP/PSP的一些建议62 4.6本章小结62 习题463 第5章面向对象软件开发方法/64 5.1面向对象基本特征64 5.2面向对象基本概念67 5.3面向对象方法68 5.3.1面向对象分析68 5.3.2OOA主要原则68 5.3.3面向对象设计模型69 5.3.4面向对象建模过程70 5.4本章小结73 习题573 第6章UML建模技术/74 6.1面向对象建模及UML简介74 6.1.1面向对象建模74 6.1.2UML简介74 6.2用例视图75 6.2.1活动者75 6.2.2用例76 6.2.3用例图内元素的关系76 6.3静态模型图78 6.3.1类图78 6.3.2构件图81 6.3.3部署图82 6.4动态模型图83 6.4.1序列图83 6.4.2协作图84 6.4.3状态图86 6.4.4活动图87 6.5本章小结91 习题691 第7章面向对象分析/92 7.1需求工程92 7.1.1需求工程92 7.1.2起始95 7.1.3需求获取97 7.2需求分析: 用例模型98 7.2.1开发用例99 7.2.2创建初始用例100 7.2.3细化初始用例102 7.2.4编写正式用例102 7.3需求分析: 类模型103 7.3.1识别分析类104 7.3.2描述属性105 7.3.3定义操作105 7.3.4类职责协作者建模107 7.4需求分析: 行为模型108 7.4.1识别用例事件108 7.4.2状态表达110 7.5本章小结110 习题7111 第8章面向对象设计/112 8.1设计过程112 8.1.1软件质量指导原则和属性112 8.1.2软件设计的演化113 8.2设计概念114 8.2.1抽象114 8.2.2体系结构115 8.2.3模式116 8.2.4关注点分离116 8.2.5模块化116 8.2.6信息隐蔽117 8.2.7功能独立118 8.3设计模型118 8.3.1数据设计元素118 8.3.2体系结构设计元素119 8.3.3接口设计元素119 8.3.4构件级设计元素120 8.4体系结构设计120 8.4.1体系结构类型121 8.4.2体系结构风格121 8.4.3体系结构的简单分类122 8.4.4体系结构考虑要素123 8.4.5体系结构设计124 8.5构件设计126 8.5.1构件概念126 8.5.2基于类的构件设计129 8.5.3实施构件级设计131 8.5.4构件的分类与检索133 8.6用户界面设计134 8.6.1用户界面设计黄金原则134 8.6.2用户界面分析与设计135 8.6.3界面分析136 8.6.4界面设计步骤137 8.6.5设计评估137 8.7本章小结138 习题8138 第9章软件复用/139 9.1结构化软件复用139 9.2面向对象软件复用144 9.3基于软件复用的软件工程148 9.4本章小结151 习题9151 第10章软件模式/152 10.1分析模式152 10.2设计模式153 10.2.1创建型设计模式153 10.2.2结构型设计模式158 10.2.3行为型设计模式162 10.3本章小结166 习题10166 第11章软件质量/167 11.1软件质量概念167 11.1.1符合性质量的概念167 11.1.2适用性质量的概念167 11.1.3广义质量的概念168 11.1.4质量因客户而存在170 11.1.5不同的质量观点172 11.1.6质量属性174 11.1.7软件过程和软件质量175 11.2软件质量实现178 11.2.1软件质量控制179 11.2.2软件质量保证179 11.2.3缺陷预防181 11.2.4质量成本181 11.2.5软件评审182 11.2.6软件可靠性与安全187 11.3软件质量标准188 11.3.1国际标准188 11.3.2国家标准189 11.3.3行业标准189 11.3.4企业标准190 11.3.5项目规范190 11.4本章小结190 习题11190 第12章软件测试策略/191 12.1软件测试的策略性方法191 12.1.1验证与确认191 12.1.2软件测试组织191 12.1.3软件测试策略——宏观192 12.1.4测试完成的标准193 12.2策略问题194 12.3传统软件的测试策略194 12.3.1单元测试194 12.3.2集成测试196 12.4面向对象软件的测试策略198 12.4.1面向对象环境中的单元测试198 12.4.2面向对象环境中的集成测试199 12.5确认测试199 12.5.1确认测试准则199 12.5.2配置评审200 12.5.3α测试和β测试200 12.6系统测试200 12.6.1恢复测试200 12.6.2安全测试201 12.6.3性能测试201 12.6.4部署测试201 12.7调试技巧201 12.7.1调试过程202 12.7.2调试策略202 12.8本章小结203 习题12204 第13章面向对象的软件测试/205 13.1扩展测试的视野206 13.2测试OOA和OOD模型207 13.2.1OOA和OOD模型的正确性208 13.2.2面向对象模型的一致性208 13.3面向对象测试策略209 13.3.1面向对象测试的层次209 13.3.2面向对象环境中的单元测试210 13.3.3面向对象环境中的集成测试210 13.3.4面向对象环境中的确认测试210 13.4面向对象测试方法211 13.4.1面向对象概念的测试用例设计含义211 13.4.2传统测试用例设计方法的可应用性211 13.4.3基于故障的测试211 13.4.4基于场景的测试设计212 13.5类级可应用的测试方法212 13.5.1面向对象类的随机测试212 13.5.2类级的划分测试 213 13.6类间测试用例设计213 13.6.1多类测试214 13.6.2从行为模型导出的测试215 13.7本章小结216 习题13216 第14章软件项目管理/217 14.1软件项目管理定义及特点217 14.2软件项目计划218 14.2.1软件规模估算219 14.2.2软件成本估算222 14.2.3软件进度计划225 14.3软件项目风险管理230 14.3.1风险的属性和分类230 14.3.2软件项目风险管理过程231 14.4软件质量管理236 14.4.1软件质量管理的重要性及其目标236 14.4.2软件质量管理活动237 14.4.3软件质量缺陷管理238 14.5软件配置管理239 14.5.1软件配置管理的意义239 14.5.2软件配置管理活动240 14.5.3软件配置管理工具243 14.6人员的组织与管理243 14.6.1人员组织过程244 14.6.2项目组织形式244 14.7本章小结246 习题14247 参考文献/248