软件工程资料.docx
《软件工程资料.docx》由会员分享,可在线阅读,更多相关《软件工程资料.docx(12页珍藏版)》请在三一办公上搜索。
1、一选择题:1软件工程学的提出是由于软件生产中的软件危机引起的,软件工程学的目的应该是最终解决软件生产的使软件工程化的问题。2软件危机通常是指在计算机软件开发和维护中所产生的一系列严重的问题,这些问题中相对次要的因素是软件性能。3软件危机是软件产业化过程中出现的一种现象,如:软件需求增长难以满足;软件开发成本提高;软件开发进度难以控制;软件质量不容易保证。4造成软件危机的主要原因是:软件本身特点,缺乏好的开发方法和手段。5软件工程方法学研究内容包含软件开发技术和软件工程管理两部分,其期望达到的最终目标是软件开发工程化。6瀑布模型把软件生命周期分为八个阶段:问题定义、可行性研究、软件需要分析、系统
2、总体设计、详细设计、编码、测试和运行、维护。八个阶段又可归纳为三大阶段:计划阶段;开发阶段和运行阶段7从结构化的瀑布模型看,在它的生命周期的八个阶段中,需求分析阶段出错对软件的影响最大。8在结构性的瀑布模型中,需求分析阶段定义的标准将成为软件测试中的系统测试阶段的目标。9软件工程的出现主要是由于软件危机的出现。10软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是软件开发工具和软件开发环境。11软件工程方法学中重要的内容之一是软件工程管理,它包含软件管理学和软件工程经济学,它要达到的目标是以基本的社会经济效益为基础,工程化生产软件。12软件工程方法中最普遍应用
3、的方法之一是结构化生命周期方法(SLC方法),包括:严格定义需求;划分开发阶段;规范文档格式。13结构化分析方法是一种预先严格定义需求的方法,它在实施时强调分析对象的数据流。14软件开发的结构化生命周期方法将软件生命周期划分为计划阶段;开发阶段和运行阶段。15进行需求分析可使用多种工具:数据流图(DFD);判断表;判定树和数据字典。16在软件的需求分析中,开发人员要从用户那里解决的最重要的问题是要让软件做什么。17软件需求分析阶段的工作,可以分为四方面:对问题的识别、分析与综合、编写需求分析文档以及需求分析评审。18在结构化分析方法中,用以表达系统内数据的运动情况的工具是数据流图。19软件设计
4、将涉及软件的结构、过程和模块的设计,其中软件过程是指模块的操作细节。20模块的独立性是由内聚性和耦合性来量度的,其中内聚性是模块的功能强度。21在软件开发过程中常用图作为描述工具。DFD就是面向数据流分析方法的描述工具。在一套分层DFD中,如果某一张图中有N个加工,则这张图允许有0N张子图。在一张DFD图中,任意两个加工之间有且仅有一条数据流。在画分层DFD时,应注意保持父图与子图之间的平衡。DFD中从系统的输入流到系统的输出流的一连串连续变换形成一种信息流,这种信息流可分为事件流和控制流两大类。22软件设计中划分模块的一个准则是高内聚低耦合。两个模块之间的耦合方式中,内容耦合的耦合度最高,非
5、直接耦合的耦合度最低。一个模块内部的内聚种类中,功能内聚的内聚度最高,偶然内聚的内聚度最低。23黑盒测试是从用户观点的测试,白盒测试是从开发人员观点的测试。24为了把握软件开发各个环节的正确性和协调性,人们需要进行确认和验证工作。确认的目的是想证实在一给定的外部环境中软件的逻辑正确性,它包括需求规格说明确认和用户确认。验证则试图证明在软件生存期各个阶段,以及阶段间的逻辑协调性、完备性和正确性。25一般来说,与测试数据无关的文档是项目开发计划。26根据国家标准GB8566-8计算机软件开发的规定,软件的开发和维护分为八个阶段,单元测试在编码阶段完成。单元测试(编码阶段);集成测试(设计阶段);确
6、认测试(需求分析阶段)。27在设计测试用例时,划分等价类是用得最多的一种黑盒测试方法。在黑盒测试方法中,等价划分方法设计测试用例的步骤是:(1)根据输入条件把数目极多的输入数据划分成若干个有效等价类盒若干个无效等价类。(2)设计一个测试用例,使其覆盖尽可能多尚未覆盖的有效等价类,重复这一步,直至所有有效等价类均被覆盖。(3)设计一个测试用例,使其覆盖仅一个尚未覆盖的无效等价类,重复这一步,直至所有无效等价类均被覆盖。在实际应用中,一旦纠正了程序中的错误后,还应选择部分或全部原先已经测试过的测试用例,对修改后的程序重新测试,这种测试称为回归测试。28单元测试在实现阶段进行,它所依据的模块功能描述
7、和内部细节及测试方案应在详细设计阶段完成,目的是发现编程错误。 集成测试所依据的模块说明书和测试方案应在概要设计阶段完成,它能发现设计错误。确认测试应在模拟的环境中进行强度测试的基础上进行,测试计划应在需求分析阶段完成。29软件测试阶段的基本任务应当是根据软件开发各阶段的文档资料和程序的内部结构,精心设计一批“高产”的测试用例,利用这些测试用例执行程序,找出软件中潜藏的各种错误和缺陷。 30测试用例不仅要选用合理的测试输入数据,还需要选用不合理的测试输入数据,这样能更多地发现错误,提高程序的可靠性。对于不合理的测试输入数据,程序应拒绝执行,并给出相应的提示。31动态测试指通过运行程序发现错误。
8、对软件产品进行动态测试时使用黑盒测试法和白盒测试法。32静态测试指被测试程序不在机器上运行,而是采用人工检测和计算机辅助静态分析的手段对程序进行检测。33黑盒测试依据软件需求规格说明,检查程序是否满足功能要求。因此,黑盒测试又称为功能测试或数据驱动测试。34白盒测试以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检查内部数据结构和运行状态是否有错,程序的语句和条件与预期的状态是否一致。白盒测试又称为结构测试。35在基本路径测试中,独立路径是指包括一组以前没有处理过的上层调用模块的一条路径。从程序图来看,一条独立路径是至少包含有一条测试输入数据的边的路径。37软件测试的目的是发现
9、软件错误。38软件测试用例主要由测试输入数据和测试的预期结果两部分组成。39与设计测试用例无关的文档是项目开发计划。40软件测试是软件质量保证的主要手段之一,测试的成本已超过软件开发成本的30%以上。因此,提高测试的有效性非常重要。41“高产”的测试是指用适量的测试用例发现被测试程序尽可能多的错。42如果想要进行成功的测试,为其设计测试用例主要依赖于测试人员的经验。43使用白盒测试方法时,确定测试数据应根据程序的内部结构和指定的覆盖标准。44在用逻辑覆盖法设计测试用例时,有语句覆盖、分支覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖和路径覆盖等。其中路径覆盖是最强的覆盖准则。45在设计测试用例时
10、,等价类划分是用得最多的一种黑盒测试方法。46在黑盒测试中,着重检查输入条件的组合的测试用例设计方法是因果图法。47单元测试将根据在详细设计阶段中产生的规格说明进行。48集成测试计划是在概要设计阶段制定的。49确认测试计划是在需求分析阶段制定的。50软件的集成测试最好是由不属该软件开发组的软件人员承担,以提高集成测试的效果。51从已发现故障的存在到找到准确的故障位置并确定故障的性质,这一过程称为调试。52统计资料表明,软件测试的工作量占整个软件开发工作量的40%50%。53软件测试计划是一些文档,它们描述了对于预定的测试活动将要采取的手段。54IBM公司的统计资料表明,使用静态测试的方法最高可
11、以查出在测试中查出的全部软件错误的70%。55黑盒测试方法的优点是可发现实现功能需求中的错误。56白盒测试方法的优点是可按软件内部结构测试。57等价类划分完成后,就可得出等价类表,它是确定测试用例的基础。58由因果图转换出来的判定表是确定测试用例的基础。59软件测试的目的是发现软件的错误。为了提高测试的效率,应该选择发现错误的可能性大的数据作为测试数据。使用白盒测试方法时,确定测试数据应根据程序的内部逻辑和指定的覆盖标准。与设计测试数据无关的文档是项目开发计划。软件的集成测试工作最好由承担,以提高集成测试的效果。60测试过程需要三类输入:软件配置、测试配置和测试工具。对测试结果进行结果分析,出
12、错则排错,通过数据出错率进行可靠性分析。61程序的三种基本控制结构是顺序,条件,循环。它们的共同点是只有一个入口和一个出口。结构化程序设计的一种基本方法是逐步求精法。软件测试的目的是发现程序中的错误。软件调试的目的是找出错误所在并改正之。62(1) 对可靠性要求很高的软件,例如操作系统,由第三者对源代码进行逐行检查。代码审查 (2) 已有的软件被改版时,由于受到变更的影响,改版前正常的功能可能发生异常,性能也可能下降。因此,对变更的软件进行测试是必要的。回归测试 (3) 在意识到被测试模块的内部结构或算法的情况下进行测试。白盒测试 (4) 为了确认用户的需求,先做出系统的主要部分,提交给用户试
13、用。原型63软件测试方法可分为黑盒测试法和白盒测试法两种。 黑盒测试法是通过分析程序的功能来设计测试用例的方法。除了测试程序外,它还适用于对需求分析阶段的软件文档进行测试。白盒测试法是根据程序的内部逻辑来设计测试用例的方法。除了测试程序外,它也适用于对软件详细设计阶段的软件文档进行测试。白盒法测试程序时常按照给定的覆盖条件选取测试用例。判定覆盖比语句覆盖严格,它使得每一个判定的每一条分支至少经历一次。判定/条件覆盖既是判定覆盖,又是条件覆盖,但它并不保证使各种条件都能取到所有可能的值。多重条件覆盖比其他条件都要严格,但它不能保证覆盖程序中的每一条路径。单元测试一般以白盒法为主,测试的依据是模块
14、功能规格说明。64集成测试也叫做组装测试或联合测试。通常,在单元测试的基础上,将所有模块按照设计要求组装成为系统。子系统的集成测试特别称为部件测试,它所做的工作是要找出子系统和系统需求规格说明之间的不一致。需要考虑的问题是:在把各个模块连接起来的时侯,穿越模块接口的数据是否会丢失; 一个模块的功能是否会对另一个模块的功能产生不利的影响;各个子功能组合起来,能否达到预期要求的父功能;全局数据结构是否有问题;单个模块的误差累积起来是否会放大。65软件测试中常用的静态分析方法是引用分析和接口分析。接口分析用于检查模块或子程序间的调用是否正确。分析方法(白盒方法)中常用的方法是路径测试方法。非分析方法
15、(黑盒方法)中常用的方法是等价类方法和因果图方法。因果图方法根据输出对输入的依赖关系设计测试用例。66等价类划分是一种典型的黑盒测试方法方法,也是一种非常实用的重要的测试方法。使用这一方法,完全不考虑程序的内部结构。用所有可能输入的数据来测试程序是不可能的,只能从全部可供输入的数据中选择一个子集进行测试。等价类是指某个输入域的集合,在该集合中,各个输入数据对于揭露程序中的错误是等效的。67黑盒测试方法的缺点是不可测试软件的特定部位和无法测试未实现功能需求的软件的内部缺陷。68白盒测试方法的缺点是不能发现功能需求中的错误和无法检验软件的外部特性。二判断题(1) 用黑盒法测试时,测试用例是根据程序
16、内部逻辑设计的。()(2) 尽量用公共过程或子程序去代替重复的代码段。()(3) 测试是为了验证该软件已正确地实现了用户的要求。()(4) 对于连锁型分支结构,若有n个判定语句,则有2n条路径。()(5) 尽量采用复合的条件测试,以避免嵌套的分支结构。()(6) GOTO语句概念简单,使用方便,在某些情况下,保留GOTO语句反能使写出的程序更加简洁。()(7) 发现错误多的程序模块,残留在模块中的错误也多。()(8) 黑盒测试方法中最有效的是因果图法。()(9) 在做程序的单元测试时,桩(存根)模块比驱动模块容易编写。()(10) 程序效率的提高主要应通过选择高效的算法来实现。()三应用题1.
17、求一组数组中的最大数, 数组表示为A(n) ,n1,2n的自然数。(10分) 请画出程序流程图(4分) 请画出该算法的N-S图(3分) 请用PAD图来表示该算法(3分) 答案: 2、某银行计算机储蓄系统的工作流程大致如下:储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人的姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存款单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。请用数据流图描绘本系统的功能。并画出系统的E-R图。DFD图:ER图: 3、
18、试用N-S图和PAD表示下面程序流程图,并计算它们的McCabe复杂性度量.(基本路径测试法的环复杂度)。(10%)解答:4、某培训中心要研制一个计算机管理系统。它的业务是:将学员发来的信件收集分类后,按几种不同的情况处理。1)如果是报名的,则将报名数据送给负责报名事务的职员,他们将查阅课程文件,检查该课程是否额满,然后在学生文件、课程文件上登记,并开出报告单交财务部门,财务人员开出发票给学生。2)如果是想注销原来已选修的课程,则由注销人员在课程文件、学生文件和帐目文件上做相应的修改,并给学生注销单。3)如果是付款的,则由财务人员在帐目文件上登记,也给学生一张收费收据。要求:1).对以上问题画
19、出数据流程图。(8分)2).画出该培训管理的软件结构图的主图。(8分)四计算例题:1如图所示的程序有三条不同的路径。分别表示为L1(ab)、L2(acd)、L3(ace),或简写为ace、abd、abe及acd。根据判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖和路径覆盖等五种覆盖标准,写出满足相应覆盖标准的最小测试用例组。解:判定覆盖:x = 90, y = 90路径覆盖:x = 90, y = 90x = 50, y = 50 x = 50, y = 50x = 90, y = 70 x = 90, y = 70条件覆盖:x = 90, y = 90条件组合覆盖:x = 90, y =
20、90x = 50, y = 50x = 90, y = 70x = 80, y = 70x = 90, y = 30x = 70, y = 90x = 70, y = 90x = 30, y = 90判定-条件覆盖:x = 90, y = 90x = 70, y = 70 x = 50, y = 50x = 50, y = 50 x = 80, y = 70x = 50, y = 50 x = 70, y = 902下面是快速排序算法中的一趟划分算法,其中datalist是数据表,它有两个数据成员:一是元素类型为Element的数组V,另一个是数组大小n。算法中用到两个操作,一是取某数组元素V
21、i的关键码操作getKey ( ),一是交换两数组元素内容的操作Swap( ): int Partition ( datalist &list, int low, int high ) /在区间 low, high 以第一个对象为基准进行一次划分,k返回基准对象回放位置。int k = low; Element pivot = list.Vlow; /基准对象for ( int i = low+1; i = high; i+ ) /检测整个序列,进行划分if ( list.Vi.getKey ( ) pivot.getKey( ) & + k != i ) Swap ( list.Vk, li
22、st.Vi );/小于基准的交换到左侧去Swap ( list.Vlow, list.Vk );/将基准对象就位 return k; /返回基准对象位置 (1) 试画出它的程序流程图; (2) 试利用路径覆盖方法为它设计足够的测试用例(循环次数限定为0次,1次和2次)。解:(1) (2)3设要对一个自动饮料售货机软件进行黑盒测试。该软件的规格说明如下: “有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”或“红茶”按钮,相应的饮料就送出来。若投入的是2元硬币,在送出饮料的同时退还5角硬币。” (1) 试利用因果图法,建立该软件的因果图; (2) 设
23、计测试该软件的全部测试用例。解:(1) (2)4如果对一个长度为100000条指令的程序进行集成测试期间记录下面的数据:a. 7月11日:集成测试开始,没有发现错误。b. 8月2日:总共改正了100个错误,此时MTTF=0.4h。c. 9月1日:总共改正了300个错误,此时MTTF=2h。(1)估计程序中的错误总数。(2)为使MTTF达到10h,必须测试和调试这个程序多长时间?解:(1)因为:所以:得K=1000,ET=350。所以程序中的错误总数约为250个。(2)设MTTF=10则: 由可靠性累积曲线EC (t) = ET (1-e-K1 t ),得 100 = 350 (1-e-160K
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 资料
链接地址:https://www.31ppt.com/p-1675995.html