软件工程期末复习总结_第1页
软件工程期末复习总结_第2页
软件工程期末复习总结_第3页
软件工程期末复习总结_第4页
软件工程期末复习总结_第5页
已阅读5页,还剩2页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

第一章开发软件不等于编写程序软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。软件危机典型表现:●对软件开发成本和进度估计不准确。●用户对“已完成的”软件系统不满意甚至拒绝接受的现象经常发生。●软件产品的质量往往靠不住。●软件常常是不可维护的。●软件通常没有适当的文档资料。●软件成本在计算机系统总成本中所占的比例逐年上升●软件开发生产率提高的速度,跟不上计算机应用迅速普及的趋势。出现软件危机的主要原因:是对用户的要求没有完整准确的认识就匆忙着手编写程序,忽视软件需求分析,轻视软件维护。软件是程序、数据及相关文档的完整集合。其中,程序是能够完成预定功能且具有预期性能的可执行的指令序列;数据是使程序能够适当地处理信息的数据结构;文档是开发、使用和维护程序所需要的图文资料。消除软件危机:把软件上升到软件工程,既要有技术措施(方法和工具),又要有必要的组织管理措施。应该开发和使用更好的软件工具软件工程:把软件开发技术和管理技术融为一体的开发和维护软件的一门新兴学科。软件工程基本原理:有计划的开发和组织定期评审严格的产品控制采用现代化的程序设计技术结果详尽开发人员少而精不断改进软件工程方法学:方法,工具,过程。软件工程方法学:传统方法学,面向对象方法学。软件生命周期由软件定义、开发和运行维护三个时期组成。●软件定义包括(问题定义)、(可行性研究)和(需求分析)三个阶段。●软件开发包括(概要设计),(详细设计),(编码和单元测试),(综合测试)。●运行维护时期就是使软件长久地满足用户的要求,(软件维护),其中包括改正性维护,适应性维护,完善性维护,预防性维护。12.通常使用软件生命周期模型来描述软件过程,软件生命周期模型也称为软件过程模型。软件过程模型包括(瀑布模型)(快速原型模型)(增量模型)(螺旋模型)(喷泉模型)。1)瀑布模型(1)阶段间具有顺序性和依赖性(2)推迟实现的观点(3)质量保证的观点:●每个阶段都必须完成规定的文档●每个阶段结束前都要对该阶段所完成的文档进行评审(4)有反馈环,可以随时进行问题反馈和补充。瀑布模型的优点:●它可强迫开发人员采用规范的开发方法(例如,结构化技术)。●每个阶段必须提交文档。●每个阶段所交出的一切产品都经过质量保证小组的仔细验证。缺点:由文档驱动。2)快速原型模型:不带反馈环的。这正是这种模型的主要优点:软件产品的开发基本上是线性顺序进行的。3)增量模型分批向用户提交产品。优点:●从第一个构件交付之日起,用户就能做一些有用的工作。●可以使用户有较充裕的时间学习和适应新产品。困难:在把每个新的增量构件集成到现有软件体系结构中时,必须不破坏原来已经开发出的产品。第二章1.结构化分析包括(问题定义、可行性研究、需求分析)所谓“结构化”,即:把方法和工具标准化。具体:●采用自顶向下功能分解的方法;●强调逻辑功能而不是实现功能的具体方法;●使用图形(数据流图)表达系统分析的结果可行性研究的目的:用最小的代价在尽可能短的时间内确定问题的可行性。可行性研究的目的不是解决问题,而是确定问题是否值得去解决。(1)技术可行性(2)经济可行性(3)操作可行性3可行性研究的成本只是预期的工程总成本的5%~10%。4.可行性研究的过程1.复查系统规模和目标2.研究目前正在使用的系统3.导出新系统的高层逻辑模型4.进一步定义问题5.导出和评价供选择的解法6.推荐行动方针7.草拟开发计划8.书写文档提交审查5.需求分析的任务1.确定对系统的综合要求(1)功能要求(2)性能要求(3)运行要求(4)可靠性需求(5)出错处理需求(6)接口需求(7)约束8)逆向需求(9)将来可能提出的要求2.确定对系统的数据要求(1)导出系统的逻辑模型(2)修正系统开发计划与用户沟通的方法1)原型开发法2)访谈:正式的非正式的(情景分析)3)简易的应用规格说明技术7.需求分析过程1.沿数据流图回溯2.请用户复查3.细化数据流图8.需求分析过程建立3种模型:(功能模型)(数据模型)(行为模型)。9.四个方面验证软件需求●一致性●完整性●现实性●有效性10.系统流程图描绘系统总体概貌,表明系统的关键功能。——物理模型11.实体-联系图清晰明确地表达用户的数据要求。包含“实体(对象)”、“联系”和“属性”其中联系:(1)一对一联系(1∶1)(2)一对多联系(1∶N)(3)多对多联系(M∶N)12.数据流图:——逻辑模型看仓库系统数据流图举例。。书P4213.命名1.为数据流命名●名字应代表整个数据流的内容。●不要使用空洞的、缺乏具体含义的名字(如“数据”、“信息”、“输入”之类)。●如果在为某个数据流(或数据存储)起名字时遇到了困难,则很可能是因为对数据流图分解不恰当。2.为处理命名●通常先为数据流命名,再为处理命名。●名字应该反映整个处理的功能。●名字最好一个及物动词,加一个宾语。●通常名字中仅包括一个动词,如果必须用两个动词才能描述整个处理的功能,则再分解成两个处理。●如果在为某个处理命名时遇到困难,则重新分解。14.数据流图的用途画数据流图的基本目的是利用它作为交流信息的工具,另一个主要用途是作为分析和设计的工具。数据字典是关于数据的信息的集合,是对数据流图中包含的所有数据的定义的集合。数据流图和数据字典共同构成系统的逻辑模型。没有数据字典准确地描述数据流图中使用的数据,数据流图就不严格。反之,没有数据流图,数据字典也难于发挥作用。只有把数据流图和对数据流图中每个数据的精确定义放在一起,才能共同构成系统的规格说明。数据字典的用途1)数据字典最重要的用途是作为分析阶段的工具。(在数据字典中建立的一组严密一致的定义很有助于改进分析员和用户之间的通信),因此将消除许多可能的误解。2)。数据字典是开发数据库的第一步。实现数据字典的途径目前实现数据字典有三种常见的途径:全人工过程,全自动化过程(利用数据字典处理程序)和混合过程(用正文编辑程序,报告生成程序等已有的实用程序帮助人工过程)。结构化设计技术的要点:●软件系统由层次化结构的模块构成;●模块是单入口单出口的;●构造和联结模块的基本准则是模块独立;●用图(主要是层次图或结构图)表达软件系统的结构,并使之与问题结构尽量一致。通常把软件结构化设计划分为概要设计和详细设计。概要设计的任务是设计实现软件的最佳方案流程图;详细设计的任务是实现以下设计:过程设计、数据设计、接口设计。●过程设计,即设计每个模块的实现算法;●数据设计,即设计需要的数据结构;●接口设计,即设计各模块之间、软件与系统之间以及软件与使用它的人之间的通信方式。22.需求分析—得到—数据流图概要设计:将数据流图—转换为—软件结构图。详细设计:将软件结构图—转换为—代码系统分析的基本任务是定义用户需要的软件系统,设计实现目标系统的具体方案。体系结构设计的任务是确定程序由哪些模块组成以及这些模块相互间的关系。总体设计过程:EQ\o\ac(○,1)设想供选择的方案,EQ\o\ac(○,2)选取合理的方案,EQ\o\ac(○,3)推荐最佳方案,EQ\o\ac(○,4)功能分解,EQ\o\ac(○,5)设计软件结构,EQ\o\ac(○,6)设计数据库,EQ\o\ac(○,7)制定测试计划,EQ\o\ac(○,8)书写文档,EQ\o\ac(○,9)审查和复查。软件设计准则:模块化、抽象、逐步求精、信息隐藏和局部化、模块独立。模块是由边界元素限定的相邻程序元素的序列。模块化是把程序分成独立命名且可独立访问的模块。模块独立:和其他模块之间没有过多的相互作用的模块。模块独立的原因:一:有效的模块化容易开发,二:独立的模块容易测试和维护。模块独立的两个度量标准:内聚,耦合。耦合是模块之间语句的松散程度。内聚是一个模块内部语句的紧密程度。高内聚,低耦合数据耦合——低耦合,至少必须存在,尽量使用。(可以只包含数据耦合)控制耦合——只有控制信息环境耦合——两个模块通过公共环境相互作用。内容耦合——最高程度的耦合,(一个模块多个入口,代码重叠,一个模块访问另一个模块的内部)耦合设计原则:尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容耦合。低内聚:偶然内聚、逻辑内聚、时间内聚。中内聚:过程内聚、通信内聚。高内聚:顺序内聚、功能内聚、功能内聚>顺序内聚>通信内聚>过程内聚>时间内聚>逻辑内聚>偶然内聚启发规则(提高软件质量):1提高模块独立性:低耦合、高内聚。2模块规模应该适中:通常不超过60行语句。3深度、宽度、扇出和扇入都应适当:顶层扇出高:一个模块直接控制的模块数目(3到4)底层扇入高:一个模块有多少个上级模块调用它。4模块的作用域应该在控制域之内5力争降低模块接口的复杂程度6设计单入口单出口的模块7模块功能应该可以预测x层次图:用来描绘软件的层次结构,一个矩形框表示一个模块,方框间的连线表示调用关系。HIPO图是层次图加输入处理输出图。x构成软件结构图的六种原子模块:源模块(叶子模块):(输入)xxxxy漏模块(叶子模块)节(输出)yy变换(叶子模块)(变换)yxxy控制(根模块)xxyx传入(枝)xy传出(枝)y面向数据流的设计方法把信息流映射成软件结构,——数据流图转换成软件结构图。面向数据流的设计方法:步骤:1划边界,区分输入,变换,输出分支2完成第一级分解3完成第二级分解信息流有两种类型:变换流,事务流。变换流:处理完后离开系统,不具有显著的事务特点。事务流:有明显的事务中心。人机界面设计:系统响应时间、用户帮助设施、出错信息处理、命令交互。人机界面设计指南:一般交互指南、信息显示指南、数据输入指南。过程设计的工具:程序流程图、盒图(N—S图)、PAD图、判定树、判定表。1.程序流程图:开始或停止处理选择输入输出控制流连接盒图3PAD4.判定表:当算法中包含多重嵌套的条件时,用判定表。所有条件对应的动作所有动作所有条件的组合所有条件所有条件对应的动作所有动作所有条件的组合所有条件实现——编码和测试。(把用图形表示的算法用计算机语言实现)编码就是把软件设计的结果翻译成用某种程序设计语言书写的程序。软件测试的目标:(1)测试是为了发现程序中的错误而执行程序的过程;(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;(3)成功的测试是发现了至今为止尚未发现的错误的测试。软件测试的准则:●所有测试都应该能够追溯到用户需求。●应该在开始测试之前预先制定出测试计划。●Pareto原理告诉我们,测试所发现的错误中的80%很可能是由程序中20%的模块造成的。●应该从“小规模”测试开始,逐步过渡到“大规模”测试。●穷举测试是不可能的。●为了达到最佳的测试效果,应该由独立的第三方来从事测试工作。软件测试方法:白盒——测试程序内部结构。黑盒——测试程序功能。10测试步骤:模块测试,子系统测试,系统测试,验收测试,平行运行。测试的三个阶段:单元测试、集成测试、确认测试。单元测试:主要是白盒技术测试重点:模块接口、局部数据结构、重要的执行通路、出错处理通路、边界条件。测试方法;代码审查(人工测试),计算机测试。注:代码审查的人员:组长(没有直接参与)、设计者、编写者、测试者。集成测试:主要是黑盒技术自顶向下集成、自底向上集成(渐增式测试、非渐增式测试)14确认测试:Alpha、Beta测试。Alpha:在开发者的场所进行,在开发者的指导下,用户进行测试。Beta:最终用户在一个或多个客户场所进行,不在Beta测试的现场。白盒测试技术:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖。条件覆盖》判定覆盖》语句覆盖黑盒测试技术:等价划分、边界值分析、错误推测法。等价类划分规则:1。若规定了输入值的范围,则可划分出一个有效的等价类和两个无效的等价类。2.

温馨提示

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

评论

0/150

提交评论