- 1、本文档共77页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[第5章,软件介绍
软件设计 软件需求是软件设计的基础,软件设计是软件开发的核心 软件设计原理 软件总体(概要/架构)设计 软件详细设计 面向过程和面向对象的设计方法 软件设计的属性和度量 IT企业的软件设计文档和设计管理文档 第5章 总体设计 本章要求 了解: 1)软件设计的输入输出 2)总体设计与详细设计两者之间的差异 理解: 1)软件设计过程 2)软件设计原理 3)软件架构设计方法 掌握: 1)面向数据流的设计方法 2)《概要设计说明书》的内容及编写方法 5.1 总体设计过程 1. 设想供选择的方案 2. 选取合理的方案 3. 推荐最佳方案 4. 功能分解 5. 设计软件结构 6. 设计数据库 7. 制定测试计划 8. 书写文档 9. 审查和复审 5.2 软件设计原理 “设计”在IEEE中的定义是:“定义一个系统或部件的架构、组成、接口或其它特征的过程”或者是“该过程的结果”。 软件设计是一个过程,是对软件需求分析后产生软件内部结构的一种描述。 软件设计可以分为软件架构设计和软件详细设计。架构设计有时也称为概要设计,用于描述系统最顶的结构和组织形式,标识出软件的各个组成部分。详细设计用于详细描述每个部件的内部结构,用以指导程序人员编写代码。 设计过程是一个启发式过程,不是确定过程,没有最佳方案。 设计原理:抽象、模块化、低耦合高内聚、封装、接口和实现分离 1. 抽象 提取共性,忽略细部特征 ,缩小关注点。 (1) 控制抽象 面向过程的设计 ,通过清晰的控制流程和部件间的接口,从而实现对复杂的软件进行分解,达到降低软件复杂度的目的。面向对象的设计 ,同时进行数据抽象和控制抽象,从而实现使数据和控制溶为一体,构成一个完整的对象。 (2) 过程抽象 将处理过程抽象成函数或方法,通过提供不同的参数实现具体化。你可以观察到函数或方法的最终执行结果,而不必去关心它们内部的实现步骤。 (3) 数据抽象 在数据库建模和面向对象建模时,使用数据抽象,设计出数据库的表及表的字段,或设计出类及类的属性。 2. 模块化 分解,是人们处理复杂问题常用的方法。 模块化就是将软件系统划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体。 在架构设计中,将软件系统分解为子系统和模块; 在详细设计中,将子系统和模块分解成类和接口。 2. 模块化 模块化可使软件结构清晰,便于理解,便于修改。 模块化有助于软件开发工程的组织管理。 然而,过度地分解会使模块数量增加,集成的成本和错误数量也会增加。在Hatton的报告中指出,错误密度与模块大小呈开口向上的U形曲线的关系。根据Hatton的测算,一个模块中代码行在200~400之间是错误密度最小的区域。 3. 模块独立(低耦合高内聚) 模块在系统中不能孤立存在,每个模块具有一定的功能,他们共同完成系统的总功能,这样模块之间就必然会存在联系或依赖。 模块独立是设计的关键 有效模块化的软件比较容易开发。 独立的模块更容易测试和维护。 模块独立性度量:耦合和内聚 (1) 数据耦合(或参数传递耦合),它属于低级别耦合。例如,模块间通过参数传递或数据结构来访问。 (2) 控制耦合,它属于中级别耦合。 (3) 公共环境耦合,它属于较高级别耦合。例如,模块间共享全局变量,或共同访问全局数据区中的数据项,就是共用耦合。 (4) 内容耦合,它属于最高级别耦合。例如,一个模块利用分支或跳转技术,转入到另一个模块中去执行,就是内容耦合。 (2) 控制耦合 一模块向下属模块传递的信息 (开关量、标志等控制被调用模块决策的变量) 控制了被调用模块的内部逻辑。 去除模块间控制耦合的方法 控制耦合增加了理解和编程的复杂性,调用模块必须知道被调模块的内部逻辑,增加了相互依赖。解决方法: (1)将被调用模块内的判定上移到调用模块中进行 (2)被调用模块分解成若干单一功能模块 (4) 内容耦合 耦合程度由低到高的分级如下: 3. 模块独立(低耦合高内聚) 对于低内聚的模块,可通过重新分解来实现模块的修改与优化,这样提高了模块内部的紧凑性,必然会降低块间联系,确保从整体上提高模块的独立性。 对于高耦合度的模块,则通过功能重组,将联系紧密的部分组成新的模块,这样可以防止系统僵化,提高模块的可维护性。 4. 信息隐藏和局部化(封装) 封装是将信息隐藏在一个实体中,使其内部细节对外部不可见。封装是实现“低耦
您可能关注的文档
最近下载
- 无锡市2025届高三语文期终调研测试作文题目解析及相关范文:“高考志愿填报中的定向”.docx
- 2024至2030年中国膨润土行业市场前景与投资战略研究报告.docx
- 佳能70D中文使用说明书..pdf
- 阀门制造有限公司程序文件标书.pdf
- 2024年苏州工业园区服务外包职业学院高职单招职业技能测验历年参考题库(频考版)含答案解析.docx
- 中 共预备党员考察教育情况登记表.doc VIP
- 验方奇方天星十二穴.pdf
- 2024年华侨港澳台学生入学考试数学试卷真题(含答案详解).pdf VIP
- 2023-2024初中物理竞赛试题精选精编第09讲杠杆(含解析).doc
- 混凝土质量手册.pdf VIP
文档评论(0)