名词解释:1.软件生命周期模型软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。
软件生存周期主要模型:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等2. 模块独立性模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。
模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。
3. 软件的可维护性软件可维护性指软件能够被理解、校正、适应及增强功能的容易程度。
4. 软件工程软件工程指用科学知识和技术原理来定义、开发、维护软件的一门学科。
或者说,软件工程就是运用工程学的基本原理和方法来组织管理软件的生产、研究、开发、管理、维护的过程、方法和技术。
5.数据字典字据字典:简称DD,就是用来定义数据流图中的各个成分具体含义的,它以一种准确的\无二义性的说明方式为系统的分析\设计及维护提供了有关元素的一致的定义和详细的描述。
6、静态测试静态测试是采用人工检测和计算机辅助静态分析的方法对程序进行检测。
7、面向对象:面向对象OO=类+对象+继承+通信8、需求分析需求分析是指:开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规约(需求规格说明)的过程。
9、软件危机软件危机(Software Crisis) 是计算机软件在它的开发和维护过程中所遇到的一系列严重问题。
概括地说,主要包含两方面的问题:如何开发软件,怎样满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
10、软件生存周期软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。
软件生存周期包括:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等。
简答:1.软件生存周期有哪几个阶段?①可行性研究②需求分析③总体设计④详细设计⑤编码⑥测试⑦维护2.白盒测试法有哪些逻辑覆盖标准?① 语句覆盖②判定覆盖③条件覆盖④判定/条件覆盖⑤条件组合覆盖⑥点覆盖、边覆盖、路径覆盖3.软件的维护有哪4种类型?①校正性维护②适应性维护③完善性维护④ 预防性维护。
4.软件成分的重用有哪3个级别?:①代码重用②设计结果重用③分析结果重用5.设计任务管理子系统有哪7个任务?①确定事件驱动型任务②确定时钟驱动任务③确定优先任务④确定关键任务⑤确定协调任务⑥尽量减少任务数⑦确定资源需求6.类构件的重用包括哪3种方式?:①实例重用②继承重用③多态重用7.提高可重用性的7条准则是哪些?①提高方法的聚②减小方法的规模③保持方法的一致性④把策略与实现分开⑤全面覆盖⑥尽量不使用合局信息⑦利用继承机制8.提高可扩充性的4条准则是哪些?①封装实现策略②不要用一个方法遍历多条关联链③避免使用多分支语句④精心确定公有方法9.提高健壮性的4条准则是哪些?①预防用户的操作错误②检查参数的合法性③不要预先确定限制条件④先测试后优化10.列举PDL语言的优点与缺点有哪些?PDL语言的优点:①可以作为注释插在源程序中间;②可以使用普通的正文编辑程序或文字处理系统,很方便完成PDL的书写和编辑工作;③可以利用已有的自动处理程序自动由PDL生成程序源代码。
PDL语言的缺点:①不如图形工具直观。
②描述复杂的条件组合与动作之间的对应关系时,不如判定表和判定树时简单。
11. 如何改进软件设计、提高软件质量?(1)提高模块的独立性。
(2)模块规模应该适中。
(3)适当选择深度、宽度、扇出和扇入。
(4)模块的作用域应该在控制域之。
(5)力争降低模块接口的复杂程度。
(6)设计单入口单出口的模块。
(7)模块功能应该可以预测。
12. 以G.J.Myers的观点,简述对软件测试的目的。
软件测试是(1)为了发现错误而执行程序的过程;(2)一个好的用例能够发现至今尚未发现的错误的测试。
(3)一个成功的测试是发现至今尚未发现的错误的测试。
13. 软件质量保证应做好哪几方面的工作?(1)采用技术手段和工具。
(2)组织正式技术评审(3)加强软件测试(4)推行软件工程规(标准)。
(5)对软件的变更进行控制(6)对软件质量进行度量。
14. 下列模块的聚类型是什么?再把它们按聚的大小由小到大排列。
(1)使用同一数据来源产生两种报告(2)求一元二次方程的根(3)计算最高成绩和平均成绩(4)系统初始化处理【1】通信聚,功能聚,逻辑聚,时间聚【2】(3)->(4)->(1)->(2)15. 什么是黑盒测试法?常用的黑盒测试方法有哪些?将程序当成是黑盒子以设计中的功能为标准在程序的接口出进行测试看它能否达到功能要求。
常见方法:等价类划分、边界值分析、因果图、错误推测。
16. 选择程序设计语言应考虑哪些因素?①项目的应用领域,是选择语言的关键因素。
②软件开发方法:选择语言有时依赖该因素。
③软件执行环境:对软件生产率、错误率和软件质量有影响。
④算法和数据结构的复杂性。
⑤软件开发人员的知识。
与开发人员的知识水平和心理因素有关,有时对语言选择有影响。
17. 什么是模块耦合性,有哪些类型?耦合性:也称块间联系。
指软件系统结构中各模块间相互联系紧密程度的一种度量。
模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。
耦合性种类:数据耦合、标记耦合、控制耦合、公共耦合、容耦合18.软件维护有哪些容?:a、校正性维护b、适应性维护c、完善性维护d、预防性维护应用题:一、某校教务系统具备以下功能,输入用户ID号及口令后,经验证进入教务管理系统,可进行如下功能的处理:1.查询成绩:查询成绩以及从名次表中得到名次信息;2.学籍管理:根据学生总成绩排出名次信息;3.成绩处理:处理单科成绩并输入成绩表中。
就以上系统功能画出顶层和0层的DFD。
顶层DFD:0层DFD:二、选择排序的伪代码如下〖共计10分〗;Select_sort ( a[1],a[2],…,a[n] ){ for ( i=1;i<n;i++){ k=i;for ( j=i+1;j<=n;j++){if ( a[j]<a[k] )k=j;}if ( k!=i )exchange ( a[i],a[k] );}}请根据代码画出其PAD图。
请根据代码画出其程序流程图三、下面是一个程序流程图,试分别用N-S图和PAD表示之,并计算其McCabe复杂度。
对应的N-S图如下对应该的PAD图如下四、下面是一个程序流程图,试分别用N-S图和PAD表示之,并计算其McCabe复杂度。
对应的N-S图如下对应该的PAD图如下五、设下图给出的程序流程图代表一个非结构化的程序,试问:1.为什么说它是一个非结构化的? 2.设计一个等价的使用附加标志变量flag的结构化程序。
3.设计一个使用break(用于代替goto)和程序。
(1) 它是一个单入口,两出口的结构,所以是一个非结构化的程序。
(2) 等价的结构化程序:enum Boolean {false, true}Boolean flag = true;while (P && flag){do Gif (!Q) flag = false;}(3)等价的结构化程序:使用break程序while (P){do G;if (! Q)break;}六、高考录取统分子系统有如下功能:(1) 计算标准分:根据考生原始分计算,得到标准分,存入考生分数文件;(2) 计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。
试根据要求画出该系统的数据流图,并将其转换为软件结构图。
【数据流图】【软件结构】七、采用综合测试策略,对以下模块进行测试。
要求写出测试方法,列出所有的判定,并给出所选择的用例。
模块功能为:使用直接插入法将10 个整数按递增次序排列。
main( ) /* 使用直接插入法{int data[ ]={23,56,234,1,45,34,21,394,3,35};int i, j, temp;for(i=1;i<10;i++){ j=i-1; temp=data[i];while(data[j]>temp&&j>=0) /*大者后移{data[j+1]=data[j]; j--; }data[j+1]=temp; /* 插入正确位置}for(i=0;i<10;i++)printf(”%d”,data[i]);printf(”\n”);}参考答案:1.采用综合测试策略,先进行静态测试:人工查走。
未发现错误。
2.使用白盒法进行动态测试只考虑关键路径,判定情况有:循环:for(i=1;i<10;i++)while(data[j]>temp&&j>=0)3.选择一种覆盖标准,确定用例。
注意:所确定的用例应该包括两部分:输入数据(10个整数),预期的输出结果。
4.将实际输出与预期的输出结果进行比较,得出分析结论。
八、画出与下图所示的程序流程图对应的程序图,并试计算其巡回秩数V(G)。
参考答案:(1)程序图如右图所示:(2)计算其巡回秩数:V(G)=E –N +2=13 –10 +2=5九、在医院病房监护系统中,病症监视器安置在每个病房,将病人的病症信号实时传送到中央监视系统进行分析处理。
在中心值班室里,值班护士使用中央监视系统对病员的情况进行监控,根据医生的要求随时打印病人的病情报告,系统会定期自动更新病历。
当病症出现异常时,系统会立即自动报警,通知值班医生及时进行处理,同时立即打印病人的病情报告和更新病历。
试采用结构化分析方法建立需求分析模型(只画顶层)参考答案:十、综合论述题M公司由一群志趣相同的朋友创建于10年前,主要与科研院所合作进行开发实验型的新软件。
主要采用瀑布模型进行软件开发,并取得了一些成功。
最近你作为项目管理人员应聘加入M公司,根据你的经验认为快速原型法对公司的软件开发更加优越,请向公司副总裁写一份报告阐明你的理由。
字数不超过300字。
尊敬的副总裁:我公司的软件产品以开发实验型的新软件为主,而开发这类产品的最大问题是需求难以确定,能否对需求进行准确说明,直接关系到软件后期的开发质量,甚至决定了软件产品的成败。
虽然我公司用瀑布模型进行软件开发取得了一些成功,但随着软件规模和复杂度的增加,结构化方法自身固有的缺点如线性开发,将充满回朔的软件开发过程硬性地割裂开,以致于无法确定需求等已经完全不能适应软件开发的需要。
我建议采用快速原型(RCP)法,它强调软件开发人员与用户的不断交互,通过原型的演进不断适应用户任务改变的需求。
将维护和修改阶段的工作尽早进行,因此, RCP 法特别适宜开发实验型的新软件。
以上建议请副总裁考虑!十一、银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员键入系统,如果是存款则系统记录存款人、住址(或)、、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。