图书
软件工程:理论、技术及实践

软件工程:理论、技术及实践"

作者:江颉董天阳王婷编著
ISBN:装订:平装
定价:¥最新印次时间:2023-05-22
字数:最新版印次:1-1千字
页数:
出版时间:字数:405千字
开本:出版日期:2023-05-22
版次:
装帧:编辑:姚蕾
出版社:机械工业出版社
简介

本书从软件工程的基本原理出发,以适应本科专业的教学和实践为宗旨,在充分吸收国内外软件工程研究成果精华的基础上,依据作者多年软件工程领域的教学和科研经验,结合国内软件开发的特点编写而成。本书正文共9章,第1章是理解软件工程,第2-5章讲述了软件开发的各个方面,包括软件过程、需求工程、软件质量管理和成本评估等,第6章介绍了软件工程对社会的影响,第7-8章介绍了软件管理和维护等相关内容,第9章列出了软件相关的国际和国家标准。

前言

目录

前言<br />教学建议<br />第1章 理解软件工程1<br />1.1 软件的发展2<br />1.2 软件的特性和分类3<br />1.2.1 软件的特性3<br />1.2.2 软件的分类5<br />1.3 软件工程的起源6<br />1.3.1 软件危机6<br />1.3.2 软件工程的定义7<br />1.3.3 软件过程8<br />1.4 软件质量 9<br />1.5 软件团队11<br />1.6 软件工程的知识领域14<br />1.7 软件工程师的职业道德16<br />练习和讨论16<br />第2章 软件工程发展18<br />2.1 软件工程发展历程19<br />2.1.1 传统软件工程19<br />2.1.2 面向对象的软件工程20<br />2.1.3 基于构件的软件工程21<br />2.1.4 面向服务的软件工程21<br />2.2 软件工程中新技术的影响22<br />2.2.1 云计算与软件工程22<br />2.2.2 大数据与软件工程24<br />2.2.3 移动应用与软件工程26<br />2.3 软件工程中人的因素27<br />2.4 软件工程的未来发展29<br />练习和讨论30<br />第3章 软件过程31<br />3.1 软件生命周期模型31<br />3.1.1 瀑布模型32<br />3.1.2 快速原型模型34<br />3.1.3 增量模型35<br />3.1.4 螺旋模型35<br />3.1.5 喷泉模型36<br />3.2 统一过程37<br />3.2.1 RUP的产生37<br />3.2.2 RUP的过程模型38<br />3.2.3 RUP的特点40<br />3.3 敏捷开发41<br />3.3.1 敏捷原则41<br />3.3.2 敏捷过程43<br />3.3.3 极限编程43<br />3.3.4 Scrum44<br />3.4 开源软件48<br />3.4.1 开源软件的发展48<br />3.4.2 开源软件开发过程49<br />3.5 软件过程的改进50<br />3.5.1 软件过程特性50<br />3.5.2 能力成熟度模型51<br />3.5.3 IDEAL模型52<br />3.5.4 个人软件过程52<br />练习和讨论53<br />第4章 理解需求55<br />4.1 需求工程55<br />4.2 需求获取57<br />4.2.1 需求获取方式57<br />4.2.2 应用领域理解58<br />4.2.3 应用实例需求获取59<br />4.3 用例和场景61<br />4.3.1 UML用例和场景61<br />4.3.2 业务模型应用实例63<br />4.4 用户故事地图71<br />4.4.1 用户故事71<br />4.4.2 用户故事估算和计划73<br />4.4.3 用户故事地图73<br />练习和讨论75<br />第5章 需求分析77<br />5.1 面向数据流的结构化分析78<br />5.1.1 半形式化分析技术78<br />5.1.2 Gane和Sarsen结构化系统<br />   分析方法82<br />5.2 结构化分析实例83<br />5.2.1 逐步求精数据流图83<br />5.2.2 定义数据字典84<br />5.2.3 建造实体关系模型86<br />5.3 面向对象分析88<br />5.3.1 面向对象方法和结构化<br />   方法88<br />5.3.2 面向对象分析中的主要<br />   技术88<br />5.3.3 面向对象分析方法的主要<br />   步骤90<br />5.4 面向对象分析实例93<br />5.4.1 功能建模93<br />5.4.2 类建模96<br />5.4.3 动态建模97<br />5.5 形式化分析技术101<br />练习和讨论104<br />第6章 软件设计106<br />6.1 软件工程中的设计107<br />6.1.1 设计原理107<br />6.1.2 设计过程109<br />6.2 结构化设计111<br />6.2.1 结构化设计的主要步骤111<br />6.2.2 结构化设计实例115<br />6.3 面向对象的设计119<br />6.3.1 面向对象软件设计的步骤119<br />6.3.2 面向对象软件设计实例121<br />6.4 用户界面设计126<br />6.4.1 黄金规则126<br />6.4.2 用户界面设计过程128<br />6.4.3 GUI设计规则129<br />6.5 面向对象软件设计优化131<br />6.5.1 面向对象软件设计原则131<br />6.5.2 面向对象软件设计模式133<br />练习和讨论135<br />第7章 软件实现与测试137<br />7.1 高质量软件开发的基本方法138<br />7.2 代码规范139<br />7.2.1 代码规范的重要性139<br />7.2.2 常见的代码规范140<br />7.2.3 代码重构142<br />7.3 软件测试145<br />7.3.1 软件测试简介145<br />7.3.2 软件测试的分类145<br />7.3.3 自动化测试147<br />7.3.4 软件测试模型148<br />7.3.5 黑盒测试和玻璃盒测试150<br />7.4 测试驱动开发155<br />7.4.1 TDD的基本概念155<br />7.4.2 TDD的实施步骤156<br />7.4.3 基于单元测试的TDD实例(Java)157<br />7.5 集成160<br />7.5.1 软件集成160<br />7.5.2 持续集成161<br />练习和讨论163<br />第8章 软件维护与演化164<br />8.1 软件维护与更新164<br />8.1.1 软件的可维护性165<br />8.1.2 软件维护类型165<br />8.1.3 软件维护流程167<br />8.1.4 软件维护的困难及对应<br />    策略168<br />8.2 软件部署169<br />8.2.1 软件部署的概念169<br />8.2.2 软件部署工具Docker169<br />8.3 软件配置管理172<br />8.3.1 软件配置管理的作用172<br />8.3.2 软件配置管理过程172<br />8.3.3 常用的软件配置管理工具173<br />练习和讨论 178<br />第9章 软件项目组织与管理180<br />9.1 软件工程项目管理180<br />9.1.1 项目启动管理181<br />9.1.2 项目计划管理181<br />9.1.3 人员组织与管理183<br />9.1.4 变更管理184<br />9.1.5 风险管理186<br />9.2 计划与估算189<br />9.2.1 计划189<br />9.2.2 软件规模估算191<br />9.2.3 工作量估算193<br />9.2.4 软件项目管理计划的组成196<br />9.2.5 IEEE软件项目管理计划197<br />9.3 软件项目团队管理199<br />9.3.1 软件项目团队管理概述199<br />9.3.2 项目组织的规划200<br />9.3.3 团队建设和日常管理200<br />练习和讨论201<br />第10章 软件创新202<br />10.1 新技术对软件创新开发的影响202<br />10.1.1 深度学习202<br />10.1.2 5G通信技术203<br />10.1.3 大数据203<br />10.1.4 云计算203<br />10.2 软件产品的更新与迭代203<br />10.3 软件开发创新204<br />10.3.1 商业模式创新原则204<br />10.3.2 业务驱动原则205<br />10.3.3 开发模式匹配原则205<br />10.3.4 UI/UE先行原则 206<br />10.3.5 样式家族化原则206<br />10.3.6 组件化开发原则206<br />10.3.7 核心竞争力培养原则207<br />10.4 案例分析1:智慧城市软件<br />   系统207<br />10.5 案例分析2:云课堂系统209<br />10.6 案例分析3:虚实融合的舞台<br />   演艺系统211<br />练习和讨论213<br />第11章 软件工程与社会214<br />11.1 计算机安全215<br />11.1.1 计算机安全问题与措施215<br />11.1.2 计算机安全事件实例216<br />11.2 软件工程与法律218<br />11.2.1 信息时代下的《民法典》218<br />11.2.2 软件开发合同218<br />11.2.3 知识产权219<br />11.3 软件工程与道德 221<br />11.3.1 用户的道德问题221<br />11.3.2 软件开发者的道德问题222<br />11.4 软件工程与经济223<br />11.4.1 软件产业对经济发展的<br />     影响224<br />11.4.2 软件对人类经济生活的<br />     影响224<br />练习和讨论226<br />第12章 软件相关的国家标准<br />        和国际标准227<br />12.1 软件工程国家标准227<br />12.2 软件工程国际标准228<br />12.3 软件工程文档撰写国家标准230<br />12.3.1 可行性研究报告230<br />12.3.2 开发计划234<br />12.3.3 需求规格说明书235<br />12.3.4 概要设计说明书237<br />12.3.5 详细设计说明书239<br />12.3.6 测试计划240<br />12.3.7 用户操作手册242<br />练习和讨论244<br />参考文献245<br />

作者简介

江颉,博士,浙江工业大学教务处副处长,浙江工业大学计算机科学与技术学院原副院长、副教授。2018年获得高等教育国家级教学成果奖二等奖1项,2021年获得浙江省高等教育教学成果奖特等奖1项;2018年浙江工业大学计算机科学与技术专业、软件工程专业通过国家工程教育专业认证,担任组织工作者。

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个