2016武汉大学软件工程重点(计算机学院).doc_第1页
2016武汉大学软件工程重点(计算机学院).doc_第2页
2016武汉大学软件工程重点(计算机学院).doc_第3页
2016武汉大学软件工程重点(计算机学院).doc_第4页
2016武汉大学软件工程重点(计算机学院).doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

Ch11. 文档分类:开发文档、维护文档、用户文档、管理文档作用:记录软件开发过程的标准描述,解决不可视性;通信和交流;管理和维护;用户服务文档是影响软件可维护性的决定性因素,所以维护期间文档比程序代码重要用户文档描述系统功能和使用方法,不关心具体如何实现系统文档描述系统设计、实现和测试等各方面的内容。2. 软件特点更依赖人;开发成本、进度难估计;正确性难保证;维护困难;不磨损不老化3. 软件定义软件是能够完成预定功能和性能的可执行的计算机程序和使程序正常执行所需要的数据,加上描述软件开发过程及其管理、程序的操作和使用的有关文档。4. 软件生产过程模型:瀑布模型 优点:规范管理开发过程;文档驱动 缺点:初期系统的需求难以完全确定;文档驱动;周期长 特点:需求固定;周期长;文档驱动 适用范围:需求固定,技术成熟原型模型、快速原型法 针对:软件开发初期需求难以确定 优点:用户参与;快速 缺点:快速;对开发环境要求高 适用范围:已有产品;简单而熟悉的领域;有快速原型开发工具;进行产品移植或升级螺旋模型 降低风险 优点:风险驱动;质量保证;利于维护 缺点:对开发人员要求高;用户接受“演化”方法难 适用范围:庞大、复杂、高风险的系统;内部开发的大规模软件项目增量模型 特点:开放式(利于维护),对开发人员水平要求高 优点:任务或功能模块驱动,可以分阶段提交产品 缺点:条件比较苛刻(精心的设计)适用范围:需求可能发生变化,分阶段交付给用户;分析设计人员对应用领域不熟悉;中高等风险项目;用户可参与到整个软件开发过程中;使用面向对象或第四代编程语言;软件公司有较好的类库、构件库喷泉模型 面向对象生命周期模型 特点:迭代、无缝组合模型5.软件生产仍面临三大问题。是哪三大问题?造成问题的根本原因?有哪些解决问题的方法?三大问题:软件质量、成本与开发进度典型表现:软件开发成本和质量难以准确估计、用户常常不满意“已完成的软件”、软件质量不可靠、软件维护困难、软件缺乏文档、软件成本上升产生原因:软件本身的特点(缺乏可见性、规模庞大等)、软件开发和维护的方法不正确解决途径:正确认识(软件=程序+数据+文档)、工程化方法和技术、开发和使用好的工具软件CH21. 可行性研究包括:经济可行性(成本效益分析)、技术可行性(风险、资源的有效性、技术方案)、操作可行性(用户组织内的管理制度、人员素质、操作方式)、法律及社会可行性主要步骤:复查系统规模和目标的描述;研究正在使用的系统的系统流程;导出新系统的高层逻辑模型,数据流图+数据字典;重新定义问题;导出解法;推荐方针;草拟开发计划2. 数据流图用途建立新系统逻辑模型的工具;作为与用户与开发人员交流信息的工具;作为分析、设计乃至维护的依据3. 数据字典组成名字、别名、描述、定义、位置4. 痛苦曲线差的项目计划最终会付出进度拖延、质量低劣、不能满足期望的的代价。制定项目计划的确是痛苦的,但会减少在项目后期的痛苦,不做计划则将痛苦留在了项目开始以后。5. 工作分解结构将整个项目划分为子元素的程序,逐层对项目进行分解。作用:项目的认知、协同环境层次、控制层次。6. 项目进度安排 成本和工作量估算代码行:(a+4m+b)/6 甘特图CH31. 需求分析作用充分理解现实中的业务问题,作为软件设计的基础;为软件项目的成本、时间、风险估计提供准确的依据;减少开发工作量,避免将时间与资源浪费在设计与实现错误的需求上;通过提供需求文档有效的管理系统演化与变更;作为合同的一部分;为最终的验收测试提供标准和依据。2. 需求的分类业务需求(客户对系统高层次目标要求,项目的远景和范畴)、用户需求(用户角度描述系统功能需求与非功能需求,只涉及系统的外部行为)、系统需求(系统应该提供的功能和服务,涉及交互)3. 系统性需求功能性需求(完整性、一致性、准确性);非功能性需求(可用性、可靠性、性能、可支持性)采用可度量的特性进行描述4. 需求获取技术用户访谈、用户调查、现场调查、文档分析、原型、模型驱动的方法、头脑风暴5. 结构化分析 SA核心思想:面向数据流的分解和抽象;模块化;自顶向下逐步求精 DFD(数据流图)、DD(数据字典,描述数据的具体格式)、STD(状态转换图)、E-R图数据模型:实体关系图(描述数据之间的关系)功能模型:数据流图(数据在功能模块之间的流动)行为模型:状态转换图(描述了数据的状态以及状态的转换)6. 面对对象分析方法 OOACH4 总体设计1. 总体设计必须将用户需求转化为对计算机系统的逻辑定义。分为系统设计阶段(系统的具体实现方案)、结构设计阶段(软件结构、确定每个程序由哪些模块组成,以及模块之间的相互关系)2. 软件质量评价标准有效可靠;结构清晰,具有层次性,无回路调用,模块独立性好(良结构、易测试、易维护、可移植;达到需求、界面友好、简单易学);文档齐全;重用性、开放性;尽量简单3. 模块三个基本属性:功能,逻辑(内部怎么做),状态(使用时的环境和条件)特征:抽象 what抽出事物的本质特征和各类问题的共性,找出联系和相似性,加以概括和提取;处理复杂系统的方法是用层次的方法构造和分析它;分层理解问题,自顶向下层层细化。信息隐藏 数据隐藏,细节隐藏。增加可理解性,修改副作用小,错误副作用小。局部化 把关系密切的模块物理地放的彼此靠近模块化 将系统分成若干模块 容易设计,使软件结构清晰,易于理解;使软件易于测试和调试,提高可靠性;提高可修改性;有助于软件开发工程的组织管理;可重用;易维护 接口成本与块成本模块独立性 耦合 软件结构内不同模块之间互连程度的度量:零耦合;数据耦合;特征耦合;控制耦合;公共环境耦合;内容耦合(goto)内聚 一个模块内各个元素彼此结合的紧密程度 (比耦合重要):偶然内聚;逻辑内聚;时间内聚;过程内聚(与DFD有关);通信内聚;顺序内聚;功能内聚4. 软件设计的启发规则改进软件结构,提高模块独立性;模块规模适中;深度、宽度、扇入、扇出适当 梭形;作用域在控制域内;降低接口的复杂程度 模块独立性强、可理解性好;单出单入避免内容耦合;模块功能可预测5. 基于数据流 结构化设计 SD 利用映射把数据流图变换成软件结构层次图 表示模块调用关系6. SASD方法的特点优点:自顶向下逐步精华;各模块可单独设计、编码、测试、修改缺点:纸上设计,长时间偏离软件实体;开发周期长;剥离了数据与功能之间的关系CH5 详细设计1. 结构程序设计程序代码仅使用顺序、选择、循环这三种基本的控制结构进行连接,且每个代码块只有一个入口和出口,只在检测错误和退出循环使用非基本结构技术。2. 详细设计工具程序流程图 优点 能直观和清晰地描绘过程的控制流程;历史悠久,使用广泛,易学,普遍 缺点 不是逐步求精的工具,过早考虑控制流程;随意转移控制,容易造成非结构化的程序结构;不易表示数据结构。盒图 特点 控制结构作用域明确;不能任意转移控制;易表示嵌套关系、模块的层次结构 缺点:负责逻辑情况下难以布局。PAD图 优点 结构化程序;结构清晰;表现程序逻辑,易读、易懂、易记;描绘数据结构;支持自顶向下逐步求精 缺点 不适合初学者,算法未考虑清楚时使用。判定表 多个逻辑条件 优点 简洁、无歧义 缺点 无法表示顺序、循环;不能作为通用设计工具。判定树 优点 更直观,便于掌握和使用 缺点 不如判定表简洁,分枝次序决定简洁程度。过程设计语言(PDL) 伪码 优点 可作注释;编辑简单;可以转换为代码 缺点 不如图直观;复杂条件不清晰简单3. 面向数据结构的设计方法 数据结构-程序处理过程Jackson图 优点 便于表示层次结构,结构的自顶向下分解;直观,可读性好;既能表示数据结构,也能表示程序结构 缺点 没有表示条件;不易直接把图翻译成程序;斜线不易打印Jackson (JSD)方法 步骤 画数据结构的Jackson图;找输入-输出数据结构的对应关系;以输出数据结构为基础,导出程序结构的的Jackson图(有关系的数据单元合画一个处理框、余下的数据单元各画一个);列出所有操作、条件;伪码表示程序优点 结构清晰、易理解;不会过多依赖于设计者的经验;对于以数据为主,计算较简单的事务型处理系统,尤其是I/O数据结构之间相对应时容易导出;简化数据处理部分的设计 缺点 没有给予模块与独立性原则应有的重视,SD与JSD结合;未提供对复杂系统设计过程的支持;不适合大型实时系统,非数据处理系统的开发4. 用户界面应具有的特性可使用性;灵活性;界面的复杂性与可靠性5. 程序复杂程度度量McCabe 流图 仅描绘控制流程Halstead 不同描述符的个数 不同操作数的个数CH6 编码与测试1. 程序语言的选择模块化机制;语言特点;开发工具;独立编译机制;标准化程度高2. 无条件转移语句goto改变程序流向 缺点 破坏程序动态结构与静态结构的一致性;难阅读、难理解;易出错、难查错 优点:灵活、使程序简单;提高执行效率 只在出错处理和跳出循环时使用 同一函数内用;从一个小功能的结尾跳到另一个小功能的开头;避免向两个方向跳3. 测试的目标测试是为了发现程序中的错误而执行程序的过程;好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;成功的测试是发现了至今为止尚未发现的错误的测试。4.5. 黑盒测试作用:功能是否正常使用、输入能否得到正确输出、保持外部信息的完整性;测试后期 集成测试和确认测试A)等价划分:有效等价类和无效等价类;输出等价类 可以滤掉同类数据提升效率 测试用例:尽可能多覆盖尚未被覆盖的有效等价类;仅覆盖一个无效等价类(避免无效测试) 优点:考虑了单个输入域的各类情况,避免了盲目或随机选取输入数据的不完整性和覆盖的不稳定性。缺点:只考虑了单个输入域的情况,没有考虑输入的组合情况B)边界值分析:优点 简单易用,非常有效 缺点 没有考虑输入条件之间的组合情况和相互制约关系。C)错误推测法6. 白盒测试关注软件内部逻辑结构;测试每条逻辑通路;检查断点状态;测试方案对程序逻辑的覆盖程度决定测试的完全性程度 测试早期 单元测试 成本高 对结构比较复杂的模块进行白盒测试A) 逻辑覆盖技术:语句覆盖;条件覆盖;判定覆盖;判定-条件覆盖;条件组合覆盖B) 控制路径测试:流图基于程序的内部实现结构和逻辑寻找软件中的缺陷7. 集成测试自顶向下:自底向上:混合法8. 回归测试重新执行已经做过的测试的某个子集,已保证上述这些变化没有带来非预期的副作用。测试用例:检测软件全部功能的代表性测试用例;针对可能受修改影响的软件功能的附加测试;针对被修改过的软件成分的测试9. 确认测试有效性测试,验证软件的有效性,以用户为主或用户积极参与;黑盒法;Alpha和Beta10. 系统测试软件与硬件、外设等其他系统结合起来,对计算机系统进行一系列的集成测试和确认测试11. 性能测试软件完成功能时

温馨提示

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

评论

0/150

提交评论