软件工程(1)

上传人:子 文档编号:45963695 上传时间:2018-06-20 格式:DOC 页数:11 大小:37.50KB
返回 下载 相关 举报
软件工程(1)_第1页
第1页 / 共11页
软件工程(1)_第2页
第2页 / 共11页
软件工程(1)_第3页
第3页 / 共11页
软件工程(1)_第4页
第4页 / 共11页
软件工程(1)_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《软件工程(1)》由会员分享,可在线阅读,更多相关《软件工程(1)(11页珍藏版)》请在金锄头文库上搜索。

1、软件工程软件工程(1)(1)1.什么是软件?软件的特点?软件=计算机程序+文档资料;特点:1)软件区别于物质产品;2)软件与硬件的生产方式不同;3)软件故障的生产与硬件不同;4)软件的复杂性;5)软件成本相当昂贵。2.软件的发展:程序设计阶段(20 世纪 50 年代初-60 年代中期);程序系统阶段(60 年代中期-70 年代末) ;软件工程阶段(70 年代末-80 年代末) ;第四阶段(90 年代初-至今) 。3.什么是软件危机?软件危机的表现?产生软件危机的原因?解决软件危机的途径?软件危机指的是软件开发和维护过程中遇到的一系列严重问题;表现:1)经费预算经常突破,完成时间一再拖延;2)开

2、发的软件不能满足用户要求;3)开发的软件可维护性差;4)开发的软件可靠性差。原因:1)软件的规模越来越大、结构越来越复杂;2)软件开发管理困难;3)软件开发费用不断增加;4)软件开发技术落后;5)生产方式落后;6)开发工具落后,生产率提高缓慢。解决方法:1) 技术措施:使用更好的软件开发方法和开发工具;2)组织管理措施:应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。4.什么是软件工程?软件工程学是一门指导软件开发和维护的工程学科,是为了经济的获得能够在实际机器上有效运行的可靠软件而建立和使用的一系列完善的工程化原则。5.软件工程的三要素:方法,工具,过程。6.什么是软件的

3、生存周期?软件生存周期划分的原则?软件生存周期是指一个软件从提出开发要求开始,直到该软件报废为止的整个时期;在划分软件生存周期的阶段时,应遵循的基本原则是 1)各阶段的任务应尽可能相对独立,2)同一阶段各项任务的性质尽可能相同,降低复杂度,简化联系。7.软件生存周期由哪三个时期及八个阶段组成?它们的任务?计划时期(问题定义:确定问题是什么;可行性研究:确定问题是否存在解,是否值得解;需求分析:软件系统做什么,确定功能、性能)开发系统时期(总体设计:解决软件的总体结构、划分模块;详细设计:给出每个模块实现的算法;编码:选择编辑语言,给出系统源程序代码;测试:进行单元测试、集成测试、验收测试)运行

4、维护时期(运行维护阶段:改正、适应、完善、预防)8.软件工程的三个面向(数据流、数据结构、对象) ,两个分支(过程【SA、SD、SP】 ,对象【OOA、OOD、OOP】 )9.软件的开发模型的概念及方法?软件开发模型是软件工程思想的具体化,是实施与过程模型中的软件开发方法和工具,是在软件开发实践中总结出来的软件开发方法和步骤;方法:瀑布模型;快速原型模型;增量模型;喷泉模型;螺旋模型。软件的开发模型的应用及特点(5 个模型)常用的软件生存期模型有:1)瀑布模型:按照传统的生命周期方法学开发软件,各阶段的工作自顶向下从抽象到具体顺序进行2)快速原型模型:从用户的基本需求出发=快速地建立一个目标系

5、统的最初版本交给用户试用=补充和修改=得出最终系统。迭代过程。3)增量模型: 1)基于瀑布模型的渐增模型 2)基于原型的快速原型模型4)螺旋模型:螺旋模型将瀑布模型与演化模型结合起来,并且加入两种模型均忽略了的风险分析。螺旋模型沿着螺线旋转,自内向外每旋转一圈便开发出更完善的一个新版本。 5) 喷泉模型:体现了迭代和无间隙的特性。系统某个部分常常重复工作多次,相关对象在每次迭代中随之加入演进的软件成分。无间隙是指在各项开发活动,即分析、设计和编码之间不存在明显的边界。喷泉模型是对象驱动的过程。 10.可行性研究的任务及内容?任务:经济可行性(成本效益分析|问题是否值得解) ;技术可行性(是否存

6、在解) ;运行可行性;法律可行性(版权、责任) ;开发方案可行性(最佳方案) 。内容(步骤):1)复查系统规模和目标;2)研究目前正在使用的系统;3)提出新系统的高层逻辑模型;4)重新定义问题;5)提出和评价供选择的方案;6)推荐一个方案并说明理由;7)书写计划任务书;8)提交审查。12.需求分析任务的任务主要是:(1)确定对系统的综合要求(四个方面) (系统功能要求、系统性能要求、运行要求系统运行环境、将来可能提出的要求) ;(2)分析系统的数据要求(3) 导出系统的逻辑模型(数据流图+数据字典+主要的处理算法) ;(4)修正系统开发计划;(5) 开发原型系统。13.什么是数据流图?系统流程

7、图?数据流图(DFD)采用图形符号的形式描绘信息在系统各部件之间的流动和加工处理过程(描绘逻辑系统)四个基本符号是:数据的源点或终点(矩形或立方形) 数据处理(圆角矩形或椭圆) 数据存储(半框) 数据流(向线)系统流程图采用黑盒子形式,描绘信息在系统各部件之间的流动情况(描绘物理系统)14.数据字典的用途及定义方法?概念:数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合用途:数据字典(DD)是分析阶段重要的工具。在数据字典中建立的定义有助于改进分析员和用户之间的通信,对数据的严密的定义有助于改进在不同的开发人员或不同的开发小组之间的通信。如果要求所有开发人员都根据公

8、共的数据字典描述数据和设计模块,则能避免许多麻烦的接口问题。实现数据字典有两种途径:全人工过程和全自动化过程。15.经济可行性的几个概念?投资的现代值、未来值、投资回收期、纯收入、投资回收率、软件可用性、软件可靠性假设年利率为 i,如果现在投资 P 元,则 n 年后可以得到投资的未来价值为:F=P*(1+i)的 n 次方如果 n 年后能收入 F 元钱,那么这些投资的现在价值是:P=F/(1+ i)的n 次方所谓投资回收期就是使累计的经济效益等于最初投资所需要的时间。纯收入就是在整个生命周期之内系统的累计经济效益(折合成现在值)与投资之差。 投资回收率用它衡量投资效益的大小。15.总体设计的任务

9、?软件设计的三个设计?任务:1)设计软件系统结构;2)数据结构及数据库设计;3)编写概要设计文档;4)评审。三个设计:总体设计;数据结构设计或数据库设计;详细设计;16.模块、模块化、抽象、模块独立性、信息隐藏与局部化?模块在程序中是数据说明、可行性语句等程序对象的集合,或是单独命名和编址的元素,如高级语言中的过程、函数、子程序等。模块化指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。抽象是指在考虑问题时,把事物之间的共性集中和概括起来,而忽略它们之间的差异。模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单(内聚性和耦合性) 。信息隐藏指在设

10、计和确定模块时,使得一个模块内包含的信息(过程或数据) ,对于不需要这些信息的其他模块来说,是不可访问的。局部化是指把一些关系密切的软件元素在物理位置上彼此靠近。在模块中使用局部数据元素是局部化的一个例子。 17.什么是耦合?什么是内聚?7 种耦合,7 种内聚的任务?(模块内的高内聚反应模块间的低耦合)耦合性也称块间关系,指软件系统结构中各模块间相互联系紧密程度的一种度量(耦合性越强,独立性越差)7 种耦合:非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合;。内聚性又称块内联系,指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。7 种内聚:低内聚(偶

11、然内聚、逻辑内聚、时间内聚) 、中内聚(过程内聚、通信内聚、 )高内聚(顺序内聚、功能内聚。 )18.什么是事务流?什么是变换流?事务流:数据沿输入通路到达一个处理,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行,这类数据流应该划分为一类特殊的数据流,称为事务流。 变换流:信息沿输入通路进入系统,同时由外部形势变换为内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输入通路变换成外部形式离开系统,当数据流图具有这些特征时,这种信息流就叫做变换流。18.模块的控制域和作用域?(模块的作用范围应在控制范围之内)模块的控制范围包括它本身以及所有直接或间接的下属模块。模块的作用范围是

12、指模块内一个判定影响的所有模块的集合19.软件宽度、深度、扇入、扇出?宽度:表示一层中最大的模块个数;深度:表示软件结构中从顶层模块到底层模块的层数;扇入数:指一个模块的直接上属模块个数;扇出数:指一个模块直接控制下属的模块个数。20.详细设计的任务:1)模块的算法设计;2)模块的数据设计;3)模块的接口设计;4)模块的测试用例设计;5)模块的其他设计;6)编写“详细设计说明书” 。21.详细设计三大类工具的划分(1)图形工具:程序流程图;N-S 图(合图);PAD 图(2)表格工具:判定表 判定树(3)语言工具:PDL 伪代码语言22.结构化设计(SP)的原则及概念?概念:如果一个程序的代码

13、仅仅通过顺序、选择和循环这三种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序为结构化的。原则:1)自顶向下;2)逐步求精;3)模块化;4)限制使用 GOTO。22.环形复杂度计算:(1)V(G)=E-N+2(E 为弧数,N 为结点数) (2)V(G)=有界区域+无界区域 (3)V(G)=判定点个数+123.面向数据结构的方法:(1)Jackson(2)warnier (基于数据结构最后得出过程性描述)23.编码的任务:将详细设计翻译成计算机可以理解并且最终可运行的代码。24.开发设计的语言的分类,软件的发展,程序设计语言的选择标准,程序设计的风格?分类:1)按语言级别

14、可以分为低级语言和高级语言;2)按用户要求分为过程式语言和非过程式语言;3)按应用范围分为通用语言与专用语言;4)按使用方式分为交互式语言和非交互式语言;5)按成分性质分为顺序语言、并发语言和分布语言。选择标准:1)项目的应用领域:应尽量选取适合某个应用领域的语言;2)算法和计算复杂性:要根据不同语言的特点来选取能够适应软件项目算法和计算复杂性的语言;3)软件的执行环境 :要选取计算机上能运行且具有相应支持软件的语言;4)性能因素:应结合工程具体性能来考虑;5)数据结构的复杂性 :要根据不同语言构造数据结构类型的能力选取适合的语言;6)软件开发人员的知识水平以及心理因素达到要求。风格:1)源程

15、序文档化;2)数据说明方法;3)语句构造方法;4)输入和输出方法。25.什么是软件测试?软件测试的过程?软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例,并利用这些测试用例去运行程序,以发现程序错误的过程。过程:单元测试、集成测试、确认测试和系统测试,最后进行验收测试。26.软件测试的两个阶段及任务:1)测试阶段:以发现错误为主要目的;2)调试阶段:确定错误的类型及位置,改正错误。27.软件测试用例的功能及组成:功能:测试数据,输出结果。测试用例由测试输入数据和与之对应的预期输出结果这两部分组成。28.什么是白盒测试?黑盒测试?穷尽测试?白盒测试:把测试对象看做一个

16、打开的盒子,允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。黑盒测试:把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求分析规格说明,检查程序的功能是否符合它的功能说明。29.白盒测试技术方法分类及任务:语句覆盖、判定覆盖、条件覆盖、“判定条件”覆盖、条件组合覆盖及路径覆盖。30.黑盒测试技术:等价划分法、边界值法、错误推测法、因果图法、正交实验设计法、判定表驱动法、功能测试等。31.单元测试的五大测试?1)模块接口;2)局部数据结构;3)重要的执行路径;4)边界条件;5)错误处理。32.集成测试方法的分类:非渐增式测试和渐增式测试(自顶向下集合(深度优先、广度优先) 、自底向上集合)33.驱动模块、桩模块的概念?驱动模块:用来调用被测模块的模拟模块 ;桩模块:用来代替被测模块所调用的模块。34.调试的方法及任务?方法:1)硬性纠错;2)回溯法排错;3)归纳法;4)演绎法排错。任务:确定错误的原因及位置,并进行程序修改、排除错误。35.面向对象方法与传统方法的比较?传统方法:1)软

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号