一、画出实际的瀑布模型p16三、画出增量模型p18五、可行性研究的工作过程及内容p36答:1).复查系统规模和目标;2).研究目前正在使用的系统;3).导出新系统的高层逻辑模型;4).进一步定义问题;5).导出和评价供选择的解法;6).推荐行动方针;7).草拟开发计划;8.书写文档提交审查。
六、可行性研究的目的是什么?要如何进行?p35答:目的:用最小的代价在尽可能短的时间内确定问题是否能够解决。
首先,需要进一步分析和澄清问题定义。
之后,分析员应该导出系统的逻辑模型。
从系统逻辑模型出发,探索若干可供选择的主要解决方法(即系统实现方案)。
对每种解法都应该仔细研究它的可行性,一般来说,至少应该从下述三方面研究每种解法的可行性:(1)技术可行性;(2)经济可行性;(3)操作可行性。
必要时还应该从法律、社会效益等更广泛的方面研究每种解法的可行性。
二、画出快速原型模型p17四、画出简化的螺旋模型p20软件工程考试复习题七、需求分析的任务是什么?进行需求分析时要重点考虑哪些方面的问题?p56答:1、确定对系统的综合要求:1).功能需求——指定系统必须提供的服务。
通过需求分析应该划分出系统必须完成的所有功能。
2).性能需求——性能需求指定系统必须满足的定时约束或容量约束,如速度(响应时间)、信息量速率、主存容量、磁盘容量、安全性等。
3).可靠性和可用性需求——可靠性是指确保各应用及其相关的所有交易的完整性和一致性的能力;可用性是指一个系统应确保一项服务或者资源永远都可以被访问到。
4).出错处理需求——说明系统对环境错误应该怎样响应。
5).接口需求——描述应用系统与它的环境通信格式。
6).约束——在设计或实现应用系统时应遵守的限制条件。
常见的约束有:精度;工具和语言约束;设计约束;应该使用的标准;应该使用的硬件平台。
7).逆向需求——说明软件系统不应该做什么。
8).将来可能提出的要求——应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。
2、分析系统的数据要求。
3、导出系统的逻辑模型。
4、修正系统开发计划。
八、典型的总体设计过程包括哪些步骤?p92答:典型的总体设计过程包括九个步骤:1)、设想供选择的方案;2)、选取合理的方案;3)、推荐最佳方案;4)、功能分解;5)、设计软件结构;6)、设计数据库;7)、制定测试计划;8)、书写文档;9)审查和复查。
九、总体设计的主要任务是什么?总体设计的主要过程有哪些?p91答:主要任务:总体设计又称为概要设计或初步设计。
通过这个阶段的工作将划分出组成系统的物理元素—程序、文件、数据库、人工过程和文档等等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计。
总体设计的另一项重要的任务是设计软件的结构,也就是要确定系统中每个程序是由哪个模块组成,以及这些模块相互间的关系。
主要过程:①寻找实现目标系统的各种不同的方案。
②从这些供选择的方案中选取若干个合理的方案,为每个合理的方案都准备一份系统流程图,列出组成系统的所有物理元素。
③进行成本/效益分析,并且制定实现这个方案的进度计划。
从中选出一个最佳方案。
④进一步为这个最佳方案设计软件结构。
⑤进行必要的数据库设计,确定测试要求并且制定测试计划。
十、何谓耦合?有哪些类型?软件设计应该取哪种类型?p97答:耦合是对一个软件结构内不同模块之间互连程度的度量。
类型:数据藕合、控制藕合、公共环境藕合、内容耦合设计原则:尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容耦合。
十一、何谓内聚?有哪些类型?软件设计应该取哪种类型?p98答:内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。
低内聚有如下几类:偶然内聚、逻辑内聚、时间内聚。
中内聚主要有两类:过程内聚、通信内聚。
高内聚也有两类:顺序内聚、功能内聚。
设计时应该力求做到高内聚,通常中等程度的内聚也是可以采用的,而且效果和高内聚相差不多;但是,低内聚很坏,不要使用。
十二、何谓白盒测试和黑盒测试?p151答:黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。
也就是说,黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息的完整性。
黑盒测试又称为功能测试。
与黑盒测试法相反,白盒测试法的前提是可以把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。
这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作。
白盒测试又称为结构测试。
十三、测试过程由哪些步骤组成?并分别加以说明。
P151答:1. 模块测试——保证每个模块作为一个单元能正确运行,所以模块测试通常又称为单元测试。
在这个测试步骤中所发现的往往是编码和详细设计的错误。
2. 子系统测试——把经过单元测试的模块放在一起形成一个子系统来测试。
这个步骤着重测试模块的接口。
3. 系统测试——把经过测试的子系统装配成一个完整的系统来测试。
4. 验收测试——把软件系统作为单一的实体进行测试,目的是验证系统确实能够满足用户的需要,在这个测试步骤中发现的往往是系统需求说明书中的错误。
验收测试也称为确认测试。
5. 平行运行——同时运行新开发出来的系统和将被它取代的旧系统,以便比较新旧两个系统的处理结果。
十四、自顶向下集成步骤p158答:四个步骤:1)、对主控制模块进行测试,测试时用存根程序代替所有直接附属于主控制模块的模块;2)、根据选定的结合策略(深度优先或宽度优先),每次用一个实际模块代换一个存根程序(新结合进来的模块往往又需要新的存根程序);3)、在结合进一个模块的同时进行测试;4)、为了保证加入模块没有引进新的错误,可能需要进行回归测试(即,全部或部分地重复以前做过的测试)。
十五、自底向上的结合策略p158答:自底向上的结合策略:1、把低层模块组合成实现某个特定的软件子功能的簇;2、写一个驱动程序(用于测试的控制程序),协调测试数据的输入和输出;3、对由模块组成的子功能簇进行测试;4、去掉驱动程序,沿软件结构自下向上移动,把子功能簇组合起来形成更大的子功能簇。
上述第2步到第4步实质上构成了一个循环。
十六、何谓Alpha和Beta测试?p161答:Alpha测试由用户在开发者的场所进行,并且在开发者对用户的“指导”下进行测试。
开发者负责记录错误和使用中遇到的问题。
总之,Alpha测试是在受控的环境中进行的。
Beta测试由软件的最终用户们在一个或多个客户场所进行。
与Alpha测试不同,开发者通常不在Beta测试的现场。
十七、设计黑盒测试方案时,主要应该考虑哪些方面的问题?p172答:1)、怎样考虑功能的有效性?2)、哪些类型的输入可构成好的测试用例?3)、系统是否对特定的输入值特别敏感?4)、怎样划定数据类的边界?5)、系统能够承受什么样的数据率和数据量?6)、数据的特定组合将对系统运行产生什么影响?十八、调试途径有哪些?p178答:有三种调试途径:1)、蛮干法——是寻找软件错误原因的最低效的方法。
仅当所有其他方法都失败了的情况下,才应该使用这种方法。
2)、回溯法——一种相当常用的调试方法,当调试小程序时这种方法是有效的。
3)、原因排除法——包括分查找法、归纳法和演绎法。
十九、软件维护主要包括哪些方面?p189答:包括:维护组织、维护报告、维护的事件流、保存维护记录、评价维护活动。
1)、改正性维护:诊断和改正错误的过程。
2)、适应性维护:为了和变化了的环境适当地配合而进行的修改软件的活动。
3)、完善性维护:在使用软件的过程中用户往往提出增加新功能或修改已有功能的建议,还可能提出一般性的改进意见。
4)、预防性维护:为了改进未来的可维护性或可靠性,或为了给未来的改进奠定更好的基础而修改软件。
二十、现要设计一个教学管理系统,系统中有三个主要对象:老师,学生,课程。
请画出其ER图。
P64解:二十一、假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。
对于每个需要再次定货的零件应该列出下述数据;零件编号、零件名称、定货数量、目前价格、主要供应者和次要供应者。
零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。
当某种零件的库存数量少于库存量临界值时就应该再次定货。
请画出该系统的数据流图。
P42解:1)、这种划分自动化边界的方法暗示以批量方式更新库存清单:2)、另一种划分自动化边界的方法建议以联机方式更新库存清单:二十二、假设某航空公司规定,乘客可以免费托运重量不超过30kg的行李。
当行李重量超过30kg时,对头等舱的国内乘客超重部分每公斤收费4元,对其他舱的国内乘客超重部分每公斤收费6元,对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。
(注:两种方法都要掌握)P127解:1)、用判定表表示计算行李费的算法:2)、用判定树计算:二十三、给出如下程序流程图,请画出其流图,并用三种方法计算其环形复杂度。
P137解:把程序流程图(a)映射成流图(b):三种方法计算的环形复杂度都为4.有3种方法计算环形复杂度:(1)、流图中的区域数等于环形复杂度。
(2)、流图G 的环形复杂度V(G) =E-N+2,其中,E 是流图中边的条数,N 是结点数。
(3)、流图G 的环形复杂度V(G)=P+1,其中,P 是流图中判定结点的数目。
二十四、在系统开发或毕业设计中,已经设计了一个系统,现要对其进行测试。
请问在报告或论文中如何书写这一部分内容,并加以说明。
(主要是自己概括,以下仅供参考) 答:1、测试目的2、测试准则3、测试方案4、测试参数5、测试步骤。
6、测试结果7、测试结果分析。