版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第3章 软件工程基础,主要内容 3.1 软件工程的基本概念 3.2 结构化分析方法 3.3 结构化设计方法 3.4 软件测试 3.5 程序的调试,全国等级考试考试大纲要求 软件工程基本概念,软件工具与软件开发环境。 结构化分析方法,数据流 图,数据字典,软件需求规格说明书。 结构化设计方法,总体设计与详细设计。 软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。 程序的调试,静态调试与动态调试。,知识类型:理论 二级所占分值:约6分 课时:4学时 参考书目:软件工程导论(第4版) 张海藩 编著 清华大学出版社,软件 (Software) 是指包括程
2、序、数据以及相关文档的完整组合。 国标定义:与计算机系统的操作有关的计算机程序、规程、规则以及可能有的文件、文档及数据。,软件工程(Software Engineering) 是在20世纪60年代末期提出的。这一概念的提出,其目的是倡导以工程的原理、原则和方法进行软件开发,以期解决当时出现的“软件危机”。,表现: 软件需求的增长得不到满足 软件开发成本和进度无法控制 软件质量难以保证 软件不可维护或维护程度非常低 软件成本不断提高 软件开发生产效率的提高赶不上硬件的发展和应用需求的增长 (7) 软件通常缺少适当的文档资料,总之,可以将软件危机归结为成本、质量和生产率等问题,实际上几乎 所有软件
3、 都在不同程度 上存在软件危机.,软件危机 (Software Crisis),下一节,软件危机软件开发进度难以预测,拖延工期几个月甚至几年的现象并不罕见,这种现象降低了软件开发组织的信誉。 以丹佛新国际机场为例 该机场规模是曼哈顿机场的两倍,宽为希思机场的10倍,可以全天侯同时起降三架喷气式客机;投资1.93亿美元建立了一个地下行李传送系统,总长21英里,有4,000台遥控车,可按不同线路在20家不同航空公司柜台、登机门和行李领取处之间发送和传递行李;支持该系统的是5,000个电子眼、400台无线电接受机、56台条形码扫描仪和100台计算机。按原定计划要在1993年万圣节前启用,但一直到19
4、94年6月,该系统还无法正常运行。 据研究结果统计:只有15%的项目是按计划完成的。,略过,软件危机软件开发成本难以控制,投资一再追加,令人难于置信。据同样的研究统计结果表明:仅有10%的项目是按费用计划完成的。 例如,20世纪80年代初,美国国内税收服务处(IRS)让Sperry公司开发一套联邦税收表格自动处理系统。结果是:系统被证明不适合当前的工作量,花费几乎是预算的两倍,必须立即更换(华盛顿邮报的报道)。到1985年,还需要再追加9千万美元来改进Sperry公司最初价值1.03亿美元的设备。另外,因为出现的问题阻碍了IRS按时返还纳税者的税款,IRS还被迫偿还4. 02亿美元的利息以及2
5、.23千万美元的工资给加班职员。,略过,软件危机软件产品质量无法保证,开发人员和用户之间很难沟通、矛盾很难统一。往往是软件开发人员不能真正了解用户的需求,而用户又不了解计算机求解问题的模式和能力,双方无法用共同熟悉的语言进行交流和描述。 在双方互不充分了解的情况下,就仓促上阵设计系统、匆忙着手编写程序,这种“闭门造车”的开发方式必然导致最终的产品不符合用户的实际需要。,略过,软件危机用户对产品功能难以满足,系统中的错误难以消除。软件是逻辑产品,质量问题很难以统一的标准度量,因而造成质量控制困难。 例如,一次美国在肯尼迪角发射一枚阿脱拉斯火箭,预定将用这种火箭运载飞往金星的宇宙飞船。火箭飞离地面
6、几十英里高空开始翻转,地面控制中心被迫下令自爆炸毁。后经检查发现是飞行计划程序中漏掉一个连字符。就是这样一个连字符的疏漏造成这枚价值1850万美元的火箭实验失败。 据统计数字表明:在大型系统中,约3/4的系统有问题。,略过,软件危机软件产品难以维护,软件产品本质上是开发人员的代码化的逻辑思维活动,他人难以替代。除非是开发者本人,否则很难及时检测、排除系统故障。 为使系统适应新的硬件环境,或根据用户的需要在原系统中增加一些新的功能,又有可能增加系统中的错误。,略过,软件危机软件缺少适当的文档资料,文档资料是软件必不可少的重要组成部分。 实际上,软件的文档资料是开发组织和用户的之间权利和义务的合同
7、书,是系统管理者、总体设计者向开发人员下达的任务书,是系统维护人员的技术指导手册,是用户的操作说明书。 缺乏必要的文档资料或者文档资料不合格,将给软件开发和维护带来许多严重的困难和问题。,略过,软件危机软件开发供不应求,软件开发生产率的提高速度,难以满足社会需求的增长率。软件产品“供不应求”的现象致使不能充分利用现代计算机硬件提供的巨大潜力。,伴随着软件危机的存在引入软件工程,3.1 软件工程的基本概念,形成: 为了摆脱软件危机,北大西洋软件组织成员国软件工作者于1968-1969年,两次召开会议,认识早期软件开发中所存在的问题和产生问题的原因,提出软件工程的概念. 目的: 软件工程是指导计算
8、机软件开发和维护的一门学科,它应用计算机科学、数学和管理科学等原理,以及借鉴传统工程的原则和方法,来创建软件,从而达到提高质量、降低成本的目的。,软件工程: 是研究和应用如何以系统化的、规范的、可度量的方法去开发、运行和维护软件,即把工程化应用到软件上。,软件工程是一门交叉学科,软件工程的主要研究内容 软件开发技术:软件开发方法学 软件开发过程 软件工具和软件工程环境 软件工程管理:软件管理学 软件经济学 软件心理学 软件工程所包含的内容不是一成不变的, 随着人们对软件系统的研制开发和生产的理解。 应用发展的眼光看待它。,软件工程 一种层次化技术,工具,方法,过程,质量焦点,Software
9、engineering layers,软件工程三个要素:方法、工具、过程,软件工程必须以有组织的质量保证为基础,全面质量管理和过程改进使得更加成熟的软件工程方法不断出现。,三要素:,质量 焦点:,软件工程过程是进行一系列有组织的活动,从而能够合理和及时地开发出计算机软件。过程定义了技术方法的采用、工程产品(包括模型、文档、数据、报告、表格等)的产生、里程碑的建立、质量的保证和变更的管理。,软件工程方法为软件开发提供“如何做”的技术。它包括了项目计划、需求分析、系统设计、程序实现、测试与维护等一系列的任务。,软件工程工具为过程和方法提供自动的或半自动的支持。这些软件工具被集成起来,建立起一个支持
10、软件开发的系统,称之为计算机辅助软件工程(CASE,Computer Aided Software Engineering)。CASE集成了软件、硬件和一个存放开发过程信息的软件工程数据库,形成了一个软件工程环境,过程、方法、工具,软件工程框架,可,用,性,性,性,确,正,合,算,选取适宜的开发模型,采用合适的设计方法,提供高质量的工程支持,重视软件工程的管理,基本过程,原则,目标,过,程,支 持 过 程,组 织 过 程,软件工程与一般工程的差异,软件是逻辑产品而不是实物产品 软件的功能依赖于硬件和软件的运行环境以及人们对它的操作 软件设计的复杂性 软件特征:功能的多样性 实现的多样性 能见度
11、低 软件结构合理性差 智力密集及知识产权保护,软件工程知识结构,2001年5月ISO/IEC JTC 1(ISO和IEC的第一联合技术委员会)发布了 SWEBOK指南V0.95(试用版)(Guide to the Software Engineering Body of Knowledge,简称SWEBOK) SWEBOK把软件工程学科的主体知识分为10个知识领域。,软件工程知识结构,软件需求 软件设计 软件构造 软件测试 软件维护 软件配置管理 软件工程管理 软件工程过程 软件工程工具和方法 软件质量,“软件工程”课程 与其它软件专业课的区别,(1) 立足于系统的整体。 (2) 讲授系统分析
12、、系统设计、 测试及维护的理论和方法。 (3) 构筑一个软件系统,实践 软件开发全过程。,“软件工程”课程教学的目标,转变对软件的认识: 上升 程序 系统 转变思维定式: 上升 程序员 系统工程师 (系统分析员) 工程化训练,系统分析员的地位,用户,分析员,程序员,“一个好的工业,应有一套良好的标准来配套”,软件的工业化生产过程应具备的特点: 明确的工作步骤 详细具体的规范化文档 明确的质量评价标准,软件产品的标准化,软件开发过程的标准化,软件工程技术的两个明显特点:,强调规范化 强调文档化,3.1.2 软件生命周期,一. 定义: (Software Life Cycle) 软件产品从提出、实
13、现、使用维护到停止使用的过程称为软件生命周期。 软件生命周期可以划分为软件定义、软件开发和软件运行维护三个时期,每个时期又进一步划分成若干个阶段。,概要设计,可行性研究 与计划制定,需求分析,定义 阶段,详细设计,实现,测试,使用,开发 阶段,维护,运行维 护阶段,退役,确定开发目标和总的要求,给出功能、可靠性等可能方案,制定实施计划.,对软件需求进行分析并给出详细定义,编写软件规格说明书及初步的用户手册,提交评审。,给出软件的结构、模块和功能的划分等,确定算法。编写概要设计、详细设计说明书和测试计划初稿。,源程序编码,把软件设计转换成计算机可以接受的程序代码。编写用户手册、操作手册和单元测试
14、计划。,设计测试用例,检验软件各个组成部分。编写测试分析报告。,将已交付的软件投入运行,并在运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改。,只考虑 编写程序,涉及整个 软件生存 周期,扩展到,软件工作的范围,在实践中,软件开发并不总是按照计划、分析、设计、实现、测试、集成、交付、维护等顺序来执行的,即各个阶段是可以重叠交叉的。整个开发周期经常不是明显地划分为这些阶段,而是分析、设计、实现、再分析、再设计、再实现等迭代执行。,注意:,软件开发的基本策略,一、复用 复用就是利用某些已开发的、对建立新系统有用的软件元素来生成新的软件系统。,软构件(Software Compon
15、ent):具有一定集成度并可以重复使用的软件组成单元。 软件复用就是直接使用已有的软构件,即可组装(或加以合理修改)成新的系统,而可以不必每次从零做起。,可重用部件组装模型,系统A的 软件构成,系统C的 软件构成,系统B的 软件构成,可重用 部 件,可重用 部 件,复用优点: 降低了软件的成本、提高了生产率而且新系统也具有较高的质量。,使用构件开发软件的过程:,二、 分而治之,分而治之是指把大而复杂的问题分解成若干个简单的小问题,然后逐个解决。诸如软件的体系结构设计、模块化设计都是分而治之的具体表现。,软件开发的基本策略,优化工作是十分复杂的,有时很难实现所有目标的优化,这时就需要“折中”策略
16、。软件的折衷策略是指通过协调各个质量因素,实现整体质量的最优。 软件折中的重要原则是不能使某一方损失关键的职能,更不可以象“舍鱼而取熊掌”那样抛弃一方。,优化:为了提高软件质量,程序员会不断改进软件中的算法,数据结构和程序组织。,三、优化与折中,软件开发的基本策略,软件开发的各阶段的成本比例,软件工程基本概念补充习题讲解,1.软件开发的结构化生命周期方法将软件生命周期划分成_。 A. 定义、开发、运行维护 B. 设计阶段、编程阶段、测试阶段 C. 总体设计、详细设计、编程调试 D. 需求分析、功能定义、系统设计 2. 在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是_
17、。 A. 概要设计 B. 详细设计 C. 可行性分析 D. 需求分析 3. 下面不属于软件工程的3个要素的是_。 A. 工具 B. 过程 C. 方法 D. 环境 4. 软件是一种_。 A. 程序 B. 数据 C. 逻辑产品 D. 物理产品 5.下列描述中正确的是_。(等级考试题) A)软件工程只是解决软件项目的管理问题 B)软件工程主要解决软件产品的生产率问题 C)软件工程的主要思想是强调在软件开发过程中 需要应用工程化原则 D)软件工程只是解决软件开发中的技术问题,3.2 结构化分析方法,3.2.1 需求分析与需求分析方法,需求阶段是软件开发的关键阶段。 需求分析的任务: 准确地定义未来系统
18、的目标,确定为了满足用户的需求系统必须做什么。用 规范的形式准确地表达用户的需求。,需求分析阶段的工作(四方面):,需求获取,确定系统各方面需求,全面地提炼出系统的功能性与非功能性需求。,需求分析,编写需求 规格说明书,需求审评,对获取的需求分析和综合,给出系统解决方案和逻辑模型。,为用户、设计人员的交流提供方便,还可作为控制软件开发进程的依据。,复审需求分析阶段的工作,验证需求文档的一致性、可行性等。,思考、涉及的几个问题,如何定义系统需求? 如何识别、获取需求? 你能够采取何种手段与用户进行交流沟通? 何为需求建模? 你如何理解模型与建模?,清楚地理解所要解决的问题 完整地获取用户需求,需
19、求获取的目的,需求获取面临的挑战:,(1)问题空间理解 (2)人与人之间的通信 (3)需求的不断变化,某出版社系统调查表,某出版社系统调查表,需求获取的内容,用户需求分类 (1)功能性需求: 定义了系统做什么(描述系统必须支持 的功能和过程) (2)非功能性需求(技术需求): 定义了系统工作时的特性 (描述操作环境和性能目标),需求分析的步骤,当前 系统,目标 系统,物理 模型,逻辑 模型,逻辑 模型,物理 模型,模型化,抽象化,具体化,实例化,怎 么 做,做 什 么,当前 系统,目标 系统,需 求 定 义,需求分析过程示意,学 生,(1) 通过对现实环境的调查, 获得当前系统的物理模型,学
20、生,购 书 申 请,购书 单,发 票,领 书 单,书,107 张,教务科,206 王,会计室,206 李,出纳员,303 赵,教材科,学生购买教材的物理模型,需求分析过程示意,(2) 去掉具体模型中的非本质因素, 抽象出当前系统的逻辑模型,学生购买教材的逻辑模型,学 生,学 生,购 书 申 请,购书 单,发 票,领 书 单,书,审查 有效性,开发票,开领 书单,发书,需求分析过程示意,(3) 分析当前系统与目标系统的差别, 建立目标系统的逻辑模型,计算机售书系统的逻辑模型,学 生,学 生,购书单,发票,领书单,审查并 开发票,开领,书单,无效书单,需求分析的方法,结构化分析(传统建模方法) 面
21、向对象分析,计算机世界,现实世界,影射,计算机世界,现实世界,结 构 化 开 发 方 法,结构化 分析,结构化 设计,结构化 编程,OOA,OOD,OOP,面 向 对 象 开 发 方 法,3.2.2 结构化分析方法,一、 结构化分析方法(Structure Analysis-SA) 1. 定义: 是面向数据流进行需求分析的方法,采用自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。,办理取款手续的数据流图,通过对用户的调查,以软件的需求为线索, 获取当前系统的具体模型,去掉具体模型中非本质因素, 抽象出当前系统的逻辑模型,根据计算机的特点分析当前系统与
22、目标系统的差别, 建立目标系统的逻辑模型,完善目标系统并补充细节, 写出目标系统的软件需求规格说明,结构化分析的主要步骤,二、结构化分析方法使用的常用工具,数据流图(DFDData Flow Diagram ) 数据字典(DDData Dictionary) 判定树 判定表,3.2.2 结构化分析方法,1. 数据流图(DFDData Flow Diagram ) (1)作用: 从数据传递和加工的角度,在需求分析阶段以图形的方式描述数据流从输入到输出的移动变换过程, 为系统建立逻辑模型。,储 户,检验,付款,登录,存折,帐卡,取款 信息,办理取款手续的 DFD 图,检验不合格,现款,付款信息,取
23、款单,存折,注意,数据流图与程序流程图中的箭头表示的内容相同么?,数据流图中的箭头表示的是数据流。 程序流程图中的箭头表示的是控制流。,两者有本质不同,不要混淆,1. 数据流图(DFDData Flow Diagram ) (1)作用:,二、结构化分析方法使用的常用工具,3.2.2 结构化分析方法,(2)数据流图中的基本图形符号意义,可以是数据库文件或任何形式的数据组织。,数据加工: 转换数据流的处理过程,外部实体:表示数据的源点或终点, 即系统外部的实体。,数据流 : 在转换之间有向流动的数据项或数据集合,数据存储文件:,箭头向内则表示写入文件 或查询文件.箭头向外则表示从文件中读取数据或得
24、到查询结果.,数据流与数据加工之间的关系,数据流图的层次结构,为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流图。按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统。 在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统。它的输入流是该系统的输入数据,输出流是系统所输出数据 底层流图是指其加工不需再做分解的数据流图,它处在最底层 中间层流图则表示对其上层父图的细化。它的每一加工可能继续细化,形成子图。,分层的数据流图,输入信息,输出信息,输入信息,输出信息,输出信息,结构化分析方法步骤示例,商店业务处理系统,首先确定系统的输入和
25、输出 根据商店业务,画出顶层数据流图,以反映最主要业务处理流程,结构化分析方法步骤示例,商店业务处理系统,顶层数据流图,结构化分析方法步骤示例,商店业务处理系统,经过分析,商店业务处理的主要功能应当有销售、采购、会计三大项。主要数据流输入的源点和输出终点是顾客和供应商。 然后从输入端开始,根据商店业务工作流程,画出数据流流经的各加工框,逐步画到输出端,得到第一层数据流图,第一层数据流图,加细每一个加工框 销售细化,采购细化, 考务处理系统功能,(1)对考生送来的报名单进行检查; (2)对合格的报名单编好准考证号后将准考证送给考生,并将汇总后的考生名单送给阅卷站; (3)对阅卷站送来的成绩单进行
26、检查,并根据考试中心制定的合格标准审定合格者; (4)制作考生通知单(含成绩及合格/不合格标志)送给考生; (5)按地区进行成绩分类统计和试题难度分析,产生统计分析表。,考务处理系统的分层DFD,略过,顶层数据流图,不合格报名单,报名单,准考证,考生通知单,成 绩 清 单,合格标准,错误成绩 清单,考生名 单,统计分析表,略过,报名单,准考证,不合格 报名单,考生通知单,统计分析表,1层数据流图,合 格 标 准,考生名 单,略过,2层数据流图 (a),报名单,准考证,不合格 报名单,考生名单,合格 报名单,略过,2层数据流图 (b),检查 成绩清单,2.1,审定 合格者,2.2,考生名册,正确
27、 成绩清单,制作 通知单,2.3,分析 统计成绩,2.4,分析 试题难度,2.5,试题得分清单,考生 通知单,难度 分析表,合格 标准,分类 统计表,成绩清单,错误 成绩清单,经审定的 成绩清单,略过,2. 数据字典 (1)定义 是所有与系统相关的数据元素的一个有组织的列表,以及精确、严格的详细定义。 (2)作用 对DFD中出现的被命名的图形元素的确切解释,数据词典与数据流图配合,能清楚地表达数据处理的要求。,二、结构化分析方法使用的常用工具,3.2.2 结构化分析方法,2. 数据字典,二、结构化分析方法使用的常用工具,3.2.2 结构化分析方法,(3)数据字典的组成 数据项:是数据的最小单位
28、; 数据结构:是若干数据项的有意义的集合; 数据流:可以是数据项,也可以是数据结构,表示某一个处理过程的输入或输出; 数据存储:处理过程中存取的数据,常常是手工凭证、手工文档或计算机文件。 处理过程:,(4) 数据字典定义符号,=,被定义为,+,与, ,x=a+b,则表示 x 由 a 和 b 组成,x=a,b,则表示 x 由 a 或由 b 组成, ,或,重复,x=a,则表示 x 由 0个或多个a 组成,( ),可选,表示在两个 * 之间的内容为词条的注释,m n,重复,x=3a8,则表示x中至少出现3次a ,最多出现8次,*,注释符,x=(a),则表示a 在x 中出现, 也可不出现,x=1.9
29、 (x可取1到9中任意一个值),.,连接符,某程序设计语言规定,用户说明的标识符是长度不超过8个字符的字符串,其中第一个字符必须是字母字符,随后的字符既可以是字母字符也可以是数字字符。,标识符=字母字符+字母数字串 字母数字串=0字母或数字7 字母或数字=字母字符数字字符,数据字典中定义数据例:,例:若数据流图中有“员工登记单”数据存储文件,则在数据字典中此条目可描述为: 员工登记单员工编号姓名职务聘用日期 员工编号“0001”.“9999” 姓名1字母8 职务5字母20 聘用日期年+月+日 年“00”.“99” 月“01”.“12” 日“01”.“31”,存折格式,存折户名所号帐号开户日性质
30、(印密)1存取行50 户名2字母24 所号“001”.“999” 帐号“00000001”.“99999999” 开户日年月日 性质“1”.“6” 注:“1”表示普通户,“5”表示工资户等 印密“0” 注:印密在存折上不显示 存取行日期(摘要)支出存入余额操作复核,购 书 单,发票,领书单,审查并 开发票,开领 书单,无效书单,学生,1,2,各班学生 用 书 表,举例:,学生,教材存量表,数据流条目说明举例,数据流名:购书单 别名: 无 简述: 学生购书时填写的项目 来源: 学生 去向: 加工1“审查并开发票” 组成: (学号)姓名书号数量 数据流量:1000次/周 高峰值:开学期间1000次
31、/天,3. 判定树 使用判定树进行描述时, 应分清哪些是判定的条件,哪些是判定的结论,并找出判定条件之间的从属关系、并列关系、选择关系,根据它们构造判定树。 优点:更加直观,易于理解和使用,二、结构化分析方法使用的常用工具,3.2.2 结构化分析方法,检 查 发 货 单,金额$500,金额$500,欠款60天,不发出批准书,欠款60天,发货单,发出批准书、,欠款60天,发出批准书、,发货单及赊欠报告,欠款60天,发出批准书、,发货单,以“检查发货单”为例,用判定树表示计算行李费的算法,4 .判定表 (1) 使用条件: 当数据流图中的加工要依赖于多个逻辑条件的取值时(该加工的一组动作是由于某一组
32、条件取值的组合而引发的),使用判定表描述比较适宜. (2) 判定表的组成(四部分): 基本条件:各种可能的条件 条件项: 各种可能的条件组合 基本动作: 所有的操作 动作项: 对应的条件组合下所选的操作,二、结构化分析方法使用的常用工具,3.2.2 结构化分析方法,以“检查发货单”为例,某学校对教职工拟定奖励策略如下:(1)高级职称且教学评估优秀的奖励1000元,教学效果评估合格的奖励800元;(2)中级职称且教学评估优秀的奖励800元,教学效果评估合格的奖励500元;(3)初级职称且教学评估优秀的奖励500元。要求画出奖励策略的判断表。,举例,3.2.2 结构化分析方法补充习题讲解,1. 在
33、软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是( ) A.概要设计 B.详细设计 C.可行性研究 D.需求分析 2. 需求分析阶段的任务是确定( ) A.软件开发方法 B. 软件开发工具 C.软件开发费用 D.软件系统功能 3. 软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及_。 A. 阶段性报告 B. 需求评审 C. 总结 D. 都不正确 4. 在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是_。 A. 可行性分析 B. 需求分析 C. 详细设计 D. 程序编码,5. 数据流图用于抽象描述一个软件的逻辑模型,数
34、据流图由一 些特定的图符构成。下列图符名标识的图符不属于数据流图 合法图符的是_。 A. 控制流 B. 加工 C. 数据存储 D. 源和潭 6. 下列工具中属于需求分析常用工具的是_。 A. PAD B. PFD C. N-S D. DFD 7. 数据字典是对数据定义信息的集合,它所定义的对象都包含在()。 A.程序框图 B.数据流图 C.软件结构 D.方框图 8 下列不属于结构化分析的常用工具的是_。 A. 数据流图 B. 数据字典C. 判定树 D. PAD图 9. 在数据流图(DFD)中,带有名字的箭头表示_ A. 控制程序的执行顺序 B. 模块之间的调用关系 C. 数据的流向 D. 程序
35、的组成成分 10. 结构化分析方法的一个重要思想是_. A. 自顶向下,逐层抽象 B.自底向上,逐层抽象 C. 自顶向下,逐层分解 D.自底向上,逐层分解,11. 数据字典是各类数据描述的集合,它通常包括5个部分, 即:数据项、数据结构、数据流、_和处理过程。,1. 定义: 软件需求规格说明书(SRS,Software Requirement Specification)是需求分析阶段的最后成果,软件开发的重要文档之一。它对所开发的软件的功能、性能、用户界面及运行环境等进行详细说明。 2. 作用: 便于用户与开发人员进行理解与交流; 反映出问题的结构,可以作为软件开发的基础和依据; 作为测试和
36、验收的依据。 3. 特点: 正确而无歧义性,简明易懂,可修改性,可验证性等。,3.2.3 软件需求规格说明书,主要包括以下的内容:,SRS,对软件系统所必须解决的问题作出详细说明。,描述为解决用户问题所需要的每一项功能的过程细节。,说明系统应达到的性能(运行时间、内存容量等)。,包括与该软件有关的全部参考文献。,列表数据、算法的详细说明、框图、图表和其他材料。,从系统的角度描述软件的目标和任务。,1.下列叙述中,不属于软件需求规格说明书的作用是()。 . 便于用户与开发人员进行理解与交流; B. 反映出问题的结构,可以作为软件开发的基础和依据; C. 作为测试和验收的依据。 . 便于开发人员进
37、行需求分析 2. 需求分析阶段的最后成果是_,是软件开发的重要文档之一。 3. 软件需求规格说明书缩写是_.,3.3 结构化设计方法,3.3.1 软件设计过程及原则,软件需求:解决“做什么”,软件设计:解决“怎么做”,软件设计的任务:,映射,问题结构(软件需求),软件结构,从软件需求规格说明书出发,形成软件的具体设计方案。,3.3 结构化设计方法,一、软件设计内容 软件设计定义: 软件设计是把软件需求(定义阶段)转换为软件的具体设计方案,即划分模块结构的过程,是软件开发阶段最重要的步骤。,3.3.1 软件设计过程及原则,软件设计划分,3.3 结构化设计方法,3.3.1 软件设计过程及原则,一般
38、过程:是一个迭代过程,先进行高层次结构设计;再进行 低层次过程设计;穿插数据设计和接口设计。,软件设计过程:,编码,测试,设计,- 软件开发阶段的信息流,3.3 结构化设计方法,3.3.1 软件设计过程及原则,3.3 结构化设计方法,二、软件设计原则,3.3.1 软件设计过程及原则,为了开发出高质量低成本的软件,在软件开发过程中必须遵循下列软件工程原则:,1.抽象(abstraction) 抽取事物最基本的特性和行为,忽略非基本的细节。采用分层次抽象的办法可以控制软件开发过程的复杂性,有利于软件的可理解性和开发过程的管理。,2.信息隐藏(informationhiding) 将模块中的软件设计
39、决策封装起来的技术。 按照信息隐藏的原则,系统中的模块应设计成“黑箱”,模块外部只能使用模块接口说明中给出的信息,如操作、数据类型等等。 由于对象或操作的实现细节被隐藏,软件开发人员便能够将注意力集中于更高层次的抽象上,3.模块化(modularity) 使程序有许多个逻辑上相对独立的模块组成。 模块(module)是程序中逻辑上相对独立的单元; 模块的大小要适中; 高内聚、低耦合。,学生成绩管理,系统的模块化设计,抽象出的本质特征是录入,抽象出的本质特征是统计,顶层模块主要功能成绩管理,底层模块,完成具体的功能,逐 步 求 精,自 顶 向 下,4.一致性(consistency) 整个软件系
40、统(包括文档和程序)的各个模块均应使用一致的概念、符号和术语; 程序内部接口应保持一致; 软件与硬件接口应保持一致; 系统规格说明与系统行为应保持一致; 实现一致性需要良好的软件设计工具(如数据字典、数据库、文档自动生成与一致性检查工具等等)、设计方法和编码风格的支持。,1.信息隐蔽的概念与下述哪一种概念直接相关_。 A. 软件结构定义 B. 模块独立性 C. 模块类型划分D. 模拟耦合度 2. 下面不属于软件设计原则的是_。 A. 抽象 B. 模块化 C. 自底向上 D. 信息隐蔽 3. 为了使模块尽可能独立,要求_。(05年 4 月等级考试) A) 模块的内聚程度要尽量高,且各模块间的耦合
41、程度要尽量强 B) 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱 C) 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱 D) 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强 4. 下列描述中正确的是_。(05年 4 月等级考试) A) 程序就是软件 B)软件开发不受计算机系统的限制 C) 软件既是逻辑实体,又是物理实体 D) 软件是程序、数据与相关文档的集合 5. 两个或两个以上模块之间关联的紧密程度称为 A)耦合度 B)内聚度 C)复杂度 D)数据传输特性,3.3.2 结构化设计方法,1. 软件设计的方法: 开发阶段设计软件时所使用的方法,注意区别:结构化分析方法是定义阶
42、段需求分析过程中所使用的方法。,2. 软件设计的方法的种类:,结构化设计方法 面向数据结构的设计方法 面向对象的设计方法,3.3.2 结构化设计方法,3. 结构化设计方法(SD- Structured Design) 结构化设计方法是基于模块化、自顶向下细化、结构化程序设计等程序设计技术基础发展起来的。,基本思想: 将软件设计成由相对独立且具有单一功能的模块组成的结构 ,分为概要设计和详细设计两个阶段.,结构化设计过程的概要设计阶段的描述工具是: 结构图 (SC- Structure Chart ),概要设计也称为结构设计或总体设计,主要任务是把系统的功能需求分配给软件结构,形成软件的模块结构
43、图,如图,3.3.2 结构化设计方法,3.3.2 结构化设计方法,概要设计的基本任务 设计软件系统结构: 划分功能模块,确定模块间调用关系。 数据结构及数据库设计: 实现需求定义和规格说明过程中提出的数据对象的逻辑表示。 编写概要设计文档 包括概要设计说明书、数据库设计说明书,集成测试计划等。 概要设计文档评审: 对设计方案是否完整实现需求分析中规定的功能、性能的要求,设计方案的可行性等进行评审。,结构化设 计的目的,使程序的结构尽可能反 映要解决的问题的结构,结构化设 计的任务,把需求分析得到的数据流图DFD 变换为系统结构图(SC)。,结构化设计的目的与任务,3.3.2 结构化设计方法,1
44、. 在结构化方法中,软件功能分解属于下列软件开发中的阶 段是_。 A. 详细设计 B. 需求分析 C. 总体设计 D. 编程调试 2. 从工程管理角度,软件设计一般分为两步完成,它们是_。 (06.9月等级) A. 概要设计与详细设计 B. 数据设计与接口设计 C. 软件结构设计与数据设计 D. 过程设计与数据设计 3. 下列选项中不属于软件生命周期开发阶段任务的是() . 软件测试. 概要设计. 软件维护.详细设计,4. 概要设计工具- 结构图(SC: Structure Chart ),作用:软件结构设计工具。反映系统的功能实现以及模块与模块之间的联系与通信,即反映了系统的总体结构。,3.
45、3.2 结构化设计方法,目标系统的DFD,目标系统的SC,TIPS:数据流DFD是软件生命周期的定义阶段中的需求分析方法中结构化分析方法的一种,此外还有数据字典(DD)、判定树和判定表,而SC是开发阶段中概要设计使用的方法。,概要设计或结构设计SD,结构图基本组成成分:模块、数据和调用,结构图基本图符:,结构图基本形式:,A,- 模块调用关系,B,被调用模块,调用模块,A(查询学生),B(查找学生记录),数据信号,控制信号,学 号,查找成功信号,- 模块间接口的表示,结构图示例,软件结构度量术语,深 度,宽度,扇出,扇入,(模块的 层数),(同一层最大模块数),(一个模块 直接调用 的模块数)
46、,(调用一个给定模 块的模块个数),结构图的基本术语,深度:5,扇出:3,宽度: 8,扇入:4,宽度:同一层模块的最大模块数,扇出:一个模块直接调用的其他模块数目,扇入:调用一个给定模块的模块个数。(被调用的次数),好的软件结构应该是顶层扇出比较多,中层扇出较少,底层扇入多.,深度:模块结构的层次数 (控制的层数).,基本术语:,以下是一个软件系统的分层模块结构图,请分析后将正确的答案填入空白处 ( 1 ) 该结构图的深度为(2)该结构图的宽度为 (3)扇入为2的模块有 ( 4 ) 扇入为3的模块有 ( 5 ) 扇出为1的模块有 ( 6 ) 扇出为2的模块有 ( 7 ) 扇出为3的模块有,5
47、.数据流图到结构图的变换: 结构化设计方法任务: 把需求分析得到的数据流图变换为结构图。 典型的数据流类型: 变换型和事务型, 变换型:,信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统。,关键词:输入、 变换、 输出,例图:,取得数据 C,变换数据 C-D,输出数据 D,输入,中心变换,输出,变换型数据流结构的组成,主控模块,输入数据,输出数据,C,D,C,D,交换中心,变换型数据流系统结构图,举例,举例,5 .数据流图到结构图的变换,数据流的特点是接受一项事务,根据事务处理的特点和性质,选择分派一个适当的
48、处理单元 (事务处理中心),然后给出结果。, 事务型:,关键词:接受、 分派、 输出,映 射,逻辑结构,系统结构,举例,举例,一般说来,如果数据流不具有显著的事务特点,最好使用变换分析,变换型,事务型,面向数据流设计方法的实施要点与设计过程,分析、确认数据图的类型,区分是事务型还是变换型。,说明数据流的边界,将数据流图映射为程序结构图,事务流:区分事务中心和数据接收通路,映射成事务结构 变换流:区分输出和输入分支,映射成变换结构,对产生的结构细化和求精,6. 详细设计及工具,详细设计的目的: 为软件结构图 (SC)中的每 一个模块确定采用的算法,模块内数据结构,用某种选定的表达工具(如N-S图
49、等)给出清晰的描述。,详细设计 阶段的 主要任务,详细设计工具,详细设计的设计工具种类 图形工具:程序流程图(PFD)、N-S图,问题分析图(PAD图) 表格工具:类似于判定表 语言工具: 过程设计语言(PDL),6. 详细设计及工具,程序流程图(PFD: Program Flow Diagram)) 特点:直观、清晰、易于掌握,用流程图来表示12345,程序流程图的标准符号,程序流程图缺点,示例, 盒图(N-S图) 为避免流程图在描述程序逻辑时的随意性与灵活性,1973提出用方框代替传统的程序流程图,通常也把这种图称为N-S图,有5种的控制结构。, 盒图(N-S图) 为避免流程图在描述程序逻
50、辑时的随意性与灵活性,1973提出用方框代替传统的程序流程图,通常也把这种图称为N-S图,有5种的控制结构。,用N-S图来表示12345,盒图具有以下特点: 过程的作用域明确; 盒图没有箭头,不能随意转移控制; 容易区分全局变量和局部变量; 容易表示嵌套关系和层次关系; 强烈的结构化特征。,问题分析图(PAD:Problem Analysis Diagram) 是继流程图和方框图之后,又一种描述详细设计的工具,有5种结构。,选择:IF C Then P1 Else P2(双分支) 多分支选择:Case 型多分支 While 循环:当型循环 Until循环:直到型循环, 过程设计语言(PDL):
51、,过程设计语言(PDL)也称结构化的英语或伪码语言,它是一种混合语言,采用英语的词汇和结构化程序设计语言的语法,它描述处理过程怎么做,类似编程语言。,用PDL表示的基本结构的常用词汇如下: 顺序:无 条件:IF/THEN/ELSE/ENDIF 循环:DOWHILW/ENDDO 循环:REPEAT UNTIL/ENDREPEAT 分支:CASE OF/WHEN/SELECT/WHEN/SELECT/ENDCASE,PDL:Procedure Design Language,示例: 拼词检查程序,PROCEDURE spellcheck IS BEGIN split document into s
52、ingle words lood up words in dictionary display words which are not in dictionary create a new dictionary END spellcheck,1. 在软件开发中,下面任务不属于设计阶段的是_。 A. 数据结构设计 B. 给出系统模块结构 C. 定义模块算法 D. 定义需求并建立系统模型 2. 程序流程图(PFD)中的箭头代表的是_。 A. 数据流 B. 控制流 C. 调用关系 D. 组成关系 3. 软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指_。 A. 模块间的关系 B.
53、系统结构部件转换成软件的过程描述C. 软件层次结构 D. 软件开发过程 4. 为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为_。A. PAD图 B. N-S图 C. 结构图 D. 数据流图,5.在软件设计中,不属于过程设计工具的是_。 (05.4) A)PDL B)PAD图C)N-S图 D)DFD 6. 在程序结构图中,矩形用来表示_。 A)模块 B)模块间的调用关系C)加工 D)存储 7. 下面关于PDL不正确的说法是_。 A)PDL描述处理过程怎么做 B)PDL只描述加工做什么 C)PDL也称为伪码 D) PDL的外层语法应符合一般程序设计
54、语言常用的语法规则,3.4 软件测试,3.4.1软件测试的目的与原则,软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序 内部结构而精心设计的一批测试用例(即输入数据及预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。,为了发现尽可能多的缺陷,不是为了说明软件中没有缺陷,测试目的: 可能地多发现程序中的错误,测试用例的选择原则: 选择发现错误可能性大的数据,3.4 软件测试,3.4.1软件测试的目的与原则,软件测试准则(六点):,(1)所有测试都应追溯到需求。 (2)严格执行测试计划,排除测试的随意性。 (3)充分注意测试中的群集现
55、象。 80的缺陷聚集在20的模块中 (4)程序员应避免检查自己的程序。 (5)穷举测试不现实。 (6)妥善保存测试计划、测试用例、和最终分析报告等。,功能没有实现或与规格说明不一致的问题是bug; 不能工作(死机、没反应)的部分是bug; 不兼容的部分是bug; 边界条件未做处理是bug; 界面、消息、提示、帮助不够准确是bug; 屏幕显示、打印结果不正确也是bug; 有时把尚未完成的工作也作为一个bug。,3.4.2 软件测试方法,研究内容:如何用最少的测试用例集合来测试出程序中更多的潜在错误。,关键技术:如何进行彻底的测试,如何设计测试用例等。,测试分类:,根据软件是否需要被执行,按照功能
56、划分,静态测试 动态测试,黑盒测试 白盒测试,1.静态测试与动态测试,(1)静态测试:包括代码检查、静态结构分析、代码质量度量等。可以由人工进行或软件工具自动进行。,(2)动态测试:设计一批测试用例,利用它们去运行程序,以发现程序错误的过程。,测试用例:为测试设计的数据。由测试输入数据和与之对应的预期输出结果组成。,也叫玻璃盒测试、结构测试或逻辑驱动测试, 对软件的过程性细节做细致的检查。这一方法是把测试对象看作一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,来设计或选择测试用例,对程序所有逻辑路径进行测试。 白盒测试是在程序内部进行,主要用于完成软件内部操作的验证。,2. 白
57、盒测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。,白盒测试,白盒测试 的原则,白盒测试局限性:是穷举路径测试,贯穿程序独立路径数是天文数字,即使每条路径都经过了测试,仍可能有未发现错误。,白盒测试的主要方法:逻辑覆盖测试、基本路线测试,白盒测试原则及测试用例,白盒测试用例设计: 逻辑覆盖测试:以程序内部的逻辑结构为基础的测试用例设 计技术。 程序中的逻辑表示有:判断、分支、条件等几种表示方式。,逻辑覆盖测试的标准,问题:若AND错写为OR,或X1错写为X1,则错误无法由上例测出。,Test case : A=2 , B=0 , X=4.,a,b,c,d,e, 语句覆盖(Statement coverage):每个语句至少执行一次。,判定覆盖(Branch coverage):在的基础上,每个判定的每个分支至少执行一次。,Test cases: A=3 , B=0 , X=3 A=2 , B=1 , X=1,问题:若X1错写为X1,仍然无法被测出。,a,c,b,e,d, 条件覆盖(Condition coverage):在的基础
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 仓储服务合同协议(2026年跨境电商)
- 高密度鱼塘水质调控管理指引
- 粉尘作业现场防护措施规定
- 柑橘气调保鲜储藏方案
- 工作场所职业危害因素监测规范
- 长期康复客户回访管理规范
- 经络疏通刮痧排毒操作手册
- 芦笋定植后田间管理规范
- 葡萄藤修剪架型搭建施工规范
- 低盐低脂烹饪操作规范
- 河南省顶级名校2026届高三年级5月押题导向卷(一)语文试卷(含答案及解析)
- 2026湖北十堰市茅箭区教育局所属学校招聘教师120人备考题库及答案详解(必刷)
- 《第3课 超越空间》课件
- 外贸公司三年发展战略纲要(2026-2028年)
- 2025云南昆明国有资产管理有限公司招聘3人笔试历年难易错考点试卷带答案解析
- 不动产登记代理人《地籍调查》历年考试真题及答案
- 2026年青岛市市级机关遴选考试笔试试题(含答案)
- 2026年25届成飞校招笔试题及答案
- 市政污水处理厂工程造价指标分类及编制标准
- 2025年江苏省扬州市初二学业水平地理生物会考真题试卷(含答案)
- 2026年中考道德与法治一轮复习:七八九年级6册教材关键词+一句话核心考点
评论
0/150
提交评论