09上半软件设计师辅导软件工程_精品文档.pps

上传人:b****1 文档编号:207773 上传时间:2022-10-06 格式:PPS 页数:62 大小:365.50KB
下载 相关 举报
09上半软件设计师辅导软件工程_精品文档.pps_第1页
第1页 / 共62页
09上半软件设计师辅导软件工程_精品文档.pps_第2页
第2页 / 共62页
09上半软件设计师辅导软件工程_精品文档.pps_第3页
第3页 / 共62页
09上半软件设计师辅导软件工程_精品文档.pps_第4页
第4页 / 共62页
09上半软件设计师辅导软件工程_精品文档.pps_第5页
第5页 / 共62页
点击查看更多>>
下载资源
资源描述

09上半软件设计师辅导软件工程_精品文档.pps

《09上半软件设计师辅导软件工程_精品文档.pps》由会员分享,可在线阅读,更多相关《09上半软件设计师辅导软件工程_精品文档.pps(62页珍藏版)》请在冰豆网上搜索。

09上半软件设计师辅导软件工程_精品文档.pps

全国计算机技术与软件专业技术资格(水平)考试软件设计师级辅导教程软件工程基础知识部分主:

天讲刘惠辽宁省软考备考站专家组软件工程基础知识软件工程基础知识1.软件工程软件工程软件工程是用科学知识和技术原理来定义、开发、维护软件的一门综合性的交叉学科,用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题。

它着重于如何建造一个软件系统。

2.软件生存周期的六个阶段软件生存周期是指一个软件从提出开发要求开始直到该软件报废为止的整个时期。

把整个生存周期划分为若干阶段,使得每个阶段有明确的任务,使软件开发变得容易控制和管理。

软件项目计划:

确定软件系统总目标(问题定义),进软件项目计划:

确定软件系统总目标(问题定义),进行行可行性分析可行性分析。

需求分析和定义:

确定软件系统的功能、性能、数据、需求分析和定义:

确定软件系统的功能、性能、数据、界面等。

界面等。

软件设计:

概要设计和详细设计。

概要设计是进行模块软件设计:

概要设计和详细设计。

概要设计是进行模块划分,确定每个模块的功能及模块间的接口、全局数据划分,确定每个模块的功能及模块间的接口、全局数据结构。

详细设计是设计每个模块的实现细节。

结构。

详细设计是设计每个模块的实现细节。

编码:

用某种语言为每个模块编写程序。

编码:

用某种语言为每个模块编写程序。

软件测试:

发现软件中的错误并改正。

设计测试用例,软件测试:

发现软件中的错误并改正。

设计测试用例,检验软件的各个组成部分。

检验软件的各个组成部分。

运行维护:

根据需要对软件进行修改。

运行维护:

根据需要对软件进行修改。

定义阶段定义阶段开发阶段开发阶段维护阶段维护阶段(05年11月)在开发一个系统时,如果用户对系统的目标是不很清楚,难以定义需求,这时最好使用(6)。

(6)A原型法B瀑布模型CV-模型D螺旋模型(07年5月软件设计师)以下关于原型化开发方法的叙述中,不正确的是(17)。

(17)A.原型化方法适应于需求不明确的软件开发B.在开发过程中,可以废弃不用早期构造的软件原型C.原型化方法可以直接开发出最终产品D.原型化方法利于确认各项系统服务的可用性结构化分析结构化分析(SA:

StructuredAnalysis)方法:

是一种面向数据流面向数据流的需求分析方法。

自顶向下逐层分自顶向下逐层分解解,把大问题分解成若干个小问题,再将小问题继续分解。

SA方法的结果由以下几部分组成:

一套分层的数据流图数据流图(DFD),用来描述数据流从输入到输出的变换流程。

一本数据字典数据字典,用来描述DFD中的每个数据流、文件、及数据项。

一组逻辑加工说明逻辑加工说明。

(07年5月软件设计师)结构化开发方法中,数据流图是(15)阶段产生的成果。

(15)A.需求分析B.总体设计C.详细设计D.程序编码数据的源点/终点数据变换与处理数据存储数据流(15)是一种面向数据流的开发方法,其基本思想是软件功能的分解和抽象。

(15)A.结构化开发方法B.Jackson系统开发方法C.Booch方法D.UML(统一建模语言)2008年5月软件设计师(15)软件设计:

概要设计(也称结构设计)和详细设计(也称过程设计)。

常用的设计原则包括:

l模块化在软件的体系结构中,模块是可组合、分解和更换的单元。

模块应具有4个要素:

输入和输出:

从调用者取得数据,将结果返回给调用者;处理功能:

把输入转换成输出;内部数据:

仅供该模块本身引用的数据;程序代码。

2.抽象原则:

抽出事物本质的共同的特性而暂不考虑它的细节。

从一般到具体,从最初的整体设计到最终的实现细节就是一次次的抽象过程。

.信息隐蔽:

定义每个模块时尽量少地显露与其它模块无关的信息。

各模块彼此之间仅仅交换那些为了完成系统功能所必需的信息,而将那些自身的实现细节与数据“隐藏”起来。

信息隐蔽为软件系统的修改、测试及以后的维护都带来好处。

4.模块独立:

各模块间的联系简单,低耦合高内聚。

(耦合是指各模块之间各模块之间的紧密程度;内聚是指一个模块内部一个模块内部各元素之间联系的紧密程度。

)5.模块分解的原则:

信息隐蔽;低耦合高内聚;模块大小适中;调用深度不宜过大;扇入大扇出小(扇入大说明模块的使用率高;扇出大说明模块间调用的复杂度高);单入口单出口。

2007年11月上午题内聚性和耦合性是度量软件模块独立性的重要准则,软件设计时应力求(32)。

(32)A.高内聚,高耦合B.高内聚,低耦合C.低内聚,高耦合D.低内聚,低耦合模块用矩形表示,模块间的调用用线段连接,箭头由调用模块指向被调用模块。

输入输出数据写在调用线段旁。

判断调用用菱形符号,循环调用用弧形箭头。

结构化设计结构化设计(SD:

StructuredDesign)方法:

基于数据流的设计方法,采用模块结构图来描述程序的结构。

结构图的基本成分有:

模块、调用、输入/输出数据。

程序流程图盒图(N-S图)例:

在数据例:

在数据A

(1)A(10)中求最大中求最大数和次大数。

数和次大数。

程序流程图:

程序流程图:

PAD图图:

MAX1=0MAX2=0IFA

(1)=A

(2)MAX1=A

(1)MAX2=A

(2)ELSEMAX1=A

(2)MAX2=A(l)ENDIFFORi=3TO10IFA(i)MAX1MAX2MAX1MAX1=A(i)ELSEIFA(i)MAX2MAX2=A(i)ENDIFENDFORPUT(MAX1,MAX2)PDL描述:

某高校教师授课酬金分配方法是:

对于专职的教授、讲师、助教分别是每课时30、20、10元,对于外聘的教授、讲师、助教分别是每课时40、30、20元XFFTFX10XX20X30X40FFTTT专职否TFTFF助教FFFTF讲师FTFFT教授判定表举例专职津贴教授30讲师20助教10兼职教授40讲师30助教20判定树举例编码:

用某种语言为每个模块编写程序。

选择合适的程序设计语言商业领域:

COBOL语言科学计算:

FORTRON人工智能:

PROLOG和LIST面向对象:

C或Smalltalk实时处理:

一般对性能的要求很高。

汇编语言、Ada系统软件:

编写操作系统、编译系统等。

汇编语言、C、Pascal和Ada对源程序的要求:

正确性、可靠性正确性、可靠性,以及易使用、易维护、易移植。

输入和输出:

对输入数据进行校验;明确提示交互式输入的请求;设计良好的输出报表。

编码在软件设计和编码过程中,采取“(32)”的做法将使软件更加容易理解和维护。

(32)A.良好的程序结构,有无文档均可B.使用标准或规定之外的语句C.编写详细正确的文档,采用良好的程序结构D.尽量减少程序中的注释2008年5月软件设计师(32)软件测试:

发现软件中的错误并改正。

测试的基本概念:

软件测试的目的是尽可能多的发现软件中的错误尽可能多的发现软件中的错误(并不是为了证明程序正确)。

软件测试是为了发现错误而执行程序的过程。

一个好的测试用例能够发现至今尚未发现的错误。

一个成功的测试是发现了至今尚未发现的错误的测试。

尽量采用能暴露软件错误的测试数据。

测试的原则:

测试用例应由输入数据和预期的输出数据两部分组成;程序员避免测试自己写的程序;对合法和非法数据都要测试;长期保留测试用例;制定测试计划并严格执行,排除随意性;对发现错误较多的程序段,进行更深入测试。

测试策略和测试方法:

静态测试和动态测试静态测试(人工测试)指被测试程序不在机器上运行,而是采用人工代码审查和计算机辅助静态分析的手段对程序进行检测。

软件测试动态测试(机器测试)分为黑盒测试和白盒测试。

白盒测试(逻辑测试):

把测试对象看作一个打开的盒子,使用程序的内部逻辑来设计测试用例,测试者了解程序的结构和处理过程。

常用的技术是逻辑覆盖。

黑盒测试(功能测试):

把被测试对象看成一个黑盒子,不考虑程序结构和处理过程,依据需求规格说明书,检查程序是否满足功能要求。

常用的测试技术是等价类划分、边值分析、错误猜测等。

举例:

为了对如图所示的程序进行覆盖测试,必须适当地选取测试数据。

若x、y是两个变量,可供选择的测试数据组共有四组(如表中给出),则:

实现语句覆盖至少应采用的测试数据组是(A);实现条件覆盖至少应采用的测试数据组是(B);实现路径覆盖至少应采用的测试数据组是(C)或(D)。

13测试数据组42-1测试数据组321测试数据组230测试数据组1yx答:

(A)1和2组(B)1和4组(C)1、2、3组(D)1、2、4组(06年11月)给定C语言程序:

intfoo(intx,inty,intd)if(x!

=0)if(y=0)d=d/x;elsed=d/(x*y);elseif(y=0)d=0;elsed=d/y;returnd;当用路径覆盖法进行测试时,至少需要设计(31)个测试用例。

(31)A.3B.4C.5D.8解:

x=0,y=0;x=0,y0;x0,y=0;x0,y0(2007年5月)阅读下列流程图。

当用判定覆盖法进行测试时,至少需要设计(35)个测试用例。

(35)A.2B.4C.6D.8(2007年11月)对于如下的程序流程,当采用语句覆盖法设计测试案例时,至少需要设计(34)个测试案例。

(34)A.1B.2C.3D.4解:

(1)x=1,y=2

(2)x=-1,y=-2输入X和YX0YYXYYXY0X1否是否是X12007年11月(34)(2007年5月)在某大学生学籍管理信息系统中,假设学生年龄的输入范围为1640,则根据黑盒测试中的等价类划分技术,下面划分正确的是(37)。

(37)A.可划分为2个有效等价类,2个无效等价类B.可划分为1个有效等价类,2个无效等价类C.可划分为2个有效等价类,1个无效等价类D.可划分为1个有效等价类,1个无效等价类有效:

16-40。

无效:

(1)40(2005年11月)一个系统的模块结构图如图所示,用,表示这个系统的测试模块组合。

下面的选项中(20)表示自顶向下的测试,(21)表示三明治式测试。

(20)AA.AA,B,C,D,EA,B,C,D,E,F,G,H,I,J,KBFGHIJKB,F,GC,HD,I,JE,KA,B,C,D,E,F,G,H,I,J,KCKJIHGFBCDEA,B,C,D,E,F,G,H,I,J,KDAFGHIJKB,F,GC,HD,I,JE,KA,B,C,D,E,F,G,H,I,J,K(21)AAA,B,C,D,EA,B,C,D,E,F,G,H,I,J,KBFGHIJKB,F,GC,HD,I,JE,KA,B,C,D,E,F,G,H,I,J,KCKJIHGFBCDEA,B,C,D,E,F,G,H,I,J,KD.D.AFGHIJKB,F,GC,HD,I,JE,KA,B,C,D,E,F,G,H,I,J,K集成测试实际上是组装软件的过程。

一种方法是先分别测试每个模块,再把所有模块组装在一起,这种方法称为非渐增式测试方法。

另一种方法是每当测试完一个模块后,就再加进下一个模块来一起测试,这种称为渐增式测试,并分为自顶向下和自底向上两种方法。

自顶向下方法:

如本例中的(20)A。

自底向上方法:

如本例中的(20)B。

所谓的“三明治”方法,就是将上面两种方法结合起来。

在软件结构中的较上层,使用的是自顶向下方法,而对于软件结构中的较下层,使用的是自底向上。

如本例中的(21)D。

(06年11月)软件的测试通常分单元测试、组装测试、确认测试、系统测试四个阶段进行。

(32)属于确认测试阶段的活动。

(32)A.设计评审B.代码审查C.结构测试D.可靠性测试(2007年11月)为验证程序模块A是否正确实现了规定的功能,需要进行(35);为验证模块A能否与其他模块按照规定方式正确工作,需要进行(36)。

(35)A.单元测试B.集成测试C

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学案例设计

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1