序
前言
第1篇面向过程的软件工程
第1章软件危机、 软件工程
11软件工程的发展史
111程序设计时代
112程序系统时代
113软件工程时代
12软件危机主要表现形式
13产生软件危机的原因及解决途径
131产生软件危机的原因
132解决软件危机的途径
14软件和软件工程
141软件
142软件工程
15软件质量
16软件的生存周期及开发模型
161软件生存周期
162软件开发模型
17习题
第2章可行性研究
21可行性研究的目的与任务
22可行性研究的步骤
23系统流程图
231系统流程图的符号
232系统流程图示例
24成本-效益分析
241货币的时间价值
242投资回收期
243纯收入
25可行性研究报告的主要内容
26习题
第3章软件需求分析
31需求分析的任务和步骤
311需求分析的任务
312需求分析的步骤
32需求获取的常用方法
321常规的需求获取方法
322快速建立软件原型来获取需求
33需求分析的方法
331功能分解方法
332结构化分析方法
333信息建模方法
334面向对象的分析
34结构化分析方法
341自顶向下逐层分解的分析策略
342结构化分析描述工具
343数据流图
344数据字典
345加工逻辑的描述
35需求分析图形工具
351层次方框图
352Warnier图
353IPO图
36SA 方法的应用
37习题
第4章软件总体设计
41软件总体设计的目标和任务
42软件设计的概念和原理
421模块和模块化
422抽象
423信息隐蔽和局部化
424模块独立性及其度量
43软件结构设计准则
44软件结构设计的图形工具
441软件结构图
442层次图
443HIPO图
45结构化设计方法
451数据流图的类型
452结构化设计方法的步骤
453变换型分析设计
454事务型分析设计
46习题
第5章软件详细设计
51详细设计的目的与任务
52结构化程序设计
53详细设计工具
531程序流程图
532NS图
533PAD图
534过程设计语言
54习题
第6章软件编码
61程序设计语言的分类
611基础语言
612结构化语言
613面向对象的语言
62程序设计语言的选择
63程序设计风格
631程序内部文档
632数据说明
633语句构造
634输入/输出
635效率
64习题
第7章软件测试
71软件测试的目标
72软件测试的原则
73软件测试方法
731静态测试与动态测试
732黑盒测试法与白盒测试法
74软件测试用例的设计
741白盒技术
742黑盒技术
75软件测试过程
751单元测试
752集成测试
753确认测试
754系统测试
76调试
761调试的目的
762调试技术
77习题
第8章软件维护
81软件维护的分类
82软件维护的特点
821结构化维护与非结构化维护
822维护的代价
823软件维护中存在的问题
83软件可维护性
831软件可维护性的定义
832软件可维护性的度量
833提高软件可维护性的方法
84维护的副作用
85软件再工程
851软件再工程与逆向工程的概念
852实施软件再工程的原因
853软件再工程技术
86习题
第2篇UML与面向对象的软件工程
第9章UML简介
91UML概述
911UML的组成
912UML的特点和用途
913UML的模型视图简介
92UML软件开发工具简介
921Rational Rose
922Visio简介
93习题
第10章面向对象的概念
101面向对象的方法学
1011面向对象建模
1012面向对象的方法与传统软件方法的比较
102对象与类及其UML表示
1021对象
1022类与实例
1023对象属性与操作
1024对象类的关联
103聚集、 组合、 继承和多态
1031聚集与组合
1032抽象与继承
1033多态
104习题
第11章对象设计模式
111对象设计模式概念
1111历史背景
1112对象设计模式
1113设计模式的分类
112几种典型的对象设计模式及应用
1121行为型模式中的职责键模式及应用
1122结构型模式中的外观模式及应用
1123创建型模式中的抽象工厂模式及应用
113对象类的高级概念
1131抽象类、 参数对象类、型与实现对象类
1132接口
1133版型
114组件、 包和结点
1141组件
1142包和包图
1143结点
115习题
第12章面向对象的软件开发过程
121RUP概述
1211RUP的历史
1212RUP的特色
122RUP软件开发生命周期和建模
1221RUP软件开发的生命周期
1222RUP的动态结构
1223RUP的静态结构
1224RUP的建模
123面向对象软件开发过程的案例分析
1231系统需求
1232系统的静态结构模型
1233顺序图和协作图
1234状态图和活动图
1235组件图和部署图
124习题
第13章软件开发工具Rose
131Rose的用例图与类图
1311用例图
1312类图
132Rose的交互图与状态机图
1321交互图
1322状态机图
133包、 组件图与部署图
1331包
1332组件图
1333部署图
134Rose的代码生成和逆向工程
1341代码生成
1342逆向工程
135Rose应用举例
136习题
第14章Rose及其应用
141Rose的主要功能
142Rose的使用
1421Rose主菜单窗口
1422模型与工作方式的组织
143教学管理系统的分析与设计
1431系统需求分析
1432系统问题领域分析
1433静态结构模型的建立
1434动态行为模型的建立
1435物理模型的建立
144UML类图与VB代码的转换
1441VB代码生成属性
1442Rose模型—VB代码的生成
1443VB代码的逆向工程
145UML类图与Java代码的转换
1451UML类图—Java代码的生成
1452Java代码的逆向工程
146习题
第15章面向对象的软件体系结构
151软件体系结构概述
152流程处理与客户机/服务器体系结构
1521流程处理
1522客户机/服务器体系结构
153三层和多层体系结构
1531三层体系结构
1532浏览器/服务器体系结构风格
1533多层体系结构
1534团聚与串行
154公共对象请求代理体系结构
155基于层次消息总线的体系结构风格
156异构结构风格
157习题
第16章软件工程新技术
161软件复用技术
1611软件复用概念及分类
1612软件复用的关键技术和复用粒度
162中间件技术
1621中间件概念及特点
1622中间件的分类
163组件技术
1631组件与组件化
1632组件模型及描述语言
1633组件的检索与组装
164计算机辅助软件工程技术
1641CASE的基本概念
1642CASE工具与集成CASE环境
165软件产品线技术
1651软件产品线基本概念
1652软件产品线方法
1653北大青鸟工程
166软件过程与标准化
1661软件过程及其改进
1662ISO 9000标准
1663软件能力成熟度模型
167习题
第3篇软件工程实验
第17章软件工程实验大纲
171面向过程的软件工程实验
1711实验1图书馆图书管理系统的可行性分析
1712实验2图书馆图书管理系统的项目开发计划
1713实验3图书馆图书管理系统的需求分析
1714实验4图书馆图书管理系统的总体设计
1715实验5图书馆图书管理系统的详细设计及编码实现
1716实验6图书馆图书管理系统的系统测试
1717实验7图书馆图书管理系统用户手册的撰写
1718实验8图书馆图书管理系统项目开发总结报告的撰写
172面向对象的软件工程实验
1721实验1浏览器系统的可行性分析
1722实验2浏览器系统的项目开发计划
1723实验3浏览器系统的需求分析
1724实验4浏览器系统的体系结构设计
1725实验5采用面向对象方法进行浏览器系统的详细设计
1726实验6利用Rational Rose正向工程功能完成编码的实验
1727实验7利用Rational Rose逆向工程完成修改设计的实验
1728实验8浏览器系统的测试
1729实验9浏览器系统用户手册的撰写
17210实验10浏览器系统项目开发总结报告的撰写
附录
附录AUML图总结
附录BUML中定义的常用版型、 约束和标记
附录CGOF给出的软件设计模式