软件工程笔记Chapter 5 软件设计工程.docVIP

软件工程笔记Chapter 5 软件设计工程.doc

  1. 1、本文档共8页,可阅读全部内容。
  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文档。上传文档
查看更多
软件工程笔记Chapter 5 软件设计工程.doc

Chapter 5 软件设计工程 软件设计: 处于需求分析阶段及软件构造(或编码)阶段的中间位置。需求分析的主要任务是明确做什么,在完成了需求分析之后,就进入了软件设计阶段。 软件设计既是过程又是模型: 1)设计过程:迭代步骤,目标系统的各个侧面。 2)设计模型:一系列不同的视图。 软件设计的目标:涉及性能、可靠性、成本、维护等方面。 软件设计的准则: 性能准则:包含系统速度和空间需求。 可靠性准则:指定时间内,成功的概率。 成本准则:包括开发、配置、管理系统的成本。 维护准则:完成开发后再次改变系统的困难度。 最终用户准则:从用户视点出发所需的属性。 软件设计的任务:基于需求分析的结果建立各种设计模型,给出问题解决的方案。 软件设计概念:包括一套原理、概念和实践,可以指导高质量的系统或产品开发。 软件设计的分类: (1)从工程管理角度来看,软件设计分两步完成:概要设计和详细设计。 概要设计: 1)将软件需求转化为软件体系结构 2)确定系统级接口 3)全局数据结构或数据库模式。 详细设计: 1)确立每个模块的实现算法和局部数据结构 2)用适当方法表示算法和数据结构的细节 (2)从技术观点来看 1)传统的结构化方法将软件设计分为 :数据设计、体系结构设计、接口设计、过程设计。 2)面向对象方法则将软件设计划分为:体系结构设计、类设计/数据设计、接口设计、构件级设计。 总的来说软件设计有6个:体系结构设计,类设计,数据设计,接口设计,构件级设计,过程设计。 软件设计的过程: ⑴制定规范 ⑵软件系统结构的总体设计 ⑶处理方式设计 ⑷数据结构设计 ⑸可靠性设计 ⑹编写概要设计文档 ⑺概要设计评审 详细设计 软件设计的目的是通过设计的结果和设计后续阶段的活动,生成高质量的软件产品。 软件设计主要的技术目标:软件设计过程的主要产品,即软件设计说明书应完全体现软件需求规格说明的全部技术要求,同时实现这些要求的解决方案是可行的、有效的。 软件设计的管理目标:软件设计过程应是在满足规定的约束下进行和完成的,这些约束来自于时间、人员、资金和环境。 模块化是将程序划分成独立命名且可独立访问的模块,不同的模块通常具有不同的功能或职责。每个模块可独立地开发、测试,最后组装成完整的软件。 模块化的依据: 规律一:如果问题A的复杂性大于问题B,则解决问题A要的工作量大于解决问题B需要的工作量。即若C(A)>C(B),则 E(A)>E(B)。 规律二:如果一个问题Q分别由A和B组成而成,那么它的复杂程度大于分别考虑每个问题时的复杂程度之和。则工作量也大于分别解决问题的复杂度。即若C(A+ B)>C(A)+C(B),则E(A+ B)>E(A)+E(B)。 结论:划分模块可以降低解决问题的复杂度和工作量。 模块化两方面的问题:工作量 和 模块的数/大小。 抽象是对事物共同的本质特性进行抽取和概括,忽略次要因素。 两种常用的抽象手段::过程抽象和数据抽象。 信息隐藏和信息局部化不光适用于总体设计阶段,而是适用于整个软件开发阶段。 (1)信息隐藏是指在设计和确定模块时,使得一个模块内包含的信息(过程或数据)对于不需 要这些信息的模块来说是不能访问的。 符合信息隐藏的原则的例子:是对缓冲区资源设置专门的管理者。(例如缓冲管程,由它专管缓冲区的分配和释放,进程要求分配缓冲区时,唯一要做的工具是向管程发送一个消息“请求管程分给一个缓冲区”。) 符合信息隐藏原则的优点:⑴便于修改,⑵可靠性改善,⑶理解性好。 (2)信息局部化是指在设计和确定模块时,把一些关系密切的软件元素,物理地放得彼此靠近(即最好是放在同一个模块内)。 其优点是可维护性好、可靠性好、可理解性好。 模块的独立性: 模块的独立性是指软件系统中的每个模块只涉及软件要求的具体子功能,而与软件中其它 模块的接口是简单的,若一个模块只有单一的功能,且与其它的模块没有太多的联系,则称 此模块为独立的。 两个标准来度量模块的独立性:模块的耦合和模块的内聚。 内聚是指模块内部各个成分之间的关系,又称为块内联系,是模块功能相对强度的度量。 耦合是指一个模块与其它模块之间的联系,又称为块间联系,是模块之间相对独立性的度量。 模块间传递的信息有两种:一种是数据信息,一种是控制信息。 模块接口的复杂性包括三个因素:一是传送信息的数量,即有关的公共数据与调用参数的数量;二是联系方式;三是传送信息的结构。 时间内聚又称为经典内聚。 设计:复用性设计、灵活性设计、可移植性设计、可测试性设计、防御性设计。 结构化设计方法: 结构化设计(structured design,SD)是一种面向数据流的设计方法,即根据系统的处理过程进行设计,故亦称为过程驱动的设计。 结构化设计工作(软件设计阶段)与结构化分析方法(软件需求分析阶段)相衔接

文档评论(0)

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

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

1亿VIP精品文档

相关文档