图书
软件工程方法与实践

软件工程方法与实践"

作者:胥光辉
ISBN:7-111-13928-3
定价:¥24.0
字数:0千字
页数:
出版时间:2004-02-26
开本:16开
版次:
装帧:平装
出版社:机械工业出版社
简介

本书全面系统地介绍了软件工程的概念、原理和典型的技术方法。本书旨在为软件工程领域的理论研究和实践应用架起一座沟通的桥梁,在注重实用的前提下,介绍软件工程领域最新的研究成果和成熟的实践经验。与同类教材的不同点包括将面向对象方法和结构化方法有机结合,注重标准化和过程改进,强调项目管理和软件测试等。 本书共11章,分成三部分:第1部分包括第1~3章,介绍软件工程的由来、软件过程模型和CMM。第2部分包括第4~8章,按软件生命周期的顺序介绍需求分析、系统设计、程序开发和软件测试几个阶段。其中第5章讨论了面向对象方法的基本原理。第3部分包括第9~11章,着重讨论软件项目的管理技术,包括软件度量、项目管理和项目管理实例研究。附录中简单介绍了统一建模语言UML。 本书可作为高等院校“软件工程”课程的材料或教学参考书,也可供有一定实际经验 的软件工作人员和广大计算机用户阅读参考。

前言

软件工程是计算机学科的主干课程之一,主要研究如何应用科学理论和工程技术来指导大型软件系统的开发,使其发展成一门严格的工程科学,软件工程的最终目的是以较低的成本研制具有较高质量的软件。 计算机软件开发和软件工程领域的发展一直比较活跃,新的技术和方法层出不穷。从传统的结构化方法到目前的面向对象方法,对象建模技术已经从百家争鸣走向了统一的标准化道路,统一建模语言UML(Unified Modeling Language)已经成为产业界的标准。软件过程对于软件开发和软件质量的重要性得到日益重视,能力成熟度模型CMM(Capability Maturity Model)对于过程改进活动的有效性已经被大量实践所证实。项目管理是一种广泛应用于各行各业的技术管理过程,对项目实施有效的管理已经成为软件项目成败的关键。 目前高等院校使用的软件工程教材普遍存在知识老化与软件开发实践严重脱节等问题。大多数教材主要讲授传统的结构化开发方法,对业界流行的面向对象方法没有涉及或内容较少。本书旨在为软件工程领域的理论研究和实践应用架起一座沟通的桥梁,在注重实用的前提下,介绍软件工程领域最新的研究成果和成熟的实践经验。 与同类教材的不同点主要包括: ●面向对象和结构化有机结合:在软件开发的各个阶段介绍面向对象和结构化方法的基本原理和思想,使两者相互融合。 ●注重标准化和过程改进:介绍CMM的结构和关键概念,使学生尽早树立软件过程改进的理念。介绍产业界广泛应用的UML建模技术。 ●软件度量与项目管理:从应用的角度介绍了软件度量指标体系及其操作实践。对于如何制定项目计划、成本估算、风险管理和跟踪项目进展等项目管理中的关键技术进行了较深入的探讨,并给出了一个项目管理的实例研究。 ●强调软件测试:比较详细地介绍工程实践中非常重视的软件测试的计划、组织、方法和评估。 本书的编者都是工作在教学和科研第一线的青年学者,对软件工程有着浓厚的兴趣,在软件工程的教学、科研和实践方面均有所研究。本书的第1章、第6~11章由胥光辉编写,第2、3章和附录由金凤林编写,第4、5章由丁力编写,全书由胥光辉统稿。 在本书编写过程中,一直得到王元元教授的关注和支持,他对本书内容的编选提出了宝贵的意见。张涛副教授提供了部分资料,在此一并致谢。 由于编者水平有限,书中难免存在不足之处,敬请广大读者批评指正。

目录

编者的话
前言
第1章 软件工程的由来
1.1 计算机软件的发展
1.1.1 什么是软件
1.1.2 软件开发的历史
1. 1.3 软件危机
1.2 软件工程的引入
1.2.1 什么是软件工程
1.2. 2 软件工程与计算机科学的关系
1.2.3 软件工程的目标
1.3 软件开发过程
1.4 软件工程的研究内容
1.5 软件工程实践的参与者
第2章 软件过程模型
2.1 软件过程的基本概念
2.1.1 什么是软件过程
2.1.2 软件生命周期
2.2 软件过程模型
2.2.1 瀑布模型(Waterfall Model)
2.2.2 V模型(V Model)
2.2.3 快速原型模型(Fast Prototype Model)
2.2.4 增量模型(Incremental Model)
2.2.5 螺旋模型(Spiral Model)
2.2.6 喷泉模型(Fountain Model)
2.2.7 智能模型(Intelligent Model)
2.3 软件过程建模
2.3.1 传统方法学与面向对象方法学
2.3.2 过程建模方法、工具和技术
2.3.3 典型面向对象建模方法简介
第3章 软件过程改进指南:CMM模型
3.1 过程改进
3.1.1 过程改进的两种模式
3.1.2 过程改进的原则和通用步骤
3.1.3 软件组织的成熟与不成熟
3.2 CMM的概念
3.2.1 CMM的历史
3.2.2几个关键概念
3.2.3 软件过程成熟度的5个等级
3.2。4 成熟度等级的行为特征
3.2.5 成熟度等级之间的关系
3.3 CMM的可操作定义
3.3.1 CMM的内部结构
3。3.2 关键过程域和目标
3。3.3 共同特点
3。3.4 关键实践
3.4 CMM的应用
3.4.1 软件过程评估和软件能力评价方法
3.4.2 软件过程评估和软件能力评价方法之间的差异
3.4.3 在具体背景下使用CMM
3.5 CMM的发展
3.5.1 集成能力成熟度模型CMMI
3.5.2 个体软件过程PSP
3.5.3 团体软件过程TSP
第4章 抓住用户需求
4.1 需求过程
4.1.1 需求的获取与分析
4.1.2 需求描述
4.1.3 快速原型和评价
4.1.4 需求文档化
4.1.5 需求的验证
4.1.6 需求过程的参与者
4.2 需求的层次与种类
4.2.1 需求的层次
4.2.2 功能需求(Functional Requirements)
4.2.3 非功能需求(Nonfunctional
Requirements)
4.3 需求文档
4.3.1 需求定义文档(Requirements
Definition)
4.3.2 需求规格说明(Requirements
Specification)
4.4 需求的验证
4.4.1 需求评审
4.4.2 测试需求
4.5 需求的管理
第5章 面向对象开发
5.1 什么是OO
5.1.1 类和对象
5.1.2 消息和方法
5.1.3 继承和多态
5.2 OO 需求分析
5.2.1 OO需求分析概述
5.2.2 建立对象模型
5.2.3 建立动态模型
5.2.4 建立功能模型
5.3 用例(Use-Case)模型
5.3.1 什么是用例
5.3.2 UML的用例模型
5.4 OO系统设计
5.4.1 系统设计的原则
5.4.2 系统划分
5.4.3 对象设计
5.5 OO程序设计
5.5.1 OO程序设计风格
5.5.2 面向对象编程语言
5.5.3 Demeter法则
第6章 系统设计
6.1 什么是设计
6.1.1 概要设计
6.1.2 详细设计
6.2 如何设计
6.2.1 分解和模块化
6.2.2 体系结构风格
6.2.3 其他设计要素
6.3 什么是好的设计
6.3.1 构件独立性
6.3.2 异常识别与处理
6.3.3 防错与容错
6.4 设计评估与验证
6.4.1 设计评审
6.4.2 设计质量的度量
6.4.3 设计比较
第7章 编写程序
7.1 什么是好程序
7.1.1 质量及其性质
7.1.2 Garvin的5类质量观
7.1.3 好程序的标准
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 不可重现的错误
7.5 程序文档
第8章 测试程序和系统
8.1 软件测试概述
8,1.1 几个术语
8.1.2 产生缺陷的原因
8.1.3 软件测试目的
8.1.4 软件测试类型
8.2 静态测试
8.2.1 静态测试的内容
8.2.2 静态测试方法
8.2.3 一个静态测试的实例
8.2.4 静态测试的效果
8.3 结构性测试
8.3.1 控制流测试
8.3.2 数据流测试
8.4 功能测试
8.4.1 子域分解
8.4.2 边界值分析
8.4.3 因果图和决策表
8.5 软件测试过程
8.5.1 单元测试
8.5.2 集成测试
8.5.3 系统测试
8.5.4 验收及安装测试
8.6 何时停止
8.6.1 植错法
8.6.2 可靠性、可用性和可维护性
8.6.3 测量可靠性、可用性和可维护性
8.6.4 软件可靠性预测
8.7 过程、文档及管理
8.7.1 测试计划
8.7.2 测试规范
8.7.3 测试用例表
8.7.4 问题报告表
8.7.5 测试分析报告
第9章 软件度量和系统评价
9.1 软件度量的概述
9.1.1 什么是度量
9.1.2 度量的基本理论
9.1.3 软件度量
9.2 过程和项目度量
9.2.1 过程度量
9.2.2 项目度量
9.3 软件结构复杂性度量
9.3.1 控制结构复杂性度量
9.3.2 源代码的度量
9.4 软件质量的度量
9.4.1 影响软件质量的因素
9.4.2 软件质量的衡量标准
9.4.3 软件质量的度量
9.5 面向对象系统的度量
9.5.1 C&K度量集
9.5.2 MOOD和MOOD2度量集
9.5.3 L&K软件规模度量
9.6 软件度量实施
第10章 软件项目管理
10.1 项目管理的概念
10.1.1 项目管理的范围
10.1.2 人员
10.1.3 资源
10.1.4 过程
10.1.5 资金
10.1.6 文档
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 COCOMOII
10.3.4 找到合适的模型
10.4 风险管理
10.4.1 风险的类型
10.4.2 识别风险
10.4.3 风险管理活动
10.5 跟踪项目的进展
10.5.1 工作分解结构和活动图
10.5.2 预计项目完成时间
第11章 项目管理实例研究
11.1 院校环境的特点
11.2 软件项目管理
11.2.1 配置管理
11.2.2 缺陷跟踪
11.2.3 任务分配与管理
11.2.4 程序风格和界面风格
11.2.5 日常项目管理
11.2.6 开发自己的项目管理工具软件
11.3 项目管理规范文档
11.3.1 缺陷跟踪过程文档
11.3.2 程序设计风格标准
11.3.3 界面设计风格标准
附录A UML简介
A.1 引言
A.1.1 UML历史
A.1.2 UML的目标
A.2 UML语言基础
A.2.1 UML的基本构造部分
A.2.2 UML的规则
A.2.3 UML中的公共机制
A.3 对结构建模
A.3.1 类图
A.3.2 对象图
A.4 对行为建模
A.4.1 用例图
A.4.2 顺序图
A.4.3 协作图
A.4.4 状态图
A.4.5 活动图
A.5 对体系结构建模
A.5.1 构件图
A.5.2 部署图
A.6 Rational统一开发过程
A.6.1 特点
A.6.2 二维开发模型
A.6.3 各个阶段和里程碑
A.6.4 核心工作流(Core Workflows)
A.6.5 迭代和增量的开发过程
参考文献

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个