第一篇:学习软件工程导论的感想
我们没有进行过系统化软件设计的教育和学习,对如何进行软件的开发基本上就是想什么写什么。根本没有过系统化的设计。比如需求分析,可行性研究等。更不知道用什么模型来设计软件。这在我们以后的工作中是完全不行的,没有系统化的设计,是不可能满足客户的需求的。
胡老师让我们分组进行软件互换的形式来进行软件的修改。其实胡老师就是想让我们了解以后工作中,软件是如何设计的和制作的。对于以前的编程,我们只能按照自己的想法,想一步做一步。根本没有系统化的设计。通过对软件工程导论这门课程的学习,一遍学习一遍实验,实践与理论相结合。开始其实我根本不理解各种图的作用,觉得它们根本没有用,就是照猫画虎,没有任何的实际意义。但是通过后面的学习和理解,对他们有了独特的理解和想法。比如对uml来说。它是一种标准化交流的语言,它可以让开发人员与客户之间轻松的交流。用图的形式向客户展示软件设计的流程,从中传递信息。简单的说就是客户和设计人员交流的手段。
这学习,不管是实验小组的实验还是老师您要求的程序,基本都是我一个人做的,所以对各种图还是比较了解和掌握的。虽然对实验报告的制作感觉到十分的吃力,工作量很大,但是还是通过几个晚上的专心学习和制作,最后还是完成了。但是好多图画的还是很有问题,没有真正的完全理解和掌握。但是在后面的学习和复习中,有了更正。
下面我对实验进行一下总结。首先是实验一结构化分析和设计,主要理解DFD图,数据字典,ERD图和问题描述进行设计和学习。DFD图主要分为三个方面,数据的源点,数据流和数据存储。它将信息流和数据从输入移动到输出的工程中所经受的变化。简单的说就是主体,动作和数据单元的问题。接下来是数据字典,主要进行软件操作单元的数据定义,格式化和功能说明。然后就是ERD图,根据短信系统的问题描述,可得到软件实体,从而得到此图。其次是实验二和三面向对象分析和设计。主要进行用例图,场景描述,初始化类图,协作图的制作。先是从需求到业务用例图,根据客户需求(也就是我们软件的需求)画出用例图。它的作用其实就是描述该实现什么业务或者说是功能。接下来就是场景描述,简单来说就是软件实际的操作的某个步骤的具体说明。跟着就是初始化类图,重要作用就是显示系统有哪些实体,实体的具体操作,实体间的关系。然后就是协作图,主要作用是针对某个软件的功能,进行交互过程的解释,简单来说就是具体业务的具体操作,而且是所有涉及到的操作。动态模型和静态模型的建立,在面向对象的系统中,业务流程表现在为对象之间的交互,对动态模型和静态模型分析和总结,从而产生顺序图。面向对象设计就是对实体类进行定义和说明,所有的类都是跟软件里的类相对应。就是真正的类。最后就是实验三编码和测试,实验主要对测试和编码进行总结。从中总结制作过程和测试过程。
实验对我来说可能很辛苦,但是我从中学到了很多。了解了很多图的作用,也了解了以后工作的具体流程,这对我们以后的实际工作提供很多帮助。对我来说辛苦着收获着快乐着。跟您的交流中也学到了很多知识。总之我很满足。
2009011422
网工0903
张昭
第二篇:软件工程导论心得与感想
软件工程导论
在前不久的几周里,刚刚结束了“软件工程导论”课程的学习。这门课程带给了我很大的启发,让我对软件工程这一新兴学科有了全面的,深刻的认识。卢苇老师精彩的讲演,同学们积极地提问与回答,都带给了我深刻的认识。下面是我在学完该课程后的一些启发。
一、我对软件行业的认识
众所周知,计算机已经是现代人生活的必需品。无论是工作、学习、生活、娱乐,我们的生活每时每刻都能见到它的踪影。大到航天飞机的研制,原子弹、氢弹的引爆,笑道一个小小的电子表,都需要会软件会变成的人来研制它,让其工作。所以,伴随着计算机而生的的潜在市场是十分巨大的,无数因此成功的公司便是印证,无论是乔布斯的“苹果”,还是比尔盖茨的微软,亦或是马克·扎克伯克的facebook,都获得了世人的肯定。他们的成功被人称道,但是不可否认的是他们的成功是建立在如此巨大的市场空间上的。所以,首先软件行业有着充足的市场。
其次是我国的软件力量。我们国家面临着一个良好的社会的环境,社会安定,政府稳定,特别是当前经济发展迅速,法制建设不断完善,高新技术领域突飞猛进。但是由于法律制度不完善,并且从业人员普遍创新的意识不够完善等等多方面的因素,我国的市场并非特别乐观。我们都能清晰地看到许许多多成功的企业都未做到完全的创新,如“淘宝网”便是借鉴“亚马逊”网站,而“人人网”也与facebook有极大的相似度,而腾讯更是众所周知的山寨之王。但是换个角度看看,这正说明,我国的软件具有极大地潜力,在未来的几年,几十年之间,我国的软件行业必会重新洗牌,涌现出强大的软件企业,而我们,也一定有机会实现自己的软件梦。
第三是我国软件行业的人员构成。我国的软件行业目前主要还是中低素质人员构成。打不风程序员,他们没有系统的、完整的学习整个软件工程的知识,仅仅靠自学或者短期学习,掌握到部分的、片面的知识就已经进入从业阶段,这样的学业使他们不能够胜任自己的工作。而高端的软件从业人员相比较而言是相对稀少的,所以我国的软件行业并未真正崛起。我们急需那样的高端人才,而这些人才,便是现在我们学院所努力培养的。
二、我对我们学院软件工程专业的认识
IT行业是随着电子信息产业的发展而逐步发展起来的,并且日益得到完善。IT行业的平稳增长必然会带来软件工程师需求的增长,目前随着IT产品出现的技术融合,市场需求的巨大和专业人才的缺乏,由此可知,软件行业还是比较乐观的。但软件行业需要的也是复合型人才,软件工程师需要掌握更多的编程语言。
北京交通大学软件学院是经教育部批准的国家示范性软件学院。学院成立于2003年2月,是为适应我国经济结构战略性调整的要求和软件产业发展对人才的迫切需求,实现我国软件人才培养的跨越式发展而建立的。学院充分发挥学校的计算机学科优势和 IT 企业资源综合优势,利用已有的办学与市场资源,与国内外著名的 IT 企业开展合作,在管理体制、运行机制、教育思想与理念、人才培养方案与课程体系、教学模式与方法、产学研合作等领域大胆创新,已探索出一条有效地培养“国际化、工业化、高层次、复合型” 软件人才的办学之路。
作为教育部批准的全国36所示范性软件学院和学校教育体制改革与办学机制创新的试验田,北交大软件学院承载着学校的殷切期望。作为国家重要的软件人才培养基地,在管理体制、运行机制、教育思想与理念、人才培养方案与课程体系、教学模式与方法、产学研合作等领域大胆创新,探索出一条有效地培养“国际化、工业化、高层次” 软件人才的办学之路,推出了“2+1+1”人才培养模式。作为一名北京交通大学软件学院的靴子,我感到十分自豪。
三、我未来的职业规划
在学习完院长的导论课后,我对自己的直接规划产生了很深的想法并且做出了很大的改变。首先,我一定要努力完成大学的学业。在大学一年级,我要认真地完成专业课程,努力学好c语言和java的课程,同时扩大自己的知识面,多多学习一些有关软件方面的知识,不断地充实自己。
在大学二、三年级,我要注重学习Java基础知识、多学习项目开发经验,了解项目开发业务知识,并在学习中掌握DB2数据库的SQL语句的复杂查询以及管理操作,并深入学习了解struts、hibernate、spring相关操作。同时在大三结束之前,我要至少了解并熟悉2门编程语言,如.net、C++、PHP;并学习掌握nOracle、MS-SQL数据库管理操作;掌握软件开发各个阶段的基本技能,如市场分析, 可行性分析, 需求分析, 结构设计, 详细设计, 软件测试等。如果有时间的话,还要学习管理方面的相关知识,由技术型向管理型方面的转移。我要多多锻炼自己的能力,不论待人接物,还是进行演练,都要积极参见,努力争取较大的提升。
在大学四年级,学校会安排比较多的实习,到那时候,就要好好工作,发挥自己前三年学到的知识,努力完成自己的毕业实习,最后,优秀地完成自己的大学学业。如果能够,我将选择继续深造,可以通过保研,考研等等许多途径,努力获得研究生的资格。同时,就业也是一个不错的选择,但是不论考研还是工作,我都要一如既往地补充自己,不断提高自己的专业水平。在工作时,我会优先选择私人的,创意性比较强的公司,从中积累经验,并且努力奋斗,成为复合型人才,我便可凭此进入大公司或者帮助自己的公司变得更加强大和成功,最后成为IT行业中优秀的一员。
四、总结
卢苇教授的“软件工程导论”真的让我获益良多,对于软件工程专业有了深刻的了解,对自己以后的道路的安排也有了深刻的认识。上课的日子总是很快,不知不觉中遍结了课,我感到如梦初醒,因为我们才敲开软件知识的大门。路漫漫其修远兮,吾将上下而求索。不经历风雨怎能见彩虹。我要时刻保持一颗清醒的头脑,随时为自己的目标而奋斗。其实,每个人心中都有一幅画,描述着理想、信念、追求、抱负;每个人心中都有一片森林,承载着鸟语花香的甜蜜、阴森恐惧的彷徨。一个人,若要获得成功,必须拿出勇气,付出努力、拼搏、奋斗、成功。机遇不同情眼泪的忧伤、不相信颓废的绝望,只期待爱打拼、时刻准备着的人。
第三篇:卷-软件工程导论
21.系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素表达了系统中各种元素之间的(信息流动)情况。
[解析]系统流程图是描述物理系统的传统工具,用图形符号表示系统中的各个元素,如人工处理、数据处理、数据库、文件、设备等,表达了元素之间的信息流动的情况。22.成本效益分析的目的是从(经济)角度评价开发一个项目是否可行。[解析]成本效益分析首先是估算将要开发的系统的开发成本,然后与可能取得的效益进行比较和权衡,其目的是从经济角度评价开发一个新的软件项目是否可行。
23.自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先策略和(宽度优先策略)。
[解析]渐增式测试法有自顶向下结合和自底向上结合两种组装模块的方法,其中自顶向下集成是构造程序结构的一种增量式方式,不需要编写驱动模块,只需要编写桩模块。它从主控模块开始,按照软件的控制层次结构,以深度优先或宽度优先的策略,逐步把各个模块集成在一起。
24.独立路径是指包括一组以前没有处理的语句或条件的一条路径。从程序图来看,一条独立路径是至少包含有一条(在其他独立路径中未有过)的边的路径。[解析]在基本路径测试中,以详细设计或源程序为基础,导出控制流程图的拓扑结构——程序图,在计算了程序图的环路复杂性之后,确定只包含独立路径的基本路径图,其中独立路径是包括一组以前没有处理的语句或条件的一条路径。从程序图来看,一条独立路径是至少包含有一条在其他独立路径中未有过的边的路径。
25.汇编语言是面向(机器)的,可以完成高级语言无法完成的特殊功能,如与外部设备之间的一些接口工作。
[解析]汇编语言属于低级语言,是一种面向机器的语言,它与高级语言相比有许多优越性:如操作灵活,可以直接作用到硬件的最下层,完成与外部设备的接口工作等,是能够利用计算机硬件特性直接控制硬件设备的唯一语言。
26.在JSP方法中解决结构冲突的具体办法是(中间数据结构或中间文件)。
[解析]JSP方法是面向数据结构的设计方法。它定义了一组以数据结构为指导的映射过程,根据输入、输出的数据结构,按一定的规则映射成软件的过程描述,在JSP方法中解决结构冲突的具体办法是引入中间数据结构或中间文件,将冲突部分分隔开来,建立多个程序结构,再利用中间文件把它们联系起来,构成一个系统的整体。
27.详细设计的任务是确定每个模块的内部特性,即模块的算法、(使用的数据)。[解析]详细设计的基本任务是为每个模块进行详细的算法设计,为模块内的数据结构进行设计,确定每个模块的内部特性,包括模块的算法和使用的数据。对数据库进行物理设计等。28.所有软件维护申请报告要按规定方式提出,该报告也称(软件问题)报告。[解析]在软件维护的流程中,第一步就是制定维护申请报告,也称为软件问题报告,它是维护阶段的一种文档,由申请维护的用户填写。
29.有两类维护技术:在开发阶段使用来减少错误、提高软件可维护性的面向维护的技术;在维护阶段用来提高维护的效率和质量的(维护支援)技术。[解析]面向维护的技术涉及软件开发的所有阶段,能够减少软件错误,提高软件的可维护性。而维护支援技术则包含信息收集,错误原因分析,维护方案评价等项,是在软件维护阶段用来提高维护效率和质量的技术。
30.科学工程计算需要大量的标准库函数,以便处理复杂的数值计算,可供选择的语言有:(FORTRAN语言)、PASCAL语言、C语言和PL/1语言。
[解析]计算机语言根据不同行业的需求,使用的侧重点也不尽相同,在办公管理方面,一些数据库语言如FOXPRO、ORICAL有很多的应用,在工程行业,计算机语言的科学计算能力就显得格外重要,如MATLAB、PL/
1、FORTRAN语言都是工程计算中常用的语言。
解:投资回收期就是使累计的经济效益等于最初的投资费用所需的时间。[解析]通常我们用投资回收期来衡量一个开发项目的价值,投资回收期越短,就越快获得利润。34.对应关系
解:即有直接因果关系在程序中可以同时处理。[解析]对应关系是指数据单元在数据内容上、数量上和顺序上有直接的因果关系,对于重复的数据单元,重复的次序和次数都相同才有对应关系。35.结构冲突
解:输入数据与输出数据结构找不到对应关系的情况,称为结构冲突。
[解析]使用JSP方法时会遇到此类结构冲突问题,对此,Jackson提出了引入中间数据结构或中间文件的办法,将冲突部分分隔开来,建立多个程序结构,再利用中间文件把它们联系起来,构成一个系统的整体。
40.请使用PAD图和PDL语言描述在数组A(1)~A(10)中找最大数的算法。解:PDL语言: N=1 WHILE N<=10 DO IF A(N)<=A(N+1)MAX =A(N+1);ELSE MAX =A(N)ENDIF;N=N+1;ENDWHILE;PAD图:
42.某电器集团公司下属的厂包括技术科、生产科等基层单位。现在想建立一个计算机辅助企业管理系统,其中: 生产科的任务是:
(1)根据销售公司转来的内部合同(产品型号、规格、数量、交获日期)制定车间月生产计划。
(2)根据车间实际生产日报表、周报表调整月生产计划
(3)以月生产计划为以及,制定产品设计(结构、工艺)及产品组装月计划。(4)将产品的组装计划传达到各科,将组装月计划分解为周计划,下达给车间 技术科的任务是:
(1)根据生产科转来的组装计划进行产品结构设计,产生产品装配图给生产科,产生外购需求计划给供应科,并产生产品自制物料清单。
(2)根据组装计划进行产品工艺设计,根据产品自制物料清单产生工艺流程图给零件厂。试写出以上系统中生产科和技术科处理的软件结构图。解
[解析]软件结构图是软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制层次体系,软件结构往往用树状或网状结构的图形来表示,其主要内容有模块及模块的控制关系,根据题意,可绘制出生产科和技术科的软件结构图,其中生产科的结构图深度和宽度均为4,技术科的结构图的深度和宽度均为3
填空题
1.在信息处理和计算机领域内,一般认为软件是 _程序、_文档____ 和_数据
2.数据流图的基本组成部分有 数据的源点与终点、数据流_、加工、数据文件。3.数据流图和数据字典共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分。4.划分模块时尽量做到__高内聚、低耦合,保持模块的独立性,尽量使用公共模块。5.类的实例化是_对象_______。
6.人们常用硬件可靠性的定量度量方法来度量软件的可靠性和可用性,常用的度量软件可靠性的两个指标是_成功地运行的概率_______和_平均故障时间_______。8.将待开发的软件细化,分别估算每一个子任务所需要的开发工作量,然后将它们加起来,将得到软件的总开发量。这种成本估算方法称为_自底向上_______。
9.如果一个模块被 n 个模块调用,其中直接的上级模块的个数是 m 个(m<=n)那么该模块的扇入数是 ____N_______ 个。
10.结构化设计以 __数据流图_________ 为基础,按一定的步骤映射成软件结构。
11.软件的风险分析可包括风险识别、风险预测 和风险驾驭(或风险管理)等3项活动。12.软件著作权登记的3种主要类型:(1)著作权登记;(2)著作权延续登记;(3)权利转移备案登记。
13.软件工程管理的主要内容有:项目经费管理,软件质量管理,项目进度管理和人员管理。15.面向对象分析的目的是对客观世界的系统进行 ___建模_______________。16.软件维护工作的生产性活动包括分析评价、修改设计和 ____编写程序代码等。17.为了使应用软件适应计算机环境的变化而 ___修改软件的过程称为适应性维护。18.一个进行学生成绩统计的模块其功能是先对学生的成绩进行累加,然后求平均值,则该模块的内聚性是 __________顺序内聚________。
19.投资回收期就是使累计的经济效益等于 __最初的投资费用_所需的时间。
20.软件生存周期是指一个软件从提出开发要求开始直到 _软件废弃_为止的整个时期。21.曾被誉为“程序设计方法的革命”的 结构化 程序设计,使程序设计从主要依赖于程序员个人的自由活动变成为有章可循的一门科学。
22.从结构化程序设计到 面向对象程序设计,是程序设计方法的又一次飞跃。23.在单元测试时,需要为被测模块设计___测试用例_______。
三、应用题
1.商店业务处理系统的业务描述及数据流图如下:
顾客到商店购物时,在经过挑选之后填写了一张订单,详细列出了想要购买的物品名称、规格和数量等。商店接到订单后首先查商品库存,看是否有足够的存货。若有,则出库且修改商品库存文件,然后给顾客开发货票,让顾客交款、给顾客开收据并取货,最后登记销售历史。若存货不足,则暂存顾客订单并向采购部门发出订货通知。采购部门根据商品库存和暂存订单信息向供应商订货。待接到供应商发来的相应商品时,通知财务部门向供应商付款,并向销售部门发出到货通知,同时,采购部门要修改商品库存和暂存订单信息。当销售部门接到到货通知时,应通知顾客来付款取货。财务部门依据供应商送来的收据记账。
试求解下列问题: 1).针对处理1,给出该处理的一级细化的DFD(要求给出合适的数据流与数据存储说明); 2).针对处理2,给出该处理的一级细化的DFD(要求给出合适的数据流与数据存储说明); 3).给出“发货单”的DD定义; 4).给出“订货单”的DD定义; 5).根据你对问题的理解,给出“商品库存”这个数据存储的数据结构描述。6).根据你对问题的理解,给出“销售历史”这个数据存储的数据结构描述。
第一章:软件工程学概述 一.填空题
1.计算机科学中的研究成果均可用于软件工程,但计算机科学更侧重于_____________、而 软件工程侧重于_____________。
2.计算机程序及其说明程序的各种文档称为_____________。计算任务的处理图像对象和处 理规则的描述称为_____________。有关计算机程序功能、设计、编制、使用的文字或图形资
料称为_____________。
3.软件开发环境是相关一组_____________的集合,它支持一定的软件开发方法或按照一定 的软件开发模型组织而成的。
4.CASE这一术语的英文是_____________。
5._____________是指工具运行在相同的硬件/操作系统平台上。_____________是指工具使 用共享数据模型来操作。_____________是指工具提供相同的用户界面。
6.根据支持的范围,CASE工具可分为_____________、_____________和_____________工具。
7.软件危机的主要原因有_____________和_____________。8._____________模型是一种非整体开发的模型。软件在该模型中是“逐渐”开发处理的,开发出一部分,向用户展示一部分,可让用户及早看到部分软件,及早发现问题。或者先开 发一个“原型”软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获 得满意的软件产品。
9.结构化方法总得指导思想是_____________。它的基本原则是功能的_____________与___ __________。它是软件工程中最早出现的开发方法,特别适用于数据处理领域的问题。10.面向对象开发方法包括_____________、_____________、_____________、三部分。11.瀑布模型是将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型。它包括_____________、项目开发计划、_____________、_____________、_____________、_ ____________、_____________、_____________,它规定了由前至后、相互衔接的固定次序,如同瀑布流水,逐级下落。12.瀑布模型本质上是一种_____________顺序模型。
13.构造原型时,必须注意_____________取舍,忽略一切暂时不关心的部分。
14.属性指的是类中对象所具有的_____________。不同对象的同一属性可以具有相同或不同 的_____________。
15.结构化方法和原型化方法是软件开发中常使用的两种方法,在实际的应用中,它们之间 的关系表现为_____________。解答: 1.原理和理论、如何建造一个软件系统 2.文件、程序、文档; 3.软件工具; 4.Computer Aided Software Engineering;5.平台集成、数据集成、表示集成; 6.窄支持、较宽支持、一般支持; 7.软件本身的特点、缺乏好的开发方法和手段; 8.增量; 9.自顶而下逐步求精、分解、抽象; 10.面向对象分析、面向对象设计、面向对象实现; 11.可行性分析、需求分析、概要设计、详细设计、编码、测试、维护; 12.线性; 13.功能性能; 14.性质(数据值)、属性值; 15.相互补充;第二章: 可行性研究 一.填空题
1.数据词典中四种类型的条目是_____________、_____________、_____________和加工。2._____________的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开 发,是否值得开发。
3.可行性研究的目的不是去开发一个软件项目,而是研究这个软件项目是否_____________。
4.可行性研究实质上是要进行一次简化、压缩了的_____________和_____________过程,要在较高层次上以较抽象的方式进行需求分析和设计过程。
5.可行性研究需要从_____________可行性、_____________可行性、_____________可行性 三个方面分析研究每种解决方法的可行性。
6.成本-效益分析首先是估算将要开发的系统的_____________,然后与可能取得的效益进 行_____________。
7.投资回收期就是使累计的经济效益等于最初的投资费用所需要的时间。项目的_________ ____是指在整个生命周期之内的累计经济效益(折合成现在值)与投资之差。8.软件工程有两种效益,它们是_____________和_____________。
9.成本-效益分析的目的是从_____________评价开发一个新的软件项目是否可行。10.研究开发资源的有效性是进行_____________可行性研究的一方面。
11.在软件的可行性研究中,可以从不同的角度对软件进行研究,其中是从软件的功能可行 性角度考虑的是_____________。12.制定软件计划的目的在于尽早对欲开发的软件进行合理估价,软件计划的任务是_______ ______。
13.数据流图是常用的进行软件需求分析的图形工具,其基本符合是_____________、______ _______、_____________和_____________。
14.决定大型程序模型组织基本原则的两种交替设计策略为_____________和_____________。
15.软件系统可行性分析应考虑_____________、_____________、_____________和________ _____等方面因素。解答: 1.数据流、数据存储、数据项、加工2.软件可行性研究 3.值得去开发且其中的问题能否解决; 4.需求分析、设计 5.技术、经济、社会 6.开发成本、比较和权衡 7.纯收入 8.无形效益、有形效益 9.经济角度 10.技术 11.技术可行性 12.规划与调度 13.加工、数据流、数据存储、外部实体 14.数据分解、算法分解 15.经济、技术、社会环境和人。第三章: 需求分析 一.填空题
1.软件需求分析过程应该建立_____________、_____________和_____________ 三种模型。2.需求分析的基本任务是要准确地定义_____________,为了满足用户需要,回答系统必须 做什么的问题。
3.数据流图有4个基本成分:_____________、_____________、_____________和_________ ____。
4.流向数据存储的数据流可理解为_____________文件或_____________文件,从数据存储 流出的数据可理解为从文件_____________数据或得到_____________结果。
5.需求分析的困难主要体现在4个方面:问题的复杂性、_____________、_____________需
求易变性。
6.由于数据流是流动中的数据,所以必须有_____________。除了与_____________之间的 数据流不用命名外,数据流应该用名词或名词短语命名。
7.结构化分析方法是面向_____________进行需求分析的方法。8.经过需求分析,开发人员已经基本上理解了用户的要求,确定了目标系统的功能,定义 了系统数据,描述了处理这些数据的基本策略。将这些共同的理解进行了整理,最后形成文 档_____________。
9.在数据流图中,有名字及方向的成分是_____________。
10.在软件需求分析中,开发人员要从用户那里解决的最重要的问题是_____________。11.需求分析的最终结果是产生_____________。12.SA方法用DFD描述_____________。13.SA方法的基本思想是_____________。
14.常用的需求分析方法有面向数据流的结构化分析方法,_____________,面向数据结构 的
分析方法等。
15.通过_____________可以完成数据流图的细化。解答: 1.数据模型、功能模型、行为模型 2.新系统的目标 3.数据流、加工(又称数据处理)、数据存储、数据源点和终点 4.写入、查询、读、查询 5.交流障碍、不完备性和不一致性 6.流向、数据存储 7.数据流 8.需求说明书 9.数据流 10.要让软件做什么 11.需求规格说明书 12.系统的功能 13.自顶向下逐步分解 14.面向对象的分析方法 15.功能分解 第五章: 总体设计 一.填空题
1.过程设计语言的重复结构有_____________结构、_____________结构_____________、结 构三种。
2.结构化程序设计方法的基本要点是:(1)采用_____________、_____________、的程序 设计方法;(2)使用_____________构造程序;(3)主程序员组的组织形式。
3.在详细设计阶段,为了提高数据的输入、存储、检索等操作的效率并节约存储空间,对 某些数据项的值要进行_____________设计。
4.任何程序都可由_____________、_____________和_____________三种基本控制结构构造。这三种基本结构的共同点是_____________、_____________。
5.在详细设计阶段,除了对模块内的算法进行设计,还应对模块内的_____________进行设 计。
6.在详细设计阶段,经常采用的工具有_____________、PDL、PAD等。7.在单元测试中,测试一个模块时,需要设计_____________。
8.软件产品在交付使用之前一般要经过以下4步测试_____________、_____________、____ _________、_____________。
9.软件测试用例由_____________和_____________组成。10.用黑盒技术设计测试用例的方法有_____________、_____________、_____________和__ ___________。
11.源程序中加注释是帮助理解程序的重要手段,注释分为_____________、_____________ 两类。
12.近年来,推出了许多面向对象的语言,如_____________、_____________等。
13.汇编语言是面向_____________的,可以完成_____________语言无法满足要求的特殊功 能,如与外部设备之间的一些接口操作。
14.语句构造的原则是简单直接,不能为了追求效率而使代码_____________ 15._____________是指程序从一个计算机环境移植到另一个计算机环境的容易程度 解答: 1.for、while、until 2.自顶向下、逐步求精、三种基本控制结构 3.代码 4.顺序、选择、重复、单入口、单出口 5.数据结构 6.程序流程图 7.驱动模块和桩模块 8.单元测试、集成测试、确认测试、系统测试 9.测试输入数据和对应的预期输出 10.等价类划分、边界值分析、错误推断、因果图 11.序言行注释、功能性注释 12.C++、JAVA 13.机器、高级 14.复杂化; 15.可移植性。
第四篇:软件工程导论试题
软件工程导论试题 一.选择
1、瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和(C)。A、详细计划 B、可行性分析
C、运行阶段 D、测试与排错
2、从结构化的瀑布模型看,在它的生命周期中的八个阶段中,下面的几个选项中哪个环节出错,对软件的影响最大(C)。A、详细设计阶段 B、概要设计阶段 C、需求分析阶段 D、测试和运行阶段
3、在结构化的瀑布模型中,哪一个阶段定义的标准将成为软件测试中的系统测试阶段的目标(A)。
A、需求分析阶段 B、详细设计阶段 C、概要设计阶段 D、可行性研究阶段
4、软件工程的出现主要是由于(C)。
A.程序设计方法学的影响 B.其它工程科学的影响 C.软件危机的出现 D.计算机的发展
5、软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是(C)A、硬件环境 B、软件开发的环境 C、软件开发工具和软件开发的环境 D、开发人员的素质
6、软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为(B)A、相互排斥 B、相互补充
C、独立使用 D、交替使用
7、UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法(C)A、基于瀑布模型的结构化方法 B、基于需求动态定义的原型化方法 C、基于对象的面向对象的方法 D、基于数据的数据流开发方法
8、在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高(B)A、结构化方法 B、原型化方法 C、面向对象的方法 D、控制流方法
9、结构化分析方法是一种预先严格定义需求的方法,它在实施时强调的是分析对象的(B)A、控制流 B、数据流 C、程序流 D、指令流
10、软件开发的结构化生命周期方法将软件生命周期划分成(A)A、计划阶段、开发阶段、运行阶段 B、计划阶段、编程阶段、测试阶段 C、总体设计、详细设计、编程调试 D、需求分析、功能定义、系统设计
11、软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为(A)A、瀑布模型 B、对象模型 C、螺旋模型 D、层次模型
12、软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是(C)A、分析阶段 B、设计阶段 C、编码阶段 D、测试阶段 二.填空
21.系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素表达了系统中各种元素之间的(信息流动)情况。
[解析]系统流程图是描述物理系统的传统工具,用图形符号表示系统中的各个元素,如人工处理、数据处理、数据库、文件、设备等,表达了元素之间的信息流动的情况。
22.成本效益分析的目的是从(经济)角度评价开发一个项目是否可行。
[解析]成本效益分析首先是估算将要开发的系统的开发成本,然后与可能取得的效益进行比较和权衡,其目的是从经济角度评价开发一个新的软件项目是否可行。23.自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先策略和(宽度优先策略)。
[解析]渐增式测试法有自顶向下结合和自底向上结合两种组装模块的方法,其中自顶向下集成是构造程序结构的一种增量式方式,不需要编写驱动模块,只需要编写桩模块。它从主控模块开始,按照软件的控制层次结构,以深度优先或宽度优先的策略,逐步把各个模块集成在一起。
24.独立路径是指包括一组以前没有处理的语句或条件的一条路径。从程序图来看,一条独立路径是至少包含有一条(在其他独立路径中未有过)的边的路径。
[解析]在基本路径测试中,以详细设计或源程序为基础,导出控制流程图的拓扑结构——程序图,在计算了程序图的环路复杂性之后,确定只包含独立路径的基本路径图,其中独立路径是包括一组以前没有处理的语句或条件的一条路径。从程序图来看,一条独立路径是至少包含有一条在其他独立路径中未有过的边的路径。
25.汇编语言是面向(机器)的,可以完成高级语言无法完成的特殊功能,如与外部设备之间的一些接口工作。
[解析]汇编语言属于低级语言,是一种面向机器的语言,它与高级语言相比有许多优越性:如操作灵活,可以直接作用到硬件的最下层,完成与外部设备的接口工作等,是能够利用计算机硬件特性直接控制硬件设备的唯一语言。
26.在JSP方法中解决结构冲突的具体办法是(中间数据结构或中间文件)。
[解析]JSP方法是面向数据结构的设计方法。它定义了一组以数据结构为指导的映射过程,根据输入、输出的数据结构,按一定的规则映射成软件的过程描述,在JSP方法中解决结构冲突的具体办法是引入中间数据结构或中间文件,将冲突部分分隔开来,建立多个程序结构,再利用中间文件把它们联系起来,构成一个系统的整体。
27.详细设计的任务是确定每个模块的内部特性,即模块的算法、(使用的数据)。
[解析]详细设计的基本任务是为每个模块进行详细的算法设计,为模块内的数据结构进行设计,确定每个模块的内部特性,包括模块的算法和使用的数据。对数据库进行物理设计等。
28.所有软件维护申请报告要按规定方式提出,该报告也称(软件问题)报告。
[解析]在软件维护的流程中,第一步就是制定维护申请报告,也称为软件问题报告,它是维护阶段的一种文档,由申请维护的用户填写。
29.有两类维护技术:在开发阶段使用来减少错误、提高软件可维护性的面向维护的技术;在维护阶段用来提高维护的效率和质量的(维护支援)技术。
[解析]面向维护的技术涉及软件开发的所有阶段,能够减少软件错误,提高软件的可维护性。而维护支援技术则包含信息收集,错误原因分析,维护方案评价等项,是在软件维护阶段用来提高维护效率和质量的技术。
30.科学工程计算需要大量的标准库函数,以便处理复杂的数值计算,可供选择的语言有:(FORTRAN语言)、PASCAL语言、C语言和PL/1语言。
[解析]计算机语言根据不同行业的需求,使用的侧重点也不尽相同,在办公管理方面,一些数据库语言如FOXPRO、ORICAL有很多的应用,在工程行业,计算机语言的科学计算能力就显得格外重要,如MATLAB、PL/
1、FORTRAN语言都是工程计算中常用的语言。三.判断
1.软件的开发与运行经常受到硬件的限制和制约。(√)
2.模块内的高内聚往往意味着模块间的松耦合。(√)
3.Jackson图只能表达程序结构,不能表达数据结构。(X)
上述数据流图表示数据A和B同时输入变换成C。(X)
5.软件的质量好坏主要由验收人员负责,其他开发人员不必关心。(X)
6.判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖。(√)
7.应该尽量使用机器语言编写代码,提高程序运行效率,而减少高级语言的使用。(X)
8.UML只能应用于软件系统模型的建立。(X)
9.容错就是每个程序采用两种不同的算法编写。(X)
10.软件测试的目的是为了无一遗漏的找出所有的错误。(X)
四、名词解释题(本大题共5小题,每小题3分,共15分)
31.软件开发环境
32.错误推测法
33.黑盒测试法
34.软件质量保证
35.瀑布模型 31.经济可行性
解:进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。
[解析]对于一个系统所必须要衡量的是经济上是否合算,经济可行性的范围很广,包括效益分析、潜在市场前景等。
32.社会可行性
解:要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。
[解析]社会可行性包括合同、责任、侵权等技术人员不甚了解的诸多问题。
33.投资回收期
解:投资回收期就是使累计的经济效益等于最初的投资费用所需的时间。
[解析]通常我们用投资回收期来衡量一个开发项目的价值,投资回收期越短,就越快获得利润。
34.对应关系
解:即有直接因果关系在程序中可以同时处理。
[解析]对应关系是指数据单元在数据内容上、数量上和顺序上有直接的因果关系,对于重复的数据单元,重复的次序和次数都相同才有对应关系。
35.结构冲突
解:输入数据与输出数据结构找不到对应关系的情况,称为结构冲突。
[解析]使用JSP方法时会遇到此类结构冲突问题,对此,Jackson提出了引入中间数据结构或中间文件的办法,将冲突部分分隔开来,建立多个程序结构,再利用中间文件把它们联系起来,构成一个系统的整体。
五、图 a 中,模块 G 为判定,判断涉及到模块 B、F、G,请指出设计中的错误,再根据 改进模 块图的基本原则,画出 1~2 个改进方案(不改变模块 G 的判断关系),并说明是按照
哪条基本 原则进行改进的。
解:图 b 为一个改进方案,将模块 G 的位置提高,使其作用范围为控制范围的子集,减 少模块 之间的联系。
40.请使用PAD图和PDL语言描述在数组A(1)~A(10)中找最大数的算法。
解:PDL语言:
N=1
WHILE N<=10 DO
IF A(N)<=A(N+1)MAX =A(N+1);
ELSE MAX =A(N)ENDIF;
N=N+1;
ENDWHILE;
PAD图:
[解析]人工查找时,是从第一个元素开始查找,用当前元素与下一个元素比较,将较大者作为当前元素又与下一元素比较,如此循环,直到数组末尾。
41.根据下列条件使用等价类划分法设计测试用例。
某一8位微机,其八进制常数定义为:以零开头的数是八进制整数,其值的范围是-177~177,如05,0127,-065
解:(1)划分等价类并编号,如下表示:(4分)
(2)为合理等价类设计测试用例,表中有两个合理等价类,设计两个例子(2分)
(3)为不合理等价类测试用例,至少设计一个测试用例(2分)
[解析]等价类划分属于黑盒测试的一种,它将输入数据域按有效的或无效的划分成若干个等价类,测试每个等价类的代表值就等于对该类其他值的测试,这样用少量有代表性的例子代替大量测试目的相同的例子,可以有效提高测试效率。本题划分了3个合理等价类,9个不合理等价类进行测试,取到了预期的效果。
42.某电器集团公司下属的厂包括技术科、生产科等基层单位。现在想建立一个计算机辅助企业管理系统,其中:
生产科的任务是:
(1)根据销售公司转来的内部合同(产品型号、规格、数量、交获日期)制定车间月生产计划。
(2)根据车间实际生产日报表、周报表调整月生产计划
(3)以月生产计划为以及,制定产品设计(结构、工艺)及产品组装月计划。
(4)将产品的组装计划传达到各科,将组装月计划分解为周计划,下达给车间
技术科的任务是:
(1)根据生产科转来的组装计划进行产品结构设计,产生产品装配图给生产科,产生外购需求计划给供应科,并产生产品自制物料清单。
(2)根据组装计划进行产品工艺设计,根据产品自制物料清单产生工艺流程图给零件厂。试写出以上系统中生产科和技术科处理的软件结构图。
解:
画出生产科图的给6分,画出技术科的给4分。
[解析]软件结构图是软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制层次体系,软件结构往往用树状或网状结构的图形来表示,其主要内容有模块及模块的控制关系,根据题意,可绘制出生产科和技术科的软件结构图,其中生产科的结构图深度和宽度均为4,技术科的结构图的深度和宽度均为3。
一、判断题(每题2分,共30分)
1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。(对)
2.数据字典是对数据流图中的数据流,加工、数据存储、数据的源和终点进行详细定义。(错)
3.JAVA语言编译器是一个CASE工具。(对)。
4.软件是指用程序设计语言(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开发实际上就是
编写程序代码。(错)
5.软件模块之间的耦合性越弱越发。(对)6.数据库设计说明书是一个软件配置项(对)
7.在面向对象的软件开发方法中,每个类都存在其相应的对象,类是对象的实例,对象是生成类的模
板。(错)
8.过程描述语言可以用于描述软件的系统结构。(错)
9.如果通过软件测试没有发现错误,则说明软件是正确的。(错)
10.快速原型模型可以有效地适应用户需求的动态变化。(对)
11.模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。
(对)
12.集成测试主要由用户来完成。(错)
13.确认测试计划应该在可行性研究阶段制定(错)
14.白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。(错)
15.软件概要设计包括软件系统结构设计以及数据结构和数据库设计。(对)
二。单选题(每题2分,共20分)1.瀑布模型的关键不足在于(2)
(1)过于简单(2)不能适应需求的动态变更(3)过于灵活(4)各个阶段需要进行评审
2.在面向对象软件开发方法中,类与类之间主要有以下结构关系(1)
(1)继承和聚集(2)继承和一般(3)聚集和消息传递(4)继承和方法调用
3.以下哪一项不是软件危机的表现形式(3)
(1)成本高(2)生产率低(3)技术发展快(4)质量得不到保证
4.以下哪一项不是面向对象的特征(4)
(1)多态性(2)继承性(3)封装性(4)过程调用
5.面向对象模型主要由以下哪些模型组成(1)
(1)对象模型、动态模型、功能模型(2)对象模型、数据模型、功能模型(3)数据模型、动态模型、功能模型(4)对象模型、动态模型、数据模型
6.软件可行性研究一般不考虑(4)
(1)是否有足够的人员和相关的技术来支持系统开发(2)是否有足够的工具和相关的技术来支持系统开发(3)待开发软件是否有市场、经济上是否合算(4)待开发的软件是否会有质量问题
7.软件维护的副作用主要有以下哪几种(3)
(1)编码副作用、数据副作用、测试副作用(2)编码副作用、数据副作用、调试副作用(3)编码副作用、数据副作用、文档副作用(4)编码副作用、文档副作用、测试副作用
8.软件项目计划一般不包括以下哪项内容(4)
(1)培训计划(2)人员安排(3)进度安排(4)软件开发标准的选择和制定
9.以下哪一项不属于面向对象的软件开发方法(3)
(1)coad方法(2)booch方法(3)jackson方法(4)omt方法
10.以下哪种测试方法不属于白盒测试技术(2)
(1)基本路径测试(2)边界值分析测试(3)循环覆盖测试(4)逻辑覆盖测试
第五篇:软件工程导论试题
软件工程导论试题
一.选择
1、瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和(C)。A、详细计划 B、可行性分析
C、运行阶段 D、测试与排错
2、从结构化的瀑布模型看,在它的生命周期中的八个阶段中,下面的几个选项中哪个环节出错,对软件的影响最大(C)。A、详细设计阶段 B、概要设计阶段
C、需求分析阶段 D、测试和运行阶段
3、在结构化的瀑布模型中,哪一个阶段定义的标准将成为软件测试中的系统测试阶段的目标(A)。
A、需求分析阶段 B、详细设计阶段
C、概要设计阶段 D、可行性研究阶段
4、软件工程的出现主要是由于(C)。
A.程序设计方法学的影响 B.其它工程科学的影响
C.软件危机的出现 D.计算机的发展
5、软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是(C)A、硬件环境 B、软件开发的环境
C、软件开发工具和软件开发的环境 D、开发人员的素质
6、软件开发常使用的两种基本方法是结构化和原型化方法,在实际的应用中,它们之间的关系表现为(B)A、相互排斥 B、相互补充
C、独立使用 D、交替使用
7、UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法(C)A、基于瀑布模型的结构化方法 B、基于需求动态定义的原型化方法 C、基于对象的面向对象的方法 D、基于数据的数据流开发方法
8、在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高(B)A、结构化方法 B、原型化方法 C、面向对象的方法 D、控制流方法
9、结构化分析方法是一种预先严格定义需求的方法,它在实施时强调的是分析对象的(B)A、控制流 B、数据流 C、程序流 D、指令流
10、软件开发的结构化生命周期方法将软件生命周期划分成(A)A、计划阶段、开发阶段、运行阶段 B、计划阶段、编程阶段、测试阶段 C、总体设计、详细设计、编程调试 D、需求分析、功能定义、系统设计
11、软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为(A)A、瀑布模型 B、对象模型 C、螺旋模型 D、层次模型
12、软件开发的瀑布模型,一般都将开发过程划分为:分析、设计、编码和测试等阶段,一般认为可能占用人员最多的阶段是(C)A、分析阶段 B、设计阶段 C、编码阶段 D、测试阶段 二.填空
21.系统流程图是描述物理模型的传统工具,用图形符号表示系统中各个元素表达了系统中各种元素之间的(信息流动)情况。
[解析]系统流程图是描述物理系统的传统工具,用图形符号表示系统中的各个元素,如人工处理、数据处理、数据库、文件、设备等,表达了元素之间的信息流动的情况。
22.成本效益分析的目的是从(经济)角度评价开发一个项目是否可行。
[解析]成本效益分析首先是估算将要开发的系统的开发成本,然后与可能取得的效益进行比较和权衡,其目的是从经济角度评价开发一个新的软件项目是否可行。23.自顶向下结合的渐增式测试法,在组合模块时有两种组合策略:深度优先策略和(宽度优先策略)。
[解析]渐增式测试法有自顶向下结合和自底向上结合两种组装模块的方法,其中自顶向下集成是构造程序结构的一种增量式方式,不需要编写驱动模块,只需要编写桩模块。它从主控模块开始,按照软件的控制层次结构,以深度优先或宽度优先的策略,逐步把各个模块集成在一起。
24.独立路径是指包括一组以前没有处理的语句或条件的一条路径。从程序图来看,一条独立路径是至少包含有一条(在其他独立路径中未有过)的边的路径。
[解析]在基本路径测试中,以详细设计或源程序为基础,导出控制流程图的拓扑结构——程序图,在计算了程序图的环路复杂性之后,确定只包含独立路径的基本路径图,其中独立路径是包括一组以前没有处理的语句或条件的一条路径。从程序图来看,一条独立路径是至少包含有一条在其他独立路径中未有过的边的路径。
25.汇编语言是面向(机器)的,可以完成高级语言无法完成的特殊功能,如与外部设备之间的一些接口工作。
[解析]汇编语言属于低级语言,是一种面向机器的语言,它与高级语言相比有许多优越性:如操作灵活,可以直接作用到硬件的最下层,完成与外部设备的接口工作等,是能够利用计算机硬件特性直接控制硬件设备的唯一语言。
26.在JSP方法中解决结构冲突的具体办法是(中间数据结构或中间文件)。
[解析]JSP方法是面向数据结构的设计方法。它定义了一组以数据结构为指导的映射过程,根据输入、输出的数据结构,按一定的规则映射成软件的过程描述,在JSP方法中解决结构冲突的具体办法是引入中间数据结构或中间文件,将冲突部分分隔开来,建立多个程序结构,再利用中间文件把它们联系起来,构成一个系统的整体。
27.详细设计的任务是确定每个模块的内部特性,即模块的算法、(使用的数据)。
[解析]详细设计的基本任务是为每个模块进行详细的算法设计,为模块内的数据结构进行设计,确定每个模块的内部特性,包括模块的算法和使用的数据。对数据库进行物理设计等。
28.所有软件维护申请报告要按规定方式提出,该报告也称(软件问题)报告。
[解析]在软件维护的流程中,第一步就是制定维护申请报告,也称为软件问题报告,它是维护阶段的一种文档,由申请维护的用户填写。
29.有两类维护技术:在开发阶段使用来减少错误、提高软件可维护性的面向维护的技术;在维护阶段用来提高维护的效率和质量的(维护支援)技术。
[解析]面向维护的技术涉及软件开发的所有阶段,能够减少软件错误,提高软件的可维护性。而维护支援技术则包含信息收集,错误原因分析,维护方案评价等项,是在软件维护阶段用来提高维护效率和质量的技术。
30.科学工程计算需要大量的标准库函数,以便处理复杂的数值计算,可供选择的语言有:(FORTRAN语言)、PASCAL语言、C语言和PL/1语言。
[解析]计算机语言根据不同行业的需求,使用的侧重点也不尽相同,在办公管理方面,一些数据库语言如FOXPRO、ORICAL有很多的应用,在工程行业,计算机语言的科学计算能力就显得格外重要,如MATLAB、PL/
1、FORTRAN语言都是工程计算中常用的语言。三.判断
1.软件的开发与运行经常受到硬件的限制和制约。(√)
2.模块内的高内聚往往意味着模块间的松耦合。(√)3.Jackson图只能表达程序结构,不能表达数据结构。(X)
上述数据流图表示数据A和B同时输入变换成C。(X)
5.软件的质量好坏主要由验收人员负责,其他开发人员不必关心。(X)
6.判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖。(√)
7.应该尽量使用机器语言编写代码,提高程序运行效率,而减少高级语言的使用。(X)
8.UML只能应用于软件系统模型的建立。(X)
9.容错就是每个程序采用两种不同的算法编写。(X)
10.软件测试的目的是为了无一遗漏的找出所有的错误。(X)
四、名词解释题(本大题共5小题,每小题3分,共15分)
31.软件开发环境
32.错误推测法
33.黑盒测试法
34.软件质量保证
35.瀑布模型 31.经济可行性
解:进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。
[解析]对于一个系统所必须要衡量的是经济上是否合算,经济可行性的范围很广,包括效益分析、潜在市场前景等。
32.社会可行性
解:要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。
[解析]社会可行性包括合同、责任、侵权等技术人员不甚了解的诸多问题。
33.投资回收期
解:投资回收期就是使累计的经济效益等于最初的投资费用所需的时间。
[解析]通常我们用投资回收期来衡量一个开发项目的价值,投资回收期越短,就越快获得利润。
34.对应关系
解:即有直接因果关系在程序中可以同时处理。
[解析]对应关系是指数据单元在数据内容上、数量上和顺序上有直接的因果关系,对于重复的数据单元,重复的次序和次数都相同才有对应关系。
35.结构冲突
解:输入数据与输出数据结构找不到对应关系的情况,称为结构冲突。
[解析]使用JSP方法时会遇到此类结构冲突问题,对此,Jackson提出了引入中间数据结构或中间文件的办法,将冲突部分分隔开来,建立多个程序结构,再利用中间文件把它们联系起来,构成一个系统的整体。
五、图 a 中,模块 G 为判定,判断涉及到模块 B、F、G,请指出设计中的错误,再根据 改进模 块图的基本原则,画出 1~2 个改进方案(不改变模块 G 的判断关系),并说明是按照
哪条基本 原则进行改进的。
解:图 b 为一个改进方案,将模块 G 的位置提高,使其作用范围为控制范围的子集,减 少模块 之间的联系。
40.请使用PAD图和PDL语言描述在数组A(1)~A(10)中找最大数的算法。
解:PDL语言:
N=1
WHILE N<=10 DO
IF A(N)<=A(N+1)MAX =A(N+1);
ELSE MAX =A(N)ENDIF;
N=N+1;
ENDWHILE;
PAD图:
[解析]人工查找时,是从第一个元素开始查找,用当前元素与下一个元素比较,将较大者作为当前元素又与下一元素比较,如此循环,直到数组末尾。
41.根据下列条件使用等价类划分法设计测试用例。
某一8位微机,其八进制常数定义为:以零开头的数是八进制整数,其值的范围是-177~177,如05,0127,-065
解:(1)划分等价类并编号,如下表示:(4分)
(2)为合理等价类设计测试用例,表中有两个合理等价类,设计两个例子(2分)
(3)为不合理等价类测试用例,至少设计一个测试用例(2分)
[解析]等价类划分属于黑盒测试的一种,它将输入数据域按有效的或无效的划分成若干个等价类,测试每个等价类的代表值就等于对该类其他值的测试,这样用少量有代表性的例子代替大量测试目的相同的例子,可以有效提高测试效率。本题划分了3个合理等价类,9个不合理等价类进行测试,取到了预期的效果。
42.某电器集团公司下属的厂包括技术科、生产科等基层单位。现在想建立一个计算机辅助企业管理系统,其中:
生产科的任务是:
(1)根据销售公司转来的内部合同(产品型号、规格、数量、交获日期)制定车间月生产计划。
(2)根据车间实际生产日报表、周报表调整月生产计划
(3)以月生产计划为以及,制定产品设计(结构、工艺)及产品组装月计划。
(4)将产品的组装计划传达到各科,将组装月计划分解为周计划,下达给车间
技术科的任务是:
(1)根据生产科转来的组装计划进行产品结构设计,产生产品装配图给生产科,产生外购需求计划给供应科,并产生产品自制物料清单。
(2)根据组装计划进行产品工艺设计,根据产品自制物料清单产生工艺流程图给零件厂。试写出以上系统中生产科和技术科处理的软件结构图。
解:
画出生产科图的给6分,画出技术科的给4分。
[解析]软件结构图是软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制层次体系,软件结构往往用树状或网状结构的图形来表示,其主要内容有模块及模块的控制关系,根据题意,可绘制出生产科和技术科的软件结构图,其中生产科的结构图深度和宽度均为4,技术科的结构图的深度和宽度均为3。