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