资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,Click to edit Master title style,Click to edit Master text styles,Second level,*,*,Zhu.,软件质量保证和管理,Zhu.Kerrygmail,Kerry Zhu,提高软件设计质量,第,13,章 回忆,13.1,需求分析的概念,软件系统的构建层次,软件需求工程过程,13.2,需求的获取与分析,13.3,需求分析建模,结构化分析建模,面向对象的分析建模,敏捷建模,13.4,系统需求的质量保证,第,14,章 提高软件设计质量,14.1,软件设计,14.2,软件体系结构,14.3,软件设计模式,14.4,软件设计优化,14.5,一些典型的系统设计,14.6,数据库设计质量,课程目标,了解软件设计的目标,理解软件体系结构的模型,掌握软件设计模式,理解软件设计的优化,了解一些典型的软件系统设计,14.1,软件设计,设计模式使得人们可以更加简单和方便地去复用成功的软件设计和体系结构,从而能够帮助设计者更快更好地完成系统设计。,软件设计一般分为:,体系结构设计,高层次设计,将软件需求转化为数据结构和软件的系统结构,并定义子系统和它们之间的通信或接口。,详细设计,过去习惯成为总体设计或概要设计。通过对结构表示进行细化,得到软件软件详细的数据结构和算法。,14.1.1,软件设计的目标,软件体系结构设计的基本任务:,设计软件系统结构,数据结构及数据库设计,编写概要设计文档,概要设计文档评审,软件设计的目标具备特征:,可靠性,性能和平安性,可扩展性,可定制性或可移植性,可维护性和可重用性,14.1.2,软件设计评价标准,软件设计质量的分析与评价包含:,质量属性、度量以及质量分析与评价技术。,区分软件设计的质量属性:,软件运行时间评价的质量属性;软件维护时间评价的质量属性;与体系结构本质质量相关的质量属性;,软件设计度量方法可以分为:,面向功能设计的度量,面向对象设计度量。,软件设计的评价工具和技术:,软件设计评审,静态分析,模拟与原型。,软件设计模型:,由实体空间,过程空间和形式空间组成。,软件系统设计模型示意图,软件设计评价,实体空间标准,以源系统做为标准来度量系统设计模型,是一个软件设计最终应该附合的标准。它依赖于我们对于源系统的认识程度,同时软件设计是思维的产物。,过程空间标准,可以看作实体空间的间接标准,是基于分析模型和设计模型来定义,。,形式空间标准,以目标系统的角度,(,即软件产品质量属性,),检验系统设计。实体空间标准和过程空间标准,可以保证目标系统的功能满足源系统。,软件设计质量考察指标,设计结果的稳定性,设计的清楚性,设计合理性,系统的模块结构所显示的宽度、深度等,模块间松耦合而模块内部又保持高度一致性、稳定性是高质量软件设计的关键之一,给出的系统设计是否满足软件需求,可测试性和可追溯性,所要设计的系统在整个工程软件中的地位、作用,对各种需求项是否都进行了相应的设计分析,系统的模块结构复杂性描述,14.1.3,软件设计原则,软件设计的思想原则,用户需求远比技术重要,需求其实很少改变,改变的是对需求的理解,接受变化,不要低估软件规模的需求,在软件设计中没有捷径可以走,任何体系结构都有它自身的优点和缺点,设计模式也一样,软件设计的技术原则,开闭原则,单一职责原则,李氏代换原则,依赖倒转原则,接口隔离原则,合成,/,聚合复用原则,迪米特法则,耦合的表现形式,系统模块的内聚性,14.2,软件体系结构,软件体系结构:,软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构,成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这,这些模式的约束组成。,体系结构的模型和视图,体系结构的分类,体系结构的设计,异步体系结构的选择,14.2.1,体系结构的模型和视图,体系结构的模型,结构模型:,以体系结构的构件、连接件和其他概念来刻画结构,并力图通过结构来反映系统的重要语义内容。,框架模型:框架模型主要以一些特殊的问题为目标建立只针对和适应该问题的结构。,动态模型:动态模型是对结构或框架模型的补充,研究系统的“大颗粒”的行为性质。,过程模型:研究构造系统的步骤和过程。,功能模型:由一组功能构件按层次组成,下层向上层提供服务。,体系结构的试图,概念试图,逻辑试图,物理试图,14.2.2,体系结构的分类,C/S,软件体系结构,传统的二层,C/S,结构存在局限性。,三层,C/S,结构将应用功能分为表示层、功能层和数据层。,B/S,软件体系结构,B/S,结构是对,C/S,结构的一种改进。,B/S,结构和,C/S,结构比较接近,但也具有自己的特点。,中间件的多层分布式的体系结构,具有客户端的表示层、中间的业务逻辑层和数据库服务器的三层或多层体系结构。,多层体系结构将客户和资源分开,降低了服务器的负载。,多层分布式系统中,不同的组件可以用不同的语言来实现。,14.2.3,体系结构的设计,多层分布式体系主要层次,在多层体系设计中,各层次按照一定方式进行划分,实现明确分工。,客户、业务服务、数据服务。,多层分布式体系设计要点,平安性、稳定性,易维护,快速响应,系统扩展灵活,多层分布式体系结构的应用开辟,要考虑,3,方面的技术:开辟环境、应用程序的集成、应用程序的配置。,系统平台软件和终端软件的体系结构的划分是以高性能、高可靠性、高平安性、高扩展性和可管理为原则。,14.2.4,异步体系结构的选择,异步体系结构优点:,更快的响应时间,负载平衡,具有更好的容错能力,支持断续连接的系统,异步体系结构缺点:,利用通知或轮询进行状态跟踪,处理超时,创立和执行补偿逻辑,14.3,软件设计模式,设计模式,:,设计模式,使得人们可以更加简单和方便地去复用成功的软件设计和体系结构,从而能够帮助设计者更快更好地完成系统设计。,建筑的永恒方法,:,模式,是一条由三局部组成的规则,它表示了一个特定环境、一个问题和一个解决方案之间的关系。每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动,。,14.3.1,设计模式的分类,创立型模式,创立型模式抽象了实例化过程。它们帮助一个系统独立于如何创立、组合和表示它的那些对象。,结构型模式,结构型类模式采用继承机制来组合接口或实现,描述了如何对一些对象进行组合,从而实现新功能的一些方法。,行为模式,行为模式涉及到算法和对象间职责的分配。行为模式不仅描述对象或类的模式,还描述它们之间的通信模式。行为模式使用继承机制在类间分派行为。,设计模式分类,分类,具体种类,描述,创立型模式,抽象工厂,提供一个创立一系列相关或相互依赖对象的接口,而无需指定它们具体的类。,生成器,将一个复杂对象的构建与它的表示别离,使得同样的构建过程可以创立不同的表示。,工厂方法,定义一个用于创立对象的接口,让子类决定实例化哪一个类。,Factory Method,使一个类的实例化延迟到其子类。,原型,用原型实例指定创立对象的种类,并且通过拷贝这些原型创立新的对象。,单件,保证一个类仅有一个实例,并提供一个访问它的全句访问点。,结构型模式,适配器,将一个类的接口转换成客户希望的另外一个接口。,Adapter,模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作,桥接,将抽象局部与它的实现局部别离,使它们都可以独立的变化,组合,将对象组合成树形结构以表示“局部整体”的层次结构。,Composite,使得用户单,个对象和组合对象的使用具有一致性,装饰,动态的给一个对象添加一些额外的职责。就增加功能来说,,Decorator,模式,相比生成子类更为灵活,外观,为子系统中的一组接口提供一个一致的界面,,Faade,模式定义了一个高层接口,这个接口使得这一子系统更加容易使用,享元,运用共享技术有效的支持大量细粒度的对象,代理,为其他对象提供一种代理以操作对这个对象的访问,设计模式分类,14.3.2 MVC,模型,模型:,是封装数据和所有基于对这些数据的操作。,视图:,是封装对数据的显示、即用户界面。,操作器:,是封装外界作用于模型的操作和对数据流向的操作。,MVC,设计模式将模型、视图与操作器分隔开来。,MVC,设计模式实现过程:,操作器创立模型;,操作器创立一个或多个视图,并将它们与模型相关联;,操作器负责改变模型的状态;,当模型的状态发生改变时,模型会通知与之相关的视图进行更新。,UML,表示,MVC,设计模式,14.3.3,设计模式的作用,设计模式有,4,个基本要素:,模式名称:,描述模式的问题、解决方案和效果;,问题:,描述了应该在何时使用模式;,解决方案:,描述了设计的组成局部之间的相互关系、职责和协作方式。,效果:,描述了模式应用的效果及使用模式应权衡的问题。,设计模式在工程小组成员之间提供了通用的语义。,设计模式可以更加简单方便的复用成功的设计和体系结构。,设计模式有助于作出有利于系统复用的选择,防止设计损害系统复用性。,设计模式可以帮助设计者更快更好的完成系统设计,14.3.4,通过,UML,改善功能设计,UML,是一种直观化、明确化、构建和文档化软件系统产物的通用可视化建模语言,。,设计阶段分为结构设计和详细设计。,结构设计是定义包,包括包间的依赖性和主要通信机制。,详细设计是通过创立新的类图、状态图和动态图,描述新的技术类、并扩展和细化分析阶段。,UML,设计可以规格说明更直观、更清楚。,系统设计分为硬件设计及软件设计。使用,UML,的,Collaboration,图和,Component,图分别对系统的硬、软件进行系统分析。,除了使用,UML,框图外,还需要使用,State Chart,、,Sequence,框图描述具体的系统流程细节。,14.4,软件设计优化,14.4.1,模块设计和接口设计的要求,14.4.2,详细设计的要求,14.4.3,界面设计的要求,14.4.1,模块设计和接口设计的要求,模块设计准则:,模块的划分是适宜、模块与模块之间是否具有一定的独立性,每个模块的功能和接口定义是否正确,数据结构的定义是否正确,模块内的数据流和操作流的定义是否正确,接口设计准则:,用户接口设计是否正确全面,是否有单独的用户界面设计文档,是否包含有硬件接口设计,硬件接口设计是否正确且全面,概要设计规格说明是否包含有软件接口设计,软件接口设计是否正确且全面,是否包含有通信接口设计,通信接口设计是否正确且全面,是否描述了各类接口的功能、各接口与其他接口或模块之间的关系已经接口的设计是否具有可测试性,14.4.2,详细设计的要求,详细设计的目标任务:,为每个模块确定采用的算法,确定每一模块使用的数据结构,确定模块接口的细节,为每一个模块设计出一组测试用例,详细设计的原则:,模块的逻辑描述要清楚易读、准确可靠,采用结构化设计方法,改善操作结构,详细设计的表示方法:,流程图,伪码,IPO,图,PAD,判定表(树),5,种软件详细设计表示方法比较,14.4.3,界面设计的要求,用户界面设计原则:,用户界面必须保持一致性,用户界面应有自助功能,用户界面易懂性,Windows,界面设计规则:,易用性,标准性,帮助设施,美观与协调性,独特性,快捷方式的组合,错误保护,14.5,一些典型的系统设计,14.5.1 J2EE,系统的设计,14.5.2.Net,系统的设计,14.5.1 J2EE,系统的设计,J2EE,系统的结构:,运行在客户端机器上的客户层组件,运行在,J2EE,服务器上的,Web,层组件,运行在,J2EE,服务器上的业务逻辑层组件,运行在,EIS,服务器上的企业信息系统层软件,J2EE,的模型视图操作体系结构,J2EE,设计模式:,前端操作器,数据
展开阅读全文