中南大学软院历年真题简答题

合集下载

软工历年考题(加答案)

软工历年考题(加答案)

试卷一中南大学考试试卷2006--2006 学年学期时间110分钟软件工程课程48 学时 3 学分考试形式:闭卷专业年级:总分100分,占总评成绩100 %注:此页不作答题纸,请将答案写在答题纸上1.填空题(本题20分,每小题2分)1. 瀑布模型是以文档为驱动、适合于(软件需求确定的)软件项目的开发。

2. 需求分析的基本任务是(确定用户需要软件做什么)。

3. 若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。

设计这组测试用例的方法是(边界值分析法)。

4. 根据程序流程图划分的模块通常是(过程)内聚的模块。

5. 软件的分类,按其功能可分为:系统软件、(支撑软件)和应用软件。

6. UML的定义包括UML语义和(UML表示法)两个部分。

7. 客观世界中的若干类,通常有两种主要的结构关系:即分类结构和( 整体与部分结构)。

8. IDEF1X图用来描述系统的(数据)模型,主要有实体、联系和(属性)三种成分,其中实体可分为独立实体和(依赖实体),且一个实体只能在图中出现一次。

二、简答题(本题30分,每小题5分)1. 什么是软件工程?软件工程和计算机科学有何区别?答:软件工程是指导软件开发和维护的工程性学科;计算机科学着重于原理和理论,软件工程与计算机科学不同,软件工程着重于如何建造软件系统,软件是计算机中看不见摸不着的逻辑部分,以程序、数据和文档的形式出现。

2. 面向对象方法和结构化方法有何区别与联系?答:区别:面向对象从所处理的数据入手,以数据为中心来描述系统,其基本思想是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界的方法与过程,基本原则为:对象+类+继承+消息通信结构化方法首先关心的是功能,强调以模块为中心,其基本思想是自顶向下,逐步求精,单入口,单出口,基本原则为:抽象与功能的分解联系:软件开发过程中,在需求分析和规格说明阶段采用结构化方法,在设计和实现阶段采用面向对象方法。

中南大学软件学院编译原理2014年期末考试试卷及参考答案

中南大学软件学院编译原理2014年期末考试试卷及参考答案

中南⼤学软件学院编译原理2014年期末考试试卷及参考答案《编译原理》2014年期终考卷学号:姓名:说明:1.本考卷中⼤写字母∈V N ,其他符号∈V T;2、试卷中⼀、⼆两题请作在考卷上⼀、概念题(20分)1、编译过程⼀般分为⼏个阶段?各阶段的输⼊输出分别为什么?2、写出(a+b)*(c-d) 的逆波兰式,三元式,四元式。

⼆、判断题(10分。

注:每答对⼀题得+2分;答错⼀题得-2分;不答者得0分)1、设∑为{a,b},则a,ba,{∑},?都是∑上的正规式。

()2、对于上下⽂⽆关⽂法G[S],若S?αAB?αβγ则A→γ⼀定是⼀条产⽣式规则,其中α,β,γ∈(V T∨V N)* ()3、对于逆波兰后缀式,⽆论从哪头开始分析均可得到唯⼀正确的分解。

()4、LR(0)分析法是⼀种规范归约法。

()5、算符优先分析法只能⽤来分析算符优先⽂法。

()三、(20分)∑={a,b,c} 设计DFA M ,以b开头且只含⼀个b。

并⽤程序实现四、(30分)设⽂法G[S]为S→aAcBe 问:1、构造算符优先关系表分析abbcbe。

A→Ab|b 2、消除左递归B→d五、(本题20分)设⽂法G为:S→SaT|TT→aS|b1、写出G的拓⼴⽂法2、画出活前缀识别⾃动机3、G是否为SLR(1)?若是,构造分析表,若不是,说明原因。

软件2014班编译原理考试答案及评分细则⼀、(20分)1.词法分析语法分析语义分析与中间代码产⽣优化⽬标代码⽣成源程序单词符号语法单位中间代码中间代码⽬标代码Proc 0:getchar();CASE char OF‘a ’,’b ’,…,’z ’:‘A ’,’B ’,…,’Z ’: proc 1 else error END CASE2、波兰:ab+cd-*三元:(1)(+, a, b ) (2)(-, c, d) (3)(*, (1), (2))四元:(1)(+, a, b, T1) (2)(-, c, d, T2) (3)(*, T1, T2, T3)⼆、(每⼩题2分)1、×;2、×;3、√;4、√;5、√。

中南大学试题

中南大学试题

; 用汇编语言实现实现冒泡排序,并将排序后的数输出DATAS SEGMENT A dw 3 10 8 56 22 36 1 43 31 3N=$-A ; 计算数字所占的字节数DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART:MOV AX,DATASMOV DS,AX MOV SI,0 MOV CX,N/2-1 CALL BUBBLE;SI 遍历数字; 前一个数的地址;设置循环次数,M(M=N/2个数需要,循环M-1次;调用BUBBL将原来的数排序; 输出排序后的数MOV CX,N/2 MOV SI,0 MOV DI,0;循环M次输出排序后的M个数;SI 遍历排序后的数;用DI记录数字的位数MOV BP,N+5 ;BP 用于遍历存储的转化后的字符的位置SHOW: PUSH CX; 循环次数入栈MOV DX,0 ; 由于将要进行16位除需要置高16位为0 MOV AX,[SI] ; 低16位为排序后的数CALL DTOC ;调用DTO将十进制数转换为字符串CALL SHOW_STR调用SHOW_S将一个数转化得到的字符串输出ADD SI,2 ; 下一个数POP CX ; 循环次数出栈栈LOOP SHOWMOV AH,4CHINT 21H ; 冒泡排序BUBBLE PROCL1: PUSH CXLEA SI,AL2: MOV AX,A[SI]CMP AX,A[SI+2]JBE NEXTXCHG AX,A[SI+2]; 将循环次数入栈;SI遍历DATA数据段的数字; 将前一个数存于AX; 比较前后两个数; 如果前一个数小于或等于后一个数则继续本轮的比较; 否则,交换前后两个数的位置MOV A[SI],AXNEXT:ADD SI,2LOOP L2POP CXLOOP L1RET BUBBLE ENDP; 下一个数; 注意内层循环的次数已经确定了; 将循环次数出栈; 下一轮比较将十进制数转换为字符串并储存起来DTOC PROCS:MOV CX,10 ; CALL DIVDW ADD CL,30H将除数10,放入CX中;调用DIVDV程序;把数字转换为ASCII码,这样就能显示了MOV DS:[BP],CL ; 把ASCII码放到内存中INC DIPUSH AXADD AX,DXJZ BACKPOP AXDEC BP ; JMP S; 用DI 记录循环的次数; 将低16位入栈; 将高位与低位相加,接着判断是否已经除尽; 除尽后返回调用处; 将低1 6位出栈逆序存放转化后的字符,便于主程序调用SHOW_STRBACK:POP AX;RET为了得到正确的IP值,需要出栈一次; 子程序定义开始, 功能是分离被除数的各个位的数字; 公式:X/N=int(H/N)*65536+[rem(H/N)*65536+L]/N DIVDW PROCPUSH AX MOV AX,DX MOV DX,0DIV CXMOV BX,AX POP AXDIV CX ; MOV CX,DX ; MOV DX,BX ; RET ;DIVDW ENDP ; 低16位入栈;将高16位写入AX,; 将高16位置零; 将新的数除10,;将商int(H/N)转移到BX 默认余数rem(H/N)在DX; 将低16位出栈,将[rem(H/N)*65536+L]除10,默认余数在DX 将余数转移到CX将商int(H/N)转移到dx,相当于int(H/N)*65536 子程序定义结束; 实现字符串的输出SHOW_STR PROC S2:MOV AH,2 MOV DL,DS:[BP] INT 21HINC BPDEC DIJZ OKJMP S2; 输出数字转化后的字符串; 顺序输出; 数字的位数减一; 字符串输出完了就结束; 否则继续输出OK:MOV AH,2 ;输出空格MOV DL,0INT 21HRETSHOW_STR ENDPCODES ENDSEND START第一个累加和的源码:AREA TEXT,CODE,READWRITEENTRYMOV R0,#100 ;循环数目MOV R1,#0 ;初始化数据LOOPADD R1,R1,R0 ;将数据进行相加,获得最后的数据SUBS R0,R0,#1 ;循环数据R0减去1CMP R0,#0 ;将R0与0比较看循环是否结束BNE LOOP ;判断循环是否结束,接受则进行下面的步骤LDR R2,=RESULTSTR R1,[R2]RESULTDCD 0STOPB STOP第二个排序的源码附上:;排列算法:先将所有的数据与第一个进行比较,最后取出最小的数据放到第一个内存单元中;然后再从第二个内存单元开始进行比较,将第二小的数据放到第二个内存单元中,;以此内推则能将十个数据进行排列。

中南大学考试试卷带答案

中南大学考试试卷带答案

中南大学考试试卷带答案2010 —2011 学年上学期时间110分钟MATLAB程序设计与仿真课程32 学时2 学分考试形式:闭卷专业年级:电子信息工程20XX级,总分100分,占总评成绩70%一、填空题(本题42分,每空2分)1.MATLAB中的显示所有内存变量的命令是:who ;清除内存变量的命令是:clear 。

2.在MA TLAB命令窗口中的“≥”标志表示MA TLAB处于准备状态。

3.把一个图形显示在一个图像窗口的m×n个子图像中的第p个位置的命令是subplot(m,n,p) 。

4.设A=reshape(1:9,3,3), 删除矩阵A的第7号元素后,A= 1 2 3 4 5 6 8 9 。

5.已知A=[1 2 3;4 5 0;7 8 9];B=[1 0 3;1 5 0;0 1 2];写出下列各指令运行的结果。

A+B ans=2 2 6;5 10 0;7 9 11 ;A.*B ans= 1 0 9;4 25 0;0 8 18 ;diag(A)/diag(B) ans= ;A(3)*B(4) ans= 0 。

6.假定变量A是5行4列的矩阵,则plot(A)将在图形窗口绘制 4 条折线。

7.x=-2.65, 则fix(x)= -2 , floor(x)= -3 , ceil(x)= -2 。

8.假定将符号变量x,y定义“x=sym(‘a’);y=sym(’5’); z=sym(’2’);”,则写出下列指令的运行结果:y+z ans= 7 ;x^z-y ans= a^2-5 ;9.(超纲)MA TLAB中的读图像的函数是imread ;显示图像的函数是:imshow 。

10.MATLAB中,特殊变量‘nargin’表示在函数体内判断输入变量个数;‘nargout’表示在函数体内输出参数的个数。

?11. 产生3行4列均值为1,方差为2的正态随机矩阵的命令是a=_____1+sqrt(2)*randn (3,4)_______。

中南大学历年真题简答题

中南大学历年真题简答题

中南⼤学历年真题简答题中南⼤学研究⽣⼊学考试简答题1、试⽐较极差、平均差和标准差三种变异指标的特点,并说明为什么标准差是最常⽤、最基本的变异指标?答:极差是数据最⼤值减去数据最⼩值之差,是数据离散或差异程度的最简单侧度值。

特点:数据的分散程度就越⼤,极差就越⼤。

极差计算简单,但它仅取决于极端标志值,不能全⾯反映各单位标志值变异的程度,也不能拿来评价平均指标的代表性。

平均差各标志值对其算术平均数的离差绝对值的平均数。

平均差通常采⽤算术平均法,有简单算术平均法和加权算术平均法两种:(未分组资料)(分组资料)特点:平均差愈⼤,标志变异程度愈⼤,平均数的代表性愈⼩;平均差愈⼩,标志变异程度愈⼩,平均数代表性愈⼤。

与极差相⽐,平均差计算也很简便,⽽且反映了总体各单位标志值差异的⼤⼩,但由于采⽤绝对值运算,不适于数理统计上的数学处理,因⽽在实际中受到很⼤限制。

标准差是总体各单位标志值与算术平均数的离差平⽅的算术平均数的平⽅根,⼜称均⽅差,是测定标志变异最主要的指标。

未分组资料计算标准差:δ=分组资料计算标准差:δ=特点:标准差越⼤标志变异程度越⼤,平均数的代表性越低;标准差越⼩,标志变异程度越⼩,平均数的代表性越⾼。

同平均差⼀样,标准差反映了总体各单位标志值的变异情况,但它克服了平均差的缺点,所以运⽤较⼴泛。

2、简要阐述平均指标与变异指标在说明同质总体特征⽅⾯的联系和区别?答:平均指标和变异指标是反映总体分布的两个重要特征值。

区别:平均指标反映总体单位的集中趋势,变异指标反映总体单位的离散趋势。

联系:为了全⾯描述总体分布的特征,必须将平均指标与变异指标结合使⽤,⽤变异指标衡量平均指标的代表性,说明平均指标反映总体⼀般⽔平的有效程度,使分析结论更确切、更可靠。

3、抽样推断时,为什么必须遵循随机原则抽样样本?我们在进⾏抽样的过程中时,会产⽣代表性误差,即⽤⾮全⾯的资料推算或代替总体指标时产⽣的误差。

代表性误差⼜分为系统性误差和偶然性误差两种。

中南大学现代远程教育课程考试

中南大学现代远程教育课程考试

中南大学现代远程教育课程考试(专科)复习题及参考答案《软件工程》一、单项选择题1.编程阶段主要要完成的三个任务不包括[ ] A.明确程序的控制结构 B.确定使用的类和对象C.确定程序所使用的算法D.制定程序所需的数据结构2. 从影响系统设计的系统环境得出人和组织的因素不包括[ ]A.过程变更B.工作变化C.需求变更D.机构的变化3. 实体联系图简称E-R图,它描绘了系统的数据关系。

E-R图包括三种互相关联的信息,下列哪个不是其相关信息[ ] A.数据对象 B.描述对象的属性C.描述对象的操作D.描述对象间相互连接的关系4. OOA采用下列哪种思想进行软件需求分析建模的过程。

[ ]A.面向结构B.面向思维C.面向行为D.面向对象5.UML定义的静态图描述系统的静态结构,不包括[ ] A.类图 B.对象图C.包图D.状态图6.详细设计常用的工具包括三种,下列哪种不是[ ]A.对象工具B.图形工具C.表格工具D.语言工具7.按照Rumbaugh等人提出的对象建模技术OMT,面向对象设计过程不包括下列哪个步骤[ ]A.详细设计B.系统设计C.对象设计D.消息设计8.单元测试集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的[ ]A.需求B.说明C.功能D.结果9.按模块系统结构划分,下列哪种不属于增殖式组装方式[ ] A.自顶向下的增殖方式 B.自底向上的增殖方式C.渐进增殖式测试D.混合增殖式测试10.确认测试又称有效性测试,它的任务是验证软件的下列哪种,即验证软件的功能和性能及其它特性是否与用户的要求一致。

[ ] A.二义性 B.准确性 C.有穷性 D.有效性11.日常程序纠错工作中,下列哪种不是经常采用纠错策略[ ] A.试凑法 B.跟踪法 C.推理法 D.归纳法12.软件使用过程中,用户对软件提出新的功能与性能要求,为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。

(完整版)2、软件工程复习题及答案

(完整版)2、软件工程复习题及答案

中南大学现代远程教育课程考试(专科)复习题及参考答案软件工程一、单项选择题1、下列哪个阶段不是软件生存期三个阶段中的内容()。

A、计划阶段B、开发阶段C、编码阶段D、维护阶段2、软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为 ( )A、可用性B、可靠性C、正确性D、完整性3、需求分析阶段结束后,应交出的文档中不包括()。

A、数据流图B、数据字典C、简明的算法描述D、项目的经费预算4、关于数据流图不正确的描述是()。

A、数据流图是结构化系统分析的主要工具。

B、在数据流图中,*号标识相邻的数据流只取其一。

C、加工是以数据结构或数据内容作为加工对象的。

D、数据流图的主图中必须包括全部四种基本元素。

5、瀑布模型的存在问题是()A、用户容易参与开发B、缺乏灵活性C、用户与开发者易沟通D、适用可变需求6、软件调试技术包括()A、边界值分析B、演绎法C、循环覆盖D、集成测试7、软件维护产生的副作用,是指()A、开发时的错误B、隐含的错误C、因修改软件而造成的错误D、运行时误操作8、软件测试不包括()方面的差错和纠错。

A、软件计划B、软件设计C、软件编码D、软件价格9、在快速原型模型的开发过程中,仅作为需求说明的补充形式的原型是()A、探索型模型B、演化型模型C、实验型模型D、提交型模型10、数据字典是软件需求分析阶段的最重要的工具之一,其最基本的功能是()A、数据控制B、数据定义C、数据操纵D、数据约束11、软件文档是软件工程实施中的重要成分,它不仅是软件开发各阶段的重要依据而且也影响软件的()A、可使用性B、可操作性C、可维护性D、可开发性12、在瀑布模型中,将软件开发划分为若干个时期,软件项目的可行性研究一般被归属于()A、定义时期B、分析论证时期C、调研时期D、初始阶段13、结构化分析方法是一种预先严格定义需求的方法,它在实施时强调的是分析对象的()A、数据流B、数据元素C、数据结构D、数据约束14、软件维护是软件得以正常运行的重要环节,按照软件工程方法的理解,一般软件维护应该开始于()A、修改源代码B、阅读设计文档C、阅读源代码D、修改设计文档15、以实体、联系和属性等基本概念为基础的实体联系图是基本实体联系图。

2022年中南大学软件工程专业《操作系统》科目期末试卷B(有答案)

2022年中南大学软件工程专业《操作系统》科目期末试卷B(有答案)

2022年中南大学软件工程专业《操作系统》科目期末试卷B(有答案)一、选择题1、()是操作系统中采用的以空间换取时间的技术。

A.Spooling 技术B.虚拟存储技术C.覆盖与交换技术D.通道技术2、为了使多个进程能有效地同时处理输入和输出,最好使用()结构的缓冲技术。

A.缓冲池B.循环缓冲C.单缓冲D.双缓冲3、考虑页面替换算法,系统有m个页帧(Frame)供调度,初始时全空:引用串(Reference String)长度为p.包含了n个不同的页号,无论用什么算法,缺页次数不会少于()A.mB.pC.nD.min(m,n)4、作业在执行中发生缺页中断,经操作系统处理后应让其执行()指令。

A.被中断的前一条B.被中断的那一条C.被中断的后·条D.启动时的第一条5、当系统发生抖动(Trashing)时,可以采取的有效措施是()。

I.撤销部分进程 II.增大磁做交换区的容量 III.提高用户进程的优先级A. 仅IB.仅IIC.仅IIID.仅I,II6、设计实时操作系统时,首先应该考虑系统的()。

A.可靠性和灵活性B.实时性和可靠性C.分配性和可靠性D.灵活性和实时性7、下列选项中,会导致用户进程从用户态切换到内核态的操作是()I.整数除以零 II.sin函数调用 III.read系统调用A.仅I、IIB.仅I、IIIC.仅II、IIID. I、II和II8、驱动调度算法中,()算法可能会随时改变移动臂的运动方向。

A.电梯调度B.最短寻道时间优先C.扫描D.单向扫描9、下列算法中,用于磁盘调度的是(),A.时间片轮转法B.LRU算法C.最短寻道时间优先算法D.高优先级算法10、进程调度算法中,可以设计成可抢占式的算法有()。

A.先来先服务调度算法B.最高响应比优先调度算法C.最短作业优先调度算法D.时间片轮转调度算法11、有两个并发执行的进程P1和P2,共享初值为1的变量x。

P1对x加1,P2对x减1。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

简答题20061. 什么是软件工程?软件工程和计算机科学有何区别?答:软件工程是指导软件开发和维护的工程性学科;计算机科学着重于原理和理论,软件工程与计算机科学不同,软件工程着重于如何建造软件系统,软件是计算机中看不见摸不着的逻辑部分,以程序、数据和文档的形式出现。

2. 面向对象方法和结构化方法有何区别与联系?答:区别:面向对象从所处理的数据入手,以数据为中心来描述系统,其基本思想是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界的方法与过程,基本原则为:对象+类+继承+消息通信;结构化方法首先关心的是功能,强调以模块为中心,其基本思想是自顶向下,逐步求精,单入口,单出口,基本原则为:抽象与功能的分解。

联系:软件开发过程中,在需求分析和规格说明阶段采用结构化方法,在设计和实现阶段采用面向对象方法。

3. 什么是模块的作用域和模块的控制域?为何要求模块的控制域必须在作用域内?答:模块的作用域是指模块中判定的作用范围,它是指所有受这个判定范围影响的模块;模块的控制域是指模块本身及其直接或间接调用的模块;如果模块的作用域不在控制域内,则会增加数据间的传递量,使模块间出现控制耦合4. 什么是设计模式?试举例说明组合设计模式的应用。

答:设计模式是指系统命名,解释和评价某一重要的,可复用的面向对象的设计方案。

组合设计模式:使用迭代器模式来遍历组合结构。

5.什么是依赖倒置原则?它和开闭原则有何联系?答:依赖倒置是类设计原则的一种,它要求高层不应依赖于底层,抽象不应依赖于细节;依赖倒置原则的本质其实就是通过抽象(抽象类或接口)使各个类或模块的实现彼此独立,不相互影响,实现模块间的松耦合,如果没有实现这个原则,则开闭原则也无法实现。

6. 软件生存期过程和软件生存期模型有何联系?瀑布模型有何特点?答:软件生存期过程没有规定一个特定的生存周期模型,各软件开发机构可视其项目的需要选择一种软件生存周期模型,并将软件生存期过程所含过程、活动和任务映射到选定的软件生存周期模型中。

软件生存期模型是软件生存期过程所含过程、活动和任务的映射。

瀑布模型特点:各阶段相互依赖;每阶段都进行评审;强调需求分析和设计。

20071、瀑布模型是软件工程中应用最广泛的过程模型,试述采用瀑布模型进行软件开发的基本过程,该过程有何特点?答:瀑布模型规定了各项软件工程活动,包括需求分析、规格说明、设计、编码、测试和维护,并规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级而下。

瀑布模型的特点是:阶段间具有顺序性和依赖性;清楚区分逻辑设计和物理设计,尽可能推迟程序的物理实现;每个阶段都必须完成规定文档,且每阶段结束前需要对完成的文档进行评审。

2、什么是软件配置管理?软件配置管理和软件维护有何不同?答:软件配置管理是在软件生命周期内管理变化的一组活动,用来:标识变化、控制变化、确保适当地实现了变化、向相关人员报告变化。

软件配置管理和软件维护的区别是:软件配置管理是一组追踪和控制活动,在软件项目启动时就开始,并一直持续到软件被淘汰后才终止;软件维护是一组软件工程活动,发生于软件交付给用户并投入运行之后。

3、试举例说明聚集关系中共享聚集和组合聚集有何不同。

答:如果在聚集关系中部分对象可同时参与多个整体对象的构成,则该聚集称为共享聚集。

例如,一个课题组包含许多成员,每个成员又可以是另一个课题组的成员,则课题组和成员之间是一种共享聚集的关系。

如果部分对象完全隶属于整体对象,并与整体对象共存,则该聚集称为组合聚集。

例如,在屏幕上一个窗口由文本框、列表框、按钮和菜单等构成,且一旦关闭了窗口,则各组成部分也消失,则窗口和它的组成部分之的关系为组合聚集关系。

20081.非渐增式测试与渐增式测试有何区别?答:非渐增式测试,一般应先经过单元测试,然后再把所有模块一次性组装在一起进行测试,最终得到要求的软件系统;而渐增式测试则采用逐步加入模块或功能簇的方式进行,在加入过程中边连接边测试,比较容易定位和修正错误,且接口也可以更容易进行彻底地测试2.试举例说明什么是功能性需求,什么是非功能性需求?为何非功能性需求往往比功能性需求还要重要?答:功能性需求是说有具体的完成内容的需求。

例如:比如客户登录、邮箱网站的收发邮件、论坛网站的发帖留言等。

非功能性需求是指软件产品为满足用户业务需求而必须具有且除功能需求以外的特性,包括系统的性能、可靠性、可维护性、可扩充性和对技术和对业务的适应性等。

例如:性能要求:要求系统能满足100个人同时使用,页面反应时间不能超过6秒;非功能性需求往往比功能性需求还要重要是因为非功能性需求描述的是软件的质量属性,直接影响着用户体验,因此非功能性需求在决定系统成败的因素中起更重要的作用。

3.层次图和层次方框图有何区别?答:不同:1,层次图描绘软件的层次结构.层次方框图描绘的是数据结构。

2,层次图的方框表示模块或子模块。

层次方框图的方框表示数据结构整体或其子集。

3,层次图的连线表示调用关系,层次方框图表示组成关系。

4.快速原型模型有几种?各有何特点?答:快速原形模型根据原型的不同作用,有三类原型模型:(1)探索型原型:把原型用于开发的需求分析阶段,目的是要弄清用户的需求,确定所期望的特性,并探索各种方案的可行性。

它主要针对开发目标模糊,用户与开发者对项目都缺乏经验的情况,通过对原型的开发来明确用户的需求。

(2)实验型原型:主要用于设计阶段,考核实现方安是否合适,能否实现。

对于一个大型系统,若对设计方案心中没有把握时,可通过这种原型的开发来证实设计方案的正确性。

(3)演化型原型:它将原型思想扩展到软件开发的全过程,就是及早向用户提交一个原型系统,在得到用户认可后,将原型系统不断扩充演化为最终的软件系统。

20091.试简要说明面向对象方法与结构化方法相比有何优越性,至少列出三点。

答:(1)强调从现实世界中客观存在的事物(对象)出发来认识问题域和构造系统,这就使系统开发者大大减少了对问题域的理解难度,从而使系统能更准确地反映问题域。

(2)运用人类日常的思维方法和原则(体现于OO方法的抽象、分类、继承、封装、消息通讯等基本原则)进行系统开发,有益于发挥人类的思维能力,并有效地控制了系统复杂性。

(3)对象的概念贯穿于开发过程的终,使各个开发阶段的系统成分具良好的对应,从而显著地提高了系统的开发效率与质量,并大大降低系统维护的难度。

(4)对象概念的一致性,使参与系统开发的各类人员在开发的各所段具有共同语言,有效地改善了人员之间的交流和协作。

(5)对象的相对稳定性和对易变因素隔离,增强了系统的应变能力。

(6)对象类之间的继承关系和对象的相对独立性,对软件复用提供了强有力的支持。

2. 什么是模块的作用域?为何设计软件结构时要求模块的作用域必须在控制域之内?答:所谓模块的作用域是指模块判定的影响范围。

作用域在控制域之内,可使得软件修改时代码局部化。

3. 什么是动态测试?为何静态测试方法往往比动态测试方法效率高?答:动态测试是指经运行程序代码而检查代码是否存在错误。

静态测试往往不是运行代码,而在软件开发的早期进行,而早期错误发现要比错误晚发现付出的成本少,而静态测试往往在发现错误后还可继续进行,但动态测试往往需要停下来改进后才能进一步测试。

20101.什么是模块的作用域?为何要求模块的作用域必须在控制域内?答:模块的作用域是指模块中判定的作用范围,它是指所有受这个判定范围影响的模块;模块的控制域是指模块本身及其直接或间接调用的模块;如果模块的作用域不在控制域内,则会增加数据间的传递量,使模块间出现控制耦合2.什么是MVC框架?简要说明框架中的类如何交互。

答:MVC是指模型、视图和控制器三层框架模型,用户通过视图看到数据的情况,控制器用来处理用户的操作,进行业务逻辑处理并通过视图显示出来,如果模型发生变化,被注册的视图也随之变化,模型是观察目标,视图是观察者,控制器作为两者的中介者,MVC模式结合了观察者模式和中介者模式。

3.软件维护活动有哪些类型?如何提高软件的可维护性?答:改正活动类型:改正性维护(由于开发时测试不彻底或不完全导致运行阶段出现的故障。

20%)适应性维护(运行环境的变化。

25%)完善性维护或增强(用户对软件提出新的功能或性能要求。

50%)预防性维护或再工程(为提高软件的可维护性等,以便将来进一步改进软件打基础。

5%)提高软件的可维护性:(1)建立明确的软件质量目标和优先级(2)使用提高软件质量的技术和工具(3)进行明确的质量保证审查(4)选择可维护的程序设计语言(5)改进程序文档(6)开发室考虑到维护4.简要说明瀑布模型的优缺点。

答:优点:(1)流水线生产比个人生产效率高,质量好;(2)将逻辑设计与物理实施分开,避免无用功。

减少成本,能尽量推迟物理实施;(3)文档驱动使得开发过程可视化,便于管理和控制。

缺点:(1)当需求不明确时,流水线被阻塞,返流代价大;(2)得不到用户的反馈,开发过程得不到修正,导致有可能出现大的失误;(3)最后将产品一次提交给用户,用户感到不适应,成本增加,市场风险加大。

20111.什么是软件测试?测试和调试有何区别?答:软件测试:软件测试是确保软件质量和降低软件成本的重要手段,设计软件的整个生存周期;软件测试是在软件投入运行前,对软件需求分析、设计规格说明和编码的复审,是为了发现错误,通过检查和提供客观证据表明软件已经满足规定的需求;软件测试就是试图以最少的代价发现软件分析、设计和编码中存在的各种不同类型的错误,从而提高软件质量、降低软件成本。

区别:测试是查找错误症状的过程,调试则是查找错误症状的原因并改正错误的过程。

(联系:调试之后还应进一步进行测试和评价,以确保错误真正被消除且没有引入新的错误)2.从软件工程的角度来看,软件包含哪些内容?各有何作用?答:软件包括:程序、数据、描述程序与数据等与之相关的文档。

作用:程序代码是软件的主体,用来完成软件相应的功能和操作;数据是用来运行以及维护系统的必要的成分,系统的运行和测试都离不开数据;文档的作用:(1)提高软件开发过程的能见度;(2)记录开发软件的有关信息便于使用与维护;(3)作为软件开发人员阶段工作成果和结束标志;(4)提高开发效率;(5)提供软件运行维护和培训有关资料;(6)便于用户了解软件功能、性能。

20121.什么是软件危机?产生软件危机的原因是什么?答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

主要是两个问题:(1)如何开发软件,怎样满足对软件的日益增长的需求;(2)如何维护数量不断膨胀的已有软件。

软件危机的出现,究其原因,一方面是由软件本身的特点引起的,如软件越来越复杂,软件故障难于检测,工作量难以估计;另一方面则是因为软件开发和维护方法不当所造成的,如软件的个体化特征太强等。

相关文档
最新文档