77范文网 - 专业文章范例文档资料分享平台

软件工程导论重点内容(3)

来源:网络收集 时间:2020-04-17 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

一、详细设计

1、详细设计目的:对模块的算法设计和数据结构设计(设计出的处理过程应该尽可能简明易懂)。

2、详细设计的任务:详细设计就是在概要设计的结果的基础上,考虑“怎样实现”这个软件系统,直到对系统中个的每个模块给出足够详细的过程描述,主要任务如下:

编写软件的“详细设计说明书”.软件人员要完成的工作:

(1) 为每一个模块确定采用的算法, 选择某种适当的工具表达算法的过程,写出模块的详细过程描述. (2) 确定每一模块使用的数据结构.

(3) 确定模块结构的细节,包括对系统外部的接口和用户界面,对系统内部其它模块的接口,以及关于模块输入数据、输出数据及局部数据的全部细节.

(4) 为每一个模块设计出一组测试用例,以便在编码阶段对模块代码(即程序)进行预定的测试.模块的测试用例是软件测试计划的重要组成部分,通常包括输入数据,期望输出等内容。

3、详细设计的原则:过程描述是否易于理解、复审和维护,进而过程描述能够自然装换成代码,并保证详细设计与代码完全一致。

4、详细设计的描述工具应具备什么功能?

答:无论哪类描述工具不仅要具有描述设计过程,如控制流程、处理功能、数据组织及其它方面的细节的能力,而且在编码阶段能够直接将它翻译为用程序设计语言书写的源程序。 二、结构化程序设计

4、结构程序设计:如果一个程序的代码块仅仅通过顺序、选择和循环这3种进本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。

5.结构化程序设计的基本原则:在详细设计中所有模块都使用单入口、单出口的顺序、选择、循环三种基本控制结构. 四、过程设计

1、描述程序处理过程的工具称为过程设计工具,它们可以分为图形、表格和语言3类。 2、详细设计的方法:程序流程图、N-S图、PAD图

程序流程图:程序流程图又称之为程序框图,它是软件开发者最熟悉的一种算法表达工具。它独立于任何一种程序设计语言,比较直观和清晰地描述过程的控制流程,易于学习掌握。在流程图中只能使用下述的五种基本控制结构。1)顺序型、2)选择型、3)while型 4)Until型循环 5)多情况型选择

N-S图:规定了五种基本图形构件:1)顺序型、2)选择型、3)while重复型 4)Until重复型循环 5)多分支选择型

PAD图:它是用结构化程序设计思想表现程序逻辑结构的图形工具。PAD图也设置了五种基本控制结构的图示,并允许递归使用。

判定表:能够清晰地表示复杂的条件组合与应该做的动作之间的关系。

判定树的优点:它的形式简单到不需要任何说明,一眼就可以看出其含义,因此易于掌握和使用。 过程设计语言(PDL)也称伪码,它是正文形式表示数据和处理过程的设计工具。

4.比较面向数据流和面向数据结构两类设计方法的异同? 相同点:

11

(1) 遵守结构程序设计“由顶向下”逐步细化的原则,并以其为共同的基础;

(2) 均服从“程序结构必须适应问题结构”的基本原则,各自拥有从问题结构(包括数据结构)导出程序结构的一组映射规则。

不同点:

(1) 面向数据流的设计以数据流图为基础,在分析阶段用DFD表示软件的逻辑模型,在设计阶段按数据流类型,将数据流图转换为软件结构。面向数据结构的设计以数据结构为基础,从问题的数据结构出发导出它的程序结构。

(2) 面向数据流的设计的最终目标是软件的最终SC图,面向数据结构的设计的最终目标是程序的过程性描述。 过程设计的原则和方法:

1) 清晰第一的设计风格:大多数情况下,应该优先考虑程序的清晰度,把效率的考虑放在第二位。(除少数使用

特别频繁,或者实时程序)

2) 结构化的控制结构:所有的模块都只使用单入口单出口的3种基本循环结构——顺序、选择、循环 3) Goto语句不应滥用,但也不必完全禁止 4) 逐步细化实现方法。

五、 面向数据结构的设计方法(Jackson方法和Warnier方法)

1、 Jackson设计方法:Jackson方法是最著名的面向数据结构的设计方法,而不是面向数据流的设计方法。它是以信息驱动的,是将信息转换成软件的程序结构 2、Jackson方法的基本步骤是:

(1)分析并确定输入数据和输出数据的逻辑结果,并用Jackson图描绘这些数据结构. (2)找出输入数据结构和输出数据结构中有对应关系的数据单元。 (3)从描绘数据结构的Jackson图导出描绘程序结构的Jackson图

(4)列出所有操作和条件(包括分支条件和循环结束条件),并且把他们分配到程序结构图的适当位置 (5)用伪代码表示程序 3、比较Jackson方法和LCP方法的异同?

答:Jackson与LCP设计方法都是以数据结构为出发点,以程序的过程描述为最终目标,设计步骤基本相似。它们的主要差别是:

(1)使用不同的表达工具,其中LCP方法中的表达工具Warnier图比Jackson设计方法中的表达工具Jackson图有更大的通用性;

(2)Jackson方法的步骤和指导原则有一定的灵活性,而LCP设计方法则更加严密。

第七章、实现

重点掌握的内容:程序设计的语言的特点、编程风格、程序效率和编码安全 考核知识点:

1、实现定义: 通常把编码和测试统称为实现 一、编码:

1、所谓编码就是把软件设计结果翻译成用某种程序设计语言书写的程序。

12

2、 编码的任务?

答:使用选定的程序设计语言,把模块的过程性描述翻译为用语言书写的源程序(源代码)。

3、程序设计的特点:程序设计语言是人鱼计算机交流的媒介。软件工程师应该了解程序设计语言各方面的特点,以及这些特点对软件质量的影响,以便在需要为一个特定的开发项目选择语言时,能作出合理的技术抉择。其特点表现为九方面:

(1) 名字说明:程序中使用对象的名字,能为编译程序所检查和识别; (2) 类型说明:定义对象的类型,确定该对象的使用方式;

(3) 初始化:为变量提供适当的初始值或由系统给变量赋一特殊的表明未初始化的值; (4) 对象的局部性:程序中真正需要的那部分才能访问的对象; (5) 程序模块:控制程序对象的名字;

(6) 循环控制结构:如FOR语句、WHILE-DO语句、REPEAT-UNTIL语句等; (7) 分支控制结构:如IF语句、CASE语句等;

(8) 异常处理:为程序运行过程中发生的错误和意外事件提供检测和处理上的帮助; (9) 独立编译:能分别编译各个程序单元。 4、编码风格:

编码风格又称程序设计风格或编程风格,实际上指编程的原则。表现为五个方面: 源程序文档化:符号名的命名、程序的注释、标准的书写格式

数据说明:数据说明的次序应当规范化。使数据属性容易查找,也有利于测试,排错和维护

语句结构:语句结构力求简单、直接,不能为了片面追求效率而使语句复杂化,可以从以下几点注意:使用标准的控制结构、尽可能使用库函数、程序编写首先应该考虑清晰性、注意使用goto语句 输入/输出:输入/输出地方式和格式应当尽可能做到对用户友善,尽可能方便用户的使用。

效率: 程序效率:程序效率是指程序的执行速度及程序占用的存储空间。影响程序效率的因素是多方面的。 二、软件测试:

1、软件测试定义: 为了发现程序中的错误而执行程序的过程 2、软件测试目标: 测试是为了发现程序中的错误而执行程序的过程 3、软件测试的准则:

1)所有测试都应该能够追溯到用户需求 2)应该远在测试开始之前就制定出测试计划 3)把Pareto原理应用到软件测试中

4)应该从“小规模”测试开始,并逐步进行“大规模”测试 5)穷举测试是不可能的。

6)为了达到最佳的测试效果,应该由独立的第三方从事测试工作。 4、软件测试方法: 第一种方法是黑盒测试(功能测试),第二种方法是白盒测试(结构测试)

黑盒测试:如果已经知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正常使用。

13

白盒测试:如果知道产品内部工作过程,可以通过测试来检验产品内部动作是否按照规格说明书的规定正常进行。 5、软件测试步骤: 1)单元测试(模块测试) 2).子系统测试3). 系统测试 4). 验收测试(确认测试)5.) 平行运行

6、测试阶段的信息流:1)软件配置,包括需求说明书、设计说明书和原程序清单 测试配置,包括测试计划和测试方案(输入数据、输出数据和检测功能) 三、单元测试

1、单元测试(Unit testing )也称为模块测试或结构测试,通常可放在编程阶段(实现阶段),主要采用逻辑覆盖技术,由程序员对自己编写的模块自行测试,检查模块是否能实现了详细设计说明书中规定的功能和算法。 2、单元测试主要发现编程和详细设计中产生的错误。

3、测试一个模块时需要为该模块编写一个驱动模块和若干个桩(stub)模块。顶层模块测试时不需要驱动模块,底层模块测试时不需要桩模块。

4、 在进行单元测试时,常用的方法是白盒测试(采用逻辑覆盖的测试技术),辅之以黑盒测试。 5、可从以下5方面对模块进行测试:

1)模块接口:参数的数目、次序、属性或单位系统与变元是否一致;是否修改了只作输入用的变元;全局变量的定义和用法在各个模块中是否一致。 2)局部数据结构 3)重要执行通路 4)出错处理通路

5)边界条件:边界测试是单元测试中最后的也可能是最重要的任务。 四、非渐增式测试与渐增式测试有什么区别?渐增式测试如何组装模块?

非渐增式测试与渐增式测试的测试方法有以下区别:

㈠非渐增式测试方法把单元测试和集成测试分成两个不同的阶段,前一阶段完成模块的单元测试,后一阶段完成集成测试。而渐增式测试往往把单元测试与集成测试和在一起,同时完成。

㈡非渐增式需要更多的工作量,因为每个模块都需要驱动模块和桩模块,而渐增式利用已测试过的模块作为驱动模块或桩模块,因此工作量较少。

㈢渐增式可以较早的发现接口之间的错误,非渐增式最后组装是才发现。

㈣渐增式有利于排错,发生错误往往和最近加进来的模块有关,而非渐增式发现接口错误推迟到最后,很难判断是哪一部分接口出错。

㈤渐增式比较彻底,已测试的模块和新的模块再测试。

㈥渐增式占用的时间较多,但非渐增式须更多的驱动模块、桩模块也占用一些时间。 ㈦非渐增式开始可并行测试所有模块,能充分利用人力,对测试大型软件很有意义。 渐增式测试有以下两种不同的组装模块的方法:

㈠自顶向下组合。该方法只需编写桩模块,其步骤是从顶层模块开始,沿被测程序的软件结构图的控制路径逐步向下测试,从而把各个模块都结合起来,它又有两种组合策略:①深度有先策略:先从软件结构中选择一条主控制路径,把该路径上的模块一个个结合进来进行测试,以便完成一个特定的子功能,接着再结合其它需要优先考虑的路径。②宽度有先策略:逐层结合直接下属的所有模块。

14

㈡自低向上结合。该方法仅需编写驱动模块。其步骤为:①把底层模块组合成实现一个个特定子功能的族。②为每一个族编写一个驱动模块,以协调测试用例的输入和测试结果的输出。③对模块族进行测试。④按软件结构图依次向上扩展,用实际模块替换驱动模块,形成一个个更大的族。⑤重复②至④步,直至软件系统全部测试完毕。 五、集成测试:

1、集成测试(integration testing)也称为组装测试,在单元测试的基础之上,把所有的模块组装成一个系统进行测试。主要测试设计阶段产生的错误,集成测试计划应该在概要设计阶段制定。 2、非渐增式集成测试

首先将每个模块分别进行单元测试,再把所有的模块组装成一个完整的系统进行测试。目前在进行集成测试时已普遍采用渐增式集成。 3、渐增式集成测试

又可以分为自顶向下集成和自底向上集成。自顶向下集成先测试上层模块,再测试下层模块,由于测试下层模块时上层模块已经测试过,所以不必要另外编写驱动模块。自底向上集成,先测试下层模块,再测试上层模块。 顶层模块测试时不需要驱动模块,底层模块测试时不需要桩模块。

软件的集成测试最好由不属于该软件开发组的软件设计人员承担,以提高集成测试的效果。 六、确认测试(验收测试)

1) 确认测试的目标是验证软件的有效性

2) 在系统验收测试中,验证测试是在模拟的环境中进行强度测试的基础上进行,主要依据软件需求说明书检

测软件的功能,性能及其他特征是否与用户的要求一致,而确认测试是在一个实际环境中使用真实数据运行系统。

3) 确认测试计划应该在需求分析阶段制定。

4) Alpha测试

由用户在开发者的场所进行,并且在开发者的指导下进行测试。开发者负责纪录发现的错误和使用中遇到的问题,也就是说Alpha测试是在受控的环境中进行的。

5) Beta测试是在一个或多个用户的现场由该软件的最终用户实施的,开发者通常不在现场,用户负责记录

发现的错误和使用中遇到的问题并把这些问题报告给开发者。也就是说,Beta测试是在受控的环境中进行的。经过确认测试之后的软件通常就可以交付使用了。

七、测试技术:

1、白盒测试技术: 白盒测试时将程序看作是一个透明的盒子,也就是说测试人员完全了解程序的内部结构和处理过程。所以测试时按照程序内部的逻辑测试程序、检验程序中的每条通路是否都能按预定的要求正确工作。白盒测试又称为结构测试。

白盒测试多用于单元测试阶段。逻辑覆盖是主要的白盒测试技术。白盒测试时,确定测试数据应根据程序的内部逻辑和指定的覆盖方式。采用一下几种逻辑覆盖标准: 语句覆盖 判定覆盖 条件覆盖 判定/条件覆盖 条件组合覆盖 路径覆盖

15

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库软件工程导论重点内容(3)在线全文阅读。

软件工程导论重点内容(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/987289.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: