- 1、本文档共80页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第6章软件设计
本章学习目标1.了解软件设计的主要目标。2.掌握有关软件设计的基本概念。3.掌握结构化软件设计的基本方法。4.重点掌握面向对象设计方法。5.掌握软件详细设计方法。6.掌握人机交互界面设计的基本原则。7.了解软件设计模式的基本概念
软件工程中的设计1结构化设计2面向对象的设计3用户界面设计4软件设计优化5
序言20世纪90年代初,MitchKapor发表的“软件设计宣言”中这样写道:什么是设计?设计就是你身处两个世界——技术世界和人类的目标世界,而你尝试将这两个世界结合在一起……
序言软件设计是软件工程过程中的核心技术。在这个阶段,软件工程师设计出软件的“蓝图”,创建各种软件模型,让这些模型能正确反映出客户的需求,并为系统实现提供软件体系结构、数据结构、接口和构件的细节。
序言面向对象的软件设计方法把OOA阶段得到的需求模型进行逐步扩充:把类或对象进一步修改和细化,设计属性、方法,以及类或者对象之间的联系,由一组协同工作的对象共同完成整个系统功能。面向对象的设计模型一般包括四个部分:问题论域、人机交互、任务管理和数据管理。
6.1软件工程的设计6.1.1设计原理在传统软件工程方法学中形成的软件设计的基本原理,在面向对象设计时依然成立,此外还增加了一些与面向对象方法特征相关的新特点。(1)模块化在软件工程领域,软件可以被划分成为一系列独立命名、可处理的部件,有时也被称为模块。
6.1软件工程的设计6.1.1设计原理(1)模块化在过程化语言中过程、函数、子程序、宏等都可以看作模块。在面向对象程序设计中的类或类的方法也可以称之为模块。模块化将复杂系统分解为可管理的模块。这种处理问题的方式体现了设计中“关注点分离”的概念,即希望将复杂问题分解为可以独立解决和(或)优化的若干块,从而使得这个复杂问题能够更容易地被处理。
6.1软件工程的设计图6-1模块化和软件成本
6.1软件工程的设计(2)抽象抽象是人类在认识复杂现象过程中使用的一种思维工具。它把无数现象中相似的方面集中和概括起来,暂时忽略它们之间的差异,提取出事物的本质特征。抽象通过抑制不必要的细节,同时强调和集中在当前重要的细节来达到逐步求精的目标。
6.1软件工程的设计(3)信息隐蔽信息隐蔽是指在设计和确定模块时,使得一个模块内包含的信息对于不需要这些信息的其他模块来说,是不可访问的。(4)模块的独立性模块独立性是模块内部各部分及模块间关系的一种衡量标准。模块独立性概念是模块化、抽象概念和信息隐蔽的直接结果,也是完成模块设计中需要遵循的基本标准。模块独立性可以使用两个定性的标准评估:内聚性和耦合性。
6.1软件工程的设计模块的内聚性反映了某个模块相关功能的强度,是信息隐蔽概念的自然扩展。一个内聚的模块执行一个独立的任务,与程序的其他部分部件只需要很少的交互。简单地说,一个内聚的模块应该只完成一件事情。模块的耦合性显示了模块间的相互依赖性,表明了在软件结构中多个模块之间的相互连接程度。耦合性依赖于模块之间的接口复杂性、引用或进入模块所在的点以及什么数据通过接口传递等因素。
6.1软件工程的设计表6-1模块的内聚内聚级别(低到高)内聚名称定义1偶然性内聚如果一个模块内部各部分之间没联系,即使有也很松散,则称该模块为偶然性内聚2逻辑性内聚模块把几种相关功能代码组合在一起,每次调用时,由传给模块的判定参数来确定该模块应执行哪一种功能,则称该模块为逻辑性内聚模块3时间性内聚如果一个模块内部的几个功能必须在同一时间内执行(例如一个初始化模块),但这些功能只是因为时间因素关联在一起,则称该模块为时间性内聚模块4过程性内聚如果一个模块内部的处理成分是相关的,且必须以特定的次序执行,则称该模块为过程性内聚
6.1软件工程的设计续表6-1模块的内聚内聚级别(低到高)内聚名称定义5通信性内聚如果一个模块内部的各部分功能使用相同的输入数据,或者产生相同的输出数据,则称该模块为通信内聚模块6功能性内聚如果一个模块中各个部分都是完成某一具体功能必不可少的组成部分,或者说该模块中所有部分都是为了完成一项具体功能而协同工作,紧密联系,不可分割,则称该模块为内聚模块7信息性内聚如果模块能够完成多个功能,各个功能都在相同的数据结构上操作,每一项功能有一个唯一的入口点,代码相对独立。这个模块将根据不同的要求,确定执行哪一个功能,则称该模块为信息性内聚模块
6.1软件工程的设计表6-2模块的耦合耦合级别(低到高)耦合名称定义1内容耦合如果一个模块直接修改另一个模块的数据,或直
您可能关注的文档
- 软件工程:理论、技术及实践 课件 第1章 软件工程概述.pptx
- 软件工程:理论、技术及实践 课件 第2章 软件工程发展.pptx
- 软件工程:理论、技术及实践 课件 第3章 软件过程.pptx
- 软件工程:理论、技术及实践 课件 第4章 理解需求.pptx
- 软件工程:理论、技术及实践 课件 第5章 需求分析.pptx
- 软件工程:理论、技术及实践 课件 第7章 软件实现与测试.pptx
- 软件工程:理论、技术及实践 课件 第8章 软件维护与演化.pptx
- 软件工程:理论、技术及实践 课件 第9章 软件项目管理.pptx
- 软件工程:理论、技术及实践 课件 第10章 软件创新.pptx
- 软件工程:理论、技术及实践 课件 第11章 软件工程与社会.pptx
- 2025年中国金融机具配套软件行业市场调查研究及投资前景预测报告.docx
- 顶津食品建设项目环境影响报告表.pdf
- 2024年房产销售任务总结范文8篇.docx
- 2025年中国航空材料行业发展潜力预测及投资战略规划报告.docx
- 2025年中国石英漆行业市场发展现状及投资潜力预测报告.docx
- 中国证券信息化行业市场全景评估及投资前景展望报告.docx
- 2025年中国一氧化碳报警器行业市场前瞻与投资战略规划分析报告.docx
- 2025年中国众筹行业发展监测及投资战略研究报告.docx
- 中国信息接入设备行业市场竞争与发展前景预测分析报告.docx
- 中国物联网蜂窝通信模块行业发展前景及投资战略咨询报告.docx
文档评论(0)