期末总复习题(软件工程).doc

上传人:丁** 文档编号:1707603 上传时间:2019-11-03 格式:DOC 页数:22 大小:730KB
返回 下载 相关 举报
期末总复习题(软件工程).doc_第1页
第1页 / 共22页
期末总复习题(软件工程).doc_第2页
第2页 / 共22页
期末总复习题(软件工程).doc_第3页
第3页 / 共22页
点击查看更多>>
资源描述
期末总复习题 2009-06-10【一】判断题(在括号中回答Y或N)1. 软件工程的作用,主要是告诉你怎么写文档。( N )2. 参加ACM程序设计比赛时,选手“只写代码行不写注解行”这一事实,确实说明了注解行不重要,在源程序中可有可无。( N )3. 在软件项目开发的后期,为了加快开发进度,可以多增加几个开发人员。(N)4. 在软件项目开发的早期,为了加快开发进度,可以多增加几个开发人员。(Y)5规范化的概要设计文档比需求分析文档更重要,因为有了概要设计文档就可以进行详细设计。( N )6. 规范的详细设计文档比源程序更重要,因为有了文档就可以写出源程序。(Y)7. 模块间的耦合越强,则表明模块里面的内聚性越强。(N)8. 模块的内聚越强,则表明模块之间的耦合越弱。(Y)9. CMM是CMMI的祖先,CMMI是CMM的后续。(Y)10. ISO9000是ISO9001的祖先,ISO9001是ISO9000的后续。(Y)11. 软件配置管理就等于软件版本管理。(N)12. 软件版本管理是软件配置管理的研究课题。(Y)13. 敏捷开发模型就等于结对编程。(N)14. 敏捷开发模型就是快速原型法。(N)15. 面向元数据的开发方法就是传统意义下的Jackson方法。(N)16. 面向过程的开发方法就是结构化方法。(Y)17. 数据流图DFD就等于PAD图。(N)18. 数据流图DFD就等于程序设计流程图。(N)19. “接口和实现分离”是软件设计原理之一。(Y)20. “单入口和单出口”是程序设计原则之一。(Y)21. 程序测试不仅能证明错误的存在,也能证明错误的不存在。(N)22. 编译系统不认识、也不编译源程序中的注解行这一事实,确实说明了注解行不重要,在源程序中可有可无。(N)23. 若两个实体之间存在多对多的关系,则应该将第三个实体插入其中,使原来的一个多对多关系变为现在的两个一对多关系,这里的第三个实体,实际上是一个复杂的关系,也是笛卡尔积的子集。(Y)24. 质量来源于过程,过程需要改进,改进是无止境的,这就是CMMI精神。(Y)25. 测试只能发现程序中的错误,不能发现文档中的问题。(N)26. 敏捷模型是轻载模型,CMMI模型是重载模型。(Y)27. 高内聚低耦合是软件设计原理或原则之一。(Y)28软件测试的目的是改正软件中的错误。(N) 应该是发现软件中的错误29同行评审会议中的同行专家,一般都是从公司外面聘请的。(N)30软件策划应该在需求分析之前。(N)31需求分析就是分析元数据与中间数据的关系。 (N) 太片面32信息系统需求分析主要是分析元数据与中间数据的关系。 (Y)33项目经理的主要职责就是进行数据库设计。 (N) 34编码阶段结束后,测试经理就应该立即着手编写测试计划。(N)35软件设计就是数据库设计。 (N)40软件实现就是编程序。 (N) 41软件实现主要是编程序。 (Y)42. CMMI就是解决项目管理的工作规范化问题。(N)43. 制定软件测试计划,一项重要工作是要将用户需求分解为测试需求,然后再将测试需求转化为测试用例。(Y)44. 软件测试与软件调试是一回事。(N)45渐增式测试是逐个把未经过测试的模块组装到已经过测试的模块上去,进行集成测试。每加入一个新模块进行一次集成测试,重复此过程直至程序组装完毕。(Y)45面向对象设计是运用类的思想,把分析阶段得到的需求转变成符合成本和质量要求的、抽象的系统实现方案的过程。或者说,面向对象设计就是用面向对象观点建立求解域模型的过程。(Y) 46结构化设计(SD)是面向数据流的设计,它是以需求分析阶段产生的数据流图DFD为基础,按一定的步骤映射成为系统的软件结构。(Y)47信息隐蔽是指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这些信息的其它模块来说,是不能访问的。(Y)48抽象是认识复杂现象过程中使用的思维工具,即抽出事物本质的共同的特征而暂不考虑它的细节,不考虑其它非本质的因素。(Y)49路径覆盖是指设计足够的测试用例,覆盖被测程序中所有可能的路径。(Y)50判定/条件覆盖是指设计足够的测试用例,使得判定表达式中的每个条件的所有可能取值至少出现一次,并使每个判定表达式所有可能的结果也至少出现一次。(Y)51条件组合覆盖是指设计足够的测试用例,使的每个判定表达式中条件的各种可能的值的组合都至多出现一次,条件组合覆盖是比较强的覆盖标准。(Y)52条件覆盖是指设计足够的测试用例,使得判定表达式中每个条件的各种可能的值至多出现一次。满足条件覆盖并不一定满足判定覆盖。(Y)53软件工程是为了克服软件危机。(Y)54软件工程是完全克服了软件危机。(N) 太绝对【二】名词解释1元数据元数据是关于数据的数据,组织数据的数据。如数据库概念设计中的实体名和属性名,数据库物理设计中的表名和字段名等都是元数据。2. 软件工作产品(注:软件工作产品和15.软件产品的异同软件产品是最后一个阶段的软件工作产品。)软件工作产品是指开发过程中每个阶段的文档、数据和程序,即每个开发阶段的输出制品。3评审与审计评审是对软件工作产品而言的,它针对软件工作产品的开会(评审)或汇签(评审)活动,是一次集体行为。审计是复查软件活动的程序是否遵守规则,是否合法。它本身是审计员的一次个人行为。4. 不符合项不符合项是指没有满足要求的项。5. 黑盒测试黑盒测试又称功能测试。在这里,盒子指的是被测试的软件,“黑盒”就是只知道被测试软件的外部情况,主要是界面和接口,被测试软件的内部逻辑结构和数据结构,对测试人员来说是不可见的,主要关注被测试软件的功能实现。6. 白盒测试白盒测试就是对程序执行路径的测试,又叫做玻璃盒测试(Glass Box Testing)、透明盒测试(Clear Box Testing)、结构化测试(Structured Testing)、开放盒测试(Open Box Testing)、基于代码的测试(Code-Based Testing)等等。7. 项目 P.326项目是一次性的多任务工作,它具有确定的开始日期、结束日期、工作范围、经费预算、质量标准,以及特定的功能、性能和接口要求。8. 项目管理 P.326项目管理是为了实现项目目标,运用相关的知识、技能、方法与工具,对项目的计划、进度、质量、成本、资源进行管理和控制的活动。或 ( 项目管理是指“在软件项目管理活动中,运用专门的知识、技能、工具和方法,使项目能够如期或提前实现。” )9. 客户化客户化是指按照客户的实际情况,对软件产品的功能、性能、接口做适当的改动。10. 初始化初始化是指按照客户的实际情况,对软件产品的代码表(又称数据字典)进行初始化,即将客户的各种信息编码录入到相应的代码表中。11.CMM与CMMICMM是指“能力成熟度模型”,是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。(即评估软件能力与成熟度等级的一套标准)CMMI 的全称为:Capability Maturity Model Integration,即能力成熟度模型集成。CMMI是CMM模型的最新版本。(CMMI是CMM的继承与发展,CMM只适用于软件企业,CMMI适合于所有的IT企业)12. KPA与PA关键过程域(KPA,Key Process Area ),它指出了企业需要集中力量改进的软件过程。同时,也指明了为了要达到该能力成熟度等级所需要解决的具体问题。项目管理员(PA,Project Administrator)。13. 敏捷模型或敏捷方法敏捷方法是在保证软件开发有成功产出的前提下,尽量减少开发过程中的活动和制品的方法。其特点是对软件生产率的高度重视,主要适用于需求模糊或快速变化下的、小型项目组的开发。14软件软件的定义:软件 = 程序 + 数据 + 文档。现在有一种新提法正在引起关注,这种提法是:软件 = 知识 + 程序 + 数据 + 文档。15. 软件产品软件产品是指不局限于特定业务领域、能被广大用户直接使用的软件系统(或 软件产品是指软件开发与测试工作已经完工、并且可投入市场销售的软件产品),如操作系统、编译系统、工具系统、通用财务系统等。16可行性分析与软件立项 (P.63)可行性分析是世界上普遍采用的一种研究工程项目是否可行的科学。它通过各种有效的方法,对工程项目进行分析,从技术、经济、财务等方面加以评价,最终给投资决策者提供是否选择该项目进行投资的依据。可行性分析是立项的前提,立项是可行性分析的结果。对于软件企业,一般不叫项目可行性分析而叫立项,只有在学校、机关、科研所等单位,才叫项目可行性分析。17. 软件生存周期软件生存周期是指软件的使用寿命,即生产周期加上使用周期。18. CASE工具CASE(Computer Aided(or Assisted)Software Engineering计算机辅助软件工程。CASE是能够提供一组能够自动覆盖软件开发生命周期各个阶段的集成的、减少劳动力的,并可以加快开发速度,提高应用软件生产率并保证应用软件的可靠品质的工具。19. 集成测试集成测试是指检测此前测试过的单个模块或组件,是否能完好地融入系统,与其他模块或组件正确地一起运行。20. 结构化维护 P.257软件产品或软件项目有完善的文档,并且文档与程序代码互相匹配,两者完全一致。对这种软件产品或软件项目的维护称为结构化维护。21. SQA P.308软件质量保证(SQA,Software Quality Assurance)是一套有计划、有系统的用于向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用的方法。22. 客户与用户客户是软件企业合同的签约方,是软件产品的销售对象。客户是顾客的一部分。用户是软件产品的最终使用者,用户是客户的一部分。23. 软件质量所谓软件质量,就是供方提供的软件产品满足用户明确和隐含需求的能力特性的总和。24. 软件测试V模型 P.222软件测试V模型是由开发阶段和测试阶段构成的最典型的测试模型。开发阶段先从定义软件需求开始,然后要把这些需求不断地转换到概要设计和详细设计中去,最后形成程序代码;测试阶段是在代码编写完成以后,先做单元测试开始,然后是集成测试、系统测试和验收测试。25顾客、客户和用户顾客的范围比“客户”的范围更广泛一些,它包括潜在的客户。客户是软件企业合同的签约方,是软件产品的销售对象。客户是顾客的一部分。用户是软件产品的最终使用者,用户是客户的一部分。26软件配置项软件配置管理中的基本单元,称为软件配置项。27软件功能、性能和接口软件功能指的是软件的作用,即使用软件所能达到的目的;软件性能指的是完成软件功能的效率;软件接口指的是软件不同部分之间的交互接口。通常就是所谓的API应用程序编程接口,其表现形式是源代码。28软件过程所谓软件过程,就是根据选定的生存周期模型,规定软件的开发阶段,及每一阶段的工作步骤和文档标准等内容。29软件里程碑和基线 P.67里程碑是一个标记,之需要经过内部评审。一个里程碑是一个检查点,但不一定是基线。基线是软件工作产品,它是经内部和外部评审过的,并且是下一阶段工作的基础。一根基线是一个里程碑或一个检查点。30信息系统利用计算机网络技术、数字通信技术与数据库技术实现信息采集和处理的系统,称为当代信息系统。31集成测试集成测试是指检测此前测试过的单个模块或组件,是否能完好地融入系统,与其他模块或组件正确地一起运行。32BugBug是指电脑系统的硬件、系统软件(如操作系统)或应用软件(如文字处理软件)出现的错误、漏洞。33. ER图E-R图也即实体-联系图(Entity Relationship Diagram),提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。34. 概念数据模型概念数据模型(CDM)也称信息模型,它以实体联系(Entity-RelationShip,简称E-R)理论为基础,并对这一理论进行了扩充。它从用户的观点出发对信息进行建模,主要用于数据库的概念级设计。概念数据模型CDM,就是数据库的逻辑设计,即E-R图。35. 物理数据模型物理数据模型(PDM)就是数据库的物理设计,即物理表。36原型模型以某个软件原型为参照模型的开发方法,叫做原型法。37UMLUML是一种面向对象的图形化的建模语言,主要用于软件的分析与设计38RUP统一软件开发过程(RUP,Rational Unified Process)又称为统一软件过程,是一个面向对象且基于网络的程序开发方法论。【三】简答题1. 软件工程中的理论、方法、标准、规范,主要来自于哪里?即:软件工程的源头或基础是什么?【答】软件工程中的理论、方法、标准、规范,主要来自于IT企业软件研发的工作思路与步骤以及面向工程实践案例。信息产业的核心是芯片与软件,软件工程是软件开发、生产、服务和管理的科学。所以可以说软件工程是以信息产业的飞速发展为源头或基础的。2软件开发文档包括哪些具体文档?【答】开发文档包括目标程序、源程序、详细设计说明书、概要设计说明书、需求规格说明书、用户需求报告、软件合同。3. 软件管理文档包括哪些具体文档?【答】管理文档包括项目开发计划书、测试计划、测试报告、工作日报、会议记录、开发进度报告、开发总结报告,其中开发进度报告又分为开发进度周报和开发进度月报。4请详细解释软件的定义和程序的定义。【答】软件的定义:软件 = 程序 + 数据 + 文档。这里的程序是指程序系统。这里的数据不仅包括初始化数据、测试数据,而且包括研发数据、运行数据、维护数据,也包括软件企业积累的项目工程数据和项目管理数据中的大量决策原始记录数据。这里的文档指的是软件开发过程中的分析、设计、实现、测试、维护文档、管理文档。现在有一种新提法正在引起关注,这种提法是:软件 = 知识 + 程序 + 数据 + 文档。程序是计算机为完成特定任务而执行的指令的有序集合。从应用的角度可理解为:面向过程的程序 = 算法 + 数据结构面向对象的程序 = 对象 + 信息面向构件的程序 = 构件 + 构架。5“四种开发方法”和“五个面向实施理论”的提法对吗?为什么?【答】“四种开发方法”和“五个面向实施理论”的提法对,并且既精彩又实用。首先,“四种开发方法”是指“面向过程的方法、面向对象的方法、面向数据的方法、形式化方法”,面向过程的方法来源于面向过程的程序设计,面向对象的方法来源于面向对象的程序设计,面向数据的方法就是面向元数据的方法,它来源于关系数据库程序设计,形式化方法来源于离散数学中的集合运算和逻辑运算。四种方法各适用于不同的场合,各有优缺点,互相促进,构成一个开发方法论的多极化世界。其次,“五个面向实施理论”是指“面向流程分析、面向数据设计、面向对象实现、面向功能测试、面向过程管理”,它是在综合“四种开发方法”各自的优点之后提出的软件工程实施理论,是对前者的继承与发展。6“图书馆信息系统”的开发选用什么模型合适?为什么?【答】“图书馆信息系统”的开发选用瀑布模型比较合适。因为瀑布模型开发阶段清晰,便于评审、审记、跟踪、管理和控制,而且“图书馆信息系统”在一定程度上符合瀑布模型的条件:(1)它在开发时间内需求没有变化或很少变化。(2)分析设计人员对应用领域很熟悉。(3)低风险项目。(4)用户使用环境比较稳定。(5)用户提出需求以外,很少参与开发工作。7. “精品课程网站”的开发选用什么模型合适?为什么?【答】“精品课程网站”的开发选用原型模型比较合适。因为现在“精品课程网站”比较普及,很容易找到一个可以事先给客户展示的产品原型,让客户试用,在使用中收集客户意见,根据意见立刻修改原型。原型模型开发速度快,用户意见反馈实时,有利于开发商在短时间内推广并实施多个客户,而且 “精品课程网站”在一定程度上符合原型模型的条件:(1) 已有产品/产品原型,只需客户化的项目。(2) 简单而熟悉的行业或领域。(3) 有快速原型开发工具。(4) 进行产品移植或升级。8什么叫风险分析?技能风险和技术风险有何区别?【答】这里的风险分析是指软件立项过程中对产品开发、销售等可能出现的风险进行分析。分析方法就是将一个大风险化解好多个小风险,然后一个个克服小风险。技术风险是指采用新技术的风险程度。技能风险是指项目组成员掌握新技术的风险程度。二者的区别在于一个是说新技术(如新的开发工具,新的设计思想)本身的风险,一个是说人员要掌握这种新技术的风险。9为什么需求分析特别重要、又特别难? P.66【答】需求分析特别重要,是因为:(1)许多大型应用系统的失败,最后均归结到需求分析:要么获取需求的方法不当,使得需求分析不到位或不彻底,导致开发者反复多次地进行需求分析,致使设计、编码、测试无法顺利进行;要么客户配合不好,导致客户对需求不确认,或客户需求不断变化,同样致使设计、编码、测试无法顺利进行。(2)需求分析的输出文档是用户需求报告,它既是软件生存周期中的第一个里程碑,又是客户、软件开发人员和项目管理人员三者必须遵守的一根基线,是三者共同工作的基础,是项目Alpha测试和Beta测试的准则,是供方交付产品和需方验收产品的依据。(3)需求分析要占用整个软件开发时间或工作量的30%左右。(4)需求获取中的错误,属于软件开发中的早期错误,它会在后续的设计和实现中进行发散式的传播。根据以上四项原因,IT企业的高层经理,对需求分析特别重视,常常派经验最丰富的人员去作项目需求。正因为如此,“系统分析员”才是软件行业中的最高技术职称。需求分析特别难,是因为:(1)用户需求具有动态性,即需求的不稳定性:在整个软件生存周期内,应用软件的需求会随着时间的进展而有所变化,个别用户甚至会朝三暮四地变化;(2)用户需求具有模糊性,即需求的不准确性:由于用户的素质不是很高,业务流程不很规范,所以需求表达不很清楚也不够明确。(3)开发者和用户要对需求达成完全一致的认识,用户要在需求报告上签字,要承担责任;(4)中国的国有企业正处于变动期(体制改革与企业重组),中国的民营企业正处于成长期(发展壮大与不完全成熟)。而处于变动期和成长期的企业需求是不成熟、不稳定和不规范的,这就给信息系统的需求分析增加了难度系数。10需求分析为什么是面向流程的?【答】系统的功能、性能、接口、界面都是在流程中动态实时的反映出来。在所有的流程(物流、人流、资金流、信息流、单据流、报表流、数据流)中,数据流最重要,也最具有代表性。因为在计算机网络系统内,一切流程都表现为数据流,或者说是数据流在不同方向的投影。而流程是动态的、实时的。所以说,需求分析是面向流程的。 11软件概要设计与软件详细设有什么联系与区别?【答】概要设计说明书,一是要覆盖需求规格说明书的全部内容,二是要作为指导详细设计的依据。它注重框架上的设计,它是软件系统的总体结构设计,全局数据库(包括数据结构)设计,外部接口设计,功能部件分配设计,部件之间的内部接口设计,它要覆盖需求规格说明书中的功能点列表,性能点列表,借口列表。 详细设计说明书,一是要覆盖概要设计说明书的全部内容,二是要作为指导程序设计的依据,它注重微观上和框架内的设计,它是各子系统的公用部件实现设计,专用部件实现设计,存储过程实现设计,触发器实现设计,外部接口实现设计,部门角色授权设计,其他详细设计等。两者的设计者不同,在一般情况下,概要设计说明书是由系统设计师负责,详细设计说明书则由高级程序员负责。12软件企业为什么要对员工进行培训?怎么进行培训?【答】P320 内部培训、外部培训13什么叫软件发布?软件发布要做哪些准备工作? P.252【答】软件发布是指将软件产品投入市场,并得到回报的一个过程。软件发布前的准备工作:(1)编写培训教材;(2)产品包装设计;(3)产品母盘制作;(4)产品光盘刻录;(5)软件资料印刷;(6)销售人员培训;(7)发布产品检验;(8)发布产品交付;(9)确定发布方式。14怎样理解“优秀的项目经理主要是干出来的,不是学出来的;是带出来的,不是教出来的”?【答】一个人要成长为一名合格的项目经理主要不是靠学,而是靠干,当然学也很重要。只学不干,是绝对出不来项目经理的。光干不学,有可能会出现的情况是:其能力本来可以做一个大项目经理,但现在只能做一个小项目经理,因为他只是一个经验主义者,缺乏理论指导,有些问题的认识可能上不去,所以不能成为大器。总之,项目经理必须通过干才能成熟起来,只要通过学才能提高起来,“干”字当头,学在其中,干学并用,互相促进,这就是项目经理成长的道路。15请用树型结构图来表示软件工程研究的主要内容与方法.【答】16. 为什么中国人实施CMMI有做秀嫌疑,而印度人一般没有做秀嫌疑?CMMI 的全称为:Capability Maturity Model Integration,即能力成熟度模型集成。CMM/CMMI仅仅是一个体系,一个框架,他仅仅从过程和产品上对开发行为进行规范,而不是给你提供了完整的方法。在这个框架下面,你可以选用最适合自己的过程,最有效的开发技术。至于什么过程和什么方法,并不是最重要的。CMM/CMMI仅仅表示你往生产好的软件走出了重要的一步,但并不是全部。CMM/CMMI本身是一套非常有价值的过程模型,但简单的将其图腾化却是不正确的。 印度人能够把软件整体结构把握得很好,能够完成大型复杂的软件,能够形成相当好的设计与实现文档,能够在国际外包市场上占据很大比 例。而中国人整天在那里琢磨着的是数据结构、算法花样和界面花招,到最后只能成为Code高手,而不是一个庞大团队。这些高手虽然对某些特定的开发工具非 常精通,比如.net和J2EE开发平台。但就是不能按质、按量、按时把一个大型软件稳妥而完整地开发出来。 招聘印度人,给应聘者出了一份与国内差不多的试卷,有基础概念和编程题目。等到他们完成后,我们这些中国的自认高手惊呆了! 他们的编程题目简直像是抄袭的!程序结构、注释、变量命名就不说了吧,全部都是极其类似!反观中国的牛人和高手,每个人都有自己的一套。到了新的岗位,先 把前任的程序贬损一通,然后自己再开发更多的问题代码来代替它。我们公司统计,一个软件中有4个以上版本,每个人都觉得别人做得差,自己再搞一套。中国 人,就是这个样子,还会辩解说:“我们这样是创新”。其实软件的发展,早就走过了求伯君(20世纪90年代的编程开才、WPS的发明人、现任金山软件股份 有限公司董事长兼总裁)那个编码英雄的年代,程序员已经是个坐办公室的蓝领了。你具备拧好一个螺丝钉的能力就可以了,因为Code是最低级的事情了。所以说中国人实施CMMI更多的时候有作秀的嫌疑。软件公司需要的软件人才,主要是系统需求分析、系统架构设计、系统测试、过程改进与过程管 理、程度编码的人才,即应用型人才!难怪国内一些博士生不适应在企业工作,软件公司将他们轰走的事常有发生。这揭示出我们与与印度软件企业的差距!差距不仅仅在于软件公司的规模,而在于软件人员的职业素质与道德规范!究其原因,在于软件组织内部的CMM/CMMI管理水平。印度人做CMM/CMMI是真正做给自己用的,即自己的软件组织过程改进。中国人做CMM/CMMI有时是做给别人看的,比如在招标或投标中装装门面,在广告中壮壮声势,而不是专门为了实现自己的软件组织过程改进! (以上大家可以自行删减 但是体现比较印度和中国的语句 还是写进试卷里)此上为小山整合观点,如果有不同意见或是瞧不上小山本人查找,请不要将这些写在你的试卷上,因为对谁都是种煎熬,谢谢合作,预祝大家好成绩。17软件设计要遵守哪些原理或原则? P.119【答】(1)抽象;(2)分解与模块化;(3)低耦合高内聚;(4)封装;(5)接口和实现分离。18. 详细设计有哪些描述工具? P.123【答】面向过程详细设计的描述工具有:(1)流程图;(2)N-S图;(3)程序设计语言;(4)决策表。面向数据详细设计的描述工具主要有:(1)概念数据模型(CDM);(2)物理数据模型(PDM);(3)存储过程。面向对象详细设计的描述工具主要有:(1)类图;(2)顺序图;(3)状态图;(4)部件图;(5)部署图。19. 需求分析有哪些描述工具?【答】需求分析描述的工具包括数据流图、业务流程图、用况图、时序图、用户交互图、数据模型图和功能需求列表、性能需求列表、接口需求列表、界面需求列表等。20. 请各举一例,说明面向过程、面向元数据、面向对象的编程代表语言各是什么语言?【答】 Pascal、BISIC、C语言等 Oracle、Sybase等 Java、C+等21. 请各举一例,说明面向过程、面向元数据、面向对象的编程方法,各用在什么地方?【答】 在军事上的实时跟踪监控系统中有很好的应用。如我方侦察卫星发射后其飞行轨迹的捕获、测量、跟踪和预报导弹防御系统中敌方导弹发射后飞行轨迹的捕获、测量、跟踪和预报,其软件系统都是采用面向过程的方法设计和实现的; 适合数据层(数据库服务器)设计与实现。在电子商务中的应用。网站后台数据库服务器上的数据处理和数据传输,其软件都是利用面向数据的方法设计与实现的; 在两层结构(C/S)的客户层上,在三层结构(B/A/S)的表示层和业务逻辑层上,进行详细设计和编程实现时,要采用面向对象的方法。在电子商务中的应用有:网站前台界面的制作,信息的发布和处理,用户在网上浏览和录入信息等应用软件都是利用面向对象的方法设计与实现的。22. 软件工程中有哪几种不同的数据字典?【答】主要有一下四种数据字典:(1)数据流图中的数据字典:是对数据流图DFD的补充。用数据字典说明每个数据流的组成、每个数据文件的内容以及每个数据项的定义等;(2)数据库中的数据字典:就是数据库中的元数据,例如表名、字段名、索引名、主键名等;(3)数据库管理系统中的系统数据字典:它分为系统数据字典和用户数据字典两部分,用这些字典来管理数据库;(4)信息系统用户初始化中的用户数据字典:就是一些科目代码、单位代码等等。23你怎么用“Check outEditCheck in”对配置管理中的软件开发库进行具体操作?【答】“Check outEditCheck in”,这是配置管理工具的基本操作,这种操作是对3个库而言的,对每一个库中的内容进行操作(比如增、删、改),要先将操作内容从库中取出,放入内存缓冲区,这一动作叫做“Check out”。当操作(Edit)完成后,又要将本次操作的内容放入相应的库中,这一动作叫做“Check in”。值得注意的是,每次Check out后,相应库中原来的内容仍然保留着。每次Check in后,也不会覆盖原来的内容。这就自动保存了可供追踪的轨迹。 以“Check outEditCheck in”操作为基础,以版本控制为中心、进行软件配置项的标识、跟踪与管理的电子工具,就是配置管理工具。 程序员只能在软件开发库上作“Check outEditCheck in”操作。【四】应用题1. 如果要成为一位优秀的程序员,你认为要具备什么素质?【答】(1)团队协作精神的训练和要求;(2)数据结构分析与设计能力的训练和要求;(3)文档习惯的训练和要求;(4)规范化的代码编写能力训练和要求;(5)复用性能力的训练和要求;(6)写构件能力的训练和要求;(7)测试习惯的训练和要求;(8)学习和总结能的训练和要求;2. 如果你是软件公司的专职配置管理员,你将怎样开展公司的软件配置工作? 【答】P.301(1) 与项目经理一起,识别出项目的所有基线,并标识出这些基线及其所属的配置项,再根据有关规范和规程制定配置管理计划;(2) 在配置管理服务器上建立配置管理库,作为配置管理的工作仓库,并对仓库进行管理和维护;(3) 配置项变更控制。它包括变更申请、评审和批准、实行变更、测试变更对其他配置项的影响、变更验证和入库;(4) 基线变更控制。工作程序与配置项变更控制相同;(5) 最终软件版本产品生成的控制。最终软件版本产品由软件基线库中的配置项组装而成,在配置组装之前,必须冻结该产品的所有配置项。生成之后,将此产品入库到软件产品库,并对其实行冻结;(6) 对配置项、基线、软件版本产品进行跟踪和审计,并编制配置管理活动报告,供相关组和个人阅读;(7) 定期或事件驱动,对软件开发人员进行配置管理知识培训;(8) 配置管理工具的安装,配置管理服务器的日常维护。3如果你是软件公司的专职软件质量保证员,你将怎样管理公司的软件项目或软件产品的质量?【答】(1) 事先的预防措施:制订软件过程开发规范和软件产品质量标准,对软件开发和管理人员进行这方面知识和技能的定向培训(规范是对行为的约束、标准是对产品的约束、规程是对操作的约束);事中的跟踪监控措施:按照CMM/CMMI或ISO9000的过程管理思想,对软件过程和软件产品的质量控制提供可视性管理;事后的纠错措施:对软件工作产品和软件产品加强评审和检测。评审是在宏观上框住您,在微观上挑剔您,找出不符合项。检测是为了发现Bug,改正错误。(2) 从4个方面来改进软件质量:力图从编程语言上实现突破;力图从CASE工具上实现突破;力图从软件过程管上实现突破;力图从测试与纠错上实现突破。先后出现了各种测试方法、工具和纠错手段。(3)管理人员还需要做到:行为规范化,报告制度化,报表统一化,数据标准化,信息网络化,管理可视化,错世即时化。(4)最后还需要建立“五报一例制度”,即日报表,周报表,月报表,里程碑报表,重大事件报表和例会制度。4. 如果你是软件公司的软件分析师,你将怎样进行需求分析?【答】系统分析师应对用户进行需求分析培训;用户应参加业务需求分析的全过程;向用户发放需求调查表格;召开需求调研会;深入到重点岗位了解需求;必要时参加实际的业务工作;边分析边整理文档,边征求修改意见;定期向用户中的操作层、管理层、决策层分别汇报,演示目标系统的流程、功能、接口及界面调度需求。1) 面向流程分析;2) 找出元数据:元数据是组织数据的数据,元数据就是信息系统中实体名及其属性名的集合;3) 找出中间数据:中间数据蕴藏在信息系统的输出报表中,报表名称及其内部的数据项名称,一般就是中间数据;4) 找出元数据与中间数据之间的关系;5) 找出单据中的流程:a) 该单据的上游是什么?b) 同一个单据内部的数据项之间,也存在一个先后次序的问题?c) 该单据的下游是什么?6) 历史上存在三种需求分析方法:面向功能分析,面向对象分析,面向数据分析;7) 分析与设计要同时考虑:因为许多问题在分析“目标系统是什么”的时候发现不了,到了设计时才会暴露出来。分析与设计同时考虑,也符合迭代模型的思想,即:复杂的需求是个需求迭代的过程。8) 需求分析艺术:a) 需求分析师双打项目。宏观上和微观上都要以流程为主,不能偏听偏信。b) 决策层提出宏观上的统计、查询、决策需求,管理层提出业务管理和作业控制需求,操作层提出录入、修改、提交、处理、打印、界面、传输、通信、时间与速度等方面的操作需求。9) 提取需求技术:会谈、场景、原型、实地观察10) 提取对象、属性和方法的技术a) 对象在哪里?属性在哪里?方法在哪里?11) 实时系统需求分析法汇报两三次,知道客户确认位置,同时要与客户交朋友。5. 如果你是软件公司的软件设计师,你将怎样进行软件架构设计?【答】首先要进行架构建模:1) 捕获早期的设计决策;2) 捕获软件运行环境;3) 为底层实现提供限制条件;4) 为开发团队的结构组成提供依据;5) 设计系统满足可靠性、可维护性、其他性能等;6) 方便开发团队间的交流;软件架构设计要包含以下几个方面:1) 软件系统中包含了哪些子系统/部件;2) 每个子系统/部件都完成了哪些功能;3) 子系统/部件对外提供或使用外部的哪些接口;4) 子系统/部件间的依赖关系。以及对实现和测试的影响;5) 系统式如何部署的;6. 如果你是软件公司的主程序员,你将怎样进行软件详细设计?【答】1) 基本任务是怎样具体地实现这个系统。主要任务是设计出程序的“蓝图”,供程序员日后根据这个蓝图编写出实际的程序代码。2) 基本步骤是:确定模块如何实现;编写详细设计说明书;制定单元测试计划;评审详细设计。3) 对于B/S的系统,“面向数据方法用在数据库服务器层次上系统的设计与实现,面向对象方法用在除数据库服务层次之外的其他层上的系统的设计与实现,面向过程方法用在其他两种方法本身内部函数的设计与实现”。4) 在实施的过程中,在宏观上仍然要遵守“五个面向”的实施理论,即:“面向流程分析、面向数据设计、面向对象实现、面向功能测试、面向过程管理”。7. 如果你是项目经理,你怎么用4种不同的方法,对软件产品的规模进行量化估计?【答】1) 希腊古都法:在没有历史数据的情况下,这种方式适用于评定过去和将来。这个技术要求有多种软件相关经验人的参与,互相说服对方。希腊古都法的步骤如下:a) 协调人向各专家提供项目规格和估计报表b) 协调人召集小组会,各专家讨论与规模相关的因素c) 各专家匿名填写迭代表格d) 协调人整理出一个估计总结,以迭代表的形式返回专家e) 协调人召集小组会,讨论较大的估计差异f) 专家复查估计,总结并在迭代表上提交另一个匿名估计g) 重复d)- f),直到达到最低估计和最高估计一致。2) 类比法:适合评估一些历史项目在应用领域、环境和复杂度的相似项目,通过新项目与历史项目的比较得到规模估计。其基本步骤如下:a) 整理出项目功能列表和实现每个功能的代码行b) 标识出每个功能列表与历史项目的相同点与不同点,特别要注意劣势项目做得不够的地方c) 通过步骤a)、b)得出各个功能的估计值d) 产生规模估计3) 功能点估计法:是在需求分析阶段基于系统功能的一种规模估计方法。通常步骤如下:a) 计算输入、输出、查询、主控文件和接口需求的数目b) 将这些数据进行加权乘c) 估计者根据对复杂度的判读,总数可以用+25%、0或-25%调整4) 无礼估计法:对各个项目活动的完成时间,按三种不同情况估计:一个产品的期望规模,一个最低可能估计,一个最高可能估计。用这三个估计来得到一个产品期望规模和标准偏差的物理估计。8. 如果你是项目经理,你怎么管理一个由七名成员组成的软件团队?一抓需求获取与确认; 二抓计划制定与执行; 三抓团队分工与协作; 四抓后勤供应与保障; 五抓产品测试与交付; 六抓开发标准与规范; 七抓员工考核与奖励。9. 如果你是软件实施经理,你怎么组织公司软件的产品实施工作?【答】软件工程的覆盖范围包括了售前、售中、售后三个阶段的工作。1) 售前工程师/产品形象代表工作:工作职责为制定投标书,讲解投标书,主持技术谈判,参与合同签约,制订初步的实施计划。2) 实施工程师:工作职责为产品安装调试,产品的客户化,用户培训,产品的验收交付。在产品发布之前,对其进行培训,使之掌握该产品的功能、性能、接口,熟悉产品运行的软硬件环境,熟练安装调试系统,不但要会初始化系统,还会客户化系统。a) 对于不需要客户化的软件产品,实施工程师将光盘上的软件产品,安装到用户系统上即可。如果用户需要培训,用用户指南的教材进行定期培训。b) 对于只需要少量客户化的产品,实施工程师首先要进行调查和需求分析,在与客户达成完全一致的书面需求修改意见且经过评审和批准之后,再对软件的产品文档和程序进行修改和调试。同时还要保证文档和程序的一致性。c) 对于需要重新做业务流程再造和需求规格定义的软件产品,实施工程师的职责相当于项目经理,或者需要成立项目组,指定项目经理,运用原形法重新做业务流程规范和需求规格定义,在此过程中要与用户进行互动,以确保开发出来的产品与用户需求的一致性。4) 维护工程师:工作职责为产品日常维护,客户信息反馈。10. 如果你是软件维护经理,你怎么开展公司的软件维护工作?【答】1) 软件维护的工作程序为:维护的需求分析、维护的设计、修改程序代码、维护后的测试、维护后的试运行、维护后的正式运行、对维护过程的评审和审计。2) 其流程为:分类整理用户意见、提出维护申请、评审、审计、批准维护申请、修改需求文档、需求维护文档评审、修改设计文档、设计维护文档评审、修改源程序、回归测试、修改软件产品版本号、交付用户运行、手机反馈意见,准备新一轮维护。3) 维护管理文档:用户意见反馈表、用户意见分类整理表、维护申请单、维护文档评审报告、产品缺陷统计表、功能扩充统计表、未答复问题汇总表、未验证问题汇总表、已修改问题汇总表、已验证问题汇总表、维护费用统计表。11. 如果要你组织软件组织的CMMI实施,你怎样开展这项工作?【答】1) 进行CMMI基本知识的培训。a) 对所有员工进行基本的软件工程和CMMI知识培训;b) 对CMMI的各个工作组的有关人员,提供专业领域知识等方面的培训;c) 在每次开发过程中,还要对项目组成进行软件过称方面的培训;2) 成立CMMI的工作小组a) 软件工程过程组SEPG(组织过程焦点)b) 软件工程组SWEGc) 系统测试组STGd) 软件项目跟踪与监督组SPTOe) 软件配置管理组SCMGf) 软件质量保证组SQAGg) 评估领导组或评估成员团队ATM(Assessment Team Member)3) 建立软件组织的CMMI文档体系软件组织文档、关键过程域文档、软件项目文档4) 进行内部模拟评审a) 软件组织自己内部成员,严格、认真地按照CMMI规范评估过程,对自己的软件过程进行评审,找出其中的强项和弱项,并进行修改;b) 在全国范围内,由有关软件工程和CMMI专家组成一个专门的“内部评审”机构,负责指导协调实施CMMI的活动,推进活动的深入展开,对国内软件组织CMMI评估进行“预先评估”。5) 确定CMMI正式评估的工作步骤6) 进行正式评估评估过程包括员工培训(企业的高层领导也要参加)、与选定的项目经理等人座谈、问卷调查和统计、文档审查、数据分析、与企业的高层领导讨论和撰写评估报告等,评估结果由主任评估师签字生效。7) 根据评估结果改进软件过程12. 在现实生活中,请你举两个实际例子(不一定是软件开发的例子),说明原型模型与迭代模型的具体应用?【答】原型模型 “精品课程网站”的开发选用原型模型比较合适。因为现在“精品课程网站”比较普及,很容易找到一个可以事先给客户展示的产品原型,让客户试用,在使用中收集客户意见,根据意见立刻修改原型。原型模型开发速度快,用户意见反馈实时,有利于开发商在短时间内推广并实施多个客户迭代模型1) 基于模糊聚类循环迭代模型的心脏病预测方法:该方法考虑了病症与疾病的模糊关系和关联程度,先用模型迭代得到满足精度的指标权重向量,然后再迭代确定样本最终所属的类别,其优点是整个过程不受参数的影响,避免了主观权重对分类结果的影响.2) 水库洪水调度系统的模糊循环迭代模型:多目标水库洪水调度目标的权重确定一直是实际防洪调度中的难点,针对过去单一考虑主观权重或客观权重的多目标决策模式的缺陷,通过引入权重折衷系数的概念,提出了兼顾主观决策与客观决策统一的模糊循环迭代模型,可以同时得到方案优属度和目标权重。由于模型同时考虑了决策者意图和方案本身属性,使方案排序结果更为合理适用,将其应用于水库洪水调度方案的评价中,实例表明,该模型科学、实用。13. 请你举两个实际例子,说明数据模型设计中“列变行” 方法怎么样具体应用?【答】【例子1】学生成绩管理例子1) “列变行”之前的表结构如下:学生成绩单学号姓名性别电话地址课程1成绩1 课程30成绩300501张京女英语85 先来分析下“列变行”前表结构设计中的缺点。由于每个大学生四年中可能要学习30门左右的课程,因此设计了存在30门课程的名称和期末成绩。这个设计存在两个缺点:其一,在四年级前,若没有修完30门课程,这种设计浪费了不少存储空间;其二,到四年级时,个别学生可能选修了双学位,这种设计使得表结构不够用,需要进行改动,增加存储空间。2) “列变行”之后的表结构如下:学生花名册学号姓名性别电话地址0501张京女学生成绩单学号课程成绩0501英语88分析列变行之后的表结构设计中的优点,这个有点就是“实事求是”。其一,若四年级之前没有修完30门也不浪费存储空间;其二,即使有学生选修了双学位,也不需要改动表结构,达到“以不变应万变”的目的。【例子2】图书管理系统例子“列变行”前表结构图书管理表图书号书名单价作者出版社出版日期架位号架位地址0001Oracle28.00孙风栋电子工业出版社K13图书馆B302“列变行”后表结构图书表图书号书名单价作者出版社出版日期0001Oracle28.00孙风栋电子工业出版社书库表图书号架位号架位地址0001K13图书馆B30214. 请你举两个际例子,说明数据模型设计中“第三者插足” 方法是怎么样解决多对多复杂关系问题的?【答】 P164【例7-5】、【例7-6】15. 如果要成为一位优秀的项目经理,你认为要具备什么素质?【答】第一,对事能区分轻重缓急。项目组任务千头万绪,项目经理要做到心中有数,首先解决重要而紧急的问题。第二,对人要根据每个项目组成员的特点分别管理,有的成员既有能力办事,主动性又强,对这类人,那就要充分信任与授权。有的成员能力强,但办事总是拖拖拉拉,那就要紧盯着他完成工作。对那些想做事但能力不足的人,要给予学习锻炼的机会。对那些能力差又缺少责任心的人,则是淘汰的对象。第三,充分的沟通。和客户沟通,和老板沟通,和员工沟通,除了正式场合的沟通方式外,非正式场合的沟通方式也相当重要,如饭桌上,球场上,酒吧里,洗浴场所有时,项目的成败就靠这些了。第四, 作为一名项目经理,应真诚地关怀项目组成员,要给项目组成员有福同享、有难同当的感觉,这样的项目经理才有号召力,做到振臂一挥,应者群集,项目组的战斗力才强。有些项目经理当面口口声声的兄弟,背地理却踩着兄弟的头往往爬,这样的项目经理迟早是要给抛弃的。第五,项目经理对所从事的项目应具备一定的技术实力,而并不一定要到专家的级别。16请你用面向过程详细设计中的程序流程图,来描述N(N10)以内的所有正整数之立方的总和。 注:应该为17. 请你仔细阅读并分析下面的E-R图,然后说明在此数据模型中,原来有哪几个多对多关系?这几个多对多关系现在又是怎样解决的?在解决的过程中,怎样体现“第三者插足”和“列变行”的设计模式?原来有多对多关系:6种班级与课程的多对多关系;班级与教师的多对多关系;班级与教室的多对多关系教师与课程的多对多关系;教室与课程的多对多关系;教师与教室的多对多关系;是通过第三者插足 和 列变行 解决的,使原来各自多对多的关系变成了,班级,课程,教师和教室对于排课表都成了一对多的关系。 若两个实体之间存在多对多的关系,则应该消除这种关系,消除的方法是在两者之间增加第三个实体,即:排课表。这样原来的六个多对多的关系,变为了,各自对于排课表的一对多的关系。将原来实体的共同属性分配到外加实体中取,即排课表,还要讲原来实体的主键当做外加实体的外键。这就是“第三者插足” 要建立稳定的数据模型,就要掌握“以不变应万变”的设计技巧,这个技巧就是“列变行”。将第一个表中的某些列变为第二个表中的某些行,这样就将原来设计不科学的一个表变为现在设计很科学的两个表。即排课表就是列变行出现的新表。 也就是在进行“第三者插足时”,插入的新实体,即排课表,排课表中的属性是与班级,课程,教室和教师共同的属性,于是用“列变行”的技巧,得到图中相应的图表。 两大窍门产生的理论基础是:原来的实体没有彻底的原子化,所以要增加新的实体,使原来的实体进一步分解,知道彻底原子化为止。22
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!