软件工程
2006-4
高等教育出版社
曾强聪
226
360000
无
软件工程诞生于20世纪70年代,现已发展成为计算机领域的一个专门学科。而在我国,从20世纪80年代末期以来,诸多的软件企业也逐步地由早期的软件作坊开发模式,进入到软件工程开发模式。可以说,最近十几年以来,软件工程作为一门有关软件开发的工程方法学,直接影响到了我们国家的软件产业的发展,它在软件开发中的指导意义与基础地位已经越来越多地得到了整个信息业界的高度重视。软件工程在软件产业中的基础地位直接决定着它在教学上必将受到的重视程度。软件工程已经成为计算机及其相关专业的专业核心课程,许多有关软件技术的职业认证考试或等级考试也把软件工程列入考试大纲,而且所占考分比例逐年增大。本书为国家“十五”规划教材,作者自感责任重大,不敢有半点疏忽,收集资料、潜心论证、精心创作,经过整整两年的精心创作与教学试验,终于有了现在这几十万字的收获。本书完稿之后,殷志云教授(留法博士)在百忙之中抽时间审阅了全部书稿,在此特表示感谢!本书主要为高等院校应用型本科、专科和高职院校计算机相关专业“软件工程”课程教学所写,其以系统性、科学性、实用性为原则,并以结构严谨、布局合理、概念清晰、内容适度,能够更好地适应“软件工程”课程教学的需要为创作目标。全书由正文和附录两个部分组成。正文章节包含概述、过程模型、项目分析与规划、需求分析、概要设计、面向对象分析与设计、界面设计、算法设计与编码.、测试、维护等内容,它们基本上是按照软件生命周期的顺序进行组织。另外,两个附录则分别给出了软件开发中必然涉及的文档管理规范与文档格式这两个方面的说明。本书是作者多年来从事软件工程教学、进行软件工程研究的结晶,教材所采用的以软件生命周期为线索实施教学的策略,能够使软件工程教学与软件工程实践得到更有成效的结合。一些正处于发展中的工程技术与工程方法学,如组件技术、对象分布式技术、uML建模技术以及软件工程文化等,都在书中得到了体现。本书也是对作者多年来进行软件工程实践的一次经验总结。教材中的诸多软件问题或工程实例,有许多就取材于作者的软件开发实践,并都按照教学的需要进行了模型简化。显然,这些源于实践的工程问题,对于提高软件工程教学的实践性与实用性,将具有很好的示范效应。为了方便读者自学,教材提供了比较丰富的实例与习题,并且每章都有小结。本书以服务教学与广大读者为宗旨,但由于作者水平有限,书中难免有不足之处,恳请广大读者批评指正,以便本书再版时不断修正与完善。
本书是普通高等教育“十五”国家级规划教材。具有结构严谨、概念清晰、内容紧凑,深入浅出、突出实用、便于自学等特点。 全书内容紧凑,深入浅出。全书共10章正文,以软件生命周期为主线,主要内容包括:软件工程概论、软件工程过程模型、项目分析与规划、软件需求分析、软件概要设计、面向对象分析与设计、用户界面设计、程序算法设计与编码、软件测试、软件维护。附录部分包括软件文档管理规范和软件文档格式。 本书适合于高等应用型本科院校、高等职业学校、高等专科学校、成人高校、本科院校举办的二级职业技术学院使用,也可供示范性软件职业技术学院、继续教育学院、民办高校、技能型紧缺人才培养使用,还可供本科院校、计算机专业人员和爱好者参考使用,并可用作软件技术人员资格(水平)考试的培训教材。
第1章 软件工程概述 1.1 软件 1.1.1 软件特点 1.1.2 软件分类 1.1.3 软件发展历程 1.2 软件危机 1.2.1 软件危机现象 1.2.2 产生软件危机的原因 1.3 软件工程 1.3.1 软件工程概念 1.3.2 软件工程技术 1.3.3 软件工程管理 1.3.4 软件工程基本原则 1.3.5 软件工程目标 1.3.6 软件工程文化 小结 习题第2章 软件工程过程模型 2.1 软件生命周期 2.1.1 软件定义期 2.1.2 软件开发期 2.1.3 软件运行与维护期 2.2 瀑布模型 2.2.1 瀑布模型的特点 2.2.2 瀑布模型的作用 2.2.3 带有信息反馈环的瀑布模型 2.2.4 瀑布模型的局限 2.3 原型模型 2.3.1 快速原型方法 2.3.2 原型进化模型 2.4 增量模型 2.4.1 增量 2.4.2 增量模型的作用 2.5 螺旋模型 2.6 喷泉模型 2.7 组件复用模型 小结 习题第3章 项目分析与规划 3.1 计算机系统分析 3.1.1 计算机系统 3.1.2 系统分析方法 3.1.3 建立系统模型 3.2 项目可行性分析 3.2.1 可行性分析意义 3.2.2 可行性分析内容 3.2.3 可行性分析过程 3.3 项目成本效益分析 3.3.1 项目成本估算 3.3.2 项目效益分析 3.4 项目规划 3.4.1 项目开发计划 3.4.2 项目进度表 小结 习题第4章 软件需求分析 4.1 需求分析的任务 4.1.1 用户需求 4.1.2 系统需求 4.2 需求分析过程 4.3 用户需求获取 4.3.1 研究用户 413.2 从调查中获取用户需求 4.3.3 通过原型完善用户需求 4.3.4 用户需求陈述 4.4 结构化分析建模 4.4.1 功能层次模型 4.4.2 数据流模型(DFD图) 4.4.3 数据关系模型(ER图) 4.4.4 系统状态模型 4.5 需求有效性验证 4.5.1 需求验证内容 4.5.2 需求验证方法 4.6 需求规格定义 小结 习题第5章 软件概要设计 5.1 概要设计过程与任务 5.1.1 设计过程 5.1.2 设计任务 5.2 系统构架设计 5.2.1 集中式结构 5.2.2 客户机/服务器结构 5.2.3 多层客户机/月艮务器结构 5.2.4 组件对象分布式结构 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.5 数据库结构设计 5.5.1 逻辑结构设计 5.5.2 物理结构设计 小结 习题第6章 面向对象分析与设计 6.1 面向对象方法学 6.1.1 面向对象方法的基本概念 6.1.2 面向对象方法具有的优越性 6.1.3 UML建模方法 6.2 面向对象分析建模 6.2.1 用例图 6.2.2 活动图 6.2.3 分析类图 6.2.4 序列图 6.3 面向对象设计建模 6.3.1 设计类图 6.3.2 协作图 6.3.3 状态图 6.3.4 构件图 6.3.5 部署图 小结 习题第7章 用户界面设计 7.1 用户界面设计过程 7.2 界面设计中需要考虑的因素 7.3 界面类型 7.3.1 单窗体界面(SDI) 7.3.2 多窗体界面(MDI) 7.3.3 辅助窗体 7.3.4 Web页面 7.4 界面功能特征 7.4.1 用户交互 7.4.2 信息表示 7.4.3 用户联机支持 7.5 界面导航设计 小结 习题第8章 程序算法设计与编码 8.1 结构化程序特征 8.2 程序算法设计工具 8.2.1 程序流程图 8.2.2 N—S图 8.2.3 PAD图 8.2.4 PDL语言 8.2.5 判定表 8.3 Jac’Kson程序设计方法 8.3.1 Jackson数据结构图 8.3.2 Jackson程序设计步骤 8.3.3 Jackson程序设计举例 8.4 程序编码 8.4.1 编程语言种类 8.4.2 选择编程语言的依据 8.4.3 编程风格与质量 8.4.4 影响程序工作效率的因素 8.5 程序算法复杂性度量 小结 习题第9章 软件测试 9.1 软件测试基本概念 9.1.1 测试目标 9.1.2 测试方法 9.1.3 测试中的信息流 9.2 软件测试过程 9.2.1 单元测试 9.2.2 集成测试 9.2.3 确认测试 9.3 软件测试用例设计 9.3.1 白盒测试用例设计 9.3.2 黑盒测试用例设计 9.4 面向对象测试 9.4.1 面向对象单元测试 9.4.2 面向对象集成测试 9.4.3 面向对象确认测试 9.5 软件调试 9.5.1 调试方法 9.5.2 调试策略 9.6 自动测试工具 9.7 软件可靠性评估 9.7.1 可靠性概念 9.7.2 估算系统平均无故障时间 9.7.3 估算系统中的故障总数 小结 习题第1O章 软件维护 10.1 软件维护概述 10.1.1 软件维护定义 10.1.2 影响软件维护工作的因素 10.1.3 非结构化维护与结构化维护 10.1.4 软件维护的代价 10.2 软件可维护性 10.3 软件维护的实施 10.3.1 维护机构 10.3.2 维护申请报告 10.3.3 软件维护工作流程 10.3.4 维护记录 10.3.5 维护评价 10.4 对老化系统的维护 10.5 逆向工程与再工程 10.6 软件配置管理 10.6.1 配置标识 10.6.2 变更控制 lO.6.3 版本控制 小结 习题附录A 软件文档管理规范 A.1 软件文档说明 A.1.1 软件文档的定义及作用 A.1.2 软件文档分类 A.1.3 软件文档与软件生命周期之间的关系 A.1.4 文档的使用者 A.1.5 文档编码规则 A.2 软件文档格式 A.3 软件文档管理规则 A.4 软件文档的质量评价附录B 软件文档格式 B.1 可行性研究报告 B.2 项目计划说明书 B.3 需求规格说明书 B.4 概要设计说明书 B.5 数据库设计说明书
插图:(1)仓库管理系统将被计划部门、仓库管理部门、采购部门、销售部门的相关工作人员使用。其中,计划部门制定商品计划,涉及:设置商品类别、登记商品、制定商品报损计划和进行商品流通数据汇总;仓库管理部门完成仓库的日常管理,涉及:商品入库、出库、报损和查询等多项操作;采购部门可以查询商品库存情况、打印商品定货报表;销售部门可以查询商品库存情况和提交商品定货请求。(2)由于不同部门有不同的任务,因此系统需要提供针对部门的权限管理机制和针对工作人员的登录注册机制。系统将通过一位系统管理员进行部门授权与工作人员注册管理。(3)进入仓库管理系统的工作人员需要有惟一的个人身份标识,它既是工作人员登录系统时的身份验证依据,也是工作人员在进行商品操作时的经手人标记。尽管工作人员的姓名也可以用做其身份标识,但不同的工作人员有可能会出现姓名重复,因此有必要为工作人员设置一个专门的身份标识码。(4)仓库以商品品种为基本单位进行管理,所有商品都要由计划部门按品种进行登记,涉及商品编码、名称、类别、库存下限值等数据。其中,商品库存量初始值为零。(5)仓库商品涉及入库、出库、报损这三种流通方式。凭采购部门填写的入库单进库,凭销售部门填写的出库单出库,凭计划部门制定的报损计划报损。商品的任何流通都需要以流水方式记录到商品流通表中,并对商品库存量进行更新。当商品出库、报损时,必须考虑到该商品的当前库存量是否能够满足操作需要。出库、报损后,若商品库存量低于库存下限值,将自动产生定货请求。(6)可以按商品类别或品种进行商品库存情况和当月商品流通情况的查询。另外,仓库管理系统需要自动在月底对商品流通数据进行盘查,包括:按月打印商品流通分类汇总报表,并按月备份商品流通数据,然后将已备份的商品流通数据进行合计整理。为了方便用户对有待开发系统的认识与评价,可以使用后面4-4.1节中的功能层次图来描述系统的业务级功能组织结构。
《软件工程》为高等教育出版社出版。
无