软件工程问答题(共23页).doc
《软件工程问答题(共23页).doc》由会员分享,可在线阅读,更多相关《软件工程问答题(共23页).doc(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上软件工程问答题第1章 软件工程与软件文档1、什么是软件?软件的特点是什么?Answer:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。软件的特点:(1)软件是一种逻辑实体,具有抽象性而不具有物理性(2)软件的生产和硬件不同(3)软件产品不会磨损(4)开发和运行受计算机系统的限制(5)未完全摆脱手工艺的生产方式,计算机辅助开发工具帮助有限(6)软件本身的复杂性(7)软件成本相当昂贵,主要是脑力劳动成本(8)相当多的软件工作涉及到社会因素,比如体制、管理、法律等2、计算机软件有哪些常用的划分标准?Answer:(1)按软件的功能进行
2、划分,可分为:系统软件、支撑软件和应用软件(2)按软件规模进行划分,可分为:微型、小型、中型、大型、甚大型、极大型(3)按软件工作方式划分,可分为:实时处理软件、分时软件、交互式软件和批处理软件(4)按软件服务对象的范围划分可分为:项目软件和产品软件(5)按使用的频度进行划分:有的仅供一次性使用、有的有较高的使用频度(6)按软件失效的影响进行划分:有的软件失效对系统影响不大、有的可能造成灾难性后果3、什么是软件危机?为什么会出现软件危机?软件危机的表现是什么?Answer:软件危机就是在软件开发和维护过程中出现的一系列严重问题。软件危机产生的原因:(1)用户需求不明确(2)软件开发人员和用户对
3、软件需求的理解不一致(3)领域交叉知识的缺乏(4)软件开发人员不能有效、独立自主的处理大型软件的全部关系和各个分支(5)缺乏有力的方法学和工具方面的支持(6)软件产品的复杂性和人类智力的局限性,致使人们无力处理“复杂问题”软件危机的表现:(1)软件开发的进度难以控制,经常出现经费超预算,完成期限一拖再拖的现象(2)软件需求在开发初期不明确,导致矛盾在后期集中暴露,从而给整个开发过程带来灾难性的后果(3)由于缺乏完整规范的资料,加之软件测试不够充分,从而造成软件质量低下,在运行中出现大量问题。4、什么是软件工程?软件工程构成三要素是什么?试说明软件工程是如何克服软件危机的?Answer:软件工程
4、定义:(1)Bauer定义:软件工程是为了经济地获得能够在实际机器上高效运行的可靠软件而建立和使用的一系列好的工程化原则。(2)IEEE定义:软件工程是研究和应用如何以系统化、规范的、可度量的方法去开发、运行和维护软件,即把工程化应用到软件上。软件工程构成三要素为:(1)过程管理部分(2)方法技术手段(3)工具自动或半自动地支持软件的开发和管理要素之间的相互关联和支持5、软件工程的目标是什么?软件工程的原则是什么?Answer:软件工程的目标是:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用户需求的软
5、件产品。软件工程的原则:抽象、信息隐藏、模块化、局部化、一致性、完整性和可验证性。6、ACM提出的12个在不同场合反复出现的概念是什么?如何理解?Answer:ACM(Association for Computer Machinery)美国计算机协会这12个概念是:(1)绑定。通过把一个抽象的概念与附加特性相联系从而使抽象的概念具体化的过程。(2)大问题的复杂性。C(M)+C(N)C(M+N)(3)概念和形式模型。对一个想法或问题进行形式化、特征化、可视化和思维的各种方法。(4)一致性和完备性。 一致性包括公理的一致性、理论与事实的一致性、设计与实现的一致性等。 完备性包括公理的充分性和功能
6、的充分性。(5)效率。关于对空间、时间、人力、财力等资源耗费的度量。(6)演化。对更改的适应性。(7)抽象层次。通过具有不同层次的细节和指标的抽象能够表示一个实体或系统。(8)按空间排序。局部性和近邻性的概念。(9)按时间排序。事件排序中的时间概念。(10)重用。技术、概念或系统成分可被再次使用的能力。(11)安全性。对合适的响应以及抗拒不合适的非预期的请求以保护自己的能力、承受灾难的能力。(12)折中和结论。7、软件文档在软件开发中的地位和作用如何?在软件开发中对文档的基本要求是什么?Answer:软件文档的地位:(1)编制软件文档的过程,实际上就是采用软件工程方法,有组织、有计划的科学管理
7、过程和研究开发过程。(2)软件文档记录软件开发的活动和阶段性成果,它具有永久性并能提供给人或机器阅读。(3)从某种意义上,软件文档甚至比可执行代码程序还重要。软件文档的作用:(1)文档反应软件开发人员各阶段的工作成果和结束标志。(2)文档提高软件开发过程的透明度,便于软件管理人员对整个开发过程进行控制和管理。(3)文档增强软件开发的系统性(4)文档增强软件开发人员之间的交流(5)文档既便于协调软件开发工作,又为软件维护和扩充提供数据。(6)文档声明软件安装。对文档的基本要求:及时性、完整性、准确性、规范性。8、如何理解标准化工作对软件文档编写的积极作用?Answer:9、关于计算机文档的常用标
8、准有哪些?Answer:软件工程和软件文档标准可分为5个级别:国际标准、国家标准、行业标准、企业规范和项目规范。常用的有:ISO(国际标准化组织)、GB(国标)、ANSI(美国国家标准协会)、IEEE(美国电气与电子工程师协会)等10、根据国家标准,软件文档的种类有哪些?Answer:根据GB,软件文档种类有:(1)可行性研究报告(2)项目开发计划(3)软件需求说明书(4)数据要求说明书(5)概要设计说明书(6)详细设计说明书(7)数据库设计说明书(8)用户手册(9)操作手册(10)测试计划(11)测试分析报告(13)开发进度月报(14)项目开发总结报告第2章 软件生命周期、过程模型、CASE
9、1、什么是软件生命周期?把生命周期划分成阶段的目的是什么?Answer:软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程称为软件生命周期。把生命周期划分成阶段的目的:把软件生命周期划分成若干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发工程的困难程度;在软件生命周期的每个阶段都采用科学的管理技术和良好的技术方法,使得软件开发的全过程以一种有条不紊的方式进行,这样,能保证软件的质量,特别是提高软件的可维护性。2、软件生命周期各阶段是如何划分的?试述各阶段的基本任务。Answer:软件生命周期分为软件系统的可行性研究、需求分析、概要设计
10、、详细设计、实现、组装测试、确认测试、使用、维护、退役十个阶段。各阶段的基本任务:可行性研究:分析软件项目的经济可行性、技术可行性、法律可行性、进行方案的选择和编写可行性研究报告。需求分析:确认待开发软件的功能需求、性能需求和运行环境约束,编制软件需求规格说明、软件系统的确认测试准则和用户手册概要。概要设计:根据软件需求规格说明建立软件系统的总体结构和模块间的关系,定义各功能模块接口,设计全局数据库或数据结构,规定设计约束,制定组装测试计划。详细设计:建立“模块开发宗卷”:设计程序模块的内部细节,包括算法、数据结构和各程序模块之间的详细接口信息;拟定模块测试方案。实现:根据详细设计文档将详细设
11、计转化为程序,完成程序调试和程序单元测试。组装测试:将经过单元测试的模块逐步进行组装和测试。确认测试:测试系统是否达到了系统需求。3、什么是软件开发模型?常用的软件开发模型有哪些?Answer:软件开发模型(Software Development Model)是指软件开发全部过程、活动和任务的结构框架。常用的软件开发模型有:以软件需求完全确定为前提的模型:瀑布模型渐进式开放模型:原型模型、螺旋模型形式化开发方法为基础的变换模型4、瀑布模型的特点是什么?快速原型模型与螺旋模型有何区别?Answer:瀑布模型的特点是:(1)规定了阶段之间自上而下、相互衔接的固定次序,上一阶段的成果作为下一阶段的
12、输入(2)每一个阶段完成之后,必须对阶段性成果进行评审,确认之后才可进入下一阶段。快速原型模型与螺旋模型的区别为:快速原型模型:快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。螺旋模型:螺旋模型 ,它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。螺旋模型由风险驱动,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发之中
13、。5、什么是CASE?试举几例你所使用的CASE工具并说明它们的作用和特点。Answer:CASE(Computer Aided Software Engineering)计算机辅助软件工程:在软件工程活动中,软件工程师和管理员按照软件工程的方法和原则,借助计算机及其软件工具的帮助,开发、维护、管理软件产品的过程。CASE工具:事物系统规划工具、项目管理工具、支撑工具、分析和设计工具、程序设计工具、测试工具、原型建造工具、维护工具、框架工具。6、可行性研究的内容有哪些?Answer:可行性研究的内容有:引言、要求和目标、现有系统、所建议的系统、可选择的其它系统方案、投资及效益分析、社会因素方面
14、的可行性、结论。7、用系统流程图描述一家网上银行中网上购物系统的物理模型,并编写此系统的可行性研究报告。Answer:顾客购买活动图:顾客购买活动图主要是描述系统元素的活动,用于展示参与行为的类的活动或动作。下图便是网上顾客购物过程的活动图,直观地反映顾客在网上购买商品活动的整个过程,具体见下图。 从活动图中可以看到,顾客首先访问网上购物网站,浏览网页。接着如果是新用户就登录注册界面,输入相关信息进行注册,立刻成为用户。老用户就直接登录界面。注册成为会员后,就能够享受到商场提供的各种方便的服务,可以利用商品查询的功能,快捷地查询到 自己需要购买的商品,为顾客实现不出门也能方便快捷地了解到自己需
15、要购买的商品的价格,生产日期,有何优惠等。找到自己需要购买的商品以后,就可以进行购物了。在需要购买的商品点击购买按扭,进入订货界面,进行订货。客户可以查询自己的订单,看看是否交易成功。成功后就进行付款 ,最后可以选择继续购买还是注销退出,实现网上购物整个活动过程。第3章 软件文档写作1、什么是文档?如何理解软件文档在软件开发中的桥梁作用?Answer:文档是指某种数据媒体和其中所记录的数据。在软件工程中,文档常常用来表示对活动、需求、过程或结果进行描述、定义、规定、报告或认证的任何书面或图示的信息。软件文档在产品的开发生产和使用、维护过程中起着重要的桥梁作用。(1)提高软件开发过程的能见度(2
16、)提高开发效率(3)作为开发人员在一定阶段的工作结果和结束标志(4)记录开发过程中的有关信息,便于管理人员、开发人员、操作人员、用户之间的协作、交流和了解(5)便于潜在用户了解软件的功能、性能等各项指标,为他们选购符合自己需求的软件提供依据。2、对软件文档的质量要求有哪些?Answer:(1)针对性:文档编制以前应分清读者对象(2)精确性:文档的行文应当十分确切,不能出现多义性的描述(3)清晰性:文档编写应力求简明,如有可能,配以适当的图表,以增强其清晰性(4)完整性:任何一个文档都应当是完整的,独立的,它应自成体系(5)灵活性:不同软件项目的规模和复杂程度有着许多实际差别,不能一样看待3、软
17、件文档的编写一般分为哪几个步骤?Answer:任何一个文件的编写过程都可以分为四个步骤:准备工作、确定写作内容、编写定稿、更新完善。4、如何写好计算机软件文档?Answer:(1)做好准备:深入理解系统和用户、明确写作目的、确定文档的组织方式(2)讲究文风:语言简洁、读者观点、尊重习惯(3)注重表达:图表、符号、引例(4)加强文档编写使用的组织管理 软件文档编写过程管理:软件文档编写计划管理、软件文档编写进度管理、软件文档评审管理、软件文档维护管理 软件文档使用管理:软件文档归档、软件文档控制、软件文档发行管理(5)注意几个问题:文档的整体结构、文档的一致性、文档的可用性、文档的可维护性、文档
18、的及时性、文档的评审测试、文档的使用培训、文档编写自动化5、在文档的编写中如何使用引例?Answer:在使用引例时,应该重视以下几点:(1)引例使用要适当,要有重点,多则无法突出重点,少则不易讲明问题(2)引例要典型,即所使用的引例必须有代表性,必须为读者提供量的概念,最好能提供量的范围(3)引例准确,文档编写者应该清楚这样一点:读者对引例的研究要比对文字叙述的研究认真几倍(4)引例之间应相互补充6、软件文档编写过程中主要包括哪些内容?如何理解文档的一致性?Answer:软件文档编写过程管理主要包括:软件文档编写计划管理、软件文档编写进度管理、软件文档评审管理、软件文档维护管理。所编写的文档是
19、否一致,主要是指:(1)文档与系统是否一致(2)文档之间是否一致(3)文档局部与整体是否一致(4)文档所用图表、符号是否一致(5)文档所用约定是否一致(6)文档所用概念的内涵和外延是否一致第4章 需求分析基础1、什么是软件需求?如何理解软件需求分析的重要性?Answer:IEEE软件工程标准词汇表中的需求定义:(1)用户解决问题或达到目标所需的条件或能力(2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力(3)一种反映上面两点所描述条件或能力的文档说明软件需求分析的重要性体现在:在软件开发过程中遇到的许多问题,都是由于收集、编写、协商、修改软件需求过程中的失误带来的
20、,诸如信息收集不全、功能不明确、交流不充分、文档不完善、需求发生变化等。开发软件系统最为困难的部分就是准确说明开发什么,最为困难的概念性工作便是编写详细的技术需求,包括所有面向用户、面向机器和其他软件系统的接口。软件需求一旦做错,将会给系统带来极大的损害,同时对以后的修改也带来很大的困难。2、软件需求分析是软件工程过程中交换意见最频繁的步骤。为什么交换意见的途径会经常阻塞?Answer:3、需求分析分为哪几个方面?Answer:(1)问题识别(2)分析和综合(3)编制需求分析阶段的文档(4)需求分析评审4、需求获取技术主要作了哪些工作?Answer:(1)建立获取用户需求的方法的框架(2)支持
21、和监控需求获取的过程的机制5、什么是多视点分析?如何理解抽象在软件开发中的作用?Answer:多视点分析就是从各个角度分别对问题进行理解和分析,然后综合成为全面理解。抽象在软件开发中的作用:抽象方法要求分析人员在分析过程中善于捕捉用户描述或问题本身所固有的一般-特殊关系,首先关注一般问题的解决途径,进而指导特殊问题的求解。同时,分析人员应该注意用户描述所处的不同抽象级别,这是从杂乱零散关系中建立清晰思路的重要方法。6、快速原型法如何支持软件需求分析?Answer:在软件开发中,原型是软件的一个早期可运行版本,它反映最终系统的部分重要特性。如果在获得一组基本需求说明后,通过快速分析构造出一个小型
22、的软件系统,满足用户的基本要求。使得用户可在试用原型系统的过程中得到亲身感受和启发,做出反应和评价。然后开发者根据用户的意见对原型加以改进。随着不断试验、纠错、使用、评价和修改,获得新的原型版本。如此周而复始,逐步减少分析和通信中的误解,弥补不足之处,进一步确定各种需求细节,适应需求的变更,从而提高了最终产品的质量。7、需求管理的内容有哪些?怎样理解需求文档的版本控制?Answer:需求管理的内容包括:变更控制、版本控制、需求跟踪、需求状态跟踪。需求文档的版本控制:版本控制是管理需求的一个必要方面。需求文档的每一个版本必须被统一确定,组内每个成员必须能够得到需求的当前版本,必须清楚地将变更写成
23、文档,并及时通知到项目开发所涉及的人员。为了尽量减少困惑、冲突、误传,应仅允许指定的人来更新需求。8、简述软件需求规格说明书的主要方面。Answer:(1)引言:目的+背景+定义+参考资料(2)任务概述:目标+用户特点+假定和约束(3)需求规定:信息功能描述+性能描述+输入输出+数据管理能力+故障处理+其它(4)运行环境规定:硬件、软件+接口+协议9、在软件需求规格说明书的“信息和功能描述”方面为什么采用不同的表达方式?有何区别?Answer:面向数据流的需求分析:数据流图+数据词典+小说明面向对象的需求分析:类图+各个类的详细说明+状态图+交互图+文字说明第5章 面向数据流的分析1、数据流程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 问答题 23
限制150内