软件工程导论
本书主要介绍了软件工程的基本概念、原理和应用,内容包括:软件工程概述,软件需求分析,软件设计、软件编码和测试,软件维护,软件项目管理,面向对象方法学的概念、 分析、设计与实现,统一建模语言UML。其中着重介绍了面向对象的软件开发方法。
本书在编排上,注重理论与实践相结合,采用案例教学模式,突出实践环节,每个环节设置了任务描述、任务分析、准备知识、任务实施、知识链接、拓展提高、操作技巧、项目小结和项目考核等特色模块。
本书可作为高等院校计算机专业或信息管理专业的教材,也可供软件培训、软件开发人员阅读参考。
项目一 认识软件工程
任务一:软件工程基本知识培训
任务描述
任务分析
准备知识
任务实施
软件工程的概念
软件工程的基本原理
软件工程的基本目标
软件危机
任务二:选择软件生存周期模型
任务描述
任务分析
准备知识
软件生存周期
瀑布模型
快速原型模型
增量模型
螺旋模型
喷泉模型
形式化方法模型
任务实施
任务三:了解软件开发方法和软件开发工具
任务描述
任务分析
准备知识
任务实施
软件开发方法的概念
软件开发的基本方法
软件开发工具
任务四:强化认识面向对象软件工程
任务描述
任务分析
准备知识
传统的软件工程
面向对象的软件工程
面向对象方法的基本思想
任务实施
传统软件工程存在的问题
传统结构化技术的缺点
面向对象方法的主要优点
项目小结
项目考核
项目二 软件需求分析
任务:编写软件需求规格说明书
任务描述
任务分析
准备知识
软件需求分析概念
软件需求分析的任务
软件需求分析的步骤
常规的软件需求获取的方法
快速原型法在软件需求分析中的应用
分析模型
分析建模的描述工具
软件需求说明
结构化分析方法
画出分层数据流图
确定数据定义与加工策略
复审
需求验证
任务实施
项目小结
项目考核
项目三 软件总体设计
任务一:教材购销系统结构设计
任务描述
任务分析
准备知识
总体设计的任务
总体设计的步骤
模块化
抽象
信息隐蔽
模块独立性
结构设计准则
系统结构图(SC图)
数据流图的类型
设计过程
变换分析
事务分析
设计优化
任务实施
任务二:教材购销子系统总体设计
任务描述
任务分析
准备知识
任务实施
项目小结
项目考核
项目四 软件详细设计
任务一:详细设计“教材购销系统”部分模块
任务描述
任务分析
准备知识
详细设计的任务
详细设计的原则
详细设计的工具
Jackson图
任务实施
写出模块说明
将模块说明细化为详细逻辑
任务二:详细编写 “教材购销系统”部分模块说明书
任务描述
任务分析
准备知识
详细设计说明书
详细设计复审
详细设计文档的编写
任务实施
引言
总体设计
程序描述
算法(略)
流程逻辑(略)
接口(略)
存储分配(略)
注释设计(略)
限制条件
测试计划(略)
尚未解决的问题(略)
项目小结
项目考核
项目五 软件的编码与测试
任务一:选择程序设计语言
任务描述
任务分析
准备知识
编码设计的目的
程序设计语言的分类
任务实施
任务二:编码风格规则
任务描述
任务分析
准备知识
使用好程序内部的文档
数据说明原则
任务实施
语句结构的规则
输入和输出规则
高效率的原则
任务三:软件测试
任务描述
任务分析
准备知识
软件测试的目标
软件测试的原则
任务实施
软件测试的方法
软件测试的过程
软件测试与开发各阶段的关系
任务四:实用综合测试策略
任务描述
任务分析
准备知识
逻辑覆盖
等价分类法
边界值分析法
错误猜测法
任务实施
任务五:系统测试
任务描述
任务分析
准备知识
单元测试
集成测试
验收测试
任务实施
任务六:解读调试技术原则
任务描述
任务分析
准备知识
调试过程
调试技术
任务实施
项目小结
项目考核
项目六 面向对象方法学引论
任务一:面向对象的特征
任务描述
任务分析
准备知识
对象
类和实例
消息和方法
任务实施
继承性(inheritance)
封装性(encapsulation)
多态性(polymorphism)和重载(overloading)
任务二:面向对象的开发方法
任务描述
任务分析
准备知识
面向对象的软件工程
面向对象的建模概述
对象模型
动态模型
功能模型
任务实施
Booch 方法
Coad 方法
OMT 方法
Jacobson 方法
项目小结
项目考核
项目七 面向对象的分析
任务一:ATM 系统的需求陈述
任务描述
任务分析
准备知识
概述
对象模型的层次
需求陈述
任务实施
任务二:ATM 系统模型
任务描述
任务分析
准备知识
确定类和对象
确定关联
确定主题
确定属性
对象模型的精化
任务实施
任务三:ATM类动态模型状态图
任务描述
任务分析
准备知识
概述
编写系统交互式活动的脚本
构造交互过程的用户界面
构造事件跟踪图
构造系统对象的状态图
动态模型的合并和精化
任务实施
任务四:更新账户描述
任务描述
任务分析
准备知识
基本系统模型
功能级数据流图
描述处理框功能
类和对象中服务的定义
任务实施
项目小结
项目考核
项目八 面向对象设计
任务一:面向对象设计的内容
任务描述
任务分析
准备知识
面向对象设计的准则
面向对象设计应遵循的原则
任务实施
任务二:确定ATM问题域子系统的结构
任务描述
任务分析
准备知识
按照需求信息的最新变动调整并修改模型
调整和组合问题域中的类
调整对象模型中继承的支持级别
改进系统性能
增加低层细节
任务实施
任务三:人-机交互子系统设计
任务描述
任务分析
准备知识
界面系统的设计原则
分类用户和描述用户
界面元素及命令层次的设计
任务实施
任务四:数据管理子系统的设计
任务描述
任务分析
准备知识
确定事件驱动型任务
确定时钟驱动型任务
确定优先任务和关键任务
确定协调任务
确定资源需求
数据存储管理的 种模式
类中提供的服务的设计
任务实施
项目小结
项目考核
项目九 统一建模语言UML应用
任务:建模过程
任务描述
任务分析
准备知识
UML 的产生和发展
UML 的主要内容
UML 的主要特点
UML 的应用
用例图
类图和对象图
包
构件图
配置图
消息
顺序图
协作图
状态图
活动图
任务实施
项目小结
项目考核
项目十 面向对象的实现
任务:设计测试用例
任务描述
任务分析
准备知识
面向对象的语言与非面向对象的语言
面向对象语言的技术支持
选择面向对象语言的原则
提高可重用性
提高可扩充性
提高稳健性
面向对象测试概述
测试 OOA、OOD 模型
面向对象测试策略
设计测试用例要点
任务实施
设计类测试用例
测试类间测试用例
项目小结
项目考核
项目十一 软件项目的计划和成本估计
任务一:项目计划编制过程
任务描述
任务分析
准备知识
软件开发项目的特点
项目计划目的与作用
项目计划制订的原则
项目计划的内容
项目计划内容确定
任务实施
任务二:软件项目进度安排
任务描述
任务分析
准备知识
成本估算
进度计划
任务实施
项目小结
项目考核
项目十二 软件的控制管理
任务一:选择软件配置管理工具
任务描述
任务分析
准备知识
软件配置管理
软件质量管理
任务实施
任务二:软件风险估计
任务描述
任务分析
准备知识
什么事风险
风险管理
风险识别
风险估计
风险评估
风险管理策略
风险驾驭和监控
任务实施
项目小结
项目考核
参考文献