顶部
收藏

软件工程——理论、方法与实践


作者:
孙家广
定价:
29.00 元
版面字数:
370千字
开本:
16开
装帧形式:
平装
版次:
1
最新版次
印刷时间:
2023年
ISBN:
978-7-04-016308-7
物料号:
16308-00
出版时间:
2005-07-20
读者对象:
高等教育
一级分类:
计算机/教育技术类
二级分类:
软件工程专业课程

本书为普通高等教育“十五”国家级规划教材。由作者结合多年软件开发实践和近年讲授软件工程课程的教学经验编写而成,强调理论与实践的有机结合。全书共11章,第1章概括介绍软件工程的历史发展和基本原理,讨论IEEE和ACM最新提出的软件工程知识体系和软件工程职业道德规范;第2章讨论软件过程的基本思想和活动,介绍常见的软件过程模型和微软开发过程的实际案例;第3章讨论软件工程的管理技术,主要涉及人员管理、沟通管理、项目规划和风险管理等内容;第4章、第6章至第10章以面向对象技术为核心,全面、深入、系统地介绍软件开发各个阶段的任务、过程、方法和工具;第5章介绍软件工程中的形式化方法,包括时序逻辑、Z语言、Petri网等;第11章介绍软件进化的概念和方法,包括软件进化的特性、软件维护活动、逆向工程与再工程等内容。

全书注重内容的新颖性、条理性、系统性和实用性,始终以大量的开发实例贯穿全书,可作为计算机专业有关高年级本科生和低年级研究生学习软件工程课程的教材,也可供软件从业人员参考使用。本书配套的电子教案可从高等教育出版社高等理工教学资源网下载,网址为http://www.hep.st.com.cn。

  • 目录
    • 前辅文
      • 第1章 概述
        • 1.1 软件
          • 1.1.1 软件的特性
            • 1.1.2 软件的发展
              • 1.1.3 软件危机
              • 1.2 软件工程
                • 1.2.1 软件工程的概念
                  • 1.2.2 软件工程的三要素
                    • 1.2.3 软件质量的特性
                      • 1.2.4 软件工程方法
                        • 1.2.5 计算机辅助软件工程CASE
                          • 1.2.6 当前面临的主要挑战
                          • 1.3 软件工程知识体系(SWEBOK)
                            • 1.3.1 SWEBOK项目介绍
                              • 1.3.2 SWEBOK的组成
                                • 1.3.3 软件工程与其他相关学科的关系
                                • 1.4 软件工程职业道德规范
                                  • 1.4.1 IEEE/ACM职业道德准则
                                    • 1.4.2 软件工程人员的职业道德建设
                                    • 习题
                                    • 第2章 软件过程
                                      • 2.1 软件过程的概念
                                        • 2.1.1 任务思维与过程思维
                                          • 2.1.2 软件过程的定义
                                            • 2.1.3 软件过程的基本活动
                                              • 2.1.4 软件过程的制品
                                              • 2.2 软件过程模型
                                                • 2.2.1 瀑布模型
                                                  • 2.2.2 快速原型模型
                                                    • 2.2.3 增量模型
                                                      • 2.2.4 螺旋模型
                                                        • 2.2.5 形式化方法模型
                                                          • 2.2.6 基于组件的开发模型
                                                          • 2.3 案例: 微软公司的软件开发过程
                                                            • 2.3.1 微软公司的开发管理原则
                                                              • 2.3.2 微软公司的软件过程模型
                                                                • 2.3.3 递进式的软件开发策略
                                                                • 习题
                                                                • 第3章 软件项目管理
                                                                  • 3.1 软件项目管理概述
                                                                    • 3.1.1 软件项目的特征
                                                                      • 3.1.2 软件项目管理的“4P”
                                                                        • 3.1.3 软件项目管理活动
                                                                        • 3.2 人员组织与管理
                                                                          • 3.2.1 软件项目组织
                                                                            • 3.2.2 案例: 微软公司的软件开发组织
                                                                              • 3.2.3 软件团队的建设
                                                                              • 3.3 项目沟通管理
                                                                                • 3.3.1 项目沟通复杂性
                                                                                  • 3.3.2 项目沟通方式
                                                                                    • 3.3.3 项目沟通活动
                                                                                    • 3.4 软件项目规划
                                                                                      • 3.4.1 软件规模估算
                                                                                        • 3.4.2 软件成本估算
                                                                                          • 3.4.3 软件项目计划
                                                                                          • 3.5 软件风险管理
                                                                                            • 3.5.1 风险识别
                                                                                              • 3.5.2 风险分析
                                                                                                • 3.5.3 风险规划
                                                                                                  • 3.5.4 风险监控
                                                                                                  • 3.6 软件配置管理
                                                                                                    • 3.6.1 基本概念
                                                                                                      • 3.6.2 配置管理活动
                                                                                                        • 3.6.3 配置管理工具
                                                                                                        • 习题
                                                                                                        • 第4章 需求工程
                                                                                                          • 4.1 软件需求
                                                                                                            • 4.1.1 业务需求
                                                                                                              • 4.1.2 用户需求
                                                                                                                • 4.1.3 功能需求和非功能需求
                                                                                                                  • 4.1.4 系统需求
                                                                                                                  • 4.2 需求工程过程
                                                                                                                    • 4.2.1 需求获取
                                                                                                                      • 4.2.2 需求分析
                                                                                                                        • 4.2.3 需求规格说明
                                                                                                                          • 4.2.4 需求验证
                                                                                                                            • 4.2.5 需求管理
                                                                                                                            • 4.3 需求获取技术
                                                                                                                              • 4.3.1 面谈
                                                                                                                                • 4.3.2 需求专题讨论会
                                                                                                                                  • 4.3.3 观察用户工作流程
                                                                                                                                    • 4.3.4 原型化方法
                                                                                                                                      • 4.3.5 基于用例的方法
                                                                                                                                      • 4.4 案例: 小型图书资料管理系统
                                                                                                                                        • 4.4.1 确定参与者
                                                                                                                                          • 4.4.2 确定场景
                                                                                                                                            • 4.4.3 确定用例
                                                                                                                                              • 4.4.4 编写用例描述
                                                                                                                                              • 习题
                                                                                                                                              • 第5章 软件工程中的形式化方法
                                                                                                                                                • 5.1 形式化方法基本概念
                                                                                                                                                  • 5.1.1 形式规约(Formal Specification)
                                                                                                                                                    • 5.1.2 形式证明与验证(Formal Verification and Validation)
                                                                                                                                                      • 5.1.3 程序求精(Program Refinement)
                                                                                                                                                      • 5.2 时态逻辑
                                                                                                                                                        • 5.2.1 一阶线性时态逻辑
                                                                                                                                                          • 5.2.2 计算树逻辑
                                                                                                                                                          • 5.3 模型检验
                                                                                                                                                            • 5.4 Z语言
                                                                                                                                                              • 5.4.1 概述
                                                                                                                                                                • 5.4.2 Z语言表示
                                                                                                                                                                  • 5.4.3 Z语言实例
                                                                                                                                                                  • 5.5 Petri网
                                                                                                                                                                    • 5.5.1 基本定义
                                                                                                                                                                      • 5.5.2 Petri网规格实例——信号灯
                                                                                                                                                                      • 习题
                                                                                                                                                                      • 第6章 面向对象基础
                                                                                                                                                                        • 6.1 面向对象方法概述
                                                                                                                                                                          • 6.1.1 面向对象技术的发展历史
                                                                                                                                                                            • 6.1.2 面向对象的软件工程方法
                                                                                                                                                                            • 6.2 面向对象基本概念
                                                                                                                                                                              • 6.2.1 对象
                                                                                                                                                                                • 6.2.2 类
                                                                                                                                                                                  • 6.2.3 封装
                                                                                                                                                                                    • 6.2.4 继承
                                                                                                                                                                                      • 6.2.5 消息
                                                                                                                                                                                        • 6.2.6 关联
                                                                                                                                                                                          • 6.2.7 聚合
                                                                                                                                                                                            • 6.2.8 多态性
                                                                                                                                                                                            • 6.3 软件建模概念
                                                                                                                                                                                              • 6.3.1 系统、模型和视图
                                                                                                                                                                                                • 6.3.2 软件建模的重要性
                                                                                                                                                                                                • 6.4 统一建模语言UML
                                                                                                                                                                                                  • 6.4.1 UML的发展历史
                                                                                                                                                                                                    • 6.4.2 UML的概念模型
                                                                                                                                                                                                      • 6.4.3 UML建模示例
                                                                                                                                                                                                        • 6.4.4 UML应用
                                                                                                                                                                                                        • 6.5 常用的UML图
                                                                                                                                                                                                          • 6.5.1 用例图
                                                                                                                                                                                                            • 6.5.2 类图
                                                                                                                                                                                                              • 6.5.3 顺序图
                                                                                                                                                                                                                • 6.5.4 状态图
                                                                                                                                                                                                                • 习题
                                                                                                                                                                                                                • 第7章 面向对象分析
                                                                                                                                                                                                                  • 7.1 分析的概念
                                                                                                                                                                                                                    • 7.1.1 分析类
                                                                                                                                                                                                                      • 7.1.2 分析活动
                                                                                                                                                                                                                      • 7.2 识别分析类
                                                                                                                                                                                                                        • 7.2.1 识别边界类
                                                                                                                                                                                                                          • 7.2.2 识别控制类
                                                                                                                                                                                                                            • 7.2.3 识别实体类
                                                                                                                                                                                                                            • 7.3 定义交互行为
                                                                                                                                                                                                                              • 7.4 建立分析类图
                                                                                                                                                                                                                                • 7.4.1 定义关系和属性
                                                                                                                                                                                                                                  • 7.4.2 应用分析模式
                                                                                                                                                                                                                                  • 7.5 评审分析模型
                                                                                                                                                                                                                                    • 习题
                                                                                                                                                                                                                                    • 第8章 面向对象设计
                                                                                                                                                                                                                                      • 8.1 设计的概念
                                                                                                                                                                                                                                        • 8.1.1 设计活动
                                                                                                                                                                                                                                          • 8.1.2 设计原则
                                                                                                                                                                                                                                          • 8.2 软件体系结构
                                                                                                                                                                                                                                            • 8.2.1 仓库体系结构
                                                                                                                                                                                                                                              • 8.2.2 分层体系结构
                                                                                                                                                                                                                                                • 8.2.3 MVC体系结构
                                                                                                                                                                                                                                                  • 8.2.4 客户机/服务器体系结构
                                                                                                                                                                                                                                                    • 8.2.5 管道和过滤体系结构
                                                                                                                                                                                                                                                      • 8.2.6 案例:MiniLibraray系统体系结构
                                                                                                                                                                                                                                                      • 8.3 系统设计
                                                                                                                                                                                                                                                        • 8.3.1 识别设计元素
                                                                                                                                                                                                                                                          • 8.3.2 数据存储策略
                                                                                                                                                                                                                                                            • 8.3.3 部署子系统
                                                                                                                                                                                                                                                              • 8.3.4 系统设计评审
                                                                                                                                                                                                                                                              • 8.4 详细设计
                                                                                                                                                                                                                                                                • 8.4.1 方法建模
                                                                                                                                                                                                                                                                  • 8.4.2 属性建模
                                                                                                                                                                                                                                                                    • 8.4.3 状态建模
                                                                                                                                                                                                                                                                      • 8.4.4 关系建模
                                                                                                                                                                                                                                                                        • 8.4.5 详细设计评审
                                                                                                                                                                                                                                                                        • 8.5 应用设计模式
                                                                                                                                                                                                                                                                          • 8.5.1 Abstract Factory模式
                                                                                                                                                                                                                                                                            • 8.5.2 Adaptor模式
                                                                                                                                                                                                                                                                              • 8.5.3 Bridge模式
                                                                                                                                                                                                                                                                                • 8.5.4 Facade模式
                                                                                                                                                                                                                                                                                • 8.6 用户界面设计
                                                                                                                                                                                                                                                                                  • 8.6.1 用户界面设计原则
                                                                                                                                                                                                                                                                                    • 8.6.2 Web界面的设计
                                                                                                                                                                                                                                                                                      • 8.6.3 用户支持
                                                                                                                                                                                                                                                                                      • 8.7 设计文档
                                                                                                                                                                                                                                                                                        • 习题
                                                                                                                                                                                                                                                                                        • 第9章 软件实现
                                                                                                                                                                                                                                                                                          • 9.1 程序设计语言
                                                                                                                                                                                                                                                                                            • 9.2 软件编码规范
                                                                                                                                                                                                                                                                                              • 9.2.1 文件命名与组织
                                                                                                                                                                                                                                                                                                • 9.2.2 代码的版式
                                                                                                                                                                                                                                                                                                • 9.3 软件编码案例分析
                                                                                                                                                                                                                                                                                                  • 9.3.1 程序注释问题
                                                                                                                                                                                                                                                                                                    • 9.3.2 变量命名问题
                                                                                                                                                                                                                                                                                                      • 9.3.3 内存异常问题
                                                                                                                                                                                                                                                                                                        • 9.3.4 异常处理问题
                                                                                                                                                                                                                                                                                                          • 9.3.5 性能问题
                                                                                                                                                                                                                                                                                                          • 9.4 软件代码审查
                                                                                                                                                                                                                                                                                                            • 习题
                                                                                                                                                                                                                                                                                                            • 第10章 软件测试
                                                                                                                                                                                                                                                                                                              • 10.1 验证与确认
                                                                                                                                                                                                                                                                                                                • 10.1.1 软件的错误
                                                                                                                                                                                                                                                                                                                  • 10.1.2 验证与确认
                                                                                                                                                                                                                                                                                                                    • 10.1.3 V&V的活动
                                                                                                                                                                                                                                                                                                                    • 10.2 软件测试基础
                                                                                                                                                                                                                                                                                                                      • 10.2.1 什么是软件测试
                                                                                                                                                                                                                                                                                                                        • 10.2.2 软件测试的基本原则
                                                                                                                                                                                                                                                                                                                          • 10.2.3 软件测试与软件开发各阶段的关系
                                                                                                                                                                                                                                                                                                                            • 10.2.4 测试文档
                                                                                                                                                                                                                                                                                                                              • 10.2.5 软件测试信息流
                                                                                                                                                                                                                                                                                                                                • 10.2.6 软件测试人员
                                                                                                                                                                                                                                                                                                                                • 10.3 软件测试策略
                                                                                                                                                                                                                                                                                                                                  • 10.3.1 单元测试
                                                                                                                                                                                                                                                                                                                                    • 10.3.2 集成测试
                                                                                                                                                                                                                                                                                                                                      • 10.3.3 确认测试
                                                                                                                                                                                                                                                                                                                                        • 10.3.4 系统测试
                                                                                                                                                                                                                                                                                                                                          • 10.3.5 软件调试
                                                                                                                                                                                                                                                                                                                                          • 10.4 软件测试方法
                                                                                                                                                                                                                                                                                                                                            • 10.4.1 静态测试与动态测试
                                                                                                                                                                                                                                                                                                                                              • 10.4.2 黑盒测试与白盒测试
                                                                                                                                                                                                                                                                                                                                                • 10.4.3 黑盒测试方法
                                                                                                                                                                                                                                                                                                                                                  • 10.4.4 白盒测试方法
                                                                                                                                                                                                                                                                                                                                                    • 10.4.5 程序的静态测试
                                                                                                                                                                                                                                                                                                                                                    • 10.5 面向对象软件测试
                                                                                                                                                                                                                                                                                                                                                      • 10.5.1 面向对象测试类型
                                                                                                                                                                                                                                                                                                                                                        • 10.5.2 面向对象测试示例
                                                                                                                                                                                                                                                                                                                                                          • 10.5.3 GUI测试示例
                                                                                                                                                                                                                                                                                                                                                          • 10.6 软件测试工具
                                                                                                                                                                                                                                                                                                                                                            • 10.6.1 Junit
                                                                                                                                                                                                                                                                                                                                                              • 10.6.2 LoadRunner
                                                                                                                                                                                                                                                                                                                                                              • 习题
                                                                                                                                                                                                                                                                                                                                                              • 第11章 软件演化
                                                                                                                                                                                                                                                                                                                                                                • 11.1 软件演化的特性
                                                                                                                                                                                                                                                                                                                                                                  • 11.2 软件维护
                                                                                                                                                                                                                                                                                                                                                                    • 11.2.1 软件维护的概念
                                                                                                                                                                                                                                                                                                                                                                      • 11.2.2 软件维护的特点
                                                                                                                                                                                                                                                                                                                                                                        • 11.2.3 软件维护的过程
                                                                                                                                                                                                                                                                                                                                                                        • 11.3 软件再工程
                                                                                                                                                                                                                                                                                                                                                                          • 习题
                                                                                                                                                                                                                                                                                                                                                                          • 参考文献

                                                                                                                                                                                                                                                                                                                                                                          相关图书