软件工程期末复习知识点整理_第1页
软件工程期末复习知识点整理_第2页
软件工程期末复习知识点整理_第3页
软件工程期末复习知识点整理_第4页
软件工程期末复习知识点整理_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件工程期末复习知识点整理软件工程期末复习知识点整理16/16软件工程期末复习知识点整理复习整理一, 绪论软件的定义软件是能够完成预定功能和性能的可执行的计算机程序,包括使程序正常执行所须要的数据,以及有关描述程序操作和运用的文档。(软件=程序+文档)软件工程的定义是指导计算机软件开发和维护的一门工程学科;采纳工程化的原理及方法对软件进行安排, 开发和维护;把证明正确的管理技术和最好技术综合运用到软件开发中;探讨经济地开发出高质量的软件方法和技术;探讨有效维护软件的方法和技术。软件危机的概念,及出现的缘由软件开发技术的进步未能满意发展的要求。在软件开发中遇到的问题找不到解决的方法,问题积累起来

2、,形态尖锐的冲突,导致了软件危机。产生缘由:软件规模越来越大,结构越来越困难软件开发管理困难而困难。软件开发费用不断增加。软件开发技术落后。生产方式落后,仍采纳手工方式。开发工具落后,生产率提高缓慢。三种编程范型的特点(1) 过程式编程范型:把程序理解为一组被动的数据和一组能动的过程所构成;程序=数据结构+算法;着眼于程序的过程和基本限制结构,粒度最小(2) 面对对象编程范型:数据及其操作被封装在对象中;程序=对象+消息;着眼于程序中的对象,粒度比较大(3) 基于构件技术的编程范型:构件是通用的, 可复用的对象类;程序=构件+架构;眼于适合整个领域的类对象,粒度最大二, 软件生存周期及软件过程

3、软件生存周期的定义,把生存周期划分为若干阶段的目的是什么,有哪几个主要活动定义:一个软件从开始立项起,到废弃不用止,统称为软件的生存周期目的:软件生存周期划分为安排, 开发和运行3个时期;把整个生存周期划分为较小的阶段,给每个阶段给予确定而有限的任务,就能够化简每一步的工作内容,使因为软件规模而增长而大大增加了软件困难性变得较易限制和管理。主要活动:需求分析, 软件分析, 软件设计, 编码, 软件测试, 运行维护(P19)软件生命周期划分为哪几个阶段软件生命周期分为三个时期八个阶段:软件定义:问题定义, 可行性探讨;软件开发:需求分析, 概要设计, 具体设计, 编码, 测试;软件运行:软件维护

4、瀑布模型的特点和缺陷特点:线性模型,每一阶段必需完成规定的文档(阶段间的依次性和依靠性)优点:可强迫开发人员采纳规范化的方法。严格地规定了每个阶段必需提交的文档。要求每个阶段交出的全部产品都必需是经过验证的。缺点假如需求规格说明及用户需求之间有差异,很可能导致最终开发出的软件产品不能真正满意用户的须要。(瀑布模型几乎完全依靠于书面的规格说明)由于多数用户不熟识计算机,系统分析员对用户的专业也了解不深,因而很难在在开发的初始阶段彻底弄清软件需求。(瀑布模型只适用于项目开始时需求已确定的状况)几种软件开发模型的主要特点开发模型特点适用场合瀑布模型线性模型,每一阶段必需完成规定的文档需求明确的中,

5、小型软件开发快速原型模型用户介入早,通过迭代完善用户需求,应用快速开发工具需求模糊的小型软件开发增量模型每次迭代完成一个增量,可用于OO开发简单分块的大型软件开发螺旋模型典型迭代模型,重视风险分析,可用于OO开发具有不确定性的大型软件开发构件集成模型软件开发及构件开发平行进行,主要用于OO开发领域工程, 行业的中型软件开发软件可行性探讨的目的和内容目的:是弄清待开发的项目是不是可能实现和值得进行内容:经济可行性,技术可行性,运行可行性,法律可行性三, 结构化分析(重点)P71结构化分析SA模型的组成结构化分析的基本步骤1.了解当前系统的工作流程,获得当前系统的物理模型。2.抽象出当前系统的逻辑

6、模型。3.建立目标系统的逻辑模型。4.作进一步补充和优化。绘制数据流图DFD的留意点父图及子图的平衡,即父图的输入输出数据流及子图的输入输出数据流一样区分局部文件和局部外部项分解的速度不宜过快按规则命名加工编号提高数据流图的易懂性,合理分解决策表, 决策树的绘制例题:邮寄包收费标准如下:若收件地点在1000公里以内,一般件每公斤2元,挂号件每公斤3元。若收件地点在1000公里以外,一般件每公斤25元,挂号件每公斤35元;若重量大于30公斤,超重部分每分斤加收05元。请绘制收费的原始决策表,并对其进行优化,得到优化后的决策表,再绘制出决策树(重量用W表示)决策表(判定表):决策树(判定树):结构

7、化的三种限制结构依次, 选择, 循环DO_WHILE流程图, N-S图和PDL的特点,通过PDL语言绘制流程图和N-S图例题:将三个数从小到大排序流程图:N-S图:给定一个系统,用结构化分析方法进行分析,画出DFD, DD四, 面对对象及UML面对对象的基本特征抽象, 封装, 继承, 多态静态, 动态UML图例(P84)五, 需求工程及需求分析需求分析的任务及步骤任务:(1)通过对问题及其环境的理解, 分析和综合建立分析模型,(2)在完全弄清用户对软件系统的准确要求的基础上,用“软件需求规格说明书”把用户的需求表达出来。需求分析的认为就是为了明确要开发的是一个什么样的系统,而不是去实现这个系统

8、。步骤:需求获得, 需求建模, 需求描述(编写SRS), 需求验证需求分析和需求工程的困难性客户说不清晰需求分析人员或客户理解有误需求自身常常变动面对对象需求模型组成用例图, 用例规约, 补充规约, 术语表用例规约应当包含哪些内容?基本流和备选流的概念及区分(P117)六, 面对对象分析面对对象分析的主要任务(P138)首先要理解用户的需求,包括全面理解和分析用户需求,明确所开发的软件系统的职责,形成文件并规范地加以表述。然后进行分析,提取类和对象,并结合分析进行建模。其基本步骤是:标识类,定义属性和方法;刻画类的层次;表示对象以及对象及对象之间的关系;为对象的行为建模。这些步骤肯反复进行,直

9、至完成建模。面对对象分析的模型组成软件设计的任务是什么?概要设计和具体设计的主要工作任务:将软件分析模型转变为考虑具体实现技术和平台的软件设计模型。概要设计(结构设计):把一个软件需求转换为软件表示时,首先设计出软件总的体系结构。基本任务:设计软件系统结构进行数据结构及数据库的设计编写概要设计的文档评审具体设计:为SC图中的每个模块确定采纳的算法和块内数据结构,用选定的表达工具(流程图, N-S图, PAD图, 伪代码)给出清晰的描述。基本任务:为每个模块进行具体的算法设计为模块内的数据结构进行设计对数据库进行物理设计其他设计编写具体设计说明书评审七, 软件设计模块的定义模块是一个拥有明确定义

10、的 , 输出和特性的程序实体。模块化是指解决一个困难问题时自顶向下逐层把软件系统划分成若干模块的过程。每个模块完成一个特定的子功能,全部的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。模块化设计是把大型软件根据规定的原则划分成一个个较小的, 相对独立但又相互关联的模块。但又相互关联的模块。什么是模块独立性?用什么来度量(低内聚高耦合)?模块独立性指每个模块只完成系统要求的独立的子功能,并且及其他模块的联系最少且接口简单。模块独立的概念是模块化, 抽象, 信息隐藏和局部化概念的直接结果。独立性可以从两个方面来度量:模块本身的内聚性(Cohesion)和模块之间的耦合(Coupl

11、ing)。耦合, 内聚的定义,几种类型(P171)内聚:从功能的角度对模块内部聚合实力的量度低内聚(偶然性内聚, 逻辑性内聚, 时间性内聚),中内聚(过程性内聚, 通信性内聚),高内聚(依次性内聚, 功能性内聚)耦合:对软件内部块间联系得到度量弱耦合(非直接耦合, 数据耦合, 特征耦合),中耦合(限制耦合),较强耦合(外部耦合, 公共耦合),强耦合(内容耦合)扇入, 扇出的定义扇入:一个模块被其他模块调用的个数扇出:一个模块调用其他模块的个数八, 编码和测试四代语言的特点和典型代表第一代也称机器语言,是计算机能直接识别和执行的语言。优点是无需翻译,占用内存少, 执行速度快。缺点是随机而异,通用

12、性差,而且因指令和数据都是二进制代码形式,难于阅读和记忆,编码工作量大,难以维护。第二代语言也叫汇编语言,是用助记符号来表示机器指令的符号指令的符号语言。优点是比机器语言易记。缺点同机器语言。第三代语言还称高级语言,简单学习,通用性强,书写出的程序比较短,便于推广和沟通,是很志向的一种程序设计语言。代表有C语言,C#语言。第四代语言又叫面对应用的语言。主要特点是:非过程性, 采纳图形窗口和人机对话形式, 基于数据库和“面对对象”技术,易编程, 易理解, 易运用, 易维护。代表有SQL关系数据查询语言,UNIX系统的shell语言。变量命名规则软件测试的基本任务程序测试的是为了发觉错误而执行程序

13、的过程。目的:发觉程序的错误任务:通过在计算机上执行程序,暴露程序中潜在的错误。软件测试要经过哪些步骤(P254)这些测试及软件开发各阶段之间有什么关系?软件测试要经过的步骤是:单元测试集成测试确认测试系统测试。单元测试对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发觉模块在编码中或算法中的错误。该阶段涉及编码和具体设计文档。集成测试是为了检查及设计相关的软件体系结构的有关问题,也就是检查概要设计是否合理有效。确认测试主要是检查已实现的软件是否满意需求规格说明书中确定了的各种需求。系统测试是把已确认的软件及其他系统元素(如硬件, 其他支持软件, 数据, 人工等)结合

14、在一起进行测试。以确定软件是否可以支付运用。测试及纠错有哪些区分?测试的目的是发觉程序错误;测试的任务是通过在计算机上执行程序,暴露程序中潜在的错误。纠错的目的是定位和订正错误;纠错的任务是软件故障,保证程序的牢靠运行。通常把一次程序执行须要的测试数据成为一个测试用例,每个测试用例产生一个相应的测试结果,假如它及期望结果不符,便说明程序中存在错误,须要用纠错来改正。程序员保证代码质量的手段?编译器静态检查工具代码走查单元测试面对对象软件的测试策略(P261)九, 软件维护1, 软件维护的目的(P271)软件维护的最终目的,是满意用户对已开发产品的性能及运行环境的不断提高的需求,进而延长软件的寿

15、命。2, 软件维护的种类(P271)完善性维护适应性维护纠错性维护预防性维护3, 软件配置管理的概念(p278)配置管理能够系统地处理变更,从而使得软件系统可以随时保持其完整性。故配置管理也可以称为变更限制,用来评估提出的变更要求,跟踪变更,并保存系统不同时间点上的状态。4, 纠错和纠错性维护有哪些异同?纠错的目的是定位和订正错误;纠错的任务是软件故障,保证程序的牢靠运行。纠错性维护是由于软件测试的不彻底性,任何大型软件交付运用后,都会接着发觉潜在的错误,对它们进行诊断和改正。目的在于订正在开发期间未能发觉的遗留错误。十一, 软件工程管理软件成本估计(P302)PERT图和Gantt图的特点(

16、1)Gantt(甘特)图:用水平线段表示任务的工作阶段;线段的起点和终点分别对应着任务的开工时间和完成时间;线段的长度表示完成任务所需的时间。优点:能清晰地描述每个任务从何时开始,到何时结束以及各个任务之间的并行性。缺点:不能清晰地反映出个任务之间的依靠关系,难以确定整个项目的关键所在,也不能反映安排中有潜力的部分。(2)PERT图:PERT图是一个有向图,图中的有向弧表示任务,它可以标上完成该任务所需的时间;图中的结点表示流入结点的任务的结束,并开始流出结点的任务,这里把结点称为事务。只有当流入该结点的全部任务都结束时,结点所表示的事务才出现,流出结点的任务才可以开始。事务本身不消耗时间和资源,它仅表示某个时间点。每个事务有一个事务号和出现该事务的最早时刻和最迟时刻。每个任务还有一个松弛时间,表示在不影响整个工期的前提下,完成该任务有多少机动余地。松弛时间为0的任务构成了完成整个工程的关键路径。PERT图不仅给出了每个任务的开始时间, 结束时间和完成该任务所需的时间,还给出了任务之间的关系,即哪些任务完成后才能开始另外一些任务,以及如期完成整个工

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论