版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程,第8章设计工程,2/71,内容摘要,软件工程中的设计过程和设计质量,概念设计模型,基于模式的软件设计概要,3/71,软件工程中的设计,软件需求分析解决了“做什么”的问题,而软件设计过程解决了“怎么做”的问题。软件设计是将软件需求转化为软件表示的过程。它主要包括两个阶段:软件体系结构设计阶段和组件级设计,软件工程中的设计,4/71,软件设计的任务,使用一种设计方法,软件分析模型中的数据、功能和行为模型所显示的软件需求信息被传送到设计阶段,产生数据/类设计、体系结构设计、接口设计和组件级设计,5/71, 数据/类设计:将分析类模型转换为类实现和软件实现所需的数据结构体系结构设计:体系结构
2、设计定义了软件接口设计的整体结构:接口设计描述了如何在软件之间、软件和协作系统之间以及软件人员之间进行通信。 组件级设计将软件架构的结构元素转化为软件组件的过程描述,6/71,1)数据/类设计。在循环冗余校验中定义的类、数据对象和关系以及数据字典中描述的详细数据内容为数据设计活动提供了基础。数据设计过程包括以下两个步骤:首先,为需求分析阶段确定的数据对象选择逻辑表示,并对不同的结构进行算法分析,以选择最有效的设计方案;然后,确定逻辑数据结构所需的那些操作的程序模块,以便限制或确定每个数据设计决策的影响范围。7/71,2)体系结构设计,它定义了软件的整体结构,该结构由软件组件、外部可见属性及其关
3、系组成。架构设计表示可以从系统规范、分析模型和分析模型中定义的子系统的交互中导出。8/71,3)接口设计,主要包括三个方面:软件模块之间的接口设计和其他非人类信息生产者与消费者(如外部实体)之间的接口设计;设计者(用户)与计算机之间的接口设计;9/71,4)组件级设计,将软件体系结构的结构元素转化为软件组件的过程描述。从基于类的模型、流模型和行为模型中获得的信息是组件设计的基础。10/71,软件设计的目标,在软件设计过程中,我们应该密切关注软件的质量因素。McGlanghlin软件设计过程的目标如下:1)设计必须满足分析模型中描述的所有显式需求和用户期望的所有隐式需求。2)设计必须是可读和可理
4、解的,以便于将来编程、测试和维护。3)设计应该从实现的角度给出与数据、功能和行为相关的软件的完整画面。11/71,测量设计的技术标准,1)设计的结构应该是分层结构,以便建立软件组件之间的控制。2)设计应模块化,软件逻辑上应划分为组件,以完成特定的功能或子功能。3)设计应该包括数据抽象和过程抽象。4)设计应建立具有独立功能特征的模块。5)设计应建立一个接口,以减少模块和外部环境之间的复杂连接。6)设计应能够根据软件要求分析获得的信息,并建立一个可驱动和可重复的方法。12/71,设计过程和设计质量,1)制定规范,2)体系结构和接口设计,3)数据/类设计,4)组件级(过程)设计,5)编写设计文档,6
5、)设计评审,13/71,设计概念和抽象,是随着软件设计规模的增加而控制复杂性的基本策略。抽象的过程是从特殊到一般,上层概念是下层概念的抽象,下层概念是上层概念的提炼和提炼。软件工程过程的每一步都是更高级抽象解决方案的具体描述。14/71,软件设计中主要的抽象方法是:过程抽象和数据抽象。过程抽象(也称为功能抽象)意味着任何完成明确定义的功能的操作都可以被用户视为一个单独的实体。虽然这个操作实际上是由一系列较低级别的操作完成的,但是数据抽象是指定义数据类型和应用于这种类型的对象的操作,并限制对象的值域,数据只能通过这些操作来修改和观察。15/71,模块化,模块化,即根据规定的原则将软件分成较小的、
6、独立的但相互关联的组件,实际上是一个系统分解和抽象的过程。模块是程序对象的集合,如数据描述和可执行语句。它是单独命名的,可以通过名称来访问,例如,过程。函数、子程序、宏等。16/71,设C(x)为描述问题x复杂性的函数,E(x)为解决问题x所需工作量的函数(根据时间计算)。对于两个问题p1和p2,如果C(p1)C(p2)(4.1a),那么E(p1)E(p2) (4.1b)意味着问题越复杂,解决问题的成本就越高。17/71,通过人们解决问题的实验还有另一个有趣的规律:C(p1p2)C(p1)C(p2) (4.2)方程(4.2)意味着p1和p2组合后的复杂性大于单独考虑每个问题时的复杂性。考虑到等
7、式(4.2)和等式(4.1)的隐含条件,我们可以得出结论,E(p1p2) E(p1)E(p2) (4.3)不等式(4.3)表达了模块化和软件的一个非常重要的结论(即模块化的论点):通过将复杂的问题分解成可管理的片段来解决问题会更容易。如果我们无限期地划分软件,开发软件所需的工作量将变得微不足道?事实上,影响软件开发工作量的因素很多,比如模块接口成本等。上述不等式只能表明,当模块总数增加时,单独开发每个子模块的总工作量将减少19/71。如果模块彼此独立,模块越小,每个模块花费的工作量就越低。然而,当模块数量增加时,模块之间的连接增加,并且连接这些模块的工作量也增加。20/71,信息隐藏,每个模块
8、的实现细节应该对其他模块隐藏。如果块中包含的信息(包括数据和过程)不允许不需要该信息的其他模块通过信息隐藏来使用,则可以定义和实现对模块的过程细节和本地数据结构的访问限制。21/71,独立功能,独立模块:该模块完成独立功能,并与其他模块有简单的接口。根据信息隐藏和信息定位的原则,模块之间的相关性和依赖性尽可能小。独立模块的重要功能被划分,接口被简化,因此具有有效模块化的软件更容易开发。因为由设计和编码修改引起的副作用是有限的,所以减少了错误传播,并且模块重用是可能的,独立的模块更容易维护和测试。22/71,独立的功能,模块的独立性可以用两个指标来衡量:内聚性和耦合性内聚性是对模块内各种元素的集
9、成程度的衡量。耦合是对模块之间相对独立性(互连的紧密程度)的度量,23/71,逐步细化,逐步细化,将问题解决过程分解为几个步骤或阶段,每一步都比前一步更精细。更接近问题解决方案的抽象使设计者能够描述过程和数据,忽略低级细节,而细化有助于设计者揭示设计过程中的低级细节。24/71,内聚力(重构),一般模块的内聚力可以分为七种类型,25/71,内聚力(重构),1)重合内聚力(偶然内聚力):将几个模块中没有清楚显示独立功能的相同程序代码段分开2)逻辑内聚力:指完成一组逻辑相关任务的模块。调用模块时,传输到模块的控制参数决定了模块应执行的功能。3)时间内聚力:意味着一个模块中的所有字符必须在同一时间段
10、内执行。例如初始化模块和终止模块。26/71,内聚性,4)过程内聚性:一个模块完成多个任务,并且这些任务必须按照指定的过程来执行。5)通信内聚性:模块中的所有处理元素都集中在数据结构的一个区域中。6)顺序内聚:一个模块完成多个功能,这些功能必须按顺序执行。7)功能内聚:它意味着一个模块的所有部分一起工作来完成一个特定的功能,这是密切相关和不可分割的。27/71,联轴器。通常,模块之间有七种可能的耦合模式,28/71,耦合,1)内容耦合:如果一个模块直接访问另一个模块的内部数据;或者一个模块不能通过正常入口转移到另一个模块;或者两个模块的一些程序代码重叠;或者,如果一个模块有多个入口,则两个模块
11、之间会发生内容耦合。2)公共耦合:如果一组模块都访问同一个公共数据环境,它们之间的耦合称为公共耦合。公共数据环境可以是全局数据结构、共享通信区域、公共内存覆盖区域等。3)外部耦合:当模块通过软件以外的环境连接时(例如将模块耦合到特定设备、格式和通信协议的输入/输出),称为外部耦合。29/71,耦合,4)控制耦合:如果从一个模块传输到另一个模块的参数包含控制信息,用于控制接收模块中的执行逻辑,则称为控制耦合。5)标签耦合:数据结构的一部分(如数据结构的子结构)通过参数表在两个模块之间传递,这就是标签耦合。6)数据耦合:当两个模块只通过参数表传输简单数据时,称为数据耦合。7)间接耦合:如果两个模块之间没有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 营地教育主题活动
- 留学生就业指导参考模版教程
- 2026春季湖南高创翔宇社会招聘笔试模拟试题及答案解析
- 2026年3月广东省深圳市福田区华强北街道办事处招聘场馆管理岗1人考试参考题库及答案解析
- 2025年安徽工贸职业技术学院单招职业适应性测试题库及答案解析
- 2026四川宜宾市叙州区金才人力资源有限责任公司招聘综合行政执法局综合执法协管员10人考试参考题库及答案解析
- 中国生命关怀协会招聘财务人员2人笔试备考题库及答案解析
- 2026湖南兵器研究院招聘客户经理3人考试参考试题及答案解析
- 2026年铜陵市高中阶段学校紧缺学科“招才引智”24名考试备考题库及答案解析
- 2026广西南宁沛鸿民族中学教育集团顶岗教师招聘2人考试备考题库及答案解析
- 企业员工福利及关爱基金管理细则
- YY/T 0573.2-2025一次性使用无菌注射器第2部分:动力驱动注射泵用注射器
- DB31∕T 405-2021 集中空调通风系统卫生管理规范
- 2025年锂电池回收政策支持力度行业报告
- 沥青拌合站培训课件
- 第四版(2025)国际压力性损伤溃疡预防和治疗临床指南解读
- 2026年江苏航空职业技术学院单招职业倾向性考试必刷测试卷必考题
- 半导体专利申请策略-洞察及研究
- 辽宁中考数学三年(2023-2025)真题分类汇编:专题06 几何与二次函数压轴题 原卷版
- 住房公积金协议书范本
- 学校教辅征订管理“三公开、两承诺、一监督”制度
评论
0/150
提交评论