本书介绍大型软件系统的开发技术,主要是目前软件界最为流行:也较实用的结构化方法,包括支持这一方法的工具和环境;还简述了其他一些方法和技术,如Jackson方法、面向对象的软件开发方法、测试和维护技术以及数据库设计等,使材料更系统化,并有所比较。\r\n\r\n 本书可用作高等院校计算机或非计算机专业本科高年级的教材,也可作软件实际工作者的参考书。 \r\n
\r\n
第一章 绪言 \r\n\r\n 1. 1 软件工程学的背景和目的 \r\n\r\n 1. 2 软件和软件生命期模型 \r\n\r\n 1. 3 软件质量的评价 \r\n\r\n 1. 4 软件开发方法和软件自动工具 \r\n\r\n 参考文献 \r\n\r\n 习题一 \r\n\r\n 第二章 可行性研究与计划 \r\n\r\n 2. 1 可行性研究与计划阶段的基本概念 \r\n\r\n 2. 2 可行性研究的步骤 \r\n\r\n 2. 3 系统流程图 \r\n\r\n 2. 4 数据流图 \r\n\r\n 2. 5 成本/效益分析 \r\n\r\n 2. 5. 1 成本估算技术 \r\n\r\n 2. 5. 2 成本/效益分析的方法 \r\n\r\n 参考文献 \r\n\r\n 习题二 \r\n\r\n 第三章 需求分析和规格说明方法 \r\n\r\n 3. 1 需求分析和规格说明阶段的基本概念 \r\n\r\n 3. 2 结构化分析(SA方法)概述 \r\n\r\n 3. 2. 1 由顶向下逐层分解 \r\n\r\n 3. 2. 2 描述方式 \r\n\r\n 3. 2. 3 步骤 \r\n\r\n 3. 3 数据流图 \r\n\r\n 3. 3. 1 数据流图的基本成分 \r\n\r\n 3. 3. 2 由外向里画数据流图 \r\n\r\n 3. 3. 3 分层数据流图 \r\n\r\n 3. 3. 4 由顶向下画分居数据流图 \r\n\r\n 3. 3. 5 实例--运动会管理系统 \r\n\r\n 3. 3. 6 数据流图的改进 \r\n\r\n 3. 4 数据词典 \r\n\r\n 3. 4. 1 词典与数据流图的联系 \r\n\r\n 3. 4. 2 词典条目的各种类型 \r\n\r\n 3. 4. 3 词典条目的实例 \r\n\r\n 3. 4. 4 词典的实现 \r\n\r\n 3. 5 小说明 \r\n\r\n 3. 5. 1 加工的描述 \r\n\r\n 3. 5. 2 结构化语言 \r\n\r\n 3. 5. 3 判定表 \r\n\r\n 3. 5. 4 判定树 \r\n\r\n 3. 6 分析的步骤 \r\n\r\n 3. 7 SA方法小结 \r\n\r\n 3. 8 快速原型法 \r\n\r\n 3. 9 需求分析阶段的其它工作 \r\n\r\n 参考文献 \r\n\r\n 习题三 \r\n\r\n 第四章 设计方法 \r\n\r\n 4. 1 模块 \r\n\r\n 4. 2 概要设计的基本概念 \r\n\r\n 4. 3 结构化设计(SD方法)概要 \r\n\r\n 4. 3. 1 相对独立. 单一功能的模块结构 \r\n\r\n 4. 3. 2 块间联系和块内联系 \r\n\r\n 4. 3. 3 描述方式 \r\n\r\n 4. 3. 4 步骤 \r\n\r\n 4. 4 块间联系和块内联系 \r\n\r\n 4. 4. 1 块间联系的各种类型 \r\n\r\n 4. 4. 2 块内联系的各种类型 \r\n\r\n 4. 4. 3 设计总则 \r\n\r\n 4. 4. 4 设计质量的一个度量模型 \r\n\r\n 4. 5 设计技巧 \r\n\r\n 4. 5. 1 实例--病人监护系统 \r\n\r\n 4. 5. 2 功能型的模块的组成 \r\n\r\n 4. 5. 3 清除重复的功能 \r\n\r\n 4. 5. 4 作用范围和控制范围 \r\n\r\n 4. 5. 5 模块的大小 \r\n\r\n 4. 5. 6 扇出和扇入 \r\n\r\n 4. 6 从数据流图导出初始结构图 \r\n\r\n 4. 6. 1 变换分析 \r\n\r\n 4. 6. 2 事务分析 \r\n\r\n 4. 6. 3 实例--银行文件管理 \r\n\r\n 4. 7 SD方法小结 \r\n\r\n 4. 8 概要设计的其他工作 \r\n\r\n 4. 9 详细设计的基本概念 \r\n\r\n 4. 10 结构化程序设计(SP)方法 \r\n\r\n 4. 11 详细设计的描述方式 \r\n\r\n 4. 11. 1 流程图(FC) \r\n\r\n 4. 11. 2 盒图(NS图) \r\n\r\n 4. 11. 3 问题分析图(PAD) \r\n\r\n 4. 11. 4 程序设计语言(PDL) \r\n\r\n 4. 12 Jackson方法 \r\n\r\n 4. 12. 1 概述 \r\n\r\n 4. 12. 2 三种基本结构 \r\n\r\n 4. 12. 3 设计过程 \r\n\r\n 4. 12. 4 输入和输出间的对应性 \r\n\r\n 4. 12. 5 小结 \r\n\r\n 参考文献 \r\n\r\n 习题四 \r\n\r\n 第五章 编程方法 \r\n\r\n 5. 1 编程阶段的基本概念 \r\n\r\n 5. 2 程序设计语言 \r\n\r\n 5. 3 SP方法与编程 \r\n\r\n 5. 4 程序内部文档 \r\n\r\n 5. 5 编程风格 \r\n\r\n 5. 5. 1 变量名的选择 \r\n\r\n 5. 5. 2 表达式的书写 \r\n\r\n 5. 5. 3 简单. 直接地反映意图 \r\n\r\n 5. 5. 4 GOTO语句的使用 \r\n\r\n 5. 6 程序的效率 \r\n\r\n 参考文献 \r\n\r\n 习题五 \r\n\r\n 第六章 检验和测试方法 \r\n\r\n 6. 1 检验的基本概念 \r\n\r\n 6. 2 软件评审 \r\n\r\n 6. 2. 1 评审过程 \r\n\r\n 6. 2. 2 评审条款 \r\n\r\n 6. 2. 3 评审的特点 \r\n\r\n 6. 3 测试的基本概念 \r\n\r\n 6. 4 白盒法 \r\n\r\n 6. 4. 1 语句覆盖 \r\n\r\n 6. 4. 2 判定覆盖 \r\n\r\n 6. 4. 3 条件覆盖 \r\n\r\n 6. 4. 4 判定/条件覆盖 \r\n\r\n 6. 4. 5 条件组合覆盖 \r\n\r\n 6. 4. 6 实例--工资管理程序 \r\n\r\n 6. 5 黑盒法 \r\n\r\n 6. 5. 1 等价分类法 \r\n\r\n 6. 5. 2 边缘值分析法 \r\n\r\n 6, 5. 3 因果图法 \r\n\r\n 6. 5. 4 错误推测法 \r\n\r\n 6. 5. 5 综合策略 \r\n\r\n 6. 6 测试步骤 \r\n\r\n 6. 7 联合测试 \r\n\r\n 6. 7. 1 渐增式和非渐增式联调 \r\n\r\n 6. 7. 2 由顶向下和由底向上渐增式 \r\n\r\n 6. 8 系统测试 \r\n\r\n 6. 9 测试计划 \r\n\r\n 参考文献 \r\n\r\n 习题六 \r\n\r\n 第七章 维护方法 \r\n\r\n 7. 1 维护的基本概念 \r\n\r\n 7. 2 维护的种类 \r\n\r\n 7. 3 维护的步骤与方法 \r\n\r\n 7. 3. 1 维护步骤 \r\n\r\n 7. 3. 2 维护方法 \r\n\r\n 7. 4 可维护性 \r\n\r\n 7. 5 维护的管理 \r\n\r\n 参考文献 \r\n\r\n 习题七 \r\n\r\n 第八章 数据库设计方法 \r\n\r\n 8. 1 数据库设计过程 \r\n\r\n 8. 2 实体联系法(取方法) \r\n\r\n 8. 2. 1 基本思想 \r\n\r\n 8. 2. 2 取模型 \r\n\r\n 8. 2. 3 从ER模型导出数据模式 \r\n\r\n 8. 2. 4 步骤 \r\n\r\n 8. 3 逻辑记录存取法(LRA方法) \r\n\r\n 8. 3. 1 数据库系统性能的评价标准 \r\n\r\n 8. 3. 2 计算表格 \r\n\r\n 8. 3. 3 步骤 \r\n\r\n 8. 3. 4 数据模式的改进 \r\n\r\n 8. 3. 5 实例--生产管理系统 \r\n\r\n 参考文献 \r\n\r\n 习题八 \r\n\r\n 第九章 面向对象的软件开发方法 \r\n\r\n 9. 1 概述 \r\n\r\n 9. 2 面向对象方法的基本概念和特点 \r\n\r\n 9. 3 面向对象的分析(OOA)方法 \r\n\r\n 9. 4 建立信息模型的基本方法 \r\n\r\n 9. 5 面向对象的设计(OOD)方法 \r\n\r\n 9. 6 小结 \r\n\r\n 参考文献 \r\n\r\n 第十章 软件工具和环境 \r\n\r\n 10. 1 计算机辅助软件开发 \r\n\r\n 10. 2 需求分析和规格说明工具 \r\n\r\n 10. 2. 1 Tektronix的工具箱 \r\n\r\n 10. 2. 2 PSL/PSA系统 \r\n\r\n 10. 3 概要设计工具--AIDES系统 \r\n\r\n 10. 4 详细设计工具--SDL/PAD系统 \r\n\r\n 10. 5 编程工具--程序综合器 \r\n\r\n 10. 6 检验和测试工具 \r\n\r\n 10. 6. 1 静态分析工具 \r\n\r\n 10. 6. 2 动态分桥工具 \r\n\r\n 10. 7 维护工具 \r\n\r\n 10. 7. 1 维护技术工具 \r\n\r\n 10. 7. 2 维护管理工具 \r\n\r\n 10. 8 面向对象开发和维护的工具 \r\n\r\n 10. 8. 1 浏览程序 \r\n\r\n 10. 8. 2 检阅程序 \r\n\r\n 10. 8. 3 性能剖析程序 \r\n\r\n 10. 8. 4 排错程序 \r\n\r\n 10. 9 软件开发环境 \r\n\r\n 参考文献 \r\n
\r\n
本书第一版自1989年6月出版以来, 颇受读者欢迎, 至今已印刷了9次. 由于本书比较系统地介绍了大型软件的开发方法和技术, 实例比较丰富, 注重理论与实践相结合, 几 年来, 已被不少高校用作“软件工程”课程的基本教材.
鉴于近年来软件开发新技术的迅速发展和多年来教学实践的总结, 有必要对本书进行修订. 这次修订的指导思想是:在保持原书系统性较强. 重点突出. 内容丰富以及语言流畅等特点的基础上, 删除了第九章“总结”以及前后内容有重复的篇幅, 增加了两章内容, 即“可行性研究与计划”(第二章)和“面向对象的软件开发方法”(第九章), 并进一步充实了软件维护技术以及软件工具和环境的有关内容, 使本书显得更完整.
限于篇幅, 面向对象的软件开发方法只能作非常粗略的介绍, 实例也较少, 若读者感兴趣可参阅有关资料和书籍. 为了便于教学, 此次修订在一些主要章节后面附上了适当数量的习题.
由于编者水平有限, 书中错误和缺点在所难免, 敬请广大读者批评指正.
编 者
1996. 7
第一版前言
本教材系按电子工业部制定的工科电子类专业教材1986—1990年编审出版规划, 由计算机与自动控制教材编审委员会计算机教材编审小组组织征稿. 评选. 推荐出版的.
本教材由上海交通大学潘锦平编写, 哈尔滨工业大学李莲治担任主审.
本课程的参考学时数为60学时, 其主要内容为大型软件系统的开发技术, 特别是目前在软件产业界最为流行. 且较为实用的结构化方法(结构化分析. 结构化设计和结构化程序设计), 包括支持这一方法的工具和环境, 为使材料系统化, 并有所比较, 也简述了其他开发技术, 如Jaskson方法. Parnas方法和一些测试. 维护. 数据库设计方法等.
使用本教材时应注意以下几点:
1. 学生事先应修完程序设计. 数据结构. 操作系统. 数据库原理等课程, 并且最好有一定的软件实践经验.
2. 阅读教材中的实例和在实际课题中试用软件方法是掌握这些技术的重要途径, 所以对各章的实例应该认真讨论, 如果还能组织学生自始至终开发一个规模适度的系统, 可望获得较好的教学效果.
3. 由于方法同工具有密切的联系, 所以第八章的内容可以分别穿插在前面各章讲授, 如果学时较少, 也可将第八章略去.
由于编者水平有限, 书中难免还存在一些缺点和错误, 殷切希望广大读者批评指正.
编者
1987. 8