超好的软件工程004.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件设计 软件设计的目的  软件需求:解决“做什么”          ? 软件设计:解决“怎么做” 软件设计的前提   需求分析,即已经完全弄清楚了软件的各种需求 结构化设计(Structured Design)的前提  结构化分析 传统方法学采用结构化设计技术,完成软件设计工作 软件设计 软件设计的任务  根据用信息域表示的软件需求,以及功能和性能需求,进行 数据设计:侧重于数据结构的定义 系统结构设计 过程设计 软件设计任务  从工程管理的角度来看,通常把软件设计工作划分为两个阶段: 概要设计(总体设计)  将软件需求转化为数据结构和软件的系统结构。系统设计,确定系统具体的物理实现方案;结构设计确定软件的结构,即各模块的划分及相互关系。 详细设计  即过程设计。确定软件模块内部的详细的数据结构和算法。 软件设计在软件工程过程中处于技术核心地位  软件设计是后续开发步骤及软件维护工作的基础。如果没有软件设计,只能建立一个不稳定的系统结构。 第五章 总体设计 5.1 软件总体设计过程 阅读和理解软件需求说明书,明确实现的条件,从而确定设计的目标,以及它们的优先顺序。据此确定若干个合理的目标系统的物理实现方案。每个方案要包括: 系统流程图 组成系统的物理元素清单 成本/效益分析 实现这个系统的进度计划  推荐最佳方案 5.1 软件总体设计过程 设计软件结构 采用某种设计方法,将系统按功能划分成模块的层次结构 确定每个模块的功能 确定模块间的调用关系 确定模块间的接口 评估模块划分的质量 5.1 软件总体设计过程 数据结构设计 确定软件涉及的文件系统的结构以及数据库的模式、子模式,进行数据完整性和安全性的设计 确定输入、输出文件的详细的数据结构 编写概要设计阶段的文档 概要设计说明书 数据库设计说明书 用户手册 制定初步的测试计划 5.1 软件总体设计过程 概要设计评审 实用性:确认该设计对于需求的解决方案是否实用 可追溯性:确认该设计是否复盖了所有已确定的软件需求,软件每一成份是否可追溯到某一项需求 接口:确认该软件的内部接口与外部接口是否已经明确定义。模块是否满足高内聚和低耦合的要求。模块作用范围是否在其控制范围之内 风险:确认该设计在现有技术条件下和预算范围内是否能按时实现 5.1 软件总体设计过程 可维护性:确认该设计是否考虑了方便未来的维护 质量:确认该设计是否表现出良好的质量特征 各种选择方案:看是否考虑过其它方案,比较各种选择方案的标准是什么 限制:评估对该软件的限制是否现实,是否与需求一致 其它具体问题:对于文档、可测试性、设计过程等进行评估 5.2 软件设计的概念和原理 模块化 抽象 逐步求精 信息隐蔽和局部化 模块独立 1 模块化 模块化就是把软件划分成若干独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的要求。 把问题/子问题的分解与软件开发中的系统/子系统或系统/模块对应起来,就能够把一个大而复杂的软件系统划分成易于理解的比较单纯的模块结构。 经验公式 设函数C(x)定义问题x的复杂程度, 函数E(x)表示问题x需要的工作量 对于问题P1、P2,如果 C(P1)C(P2)  显然 E(P1)E(P2) 由经验,如果一个问题由P1、P2组合而成,有 C(P1+P2)C(P1)+C(P2)  则 E(P1+P2)E(P1)+E(P2) 模块划分的大小与开发成本的关系 2 抽象 抽象就是提取出事物的本质特性而暂时不考虑它们的细节。 抽象是人类认识复杂现象的过程中使用的最强有力的思维工具。 软件系统进行模块设计时,可有不同的抽象层次。 在最高的抽象层次上,可以使用问题所处环境的语言概括地描述问题的解法。 在较低的抽象层次上,则采用过程化的方法。 2 抽象 在软件工程中,从系统定义到实现,每进展一步都可以看做是对软件解决方法的抽象化过程的一次细化。 在软件需求分析阶段,用“问题所处环境的为大家所熟悉的术语”来描述软件的解决方法。 在从总体设计到详细设计的过程中,抽象化的层次逐次降低。当产生源程序时到达最低抽象层次。 3 逐步求精 求精是细化过程。求精与抽象是一对互补的概念。抽象是忽略低层细节,而求精是揭示低层细节。 逐步求精是为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。 人类认知过程的Miller法则:一个人在任何时候都只能把注意力集中在(7+2)个知识块上。 逐步求精可看作是一项把一个时期内必须解决的种种问题按优先级排序的技术。 3 逐步求精 自顶向下和逐步求精 软件结构每一层中的模块,是对软件抽象层次的一次精化,软

文档评论(0)

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

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

1亿VIP精品文档

相关文档