《21世纪高等学校规划教材·信息管理与信息系统·信息系统开发:方法、案例与实验》以整个信息系统开发生命周期为主线,重点围绕结构化方法和面向对象开发方法,详细阐述系统规划、系统分析、系统设计、系统实施以及系统运行与支持等各阶段的主要内容,并介绍了项目管理工具以及系统分析、设计的case等,使其更具实践性。在每章之后提供了典型应用案例、思考题和练习题,用以加深理解。本书共分三部分: 第1章至第3章主要介绍信息系统的概念、主要开发方法以及贯穿项目生命周期的项目管理技术;第4章至第11章讲述系统开发各阶段的任务、过程、结构化方法和工具;第12章至第17章讲述面向对象需求理解、面向对象分析、面向对象设计和面向对象实现。附录部分针对教学内容提供了10个系统开发项目,并设计了8个实验和6套模拟题,以强化读者的实践能力。
《21世纪高等学校规划教材·信息管理与信息系统·信息系统开发:方法、案例与实验》内容丰富,翔实生动,融合了方法、案例和实验,便于读者理论联系实际,可作为高等院校管理工程和管理信息系统专业教材,也可作为计算机和信息系统专业本科生、研究生的教科书,同时也可供软件工程、系统分析技术人员参考。
信息化已经成为世界经济和社会发展的大趋势,信息系统的建设是信息化工作的关键环节,而信息系统开发成功的关键就在于正确的方法论,能否运用科学规范的系统开发方法往往影响到信息系统开发的质量,乃至成败。只有既掌握管理又掌握信息技术的优秀系统分析员,才能够科学有效地开展系统需求分析和设计,担负起组织实施的重任。
为了适应社会与技术的发展,以培养具有现代综合素质的系统分析员为目标,在教学思想上强化了与国际接轨、互动式教学和培养学生综合运用理论知识解决问题的技能。我们以精品课建设项目为契机,立足于课程改革要求,在教材建设上尽量突出以下特色:
1. 强调经典与前沿的统一。在内容组织上强调传统的结构化开发方法与新的面向对象开发方法的并重。结构化方法作为经典和成熟的开发方法,具有很强的实用价值。面向对象方法作为业界较为流行的开发方法,也被行业普遍接受。因此,教材内容在保留经典的同时,也关注前沿的开发理念和方法,使学生能够适应社会发展需求。
2. 注重案例的筛选和讲解。针对重点内容设计了适合于课堂分析的典型案例,加强学生对基本概念的学以致用和消化理解。
3. 通过实验环节加强学生的实践操作能力。针对部分需要实践操作的章节,增加实验环节,分别设计了验证性实验、设计性实验和综合性实验,强化对开发工具与方法的综合运用能力。
4. 针对知识点的巩固与练习。练习与知识点相配套,在一些重要知识点后设计了练习模块,并给出具体的解题思路,引导读者主动思考和解决问题。此外,每章都列出了小结,并配有适量的、经过精选的习题,促进读者对内容进行深入学习和思考。
5. 本书融合了一些优秀教科书的内容,注重融入新的技术和理念,如极限编程、敏捷开发、面向对象等新方法和新技术,以跟踪系统分析与设计前沿技术和方法的发展动态。
6. 强调对CASE工具的运用和掌握。使学生了解主流的软件工具和软件开发环境产品,并借助CASE工具如Visio、PowerDesigner、Rational Rose等提高系统开发的效率。
7. 各章教学内容相对独立,针对不同知识模块的案例也相对独立,在实际授课时,教师可以根据课时和教学需要,有选择地安排教学内容和实验环节。
本教材由郝晓玲主编,韩冬梅与韩松乔为副主编,负责全书内容的编写。周鑫、徐珊珊、武茂枝、谢姚蕾等同学对书稿进行了校对,并完成书中图表的修正,在此表示感谢。
本书难免存在疏漏和不足之处,敬请广大读者批评指正,编者将不胜感谢。
编 者2010年8月
第1章 信息系统开发概述
1.1 信息系统的基本概念
1.1.1 信息系统与信息技术
1.1.2 信息系统的结构
1.1.3 信息系统的类型
1.1.4 信息系统的生命周期
1.2 信息系统开发过程
1.2.1 系统规划
1.2.2 系统分析
1.2.3 系统设计
1.2.4 系统实施
1.2.5 系统运行与维护
1.3 信息系统的相关角色
1.3.1 信息系统所有者
1.3.2 信息系统用户
1.3.3 信息系统设计员
1.3.4 信息系统构造人员
1.3.5 信息系统分析员
1.3.6 项目经理
1.3.7 信息系统各种角色比较
1.4 案例分析--校园二手书交易平台的设计与实现
1.4.1 系统需求分析
1.4.2 系统设计
1.4.3 系统实现
1.4.4 案例思考
本章小结
思考与练习
第2章 信息系统开发路线、方法与工具
2.1 信息系统开发路线概述
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.6.1 case定义
2.6.2 case工具分类
2.6.3 基于case的系统开发过程
2.6.4 case工具的特点
2.7 案例分析--case工具在系统开发中的应用
2.7.1 采用powerdesigner进行过程建模
2.7.2 采用powerdesigner进行数据建模
2.7.3 采用powerdesigner进行对象建模
2.7.4 使用powerdesigner生成信息系统开发报告
2.7.5 案例思考
本章小结
思考与练习
第3章 信息系统项目管理
3.1 信息系统项目管理生命周期
3.1.1 项目发起
3.1.2 项目规划
3.1.3 项目执行
3.1.4 项目终结
3.2 项目组织
3.2.1 单纯型项目组织
3.2.2 职能型项目组织
3.2.3 矩阵型项目组织
3.3 项目管理技术
3.3.1 工作分解结构
3.3.2 甘特图
3.3.3 计划评审技术
3.4 案例分析--某系统开发项目管理失败原因分析
本章小结
思考与练习
第4章 需求获取
4.1 系统需求概述
4.1.1 需求获取的重要性
4.1.2 系统需求分类
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.3.6 在需求获取中使用原型
4.4 案例分析--客户关系管理系统的需求获取
本章小结
思考与练习
第5章 过程建模
5.1 过程建模概述
5.2 数据流图
5.2.1 数据流程图的概念和作用
5.2.2 数据流程图的基本符号
5.2.3 数据流图的绘制
5.2.4 数据流图规则
5.2.5 数据流图的分解
5.2.6 数据流图的平衡
5.3 过程逻辑
5.3.1 结构化语言
5.3.2 决策表
5.3.3 决策树
5.3.4 结构化语言、决策表和决策树的选择
5.4 数据字典
5.4.1 数据项
5.4.2 数据结构
5.4.3 数据流
5.4.4 过程字典
5.4.5 数据存储
5.5 案例分析--百货商店业务管理信息系统过程建模
本章小结
思考与练习
第6章 数据建模
6.1 数据建模相关概念
6.1.1 e-r图
6.1.2 实体
6.1.3 关系
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.5 案例分析--某网上商店概念数据建模
6.5.1 确定基本实体
6.5.2 确定实体间的关联
6.5.3 确定主码和属性
本章小结
思考与练习
第7章 应用架构设计
7.1 架构概述
7.1.1 应用架构与框架
7.1.2 架构的逻辑层次
7.2 典型的系统应用架构
7.2.1 基于主机的服务器架构
7.2.2 文件服务器架构
7.2.3 客户/服务器架构
7.2.4 三层或n层客户/服务器架构
7.2.5 浏览器/服务器架构
7.3 应用架构举例
7.3.1 mvc架构
7.3.2 架构组成
7.4 应用架构设计内容
7.4.1 数据架构设计
7.4.2 过程架构设计
7.4.3 网络架构设计
7.5 案例分析--某服务台系统架构设计
本章小结
思考与练习
第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 hipo图
8.3.2 软件结构图
8.3.3 详细设计工具
8.4 软件结构设计方法
8.4.1 变换分析设计
8.4.2 事务分析设计
8.4.3 综合数据流图的映射
8.4.4 分层数据流图的映射
8.5 软件详细设计
8.5.1 结构化程序设计
8.5.2 程序设计目标
8.5.3 程序设计方法
8.6 案例分析--百货商店业务管理信息系统过程设计
本章小结
思考与练习
第9章 数据库设计
9.1 逻辑数据模型和物理数据模型
9.1.1 数据库设计前提
9.1.2 逻辑数据模型到物理数据模型的转换规则
9.2 关系数据库模型
9.3 将e-r图转化成关系
9.3.1 实体转换
9.3.2 关系转换
9.3.3 关系合并
9.4 设计字段
9.4.1 选择数据类型
9.4.2 控制数据完整性
9.4.3 设计文件的控制策略
9.5 代码设计
9.5.1 代码及其作用
9.5.2 代码种类
9.5.3 代码设计方法
9.5.4 代码校验
本章小结
思考与练习
第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.2.5 输入控制与校验
10.2.6 输入设计过程
10.3 用户界面设计
10.3.1 用户界面设计原则
10.3.2 用户界面设计元素
10.3.3 用户界面交互方式
10.3.4 用户界面设计步骤
10.4 输入输出界面示例
本章小结
思考与练习
第11章 系统实现与运行
11.1 软件实现
11.1.1 软件编程
11.1.2 软件包安装与测试
11.2 软件测试
11.2.1 软件测试准则与标准
11.2.2 测试步骤
11.3 白盒测试技术
11.3.1 逻辑覆盖
11.3.2 控制结构测试
11.3.3 循环测试
11.4 黑盒测试技术
11.4.1 等价类划分法
11.4.2 边界值分析法
11.4.3 错误推测法
11.5 网络实现
11.6 数据库实现
11.6.1 定义数据库结构
11.6.2 数据装载
11.6.3 数据库试运行
11.7 系统转换
11.7.1 直接转换法
11.7.2 并行转换法
11.7.3 试点过渡法
11.8 系统运行与支持
11.8.1 系统运行
11.8.2 系统支持与维护
11.9 案例分析--某网站系统测试
11.9.1 测试内容概述
11.9.2 程序测试
11.9.3 通用测试内容
11.9.4 模块功能测试
本章小结
思考与练习
第12章 面向对象开发概述
12.1 面向对象相关概念
12.1.1 实体与对象
12.1.2 类与对象
12.1.3 消息
12.1.4 属性
12.1.5 操作
12.2 面向对象的特性
12.2.1 封装
12.2.2 继承
12.2.3 多态性
12.3 面向对象开发的主要方法
12.3.1 booch的ood方法
12.3.2 coad/yourdon的ooa-ood方法
12.3.3 rumbaugh的omt方法
12.3.4 jacoson方法
12.3.5 各种方法的集成
本章小结
思考与练习
第13章 uml
13.1 uml概述
13.1.1 uml的概念和特点
13.1.2 uml的构成
13.2 用例图
13.2.1 参与者
13.2.2 用例
13.2.3 关联
13.2.4 用例之间关系
13.3 类图和对象图
13.3.1 类的定义
13.3.2 类之间的关联
13.3.3 类的版型
13.3.4 对象图
13.4 状态图
13.4.1 状态
13.4.2 事件
13.5 活动图
13.5.1 活动
13.5.2 泳道
13.5.3 判定点
13.5.4 并发路径
13.5.5 对象流
13.5.6 信号
13.6 顺序图
13.6.1 顺序图符号
13.6.2 对象
13.6.3 消息
13.7 协作图
13.7.1 序列化
13.7.2 迭代
13.7.3 控制点条件
13.8 组件图
13.8.1 组件
13.8.2 依赖关系
13.8.3 接口
13.9 部署图
13.9.1 节点
13.9.2 通信关联
13.10 包图
13.10.1 包之间的关系
13.10.2 合并包
本章小结
思考与练习
第14章 面向对象需求理解
14.1 基于uml的系统开发过程
14.1.1 需求理解
14.1.2 系统分析
14.1.3 系统设计
14.1.4 系统实现
14.2 理解需求
14.2.1 确定业务参与者
14.2.2 确定用例
14.2.3 构造用例图
14.2.4 用例说明
14.2.5 用例模型检查
14.3 案例分析--电子培训系统的需求理解
14.3.1 分析问题领域
14.3.2 确定abc e-training系统范围和系统边界
14.3.3 定义参与者
14.3.4 定义用例
14.3.5 绘制用例图
14.3.6 用例说明
本章小结
思考与练习
第15章 面向对象分析
15.1 领域建模
15.1.1 发现类
15.1.2 确定关联
15.1.3 确定属性
15.2 行为建模
15.2.1 状态图
15.2.2 活动图
15.2.3 顺序图
15.3 案例分析--网上商店客户订单处理系统分析
15.3.1 用例图
15.3.2 活动图
15.3.3 类模型
15.3.4 顺序图
15.3.5 状态图
本章小结
思考与练习
第16章 面向对象设计
16.1 系统设计与uml
16.1.1 系统设计的主要任务
16.1.2 协作图
16.1.3 组件图
16.1.4 部署图
16.2 通用职责分配软件模式
16.2.1 专家模式
16.2.2 创建者模式
16.2.3 控制器模式
16.2.4 低耦合模式
16.2.5 高内聚模式
16.3 类的设计
16.3.1 设计类
16.3.2 设计关系
16.3.3 设计类图
16.4 接口设计
16.4.1 单个对象的接口设计
16.4.2 多个对象的接口设计
16.4.3 层次之间接口设计
16.5 包设计
16.5.1 包设计原则
16.5.2 包设计步骤
16.6 数据库设计
16.6.1 uml类图映射为库表的原则
16.6.2 关系约束检查策略
本章小结
思考与练习
第17章 面向对象实现
17.1 设计映射到代码
17.1.1 根据设计类图创建类的定义
17.1.2 根据协作图创建方法
17.2 面向对象程序设计
17.2.1 可重用原则
17.2.2 可扩充原则
17.2.3 健壮性原则
17.3 面向对象测试策略
17.3.1 单元测试
17.3.2 集成测试
17.3.3 系统测试
17.3.4 回归测试
17.4 设计测试用例
本章小结
思考与练习
附录a 课程实验
a.1 实验教学的目的
a.2 实验教学的任务
a.3 实验内容
a.4 实验要求
a.5 实验考核标准
a.6 信息系统项目
a.7 信息系统实验
a.7.1 实验1--project软件项目管理
a.7.2 实验2--利用visio进行需求分析
a.7.3 实验3--结构化设计
a.7.4 实验4--系统开发环境配置
a.7.5 实验5--软件编码与测试
a.7.6 实验6--uml与面向对象开发
a.7.7 实验7--结构化设计综合实验
a.7.8 实验8--面向对象综合实验
附录b 模拟题
模拟题
模拟题
模拟题
模拟题
模拟题
模拟题