软件工程试题

来源:百度文库 编辑:神马文学网 时间:2024/04/30 23:27:13
第1章 职业道德
1. 什么是职业道德职业道德,即在一定的社会经济关系中,从事各种不同职业的人们在其特定的工作或劳动中的行为规范的总和。2. 职业道德的基本标准文明礼貌、爱岗敬业、诚实守信、办事公道、团结互助、服务群众、奉献社会。3. 软件工程人员职业道德标准产品——软件工程师应当确保他们的产品和相关的改进符合最高的专业标准;公众——软件工程师应当以公众利益为目标;判断——软件工程师应当维护他们职业判断的完整性和独立性;客户和雇主——在保持与公众利益一致的原则下,软件工程师应注意满足客户和雇主的最高利益;管理——软件工程的经理和领导人员应赞成和促进对软件开发和维护合乎道德规范的管理;职业——在与公众利益一致的原则下,软件工程师应当推进其专业的完整性和声誉;同事——软件工程师对其同行应持平等和互助和支持的态度;本人——软件工程师应当参与终生职业实践的学习,并促进合乎道德的职业实践方法。4. 如何培养自己的职业道德职业道德修养,就是从业人员在道德意识和道德行为方面的自我锻炼以及自我改造中所形成的职业道德品质和达到的职业道德境界。任何一名从业人员职业道德素质的提高,一方面靠他自律,即社会的培养和学校的教育;另一方面就取决于自己的主观努力,即自我修养。而后者更为重要。职业道德修养的形成要从以下几点着手:一、 从自我做起二、 从小事做起三、 在专业学习中训练四、 在社会实践中体验五、 在自我修养中提高第2章 软件与软件工程
1、中国古代先哲孔子的人生阶段划分包括哪几个阶段?共7个阶段:学前期(0~15岁),立志学习期(15~30岁),自立阶段(30~40岁),不惑时期(40~50岁),知天命期(50~60岁),耳顺期(60~70岁),从心所欲期(70以上)。2、美国著名心理学家马斯洛的人类需求从低到高共分哪几个层次?共分5层,依次是:生理需要,安全需要,归属与爱的需要,尊重的需要,自我实现的需要。3、什么是职业生涯?职业生涯就是指一个人一生的工作经历,特别是职业、职位的变动及工作理想实现的整个过程。4、职业生涯规划根据时间范围可分为哪几种?根据时间长短依次为:人生规划,长期规划,中斯规划,短期规划4种。5、什么是SWOT分析,包括哪几个方面内容?用于分析一个单位或者个人优势与劣势以及外部环境的机会与威胁,帮助个人和单位制定未来发展策略,包括4个方面:优势(Strength)、劣势(Weakness)、机会(Opportunity)、威胁(Threat)。6、美国著名心理学家霍兰德将人的性格和兴趣分为哪几种?共6种:现实型,研究型,艺术型,社会型,企业型,传统型。第3章 软件与软件工程
1、什么是软件?软件(software)是计算机系统中与硬件(hardware)相互依存的另一部分,它包括程序(program)、相关数据(data)及其说明文档(document)。即:软件=程序+数据+文档2、什么是软件危机?软件危机:是指由于软件开发技术手段不符合社会生产方式而引起的诸如软件开发成本高、质量低、开发周期难以控制、软件可靠性差、生产率低等状况。2、软件危机的典型表现有哪些?(回答5点即可)软件危机典型表现如下:§ 开发成本和进度的估计常常不准确。开发成本超出预算,实际进度比预定计划一再拖延。§ 用户对“已完成”系统不满意的现象经常发生。 § 没有一个统一的产品质量检验标准,造成软件产品的质量常常不高、可靠性差。§ 软件的可维护程度非常之低。 § 软件通常没有适当的文档数据。 § 软件的成本不断提高。 § 软件开发生产率的提高赶不上硬件的发展和人们需求的增长。3、什么是软件工程?建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。4、软件工程的基本原理是什么?⑴ 用分阶段的生命周期计划严格管理  §项目概要计划    §里程碑计划      §项目控制计划    § 产品控制计划   § 验证计划          § 运行维护计划⑵  坚持进行阶段评审⑶  实行严格的产品控制——基准配置管理(Baseline configuration management)⑷  采用现代程序设计技术⑸  结果应能清楚地审查— set standards⑹  开发小组的成员应该少而精 1+1 < 2⑺  承认不断改进软件工程实践的必要性5、什么是软件生存周期?从时间角度对软件开发和维护的复杂问题进行分解,是指软件产品或软件系统从形成概念开始,到生产(开发)、使用、维护直至被废弃的全过程。 6、软件生存周期分成那些过程包含哪些阶段?一般来说,软件生存周期包括计划、开发、使用和维护三个过程,每一个过程又可以细分为若干更小的阶段。具体阶段的划分如下:问题定义,可行性研究,需求分析,概要设计,详细设计,编码和调试,综合测试,使用与维护。7、什么是软件开发模型?软件开发模型也常称为软件过程模型、或软件生存期模型,有时也称软件工程范型。它是软件开发全部过程、活动和任务的结构框架,直观地表达了软件开发全过程,明确规定要完成的主要活动、任务和开发策略及各阶段之间的关系和顺序,是软件开发过程的概括。8、请说明瀑布模型和的优缺点是什么?瀑布模型的优点是清楚地标识出了软件开发的阶段。它采用自顶向下逐步求精的方式把整个开发过程分成不同的阶段,每个阶段的工作都很明确,因此便于控制开发过程。当所有的阶段都完成之后,该软件的开发过程也随之结束。瀑布模型的缺点正是它自身的顺序性所导致的。实际的开发过程中,在需求阶段很难把用户的需求完全明确下来,因此,当需求变更时将会导致阶段反复,而且都要重复需求、设计、编码、测试等过程。瀑布模型的另一个缺点是将错误的发现推迟了,系统只有在测试时才能发现设计或者分析中的错误,而这时再返工的代价是非常昂贵的。瀑布模型通过强制性的要求提供规约文档来确保每个阶段都能很好的完成任务。但是实际上往往难以办到,因为整个的模型几乎都是以文档驱动的,这对于非专业的用户来说是难以阅读和理解的。 9、请说明原型模型的适用范围。适用范围:常有这种情况,用户定义了软件的一组一般性目标,但不能标识出详细的输入、处理及输出需求;还有一些情况,开发者可能不能确定算法的有效性、操作系统的适应性或人机交互的形式。在这些情况下,原型模型可能是最好的选择。第4章 书写规范
1、 文档基本写作过程包括哪几个阶段?确立主旨选择材料安排文章结构2、 编码中注释分哪几种?分2种:序言性注释,功能性注释3、 IT岗位技能要求包括哪些内容?IT职业核心素质根据重要性和提及率平均数指标依次为:沟通能力、团队合作、学习能力、责任感、问题解决能力、诚信、主动性、理解能力、应变能力、抗挫抗压能力、踏实、大局观。4、 编程中常用的命名法有哪3种,并举例说明?l 匈牙利命名法,nAge,表示整形的年龄l 骆驼命名法,documentFormatType,表示文档格式类型l 帕斯卡命名法,SetName,设置姓名5、 什么是流程图?流程图,就是以流程的形式反映工作、事件的进度的图标。6、程序中基本控制结构包括哪几种?顺序结构,分支结构(又称选择结构),循环结构。7、思维脑图的重要性表现在哪几人方面?l 提高效率。用简单的图形代替长篇文字,节省时间,且简单易懂。l 打开思路。很容易在原有基础上进行延伸。 l 增强条理性。枝节按需要添加,条理清晰,可操作性强。 第5章 项目管理概论
1 简述项目的特征。一、项目都有明确的目标二、项目具有唯一性(专门性)三、项目具有临时性(一次性)四、项目具有整体性。2 简述管理对于社会组织的重要意义。一、管理使组织发挥作用。二、组织目标的实现依赖于管理。3 简单介绍项目存在的约束?范围、时间、成本、质量。Cost = F(Time, Scope, Quality)4 项目管理知识领域包含有哪些知识?项目管理包括九个知识领域:四个核心知识领域:范围管理、时间管理、成本管理和质量管理四个辅助知识领域:人力资源管理、风险管理、采购管理和沟通管理和项目的整体管理。5 简述项目管理的步骤和对应工作。一般我们把项目管理整个过程分为五个阶段(过程):立项、计划、监控、实施和结项:(1)立项:认可项目可以开始。(2)计划:为完成项目所要达到的商业要求而对实际可行的工作计划的设计、维护。(3)执行:协调人员和其他资源执行计划。(4)监控:通过监督、衡量进度和在必要时采取改正行动来保证达到项目的目标。(5)结项:正式地接受项目使它有序地结束。6 介绍可行性分析重要进行哪些工作。市场可行性分析、经济可行性分析(成本收益分析)、技术可行性分析、法律可行性分析、SWOT分析等。第6章 需求获取
1、 软件需求的定义答:1)用户为解决某个问题或达到某个目标而需具备的条件或能力。 2) 系统或系统组件为符合合同、标准、规范或其他正式文档而必须满足的条件或必须具备的能力。2、 需求的类型答:1、功能需求(Functional Requirement):和系统主要工作相关的需求,即在不考虑物理约束的情况下,用户希望系统所能够执行的活动,这些活动可以帮助用户完成任务。2、性能需求(Performance Requirement):系统整体或系统组成部分应该拥有的性能特征,例如CPU使用率、内存使用率等。3、质量属性(Quality Attribute):系统完成工作的质量,即系统需要在一个“好的程度”上实现功能需求。4、对外接口(External Interface):系统和环境中其他系统之间需要建立的接口,包括硬件接口、软件接口、数据库接口等。5、约束(Constraint):进行系统构造时需要遵守的约束,例如编程语言、硬件设施等。3、 需求获取的内容是什么?答:需求获取是进行需求收集的一个活动,它从人、资料和环境中得到系统开发所需要的信息。4、 需求获取常用的方法答:常见的需求获取技术包括面谈和需求专题讨论会、问卷调查、原型、观察与文档审查方法等。5、为什么要建立需求规格说明?答:是分析问题或项目失败的最可靠的方法之一,需求规格说明书可以成为项目开发的一个重要依,它可以作为软件估算和项目进度安排的基础。6、 优秀的需求规格说明书应该具备哪些特性?答:1、完备性。需求规格说明书是完备的,当且仅当描述了用户所有有意义的需求,包括功能、性能、约束、质量属性和对外接口。2、一致性。一致性是指本层次与其他软件需求或高层需求不相矛盾。    3、可修改性。需求规格说明书必须能够被修改,并可以为提供每项需求维护修改的历史记录。4、可跟踪性。需求的可跟踪性是指可以跟踪一个需求使用期限的全过程。它为我们提供了从需求到产品实现整个过程范围的明确查阅的能力。7、需求评审有哪些类型?有哪些参与人员?答:①审查,②小组评审,③走查,④轮查,⑤临时评审。参与的人员以及相应的角色包括:①组织者,②仲裁者,③作者,④阅读人员,⑤记录人员,⑥收集人员,⑦审查人员8、需求验证有哪些方法?答:1、需求评审  2、原型与模拟3、利用跟踪关系9、什么是需求变更?答:需求变更控制就是以控制、一致的方式进行需求基线中需求的变更处理,包括对变化的评估、协调、批准或拒绝、实现和验证。需求变更控制并不是要限制甚至拒绝需求的变化,它是以一种可控制的严格的过程方式来执行需求的变更。10、一个有效的变更控制有哪些注意事项?答:1、认识到变更的必要性,并为之制订计划2、维护需求基线,审计变更记录3、管理范围蔓延4、灵活应对变更请求第7章 用例模型
1、什么是UML?UML是Unified Modeling Language的缩写,是一种图形化符号语言,中文称之为“统一建模语言”。2、在UML中,共有哪几种图?1.用例图,2.类图,3.对象图,4.活动图,5.状态图,6.序列图,7.协作图,8.部署图,9.组件图。3、用例图中,核心元素包括哪两个,各起什么作用?(1)用例:从用户的角度描述系统的行为(2)参与者:是与系统交互的外部实体4、用例描述通常包括哪几部分?用例标识,用例名称,简要说明,参与者,前置条件,基本事件流,其它事件流,异常事件流,后置条件,修改历史。5、什么是序列图?用于描述对象之间动态的交互关系,表示完成某项行为的对象以及这些对象之间传递消息的时间顺序。6、什么是协作图?用于描述相互协作的对象间的交互关系和链接关系,强调体现交互对象间的静态链接关系。第8章 架构分析与设计
1. 什么是软件架构答:软件架构就是指软件系统的结构,或者软件的体系结构,包括软件元素、软件元素的外部特性以及这些元素之间的关系。2. 软件架构的多重性表现在哪几个方面的关注人员?答:项目管理者,项目客户,软件系统的最终用户,软件系统的开发人员3. 什么是架构视图答:架构视图是从某一种特定角度或某一点上对系统所做的简化描述(抽象),描述中涵盖了系统的某一特定方面,省略了与此方面无关的实体。4. RUP软件架构视图包括哪五个方面,请说出用例视图的作用?答:逻辑视图(Logical view),实现视图(Implementation view),进程视图(Process view),部署视图(Deployment view),用例视图(Use-Case View)。这个视图在架构中扮演了一个很特殊的角色,因为它通过用例或者场景来描述系统的架构。在初始和细化阶段,用它们来驱动架构的挖掘和设计,在随后的阶段中,利用它们来验证不同的视图。场景主要用于说明在软件架构文档中其他视图是如何工作的。5. 什么是应用框架,其重要特点是什么?答:应用框架通常是一个软件产品,它实现了某个业界标准或者完成了特定的基本任务。特点:应用框架实现的是基本任务,所以它不是一个完整的产品,而是一个半成品,但是要实现的业务功能可以通过应用框架中的某种机制进行扩展。6. 列举分层架构的实例,并说明各层的职责划分。答:TCP/IP四层结构:(1)应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。(2)传输层:在此层中,它提供了节点间的数据传送,应用程序之间的通信服务,主要功能是数据格式化、数据确认和丢失重传等。如传输控制协议(TCP)、用户数据报协议(UDP)等。(3)互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。(4)网络接口层:接收IP数据报并进行传输,从网络上接收物理帧,抽取IP数据报转交给下一层,对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。7. 什么是分析机制答:用一个简短的术语来描述一个复杂的问题,从而减少分析的复杂性,有利于提高分析的一致性。8. 架构设计的主要内容包括哪些?答:确定设计机制,说明运行时架构,说明分布。第9章 确定设计元素
1. 常见的设计元素有哪几种?答:类,子系统,接口2. 确定设计元素的基本方法是什么?答:确定类:如果一个分析类很简单,而且代表一个单一的逻辑抽象,就可按照一一对应的关系直接将其映射到设计类。确定子系统:如果分析类相当复杂,以致于它所包括的行为无法由单个类来独自负责执行,就应将该分析类映射到设计子系统。3. 在UML中,系统的行为通常用哪两种图来描述?答:一个系统的行为可以用许多方法来描述,包括协作或者交互的方法。第10章 子系统设计
1. 子系统特征包括哪些?答:不仅具有包的分组特性,而且具有类的封装和行为特性。2. 子系统设计的任务包括哪些内容答:将子系统行为分配给子系统元素记录子系统元素说明子系统依赖关系第11章 类设计
1. 类成员的可见性有哪几种?分别解释其含义。答:类成员的可见性有四种,从大到小分别是:l 公有的(public):任何地方都可以访问该成员。l 受保护的(protected):子类及同一个包中的任何类都可以访问该成员。l 包级私有的(default):同一个包中的任何类都可以访问该成员。l 私有的(private):仅能被所在类的成员访问。2. 类之间的关系有哪些?对每种关系举一个例子。答:类与类之间存在4种关系:依赖、关联、泛化、聚合关系。l 依赖关系:学生在校读书,家长在外打工,学生依赖于家长。l 关联关系:患者和医生的关系就是关联关系。l 泛化关系:汽车和交通工具之间的关系就是泛化关系。l 聚合关系:汽车和轮子的关系就是聚合关系。第12章 数据库设计
1. 数据库设计主要任务?答:数据库设计主要考虑持久类如何存储、存储过程如何定义等问题。2. 将持久类映射到关系数据库表的基本方法是什么?答:将持久类映射到关系数据库表的方法:将类名映射为表名,将类的属性映射为表的列(又叫字段),将类之间关系映射为外键。这样,类的一个实例(对象)就对应数据库表的一行。3. 为什么要使用ORM框架?答:ORM框架是对基本API的一种包装,可以让程序员用更少的代码来访问数据库。另外,已经存在一些针对ORM框架的实用工具,可以自动生成大部分数据库访问代码。因此,使用ORM框架可以大大地提高开发效率。4. 什么是存储过程?答:存储过程是运行于数据库管理系统的进程空间内的可执行代码,它具有无需通过网络传输数据即可在服务器上执行数据库相关操作的能力,从而有效地提高系统的性能。第20章 软件项目管理概述
1 软件工程中为什么引入项目管理?只要有管理,项目才有了改进的可能性,改进的好坏取决于两个因素:一个是人,特别是各级管理者;另一个是利益。只有通过项目管理进行合理的"利益分配",在权责利明确的前提下,人才能充分的发挥作用,项目才能最终取得成功。2 一个软件项目的利益相关者包括哪几类人员?项目发起者主要是通过投入资源来实施项目,以实现某一特定的目标和利益;客户(Customer),也就是项目要交付的对象;最终用户(End User),项目交付产品的最终使用者;合作的其他职能部门;承包商;有时还有项目团队家属。3 什么是软件项目管理?软件项目管理的概念涵盖了管理软件产品开发所必需的知识、技术及工具。其含义是指在软件项目活动中运用一系列知识、技能、工具和技术,以满足软件需求方的整体要求。4 解释软件项目的特殊性表现在哪几个方面?软件项目管理的特殊性表现在以下方面:(1)智力密集,可见性差:(2)单件生产:(3)劳动密集,自动化程度低:(4)使用方法繁琐,维护困难:(5)软件工作渗透了人的因素:5 软件项目管理的基本步骤是什么?(1) 启动软件项目(2) 制定项目计划(3) 跟踪和控制项目计划(4) 评审项目计划(5) 编写管理文档6 项目组织形式有哪几种,分别适用于何种情况?项目组织形式类型有许多,最为典型的是职能型、项目型和钜阵型。职能型组织结构比较适用于一个企业内部项目的运作,对于以承担外部客户(业主)为主要经营业务的单位来说并不合适;而项目型组织结构由于存在着严重的资源浪费,通常只运用在大型的、复杂的且周期较长的项目中;对于众多的项目型企业来说,根据其既需要以项目为导向、又需要充分利用现有资源充分共享的特点,矩阵式的项目组织型式及其对应的矩阵式管理模式是上佳之选。7 项目经理有哪些职责?项目经理的职责:l 确保项目目标实现,保证客户满意。l 制定项目阶段性目标和项目总体控制计划。l 组织精干的项目管理班子。l 及时决策。l 履行合同义务,监督合同执行,处理合同变更。8 软件项目规划要说明哪些内容?项目规划主要说明三个方面的内容:要做什么?谁来做?怎么做?l 要做什么,就是项目的范围。l 谁来做,“谁来做”的问题就必须和下一个内容怎么来做一并来考虑,并且要通过一些策略来驱动“谁”用“什么”方法完成以上的目标。l 怎么做,按照规划的目标完成项目内容,为要完成这些内容,要制定一些策略,整合一些资源,利用一些工具。9 项目时间管理的过程(六个阶段)。项目时间管理的步骤:活动定义、活动排序、活动资源估算、活动持续时间估算、制定进度表、进度控制。