软件工程案例教程

出版社:韩万江、姜立新、等、 宋茂强 机械工业出版社 (2011-10出版)
出版日期:2011-10
ISBN:9787111353188
页数:274页

章节摘录

版权页:插图:进行需求获取的时候应该注意如下问题:1)需求过程缺乏用户的参与,软件人员往往受技术驱动,习惯性地跳到模块的划分,导致需求本身验证困难。2)沟通失真也是主要问题,要通过即时的验证来减少沟通失真。3)识别真正的客户。识别真正的客户不是一件容易的事情,项目总要面对多方客户,不同类型客户的素质、背景和要求都不一样,有的时候没有共同的利益,例如,销售人员希望使用方便,会计人员最关心的是销售的数据如何统计,人力资源关心的是如何管理和培训员工等等。有时他们的利益甚至有冲突,所以必须认识到客户并非平等的,有些人比其他人对项目的成功更为重要,要清楚地识别出那些影响项目的人,对多方客户的需求进行排序。4)正确理解客户的需求。客户有时并不十分明白自己的需要,可能提供一些混乱的信息,而且有时会夸大或者弱化真正的需求,所以需要我们既要懂一些心理知识,也要懂一些其他行业的知识,了解客户的业务和社会背景,有选择地过滤需求,理解和完善需求,确认客户真正需要的东西。5)变更频繁。为了响应变化,通过对变更分类来识别哪些变更可以通过复用和可配置解决。6)具备较强的忍耐力和清晰的思维。进行需求获取的时候,应该能够从客户凌乱的建议和观点整理出真正的需求,不能对客户需求的不确定性和过分要求失去耐心,甚至造成不愉快,要具备好的协调能力。7)使用符合客户语言习惯的表达。与客户沟通最好的方式就是采用客户熟悉的术语进行交流,这样可以快速了解客户的需求,同时也可以在谈论的过程中为客户提供一些建议和有针对性的问题。可适当请客户提供一些需求模型(例如表格、流程图、旧系统说明书等),这样能够更加方便双方的交流,也便于我们提出建设性的意见和避免需求存在隐患。对于客户的需求要做到频繁沟通,不怕麻烦,只有经过多次交流才能更好地了解客户的目的。8)提供需求开发评估报告。无论需求开发的可行性是否存在,都需要给客户一套比较完整的需求开发评估报告。通过这种直观的表现,让客户了解到需求执行下去所需要花费的成本和代价,这样也帮助客户对需求进行重新评估。9)尊重开发人员和客户的意见,妥善解决矛盾。如果用户与开发人员之间不能相互理解,那关于需求的讨论将会有障碍。参与需求开发过程的客户和开发人员要相互尊重,就项目成功达成共识,否则会导致需求延缓或搁浅,如果没有有效的解决方案,会使得矛盾升级,最后导致双方都不满意。10)划分需求的优先级。绝大多数项目没有足够的时间或资源实现功能性的每个细节,决定哪些特性是必要的,哪些是重要的,是需求开发的主要部分,这只能由客户负责设定需求优先级。在必要的时候懂得取舍是很重要的,尽管没有人愿意看到自己所希望的需求在项目中未被实现,但毕竟要面对现实,业务决策有时不得不依据优先级来缩小项目范围,或延长工期,或增加资源,或在质量上寻找折中。

书籍目录

前言 第1章 软件工程概述 1 1.1 软件工程的背景 1 1.2 软件工程知识体系 3 1.3 软件工程的三段论 4 1.4 软件工程模型 5 1.4.1 软件项目开发路线图 7 1.4.2 软件项目管理路线图 8 1.4.3 软件过程改进路线图 9 1.5 软件开发模型 12 1.5.1 瀑布模型 12 1.5.2 v模型 12 1.5.3 原型模型 13 1.5.4 增量式模型 13 1.5.5 螺旋式模型 13 1.5.6 喷泉模型 15 1.5.7 智能模型 15 1.6 软件工程中的复用原则 15 1.7 小结 17 1.8 练习题 17 第2章 结构化方法和面向对象方法 19 2.1 软件工程方法比较 19 2.2 结构化软件工程方法 20 2.2.1 结构化需求分析 21 2.2.2 结构化概要设计与详细设计 21 2.2.3 结构化编码 22 2.2.4 结构化测试 22 2.2.5 结构化维护 22 2.3 面向对象软件工程方法 22 2.3.1 面向对象需求分析 23 2.3.2 面向对象设计 24 2.3.3 面向对象编程 24 2.3.4 面向对象测试 24 2.3.5 面向对象维护 24 2.4 软件逆向工程 25 2.5 小结 25 2.6 练习题 25 第3章 软件项目的需求分析 26 3.1 软件项目需求概述 26 3.1.1 需求定义 26 3.1.2 需求类型 27 3.1.3 需求的重要性 28 3.2 需求工程 28 3.2.1 需求获取 28 3.2.2 需求分析 31 3.2.3 需求规格说明 31 3.2.4 需求验证 32 3.2.5 需求变更 32 3.3 需求分析模型 33 3.3.1 关联模型 34 3.3.2 行为模型 34 3.3.3 数据模型 35 3.3.4 原型模型 37 3.4 需求建模的方法 37 3.4.1 结构化分析方法 37 3.4.2 面向对象分析方法 39 3.4.3 其他方法 49 3.5 需求规格说明文档 51 3.6 项目案例 53 3.7 小结 63 3.8 练习题 63 第4章 软件项目的概要设计 65 4.1 软件设计定义 65 4.2 概要设计方法概论 66 4.3 设计模型 66 4.3.1 体系结构设计 66 4.3.2 数据设计 69 4.3.3 接口设计 78 4.3.4 构件设计 80 4.4 结构化的设计方法 85 4.4.1 功能模块划分 85 4.4.2 面向数据流的设计 86 4.4.3 输入/输出设计 87 4.5 面向对象的设计方法 87 4.5.1 识别对象 88 4.5.2 确定属性 89 4.5.3 定义操作 89 4.5.4 确定对象之间的通信 90 4.5.5 完成对象定义 90 4.6 关于软件模式和框架的概念 96 4.6.1 体系结构模式 96 4.6.2 设计模式 98 4.6.3 体系结构框架 99 4.7 软件设计指导原则 102 4.8 概要设计文档 103 4.9 项目案例 106 4.10 小结 119 4.11 练习题 119 第5章 软件项目的详细设计 121 5.1 关于详细设计的概念 121 5.2 详细设计的内容 122 5.3 结构化的详细设计方法 122 5.3.1 面向数据结构的设计 122 5.3.2 结构化详细设计的例子 125 5.4 面向对象的详细设计方法 126 5.4.1 面向对象的详细设计 126 5.4.2 面向对象详细设计的例子 127 5.5 表达详细设计的工具 129 5.5.1 图形符号的设计方式 129 5.5.2 表格的设计方式 129 5.5.3 过程设计语言pdl 130 5.6 详细设计文档 132 5.7 项目案例 133 5.8 小结 145 5.9 练习题 145 第6章 软件项目的编码 147 6.1 编码概述 147 6.2 编码方法 147 6.2.1 结构化编程 148 6.2.2 面向对象编程 152 6.3 编码策略 153 6.3.1 自顶向下的开发策略 153 6.3.2 自底向上的开发策略 153 6.3.3 自顶向下和自底向上相结合的开发策略 153 6.3.4 线程模式的开发策略 153 6.4 编码语言与编码标准和规范 154 6.4.1 编码语言 154 6.4.2 编码标准和规范 154 6.5 关于重构理念和重用原则 161 6.5.1 重构理念 161 6.5.2 重用原则 161 6.6 编码文档 162 6.7 项目案例 162 6.8 小结 172 6.9 练习题 172 第7章 软件项目的测试 174 7.1 软件测试概述 174 7.2 软件测试方法概论 175 7.3 静态测试 176 7.3.1 文档审查 176 7.3.2 代码检查 178 7.3.3 技术评审 178 7.4 动态测试 180 7.4.1 白盒测试方法 180 7.4.2 黑盒测试方法 185 7.4.3 灰盒测试方法 196 7.5 软件测试级别 196 7.5.1 单元测试 197 7.5.2 集成测试 199 7.5.3 系统测试 201 7.5.4 验收测试 204 7.5.5 上线测试 204 7.5.6 回归测试 204 7.6 面向对象的测试 204 7.6.1 面向对象分析的测试 205 7.6.2 面向对象设计的测试 205 7.6.3 面向对象的单元测试 206 7.6.4 面向对象的集成测试 207 7.6.5 面向对象的系统测试方法 207 7.7 测试过程管理 208 7.7.1 软件测试计划 208 7.7.2 软件测试设计 209 7.7.3 软件测试开发 210 7.7.4 软件测试执行 210 7.7.5 软件测试跟踪 211 7.7.6 软件测试评估与总结 211 7.8 自动化测试 211 7.9 软件测试过程的文档 213 7.9.1 测试计划文档 213 7.9.2 测试设计文档 214 7.9.3 软件测试报告 222 7.10 项目案例 224 7.10.1 集成测试设计案例 224 7.10.2 系统测试设计案例 230 7.10.3 系统测试报告案例 238 7.11 小结 250 7.12 练习题 250 第8章 软件项目的提交 252 8.1 软件项目验收与移交 252 8.2 验收测试 253 8.3 培训 254 8.3.1 培训对象 254 8.3.2 培训方式 254 8.3.3 培训指南 255 8.4 用户文档 255 8.4.1 用户手册 255 8.4.2 系统管理员手册 255 8.4.3 其他文档 256 8.5 软件项目提交文档 256 8.5.1 验收测试报告 256 8.5.2 用户手册 259 8.5.3 系统管理员手册 260 8.5.4 产品提交文档 261 8.6 项目案例 262 8.7 小结 265 8.8 练习题 265 第9章 软件项目的维护 267 9.1 软件项目维护概述 267 9.2 试运行 267 9.3 软件的可维护性 268 9.4 软件项目维护的类型 268 9.5 软件再工程过程 269 9.6 软件项目维护的过程 271 9.6.1 维护申请 271 9.6.2 维护实现 272 9.6.3 维护产品发布 272 9.7 软件维护过程文档 272 9.8 项目案例 272 9.9 小结 273 9.10 练习题 273 参考文献 275

编辑推荐

《软件工程案例教程:软件项目开发实践(第2版)》按照软件开发过程模型,通过一个贯穿全书的综合案例,详细介绍了软件开发的需求分析、概要设计、详细设计、编码、测试、提交以及维护等软件开发过程。在第2版修订中,作者结合多年的教学和软件工程项目实践经验。根据软件工程技术的新发展,进一步完善了很多软件开发技术和技巧,并更换了第1版的所有案例说明。第2版中的“综合信息管理平台”案例,其复杂性和综合性更加合理、科学,通过循序渐进的案例学习,读者可以快速掌握软件开发的基本知识、基本过程,并有效提高实践能力,为以后顺利投入工作实践打下坚实的基础。《软件工程案例教程:软件项目开发实践(第2版)》特点:·内容全面,涵盖了软件项目开发的所有内容,包括理论、方法、提交产品和文档。·注重实效。书中涉及的理论和方法都有相应的实践案例对照讲解,便于学生理解掌握。·结构清晰,全书通过一个贯穿始终的综合项目案例详细说明软件项目的完整开发过程和提交的文档等。·习题实用,每章后配有相应的习题,便于学生复习、巩固所学理论知识。·教辅支持,为教师配有电子教案,方便教师教学。

作者简介

《软件工程案例教程:软件项目开发实践(第2版)》以案例的形式讲述了软件工程中软件项目开发的实践过程,全面涵盖软件项目开发中需求分析、概要设计、详细设计、编码、测试、提交以及运行维护等过程中涉及的理论、方法、技术、提交的产品和文档等。《软件工程案例教程:软件项目开发实践(第2版)》注重实效,系统、全面,通过贯穿始终的案例的讲述,让学习者在短时间内掌握软件项目开发的基本知识、基本过程,并有效提高实践能力。
《软件工程案例教程:软件项目开发实践(第2版)》共分九章,第1~2章介绍软件工程的基本概念以及软件工程的主要技术,第3~9章系统地讲述软件项目开发的各个过程。《软件工程案例教程:软件项目开发实践(第2版)》注重理论与实际的结合,引导学生通过软件开发理论和案例的学习,深刻理解软件工程的实质,为以后的软件工程实践打下基础。
《软件工程案例教程:软件项目开发实践(第2版)》既适合作为高等院校计算机及相关专业软件工程、软件测试课程的教材,也适合作为广大软件技术人员的培训教程,同时可以作为软件开发人员在工作及学习中的技术参考书。

图书封面


 软件工程案例教程下载



发布书评

 
 


 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024