软件构造.docVIP

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件构造

《软件构造》课程复习纲要 参考教材《代码大全(第二版)》:以下简称CC2 复习所涉及的内容以PPT中出现的为准,具体细节参阅CC2中的解释。 软件构造的概念 测试和调试的区别 测试是为了发现错误 调试是为了改成错误 软件开发包括哪些: 问题定义 需求分析 实现计划 总体设计 详细设计 编码实现 系统集成 单元测试 系统测试 校正性的维护 功能强化 软件构造活动主要是其中哪些部分? 验证基础工作已经完成,可以进行创建工作; 设计和编写子程序与模块 创立数据类型并命名变量 选择控制结构并组织语句块 找出并修正错误 评审其它小组的细节设计和代码,同时接受其它小组评审 通过仔细地格式化和征集意见改进编码 对分别完成的软件单元进行综合 调整编码使其更小、更快 编码和调试,部分的详细设计和单元测试 软件构造的重要性 构造活动是开发软件的重要组成部分 构造活动在开发软件中处于枢纽地位 把主要精力集中于创建活动,可以极大地提高程序员的生产效率 创建活动的产品,源代码,往往是软件的唯一精确描述 创建活动是唯一一项必不可少的工作 隐喻(Software Metaphors) 常见的软件隐喻 (简单了解) 软件书写:写代码(Writing Code) 软件播种:生成系统(Growing a System) 软件珍珠培植法:系统积累(System Accretion) 软件创建:建造软件(building software) 实用软件技术:智能工具箱(The Intellectual Toolbox) 复合隐喻(Combing Metaphors) 隐喻可以帮助开发人员借助类比的力量加深对编程的理解 事实上,借助隐喻加深理解是各个研究领域都常用的方法 软件构造的前期准备工作 软件构造的前期准备工作有哪些 前期准备工作并非一成不变 构建活动的准备工作要根据项目特点调整 具体细节随项目的不同会有很大变化 构造开始前的准备工作有哪些 辨明软件项目的类型 明确问题定义 明确需求规约 明确软件架构的个组成部分 什么是软件构造的前期准备工作 软件构造的前期准备工作是复查性的活动 明确前导性的工作结果有哪些 重新审视前导性工作是否完成 明确前导性工作完成的程度如何 准备工作的中心目标是降低风险 糟糕的需求分析 糟糕的项目计划 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 根据CC2 Page59 核对表上的内容复习(只涉及ppt中有的内容) 问题定义先决条件 需求定义先决条件 软件架构先决条件 构造技术 模块化设计 (简单了解相关概念)……………………………… 这一部分的复习参阅CC2书上的第5章 模块和子程序的区别 子程序是具有一定功能的,可以调用的函数或过程 模块是指数据及作用于数据的子程序的集合,或者 模块也可能是指,可以提供一系列互相联系功能的子程序集合,而这些子程序之间不一定有公共的数据 模块化:内聚性与耦合性(重要) ppt page73 可以参阅CC2-7章子程序内聚性的相关内容 耦合性( Coupling ):对一个软件结构内不同模块间互连程度的度量。 内聚性(Cohesion):标志一个模块内各个处理元素彼此结合的紧密程度,理想的内聚模块只做一件事情。 模块化 模块化设计的目标是使每个子程序都成为一个“黑盒子” 你知道进入盒子和从盒子里出来的是什么,却不知道里边发生什么 通过接口的定义明确其功能 “模块化”同时涉及到子程序设计和模块设计 但通过对子程序的控制可以达到模块化的效果 通过对一组子程序定义统一对外的接口,也完全有可能达到高度模块化这一目标 模块化:内聚性与耦合性 模块独立程度的衡量标准 耦合性( Coupling ):对一个软件结构内不同模块间互连程度的度量。 内聚性(Cohesion):标志一个模块内各个处理元素彼此结合的紧密程度,理想的内聚模块只做一件事情。 模块内聚性 模块的内聚性 内聚性表示了在一个模块中,各种操作及数据之间互相联系的紧密程度 内聚性的强弱程度用“强度”表示 应尽量提高内聚程度 强调“强内聚”的目的 每一个模块只需作好一项工作,而不必过分考虑其它任务 模块内聚性分类 偶然内聚:一组任务关系松散(低) 逻辑内聚:一组任务在逻辑上同属一类,例如均为输出(低) 时间内聚:一组任务必须在同一段时间内执行(低) 子程序的内聚性 模块的强内聚性并不说明子程序内聚性强 子程序的内聚性影响到模块的实现质量 子程序内聚性分类 可取的内聚性 不可取的内聚性 可取

文档评论(0)

f8r9t5c + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档