软件工程考试重点内容.doc_第1页
软件工程考试重点内容.doc_第2页
软件工程考试重点内容.doc_第3页
软件工程考试重点内容.doc_第4页
软件工程考试重点内容.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、基础知识点:1软件工程的基本原理。(p7)软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。软件工程的基本原理有7条:(1)用分阶段的生命周期计划严格管理(2)坚持进行阶段评审(3)实行严格的产品控制(4)采用现代程序设计技术(5)结果应能清楚地审查(6)开发小组的人员应该少而精(7)承认不断改进软件工程实践的必要性2软件生命周期包括几个时期,各时期的主要任务及阶段划分。(p11)软件定义时期:确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资料和成本,并且制定工程进度表;又划分成三个阶段,即问题定义、可行性研究和需求分析。软件开发时期:具体设计和实现在前一个时期定义的软件,由四个阶段组成:总体设计、详细设计、编码和单元测试、综合测试(或由三个阶段组成:软件设计、编码、软件测试) 软件维护时期:主要任务是使软件持久地满足用户的需要。通常对维护时期不再进一步划分阶段。3需求分析的任务。(p56)答:(1)确定对系统的综合要求.主要包括:1)功能需求2)性能需求3)可靠性和可用性需求4)出错处理需求5)接口需求6)约束7)逆向需求8)将来可能提出的要求(2)分析系统的数据要求(3)导出系统的逻辑模型(4)修正系统开发计划4改进软件设计的启发式规则(p100)(1)改进软件结构提高模块独立性(2)模块规模应该适中(3)深度、宽度、扇出和扇入都应适当;(4)模块的作用域应该在控制域之内。(5)力争降低模块接口的复杂程序(6)设计单入口单出口的模块(7)模块功能应该可以预测5软件维护的类型(p189-190)(1)改正性维护诊断和改正错误的过程称为改正性维护。(2)适应性维护为使软件系统适应不断变化的运行环境而修改软件的过程。 (3)完善性维护在软件的使用过程中,用户往往提出增加新性能或修改已有功能等要求。为了满足这些要求需要进行完善性维护。 (4)预防性维护 为提高软件未来的可维护性、可靠性等,为以后进一步改进软件打下良好基础而修改软件的过程。6决定软件可维护性的主要因素。(p194)软件可维护性是指维护人员理解、改正、改动或改进这个软件的难易程度。决定软件可维护性的因素主要有下述5个: (1)可理解性(2)可测试性(3)可修改性(4)可移植性(5)可重用性7面向对象设计的准则和启发式规则。(p260-p261)设计准则: (1)模块化 (2)抽象(3)信息隐蔽 (4)弱耦合(5)强内聚 (6)可重用。启发规则: (1)设计结果应该清晰易懂(2)一般-特殊结构的深度应适当(3)设计简单的类(4)使用简单的协议(5)使用简单的服务(6)把设计变动减至最小二、关键知识点:1软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及相关文档的集合。(p4)2软件工程方法学包括3个要素:方法、工具和过程。(p9)目前使用最广泛的软件工程方法学,分别是传统方法学和面向对象方法学。3 传统软件工程方法学的软件过程,基本上可以用瀑布模型来描述。(p15)3数据流图和数据字典共同构成系统的逻辑模型。只有数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明。(p47)4E-R图主要包括三个元素,即实体、联系和属性。(p64)5总体设计又称为概要设计或初步设计,其主要任务是建立软件的总体结构。(p92)6模块的独立性是软件模块化设计的关键之一,一般用内聚和耦合两个定性标准来度量模块的独立性。(p97)7测试过程包括5个步骤,即 模块测试、子系统测试、系统测试、验收测试、平行运行。(p151) 8用面向对象方法开发软件,需要建立3种模型:对象模型、动态模型、功能模型。在任何情况下,对象模型始终是最重要,最基本、最核心的。(p216)9类与类之间通常有关联、泛化(继承)、依赖和细化等4种关系。(p218)10各个类的状态图通过共享事件合并起来,构成了系统的动态模型。(p224)11大型系统的对象模型通常由5个层次组成:主题层、类与对象层、结构层、属性层和服务层。(p232)12软件重用可分为3个层次:知识重用、方法和标准的重用和软件成分的重用。(p263)13在制订和管理进度时,应该同时使用Gantt图和工程网络这两种工具,使它们互相补充取长补短。(p319)14软件项目组的组织方式中比较典型的有: 民主制程序员组、主程序员组和现代程序员组。(p320)15CMM把软件过程从无序到有序的进化过程分成5个等级从低到高:初始级,可重复级,已定义级,已管理级,优化级。(P332)三、章节综合知识1软件的特点(p3)。 (1).软件是无形的,缺乏 “可见性” (2).软件不存在磨损和消耗 (3).软件开发成本高 (4).没有明显的制作过程2软件生命周期模型(p32)(1) 瀑布模型 (2) 快速原型模型 (3) 增量模型 (4) 螺旋模型 (5)喷泉模型 (6)RUP过程模型(7) 敏捷过程模型 (8)微软过程模型3可行性研究(p36)(1).技术可行性 (2)经济可行性 (3).操作可行性 (1).法律可行性研究开发所需要的成本和资源是属于可行性研究中的经济可行性研究的一方面4编码时应该遵循的规则中,不正确的是(p147-149) (1).所有的输入数据都进行检验 (2).程序应包括适当的注释 (3).程序代码应效率第一,清晰第二(4).源程序的效率由算法的效率决定,但写程序之前应先简化算术的和逻辑的表达式5可以提高软件测试效率的是(p175) (1).随意选取测试的数据 (2). 选取边界数据作为测试用例(3).制定测试计划 (4).取尽可能多的数据进行测试四、活学活用1设计一个程序,要求具有如下功能:输入一组数A(N),在这组数中找出最小数。请画出其求解过程的N-S图和PAD图N-S图如下:input A(n) min=A(1)i=2do while i A(i) Fmin= A(i)i=i+1PAD图如下: min A(i) min= A(i)do while i3(2)按边界值分析法设计测试用例。(p175)边界值法: 0,1,3,4,4 图1是用UML语言描述的对象类,它示范了一个employee对象的模式,图2 是一个泛化继承关系的类图图1 An employee object 图 2 A generalisation hierarchy.回答下列问题: (1)在Employee类中有多少个属性和操作?还能够增加更多的属性吗?答:属性:(attribute) 有10个 操作:(operation) 有4个 Employee类中还可以增加其他的属性,如性别(sex),家庭住址(address)等。(2) 在UML图中,泛化关系是用什么表示的?如果实现的?答:在UML中泛化是用一个指向父类的箭头表示。是通过继承来实现的(3) 列出Manager类的所有子类在图2中Manager类的所有子类有:Project Manager类 Dept Manager类Strategic Manager类(4) 通过Project Manager类可直接或间接访问多少个成员属性答:通过class Project Manager类可以直接或间接访问的属性有13个(5) 如果一个成员jobDuty将被增加到Manager类中,同时一个操作doJob被增加到Project Manager类中, 请重新画出UML示图2答:EmployeeProgrammerprojectprogLanguagesDept ManagerdeptStrategicManagerresponsibilitiesProjectManagerprojectsdoJobManagerbudgetsControlleddateAppointedjobDuty5图书借阅系统包括三种用户:读者、图书管理员和系统管理员。对系统,读者可查询自己的借阅情况、查询图书和在规定期限内续借以及找图书管理员进行借书和还书;对图书管理员,主要对图书进行借书、还书和续借操作,以及管理图书信息和维护读者的信息;而系统管理员,主要是对系统的日志进行维护、用户维护和后台数据库的维护等操作。请根据上述描述画出系统的用例图。五、综合能力考查 假设自己被指派作为一个大型软件产品公司的项目负责人,工作负责公司已被广泛应用的文字处理软件的新版本开发及管理。由于市场竞争激烈,公司规定了严格的完成期限,结合你所学习的软件工程的原理、方法和技术阐述你该如何开展工作。(从计划、软件过程、项目组织、进度计划及质量管理、产品维护等方面考虑)作为一个大型软件产品公司的项目负责人,我认为软件项目始于项目计划,而第一项计划活动就是估算,要预测软件规模、估算完成该项目所需的工作量。在完成开发任务时,必须进行一些开发活动,即软件过程。根据所承担项目的特点来划分阶段,明确需求分析。对这个项目的一个重要要求是公司规定了严格的完成期限,因此,选择生命周期模型应该着重考虑哪种模型有助于加快产品开发的进度。使用增量模型开发软件时,可以并行完成开发工作,因此能够加快开发进度。这个项目是开发该公司已被广泛使用的字处理软件的新版本,从上述事实可以得出三点结论:第一,旧版本相当于一个原型,通过搜集用户对旧版本的反应,较容易确定对新版本的需求,没必要再专门建立一个原型系统来分析用户的需求。第二,该公司的软件工程师对字处理软件很熟悉,有开发的丰富经验,具有采用增量模型开发新版字处理软件所需要的技术水平。第三,该软件受到广大用户的喜爱,今后很可能还要开发更新的版本。因此,应该把该软件的体系结构设计成开放式的,以便于今后的改进和补充。在项目组织方面,该项目软件的规模很大,单个开发人员无法在规定期限完成开发工作,因此应选择现代程序员项目组结构,因为小组成员都能对发现程序错误持积极主动的态度,能更好的适应竞争。高素质的开发人员和合理的项目组组织结构是软件项目取得成功的关键。同时,在进度计划方面,可联合使用Gantt图和工程网络来制定进度计划并监督项目进展情况。首先制定一个宏观的进度安排表,表示出主要的软件工程活动和其影响到的产品功能,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论