软件工程考点例题整理.docx
《软件工程考点例题整理.docx》由会员分享,可在线阅读,更多相关《软件工程考点例题整理.docx(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程概述软件软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。软件的特点1Logical rather than physical(软件是一种逻辑实体,而非具体的物理实体)2Developed or Engineered, not manufactured in the classical sense(在研制、开发活动中被创造出来,但不能按传统的生产含义加以理解)3Doesnt wear out(在软件的运行和使用期间,没有磨损、老化问题)软件的发展软件的发展可以分为这样三个阶段:1程序设计阶段,约为50至60年代2程序系统阶段,约为60至70年代3软件
2、工程阶段,约为70年代以后时期特点程序设计程序系统软件工程软件所指程序程序及说明书程序、文档及数据主要程序设计语言汇编及机器语言高级语言软件语言*软件工作范围程序编写包括设计和测试软件生存期需求者程序设计者本人少数用户市场用户开发软件的组织个人开发小组开发小组及大、中型软件开发机构软件规模小型中、小型大、中、小型决定质量的因素个人程序设计技术小组技术水平管理水平开发技术和手段子程序、程序库结构化程序设计数据库,开发工具,开发环境,工程化开发方法,标准和规范,网络和分布式开发,面向对象技术,软件过程与过程改进维护责任者程序设计者开发小组专职维护人员硬件特征价格高,存储容量小,工作可靠性差降价,速
3、度、存储容量及工作可靠性有明显提高向超高速、大容量、微型化及网络化方向发展软件特征完全不受重视软件技术的发展不能满足需求,出现软件危机开发技术有进步,但未获突破性进展,价格高,未完全摆脱软件危机软件危机*软件需求增长得不到满足;*软件生产成本高,价格昂贵;*软件生产进度无法控制;*软件需求定义不准确,易偏离用户需求;*软件质量不易保证;*软件可维护性差等等软件工程采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,这就是软件工程。Boehm曾为软件工程下了定义:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护
4、这些程序所必需的相关文件资料。Fritz Bauer: The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.软件工程是建立和使用一系列完善的工程化原则以便经济地获得能够在实际机器上有效运行的可靠软件。1983年,IEEE(Institute of Electrical & Electronic Engineers,电气和电子工程师学会)做出
5、的定义是“软件工程是开发、运行、维护和修复软件的系统方法。”它的核心内容是“以工程化的方式组织软件的开发”,其中涉及软件计划、开发和维护各个阶段。软件工程三个要素:方法、工具和过程。1) 软件工程方法为软件开发提供了“如何做”的技术。2) 软件工具为软件工程方法提供自动的或半自动的软件支撑环境。3) 软件工程过程指将软件工程的方法和工具综合起来,以达到合理、及时地进行计算机软件开发的目的。软件工程过程(Software Engineering Process)软件工程过程是指为了获得软件产品,在软件工具支持下由软件工程师采用软件工程方法完成的一系列软件工程活动。软件工程的七条原理著名的软件工程
6、专家B.W.Boehm于1983年在一篇论文中提出了软件工程的七条基本原理。他认为这七条原理是确保软件产品质量和开发效率的原理的最小集合。1 分阶段的生命周期计划严格管理2 坚持进行阶段评审3 实行严格的产品控制4 采用现代程序设计技术5 结果应能清楚地审查6 开发小组的人员应少而精7 承认不断改进软件工程实践的必要性软件工程的目标组织实施软件工程项目是为了获得项目的成功,即达到以下几个主要的目标:1 出较低的开发成本2 到预期的软件功能3 取得较好的软件性能4 使开发的软件易于移植5 需要较低的维护费用6 能按时完成开发工作,及时交付使用概括地说,基本目标,四个字:优质、高效。即质量高、效率
7、高。软件工程的原则软件工程基本目标适用于所有软件工程项目。为达到这些目标,在软件开发过程中必须遵循下列软件工程原则。1抽象2信息隐蔽3模块化4局部化5确定性6一致性7完备性8验证性使用一致性、完备性和可验证性的原则可以帮助开发者设计一个正确的系统。软件生命周期(life cycle)同其它事物一样,软件也有孕育、诞生、成长、成熟、衰亡的生存过程,称为软件的生命周期。包括六阶段内容:1 制定计划2 需求分析3 系统设计4 程序编写5 软件测试6 运行和维护软件生命周期经典模型瀑布模型软件生命周期模型是从软件项目需求定义直至软件经使用后废弃为止,跨越整个生存期的系统开发、运作和维护所实施的全部过程
8、、活动和任务的结构框架。软件开发模型瀑布模型:按照软件生命周期经典模型-瀑布模型的各个阶段实施开发工作优点:1提供了软件开发的基本框架,优于“手工作坊”式的开发方法2有利于大型软件开发过程中人员的组织、管理3有利于软件开发方法和工具的研究与使用,从而提高了大型软件项目开发的质量和效率缺点:1在软件开发的初始阶段指明软件系统的全部需求是困难的,有时甚至是不现实的2需求确定后,用户和软件项目负责人要等相当长的时间(经过设计、编码、测试、运行)才能得到一份软件的最初版本。如果用户对这个软件提出比较大的修改意见,那么整个软件项目将会蒙受巨大的人力、财力、时间方面的损失。渐进模型(演化模型、原型模型)原
9、型模型在克服瀑布模型缺点、减少由于软件需求不明确而给开发工作带来风险方面,确实有着显著的效果原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于需求不确定性高的系统螺旋模型它是生命周期模型与原型模型的结合,不仅体现了两个模型的优点,还增加了新的成分风险分析螺旋模型是支持大型软件开发并具有广泛应用前景的模型例题1开发软件时,对于提高软件开发人员工作效率至关重要的是(A)。软件工程中描述软件生存周期的瀑布模型一般包括计划、(B)、设计、编码、测试、维护等几个阶段。其中,设计阶段在管理上又可以依次分成(C)和(D)两个步骤。供选答案:A: 程序开发环境 操作系统的资源管理功能开发程序人员数量
10、 计算机的并行处理能力B: 需求分析 需求调查可行性分析 问题定义C、D:方案设计代码设计概要设计 数据设计运行设计详细设计故障处理设计 软件体系结构设计答案:A. B. C. D. 2有人将软件的发展过程划分为4个阶段:第一阶段(20世纪50年代)称为“程序设计的原始时期”。这时既没有(A),也没有(B),程序员只能用机器指令编写程序。第二阶段(20世纪60年代)称为“基本软件期”。出现了(A),并逐渐普及。随着(B)的发展,编译技术也有较大的发展。第三阶段(20世纪60年代末-70年代中)称为“程序设计方法时代”。这一时期,与硬件价格下降相反,软件开发费用急剧上升。人们提出了(C)和(D)
11、等程序设计方法,设法降低软件的开发费用。第四阶段(20世纪70年代中期至今)称为“软件工程时期”,软件开发技术不再仅仅是程序设计技术,而是包括了与软件开发的各个阶段,如(E)、(F)、编码、单元测试、综合测试、(G)及其整体有关的各种管理技术。供选择的答案:AD:汇编语言 操作系统 虚拟存储器概念 高级语言结构化程序设计 数据库概念 固件 模块化程序设计EG:使用和维护 兼容性的确认 完整性的确认 设计需求定义 图象处理答案:A. B. C. D. E. F. G.问题定义关于问题性质、工程目标和规模的书面报告可行性研究(也称可行性分析,Feasibility Analysis)目的就是要用最
12、小的代价在尽可能短的时间内确定问题是否能够解决。具体任务:1进一步分析和澄清问题定义。2导出系统的高层逻辑模型。从系统逻辑模型出发,探索若干种可供选择的主要解法(即系统实现方案)。对每种解法都应该至少从下述几方面研究其可行性:Economic feasibility,经济可行性。这个系统的经济效益能超过它的开发成本吗? Technical feasibility,技术可行性。使用现有的技术能实现这个系统吗?Legal feasibility,法律可行性。确定系统开发可能导致的任何侵权行为、妨碍性后果和责任。Operational feasibility,操作可行性。系统的操作方式在这个用户组织
13、内行得通吗?3、对以后的行动方针提出建议。基于计算机系统的成本效益分析是可行性研究的重要内容,它用于评估计算机系统的经济合理性。给出系统开发的成本论证,并将估算的成本与预期的利润进行对比。成本软件开发成本主要表现为人力消耗(乘以平均工资则得到开发费用)。一般来说,基于计算机系统的成本由四个部分组成:1购置并安装软硬件及有关设备的费用2系统开发费用3系统安装、运行和维护费用4人员培训费用1、代码行技术代码行技术是比较简单的定量估算方法,也是一种自底向上的估算方法。它把开发每个软件功能的成本和实现这个功能需要用的源代码行数联系起来。通常根据经验和历史数据估计实现一个功能需要的源程序行数。一旦估计出
14、源代码行数以后,用每行代码的平均成本乘以行数即可确定软件的成本。每行代码的平均成本主要取决于软件的复杂程度和开发小组的工资水平。大致分如下两步: 对要求设计的系统进行功能分解,直到可以对为实现该功能所要求的源代码行数做出可靠的估算为止。根据经验和历史数据,对每个功能块估计一个最有利的、最可能的和最不利的LOC值。设最有利的LOC值为a,最可能的LOC值为m,最不利的LOC值为b,则代码行的期望(平均)值L 再根据历史数据和经验,选择每个软件功能块的LOC价格计算每个功能块的价格及工作量,并确定该软件项目总的估算价格和工作量。可行性论证的提纲大致包括如下内容:1、 背景情况。问题描述,市场需求等
15、2、 系统描述。简略的范围描述,计划目标和阶段目标等3、 候选方案。候选方案的配置,选择最终方案的准则等4、 价格利益分析。经费概算和预期经济效益5、 技术冒险评价。包括技术实力、设备条件和已有工作基础6、 操作可行性。用户组织对操作方式的希望7、 法律可行性。系统开发可能导致的侵权、违法等8、 其它与项目有关的问题。可能的未来变化9、 结论。需求分析所谓软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。需求分析具体任务:1、 确定对系统的综合要求1) 系统功能要求2) 系统性能要求3) 运行要求4) 将来可能提出的要求2、 分析系统的数据要求(需求分析的本质就是对数据和
16、加工进行分析)3、 导出系统的逻辑模型4、 修正系统开发计划5、 开发原型系统(可选)需求获取技术1、 访谈与会议2、 书面调查法3、 观察用户工作流程4、 用户和开发人员共同组成联合小组需求调查主要包括四部分内容:1、 组织概况2、 组织的业务活动:1) 组织的业务状态2) 业务的详细内容3) 输入输出信息从六个方面着手:*信息流向*信息种类*利用的目的*信息的使用者和制造者*输入和输出地点*输入和输出信息量3、 存在问题、约束条件4、 未来要求结构化分析方法(SA方法)就是面向数据流自顶向下逐步求精进行需求分析的方法。分析的过程:面向数据流,采用自顶向下、分支分层、逐步分解、逐步细化、逐步
17、求精,最后落实到具体加工、基本加工、简单加工。用逐步求解的方法控制系统的复杂度,使得复杂系统简单化、抽象系统具体化。数据流图(DFD)数据流图描绘系统的逻辑模型,或者说描绘信息在系统中流动和处理的情况。基本系统模型数据流分析将系统模型视作一种数据变换,它接受各种形式的输入,通过变换产生各种形式的输出。例,下图是一个飞机机票预定系统的基本系统模型 数据流图的成分下图是机票预定系统的DFD。可以看出,数据流图是由以下四个基本成分组成的:1、 数据流(用箭头表示)2、 加工(用圆圈表示)3、 文件(用单线或双线表示)4、 数据源点和终点(用方框表示)几点说明:1、 一个加工并不一定是一个程序。2、
18、一个数据存储也不等同于一个文件。3、 数据存储和数据流都是数据,但所处状态不同。自顶向下逐层画DFD的步骤如下:1) 把基本系统模型加上源点和终点作为顶层DFD。2) 画出各层DFD,逐层画DFD的过程也就是逐层分解的过程。为便于管理,要对分层DFD和图中的加工进行编号。A、 子图的图号就是分解的父图中相应加工的编号。B、 子图中的加工编号是由子图号、小数点、局部顺序号组成。3) 画出总的DFD。(可选)画DFD时要注意的几个问题:1、 画DFD不是画流程图。DFD只描述“做什么”,不描述“怎么做”和做的顺序。而流程图表示对数据进行加工的次序和细节。2、 父图和子图的平衡。父图某加工的输入输出
19、和分解这个加工的子图的输入输出必须完全一致。3、 局部文件。文件总是局部于分层DFD的某一层或某几层。4、 分解的深度与层次。逐层分解要求分解到加工成为足够简单、易于理解的基本加工为止。所谓基本加工就是加工的意义明确、操作单一。但是究竟分解的层次多少合适,应当根据问题的复杂程度来确定。一般来说,可参考以下准则:1) 一个加工的分解,最多不要超过7个子加工。若超过7个时,可以用增加层次的办法来减少子加工数。2) 分解在逻辑上应合理、自然,不能硬性分割。3) 在保证数据流的易理解性的前提下,尽量少分解层次。这样可以减少层次的界面。4) 分解要均匀。即在一张DFD中,不要有些加工已是基本加工,另一些
20、加工还要分解好几层。绝对均匀不可能,但不要相差太大。数据字典(DD)数据字典是关于数据的信息的集合,也就是对数据流图中包含的系统元素(所有数据流、加工、文件)的定义的集合。数据流图和数据字典是需求规格说明书的主要组成部分。1、 数据流条目数据流条目是定义数据流的。定义的方式一般是列出该数据流的各组成数据项。在定义数据流时,通常借助于一些简单的符号。如=等价于(定义为)+ “与” x=a+b,x由a和b组成|,,“或”x= , ,x=a|b x由a或b组成重复 x=a x由0个或多个a组成mn重复 如x=3a8 表示x中至少出现3次a,至多出现8次a()可选(选择)如x=a+(b)+c b可以在
21、x中出现,也可以不出现“”基本数据元素 x=“a” x为取值为a的数据元素.连接符 x=1.9 x可取1至9中的任一值如数据流“存折”可以定义:存折=户名+所号+帐号+开户日+性质+(印密)+1存取行500000000099999999户名=2字母24所号=“001”“999”帐号=“00000001”“99999999”开户日=年+月+日性质=“1”.“6”印密=“0”存取行=日期+(摘要)+支出+存入+余额+操作+复核日期=年+月+日年=“0001”.“9999”月=“01”.“12”日=“01”.“31”摘要=1字母4支出=金额金额=“0000000.01”.“9999999.99”操作
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 考点 例题 整理
限制150内