软件工程原理与应用

出版时间:2011-7  出版社:清华大学出版社  作者:曾强聪,赵歆 编著  页数:289  
Tag标签:无  

内容概要

  本书是一门实用性很强的工程方法学,是软件开发者开发维护软件时的作业指南。《软件工程原理与应用》较好地体现了软件工程的实用性,不仅有较完整的软件工程知识体系,有对工程概念、规则的生动说明,并有很好的基于案例的工程方法应用,且有与工程实践相适应的基于软件生存周期的内容编排。
全书共17章,其中第1~3章介绍软件工程基础知识,包含概述、过程模式、项目管理等内容;
第4~15章介绍主流的结构化、面向对象方法,包含系统工程、需求分析、概要设计、结构化建模、面向对象建模、数据库设计、界面设计、算法设计、软件测试、软件维护等内容;
第16章介绍了一些有代表性的非主流方法;
第17章是一个有较完整UML建模描述并已基于Java、C++完全编码实现的工程案例。
  本书语言精简、通俗易懂、便于自学,而且教学资源较完备。书中案例都是基于软件工具(Rose、Visio、PowerDesigner)进行建模描述,并基于Java、C++进行了一定程度的编码验证,可作为教学或自学资源供读者参考(可与出版社或作者联系获取)。
  本书可作为高校相关专业本科生、研究生教材,也可作为软件开发人员的技术参考书,并可供广大读者自学软件工程方法。

书籍目录

第1章 软件工程概述
 1.1 软件
  1.1.1 软件特点
  1.1.2 软件分类
  1.1.3 软件的产业化发展
 1.2 软件危机
  1.2.1 危机现象
  1.2.2 原因分析
 1.3 软件工程
  1.3.1 软件工程定义
  1.3.2 软件工程技术
  1.3.3 软件工程管理
  1.3.4 软件工程目标
 1.4 主流工程方法学
  1.4.1 结构化方法学
  1.4.2 面向对象方法学
 1.5 常用软件工具
  1.5.1 Visio
  1.5.2 PowerDesigner
  1.5.3 RationalRose
  小结
  习题
第2章 软件开发过程模式
 2.1 软件生存周期
  2.1.1 软件定义期
  2.1.2 软件开发期
  2.1.3 软件运行与维护期
 2.2 瀑布模式
  2.2.1 瀑布模式的特点
  2.2.2 瀑布模式中的信息反馈
  2.2.3 瀑布模式的作用
 2.3 原型进化模式
  2.3.1 软件原型
  2.3.2 原型进化过程
 2.4 增量模式
  2.4.1 增量开发过程
  2.4.2 增量模式的优越性
 2.5 螺旋模式
 2.6 迭代模式
 2.7 组件复用模式
  小结
  习题
第3章 软件项目管理
 3.1 开发团队
  3.1.1 软件开发机构
  3.1.2 软件项目组
  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.4.4 风险防范
 3.5 软件文档管理
  3.5.1 文档概念
  3.5.2 文档分类
  3.5.3 软件文档与软件生命周期之间的关系
  3.5.4 文档的使用者
  3.5.5 文档编码
  3.5.6 文档格式
 3.6 软件配置管理
  3.6.1 软件配置概念
  3.6.2 配置规划
  3.6.3 软件变更控制
  3.6.4 软件版本控制
 3.7 软件质量管理
  3.7.1 质量标准
  3.7.2 质量计划
  3.7.3 质量保证
  3.7.4 质量指标
  小结
  习题
第4章 计算机系统工程
 4.1 计算机体系结构
  4.1.1 计算机系统特征
  4.1.2 体系结构
 4.2 系统前期分析
  4.2.1 前期分析建模
  4.2.2 系统结构建模
  4.2.3 系统工作过程建模
 4.3 项目可行性分析
  4.3.1 可行性分析意义
  4.3.2 评估内容
  4.3.3 评估报告
  小结
  习题
第5章 需求分析
 5.1 分析任务与过程
  5.1.1 需求问题
  5.1.2 分析任务
  5.1.3 任务承担者
  5.1.4 分析过程
 5.2 获取用户需求
  5.2.1 识别用户
  5.2.2 从调查中收集用户需求
  5.2.3 建立需求规约
 5.3 业务需求建模
  5.3.1 业务树图
  5.3.2 业务用例图
  5.3.3 业务活动图
 5.4 需求验证
  5.4.1 通过原型进行需求验证
  5.4.2 通过评审进行需求验证
 5.5 需求规格说明书
  小结
  习题
第6章 结构化分析建模
 6.1 分析建模作用
 6.2 数据建模
  6.2.1 实体及其关系
  6.2.2 传统ER图
  6.2.3 基于工具的ER建模
  6.2.4 建模举例
 6.3 功能建模
  6.3.1 数据流图
  6.3.2 数据流细化
  6.3.3 建模举例
 6.4 行为建模
  6.4.1 状态转换图
  6.4.2 建模举例
 6.5 数据字典
  6.5.1 数据定义
  6.5.2 功能定义
  6.5.3 行为定义
  小结
  习题
第7章 基于UML的面向对象分析建模
 7.1 面向对象建模方法
  7.1.1 面向对象建模研究
  7.1.2 UML建模
 7.2 用例建模
  7.2.1 图形元素
  7.2.2 参与者关系
  7.2.3 用例关系
  7.2.4 建模举例
 7.3 活动建模
  7.3.1 图形元素
  7.3.2 业务级活动建模
  7.3.3 用例级活动建模
 7.4 类分析建模
  7.4.1 实体类
  7.4.2 实体类关系
  7.4.3 建模举例
  小结
  习题
第8章 概要设计
 8.1 设计任务与过程
  8.1.1 设计任务
  8.1.2 设计过程
 8.2 系统构架
  8.2.1 软件系统支持环境
  8.2.2 软件系统体系结构
  8.2.3 软件系统体系风格
 8.3 数据结构
  8.3.1 程序数据
  8.3.2 数据库
 8.4 程序结构
  8.4.1 程序模块
  8.4.2 模块独立性
  8.4.3 结构化程序结构
  8.4.4 面向对象程序结构
 8.5 概要设计说明书
  小结
  习题
第9章 结构化设计建模
 9.1 建模语言
  9.1.1 程序结构图
  9.1.2 HIPO图
  9.1.3 框架伪码
 9.2 基于数据流的结构映射
  9.2.1 变换流映射
  9.2.2 事务流映射
  9.2.3 混合流映射
 9.3 程序结构优化
 9.4 设计举例
  小结
  习题
第10章 基于UML的面向对象程序设计
 10.1 面向对象设计方法
  10.1.1 两种设计方法的比较
  10.1.2 UML设计建模
 10.2 逻辑结构设计
  10.2.1 系统构架
  10.2.2 类体
  10.2.3 接口
  10.2.4 程序逻辑结构
 10.3 动态过程设计
  10.3.1 协作图
  10.3.2 时序图
  10.3.3 状态图
 10.4 物理装配与部署
  10.4.1 程序构件图
  10.4.2 系统部署图
  小结
  习题
第11章 数据库设计
 11.1 数据库体系结构
  11.1.1 基本体系结构
  11.1.2 基于数据库服务器的数据库系统
  11.1.3 数据库分布应用
  11.1.4 SQL
 11.2 数据库结构设计
  11.2.1 数据表
  11.2.2 数据表关联
  11.2.3 数据索引
  11.2.4 数据完整性
  11.2.5 数据表结构优化
 11.3 数据库访问设计
  11.3.1 数据视图
  11.3.2 存储过程
  11.3.3 数据事务
  小结
  习题
第12章 用户界面设计
 12.1 界面设计特点
  12.1.1 可视化
  12.1.2 面向用户
  12.1.3 用例驱动
  12.1.4 原型进化
 12.2 界面类型
  12.2.1 窗体
  12.2.2 Web页
 12.3 界面功能
  12.3.1 信息表示
  12.3.2 系统交互
  12.3.3 联机支持
 12.4 界面设计方法
  12.4.1 单界面结构设计
  12.4.2 多界面导航设计
  12.4.3 界面交互性设计
  小结
  习题
第13章 算法设计与编码
 13.1 结构化流程控制
 13.2 算法设计工具
  13.2.1 程序流程图
  13.2.2 NS图
  13.2.3 PAD图
  13.2.4 PDL
 13.3 Jackson设计方法
  13.3.1 设计步骤
  13.3.2 设计举例
 13.4 算法复杂度评估
  13.4.1 算法复杂度
  13.4.2 McCabe方法
 13.5 程序编码
  13.5.1 编程语言
  13.5.2 编程规范
  13.5.3 程序运行效率
  小结
  习题
第14章 软件测试
 14.1 测试目的、计划与方法
  14.1.1 测试目的
  14.1.2 测试计划
  14.1.3 测试方法
 14.2 测试任务
  14.2.1 单元测试
  14.2.2 集成测试
  14.2.3 确认测试
 14.3 测试用例
  14.3.1 白盒测试用例设计
  14.3.2 黑盒测试用例设计
 14.4 面向对象程序测试
  14.4.1 面向对象单元测试
  14.4.2 面向对象集成测试
  14.4.3 面向对象确认测试
 14.5 程序调试
  14.5.1 诊断方法
  14.5.2 调试策略
 14.6 测试工具
  14.6.1 测试数据生成程序
  14.6.2 动态分析程序
  14.6.3 静态分析程序
  小结
  习题
第15章 软件维护
 15.1 软件维护分类
 15.2 软件可维护性
  15.2.1 软件可维护性评估
  15.2.2 如何提高软件的可维护性
 15.3 软件维护实施
  15.3.1 维护机构
  15.3.2 维护过程
 15.4 软件再工程
  15.4.1 逆向工程
  15.4.2 重构工程
  15.4.3 正向工程
  小结
  习题
第16章 非主流工程方法
 16.1 敏捷工程方法
  16.1.1 敏捷价值观
  16.1.2 敏捷工程法则
  16.1.3 敏捷过程特点
  16.1.4 敏捷设计原则
  16.1.5 极限编程
  16.1.6 自适应软件开发
  16.1.7 动态系统开发方法
 16.2 净室工程方法
  16.2.1 工程策略
  16.2.2 盒结构建模
  16.2.3 程序正确性验证
 16.3 Z语言形式化规格说明
  16.3.1 Z语言特点
  16.3.2 Z语言应用举例
  小结
  习题
第17章 软件工程案例
 17.1 系统分析
  17.1.1 基本需求说明
  17.1.2 功能用例分析
  17.1.3 任务活动分析
 17.2 系统设计
  17.2.1 系统构架设计
  17.2.2 类结构设计
  17.2.3 对象交互设计
  17.2.4 棋局对垒界面设计
  17.2.5 系统构件设计
 17.3 程序框架清单
  17.3.1 客户端程序
  17.3.2 服务器程序
参考文献

章节摘录

版权页:插图:软件工程是关于软件开发、使用与维护的工程方法学,是一门涉及工程技术、工程管理与工程经济等诸多内容的综合性工程学科。软件工程建立在与软件有关的工程概念、原理与方法基础上,它是对现实软件问题的工程方法探索,具有鲜明的工程实用性。许多人认为,软件危机孕育催生了软件工程。然而,软件的产业化发展,也确实需要有软件工程方法的支持。实际上,自从软件成为工业化产品,它所面临的就已不只是软件技术问题了,而还必须考虑如管理、经济、应用等其他因素。软件工程即是基于工程角度,对有关软件的诸多因素的综合研究。软件工程的最核心问题是,如何更有效率并更高质量地开发软件,其作用范围则贯穿于自软件的最初定义,到软件的开发实现,直到软件的使用与维护的整个软件生命过程。因此,无论是软件开发者,或是软件维护修复者,还是软件使用者,都有可能成为软件工程实践者。有许多人在专门从事软件工程研究,他们是专业的软件工程研究者,他们一直在探讨如何给软件工程下一个恰如其分的定义,以使该学科研究有一个较为明确的发展目标。

编辑推荐

《软件工程原理与应用》为21世纪高等学校规划教材•软件工程,普通高等教育“十一五”国家级规划教材之一。

图书封面

图书标签Tags

评论、评分、阅读与下载


    软件工程原理与应用 PDF格式下载


用户评论 (总计0条)

 
 

 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7