软件工程实用教程

出版时间:2012-9  出版社:周丽娟、 王华 清华大学出版社 (2012-09出版)  作者:周丽娟,王华 著  页数:287  

内容概要

  《中国高等学校计算机科学与技术专业(应用型)规划教材:软件工程实用教程》分为三个部分。第一部分为传统的软件工程,从软件生存周期的角度出发,介绍软件可行性分析、软件计划、结构化分析、结构化设计、编码、测试以及软件维护阶段的过程、方法、工具、文档及案例。第二部分为面向对象的软件工程,以面向对象技术和UML语言为主线,介绍面向对象的概念、模型、分析、设计及实现过程。第三部分为软件工程管理,简要介绍软件项目管理、软件质量管理、软件配置管理及软件过程管理的内容。《中国高等学校计算机科学与技术专业(应用型)规划教材:软件工程实用教程》不仅介绍软件工程的概念、原理、方法和技术,而且强调方法和技术的实际应用,既阐述了理论知识,又介绍了具体的操作方法和案例分析。  《中国高等学校计算机科学与技术专业(应用型)规划教材:软件工程实用教程》可作为高等院校计算机及相关专业“软件工程”课程的教材或参考书,也可供软件工程师、软件项目管理者和应用软件的开发人员阅读参考。

书籍目录

第一部分 传统的软件工程 第1章 软件工程概述 1.1 软件的概念和特征 1.1.1 软件的概念 1.1.2 软件的分类 1.2 软件危机 1.2.1 软件危机的主要表现 1.2.2 产生软件危机的原因 1.2.3 解决软件危机的途径 1.3 软件工程 1.3.1 软件工程的定义 1.3.2 软件工程的目标 1.3.3 软件工程的研究内容 1.3.4 软件工程的基本原理 1.4 软件生存周期 1.4.1 软件生存周期定义 1.4.2 软件生存周期的基本任务 1.5 软件生存周期模型 1.5.1 瀑布模型 1.5.2 原型模型 1.5.3 增量模型 1.5.4 螺旋模型 1.5.5 喷泉模型 1.5.6 形式化方法模型 1.5.7 基于组件的开发模型 1.5.8 第四代技术模型 1.5.9 混合模型 1.6 小结 习题 第2章 可行性研究与软件开发计划 2.1 可行性研究的任务 2.2 可行性研究的过程 2.3 成本/效益分析 2.3.1 成本估计方法 2.3.2 成本/效益分析方法 2.4 可行性研究报告 2.5 软件开发计划 2.5.1 软件作用范围 2.5.2 资源需求 2.5.3 进度安排 2.6 软件开发计划说明书 2.7 小结 习题 第3章 需求工程 3.1 软件需求 3.1.1 业务需求 3.1.2 用户需求 3.1.3 功能需求 3.1.4 非功能需求 3.2 需求工程过程 3.3 需求的获取 3.3.1 需求获取的过程 3.3.2 需求获取的常用方法 3.4 需求分析 3.4.1 需求分析的特点 3.4.2 需求分析的原则 3.4.3 需求分析的任务 3.4.4 需求分析的方法 3.4.5 需求分析过程 3.5 需求定义 3.6 需求验证 3.7 需求管理 3.8 案例:小型教学管理系统 3.9 小结 习题 第4章 结构化分析 4.1 结构化分析方法 4.1.1 结构化分析策略 4.1.2 SA的描述工具 4.1.3 SA的分析步骤 4.2 数据流图DFD 4.2.1 数据流图符号 4.2.2 绘制分层数据流图的方法 4.2.3 实例 4.2.4 数据流图的绘制与其他流程图的差别 4.3 数据字典 4.3.1 数据字典的内容 4.3.2 数据字典使用符号 4.3.3 数据字典条目实例 4.4 数据加工逻辑 4.4.1 结构化语言 4.4.2 判定表 4.4.3 判定树 4.5 实体关系图 4.6 结构化分析实例 4.7 小结 习题 第5章 总体设计 5.1 软件设计基础 5.1.1 软件设计的目标 5.1.2 软件设计的任务 5.1.3 总体设计过程 5.2 软件设计的基本原理 5.2.1 模块化设计原理 5.2.2 抽象和逐步求精 5.2.3 信息隐蔽和局部化 5.2.4 模块独立性 5.2.5 软件结构设计优化原则 5.3 表示软件结构的图形 5.3.1 层次图和HIPO图 5.3.2 软件结构图 5.4 结构化设计方法 5.4.1 结构化设计的流程 5.4.2 典型的数据流类型和系统结构 5.4.3 变换分析 5.4.4 事物分析 5.5 总体设计文档及复审 5.6 小结 习题 第6章 详细设计 6.1 结构化程序设计 6.2 详细设计的任务 6.3 详细设计的原则 6.4 详细设计工具 6.4.1 程序流程图 6.4.2 盒图(N-S图) 6.4.3 PAD图 6.4.4 过程设计语言 6.4.5 详细设计工具的选择 6.5 程序复杂性度量 6.6 详细设计文档及设计复审 6.7 小结 习题 第7章 软件编码 7.1 程序设计语言 7.1.1 程序设计语言的特性 7.1.2 程序设计语言的分类 7.1.3 程序设计的选择 7.2 程序设计的风格 7.2.1 源程序文档化 7.2.2 数据说明 7.2.3 语句结构 7.2.4 输入和输出 7.2.5 重用 7.3 效率 7.4 小结 习题 第8章 软件测试 8.1 软件测试基本理论 8.1.1 软件测试的概念 8.1.2 软件测试的原则 8.1.3 软件测试过程 8.1.4 软件测试方法 8.2 白盒测试技术 8.2.1 逻辑覆盖法 8.2.2 基本路径测试法 8.2.3 循环测试法 8.3 黑盒测试技术 8.3.1 等价类划分法 8.3.2 边界值分析法 8.3.3 错误推测法 8.3.4 因果图法 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.2 软件维护过程 9.2.1 软件维护活动 9.2.2 软件维护技术 9.3 软件可维护性 9.3.1 影响软件可维护性的因素 9.3.2 软件可维护性度量 9.3.3 提高可维护性的方法 9.4 软件维护的副作用 9.4.1 代码的副作用 9.4.2 数据副作用 9.4.3 文档副作用 9.5 软件再工程 9.5.1 软件再工程概述 9.5.2 软件再工程过程 9.5.3 软件再工程方法 9.6 小结 习题 …… 第二部分 面向对象的软件工程 第三部分 软件工程管理

章节摘录

版权页:   插图:   3.4 需求分析 3.4.1 需求分析的特点 需求分析是指开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约(需求规格说明)的过程。需求分析虽处于软件开发过程的开始阶段,但它对于整个软件开发过程以及软件产品质量是至关重要的。在计算机发展的早期,所求解问题的规模较小,需求分析被忽视。随着软件系统复杂性的提高及规模的扩大,需求分析在软件开发中所处的地位愈加突出,从而也愈加困难,它的难点主要体现在以下几个方面。 (1)问题的复杂性。这是由用户需求所涉及的因素繁多引起的,如运行环境和系统功能等。 (2)交流障碍。需求分析涉及人员较多,如软件系统用户、问题领域专家、需求工程师和项目管理员等,这些人具备不同的背景知识,处于不同的角度,扮演不同角色,造成了相互之间交流的困难。 (3)不完备性和不一致性。由于各种原因,用户对问题的陈述往往是不完备的,其各方面的需求还可能存在着矛盾,需求分析要消除其矛盾,形成完备及一致的定义。 (4)需求易变性。用户需求的变动是一个极为普遍的问题,即使是部分变动,也往往会影响到需求分析的全部,导致不一致性和不完备性。 为了克服上述困难,人们主要围绕着需求分析的方法及自动化工具(如CASE技术)等方面进行研究。 3.4.2 需求分析的原则 目前存在着许多需求分析的方法,虽然各种方法都有其独特的描述方法,但不论采用何种方法,需求分析都必须遵循以下3个基本原则。 1.能够表达和理解问题的数据域和功能域 所有软件开发的最终目的都是为了解决数据处理的问题,数据处理的本质就是将一种形式的数据转换成另一种形式的数据,即通过进行一系列加工将输入的原始数据转换为所需的结果数据。需求分析阶段必须明确系统中应具备的每一个加工、加工的处理对象和由加工所引起的数据形式的变化。 2.能够将复杂问题分解化简 为了便于问题的解决和实现,在需求分析过程中需要对于原本复杂的问题按照某种合适的方式进行分解(对功能域和数据域均可)。分解可以是同一层次上的横向分解,也可以是多层上的纵向分解。每一步分解都是在原有基础上对系统的细化,使系统的理解和实现变得较为容易。 3.能够给出系统的逻辑表示和物理表示 系统需求的逻辑表示用于指明系统所要达到的功能要求和需要处理的数据,不涉及实现的细节。系统需求的物理表示用于指明处理功能和数据结构的实际表现形式,通常由系统中的设备决定。如处理数据的来源,某些软件可能由终端输入,另一些软件可能由特定设备提供。给出系统的逻辑表示和物理表示对满足系统处理需求所提出的逻辑限制条件和系统中其他成分提出的物理限制是必不可少的。结构化分析方法和面向对象分析方法都遵循以上原则。 3.4.3 需求分析的任务 需求分析的基本任务是准确地回答“系统必须做什么?”这个问题。需求分析的任务不是确定系统怎样完成工作,而是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。需求分析阶段的具体任务如下所述。 1.确定综合需求 对系统的综合需求有下述四个方面。 (1)系统功能需求:应该划分出系统必须完成的所有功能。 (2)系统性能需求:指待开发的软件的技术性能指标,如存储容量、运行时间等限制。 (3)环境的需求:指软件运行时所需要的软、硬件(如机型、外设、操作系统和数据库管理系统等)的要求。 (4)将来可能提出的需求:应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。这样做的目的是在设计过程中对系统将来可能的扩充和修改预做准备,以便一旦需要时能比较容易地进行这种扩充和修改。 2.分析系统的数据要求 任何一个软件系统本质上都是信息处理系统,系统必须处理的信息和系统应该产生的信息在很大程度上决定了系统的面貌,对软件设计有深远影响,因此,必须分析系统的数据要求,这是软件需求分析的一个重要任务。分析系统的数据要求通常采用建立概念模型的方法。复杂的数据由许多基本的数据元素组成,数据结构表示数据元素之间的逻辑关系。利用数据字典可以全面准确地定义数据,但是数据字典的缺点是不够形象直观。为了提高可理解性,常常利用图形工具辅助描绘数据结构。常用的图形工具有层次方框图和Warnier图。 3.导出系统的逻辑模型 综合上述两项分析的结果可以导出系统的详细的逻辑模型,通常用数据流图、数据字典和主要的处理算法描述这个逻辑模型。 4.编写文档 编写文档的步骤如下: (1)编写“需求规格说明书”,把双方共同的理解与分析结果用规范的方式描述出来,作为今后各项工作的基础。

编辑推荐

《中国高等学校计算机科学与技术专业(应用型)规划教材:软件工程实用教程》特点在于理论、方法与实践相结合,针对传统的软件工程、面向对象的软件工程和软件工程管理三部分,从实践角度介绍了软件工程的基本概念、基本原理、实用的开发方法和技术。《中国高等学校计算机科学与技术专业(应用型)规划教材:软件工程实用教程》利用案例分析,对软件的分析、设计、实现、测试到维护过程进行全面讲述,力求使读者在学习基本理论和技术过程中掌握软件工程的方法解决应用问题。

图书封面

评论、评分、阅读与下载


    软件工程实用教程 PDF格式下载


用户评论 (总计0条)

 
 

 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7