书籍详情
基于项目的软件工程:面向对象研究方法
作者:(美)Evelyn Stiller,(美)Cathie LeBlanc著;贲可荣,张秀山等译;贲可荣译
出版社:机械工业出版社
出版时间:2002-06-01
ISBN:9787111101017
定价:¥30.00
购买这本书可以去
内容简介
本书是为初学者提供的集软件工程实用性和实践性与一体的第一本教科书。通过本书的学习,没有工作经历的学生也可以获得现实世界的实践经验并亲身体会到使用软工程技术的益处。本书阐述了软件工程生命周期的各个阶段,并通过两个现行案例分析来认识开发过程中的概念化、分析、设计和实现阶段。这两个案例可以由一个小型软件开发项目,学生可将对各阶段的理解的经验应用于其中。本书集中讨论面向对象软件开发,并按此范型组织内容。本书不依赖于具体的程序设计语言(必要的代码示例用Java给出),并采用统一建模语言(UML)的子集来为软件建模,解释学生工作中需要用到的符号。本书为学生而写,同时对于那些想在软件项目分析、设计、实现和测试方面获得切身体会的专业人员也非常适用。
作者简介
暂缺《基于项目的软件工程:面向对象研究方法》作者简介
目录
译者序
译者简介
前言
第1章 软件工程引论
1.1 关键概念
1.2 为什么要建造软件
1.3 软件开发范型要素
1.3.1 项目概念化
1.3.2 项目表示
1.3.3 项目实现
1.4 软件工程技术简史
1.4.1 结构化编程
1.4.2 功能分解
1.4.3 结构化分析和设计
1.4.4 以数据为中心的范型
1.4.5 面向对象范型
1.5 不用工程技术生产软件的代价
1.6 为什么软件工程不是万能的
1.7 项目的作用
1.8 分组工作
1.9 创建项目小组
1.10 班级项目:功能需求
1.10.1 项目概述
1.10.2 游戏要素
1.10.3 游戏事件序列
1.10.4 在行星间移动和着陆
1.10.5 赢得游戏
1.10.6 项目时间框架
1.11 复习题
第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.4 软件生命周期
2.5 面向对象建模
2.5.1 建立模型的作用
2.5.2 创建优质模块
2.5.3 建模符号
2.5.4 软件工程中模型的使用
2.6 良好面向对象系统的属性
2.7 分组工作
2.7.1 主程序员组
2.7.2 召开有效的小组会议
2.8 复习题
第3章 面向对象分析
3.1 关键概念
3.2 需求分析介绍
3.3 需求分析的重要性
3.4 需求规格说明
3.5 案例分析:图书馆管理系统规格说明
3.6 评价需求规格说明
3.7 细化需求规格说明
3.8 验证需求规格说明
3.9 通过开发扩展需求
3.10 需求分析过程
3.10.1 识别UCCD的类
3.10.2 案例分析:识别LMS中的类
3.10.3 识别用况
3.10.4 案例分析:识别LMS中的用况
3.10.5 场景开发
3.10.6 案例分析:LMS中的样本场景
3.10.7 用UML对系统建模
3.10.8 类图
3.10.9 案例分析:LMS的类图
3.10.10 用况图
3.10.11 案例分析:LMS的用况图
3.10.12 需求分析小结
3.10.13 系统演化
3.11 分析班级项目
3.12 分组工作
3.13 复习题
第4章 产品设计
4.1 关键概念
4.2 设计目标
4.3 类设计与产品设计
4.4 产品设计概述和目标
4.5 对象持久化
4.5.1 对象序列化
4.5.2 评价对象持久化
4.6 案例分析:LMS中的对象持久化
4.7 进程体系结构
4.7.1 多节点建模
4.7.2 进程间通信建模
4.7.3 状态机
4.7.4 对控制的多线程建模
4.7.5 网络资源的有效利用
4.8 案例分析:LMS中的进程间通信
4.9 班级项目:“银河侦探”游戏中的进程间通信
4.10 用户界面
4.11 用户界面设计
4.12 用户界面设计原则
4.12.1 了解用户
4.12.2 界面设计规则
4.12.3 交互样式
4.13 案例分析:LMS的用户界面
4.14 分组工作
4.15 班级项目产品设计
4.16 复习题
第5章 类设计
5.1 关键概念
5.2 类设计过程
5.2.1 类构架
5.2.2 案例分析:LMS中的类构架
5.2.3 系统分解
5.3 UML进一步介绍
5.3.1 类图的符号修饰
5.3.2 交互图
5.3.3 案例分析:LMS的交互图
5.3.4 协作图的创建
5.3.5 案例分析:LMS中更多的交互图
5.3.6 评估设计
5.3.7 案例分析:评估LMS的设计
5.3.8 对象图
5.3.9 案例分析:LMS的对象图
5.3.10 对象图的创建
5.4 类设计阶段的目标
5.4.1 代码重用
5.4.2 案例分析:LMS中的代码重用
5.4.3 良好设计的类与方法
5.4.4 数据完整性
5.5 类设计的验证
5.6 设计班级项目
5.7 复习题
第6章 案例分析:Game2D与方法设计
6.1 关键概念
6.2 概述
6.3 需求规格说明
6.4 细化后的需求规格说明
6.5 需求分析
6.5.1 名词列表
6.5.2 名词表的分析
6.5.3 主类列表
6.5.4 用况开发
6.5.5 场景
6.5.6 细化后的类列表
6.5.7 建模
6.6 产品设计
6.6.1 进程体系结构
6.6.2 图形用户界面评审
6.7 类设计
6.7.1 交互图
6.7.2 对象图
6.7.3 重用
6.7.4 类构架
6.8 方法设计
6.8.1 确定方法
6.8.2 Game2D方法设计
6.8.3 创建优质方法
6.9 复习题
第7章 实现
7.1 关键概念
7.2 引论
7.3 实现途径
7.3.1 “大突击”实现
7.3.2 自顶向下与自底向上实现
7.3.3 自顶向下与自底向上方法的结合
7.3.4 实现的线程方法
7.4 实现计划
7.5 案例分析:LMS的实现计划
7.6 编程风格
7.6.1 越短越简单
7.6.2 越简单的代码判断越少
7.6.3 应避免过量的嵌套逻辑
7.7 注释和内部文档
7.7.1 头注释块
7.7.2 行注释
7.8 项目编码标准
7.9 实现班级项目
7.10 复习题
第8章 测试
8.1 关键概念
8.2 什么是测试
8.3 面向对象测试原理
8.4 定义
8.4.1 错误、故障和失效
8.4.2 测试计划
8.4.3 测试喻示
8.4.4 测试用例
8.4.5 白盒测试
8.4.6 黑盒测试
8.4.7 单元测试
8.4.8 集成测试
8.4.9 系统测试
8.5 测试步骤
8.6 测试面向对象系统的特殊论题
8.7 案例分析:测试LMS
8.7.1 测试计划
8.7.2 单元测试阶段I
8.7.3 系统地提出测试用例
8.8 测试班级项目
8.9 面对变化的测试:配置管理
8.10 复习题
第9章 项目管理
9.1 关键概念
9.2 引论
9.3 项目经理职责
9.3.1 软件度量
9.3.2 案例分析:项目估计
9.3.3 质量控制度量
9.3.4 神奇的人-月
9.4 配置管理
9.4.1 版本控制
9.4.2 变动控制
9.4.3 配置审核
9.4.4 配置状态报告
9.5 项目计划和监督
9.5.1 项目演化
9.5.2 案例分析:Game2D演化
9.5.3 项目计划
9.5.4 案例分析:Game2D项目计划
9.5.5 任务调度
9.5.6 监督进度
9.6 项目组
9.6.1 组建项目组
9.6.2 队伍开发的四个阶段
9.6.3 冲突
9.6.4 解决冲突
9.7 风险管理
9.7.1 技术风险起源
9.7.2 人员风险起源
9.7.3 风险的后果
9.8 降低风险
9.8.1 尽早进行产品评估
9.8.2 尽早实现系统有风险的部分
9.8.3 尽早使用新技术
9.8.4 尽早解决类交互问题
9.9 风险管理方面的进一步读物
9.10 案例分析:LMS的风险分析
9.10.1 LMS中的风险权衡
9.10.2 LMS中的技术风险
9.11 复习题
第10章 设计模式
10.1 关键概念
10.2 设计模式的目的
10.3 什么是设计模式
10.4 探索设计模式
10.4.1 案例分析:包装程序设计模式
10.4.2 案例分析:迭代程序设计模式
10.4.3 案例分析:状态设计模式
10.4.4 案例分析:单实例设计模式
10.5 复习题
第11章 软件开发的灾难故事
11.1 关键概念
11.2 引论
11.3 Therac-25
11.4 CONFIRM
11.5 电话和通信
第12章 完成并展示班级项目
12.1 成功完成班级项目
12.2 对项目的思考
12.3 展示项目
12.3.1 非技术类用户的类型
12.3.2 非技术展示要点
12.3.3 技术展示要点
12.3.4 项目展示
参考文献
索引
译者简介
前言
第1章 软件工程引论
1.1 关键概念
1.2 为什么要建造软件
1.3 软件开发范型要素
1.3.1 项目概念化
1.3.2 项目表示
1.3.3 项目实现
1.4 软件工程技术简史
1.4.1 结构化编程
1.4.2 功能分解
1.4.3 结构化分析和设计
1.4.4 以数据为中心的范型
1.4.5 面向对象范型
1.5 不用工程技术生产软件的代价
1.6 为什么软件工程不是万能的
1.7 项目的作用
1.8 分组工作
1.9 创建项目小组
1.10 班级项目:功能需求
1.10.1 项目概述
1.10.2 游戏要素
1.10.3 游戏事件序列
1.10.4 在行星间移动和着陆
1.10.5 赢得游戏
1.10.6 项目时间框架
1.11 复习题
第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.4 软件生命周期
2.5 面向对象建模
2.5.1 建立模型的作用
2.5.2 创建优质模块
2.5.3 建模符号
2.5.4 软件工程中模型的使用
2.6 良好面向对象系统的属性
2.7 分组工作
2.7.1 主程序员组
2.7.2 召开有效的小组会议
2.8 复习题
第3章 面向对象分析
3.1 关键概念
3.2 需求分析介绍
3.3 需求分析的重要性
3.4 需求规格说明
3.5 案例分析:图书馆管理系统规格说明
3.6 评价需求规格说明
3.7 细化需求规格说明
3.8 验证需求规格说明
3.9 通过开发扩展需求
3.10 需求分析过程
3.10.1 识别UCCD的类
3.10.2 案例分析:识别LMS中的类
3.10.3 识别用况
3.10.4 案例分析:识别LMS中的用况
3.10.5 场景开发
3.10.6 案例分析:LMS中的样本场景
3.10.7 用UML对系统建模
3.10.8 类图
3.10.9 案例分析:LMS的类图
3.10.10 用况图
3.10.11 案例分析:LMS的用况图
3.10.12 需求分析小结
3.10.13 系统演化
3.11 分析班级项目
3.12 分组工作
3.13 复习题
第4章 产品设计
4.1 关键概念
4.2 设计目标
4.3 类设计与产品设计
4.4 产品设计概述和目标
4.5 对象持久化
4.5.1 对象序列化
4.5.2 评价对象持久化
4.6 案例分析:LMS中的对象持久化
4.7 进程体系结构
4.7.1 多节点建模
4.7.2 进程间通信建模
4.7.3 状态机
4.7.4 对控制的多线程建模
4.7.5 网络资源的有效利用
4.8 案例分析:LMS中的进程间通信
4.9 班级项目:“银河侦探”游戏中的进程间通信
4.10 用户界面
4.11 用户界面设计
4.12 用户界面设计原则
4.12.1 了解用户
4.12.2 界面设计规则
4.12.3 交互样式
4.13 案例分析:LMS的用户界面
4.14 分组工作
4.15 班级项目产品设计
4.16 复习题
第5章 类设计
5.1 关键概念
5.2 类设计过程
5.2.1 类构架
5.2.2 案例分析:LMS中的类构架
5.2.3 系统分解
5.3 UML进一步介绍
5.3.1 类图的符号修饰
5.3.2 交互图
5.3.3 案例分析:LMS的交互图
5.3.4 协作图的创建
5.3.5 案例分析:LMS中更多的交互图
5.3.6 评估设计
5.3.7 案例分析:评估LMS的设计
5.3.8 对象图
5.3.9 案例分析:LMS的对象图
5.3.10 对象图的创建
5.4 类设计阶段的目标
5.4.1 代码重用
5.4.2 案例分析:LMS中的代码重用
5.4.3 良好设计的类与方法
5.4.4 数据完整性
5.5 类设计的验证
5.6 设计班级项目
5.7 复习题
第6章 案例分析:Game2D与方法设计
6.1 关键概念
6.2 概述
6.3 需求规格说明
6.4 细化后的需求规格说明
6.5 需求分析
6.5.1 名词列表
6.5.2 名词表的分析
6.5.3 主类列表
6.5.4 用况开发
6.5.5 场景
6.5.6 细化后的类列表
6.5.7 建模
6.6 产品设计
6.6.1 进程体系结构
6.6.2 图形用户界面评审
6.7 类设计
6.7.1 交互图
6.7.2 对象图
6.7.3 重用
6.7.4 类构架
6.8 方法设计
6.8.1 确定方法
6.8.2 Game2D方法设计
6.8.3 创建优质方法
6.9 复习题
第7章 实现
7.1 关键概念
7.2 引论
7.3 实现途径
7.3.1 “大突击”实现
7.3.2 自顶向下与自底向上实现
7.3.3 自顶向下与自底向上方法的结合
7.3.4 实现的线程方法
7.4 实现计划
7.5 案例分析:LMS的实现计划
7.6 编程风格
7.6.1 越短越简单
7.6.2 越简单的代码判断越少
7.6.3 应避免过量的嵌套逻辑
7.7 注释和内部文档
7.7.1 头注释块
7.7.2 行注释
7.8 项目编码标准
7.9 实现班级项目
7.10 复习题
第8章 测试
8.1 关键概念
8.2 什么是测试
8.3 面向对象测试原理
8.4 定义
8.4.1 错误、故障和失效
8.4.2 测试计划
8.4.3 测试喻示
8.4.4 测试用例
8.4.5 白盒测试
8.4.6 黑盒测试
8.4.7 单元测试
8.4.8 集成测试
8.4.9 系统测试
8.5 测试步骤
8.6 测试面向对象系统的特殊论题
8.7 案例分析:测试LMS
8.7.1 测试计划
8.7.2 单元测试阶段I
8.7.3 系统地提出测试用例
8.8 测试班级项目
8.9 面对变化的测试:配置管理
8.10 复习题
第9章 项目管理
9.1 关键概念
9.2 引论
9.3 项目经理职责
9.3.1 软件度量
9.3.2 案例分析:项目估计
9.3.3 质量控制度量
9.3.4 神奇的人-月
9.4 配置管理
9.4.1 版本控制
9.4.2 变动控制
9.4.3 配置审核
9.4.4 配置状态报告
9.5 项目计划和监督
9.5.1 项目演化
9.5.2 案例分析:Game2D演化
9.5.3 项目计划
9.5.4 案例分析:Game2D项目计划
9.5.5 任务调度
9.5.6 监督进度
9.6 项目组
9.6.1 组建项目组
9.6.2 队伍开发的四个阶段
9.6.3 冲突
9.6.4 解决冲突
9.7 风险管理
9.7.1 技术风险起源
9.7.2 人员风险起源
9.7.3 风险的后果
9.8 降低风险
9.8.1 尽早进行产品评估
9.8.2 尽早实现系统有风险的部分
9.8.3 尽早使用新技术
9.8.4 尽早解决类交互问题
9.9 风险管理方面的进一步读物
9.10 案例分析:LMS的风险分析
9.10.1 LMS中的风险权衡
9.10.2 LMS中的技术风险
9.11 复习题
第10章 设计模式
10.1 关键概念
10.2 设计模式的目的
10.3 什么是设计模式
10.4 探索设计模式
10.4.1 案例分析:包装程序设计模式
10.4.2 案例分析:迭代程序设计模式
10.4.3 案例分析:状态设计模式
10.4.4 案例分析:单实例设计模式
10.5 复习题
第11章 软件开发的灾难故事
11.1 关键概念
11.2 引论
11.3 Therac-25
11.4 CONFIRM
11.5 电话和通信
第12章 完成并展示班级项目
12.1 成功完成班级项目
12.2 对项目的思考
12.3 展示项目
12.3.1 非技术类用户的类型
12.3.2 非技术展示要点
12.3.3 技术展示要点
12.3.4 项目展示
参考文献
索引
猜您喜欢