展开全部

主编推荐语

本书系统介绍软件工程的基本概念、原理、方法,以及可以用于软件开发实践的各种技能。

内容简介

全书共13章, 内容涉及软件工程概述、软件过程、敏捷软件开发、可行性研究与项目开发计划、结构化分析、结构化设计、面向对象方法与UML、面向对象分析、软件体系结构与设计模式、面向对象设计、软件实现、软件测试、软件维护与软件工程管理。

本书适合作为高等院校计算机科学、软件工程及相关专业“软件工程”课程的教材。

目录

  • 版权信息
  • 第2版前言
  • 第1版前言
  • 第1章 软件工程概述
  • 1.1 软件
  • 1.1.1 软件的概念及特点
  • 1.1.2 软件的分类
  • 1.2 软件危机
  • 1.2.1 软件危机的表现与原因
  • 1.2.2 软件危机的启示
  • 1.3 软件工程
  • 1.3.1 软件工程的概念
  • 1.3.2 软件工程研究的内容
  • 1.3.3 软件工程目标和原则
  • 1.3.4 软件工程知识体系
  • 1.3.5 软件工程的发展
  • 1.4 软件开发方法
  • 1.4.1 基本的软件开发方法
  • 1.4.2 开源软件开发方法
  • 1.4.3 群体化软件开发方法
  • 1.5 软件工程工具
  • 1.6 软件工程人员的职业道德
  • 1.7 软件学院“‘墨韵’读书会图书共享平台”案例介绍
  • 习题
  • 第2章 软件过程
  • 2.1 软件过程概述
  • 2.2 软件生命周期
  • 2.2.1 软件生命周期的概念
  • 2.2.2 传统软件生命周期的各个阶段
  • 2.3 软件过程模型
  • 2.3.1 瀑布模型
  • 2.3.2 快速原型模型
  • 2.3.3 增量模型
  • 2.3.4 螺旋模型
  • 2.3.5 喷泉模型
  • 2.3.6 基于组件的开发模型
  • 2.3.7 统一软件开发过程模型
  • 2.3.8 几种模型之间的关系
  • 2.3.9 选择软件过程模型
  • 2.4 软件过程实例
  • 习题
  • 第3章 敏捷软件开发
  • 3.1 敏捷软件开发方法
  • 3.2 Scrum
  • 3.2.1 Scrum概述
  • 3.2.2 Sprint
  • 3.2.3 每日站会
  • 3.2.4 用户故事
  • 3.2.5 Backlog
  • 3.2.6 结对编程
  • 3.3 看板
  • 3.3.1 看板概述
  • 3.3.2 看板与Scrum的区别
  • 3.4 极限编程
  • 3.4.1 XP的4个价值观
  • 3.4.2 XP的12个核心实践
  • 3.5 CI/CD
  • 3.5.1 CI/CD概述
  • 3.5.2 CI/CD管道
  • 3.5.3 CI/CD的优势
  • 3.6 DevOps
  • 3.6.1 DevOps生命周期
  • 3.6.2 DevOps文化
  • 3.6.3 DevOps工具
  • 3.7 敏捷软件开发、CI/CD和DevOps
  • 3.8 敏捷软件开发实例
  • 习题
  • 第4章 可行性研究与项目开发计划
  • 4.1 项目立项概述
  • 4.2 可行性研究的任务
  • 4.2.1 技术可行性
  • 4.2.2 操作可行性
  • 4.2.3 经济可行性
  • 4.3 可行性研究的步骤
  • 4.4 可行性研究实例
  • 4.5 制订项目开发计划
  • 习题
  • 第5章 结构化分析
  • 5.1 需求分析
  • 5.1.1 需求分析的任务和原则
  • 5.1.2 需求分析的步骤
  • 5.1.3 需求管理
  • 5.1.4 需求分析的常用方法
  • 5.1.5 原型设计
  • 5.2 结构化分析概述
  • 5.3 结构化分析的方法
  • 5.3.1 功能建模
  • 5.3.2 数据建模
  • 5.3.3 行为建模
  • 5.3.4 数据字典
  • 5.3.5 加工规格说明
  • 5.4 结构化分析的图形工具
  • 5.4.1 层次方框图
  • 5.4.2 Warnier图
  • 5.4.3 IPO图
  • 5.5 结构化分析实例
  • 习题
  • 第6章 结构化设计
  • 6.1 软件设计的基本概念
  • 6.1.1 软件设计的意义和目标
  • 6.1.2 软件设计的原则
  • 6.1.3 软件设计的分类
  • 6.2 数据库结构设计
  • 6.3 用户界面设计
  • 6.3.1 设计驱动开发
  • 6.3.2 目标用户群体
  • 6.3.3 简洁与清晰
  • 6.3.4 实现模型与心智模型
  • 6.3.5 设计的规范性
  • 6.3.6 设计的可用性和易用性
  • 6.3.7 设计的一致性
  • 6.3.8 设计的容错性
  • 6.4 结构化软件设计概述
  • 6.5 结构化设计与结构化分析的关系
  • 6.6 体系结构设计
  • 6.6.1 表示软件结构的图形工具
  • 6.6.2 面向数据流的设计方法
  • 6.6.3 面向数据结构的设计方法
  • 6.7 接口设计
  • 6.7.1 接口设计概述
  • 6.7.2 界面设计
  • 6.7.3 UX设计与UI设计的区别
  • 6.8 数据设计
  • 6.9 过程设计
  • 6.9.1 程序流程图
  • 6.9.2 N-S图
  • 6.9.3 PAD图
  • 6.9.4 过程设计语言
  • 6.10 软件设计评审
  • 6.11 结构化设计实例
  • 习题
  • 第7章 面向对象方法与UML
  • 7.1 面向对象的软件工程方法
  • 7.1.1 面向对象的基本概念
  • 7.1.2 面向对象的软件工程方法的特征与优势
  • 7.1.3 面向对象的实施步骤
  • 7.2 统一建模语言
  • 7.2.1 UML简述
  • 7.2.2 UML的应用范围
  • 7.2.3 UML的图
  • 7.2.4 UML“4+1”视图
  • 7.3 静态建模机制
  • 7.3.1 用例图
  • 7.3.2 类图和对象图
  • 7.3.3 包图
  • 7.4 动态建模机制
  • 7.4.1 顺序图
  • 7.4.2 协作图
  • 7.4.3 状态图
  • 7.4.4 活动图
  • 7.5 描述物理架构的机制
  • 7.5.1 构件图
  • 7.5.2 部署图
  • 7.6 面向对象方法与UML实例
  • 习题
  • 第8章 面向对象分析
  • 8.1 面向对象分析方法
  • 8.1.1 面向对象分析过程
  • 8.1.2 面向对象分析原则
  • 8.2 面向对象建模
  • 8.2.1 建立对象模型
  • 8.2.2 建立动态模型
  • 8.2.3 建立功能模型
  • 8.2.4 3种模型之间的关系
  • 8.3 面向对象分析实例
  • 习题
  • 第9章 软件体系结构与设计模式
  • 9.1 软件体系结构概述
  • 9.1.1 软件体系结构的概念
  • 9.1.2 软件体系结构建模
  • 9.1.3 软件体系结构的分层模型
  • 9.1.4 软件体系结构的作用
  • 9.2 典型的软件体系结构风格
  • 9.2.1 数据流风格
  • 9.2.2 调用∕返回风格
  • 9.2.3 独立构件风格
  • 9.2.4 虚拟机风格
  • 9.2.5 仓库风格
  • 9.3 软件质量属性
  • 9.4 分布式系统结构
  • 9.4.1 多处理器体系结构
  • 9.4.2 客户机/服务器体系结构
  • 9.4.3 分布式对象体系结构
  • 9.4.4 对等端体系结构
  • 9.4.5 代理
  • 9.5 体系结构框架
  • 9.5.1 模型-视图-控制器
  • 9.5.2 模型-视图-表示器
  • 9.5.3 J2EE体系结构框架
  • 9.5.4 PCMEF框架
  • 9.5.5 PCBMER框架
  • 9.6 软件系统的设计模式
  • 9.6.1 工厂模式
  • 9.6.2 桥接模式
  • 9.6.3 策略模式
  • 9.6.4 其他模式
  • 9.7 软件体系结构与设计模式实例
  • 习题
  • 第10章 面向对象设计
  • 10.1 面向对象设计与结构化设计
  • 10.2 面向对象设计与面向对象分析的关系
  • 10.3 面向对象设计的过程与原则
  • 10.3.1 面向对象设计的过程
  • 10.3.2 面向对象设计的原则
  • 10.4 面向对象设计的启发规则
  • 10.5 系统设计
  • 10.5.1 系统分解
  • 10.5.2 问题域子系统的设计
  • 10.5.3 人机交互子系统的设计
  • 10.5.4 任务管理子系统的设计
  • 10.5.5 数据管理子系统的设计
  • 10.6 对象设计
  • 10.6.1 设计类中的服务
  • 10.6.2 设计类的关联
  • 10.6.3 对象设计优化
  • 10.7 面向对象设计实例
  • 习题
  • 第11章 软件实现
  • 11.1 编程语言
  • 11.1.1 编程语言的发展与分类
  • 11.1.2 选择编程语言需考虑的因素
  • 11.2 编程风格与规范
  • 11.3 面向对象实现
  • 11.4 代码重用
  • 11.5 分析和评价代码的质量
  • 11.6 软件实现实例
  • 11.7 案例实践:使用WebStorm和PyCharm实现软件学院“‘墨韵’读书会图书共享平台”的“用户登录”模块
  • 习题
  • 第12章 软件测试
  • 12.1 软件测试的基本概念
  • 12.1.1 软件测试的原则
  • 12.1.2 软件测试模型
  • 12.2 软件测试的分类
  • 12.3 测试用例
  • 12.4 软件测试方法
  • 12.5 黑盒测试
  • 12.5.1 等价类划分法
  • 12.5.2 边界值分析法
  • 12.5.3 错误推测法
  • 12.5.4 因果图法
  • 12.5.5 决策表法
  • 12.5.6 场景法
  • 12.5.7 黑盒测试方法的选择
  • 12.6 白盒测试
  • 12.6.1 代码检查法
  • 12.6.2 静态结构分析法
  • 12.6.3 程序插桩技术
  • 12.6.4 逻辑覆盖法
  • 12.6.5 基本路径法
  • 12.6.6 白盒测试方法的选择
  • 12.6.7 白盒测试与黑盒测试的比较
  • 12.7 软件测试的一般步骤
  • 12.8 单元测试
  • 12.8.1 单元测试概述
  • 12.8.2 单元测试内容
  • 12.8.3 单元测试方法
  • 12.9 集成测试
  • 12.9.1 集成测试概述
  • 12.9.2 集成测试分析
  • 12.9.3 集成测试策略
  • 12.10 系统测试
  • 12.10.1 系统测试概述
  • 12.10.2 系统测试类型
  • 12.11 验收测试
  • 12.11.1 验收测试概述
  • 12.11.2 验收测试内容
  • 12.11.3 α测试和β测试
  • 12.12 回归测试
  • 12.13 面向对象的软件测试
  • 12.14 自动化测试
  • 12.14.1 手工测试与自动化测试
  • 12.14.2 自动化测试的优缺点
  • 12.14.3 自动化测试工具
  • 12.15 软件调试
  • 12.16 软件测试实例
  • 12.17 案例实践:使用PyCharm对软件学院“‘墨韵’读书会图书共享平台”的“用户登录”模块进行单元测试
  • 习题
  • 第13章 软件维护与软件工程管理
  • 13.1 软件维护
  • 13.1.1 软件部署与软件交付
  • 13.1.2 软件维护的过程
  • 13.1.3 软件维护的分类
  • 13.1.4 软件的可维护性
  • 13.1.5 软件维护的副作用
  • 13.1.6 自动化运维
  • 13.1.7 软件再工程——重构、正向工程、逆向工程
  • 13.2 软件估算
  • 13.2.1 软件估算的概念
  • 13.2.2 软件估算的方法
  • 13.2.3 软件估算的原则与技巧
  • 13.3 软件开发进度计划
  • 13.3.1 Gantt图
  • 13.3.2 PERT图
  • 13.4 软件开发人员组织
  • 13.4.1 民主制程序员组
  • 13.4.2 主程序员组
  • 13.4.3 现代程序员组
  • 13.5 软件开发风险及其管理
  • 13.5.1 软件开发风险
  • 13.5.2 软件开发风险管理
  • 13.6 软件质量保证
  • 13.6.1 软件质量的基本概念
  • 13.6.2 软件质量保证的措施
  • 13.7 软件配置管理
  • 13.7.1 软件配置管理术语
  • 13.7.2 配置管理的过程
  • 13.7.3 配置管理的角色划分
  • 13.8 软件工程标准与软件文档
  • 13.8.1 软件工程标准
  • 13.8.2 软件文档
  • 13.9 软件过程能力成熟度模型
  • 13.10 软件项目管理
  • 13.10.1 软件项目管理概述
  • 13.10.2 软件项目管理与软件工程的关系
  • 习题
  • 参考文献
展开全部

评分及书评

评分不足
1个评分

出版方

机械工业出版社

机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。