首页计算机计算机软件软件工程 15 软件工程复习提纲参考答案.docx

15 软件工程复习提纲参考答案.docx

页数:8页文件大小:34.1 KB来源: 软件工程ppt课件

本课件按复习提纲顺序给出参考答案,覆盖软件工程定义与目的、软件生命周期各时期任务、需求分析过程、继承与主动类、黑盒白盒测试,以及测试组织与项目管理实例,便于考前逐条自查。

复习提纲:软件工程定义与目的,列出1)对于软件开发的成、2)开发、3)开发、4)软件通常没有适当等要点
软件设计时期与编码测试时期任务,列出有快速建立系统原型系、那些不能预先确切定义、那些项目组成成员不能、开发方案选择性研究等要点
需求分析的定义与主要任务,列出1)问题明确定义、2)导出软件、3)编写文档、4)不完备性和不一致等要点
查看本课件的文字版(共 8 页,供检索与复制)

第1页:复习提纲:软件工程定义与目的

复习提纲:软件工程定义与目的

  1. 1)对于软件开发的成本和进度的估计很不准确。(
  2. 2)开发的软件产品不能完全满足用户要求,用户对已完成的软件系统不满意的现象常常发生。(
  3. 3)开发的软件可靠性差。(
  4. 4)软件通常没有适当的文档。(
  5. 5)软件的可维护性差。(
  6. 6)软件开发生产率提高的速度,无远远跟不上计算机应用普及深入的趋势。原因:(1)软件的规模愈发庞大;(2)软件开发的管理困难。(3)软件本身的独有特点确实给开发和维护造成一些客观困难。(4)软件开发和维护中千金错误认识和方法的形成可以归结与计算机发展早期软件开发的个体化特点。(5)软件开发技术落后。(6)生产方式落后。(
  7. 7)开发工具落后,生产率提高缓慢。3.要开发XX系统,能否通过充分的调查做到完全了解用户需求,写出正确的,非常符合用户的需求分析报告,并且在以后的软件开发过程中没有需求改变的事情发生?答:不能。因为用户可能在开始时提出一些功能需求,每当对系统有一定的理解后又会提出一些需求,以后随着理解的深入而不断提出新的需求,用户需求变动是一个极为普遍的问题,即使是部分变动,也往往会影响需求分析的全部,导致不一致性和不完备性。4.说明软件开发的生命周期模型,软件开发的几个生命周期,每个周期里的主要任务是什么?答:软件开发的生命周期模型是描述软件开发过程中各种活动如何执行的模型。软件开发的生命周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期,具体分为以下四个时期:(1)软件分析时期;任务:确定软件项目的目标,软件应具备的功能和性能,构造软件的逻辑模型,并制定验收标准。在此期间,要进行可行性论证,并做出成本估计和经费预算,制定进度安排。进行可行性研究和项目开发计划,需求分析。

第2页:软件设计时期与编码测试时期任务

软件设计时期与编码测试时期任务

  1. 1.有快速建立系统原型系统的软件工具与环境。
  2. 2.那些不能预先确切定义需求的软件开发。
  3. 3.那些项目组成成员不能很好协同配合、交流或通信上存在困难的情况。7.可行性研究的任务是什么?主要是解决哪几个方面的问题?答:可行性研究的任务是对问题的定义,要初步确定问题的规模和目标,问题定义后,要导出系统的逻辑模型。然后从系统的逻辑模型出发,选择若干供选择的主要系统方案。主要解决的4个方面的问题:1.技术可行性研究;2.经济可行性研究;3.法律可行性研究;
  4. 4.开发方案选择性研究。8.需求分析的目的是什么?由那些部分组成,主要任务是什么?你认为做好需求分析需要具备那些素质?答:需求分析的目的是开发人员要进行细致的调查分析,准确理解用户的要求,

第3页:需求分析的定义与主要任务

需求分析的定义与主要任务

  1. 1)问题明确定义;(
  2. 2)导出软件的逻辑模型;(
  3. 3)编写文档;需要具备素质:性格开朗,善于与人交流,具有团队精神,做事耐心细致,负责,善于分析,拥有良好的大局观,具有较强的理解能力,能够将各方面的需求系统组合在一起,具有较强编写文档的能力,能够协调好开发人员和用户之间的各种需求矛盾。9.为什么需求分析很难做准确?说出你的理由。答:(1)需求易变性。用户在开始时提出一些功能需求,当对系统有一定的理解后,会提出一些需求。以后随着理解的深入而不断提出新的需求。用户需求的变动是一个极为普遍的问题,即使是部分变动,也往往会影响到需求分析的全部,导致不一对待性和不完备性。(2)问题的复杂性;(3)交流障碍。进行需求分析的人员具备不同的背景知识,处于不同的角度,扮演不同的角色,造成了相互之间交流的困难。(
  4. 4)不完备性和不一致性。用户各类人员对于系统的要求所处的角度不一样,对问题的陈述往往是不完备的,其各方面的需求还可能存在着矛盾。10.请举例说明什么是数据字典?数据字典在软件工程开发中的作用是什么?答:数据字典是关于数据的信息的集合,是对数据流图中包含的所有元素的定义的集合。它是数据条目,数据存储条目、数据项条目和基本加工条目的汇集。例子:数据流名称:订单别名:无简述:旅客订票写的项目来源:旅客去向:加工1“验订单”数据流量:2000份/每周组成:编号+订票日期+旅客编号+地址+电话+银行帐号+预定日期+目的地+数量其中数据流量指单位时间内的传输次数。作用:用来定义数据流图中的各个成分的具体含义的,它以一种正确的,无二义的说明方式为系统分析,设计及运行维护提供了有关元素的一致定义和详细的描述。它和数据流图共同构成系统的逻辑模型,是需求说明书的主要组成部分。11.有一个XX系统。系统叙述……请完成满足需要的数据库设计。以及画出数据流程图。12.有图所示的一个数据流程图。请画出相应的功能模块图。13.有一个非结构化的程序。图示……请修改为结构化的程序。并画出相应的程序流程图。答:第六章P466

第4页:二元组比较方法的等价类

二元组比较方法的等价类

本页以图示为主,源图为课件中的模型图或示意图,图中文字标注如下。

14.有比较两个二元组的方法如下:二元组的集合是:E={(a,b)|0≤a,b≤9且a,b都是整数}。其中单个数的大小如下:1≤2≤3≤4≤5≤6≤7≤8≤9≤0。对于一个二元组A∈E,定义1:如果a=b,则称A成对。定义2:r=(a+b)%10,称为A的点数。定义3:如果a>b,temp=a,否则temp=b。temp称为A的大数,记为MA。对于A(a,b),B(c,d)∈E,比较它们大小的规则如下:1.如果A和B都成对,则比较a,c。如果a<c,则A<B。如果c<a,则B<A。如果a=c,则A=B。2.成对的都比不成对的大。3.如果都不成对,则比较点数。如果点数不同,则点数大的那个二元组大。零点最小。4.如果都不成对,且点数相同。如果点数都是零。则A=B。如果点数不为零。则比较A和B的大数。如果MA<MB,则A<B。如果MB<MA,则B<A。如果MA=MB,则A=B。请回答下列问题:1.画出流程图。2.用C语言写出一个比较二元组的函数。如果前一个二元组大于后一个二元组,则返回1,如果相等则返回3,否则返回2。函数接口如下:intcompare(inta,intb,intc,intd){}3.根据书上的各种黑盒和白盒的测试方法写出你的测试数据。并且写出期望结果。15.有一个程序,描述……。用C语言写出该函数的详细设计代码。16.请介绍一下发现对象的原则以及一些方法,并将这些方法与结构化程序开发中所使用的相应工具进行比较。比较一下结构化方法和面向对象方法在需求阶段的相同和不同点。答:发现对象的原则为正确地运用抽象原则,先要舍弃与系统责任无关的事物,保留与系统责任有关的事物。其次,要舍弃与系统责任有关的事物中与系统责任无关的特征。考虑将问题域中的事物映射为什么对象以及如何对这些对象进行分类的问题,清晰而简练的表达问题域并使系统开销少。方法:见课本P213的图9—4结构化程序开发使用的工具为数据流图,数据字典比较一下结构化方法和面向对象方法在需求阶段的相同和不同点:结构化分析=数据流图+数据处理+数据存储+端点+处理说明+数据字典结构化分析方法是一种从问题空间到某种表示的映射方法,由数据流图表示,面向过程,自顶而下,结构清晰的系统结构面向对象=类和对象+结构与连接+继承+封装+消息通信OOA的对象是对问题域中事物的完整映射,包括事物的数据特征和行为特征。17.试举例说明继承和多继承的概念。

第5页:继承的概念与举例

继承的概念与举例

答:继承:特殊类的对象拥有其一般类的全部属性与服务,就是称作特殊类对一般类的继承。例如:有了树这个一般类,那么在考虑苹果树这个类时发现,苹果树是树,它作为树这个类的特殊类,继承了树这个类的属性和服务。多继承:一个类可以是多个一般类的特殊类,它从多个一般类中继承了属性和服务,这种继承模式就叫多继承。例如:有了轮船和客运工具两个一般类,在考虑客轮这个类时就可发现,客轮既是一种轮船,又是一种客运工具。所以客轮同时作为轮船和客运工具这两个类的特殊类,它同时继承了轮船和客运工具这两个类的属性和服务。18.请举例说明多态性的概念。答:多态性:对象的多态性是指在一般类中定义的属性或服务被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。例如:在一般类“几何图形”中定义了一个服务“绘图”,但并不确定执行时到底画了一个什么图形。特殊类“椭圆”和“多边形”都继承了几何图形类的绘图服务,但其功能却不同:一个椭圆,一个是画出一个多边形。在多边形类更下层的一般类“矩形”中绘图服务又可以画出一个矩形。这样,当系统的其余部分请求画出任何一种几何图形时,消息中给出的服务名同样都是“绘图”,而椭圆、多边形、矩形等类的对象接受到这个消息时却各自执行不同的绘图算法。19.有人说:软件项目估算是一门艺术,而非一门科学。你如何理解这句话?答:软件项目估算是有效的软件项目管理必不可少的,由于软件开发的特殊性,开发成本的估算不是一件简单的事,往往不到最后时刻,是很难得到准确的科学估算。常常会遇到以下的一些问题:软件项目人员在对经理、客户、销售人员所建议的预算及进度的现实性提出疑问时缺乏确凿的证据,其次就是系统分析员在系统分析阶段进行实际的软硬件权衡分析时没有可靠的依据,再次就是项目经理在确定各个阶段及活动需要的时间和工作量时没有可靠的依据。因此,软件项目估算在软件开发过程所具有的不确定性,表现出软件项目估算永远不会是一门精确的科学,估算是一门艺术。20.什么是类?什么是对象?举例说明类之间的关系有哪些?答:类:类是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。类之间的关系有四种:继承(比如树与苹果树的关系),关联(人和猫的关系),聚合(黑豹乐队和窦威的关系),组合(pc机和显示器的关系)。21.对于分析阶段出现类之间的实例连接关系,在OOD阶段该如何处理?答:(根据可靠消息,此题内容没有列入考试范围,有兴趣的同学可以作为了解。)23.什么叫整体-部分关系?什么叫一般-特殊关系?图示说明。答:整体-部分结构是把一组具有整体-部分关系的类组织在一起的结构。图示说明见课本P241一般-特殊关系是由一组具有一般-特殊关系的类所组成的结构。图示说明见课本P24825.请举例说明三条评价人机界面的设计准则

第6页:界面设计准则与主动类

界面设计准则与主动类

  1. 1.一致性;
  2. 2.使用简便;
  3. 3.启发性;
  4. 4.减少重复的输入;
  5. 5.减少人脑记忆的负担;
  6. 6.容错性;
  7. 7.及时反馈。26.请举例解释一下主动类的概念。并且在OOD中,是如何实现主动类的?答:根据可靠消息,此题内容没有列入考试范围,有兴趣的同学可以作为了解27..软件质量度量存在哪些质量标准?试说明评价软件质量的五个标准。答:功能性;可靠性;可用性;可维护性;可移植性。28.如果你是软件开发的项目经理,请举出你可以从哪些方面去保证软件质量?至少举出四个方面。答:1.通过适当的监控系统及其开发过程来保证软件质量;2.确保软件及其标准与以定的标准和规格要求完全一致;3.确保能及时发现产品、过程和标准的任何不足并提醒管理者注意,以便及时弥补。4确保项目组制定的计划、标准和规格适合项目组需要,同时满足评审和审计需要。29.什么是主机-仿真终端体系结构?什么是文件共享结构?什么是客户-服务器4结构?答:主机—仿真终端体系结构:以一台计算机为主机,其他计算机只作为它的远程仿真终端。文件共享结构:系统功能分布到网络的各个节点上,数据存放在一个被称作文件服务器的主机上。客户—服务器:把分布在不同节点上的系统组成部分之间的关系处理为请求服务和提供服务的关系,提供服务的计算机称作服务器,请求服务的计算机称作客户机。在这种体系结构中,客户端向服务器发出服务请求,由服务器提供的服务就地完成所要求的处理,然后只把处理结果通知请求者。30.请比较一下通常情况下,B/S模式和C/S模式的优缺点。答:B/S模式:浏览器和服务器结构优点:1。B/S架构软件,维护和开发方式简单。2.成本较低,选择更多;缺点:应用服务器运行负荷较重C/S模式:客户机和服务器结构优点:运行效率高,开放性强,可扩充性好,应用服务器运行负荷较轻。缺点:高昂的维护成本而且投资大31.对象设计必须遵循的步骤。答:1.组合三钟模型以获取类上的操作;2.实现操作的设计算法;3.优化数据的访问路径;4.实现外部交互式的控制;5.调整类结构提高继承性;6.设计关联;7.确定对象表示;
  8. 8.把类和关联封装成模块。32.白盒测试的原理是什么?黑盒测试呢?熟悉白盒测试与黑盒测试的具体实例。答:白盒测试:把测试对象看作一个透明的盒子,测试人员能了解程序的内容结构和处理过程,以检查处理过程为目的,对程序中尽可能多的逻辑路径进行测试,在所有的点检验内部控制结构和数据结构是否和预期相同。

第7页:黑盒测试的概念

黑盒测试的概念

  1. 1.对程序模块的所有独立的执行路径至少测试一遍;
  2. 2.对所有的逻辑判定,取真与取假的两种情况都能至少测一遍;
  3. 3.在循环的边界和运行的界限内执行循环体;
  4. 4.测试内部数据结构的有效性。黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的,注重于测试软件的功能需求,主要试图发现下列几类错误:功能不正确或遗漏,界面错误,数据库访问错误,性能错误,初始话和终止错误等。34.从目的、任务、测试用例的设计思路等方面比较单元测试和集成测试的区别。答:单元测试:又称模块测试,是针对软件设计的最小单位—程序模块,进行正确性检验的测试工作。其目的在于发现各模块内部可能存在的各种差错。单元测试主要针对模块的5个基本特征进行测试:1.模块接口;2.局部数据结构;3.重要的执行路径;4.错误处理;6.边界条件。测试方法:需要为被测模块设计驱动模块和桩模块。集成测试:集成测试是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统而进行的测试,故也称组装测试和联合测试。集成测试方法:主要有自底向上测试和自顶向下测试。35.软件维护分为哪些类别?各自有什么特点?答:1.非结构化维护:其过程大致为阅读源代码—定位错误—重编程序—回归测试结构化维护:其过程为—评价设计—计划途径—修改设计—重编程序—回归测试。36.在软件开发过程中,请举例三个例子说明影响软件维护的因素。37,请问一个合理的软件维护流程应该是怎么样的?答:(1)制定维护申请报告;2审查申请报告并批准。3进行维护并做详细。4复审。38.如果你要应聘测试经理的职位,你觉得测试经理需要安排技术方面的哪些工作?答:安排的测试方法可以考虑:1.在软件产品交付使用之前要经过单元测试、集成测试、确认测试和系统测试。2.静态测试采用人工检测和计算机辅助静态分析的手段对程序进行检测,方法如下:人工测试,计算机辅助静态分析。3.动态测试黑盒测试和白盒测试。另外对测试工作总体负责,其主要职责如下:1.参与项目开发各个阶段的评审工作,以使提早发现问题;2.根据部门命令及项目需要安排编写测试相关文档并就某些特定文档提出评审;3.组织各级测试工作人员对测试工作进行准备;4.

第8页:测试组织与项目管理举例

测试组织与项目管理举例

  1. 1.与现在在职的人员协商,确定人员流动的原因
  2. 2.在项目开始之前,把缓解这些原因的工作列入以拟定的计划中
  3. 3.当项目启动时,做好人员流动会出现的准备。采取一些办法以确保人员一旦离开时项目仍能继续。
  4. 4.建立项目组,以使大家都了解有关开发活动的信息
  5. 5.制定文档标准,并建立一种机制以保证文档能够及时产生
  6. 6.对所有工作组织细致的评审
  7. 7.对每一个关键性的技术人员,要培养后备人员。
顶部目录