软件工程总结-结构化.doc_第1页
软件工程总结-结构化.doc_第2页
软件工程总结-结构化.doc_第3页
软件工程总结-结构化.doc_第4页
软件工程总结-结构化.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

第一章:1.什么是软件危机软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重的问题(如何开发软件,如何维护软件)软件危机主要有以下一些典型的表现:(1)对软件开发成本和进度的估计常常很不准确(2)用户对”已完成的”软件系统不满意的现象经常发生(3)软件产品的质量往往不可靠(4)软件常常是不可维护的(5)软件通常没有适当的文档资料(6)软件成本在计算机系统总成本中所占比例逐年上升(7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势2.产生软件危机的重要原因(1)忽视了软件开发前期的调研和分析工作(2)没有统一的,规范的方法论指导(3)文档资料不齐全,忽视人与人之间的交流(4)忽视测试阶段的工作(5)忽视软件的维护一方面与软件本身的特点有关,另一方面和软件开发与维护的方法不正确有关3.软件产品包括程序,数据,以及相关文档的完整集合4.软件工程三要素:过程,方法和工具5.软件工程的基本概念软件工程是指导计算机软件开发和维护的一门工程学科,采用工程的概念,原理,技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。6.软件工程的方法学:是软件工程包含3个方面的因素:方法,工具,过程。分为:传统的方法学和面向对象的方法学7.软件的生命周期:大致可分为三个时期:软件定义,软件开发和运行维护 详细阶段为:(1)问题定义 (2)可行性研究 (3)需求分析 (4)总体设计 (5)详细设计 (6)编码和单元测试 (7)综合测试 (8)软件维护8.软件工程模型有:(1)瀑布模型: 特点为:1.阶段间具有数序性和依赖性。即必须等前一阶段的工作完成之后,才能开始后一阶段的工作。前一阶段的输出文档就是后一阶段的输入文档,因此,只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果。2.推迟实现的观点。清楚的区分逻辑设计与物理设计,尽可能推迟程序的物理实现,是瀑布模型开发软件的一条重要的指导思想。(瀑布模型在编码之前设置了系统分析和系统设计的各个阶段,分析与设计阶段的基本任务规定,在这两个阶段主要考虑目标系统的逻辑模型,不涉及软件的物理实现)。3.质量保证的观点。(2)快速原型模型(建立一个能反应用户主要需求的原型系统):特点为:原型系统已经通过与用户交互而得到经验,据此产生的规格说明文档正确的描述了用户需求,因此,在开发过程的后续阶段不会因为发现了规格说明文档的错误而进行较大的返工。(3)增量模型(渐增模型):特点为:1.能在较短的时间内向用户提交可完成部分工作的产品。2.逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。(4)螺旋模型特点为:对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的重要目标;减少了过多测试(浪费资金)或测试不足(产品故障多)所带来的风险;更重要的是,在螺旋模型中维护知识模型的另一个周期,在维护和开发之间并没有本质区别。(螺旋模型主要适用于内部开发的大规模软件项目)。螺旋模型的主要优势在于它是风险驱动的。(5)喷泉模型特点为:具有迭代和无缝的特性9.什么是RUP统一过程RUP:(Rational Unified Process)它是一个具有突出优点的软件过程模型,它提供了理想开发环境下软件过程的一种完整而完美的模式,可以作为对一个项目进行软件开发的良好开端。RUP总结了经过多年商业化验证的6条最有效的软件开发验证,这些验证被称为“最佳实践”分别为:(1)迭代式开发 (2)管理需求 (3)使用给予构建的体系结构 (4)可视化建模 (5)验证软件质量 (6)控制软件变更RUP软件开发生命周期:(1)核心工作流 (2)工作阶段 (3)RUP迭代式开发 第二章1.可行性研究的目的和过程可行性研究的目的:必须时刻记住,可行性研究的目的不是解决问题,而是确定问题是否值得去解决。可行性研究的过程:(1)复查系统规模和目标(2)研究目前正在使用的系统(3)导出新系统的高层逻辑模型(4)进一步定义问题(5)导出和评价供选择的解法(6)推荐行动方针(7)草拟开发计划(8)书写文档提交审查2.比较系统流程图和数据流程图系统流程图是概括的描绘物理系统的传统工具,它的基本思想就是用图形符号以黑盒子形式描绘组成系统的每个部件(程序,文档,数据库,人工过程等)。系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据进行加工处理的控制过过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却是物理数据流图而不是程序流程图。数据流图是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变化。在数据流图中没有任何具体的物理部件,它只描绘数据在软件中流动和被处理的逻辑过程。数据流图是系统逻辑功能的图形表示。设计数据流图只需要考虑系统必须完成的基本逻辑功能,完全不需考虑怎样具体的实现这些功能。3.数据字典是数据信息的集合,是对数据流图中所包含元素的定义,数据流图和数据字典共同构成了系统的逻辑模型4数据流图与数据字典构成系统的逻辑模型第三章1.什么是需求分析需求分析是软件定义时期的最后一个阶段,它的基本任务是准确的回答“系统必须做什么?”这个问题2.需求分析的任务有哪些?(1)确定对系统的综合要求(功能需求, 性能需求, 出错处理需求, 借口需求约束, 逆向需求, 将来可能提出的需求)(2)分析系统的数据要求(3)导出系统的逻辑模型(4)修正系统开发计划3.获取需求分析的方法有哪些?(1)访谈 :分为正式访谈和非正式访谈 (2)面向数据流自顶向下求精(3)简易的应用规格说明书(4)快速建立软件原形4.试题练习图,5.了解第一第二第三范式的定义第一范式:每个属性值都必须是原子值,即仅仅是一个简单值而不含内部结构 第二范式:满足第一范式条件,而且每个非关键字属性都有整个关键字决定(而不是有关键字的一本分决定)第三范式:符合第二范式条件,每个非关键字属性都仅有关键字决定,而且一个非关键字属性不能仅仅是对另一个非关键字属性的进一步描述(即一个非关键字属性值不依赖于另一个非关键字属性值)6.状态转换图的作用和画法p75 第四章:按照形式化的程度,可以把软件工程使用的方法划分为非形式化,半形式化和形式化3类。用自然语言描述需求规格说明,是典型的非形式化方法。用数据流图或实体联系图建立模型,是典型的半形式化方法。所谓形式化方法,是描述系统性质的基本数学的技术,也就是说,如果一种方法有坚实的数学基础,那么它就是形式化的。第五章1.什么是总体设计总体设计又称为概要设计或初步设计,通过这个阶段的工作将划分出组成系统的物理元素-程序,文件,数据库,人工过程和文档等。2.总体设计的任务和过程总体设计的基本目的就是回答“概括地说,系统应该如何实现”这个问题。总体设计的过程:总体设计通常由两个主要阶段组成:系统设计阶段,确定系统的具体实现方案;结构设计阶段,确定软件结构。典型的总体设计过程包括下述9个步骤:1. 设想供选择的方案2. 选取合理的方案3. 推荐最佳方案4. 功能分解5. 设计软件结构6. 设计数据库7. 制定测试计划8. 书写文档9. 审查和复审3.什么是模块化?模块化就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。4.什么是逐步求进逐步求精是人类解决复杂问题时采用的基本方法,可以把逐步求精定义为:“为了能集中精力解决主要问题而尽量推迟对问题细节的考虑”。5.什么是模块独立模块独立的概念是模块化,抽象,信息隐藏和局部化概念的直接结果。模块的独立成都可以由两个定性标准度量,这两个标准分别称为内聚和耦合。耦合衡量不同模块彼此之间相互依赖的紧密程度;内聚衡量一个模块内部各个元素彼此结合的紧密程度。6. 耦合的定义、分类、要求耦合是对一个软件结构内不同模块之间互连程度的度量。在软件设计中应该追求尽可能松散耦合的系统。耦合的分类:数据耦合, 控制耦合。7.内聚的定义、分类、要求内聚标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。简单地说,理想内聚的模块只做一件事情。内聚可分为:功能内聚, 顺序内聚, 通信内聚, 过程内聚, 时间内聚, 逻辑内聚, 偶然内聚。对内局的要求:设计师应该力求做到高内聚,通常中等程度的内聚也是可以采用的,而且效果和高内聚相差不多。8 深度、宽度、扇出、扇入 p100深度表示软件结构中控制的层数。它往往能粗略地标志一个系统的大小和复杂程度。宽度是软件结构内同一个层次上的模块总数的最大值。一般说来,宽度越大系统越复杂。扇出是一个模块直接控制的模块数目,扇出过大意味着模块过分复杂,需要控制和协调过多的下级模块。扇出过小也不好。经验表明,一个设计得好的典型系统平均扇出通常是3或4(扇出上限一般是5到9)。9.P105 要求掌握面型数据流的设计方法第六章1什么是详细设计,详细设计的概念详细设计也称为模块设计,在这个阶段将详细地设计每个模块,确定实现模块功能所需要的算法和数据结构。详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统。详细设计阶段的任务还不是具体地编写程序,而是要设计出程序的“蓝图”,以后程序员将根据这个蓝图写出实际的程序代码。2.人机界面设计要涉及到的4个问题 (1)响应时间 (2)用户帮助设计 (3)出错信息处理 (4)命令交互人机界面设计是接口设计的一个重要的组成部分。3.程序流程图,合图,位码,判定树,判定码。(P124)自己看4.要求掌握流图的概念、画法。 环形复杂度的用法、画法、三种计算方法第七章:1.编码的基本概念所谓编码就是把软件设计结果翻译成某种程序设计语言写出的程序。作为软件工程过程的一个阶段,编码是对设计的进一步具体化。2.什么是软件测试 软件测试的方法(黑盒测试 白盒测试)(功能 结构)3.软件测试的4大测试4.集成测试是什么 策略有哪两种?集成测试是测试和组装软件的系统化技术。 策略有:非渐增式测试 渐增式测试5.什么叫确认测试 什么是Alpha测试 什么是Beta测试确认测试也称为验收测试,它的目标是验证软件的有效性。Alpha测试由用户在开发者的场所进行,并且在开发者对用户的“指导”下进行测试。Beta测试由软件的最终用户们在一个或多个用户场所进行。与Alpha测试不同,开发者一般不在Beta测试的现场,因此,Beta测试是软件在开发者不能控制的环境中的“真实”应用。6.什么是逻辑覆盖,常见的逻辑覆盖有哪几种? 所谓逻辑覆盖是对一系列测试过程的总称,这组测试过程逐渐进行越来越完整的通路测试。常见的逻辑覆盖是:(1)语句覆盖 (2)判定覆盖 (3)条件覆盖 (4)判定/条件覆盖 (5)条件组合覆盖 (6)点覆盖 (7)边覆盖 (8)路径覆盖考察逻辑覆盖的设计方法(出题)7.白盒测试在测试阶段的早期进行,黑盒测试在后期进行,黑盒测试力图发现什么问题黑盒测试力图发现下述类型的错误:(1)功能不正确或遗漏了功能 (2)界面错误 (3)数据结构错误或外部数据库访问错误 (4)性能错误 (5)初始化和终止错误8.什么是等价划分 他的基本方法等价划分是一种黑盒测试技术,这种技术把程序的输入域划分成若干个数据类,据此导出测试用例。使用等价划分方法设计测试方案首先需要划分输入数据的等价类,为此需要研究程序的功能说明,从而确定输入数据的有效等价类和无效等价类。在确定输入数据的等价类时常常还需要分析输出数据的等价类,以便根据输出数据的等价类导出对应的输入数据等价类。9.什么是边界值测试,方法10.什么叫做调试 有几种途径? 调试(也称为纠错)作为成功测试的后果出现,也就是说,调试是在发现错误之后派出错误的过程。调试途径是:(1)蛮干法 (2)回溯法 (3)原因排除法11.软件的可靠性 可用性的基

温馨提示

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

评论

0/150

提交评论