第3章软件设计_第1页
第3章软件设计_第2页
第3章软件设计_第3页
第3章软件设计_第4页
第3章软件设计_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第 三三 章章3软件设计3.1 软件设计概述3.2 软件体系结构设计3.3 软件设计准则3.4 结构化设计(SD)法3.5 详细设计的描述工具3.6 用户界面设计 软件设计是软件开发的关键步骤,直接影响软软件设计是软件开发的关键步骤,直接影响软件质量件质量。软件设计阶段要解决软件设计阶段要解决“如何做如何做”的问题。的问题。 将分析阶段获得的需求说明转换为计算机中可将分析阶段获得的需求说明转换为计算机中可实现的系统。包括实现的系统。包括: :软件体系结构的设计软件体系结构的设计用户界面的设计用户界面的设计数据结构的设计数据结构的设计算法的设计算法的设计 从工程管理的角度来看,软件设计分两步完

2、成,分从工程管理的角度来看,软件设计分两步完成,分为总体设计(概要设计)和详细设计两个阶段。为总体设计(概要设计)和详细设计两个阶段。 概要设计。将软件需求转化为数据结构和软件的系概要设计。将软件需求转化为数据结构和软件的系统结构。划分出程序、数据库、过程、文件、类等统结构。划分出程序、数据库、过程、文件、类等 详细设计。通过对结构表示进行细化,得到软件详详细设计。通过对结构表示进行细化,得到软件详细的数据结构和算法。细的数据结构和算法。软件设计工作流程需求需求说明书说明书复复审审软件结构软件结构可接受可接受模块描述复复审审修修 改改修修 改改总体总体设计设计详细详细设计设计 软件设计的目标就

3、是构造一个高内聚、低耦合的软软件设计的目标就是构造一个高内聚、低耦合的软件模型。件模型。软件软件高可靠性高可靠性高可维高可维护性护性高可理高可理解性解性高效率高效率软件设计的目标衡量软件设计的目标的衡量软件设计的目标的准则准则: 软件实体有明显的层次结构,利于软件元素间控制。软件实体有明显的层次结构,利于软件元素间控制。 软件实体应该是模块化的,模块具有独立功能。软件实体应该是模块化的,模块具有独立功能。 设计规格说明清晰、简洁、完整和无二义性。设计规格说明清晰、简洁、完整和无二义性。 软件实体与环境的界面清晰。软件实体与环境的界面清晰。3.2 3.2 软件体系结构设计软件体系结构设计软件体系

4、结构确定了系统的软件体系结构确定了系统的组织结构组织结构和和拓扑结构拓扑结构,显示了系统需求和构成系统的元素之间的对应关系,显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。提供了一些设计决策的基本原理。 体系结构的设计过程的主要活动:体系结构的设计过程的主要活动:1.系统分解系统分解将系统分解为若干相互作用的子系统。将系统分解为若干相互作用的子系统。2.控制建模控制建模建立系统各部分间控制关系的一般模型。建立系统各部分间控制关系的一般模型。3.模块分解模块分解 将子系统进一步划分为模块。将子系统进一步划分为模块。体系结构设计是软件设计的第一个阶段,该阶段侧重体系结构

5、设计是软件设计的第一个阶段,该阶段侧重于系统宏观结构的设计,而不关心模块的内部算法。于系统宏观结构的设计,而不关心模块的内部算法。软件系统的体系结构分为集中式的仓库模型、分布式软件系统的体系结构分为集中式的仓库模型、分布式模型等。模型等。 一、仓库模型一、仓库模型(The repository model) 也称也称“容器模型容器模型 ”,是一种集中式的模型。中央数据,是一种集中式的模型。中央数据仓库存储各个子系统共享的数据,其他的子系统可以直接仓库存储各个子系统共享的数据,其他的子系统可以直接访问这些共享数据。子系统之间紧密耦合。访问这些共享数据。子系统之间紧密耦合。 各子系统共享中央数据库

6、中的数据各子系统共享中央数据库中的数据共享容器模型共享容器模型 各子系统有自己的数据库,子系统之间通过消息传递实现数各子系统有自己的数据库,子系统之间通过消息传递实现数据交换。据交换。命令控制系统、命令控制系统、CAD系统系统 中央数据仓库中央数据仓库(Repository)子系统子系统1子系统子系统2子系统子系统n 仓库结构仓库结构私有数据库私有数据库私有数据库私有数据库私有数据库私有数据库仓库模型的主要优缺点仓库模型的主要优缺点优点:优点: 1.共享大数据量的有效方法。共享大数据量的有效方法。 2.子系统不必关心其他的子系统如何使用它所产生的数子系统不必关心其他的子系统如何使用它所产生的数

7、据。据。 3.易于将新子系统集成,若新子系统也采用相同规范易于将新子系统集成,若新子系统也采用相同规范 。 缺陷:缺陷: 1.为了共享数据为了共享数据 ,各子系统必须有一致的数据视图各子系统必须有一致的数据视图 ,不可避,不可避免地会影响了整个系统的性能。免地会影响了整个系统的性能。 2.子系统的改变使产生的数据结构也可能发生改变。子系统的改变使产生的数据结构也可能发生改变。 3.统一的数据库结构统一的数据库结构(备份、安全、访问控制和恢复的策略备份、安全、访问控制和恢复的策略 ),将影响子系统的效率将影响子系统的效率 。二、二、 客户服务器模型客户服务器模型(Client/Server Ar

8、chitectural Model) C/S结构是一种结构是一种分布式模型分布式模型,采用发请求、得结果的,采用发请求、得结果的模式:模式:客户机客户机 向服务器发出请求向服务器发出请求(数据请求、网页请求、文件数据请求、网页请求、文件传输请求等传输请求等)。服务器服务器 响应请求,进行相应的操作,将结果回传给客户响应请求,进行相应的操作,将结果回传给客户机,客户机再将格式化后的结果呈现给用户。机,客户机再将格式化后的结果呈现给用户。C/S结构的应用都由三个相对独立的逻辑部分组成。结构的应用都由三个相对独立的逻辑部分组成。用户界面用户界面应用逻辑应用逻辑数据访问数据访问三种逻辑之间的关系1.

9、两层客户服务器模型两层客户服务器模型 (Two Tier Client/Server Architectural Model)服务器服务器1网络网络服务器服务器2服务器服务器M客户客户1客户客户2客户客户N两层两层Client/Server结构结构请求请求结果结果请求请求C/S的工作模式是一种远程过程调用的工作模式是一种远程过程调用(RPC,Remote Procedure Call)模式,允许客户端和服务器端有不同的软模式,允许客户端和服务器端有不同的软硬平台。硬平台。 完整的应用包含三个相对独立的逻辑部分,而两层的完整的应用包含三个相对独立的逻辑部分,而两层的C/S结构只有两个端应用。应用

10、逻辑应该映射到哪一端上结构只有两个端应用。应用逻辑应该映射到哪一端上呢?呢? 三种情况:三种情况:网网 络络用户界面用户界面客户端逻辑客户端逻辑应用应用服务端逻辑服务端逻辑应用应用客户端客户端用户界面用户界面逻辑应用逻辑应用数据访问数据访问用户界面用户界面逻辑应用逻辑应用数据访问数据访问服务器服务器应用逻辑层的映射情况数据访问数据访问C/S应用应用3C/S应用应用1C/S应用应用2 两层两层C/S架构将数据表示和处理逻辑分开架构将数据表示和处理逻辑分开 ,但应用逻,但应用逻辑和两端之一是紧耦合的辑和两端之一是紧耦合的,不适宜多用户、多数据库、非不适宜多用户、多数据库、非安安全的网络环境。安安全

11、的网络环境。 2.三层三层/多层应用模型多层应用模型(Three/Multi Tier Model) 第一级是数据库管理结点第一级是数据库管理结点(database management node)。第二级或中间级是第二级或中间级是“商业逻辑结点商业逻辑结点” (business logic node),是是指具体应用中实施的指具体应用中实施的 程序逻辑和法则。程序逻辑和法则。第三级是用户界面级,强调高效、方便易用的用户界面。第三级是用户界面级,强调高效、方便易用的用户界面。Database management node(数据库管理结点)(数据库管理结点)business logic nod

12、e(商业逻辑结点)商业逻辑结点)Security(安全)(安全)Event(事件)(事件)Search(搜索)(搜索)ClientAClientDClientBClientC服服务务器器客客户户机机第一级第一级第二级第二级第三级第三级客户端客户端用户界面用户界面服务器服务器数据访问数据访问多层应用模型网网 络络应用服务器应用服务器1应用逻辑应用逻辑应用服务器应用服务器n应用逻辑应用逻辑 在多层模型中,中间层会用到应用服务,包括事务在多层模型中,中间层会用到应用服务,包括事务服务、消息服务等等。常见的事务服务器有服务、消息服务等等。常见的事务服务器有Microsoft Transaction S

13、erver,消息服务器有,消息服务器有Microsoft Message Queue。三、分布式对象结构三、分布式对象结构(Distributed Objects Architecture) 在在C/S模型中,客户和服务器在服务模型中,客户和服务器在服务/请求上的差别请求上的差别(请求与被请求请求与被请求),在一定程度上限制了系统的灵活性和,在一定程度上限制了系统的灵活性和可扩展性。可扩展性。 采用分布式对象结构采用分布式对象结构 : “对象对象(Object)”提供服务的系统组件提供服务的系统组件(System Component)。 每个对象在逻辑上是平等的,它们可以互相为对方提每个对象在

14、逻辑上是平等的,它们可以互相为对方提供所需的服务。供所需的服务。 提供服务的对象就是服务器,而提出服务请求的对象提供服务的对象就是服务器,而提出服务请求的对象就是客户。就是客户。 软件总线软件总线(Software Bus)的中间件的中间件(Middleware) 即即对象请求代理对象请求代理(Object Request Broker,ORB) 分布式对象结构具有很好的开放性和透明性,用分布式对象结构具有很好的开放性和透明性,用户可以非常方便地在总线上添加、更新或删除组件对户可以非常方便地在总线上添加、更新或删除组件对象。象。软件总线软件总线(ORB)O1S(O1)O2S(O2)OnS(On

15、)分布式对象结构流行的流行的ORB技术标准有:技术标准有:1.CORBA(Common Object Request Broker Architecture) 公共对象请求代理体系结构公共对象请求代理体系结构。由对象管理组织由对象管理组织OMG (Object Management Group)提出的应用软件体系结构)提出的应用软件体系结构和对象技术规范。和对象技术规范。2.COM(Distributed Component Object Model) 组件对象模型组件对象模型。为组件之间、组件与应用程序之间的。为组件之间、组件与应用程序之间的通信和互操作提供了统一的标准和技术规范,使不同语言

16、通信和互操作提供了统一的标准和技术规范,使不同语言开发的组件可进行基于组件的软件开发。开发的组件可进行基于组件的软件开发。 3. EJB(Enterprise Java Bean) 由由Sun公司定义的规范,公司定义的规范,EJB构件是实现构件是实现EJB规范的规范的Java构件,构件,完成企业级应用中的业务逻辑。完成企业级应用中的业务逻辑。EJB构件驻留构件驻留在在EJB容器中。容器中。 四、四、 抽象机模型抽象机模型又称为又称为分层模型分层模型,通常用于建立子系统的接口模型。,通常用于建立子系统的接口模型。每层提供一组服务,定义一个每层提供一组服务,定义一个抽象机。抽象机。典型的例子:典型

17、的例子:应用层协议应用层协议表示层协议表示层协议会话层协议会话层协议传输层协议传输层协议 物物 理理 介介 质质应用层应用层表示层表示层会话层会话层传输层传输层网络层网络层数据链路层数据链路层物理层物理层应用层应用层表示层表示层会话层会话层传输层传输层网络层网络层数据链路层数据链路层物理层物理层网络层网络层数据链路层数据链路层物理层物理层网络层网络层数据链路层数据链路层物理层物理层中继系统中继系统 中继系统中继系统主机系统主机系统主机系统主机系统优点:支持增量式开发。优点:支持增量式开发。缺点:系统构成、性能保证较困难。缺点:系统构成、性能保证较困难。1.软件结构的准则软件结构的准则2. 模块

18、化准则模块化准则3.软件独立性准则软件独立性准则 软件设计是软件开发过程的重要阶段,对保证软件设计是软件开发过程的重要阶段,对保证软件系统的质量起着关键作用。但是如何保证软件软件系统的质量起着关键作用。但是如何保证软件设计的质量呢?有以下经过长期考验的设计准则:设计的质量呢?有以下经过长期考验的设计准则: 这些设计准则直接影响到体系结构的设计过程这些设计准则直接影响到体系结构的设计过程的主要活动的主要活动系统分解和模块分解。系统分解和模块分解。 软件结构表示软件的系统结构,它是软件模块间关系软件结构表示软件的系统结构,它是软件模块间关系的表示,均表示为层次关系的表示,均表示为层次关系。软 件

19、结 构 示 意 图0层层1层层2层层ABCDEFGHIJKLMN深度宽度扇入为扇入为2扇出为扇出为3扇入为扇入为3宽度深度宽度3层层4层层一、一、 软件结构的准则软件结构的准则 深度深度:表示软件结构中从顶层模块到最底层模块表示软件结构中从顶层模块到最底层模块的层数的层数。 宽度宽度:表示控制的总分布。表示控制的总分布。 扇出数扇出数:指一个模块直接控制下属的模块个数。指一个模块直接控制下属的模块个数。 扇入数扇入数:指一个模块的直接上属模块个数。指一个模块的直接上属模块个数。 一个好的软件结构的形态准则是:顶部宽度小,一个好的软件结构的形态准则是:顶部宽度小,中部宽度最大,底部宽度次之;在结

20、构顶部有较高的中部宽度最大,底部宽度次之;在结构顶部有较高的扇出数,在底部有较高的扇入数。扇出数,在底部有较高的扇入数。有有 关关 指指 标标 所谓所谓模块化模块化就是将系统划分成若干模块,每个模块就是将系统划分成若干模块,每个模块完成一个子功能,把这些模块集中起来组成一个整体,以完成一个子功能,把这些模块集中起来组成一个整体,以满足所要求的整个系统的功能满足所要求的整个系统的功能。 我们利用模块化来降低软件复杂度。我们利用模块化来降低软件复杂度。 并非模块分得越并非模块分得越小越好,因为模块之间接口的复杂度和工作量增加。显然,每小越好,因为模块之间接口的复杂度和工作量增加。显然,每个软件系统

21、都有一个最佳模块数个软件系统都有一个最佳模块数M。注意选择分解的最佳模块。注意选择分解的最佳模块数。数。二、二、 模块化准则模块化准则三、三、 软件独立性准则软件独立性准则 软件独立性的含义是指开发具有功能专一,模块之软件独立性的含义是指开发具有功能专一,模块之间无过多相互作用的模块。又称为间无过多相互作用的模块。又称为模块独立性准则。模块独立性准则。 这种类型的模块可以并行开发,开发容易,能减少这种类型的模块可以并行开发,开发容易,能减少错误的影响,使模块容易组合、修改及测试。错误的影响,使模块容易组合、修改及测试。 耦合性耦合性 用于描述模块之间联系的紧密程度。用于描述模块之间联系的紧密程

22、度。软件独立性的度量标准是两个定性指标:软件独立性的度量标准是两个定性指标:内容耦合内容耦合公共耦合公共耦合控制耦合控制耦合特征耦合特征耦合数据耦合数据耦合w在软件设计中应该追求模块间尽可能松散耦合的系统。w设计模块时,应以数据耦合为主,辅以特征耦合和控制耦合,限制公共耦合,完全不用内容偶合。 内容耦合:内容耦合: A直接引用直接引用B的数据,如的数据,如goto语句语句 公共耦合:多个模块访问一个公共数据区公共耦合:多个模块访问一个公共数据区 控制耦合:传递控制信号给另一个模块控制耦合:传递控制信号给另一个模块 void output(flag) if(flag) printf(OK!);

23、else printf(NO!); main() int flag; . . . output(flag); . 数据耦合:参数是单个数据项,或单数据项组成的数组数据耦合:参数是单个数据项,或单数据项组成的数组 sum(int a,int b) int c; c=a+b; return(c); main() int x,y; . . .printf(x+y=%d,sum(x,y); 特征耦合:把整个数据结构作为参数传递而被调用的特征耦合:把整个数据结构作为参数传递而被调用的模块只需使用一部分数据元素模块只需使用一部分数据元素设计模块时,应以数据耦合为主,辅以特征耦合和控制耦合,限制公共耦合,完

24、全不用内容偶合。内聚性内聚性 用于描述模块内部联系的紧密程度。用于描述模块内部联系的紧密程度。偶然型偶然型逻辑型逻辑型瞬时型瞬时型通信型通信型顺序型顺序型功能型功能型 内聚性表示一个模块内部各种数据和各种处理之间内聚性表示一个模块内部各种数据和各种处理之间联系的紧密程度,它是从功能的角度来度量模块间的联系的紧密程度,它是从功能的角度来度量模块间的联系。显然联系。显然,块内联系愈紧块内联系愈紧,即内聚性愈强即内聚性愈强,模块独立性模块独立性愈好。愈好。设计时尽量做到高内聚,中等程度的内聚也可采用,设计时尽量做到高内聚,中等程度的内聚也可采用,避免使用低内聚避免使用低内聚p 低内聚低内聚 偶然内聚

25、:偶然内聚: 为了节约空间,将毫无关系(或联系不多)为了节约空间,将毫无关系(或联系不多)的各成分放在一个模块中。不易理解,不易修改。的各成分放在一个模块中。不易理解,不易修改。 逻辑内聚:一个模块完成的任务在逻辑上相似。如一个模逻辑内聚:一个模块完成的任务在逻辑上相似。如一个模块主要产生各种类型的输出。块主要产生各种类型的输出。 瞬时内聚:模块中包含的内容必须在同一段时间内执行。瞬时内聚:模块中包含的内容必须在同一段时间内执行。如各种初始化工作。如各种初始化工作。p 中内聚中内聚 通信内聚:模块中所有元素使用共同的输入数据,产生共通信内聚:模块中所有元素使用共同的输入数据,产生共同的输出数据

26、。同的输出数据。p 高内聚高内聚 顺序内聚:模块中某个成分的输出是另一部分的输入。顺序内聚:模块中某个成分的输出是另一部分的输入。 功能内聚:模块中所有处理元素属于一个整体,完成一个功能内聚:模块中所有处理元素属于一个整体,完成一个单一功能。单一功能。3.4 3.4 结构化设计方法结构化设计方法 SD(Structured Design)法与法与SA、SP法前后衔接,法前后衔接,是结构化开发方法的核心。是结构化开发方法的核心。一、一、SD SD 法的基本概念法的基本概念1. SD SD 法的两个阶段法的两个阶段 总体设计总体设计 任务:任务: 解决系统的模块结构,即分解模块,解决系统的模块结构

27、,即分解模块,确定确定模块功能模块功能及系统模块的层次结构。及系统模块的层次结构。 文档:文档:模块结构图及其模块功能说明。模块结构图及其模块功能说明。 详细设计详细设计 对模块图中每个模块的过程进行描述,常用的对模块图中每个模块的过程进行描述,常用的描述的方式有:伪代码、流程图、描述的方式有:伪代码、流程图、N-S图、图、PAD图等。图等。2.SD 2.SD 法的设计步骤法的设计步骤 从从DFDDFD(Data Flow DiagramData Flow Diagram )图导出初始的)图导出初始的模块结构图模块结构图SCSC(Structure ChartStructure Chart)。

28、)。 按照按照SDSD法设计总则,改进模块结构图。法设计总则,改进模块结构图。注意:注意:模块结构图不同于模块结构图不同于“框图框图”。软件软件层次性层次性 : : 反映软件整体的性质反映软件整体的性质 ( (结构图结构图) )过程性过程性 : : 反映局部的性质反映局部的性质 ( (框图框图) )3.3.DFDDFD图的分类图的分类 中心变换型中心变换型(transform center) (transform center) 变换分析变换分析 事务处理型事务处理型(transaction) (transaction) 事务分析事务分析 这类数据流图可看成是对输入数据进行转换而得这类数据流图

29、可看成是对输入数据进行转换而得到输出数据的处理。到输出数据的处理。 DFDDFD图可以明显分为图可以明显分为 “ “输入输入处理处理输出输出 ” ”三三部分部分(物理输入)(物理输入)(逻辑输入)(逻辑输入)(逻辑输出)(逻辑输出)输输 入入处理处理输输 出出(物理输出)(物理输出)检查检查顺序顺序检查检查合理性合理性扩充扩充代码代码核对核对 记录记录修改修改压缩压缩代码代码格式化格式化修改修改数据数据 旧文件旧文件新文件新文件中心变换型中心变换型 的的 DFD DFD 图图 这类数据流图有一个数据处理中心,按加工的结这类数据流图有一个数据处理中心,按加工的结果选择一个输出数据流继续执行的处理

30、。果选择一个输出数据流继续执行的处理。 如下图所示:如下图所示:分类分类报名报名付款付款注销注销查询查询复审复审采用采用“事务分析事务分析”(transaction Analysis)技术技术事务处理型事务处理型 的的 DFD 图图序号序号内内 容容长度(字节)长度(字节)数据类型数据类型可否修改可否修改1账号账号5数字数字否否2户名户名30数字字母数字字母可可3地址地址30数字字母数字字母可可4省省10字母字母可可5市市15字母字母可可6邮政编码邮政编码5数字数字可可7电话电话7数字数字可可8类型类型1字母字母否否9信贷员号信贷员号5数字数字可可10最近一次业务日期最近一次业务日期6数字数字

31、否否11最近一次付息日期最近一次付息日期6数字数字否否12余额余额8数字数字否否13业务总量业务总量8数字数字否否14限额限额6数字数字否否 要求对贷款文件进行修改,修改信息由卡片输入,要求对贷款文件进行修改,修改信息由卡片输入,卡片上的修改信息格式如下:卡片上的修改信息格式如下: 15位位 69位位 10位起位起 账号账号 空空 修改值修改值1 1* 修改值修改值2 2* .* (序号)序号) 分析分析: :1.1. 贷款文件的记录格式(如前表)贷款文件的记录格式(如前表)2.2. 修改记录(卡片)格式修改记录(卡片)格式3. 3. 需求分析结果需求分析结果DFD DFD 图图, ,是一种混

32、合的是一种混合的 DFD DFD 图。图。修修改改记记录录写写记记录录卡片卡片编编辑辑卡卡片片检检查查顺顺序序检检查查次次序序账账号号相相等等错误顺序卡片顺序卡片修改信息修改信息旧记录旧记录顺序记录顺序记录要修改要修改的记录的记录不修改不修改的记录的记录已修改已修改的记录的记录新记录新记录修修改改分分类类抽抽出出修修改改顺序顺序卡片卡片修改修改信息信息2345679需求分析结果需求分析结果 DFD DFD 图图编辑卡片加工分解编辑卡片加工分解主加工是?主加工是?报告报告报告报告修改信息修改信息顺序记录顺序记录新记录新记录将将DFDDFD图转换为图转换为模块结构图模块结构图贷款文件贷款文件管理系

33、统管理系统取顺序取顺序记录记录修改修改记录记录打印打印报告报告打印打印记录记录比较比较账号账号取修改取修改信息信息读旧读旧记录记录检查检查顺序顺序取取卡片卡片编辑编辑卡片卡片读卡片读卡片检查顺序检查顺序卡片卡片顺序卡片旧记录旧记录顺序记录顺序记录顺序卡片顺序卡片已修改“编辑卡片编辑卡片”应继应继续向下分解,是典续向下分解,是典型的型的“事务处理事务处理”型的型的DFDDFD图。图。写写记录记录修修改改记记录录写写记记录录卡片卡片编编辑辑卡卡片片检检查查顺顺序序检检查查次次序序账账号号相相等等错误顺序卡片顺序卡片修改信息修改信息旧记录旧记录顺序记录顺序记录要修改要修改的记录的记录不修改不修改的记

34、录的记录已修改已修改的记录的记录新记录新记录报告报告已编辑卡片 按照按照“降低块间联系,提高块内联系降低块间联系,提高块内联系”的设计总则进行的设计总则进行修改,完善系统的模块图,写出模块的功能说明。修改,完善系统的模块图,写出模块的功能说明。功能模块的组成:功能模块的组成: 执行某项任务的部分执行某项任务的部分 出错处理部分出错处理部分 返回结束标志返回结束标志具体具体从以下方面改进:从以下方面改进:1 1)尽可能建立功能模块)尽可能建立功能模块功能模块具有最强的内聚性,应满足信息屏蔽原则:功能模块具有最强的内聚性,应满足信息屏蔽原则:一个模块内所包含的信息(过程和数据)对不需要这些一个模块

35、内所包含的信息(过程和数据)对不需要这些信息的模块是不能访问的(黑盒)。信息的模块是不能访问的(黑盒)。三、三、模块结构图的改进模块结构图的改进2 2)消除重复功能)消除重复功能 若两模块含有重复的部分,应设法将重复的功能若两模块含有重复的部分,应设法将重复的功能消去。消去。(a)XYQ1Q2YQ2QXQ(b)(c)(d)Q重复部分重复部分Y YXQ1YQ2X X3 3)模块的作用范围应与控制范围)模块的作用范围应与控制范围控制范围控制范围 结构方面的特点,包括模块及其所有下属模块。结构方面的特点,包括模块及其所有下属模块。作用范围作用范围 判断所涉及到的模块,是从功能特点考虑的。判断所涉及到

36、的模块,是从功能特点考虑的。SDSD方法认为:方法认为: 如图如图(b)(b)中的设计,判定的作用范围恰好在判定所在模块的下一层。中的设计,判定的作用范围恰好在判定所在模块的下一层。TOPXTBAB1B2图图(b)(b)中模块中模块TOP TOP 的控制范围是:的控制范围是:模块模块 TOPTOP、X X、T T、B B、A A、B1B1、B2B2;模块模块B B 的控制范围与作用范围相同,均为:的控制范围与作用范围相同,均为:模块模块B B、A A、B1B1、B2B2图图(a)(a)中模块中模块A A的控制范围:的控制范围: A A、B B、C C、D D、G G、E E、F F如果模块如果

37、模块F F的判定涉及到模块的判定涉及到模块B B、E E、F F。则则F F的的作用范围:的的作用范围:B B、E E、F FABCDGEF FBE显然,图(显然,图(a a)不满足作用范围应与控制范)不满足作用范围应与控制范围的原则,模块围的原则,模块F F的作用范围不在控制范围之内。的作用范围不在控制范围之内。图(图(b b)中模块)中模块TOPTOP和图(和图(c c)中模块)中模块B B虽然满虽然满足上述原则,但其作用范围所涉及到的模块不足上述原则,但其作用范围所涉及到的模块不是直接的。是直接的。图(图(d d)的模块设计最合理。)的模块设计最合理。控制范围与作用范围控制范围与作用范围

38、举例举例TOPABCDEF (a)TOPABCDEF(d)TOPABCDEF(b)TOPABCDEF(c)比较比较(a)(a)、(b)(b)、(c)(c)、(d)4(d)4种设计方案的优劣!种设计方案的优劣!4 4)模块的大小适当)模块的大小适当 模块大小指其篇幅,一般模块大小为模块大小指其篇幅,一般模块大小为50-10050-100行行为宜。为宜。5 5)模块的扇入)模块的扇入/ /扇出数不宜太多扇出数不宜太多 扇出数扇出数 一个模块调用其他模块的个数。一个模块调用其他模块的个数。 扇入数扇入数 一个模块被其他模块调用的个数。一个模块被其他模块调用的个数。 除服务性模块外,模块的扇入扇出数不

39、宜太多除服务性模块外,模块的扇入扇出数不宜太多,否则块间联系增加。,否则块间联系增加。一、任务一、任务 确定每个模块的算法;确定每一个模块的数据组织;为每个确定每个模块的算法;确定每一个模块的数据组织;为每个模块设计一组测试用例;编写详细设计说明书。模块设计一组测试用例;编写详细设计说明书。二、详细设计的原则二、详细设计的原则 1. 模块的逻辑描述正确可靠、清晰易读模块的逻辑描述正确可靠、清晰易读 2. 采用结构化程序设计方法,改善控制结构,降低程序复杂采用结构化程序设计方法,改善控制结构,降低程序复杂度,提高程序的可读性、可测试性和可维护性度,提高程序的可读性、可测试性和可维护性三、常用的描

40、述方法工具三、常用的描述方法工具 1. 流程图流程图 2. 结构化流程图(结构化流程图(N-S图)图) 3. PAD图问题分析图图问题分析图 4. PDL 语言语言3.5 3.5 详细设计描述工具详细设计描述工具程序流程图程序流程图abX1X2X7X6X4X3X5higfedcjFTFFFTTT多分支选多分支选择结构择结构先判定型循先判定型循环结构环结构选择结构选择结构后判定型循环结构后判定型循环结构结构化流程图(结构化流程图(N-S图)图)由顺序、选择、循环三种基本结构组成。由顺序、选择、循环三种基本结构组成。顺序结构顺序结构块块1块块2块块3块块4条件条件T F块块1块块2选择结构选择结构

41、Case I=1,2,3T块块1块块2多分支选择结构多分支选择结构F块块3块块当条件成立时当条件成立时当型循环当型循环块块直到条件成立时直到条件成立时直到型循环直到型循环结构化流程图(结构化流程图(N-S图)图)ab条条 件件 1TF Case Xi, i=2,3,4X2X3X4当条件当条件3成立成立条条 件件 2直到条件直到条件4成立成立直直 到到 条条 件件 成立成立cdefghij顺序结构顺序结构选择结构选择结构多分支选择结构多分支选择结构先判定型循环结构先判定型循环结构后判定型循环结构后判定型循环结构FTTFPADPAD图图问题分析图(问题分析图(Problem Analysis Di

42、agramProblem Analysis Diagram)其基本控制结构如下:其基本控制结构如下:条件条件then部分部分else部分部分选择结构选择结构TF任务任务1任务任务2任务任务3 顺序结构顺序结构WHILE型条件型条件循环体循环体先判定型循环结构先判定型循环结构UNTIL型条件型条件循环体循环体后判定型循环结构后判定型循环结构控控制制变变量量 任务任务1任务任务2任务任务n多分支选择结构多分支选择结构值值 1值值 2值值 n PDL (ProcedureDesign Language) PDL是一种用于描述功能模块的算法设计和加是一种用于描述功能模块的算法设计和加工细节的语言,称为

43、设计程序用语言,它是一工细节的语言,称为设计程序用语言,它是一种伪码种伪码 伪码的语法规则分伪码的语法规则分“外语法外语法”和和“内语法内语法” PDL具有严格的关键字外语法,用于定义控制具有严格的关键字外语法,用于定义控制结构和数据结构结构和数据结构 PDL具有灵活自由的内语法,实际操作和条件具有灵活自由的内语法,实际操作和条件的可使用自然语言的词汇的可使用自然语言的词汇 随着各种应用软件的面市,作为人机接口的用户随着各种应用软件的面市,作为人机接口的用户界面具有越来越重要的作用,用户界面是否友好直接界面具有越来越重要的作用,用户界面是否友好直接影响到软件的寿命与竞争力。因此,对用户界面的设

44、影响到软件的寿命与竞争力。因此,对用户界面的设计必须予以足够的重视。计必须予以足够的重视。3.6 3.6 用户界面设计用户界面设计 用户界面设计中的主要问题用户界面设计中的主要问题 什么是友好的用户界面。什么是友好的用户界面。 用户界面设计应该完成的工用户界面设计应该完成的工作。作。总之,用户界面设计要以人为本。总之,用户界面设计要以人为本。用户界面设计迭代过程用户界面设计迭代过程分析和理解分析和理解用户活动用户活动在纸上设计在纸上设计原型原型与最终用户与最终用户一起评价一起评价设计原型设计原型产生动态产生动态设计原型设计原型与最终用户与最终用户一起评价一起评价实现最终的实现最终的用户界面用户

45、界面可执行原型可执行原型 1 1、可使用性、可使用性 使用简单。使用简单。 用户界面中所用术语的标准化和一致性。用户界面中所用术语的标准化和一致性。 具有具有HELPHELP功能。功能。 快速的系统响应和低的系统成本。快速的系统响应和低的系统成本。 具有容错能力。具有容错能力。 2 2、灵活性、灵活性 考虑用户的特点、能力、知识水平。考虑用户的特点、能力、知识水平。 提供不同的系统响应信息。提供不同的系统响应信息。 提供根据用户需求制定和修改界面。提供根据用户需求制定和修改界面。 3 3、界面的复杂性与可靠性、界面的复杂性与可靠性 复杂性复杂性界面规模及组织的复杂程度。应该愈简单愈好。界面规模

46、及组织的复杂程度。应该愈简单愈好。 可靠性可靠性指无故障使用的时间间隔。用户界面应该能够保指无故障使用的时间间隔。用户界面应该能够保 证用户正确、可靠地使用系统,及程序、数据的安全。证用户正确、可靠地使用系统,及程序、数据的安全。 了解所有用户的技能和经验,针对用户能力设计或更改界面。从以了解所有用户的技能和经验,针对用户能力设计或更改界面。从以下方面分析:下方面分析: 用户类型用户类型 通常分为:外行型、初学型、熟练型、专家型。通常分为:外行型、初学型、熟练型、专家型。 用户特性度量用户特性度量 与用户使用模式和用户群体能力有关。与用户使用模式和用户群体能力有关。 包括:用户使用频度、用户用

47、机能力、用户的知识、思维能力等。包括:用户使用频度、用户用机能力、用户的知识、思维能力等。这部分工作应该与软件需求分析同步进行。包括以下内容:这部分工作应该与软件需求分析同步进行。包括以下内容: 是对系统内部活动的分解,不仅要进行功能分解(用是对系统内部活动的分解,不仅要进行功能分解(用DFDDFD图描述),图描述),还要包括与人相关的活动。每个加工即一个功能或任务。还要包括与人相关的活动。每个加工即一个功能或任务。 1.可视性和可支付性可视性和可支付性(Visibility and Affordance)。 2.努力保持命令、菜单。颜色等统一(努力保持命令、菜单。颜色等统一(Strive for Consistency)。)。 3.为频繁使用的用户提供快捷方式(为频繁使用的用户提供快捷方式(Enable Frequent Users to Use Short Cuts)。)。 4.提供信息反馈(提供信息反馈(Offer Information Feedback)。)。 5.提供简单的错误处理(提供简单的错误处理(Offer Simple Error Handling)。)。 6.允许方便地进行操作回滚(允许方便地进行操作回滚(Permit Easy Reversal of Actions)。)。 7.降低短期记忆(降低短期记忆(Reduce Short-Term Memory

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论