下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、三大块内容: 软件危机与软件工程传统软件开发方法面向对象方法一、 软件危机与软件工程:软件、软件危机、软件生存期、软件开发模型、软件管理1、软件:软件是能够完成预定功能和性能的可执行的计算机程序+使程序正常运行所需要的数据+描述软件开发过程及其管理、程序的操作和使用的有关文档。文档:分开发、管理、用户、维护文档,作用是记录及解决不可视性、通信与交流、管理与维护、用户服务2、软件危机a)表现:软件成本高、难于控制开发进度、软件工作量估计困难、软件质量低、软件修改维护困难b)原因:需求问题 ( 描述不精确、理解不一致 ) 、管理问题、方法和工具问题、软件本身的特点3、软件生存期:a)三个时期:定义
2、时期 ( 软件计划、需求分析 ) 开发时期 ( 软件设计、编码实现、测试 ) 使用和维护时期 ( 维护)b)六个阶段:软件计划需求分析设计编码测试使用与维护c)生命周期方法特点:顺序性、依赖性,推迟程序的物理实现、质量保证的观点 (利于尽早发现错误,如阶段文档、评审 )4、软件开发模型a) 瀑布模型:文档驱动i. 阶段划分、分而治之、控制开发过程的复杂性ii. 自顶向下、由抽象到具体,顺序进行 优点:规范管理开发过程、文档驱动 缺点:初期系统的需求难以完全确定、文档驱动、周期长b) 原型模型:i. 针对:软件开发初期需求难以确定ii. 基本思想:快速建立原型,完善用户需求iii. 优点:用户参
3、与、快速iv. 缺点:快速弱功能、对开发环境要求高c) 螺旋模型 (风险驱动 )d) 增量模型 ( 模块、功能驱动 )e) 迭代模型f) 喷泉模型5、软件管理a) 区别于其他工业产品生产管理的特点b) 主要内容:开发计划与进度管理、 文档管理、人员组织管理、 成本管理、 质量管理传统软件工程方法:a) 软件计划ii.可行性研究2. 技术可行性3. 法律可行性b)需求分析i. 结构化分析 SAii. 面向数据流的分析方法1. DFD四个组成部分(表示方法、命名)2. DFD乍图:需求描述DFD3. 层次分解法 (保持父图和其子图的平衡 )4. 数据字典 ( 符号 )c)软件设计i. 总体设计1.
4、 模块独立性:高内聚2. 作用域是控制域的子集3. 单入单出4. 规模、深度、宽度、扇入、扇出适当ii. 传统设计方法1. 面向数据流的设计方法 ( 数据流图 )SP结构化实现a)结构化设计SD-对应有SD结构化需求分析、b)DFD软件结构(层次图)i. 变换设计c)优缺点a) Jackson 方法b) Jackson 图i. 三种元素间的逻辑关系:顺序、选择、重复ii. 可描述两种数据结构 : 数据结构、程序结构c) 思想: 数据结构与程序处理过程相互转换d) 步骤: I/ODS 对应关系 ProgramStructure 细化求精e) 优缺点:i. 数据入手ii. 简化数据处理程序的设计i
5、ii. 模块与独立性原则没有给予应有的重视iv. 求提供对复杂系统设计过程的支持3. Parnas 方法iii. 详细设计1. 结构化程序设计 SPa) 高效率 - 良结构b) 三种基本控制结构、单入单出2. 过程设计的工具d) 实现/ 编码i. 语言1. 功能等价a) 例如: OOPL-非 OOPL正确性证明静态测试动态测试e) 软件测试目标ii. 方法1.2.3.a)i.ii.iii.b)i.ii.iii.iv.v.黑盒(功能) 测试等价类划分 边界值分析 错误推测白盒(结构) 测试语句覆盖判定覆盖条件覆盖 判定条件覆盖 条件组合覆盖iii. 步骤f)软件维护i. 四种类型1. 校正性ii
6、. 提高可维护性的措施三、 面向对象方法 (Object-orientedMethod)a) OOM与 CM对比:区别一优点i. 思维方式 iv. 稳定性ii. 可重用性 v. 可维护性iii. 大型软件b) OOS市法i. 三个阶段、五个模型、ii. USECASE第二章传统软件工程方法:软件计划具体任务:项目定义、可行性分析、软件计划其中:可行性分析:1、 可行性研究实质: 可行性研究试一次大大压缩和简化了的系统分析和设计过 程,也就是在较高层次上以较抽象的方式进行的系统分析和设计过程。2、主要内容:a) 经济可行性 : 资金有无落实、成本效益分析b) 技术可行性 : 开发的风险、资源的有
7、效性、技术方案c) 操作可行性 : 用户组织内的管理制度、人员素质、操作方式等是否可行。d) 法律及社会可行性e) 开发方案的选择 : 折衷手段权衡。3、可行性研究的主要步骤:a) 复查系统规模b) 研究正在使用的旧系统c) 导出高层逻辑模型d) 重新定义问题e) 导出多种解法f) 推荐行动方针g) 草拟开发计划h) 书写文档并提交审查系统流程图 ( 物理建模工具 ) :会读、读懂。 数据流图: 概述描绘系统的逻辑模型的工具 DFD:DataFlowDiagram 描绘信息流和数据从输入移动到输出的过程中所经 受的变换 数据从哪里来,到哪里去,经过怎样的处理,保存在哪里 没有任何具体的物理部件
8、,只是描绘数据在软件中 流动和被处理的逻辑过程。是系统逻辑功能的图形表 示。是分析员和用户沟通的工具是后期设计的出发点DFD的绘制一般采用自顶向下、逐步细化的方法,主要步骤如下:明确系统界面。识别出那些不受系统控制但又影响系统运行的外部环境。绘制基本系统模型 基本系统模型由若干源点、终点和一个基本处理组成,表明系统对数据加工变换的 基本功能。逐层细化基本系统模型得到功能级 DFD和详细DFD下面即分层数据流图。假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所 有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据;零件编 号零件名称、定货数量、目前价格、主要供
9、应者和次要供应者。零件入库或出库称 为事务,通过放在仓库中的 CRT终端把事务报告给定货系统。当某种零件的库存数 量少于库存量临界值时就应该再次定货。从问题描述中提取数据流图的四种成分。首先考虑数据的源点和终点:“采购部每天需要一张定货报表”“通过放在仓库中的CRT终端把事务报告给定货系统”可知:采购员是终点仓库管理员是源点接下来考虑处理:“采购部每天需要一张定货报表” - 采购部需要报表“零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。”-事务的后果是改变库存量可知:产生报表是一个处理处理事务是另一个处理最后考虑数据流和数据存储: 系统把定货报表送给采购部 定货报表事
10、务需要从仓库送到系统中 事务 需把事务数据存储起来 产生报表和处理事务在时间上不匹配 , 当某种零件的库存数量少于库存量临界值时 就应该再次定货,而每天打印一次定货报表 需把定货信息存储起来可知:定货报表、事务是数据流 ( 数据流如报表包含零件编号零件名称、定货数量、 目前价格、主要供应者和次要供应者等信息。事务包含零件编号、事务类型、 数量等。 )库存清单、定货信息是数据存储 基本系统模型:功能数据流图:注意符号 进一步分解处理事务:命名1)为数据流 ( 或数据存储 )命名名字应代表整个数据流 ( 或数据存储 ) 的内容,而不是仅仅反映它的某些成分 不要使用空洞的、缺乏具体含义的名字 ( 如
11、“数据”、“信息”、“输入”之类 ) 如果在为某个数据流 ( 或数据存储 )起名字时遇到了困难,则很可能是因为对数 据流图分解不恰当造成的2)为处理命名 通常先为数据流命名, 然后再为与之相关联的处理命名, 体现了人类习惯的 “由 表及里”的思考过程名字应该反映整个处理的功能 名字最好由一个具体的及物动词,加上一个具体的宾语组成。通常名字中仅包括一个动词 如果在为某个处理命名时遇到困难,则很可能是发现了分解不当的迹象,应考 虑重新分解应注意的问题1)是数据流不是控制流 画数据流不是控制流;数据流图反映系统“做什么” ,不反映“如何做” ,因此 箭头上的数据流名称只能是名词或名词短语,整个图中不
12、反映加工的执行顺序。2)一般不画物质流数据流反映的是能用计算机处理的数据,并不是实物,因此系统的数据流图上 一般不要画物质流。3)加工的画法每个加工至少有一个输入数据数据流图的用途:1)建立新系统逻辑模型的工具2)作为与用户和开发人员交流信息的工具3)作为分析、设计乃至维护的依据数据字典:概念数据字典是关于数据的信息的集合DD:DataDictionary是对DFD中包含的所有元素的定义的集合在分析、设计和维护过程中供查阅用内容1)数据流2)数据流分量(即数据元素)3)数据存储4)处理(IPO图或PDL更加方便)是对上述四类元素的定义具体信息名字数据、控制项、数据存储或外部实体的主要名称 别名
13、该元素等价的其他名字,尽量减少 使用地点与方式使用数据或控制项的处理的列表,以及使用这些对象的方式 ( 例如作为处理的输入,从处理输出,作为数据存储,作为外部实体 ) 内容描述描述数据或控制项内容的符号补充信息关于数据类型、预置值、限制等的其他信息软件项目的量化估算成本估算 &工作量估算工程进度安排行成本估算 阶段成本估算 甘特图 :历史悠久、应用广泛的进度计划工具 进度安排的任务网络图优点:简单,能动态地反映开发进展缺点:难以反映多个任务间的逻辑关系第三章传统软件工程方法:需求分析需求分析1 目标和任务2 需求获取技术3 需求内容4 需求建模方法需求分析任务问题分析需求描述需求评审需
14、求建模方法1. 面向数据流的分析方法2. 面向对象的分析方法3. 面向数据结构的分析方法需求工程的任务需求开发包含四个过程:需求获取、需求整理与分析、需求定义、需求验证SRS需需求分析的具体任务:需求获取、确定和分析需求、开发原型系统、编写求验证、变更管理、修正计划软件需求及需求的分类软件需求 :以一种清晰、简洁、一致且无二义性的方式,描述用户对目标软件系统 在功能、行为、性能、设计约束等方面的期望,是在开发过程中对系统的约束。 (表 达做什么而不描述如何做。 )RequirementistheBasicsofQuality , 软件需求的作用 :分理解现实中的业务问题, 并作为软件设计的基础
15、; 为软件项目的成本、 时间、 风险估计提供准确的依据;少幵发工作量,避免将时间与资源浪费在设计与实现 错误的需求上;通提供需求文档和需求基线,来有效的管理系统演化与变更; 为顾客与幵发团队之间正式合同的一部分;最终的验收测试提供标准和依据 需求的分类: 业务需求业务需求指导需求获取用户需求转化用户需求为系统需求系统需求 前四个为原始问题空间、后面系统需求为解决方案空间。业 务 需 求 (BusinessRequirements) : 客 户对 于 系 统 的 高 层次 目 标 要 求 (highlevelobjectives) ,定义了项目的 远景 和范畴 (visionandscope)1
16、、业务:属于哪类业务范畴?应完成什么功能?为何目的?2、客户:软件为谁服务?目标客户是谁?3、特性:区别于其他竞争产品的特性是什么?4、价值:价值体现在那些方面?5、优先级:功能特性的优先级次序是什么?用户需求 (UserRequirements) :从用户角度描述的系 统功能需求与非功能需求,通常只涉及系统的外部行 为而不涉及内部特性。系统需求 (SystemRequirements,SR) :系统应该提供 的功能或服务,通常涉及用户或外部系统与该系统之 间的交互,不考虑系统内部的实现细节系统需求的类型分:功能性需求 :描述了系统与其实现环境之间的交互。环境包括用户和任何其他 与该系统进行交
17、互的外部系统。功能需求可以以不同的详细程度反复编写和细化 功能需求描述应该完整而且一致和准确完整性 意味着用户所需的所有的服务应该全部给出描述一致性 意味着需求描述不能前后矛盾准确性 是指需求不能出现模糊和二义性的地方非功能性需求:描述了不直接关联到系统功能行为的系统的方方面面。从各个角度对系统的约束和 限制,反映了客户对软件系统质量和性能的额外要求,如响应时间、数据精度、可 靠性等。可用性 (Usability):是一种用户可以学会的操作、输入准备、解释一个系统或者构件输出的状况可靠性 (Reliability):是系统或构件在给定时间内、指定条件下,完成其要求功能的能力。性能 (Perfo
18、rmance):需求要考虑系统的定量属性,比如响应时间,吞吐量、有效性和准确性。可支持性 (Supportability): 需求关注于在进行部署后系统的变化状况,比如包括 可适配性、可维护性、可移植性等。需求获取技术略需求分析:分析方法结构化分析方法 SA核心思想是模块化,自顶向下逐步求精对系统进行分析。使用多个需求分析视图,建立系统的数据、功能和行为模型数据流图 DFD加工说明 PSPEC数据字典 DD状态迁移图 STD关联图E-R图面向对象分析方法 OOA核心思想是利用0O勺概念和方法对软件需求建造模型,以使用户需求逐步精确化、一致化、完全化。结构化分析建模(与SA区分),就是面向数据流
19、的分析方法结构化分析方法 是一种传统勺系统建模技术,它提出来一组提 高软件结构合理性的准则。结构化分析 :使用数据流程图、数据字典、结构化英语、判定表和判定树等工具,来建立一种新的、称为结构化说明书的目标文档需求规格说明书结构化分析方法的 要点是:面对数据流的分解和抽象;把复杂问题自顶向下逐层分解结构化分析建模数据模型加工規格说團.III关系图状态转换图I敕据数据宇典流图存为模型分折樸型、其中,只要求数据流图和数据字典。DFD是描绘系统逻辑模型的常用图形工具。它描绘了信息流和数据从输入端移动到 输出端的过程中所经受的变换。在DFD中没有具体的物理元素,只是描述信息在系统中的流动、处理和存储的逻
20、辑 过程,表明系统必须完成的基本逻辑功能。DFD中只有四种元素,不包括任何有关物理实现的细节,所以,绝大多数用户可以 理解和评价它。DFD是分析和设计的工具。实体关系图一E-R图 数据流图-DFD图状态转换图一STD图DFD组成成分:(4)加工分解原则a) 1加工冬7子加工b) 按问题的逻辑特性分解c) 尽量少分解层次d) 分解均匀模型中还需要描述数据是如何被加工处理的:1、结构化语言2、判定表3、判定树判定表:第四传统软件工程方法:软件设计中的总体设 计。软件设计两个阶段:概要设计详细设计作用:SE核心过程软件设计阶段的任务从工程管理的角度,分为总体设计阶段和详细设计阶段;技术的角度,分体系
21、结构设计、数据设计、接口设计和过程设计总体设计分两个阶段:系统设计阶段确定系统的具体实现方案 结构设计阶段确定软件结构确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。总体设计的重要性:总体设计是软件幵发过程中一个非常重要的阶段。可以肯 定,如果软件系统没有经过认真细致的总体设计,就直接考虑它的算法或直接编写 源程序,这个系统的质量就很难保证。许多软件就是因为结构上的问题,使得它经常发生故障,而且很难维结构化分析与结构化设计的关系AFruces* HperificdtiunLCoatrl ipecificauoaRuta otiject dcuriplioninterface d
22、esignarchitectural designTHE ANALYSIS MODELTHE DESIGN MODEL什么是好的软件设计软件质量评价标准:定性评价:用户角度:达到需求、界面友好、简单易学 幵发人员角度:良结构、易测试、易维护、可移植定量评价:软件度量宏观标准: 可靠性良软件结构文档齐全软件结构软件的各个组成部分之间的关系的表示, 决定了整个系统的结构和质量 扇出:直接由一个块所控制的块数 扇入:直接调用它的上级块数目 深度:控制的总层数宽度:跨度最宽层的跨度数模块化依据:复杂程度工作量模块重要特征:1. 抽象:忽略细节,分层理解问题,自顶向下层层细化2. 信息隐藏细节隐藏可理解
23、性修改副作用小错误副作用小模块独立性度量:耦合一块间联系内聚一块内联系耦合零耦合:块间无任何连接数据耦合:两模块通过参数交换信息,只交换数据。控制耦合:传递的信息有控制信息(有时以数据形式出现)公共环境耦合:两个多个模块通过一个公共数据环境相互作用问题:公共部分的改动将影响所有调用它的模块公共部分的数据存取无法控制复杂程度随耦合模块的个数增加而增加内容耦合:一个模块访问另一个模块的内部数据一个模块不通过正常入口而转到另一个模块的内部两个模块有一部分程序代码重叠(只可能出现在汇编程序中)一个模块有多个入口耦合度与软件结构原则:尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内 容
24、耦合。内聚高内聚意味着松耦合,内聚更重要 偶然内聚逻辑内聚时间内聚过程内聚通信内聚顺序内聚功能内聚内聚度与软件结构软件模块分解的过程:业务域分解 / 问题域分解领域专家,企业战略;系统子系统业务功能域分解服务,资源;子系统拆分为多个服务技术域分解功能需求和非功能需求,当前 IT 技术;业务域和业务功能域分解出的元素进行 整合在模块分解时,要注意以下几点:低耦合高内聚: “从弱耦合入手,切断联系” 层次性:先业务后技术,循序渐进 正交原则:相互独立,职责没有重叠 抽象原则稳定性原则复用性原则度量( 迭代演化面向对象 )软件度量度量测量估算软件度量软件复杂性度量规模文本复杂性控制结构的复杂性软件可
25、靠性度量系统故障率软件修复与软件有效性软件可靠性估算软件设计的启发规则1. 提高模块独立性松耦合,高内聚增加内聚,减少耦合2. 模块规模适中3. 深度/ 宽度 / 扇入 / 扇出适当4. 作用域在控制域内控制域: 模块本身以及所有直接或间接从属于它的模块的集合作用域:受该模块内一个判定影响的所有模块的集合修改软件结构判断点上移受影响块下移5. 降低接口的复杂程度接口复杂可能表明模块的独立性差 接口复杂或不一致(看起来传递的数据间无联系) ,是紧耦合或低内聚 的征兆6、单出单入,避免内容耦合7、模块功能可预测相同输入必产生相同输出 模块中使用全局变量可能导致不可预测软件结构划分方式水平划分按主要
26、功能定义模块结构的各分支 顶层控制模块,下层输入、处理、输出三个分支 优点:功能分离,易修改扩充 缺点:模块接口传递数据多,信息流的整体控制复杂化 垂直划分自顶向下逐层分布工作顶层模块控制,低层模块实际处理优点:对低层模块的修改不易引起副作用便于将来的维护软件系统设计技术面向数据流(DFD)的设计方法 面向数据结构的设计方法原型法结构化设计( StructuredDesign,SD )基于模块化、自顶向下求精、结构化程序设计技术基础上发展起来 面向数据流的设计方法数据流图映射到软件结构用启发式规则对结构进行细化面向数据流的设计方法 (结构化设计 SD)软件结构设计中的图形工具层次图 (H 图)
27、 系统结构图 ;Hierarchy描述软件结构,而非数据结构矩形框:模块连线:调用关系,而非组成关系HIPO图二H 图 +IPO 表H 图+IPO 图(Input-process-outputDiagram)在 H 图中 ,除最顶层方框外 ,在每一个方框内加上一个编号,编号次序依次为:1.0,2.0,;2.1,2.2,;3.1,3.2对于H图中的每一个方框,有一张IPO图描述这个方框所代表模块的处理过程结构图 模块联系图1. 结构图是软件结构设计的另一种工具 , 与层次图类似。2. 它在层次图的每一个方框内注明的是模块的名字或主要功能。3. 方框之间的直线表示模块的调用关系4. 用带注解的箭头
28、表示模块调用过程中传递的信息基于数据流(SD)的设计方法又称为结构化设计方法;目标:给出设计软件结构的一个系统化途径; 作用:该方法定义了一些不同的“映射” ,利用这些映射可以把数据流图变换成 软件结构图。另注:通过结构化分析来得到 DFD SA是结构化需求分析、SD是结构化设计、SP是 结构化实现数据流的类型 : 变换流、事务流、混合型1. 变换流 : 所有信息都可以归结为变换流变换流参看图形,信息沿输入通路进入系统,同时由外部形式变换成内部形式,进 入系统的信息通过变换中心, 经过加工处理以后再沿输出通路变换成外部形式离开 软件系统。当数据流具有这些特征时,这种信息流称为变换流。变换型的软
29、件结构图2. 事务流:当信息流具有明显的“事务中心”时,可归结为事务流输入通路到达一个处理 T,这个处理根据输入数据的类型在若干个动作序列中选出 一个来执行。这种“以事务为中心的”的数据流,称为“事务流” 。T 称为事务中心接收输入数据;分析每个事务以确定它的类型;根据事务类型选取一条活动通路事务型软件结构图3. 混合型,兼具两种特征。面向数据流方法的设计过程一定要重点看总体设计部分后面的 P140 左右的例题第五传统软件工程方法:软件设计中的详细设 计详细设计的任务结构化程序设计详细设计的工具面向数据结构设计人机界面设计详细设计说明书程序复杂性的度量详细设计的任务:1. 用伪代码、图或表等工
30、具 描绘 每个 模块的算法流程 。2. 确定每个模块 的局部数据 结构 、数据库的物理结构、模块间的接口和输入输出数3. 为每个模块 设计测试用例 ,使得编码阶段对具体模块的调试测试更加方便4. 编写详细设计 说明书结构化程序设计(SP结构化实现,与结构化设计 SA区分)a)高效率 - 良结构b)三种基本控制结构、单入单出程序代码仅使用 顺序、选择和循环 这三种基本的 控制结构 进行连接,且每个代码块 只有 一个入口和一个出口 ,只在检测错误和退出循环处使用非基本结构技术。详细设计的工具图形描述程序流程图(PFC趋势是使用的人越来越少。优点:直观清晰、广泛易学缺点 : 不能逐步求精,不易表示数
31、据结构,随意转移控制造成非结构化 盒图( N-S)本质上的改进是没有箭头,不能随意转移控制。PAD图PAD图优点:本质上的改进是层次清晰。结构化程序结构清晰表现程序逻辑,易读、易懂、易记描绘数据结构支持自顶向下、逐步求精方法的使用PAD图高级程序设计语言表格描述判定表判定树语言描述过程设计语言PDL/伪码优点 : 可作注释直接插在源程序中、编辑简单、 PDLcodes缺点:不如“图”直观、复杂条件不如判定表清晰、简单面向数据结构的设计方法JSD法:将Jacks on方法用于大系统设计时会出现复杂的难以对付的结构冲突。Jackson 图优点便于表示层次结构,结构的自顶向下分解,直观,可读性好数据
32、入手简化数据处理程序的设计 既能表示数据结构,也能表示程序结构 缺点没有表示条件,不易直接把图翻译成程序,斜线不易打印模块与独立性原则没有给予应有的重视求提供对复杂系统设计过程的支持改进的 Jackson 图Jackson 方法1. 画数据结构的 Jackson 图2. 找输入输出数据结构的对应关系3. 以输出数据结构为基础,导出程序结构的 Jackson 图有关系的数据单元-合画一个处理框输入数据结构中余下的数据单元-各画一个输出数据结构中余下的数据单元-各画一个4. 列出所有操作、条件5. 伪码表示程序JACKSON勺伪码表示程序( 1)顺序结构AseqBCDAend( 2)选择结构Ase
33、lectcondition1BAorcondition2Aorcondition3DAend( 3)重复结构Aiteruntil (或 while ) conditionBAend第六章传统软件工程方法:实现与测试编码软件测试基础测试用例设计软件测试步骤与策略调试软件可靠性一、编码1、语言的元计算模型等价T功能等价2、描述问题的方便性有差异 程序设计语言的特点及其对软件的影响:机器求解问题的基本工具 : 思维方式、解题方式、人机通信的方式、理解程序的 难以程度选择程序设计语言的理想标准:模块化机制、语言特点、开发工具、独立编译 机制、标准化选择程序设计语言的实用标准:系统用户的要求、工程规模、
34、程序员的知识、 软件的应用领域程序设计风格:“好”程序的标准 源程序代码的逻辑简明清晰、易读易懂遵循原则: 程序内部的文档、数据说明、语句构造尽量简单而直接、输入输出规则、效率 效率:效率主要指 处理机时间 和 存储器容量 两个方面关于效率的三条原则 第一,效率是性能要求,应该在需求分析阶段确定效率方面的要 求;第二,效率是靠好设计来提高的; 第三,程序的效率和程序的简单度是一致的,不要牺牲程序的清 晰性和可读性来不必要地提高效率三个方面程序的运行时间存储器效率 输入输出效率二、软件测试基础测试目标 : 为了发现程序中的错误而执行程序的过程测试用例 : 一组用于测试的输入数据和预期得出的正确输
35、出测试方案 : 测试用例和用例预定要检验的功能、 测试环境的规划、 测试工具的选择。 测试计划 : 要进行的测试的组织、资源、风险、原则和进度安排等进行规定和约束 软件测试方法分:静态测试 ( 人工检查代码,不在机器上运行 ) 和动态测试 ( 白盒与 黑盒)。穷尽测试: ( 不可能,只能选少量”最有效”做到完备 ) :包含所有可能情况的测试黑盒测试功能测试目的: 功能是否正常使用?输入T正确输出?保持外部信息的完整性? 时机:测试的后期,如:集成测试、确认测试白盒测试关注 软件内部逻辑结构 (controlstructure )测试每条 逻辑通路检查 断点( breakpoint ) 状态 测
36、试方案对程序 逻辑 的覆盖 程度决定测试的完全性程度 时机:测试的早期,例如:单元测试成本高,通常对 结构比较复杂的模块 进行白盒测试三、测试用例设计黑盒法依据对程序的需求和说明等价划分法边界值分析法错误推测法白盒法逻辑覆盖控制结构测试用例 是为某个特殊目标而编制的一组测试输入、执行条件、执行步骤以及预期黑盒测试技术a. 黑盒 (功能 )测试i. 等价类划分ii. 边界值分析iii. 错误推测白盒测试技术白盒测试技术是基于程序的内部实现结构和逻辑寻找软件中的缺陷覆盖准则可以作为测试停止或 / 和选取测试数据的 标准软件测试的步骤与策略第七章传统软件工程方法:维护。软件维护的概念和内容 软件维护
37、的过程 软件的可维护性 软件再工程过程一、软件维护的概念和内容适应定义:就是在软件已经交付使用之后,因为下列原因而修改软件的过程。 软件中的 bug 需要修复 改正性维护 软件在使用过程中,新的需求不断出现 完善性维护 商业环境在不断地变化、计算机硬件和软件环境的升级需要更新现有的系统 性维护软件的性能和可靠性需要进一步改进 预防性维护类型:校正性维护 / 纠错性维护( correctivemaintenace ) 适应性维护( adaptivemaintenance ) 完善性维护( perfectivemaintenance ) 预防性维护( preventivemaintenace )维
38、护的代价: 表面上看来合理的改错或修改不能完全满足用户的要求,就会引起用户的不 满。由于维护时对软件的改动,哪怕是很小的改动,在软件中也会引入潜在的隐患或错误,使得整个软件的质量降低,特别是不可再现错误。在幵发工作期间,由于工作需要必须把软件工程师调去从事维护工作,就会对幵发工作造成不良影响。软件维护会使生产率大幅度下降维护中的问题阅读和理解问题人员问题文档资料软件的修改软件维护相对于软件系统幵发工作来说则毫无吸引力二、软件维护过程软件维护过程定义:本质上是修改和压缩了的软件定义和幵发过程。建立维护组织提出维护申请报告及评价维护实施保存维护记录评价维护活动三、可维护性软件可维护性是指纠正软件系
39、统出现的错误和缺陷,以及为满足新的要求进行修改、 扩充或压缩的容易程度可维护性的决定因素可理解性可测试性可修改性可靠性可移植性可使用性效率。提高可维护性的措施维护的副作用修改软件后导致新错误的发生编码的副作用数据的副作用文档资料的副作用完善的设计文档资料可以减少数据的副作用。利用文档资料对数据及其用途所作的详细描述,提供了数据项、记录、文件及其他结构与软件模块间相关的参照表,是维护期间对数据结构进行修改的主要依据。第七章软件管理软件管理内容幵发计划与进度管理成本估算与控制人员管理、组织管理质量管理 文档管理软件管理原则软件生存期按阶段确认质量检查自顶向下 SP/OOP职责分明人员少而精不断充实
40、软件管理特点知识密集,非实物性单品生产,开发过程不确定开发周期长内容复杂,正确性难保证劳动密集,自动化程度低 软件用法繁琐,维护困难,费用高 指定软件开发计划三要素:规模人员交付日期进度安排与控制软件开发进度安排,实际上就是对软件开发中各个阶段所需要的工作量,结 合项目的起始时间,体现在一张编制的进度表里 (甘特图 )。软件开发的进度往往与人的因素有关,对人的依赖性很大进度控制是对计划执行情况的监督、调整和修改成本管理与控制工时数成本管理幵发设备的购置、使用管理人员管理、组织管理人员管理高技术、高知识,个人作用突出多层次一一合理配备各类人员知识更新快流动性大 保持人员相对稳定,吸引优秀人才组织
41、管理集中式一一易决断、易管理,难发挥多数人的积极性非集中式发挥大家主观能动性、难管理质量管理软件生产分阶段规范化合理分工度量软件质量的标准文档管理第八章 - 面向对象方法学引论。面向对象方法学概述面向对象的概念面向对象建模一、面向对象方法学概述OO和PO的本质区别是:对象是一兀的还是过程是一兀OOM四要素:1对象2类3继承4方法与消息二、面向对象的概念对象: 对象是一个程序模块,该模块由一组操作构成的集合对象是对问题域中某个东西的抽象, 这种抽象反应了系统保存有关这个东西 的信息或与它交互的能力。对象是一台自动机对象特点数据为中心主动的数据封装并行性模块独立性好继承的优点 共享程序代码和数据结
42、构减少了冗余信息修改方便扩充:调用基类方法并增加代码 改变:改写同名方法 新增:定义新方法软件重用OOM勺主要优点与人类习惯的思维方法一致CM面向过程设计,以算法为核心,送数据到函数 数据与操作分离,不易理解OOM以 object 为核心,强调对现实概念勺模拟而不强调算法 “面向对象方法学勺基本原则,是按照人们习惯勺思维方式 建立问题域勺模型,开发出尽可能直观、自然地表现求解方法勺软件 系统”数据和操作封装成统一体,送消息到对象稳定性好Cm结构依赖于功能,不稳定 功能需求变,易引起软件结构整体修改Oom 软件系统结构根据问题域模型建立以 object 模拟实体,实体相对稳定,故系统也相应稳定 需求变化不会引起结构的整体变化,只需局部性修改 可重用性好CM过程(函数)是重用层建立标准函数库来重用软构件 标准函数缺乏“柔性” ,难以适应不同场合的不同需要 功能内聚的模块不是自含和独立的OOM类是重用层object 具有较强的自含性和独立性object 和 class 提供了理想的模块化机制和可重用的软件成分 继承性为OOM提供了比CM更广泛、更规范、更简单的重用机制 可维护性好CM开发出来的软件难
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学前教育教师考试题库及答案
- 2025年采编记者招聘面试参考题库及答案
- 2025年农业技术推广员招聘面试题库及参考答案
- 2025年商业摄影师招聘面试参考题库及答案
- 2025年前端UI设计师招聘面试题库及参考答案
- 2025年视觉营销专家招聘面试题库及参考答案
- 2025年医学信息专员招聘面试参考题库及答案
- 2025年移动端产品经理招聘面试题库及参考答案
- 2025年风险管理专员人员招聘面试参考题库及答案
- 2025年内容编辑人员招聘面试参考题库及答案
- 2025年城乡居民医疗保险委托书模板
- 超高效时间管理课件
- DB3401∕T 288-2023 园林设计规范
- 掐丝珐琅教学课件
- 地铁培训课件模板
- 陕煤集团奖金管理办法
- 肩关节疼痛的诊断与治疗
- 工会购买服务管理办法
- 常见危急值及护理要点
- DB32T5119-2025《锂离子电池工厂生产安全技术规范》
- 中储粮(宁德)直属库有限公司仓储一期项目可行性研究报告
评论
0/150
提交评论