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

下载本文档

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

文档简介

1、仅供参考第1章绪论1、了解软件的概念软件=程序+文档+数据程序:提供功能和性能的指令数据:使得程序能够适当地操作信息的数据结构文档:描述程序的操作和使用2、了解软件工程的概念软件工程是应用计算机科学、数学及管理科学等原理,以工程化的原则和方法制作软件的工程3、了解软件危机的产生、表现表现:许多软件项目不能满足客户的要求许多软件项目超出预算和时间安排产生:对软件开发成本和进度的估计常常很不正确用户对“已完成的”软件系统不满意的现象经常发生软件产品的质量往往靠不住软件常常是不可维护的软件通常没有适当的文档资料软件成本在计算机系统总成本中所占的比例逐年上升软件开发生产率提高的速度远远跟不上计算机应用

2、迅速普及深入的趋势4、理解软件的生存周期软件生存周期大体可分为如下几个活动:计算机系统工程、需求分析、设计、编码、测试、运行和维护5、理解软件开发模型(书上看瀑布模型、增量模型、喷泉模型、第2章系统工程1、了解可行性分析(目的、措施如经济、技术方面的可行性;了解经济可行性的成本和效益经济可行性主要进行成本效益分析,从经济角度,确定系统是否值得开发。成本:购置硬件、软件和设备;系统的开发费用;系统安装、运行和维护费用;人员培训费用。效益:经济效益:使用系统后可增加的收入、可节省的运行费用。社会效益:对社会产生的影响,定性估计技术可行性分析,分析现有资源和技术条件下系统能否实现。1、风险分析:分析

3、在给定的约束条件下设计和实现系统的风险。风险分析的目的是找出风险,评价风险的大小,并有效地控制和缓解风险2、资源分析:论证是否具备系统开发所需的各类人员、软件、硬件等资源和相应的工作环境。3、技术分析:分析当前的科学技术是否支持系统开发的各项活动。第3章需求工程1、了解需求分析的概念及在软件周期中的作用需求分析是软件定义士气的最后一个阶段,它的基本认为是准确地回答“系统必须做什么”这个问题。也就是对目标系统提出完整、准确、清晰、具体的要求。通过建立完整的信息描述、详细的功能和行为描述、性能需求和设计约束的说明、合适的验收标准,给出对目标软件的各种需求。软件需求规约是分析任务的最终产物,需求规约

4、作为用户和开发者之间的一个协议,在之后的软件工程各个阶段发挥重要作用2、了解需求分析阶段产生的文档需求规则说明书的内容数据要求、功能需求、性能需求、可靠性和可用性要求、出错处理需求、接口需求、约束、逆向需求、将来可能要提出的要求第4章结构化需求分析1、了解数据流图的绘制过程1.画系统的输入和输出2.画系统内部3.画加工内部4.重复第3步,直至每个尚未分解的加工都足够简单2、掌握数据流图的表示方法3、了解数据字典的内容数据字典条目包括:数据流、文件、数据项(组成数据流和文件的数据、加工、源或宿4、掌握数据字典中数据的表示方法5、了解加工逻辑的描述方法的区别A结构化语言:介于自然语言和形式语言之间

5、的一种半形式语言B判定表C判定树:判定表的变种,本质上与判定表是相同的,只是表示形式不同第5章设计工程与结构化设计1、了解软件设计的概念软件设计=软件需求>软件表示软件设计:软件体系结构设计、部件级设计2、了解结构化软件设计的基本原则(抽象、逐步求精、模块化、信息隐藏、模块独立a抽象:考虑高层问题时忽略低层细节b逐步求精:不断接近问题的完整解c模块化:将系统划分为相对独立但又有所关联的多个部分d信息隐藏:对其它模块隐藏内部细节e模块独立:模块功能相对独立高内聚/低耦合3、掌握模块化的思想将系统划分为若干个较小的模块:a相互独立但又相互关联b实际上是系统分解和抽象的过程模块是相对独立的程序

6、体:a是数据说明、可执行语句等程序对象的集合b单独命名的,并且可以通过名字来访问4、理解模块独立性的指标(内聚、耦合模块独立是模块化的根本要求:a模块完成独立的功能:明确可辨识b高内聚c低耦合d符合信息隐蔽和信息局部化原则内聚(cohesion:一个模块内部各个元素彼此结合的紧密程度尽量高耦合(coupling:模块之间相互关联的程度尽量低模块内联系越紧密,内聚性就越高;模块间连接越紧密,耦合性就越高5、了解结构化设计的概念结构化设计(Structured Design,简称SD 数据流图>软件体系结构强调模块化、自顶向下逐步求精、信息隐蔽、高内聚低耦合等设计准则分为概要设计和详细设计两

7、大步骤a概要设计:分模块、模块接口、调用关系b详细设计:对模块实现细节的设计,采用结构化程序设计(Structured Programming,简称SP方法6、了解结构图的相关概念a用结构图(Structure Chert来描述软件系统的体系结构b描述一个软件系统由哪些模块组成,以及模块之间的调用关系c结构图的基本成分有:模块、调用和数据结构图的几个概念:a深度:程序结构图中控制的层数b宽度:程序结构图中同一层次上模块总数的最大值c扇出(fan out:该模块直接调用的模块数目。D扇入(fan in:能直接调用该模块的模块数目。7、了解结构化设计的启发规则(模块规模、扇入扇出的程度、掌握模块的

8、作用域与控制域的关系的启发原则一、按照模块化设计原则,相应的启发式设计策略如下:a改造程序结构图,降低耦合度,提高内聚度b避免高扇出,并随着深度的增加,力求高扇入二、三、降低模块接口的复杂程度和冗余程度,提高一致性模块的功能应是可预测的,避免对模块施加过多的限制A模块功能可预测是指该模块对相同的输入能产生相同的输出B限制一个模块只处理单一的功能,那么,这个模块体现出高内聚尽可能设计单入口和单出口的模块A单入口和单出口的模块能有效地避免内容耦合8、了解结构化分析中画结构图时的信息流A结构化设计是将结构化分析的结果(数据流图映射成软件的体系结构(结构图B信息流:变换流和事务流C将数据流图分为变换型

9、数据流图和事务型数据流图,对应的映射分别称为变换分析和事务分析变换流特征:数据流图可明显地分成输入、变换、输出三部分事务流特征:数据流沿着输入路径到达一个事务中心,事务中心根据输入数据的类型在若干条动作路径中选择一条来执行9、掌握人机界面设计的内容(重要性、时机的选择、考虑的问题、设计指南(数据输入指南书本p103第7章软件测试1、了解软件测试的目的测试是一个为了发现错误而执行程序的过程一个好的测试用例是指很可能找到迄今为至尚未发现的错误的测试用例一个成功的测试是指揭示了迄今为至尚未发现的错误的测试2、了解软件测试方法的分类及它们各自包含的常用测试方法(黑盒测试即功能测试;白盒测试即结构测试测

10、试分为两类:白盒测试和黑盒测试A白盒测试目的:检查程序中所有逻辑路径的正确性白盒测试方法有:逻辑覆盖测试、基本路径覆盖测试、数据流测试、循环测试B黑盒测试是依据软件的需求规约,检查程序的功能是否符合需求规约的要求。主要的黑盒测试方法有:等价类划分、边界值分析、比较测试、错误猜测、因果图3、掌握软件测试的定义、软件测试的策略(即阶段或步骤程序测试是证明程序正确地执行了预期的功能,完成它所需完成的功能,且不应完成它不该做的事一种测试策略就是将测试分为单元测试、集成测试、确认测试和系统测试。a单元测试是针对程序中的模块或构件,主要揭露编码阶段产生的错误。b集成测试针对集成的软件系统,主要揭露设计阶段

11、产生的错误。c确认测试是根据软件需求规约对集成的软件进行确认,主要揭露不符合需求规约的错误。d对于基于计算机系统中的软件,还需将它集成到基于计算机系统中,并进行系统测试,以揭露不符合系统工程中对软件要求的错误。4、掌握软件调试的内容测试的目的是发现错误,调试(也称排错的目的是确定错误的原因和准确位置,并加以纠正调试方法:a蛮力法:它通过在程序中设置断点,输出寄存器、存储器的内容,打印有关变量的值等手段,获取大量现场信息,从中找出错误的原因。b回溯法:回溯法是从错误的征兆出发,人工沿着控制流程往回跟踪,直至发现错误的根源。这种方法适用于小型程序,对大型程序,由于回溯的路径太多,难以彻底回溯。c原因排除法:原因排除法又可分为归纳法和演绎法。归纳法是一种从特殊推断一般的系统化思考方法。其基本思想是:从一些线索(错误征兆着手,通过分析它们之间的关系来找出错误的原因。演绎法从一般原理或前提出发,假设所有可能出错的原因,排除不可能正确的假设,最后推导出结论。第8章软件维护与再工程1、了解软件维护的概念、分类软件维护:是指软件系统交付使用以后,为了改正错误或满

温馨提示

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

评论

0/150

提交评论