《软件工程导论》第五版 张海藩 编著 总结分类: Computer System 2022-01-04 10:14 6417 人阅读 评论 〔10〕 保藏 举报测试数据结构工具任务文档软件测试总结重点:Unit1软件危机 包含两方面的问题: 一是如何 开发 软件,怎样满意人们对软件日益增长的需求?二是如何 保护 软件, 使它们长久地满意人们的要求;软件工程学 定义: 把软件当作一种工业产品, 采纳 工程学 的原理来治理和组织 软件的开发和保护 ,称为软件工程;软件是指程序、数据和文档三者共同构成的配置;包含与 数据处理系统操作 有关的 程序、 规程、 规章 以及相关文档 的智力创作称为软件; 文档是描述程序 开发过程 的,是智力创作的真实记录,是创作活动的历史档案和结晶;软件的描述性定义: 软件 由运算机 程序 , 数据结构 和文档 组成;软件质量 定义为“与软件产品 满意规定 的和隐含的需求才能 有关的特点和特性的全体” 具体来说: 1)软件产品中能满意给定需求的性质和特性的总体;2 )软件具有所期望的各种属性的组合程度;将软件质量 属性划分为六个特性 〔功能性、牢靠性、易用性、效率、保护性和可移植性 〕,这六个属性是面对用户的观点——面对治理的观点,且是定性描述的;软件质量度量体系: 内部度量可用于开发阶段的非执行软件产品, 外部度量只能在生存周期过程中的测试阶段和任何运行阶段使用;软件工程项目的基本目标 :( 1)低成本; (2 )满意功能要求; ( 3)高性能; ( 4 )易移植; (5 )易保护;软件工程方法学 就是要从技术和治理上供应 如何去设计和保护软件 ;软件开发方法: 面对数据流(约旦)方法、面对数据结构方法、面对对象方法 ;结构程序设计 是进行以模块功能和处理过程设计为主的具体设计的基本原就; 它的主要观点是采纳 自顶向下、逐步求精 的程序设计方法; 使用三种基本掌握结构 构造程序,任何程序都可由次序、挑选、循环三种基本掌握结构构造;用来帮助软件开发、运行、保护、治理、支持等过程中活动的软件称为软件工具( CASE );软件生存周期定义:软件产品从 形成概念 开头, 经过开发、使用和保护 ,直到最终 不再使用 的整个过程;各阶段的任务彼此间尽可能的相对独立,同一阶段内各项任务的性质尽可能的相同;软件的开发就是“按软件顺时间进展的过程分阶段进行”的;软件生存周期模型:瀑布模型 (阶段间具有次序型和依靠性,清晰地区分规律设计与物理设计、尽可能推迟程序的物理实现,是 文档驱动 模型,遵循结构化设计);原型模型 (软件产品的开发是线性次序进行的, 本质是快速 ,用途是 获知用户的真正需求 ,一旦需求确定,原型将被抛弃);其核心都是将软件开发划分为:分析、设计、编码、测试和保护 ;软件生存周期 划分为以下几个阶段: 可行性讨论与方案、 需求分析、 总体设计、 具体设计、 实现、组装测试、确认测试、使用和保护 ;软件过程: 是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤软件工程方法学: 通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称范型软件工程过程是软件生存周期中各个可能的过程, 这些过程可进一步划分成为了供应或获得软件产品或服务, 或是为了完成软件工程项目需要完成的有关软件工程活动,每一项活动又可分解为一些软件工程任务;标准定义了 21 个过程分属三类:基本过程( include 猎取、供应、开发、运作、保护过程)、支持过程和组织过程;软件工程三要素:方法、工具和过程;软件工程治理目的:为了依据进度及预算完成软件方案,实现预期的经济和社会效益;内容:成本估算、进度支配、人员组织、质量保证、配置治理等等;怎么强调软件工程治理的极其重要性都不会过分Unit2可行性讨论任务和目的:用最小的代价在尽可能短的时间内确定问题是否能够在肯定规模之内解决;(确定这一问题是否存在值得去做的解)过程和步骤:实质:进行 一次大大压缩简化了的系统分析和设计过程 ,也就是在较高层次上以抽象方式进行的系统分析和设计过程;技术和工具: DFD+DD主要内容( 1)澄清问题定义 ——规模、约束和限制( 2)导出新系统的规律模型( 3)导出如干个供挑选的物懂得法(物理模型),并分别讨论它们的可能行: 数据流图符号Example :数据流图的基本目的是 利用它作为沟通信息的工具,另一个主要目的是作为分析和设计的工具;数据字典 是关于数据信息的集合, 也就是对 数据流图中包含的全部元素的定义的集合 ,它是通过对数据元素和数据结构的定义,来描述数据流和数据储备的规律内容的;数据流和数据字典共同构成系统的 规律模型 ;数据字典的内容:数据流、数据元素、数据储备、处理数据字典 最重要的用途是作为 分析阶段的工具 ;Unit3需求分析 :目的:精确地定义系统必需做什么,也就是对目标系统提出完整、精确、清晰、具体的要求;—— 为目标系统提出精确的 规律模型 ;任务: 确定对系统的综合要求, 包括功能需求、 性能需求、 牢靠性和可用性需求、 运行要求、 将来可能提出的要求;过程:处理规律的分解: 自顶向下逐步分解 直到每个处理规律已是不行再分的“ 功能单元 ”为止;书写文档: 软件需求规格说明工具: 状态图、 IPO 图、层次方框图、 Warnier 图结构化分析设计技术 是 70 岁月中期由 E.Yourdon 等人提出来的一种 面对数据流 的方法;要求系统的开发工作在结构化和模块化的基础上进行,它系统的运用了 描述模型 的概念,依据软件内部 数据传递和变换的关系 ,自顶向下逐层分解,直到找出满意要求的可实现的软件;在这个方法里, “ 抽象”,“分解”,“模块化”,“结构化” 是它的主要手段;面对数据传递、变换所形成的 数据流( Dataflow )和数据流程图( DFD ) 是它的主要依据;这个方法的 关键工作 是: 画分层的 DFD 和确定数据定义与加工策略 ;Yourdon 方法 〔对应的 瀑布模型 〕的缺陷 :其实 Yourdon 方法是建立在三个假设之上的: 假设 1 :全部的需求都是可以预先定义的;假设 2 :需求在较长一段时间内是不变的(相对稳固的);假设 3 :运用所供应的工具可以做到项目参与者之间清晰、精确、有效的沟通;这三个假设往往是很难成立的:“规律模型”的精确描述依靠于“自顶向下的求精过程”,而“自顶向下的求精过程”的顺当进行又依靠于精确的“规律模型”,这二个问题相互缠绕依靠而构成方法学上的“死锁”;原型法(原型模型):原型就是模型的意思(原型 =模型),它指的是模拟某种产品的原始模型;运用原型的策略:抛弃策略 & 附加策略对原型的逐步求精过程是一个迭代过程相对于 Yourdon 方法来说原型法是一个 非线性 的系统开发方法;不再强调高质量的阶段性文档;螺旋模型:沿螺线自内向外每旋转一圈便开发出一个更为完善的软件版本Yourdon 方法适合于“预先指定的系统”; 原型法适合于“用户驱动的系统”;通常用“范式”定义排除数据冗余程度; 第一范式 数据 冗余 程度 最大,第五范式数据冗余程度最小;状态转换图:状态时可以被观看到的系统行为模式,一个状态代表系统的一种行为模式,它规定了系统对大事的响应方式;一张状态图有一个初态和 0 至多个终态 ;大事:在某个特定时刻引起系统做动作和(或)状态转换的掌握信息;验证软件需求的正确性:一样性、完整性、现实性、有效性Unit4总体设计 :目的:确定系统的具体物理实现方案(系统结构设计),确定组成每一个程序的模块,以及模块间的关系( 软件结构设计 );任务:软件结构设计 〔过程设计是具体设计阶段的任务 〕过程:设想供挑选的方案选取合理方案(每份方案有 系统流程图、组成系统的物理元素清单、成本 / 效益分析、实现这个系统的进度方案 4 份资料)等 9 步( P92 )在软件开发早期阶段考虑测试问题,能促使软件设计人员在设计时留意提高软件的可测试性;总体设计阶段书写的文档:系统说明、用户手册、测试方案、具体的实现方案、数据库设计结果;总体设计过程中,举荐正确方案后进入“软件结构”设计:设计出组成这个系统的全部程序、文件和数据库,以及它们之间的联系; 软件结构: 由模块组成的层次系统; 模块 :数据说明、可执行语句等程序;C/S (Client/Server )结构是软件系统体系结构“结构化设计”概括地说就是:用一组 标准的工具和准就 来确定 系统应当由哪些模块、用什么方式联结在一起, 才能构成一个最好的软件结构 ;模块化 就是把程序划分成如干个模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满意用户的需求;模块 : 具有四种属性的一组程序语句称为一个模块,这四种属性分别是: 输入和输出、规律功能、运行程序、内部数据; 〔 前两个是模块外部属性,后两个是内部属性,总体设计完成外部属性设计、具体设计完成内部属性设计 〕软件结构图中,模块用一矩形表示;模块间调用:用→连接开发具有独立功能而且和其它模块之间没有过多相互作用的模块,可以做到模块独立;影响模块独立的因素:耦合( 不同模块间 互联程度)内聚( 同一模块内 各元素紧密程度) 力争高内聚、低耦合 ;5 种耦合形式:数据耦合 、掌握耦合、特点耦合、公共耦合、 内容耦合 (从左到右耦合程度递增) 最弱的耦合是非直接耦合7 种内聚形式:功能内聚 、次序内聚、通信内聚、过程内聚、时间内聚、规律内聚、 偶然内聚 (从左到右程度依次递减) 模块的扇出与扇入 :模块的 扇出 是指一个模块拥有的 直接 下级 模块 的个数;模块的 扇入 是指一个模块的 直接上级 模块 的个数;模块的扇出系数应掌握在 7 以内, 尽可能的加大模块的扇入系数 ;作用域应当是掌握域的子集;模块的掌握域和作用域:模块的 掌握域 (掌握范畴):是指这个模块本身以及全部 直接或间接从属于它 的模块的集合;模块的 作用域 (判定作用范畴):是指 受该模块内一个判定影响 的全部模块的集合;(也就是该模块内存在着判定调用语句,而全部受到该判定规律影响的模块,就是该模块的作用域;)作用域应当是掌握域的子集 ; 抱负的是作用域都是直接下属模块;数据流类型——数据在 DFD 中流径特点变换流 :进入系统中的数据所流经的路径 几乎 是一样的;事务流 :进入系统中的数据所流经的路径 不完全 是一样 的;事务中心往往包含多个处理规律;“事务”是指一组输入数据;Unit5具体设计 :目的: 完成模块的 过程设计 〔 为 SC 中每个模块确定采纳的算法和块内数据结构,用某种选定的表达工具给出具体清晰的描述; 〕模块的规律设计(模块的过程描述)主要内容 :1) 为每个模块确定采纳的算法2) 确定每个模块使用的内部数据结构3) 确定模块的接口细节4) 制定模块的测试方案完成模块的 “内部属性” 设计,即给出系统中各个模块的 “运行程序”和“内部数据” ;由此可见 具体设计的结果基本上打算了最终软件的质量 ;具体设计的目标更重要的是便于。