目录 第一部分基础理论 第1章绪论 1.1软件概述 1.1.1什么是计算机软件 1.1.2软件的特点 1.1.3软件的分类 1.1.4软件的发展 1.1.5软件危机 1.2软件工程概述 1.2.1软件工程与方法学 1.2.2软件工程的基本原理 1.2.3软件工程的目标 1.2.4软件工程的内容 1.2.5软件工程原则 1.2.6软件工程面临的问题 小结 综合练习1 第2章基本理论 2.1软件工程过程 2.2软件生命周期 2.2.1软件分析时期 2.2.2软件设计时期 2.2.3编码与测试时期 2.2.4运行与维护时期 2.3软件生命周期模型 2.3.1软件生命周期模型的概念 2.3.2瀑布模型 2.3.3原型模型 2.3.4增量模型 2.3.5螺旋模型 2.3.6喷泉模型 2.3.7基于知识的模型 2.3.8变换模型 2.4软件开发方法 2.4.1结构化方法 2.4.2Jackson方法 2.4.3维也纳开发方法 2.4.4面向对象的开发方法 2.5软件工具与开发 2.5.1软件工具箱 2.5.2软件开发环境 2.5.3计算机辅助软件工程 2.6软件工程应用实例 小结 综合练习2 第3章可行性研究 3.1可行性研究任务与步骤 3.1.1研究任务 3.1.2研究步骤 3.2系统分析 3.2.1系统分析员 3.2.2面临的问题域 3.2.3通信技术 3.3分析原理 3.3.1信息域 3.3.2建立模型 3.3.3分解 3.4系统模型与模拟 3.4.1系统模型 3.4.2系统建模和模拟 3.5成本效益分析 3.6可行性研究的文档 3.7项目开发计划 3.7.1方案选择 3.7.2制订项目开发计划 3.8应用案例——成绩管理系统可行性研究 3.8.1引言 3.8.2对现行系统的分析 3.8.3建议的新系统 3.8.4可行性研究 3.8.5可行性分析 3.8.6系统工程性能分析 3.8.7风险分析 3.8.8可选择的其他系统方案 3.8.9结论 小结 综合练习3 第二部分结构化方法 第4章软件需求分析 4.1需求分析 4.1.1需求分析的特点 4.1.2需求分析的原则 4.1.3需求分析的任务 4.1.4需求分析的方法 4.2结构化分析 4.2.1自顶向下逐层分解 4.2.2结构化分析步骤 4.3系统流程图 4.4数据流图 4.4.1基本图形符号 4.4.2画数据流图 4.5数据字典 4.5.1内容及格式 4.5.2数据字典的实现 4.6应用案例——成绩管理系统结构化需求分析 4.6.1引言 4.6.2业务需求 4.6.3需求分析 4.6.4总结 小结 综合练习4 第5章总体设计 5.1软件设计的重要性 5.2设计过程 5.3软件总体设计 5.4设计基本原理 5.4.1抽象 5.4.2细化 5.4.3模块化 5.4.4软件体系结构 5.4.5程序结构 5.4.6数据结构 5.4.7软件过程 5.5体系结构设计 5.5.1软件结构图 5.5.2模块的大小 5.5.3扇出和扇入与深度和宽度 5.5.4模块的耦合 5.5.5模块的内聚 5.5.6结构设计的一般准则 5.5.7模块的作用域与控制域 5.6结构化设计 5.6.1数据流的类型 5.6.2过程步骤 5.6.3变换分析设计 5.6.4事务分析设计 5.6.5混合流设计 5.6.6结构化设计方法应用示例 5.6.7设计的后期处理 5.7应用案例——成绩管理系统总体设计 5.7.1总体设计 5.7.2接口设计 5.7.3运行设计 5.7.4系统论结构设计 5.7.5故障检测与处理机制 小结 综合练习5 第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.3.4常见错误 6.4应用案例——成绩管理系统结构化详细设计 6.4.1引言 6.4.2模块结构设计 6.4.3数据结构设计 6.4.4算法设计 小结 综合练习6 第三部分面向对象方法与实现 第7章面向对象分析 7.1面向对象的相关概念 7.1.1对象 7.1.2类 7.1.3属性 7.1.4服务(操作或方法) 7.1.5封装 7.1.6继承 7.1.7消息 7.1.8结构与连接 7.2UML的基本图标 7.3对象分析 7.3.1用户需求与研究问题域 7.3.2发现对象方法 7.3.3定义属性 7.3.4定义服务 7.4一般特殊结构 7.5整体部分结构 7.6实例连接 7.6.1简单的实例连接 7.6.2复杂的实例连接及其表示 7.7消息连接 7.8应用案例——成绩管理系统面向对象分析 7.8.1引言 7.8.2系统说明 7.8.3需求分析 小结 综合练习7 第8章面向对象设计 8.1系统总体方案 8.2软件体系结构 8.3环境设计 8.3.1为适应编程环境的调整 8.3.2对象设计的步骤 8.4完善对象的细节 8.5算法设计 8.5.1选择算法 8.5.2选择数据结构 8.6关联设计 8.6.1单向关联 8.6.2双向关联 8.7设计优化 8.8应用案例——成绩管理系统面向对象设计 8.8.1系统结构设计 8.8.2对象设计 小结 综合练习8 第9章用户界面设计 9.1界面设计风格 9.1.1菜单的选择 9.1.2对话框 9.1.3窗口 9.2人机界面的设计准则 9.3人机界面设计过程 9.3.1用户界面模型 9.3.2界面支持系统 9.3.3界面元素 9.3.4设计的形式 小结 综合练习9 第10章数据库及其接口设计 10.1数据管理系统及其选择 10.2技术整合 10.3数据接口 10.3.1针对文件系统的设计 10.3.2针对RDBMS的设计 小结 综合练习10 第11章软件实现 11.1程序设计语言的特性及选择 11.1.1程序设计语言的特性 11.1.2程序设计语言的选择 11.2程序设计风格 11.3程序设计效率 11.3.1代码效率 11.3.2内存效率 11.3.3I/O效率 11.4冗余编程 11.5软件容错技术 11.5.1容错软件 11.5.2容错的一般方法 11.5.3容错软件的设计过程 11.5.4软件的容错系统结构 小结 综合练习11 第四部分测试与工程管理 第12章软件测试 12.1软件测试概述 12.1.1软件测试的目的 12.1.2软件测试的原则 12.2测试方法 12.2.1静态测试 12.2.2动态测试 12.3测试用例的设计 12.3.1白盒技术 12.3.2黑盒技术 12.4测试过程 12.4.1软件测试过程中的信息 12.4.2软件测试的步骤与各开发阶段的关系 12.4.3单元测试 12.4.4集成测试 12.4.5确认测试 12.5调试 小结 综合练习12 第13章软件项目管理与计划 13.1软件项目管理概述 13.1.1软件管理的对象 13.1.2软件开发中的资源 13.1.3分解技术 13.2项目管理过程 13.3软件开发成本估算 13.3.1软件开发成本估算方法 13.3.2软件开发成本估算的经验模型 13.4风险分析 13.4.1风险识别 13.4.2风险估算 13.4.3风险评价 13.4.4风险驾驭和监控 13.5进度安排 13.5.1软件开发小组人数与软件生产率 13.5.2任务的确定与并行性 13.5.3制订开发进度计划 13.5.4进度安排的图形方法 13.5.5项目的追踪和控制 13.6软件项目的组织 13.6.1软件项目管理的特点 13.6.2软件项目组织的建立 13.6.3人员配备 小结 综合练习13 参考答案 参考文献