- 7
- 0
- 约9.89千字
- 约 77页
- 2016-08-21 发布于河南
- 举报
第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. 信息隐藏和局部化(封装) 封装是将信息隐藏在一个实体中,使其内部细节对外部不可见。封装是实现“低耦
您可能关注的文档
最近下载
- 传统基材润湿流平(氟碳硅烷嵌段).pdf VIP
- 南京财经大学2024-2025学年第1学期《高等数学(上)》期末考试试卷(B卷)附参考答案.pdf
- C4D课程考试试题及参考答案.doc VIP
- 2025年陕西公务员申论考试真题及答案B卷.docx VIP
- [渝粤教育] 西北工业大学 航天器控制原理 mooc 资料.docx VIP
- 航天器控制原理(西北工业大学)中国大学MOOC 慕课 章节测验 期末考试答案.pdf VIP
- 精品解析:2025年陕西省中考数学试题(原卷版).docx VIP
- 四维度主力跟踪.pdf
- 2022年陕西省中考数学真题(原卷版).docx VIP
- 大众网关控制器和bcm车身控制模块针脚定义非常有用.pdf VIP
原创力文档

文档评论(0)