5软件工程第四章电子教案大同大学

上传人:汽*** 文档编号:569281432 上传时间:2024-07-28 格式:PPT 页数:105 大小:646.52KB
返回 下载 相关 举报
5软件工程第四章电子教案大同大学_第1页
第1页 / 共105页
5软件工程第四章电子教案大同大学_第2页
第2页 / 共105页
5软件工程第四章电子教案大同大学_第3页
第3页 / 共105页
5软件工程第四章电子教案大同大学_第4页
第4页 / 共105页
5软件工程第四章电子教案大同大学_第5页
第5页 / 共105页
点击查看更多>>
资源描述

《5软件工程第四章电子教案大同大学》由会员分享,可在线阅读,更多相关《5软件工程第四章电子教案大同大学(105页珍藏版)》请在金锄头文库上搜索。

1、第四章第四章 软件设计概述软件设计概述n软件设计的任务软件设计的任务n软件设计的基本概念软件设计的基本概念n模块化设计模块化设计n设计需要处理的问题设计需要处理的问题n设计文档及其复审设计文档及其复审什么是设计?什么是设计?n把问题转化为解决方案的创造性把问题转化为解决方案的创造性过程;解决方案的描述也称为设过程;解决方案的描述也称为设计。计。设计和需求有什么不同?设计和需求有什么不同?n张君和李丽想张君和李丽想建建一栋新房子。他们的需一栋新房子。他们的需求如下:求如下:n三个小孩有玩耍的空间,并独立拥有各自的三个小孩有玩耍的空间,并独立拥有各自的睡房睡房n一间主人卧房一间主人卧房n一个厨房一

2、个厨房n冬天可取暖,夏天可制冷冬天可取暖,夏天可制冷n室内通水通电室内通水通电n等等等等设计和需求有什么不同?设计和需求有什么不同?n设计师的方案设计师的方案:n屋子的楼上有四间睡房,楼下有一间客房,屋子的楼上有四间睡房,楼下有一间客房,一间厨房,一个玩具房和一个杂物室等等。一间厨房,一个玩具房和一个杂物室等等。n还有其他方案吗?还有其他方案吗?软件设计的两个阶段软件设计的两个阶段n设计者必须同时满足用户和系统开发人员的要求设计者必须同时满足用户和系统开发人员的要求n概要设计书概要设计书n详细设计书详细设计书n设计者迂回于各种活动中:设计者迂回于各种活动中:n理解需求理解需求n提出可能的方案提

3、出可能的方案n测试方案的可能性测试方案的可能性n向用户描述各种可能向用户描述各种可能n向编程人员提供设计文档向编程人员提供设计文档软件设计的内容软件设计的内容n体系结构设计体系结构设计n定义软件部件间的关系定义软件部件间的关系n接口设计接口设计n软件内部、外部及与人之间的通信软件内部、外部及与人之间的通信n数据设计数据设计n信息模型信息模型 软件数据结构软件数据结构n过程设计过程设计n软件组件的过程性描述软件组件的过程性描述软件设计的任务软件设计的任务n分析模型分析模型 设计模型设计模型 设计文档设计文档n回答回答How to do?n可以分为概要设计、详细设计可以分为概要设计、详细设计n软件

4、设计包括软件设计包括n数据设计数据设计n体系结构设计体系结构设计n接口设计接口设计n过程设计过程设计分解和模块化分解和模块化n系统设计方法:系统设计方法:n功能分解:将功能作为组件功能分解:将功能作为组件n面向数据的分解:基于外部数据结构面向数据的分解:基于外部数据结构n面向事件的分解:基于系统必须处理的事件面向事件的分解:基于系统必须处理的事件n外部输入设计:基于系统的用户输入外部输入设计:基于系统的用户输入n面向对象设计:定义对象的类及其相互联系面向对象设计:定义对象的类及其相互联系分解的层次化分解的层次化模块和模块化模块和模块化n模块化:当系统的每项功能恰好由一个输入输模块化:当系统的每

5、项功能恰好由一个输入输出都明确定义的组件完成的时候,我们称这个出都明确定义的组件完成的时候,我们称这个系统模块化。系统模块化。n模块模块表示能够用计算机程序代码实现的,表示能够用计算机程序代码实现的,相对独立的单一数据处理功能,所以模块有时相对独立的单一数据处理功能,所以模块有时也叫功能模块。也叫功能模块。n进一步明确模块是拥有明确定义的输入、输出进一步明确模块是拥有明确定义的输入、输出和特性的程序实体。和特性的程序实体。设计方法的选择设计方法的选择n应该允许不同的设计者使用他们喜欢的应该允许不同的设计者使用他们喜欢的技巧,只要他们的文档能让其他设计者技巧,只要他们的文档能让其他设计者明白就可

6、以了。明白就可以了。n设计方法的选择又是取决于设计者的偏设计方法的选择又是取决于设计者的偏好,而更多的时候取决于系统要求的结好,而更多的时候取决于系统要求的结构或数据。构或数据。软件设计中涉及的问题软件设计中涉及的问题n抽象(抽象(abstract)与细化)与细化(refinement)n抽象:分层次考虑和处理问题抽象:分层次考虑和处理问题(数据和过程数据和过程)n细化:从高到低的逐步分解过程细化:从高到低的逐步分解过程n信息隐藏信息隐藏n对其它模块隐藏模块内部的数据和过程对其它模块隐藏模块内部的数据和过程抽抽 象象n抽象是对具体对象(问题)进行概括,抽出抽象是对具体对象(问题)进行概括,抽出

7、这一类对象的公共性质并加以描述的过程。这一类对象的公共性质并加以描述的过程。n先注意问题的本质及描述,其次是实现过程或细先注意问题的本质及描述,其次是实现过程或细节。节。n数据抽象:描述某类对象的属性或状态(对象相数据抽象:描述某类对象的属性或状态(对象相互区别的物理量)。互区别的物理量)。n代码抽象:描述某类对象的共有的行为特征或具代码抽象:描述某类对象的共有的行为特征或具有的功能。有的功能。n抽象的实现:通过类的声明。抽象的实现:通过类的声明。模块化设计的好处模块化设计的好处n信息隐藏信息隐藏n从不同角度了解系统从不同角度了解系统n将难以解决的问题独立出来;抽象层次将难以解决的问题独立出来

8、;抽象层次通过逐层分析来了解问题通过逐层分析来了解问题n允许不同的模块采用不同的设计方法允许不同的模块采用不同的设计方法模块化设计模块化设计n把大型软件按照规定的原则划分成一个个把大型软件按照规定的原则划分成一个个较小的、相对独立但又相互关联的模块较小的、相对独立但又相互关联的模块n重要指导思想:重要指导思想:n分解分解n模块独立性模块独立性分解(分解(Decomposition)n模块化是为了使一个复杂的大型程序能模块化是为了使一个复杂的大型程序能被人的智力所管理被人的智力所管理n设函数设函数c(x)定义问题定义问题x的复杂程度,函的复杂程度,函数数E(X)确定解决问题确定解决问题x需要的工

9、作量需要的工作量(时间)。对于两个问题(时间)。对于两个问题P1 和和P2,如,如果果显然显然模块化的依据模块化的依据n人类解决一般问题时一个有趣的规律:人类解决一般问题时一个有趣的规律: C (P1+P2)C (P1)+C (P2) E (P1+P2)E (P1)+E (P2) n结论:各个击破结论:各个击破把复杂的问题分解把复杂的问题分解成容易解决的小问题,原来的问题也就成容易解决的小问题,原来的问题也就容易解决了容易解决了问题提出问题提出n如果无限的分割软件,最后为了开发如果无限的分割软件,最后为了开发软件而需要的工作量也就小得可以忽软件而需要的工作量也就小得可以忽略了。略了。?模块数与

10、开发工作量的关系模块数与开发工作量的关系模块数模块数接口成本接口成本最小成本区最小成本区M软软件件开开发发工工作作量量总成本总成本模块成本模块成本模块划分的基本原则模块划分的基本原则n概括了把软件划分为模块时要遵守的准概括了把软件划分为模块时要遵守的准则,也是判断模块构造是不是合理的标则,也是判断模块构造是不是合理的标准。准。n但是到目前为止,没有统一的标准判断但是到目前为止,没有统一的标准判断一个系统化分成几个模块是最优的。一个系统化分成几个模块是最优的。模块划分的四项基本原则模块划分的四项基本原则1.模块独立性强模块独立性强n块内联系强块内联系强 n块间联系弱块间联系弱2.高内聚高内聚n模

11、块内部各成分之间模块内部各成分之间3.低耦合低耦合n一个模块与其它模块之间一个模块与其它模块之间4.公共(共享)公共(共享)模块模块n多个模块公用多个模块公用模块独立性模块独立性n为为什么模块的独立性很重要?什么模块的独立性很重要?n有效模块化的软件容易开发出来有效模块化的软件容易开发出来n独立的模块比较容易测试和维护独立的模块比较容易测试和维护n人的独立性强如何?人的独立性强如何?n人没有独立性,什么都依赖别人如何?人没有独立性,什么都依赖别人如何?内聚内聚、耦合的定义、耦合的定义n内内聚聚是是模模块块功功能能强强度度(一一个个模模块块内内部部各各个元素彼此结合的紧密程度)的度量。个元素彼此

12、结合的紧密程度)的度量。n耦合是对软件内部块间联系的度量。耦合是对软件内部块间联系的度量。一一个个模模块块内内部部各各个个元元素素之之间间的的联联系系越越紧紧密密,则则它它的的内内聚聚性性就就越越高高,相相对对地地,它它与与其其他他模模块块之之间间的的耦耦合合就就会会减减低低,而而模块独立性就越强。模块独立性就越强。内聚与耦合内聚与耦合n内内聚聚和和耦耦合合是是相相互互关关联联的的。在在程程序序结结构构中中各各模模块块的的内内聚聚程程度度越越高高,模模块块间间的的耦耦合合程程度度就就越越低低。但但这这也也不不是是绝绝对对的的。软软件件概概要要设设计计的的目目标标是是力力求求增增加加模模块块的的

13、内内聚聚,尽尽量量减减少少模模块块间间的的耦耦合合,但但增增加加内内聚聚比比减减少少耦耦合合更更重重要要,应应当当把把更更多多的的注注意力集中到提高模块的内聚程度上来。意力集中到提高模块的内聚程度上来。内聚内聚等级划分等级划分 弱弱 强强低内聚低内聚 中内聚中内聚 高内聚高内聚 低低 内内 聚聚.偶然性内聚偶然性内聚n模块内各部分没有联系,或者即使有联系,模块内各部分没有联系,或者即使有联系,这种联系也很松散。这种联系也很松散。 .逻辑性内聚逻辑性内聚n这种模块把几种相关的功能组合在一起,每这种模块把几种相关的功能组合在一起,每次调用时,由传送给模块的判定参数来确定次调用时,由传送给模块的判定

14、参数来确定该模块应执行哪一种功能。这种模块是单入该模块应执行哪一种功能。这种模块是单入口的多功能模块。类似的有错误处理模块。口的多功能模块。类似的有错误处理模块。它接受出错信号,对不同类型的错误打印出它接受出错信号,对不同类型的错误打印出不同的出错信息。不同的出错信息。低低 内内 聚聚.时间性内聚时间性内聚n时间内聚又称为经典内聚。这种模块大多时间内聚又称为经典内聚。这种模块大多为多功能模块,但模块的各个功能执行与为多功能模块,但模块的各个功能执行与时间有关,通常要求所有功能必须在同一时间有关,通常要求所有功能必须在同一时间段内执行。例如初始化模块和终止模时间段内执行。例如初始化模块和终止模块

15、。块。中中 内内 聚聚.过程性内聚过程性内聚n如果一个模块内的处理是相关的,而且必须如果一个模块内的处理是相关的,而且必须以特定次序执行,则称这个模块为过程内聚以特定次序执行,则称这个模块为过程内聚模块。模块。 .通讯性内聚通讯性内聚n如果一个模块内各功能部分都使用了相同的如果一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据,则称输入数据,或产生了相同的输出数据,则称之为通信内聚模块。之为通信内聚模块。高高 内内 聚聚.顺序性内聚顺序性内聚n如如果果一一个个模模块块内内的的处处理理元元素素和和同同一一个个功功能能密密切切相相关关,而而且且这这些些处处理理必必须须顺顺序序执执行

16、行(通通常常一一个个处处理理元元素素的的输输出出数数据据作作为为下下一一个个处处理理元元素素的的输输入数据)入数据).功能性内聚功能性内聚n一个模块中各个部分都是某一具体功能必不可一个模块中各个部分都是某一具体功能必不可少的组成部分,或者说该模块中所有部分都是少的组成部分,或者说该模块中所有部分都是为了完成一项具体功能而协同工作,紧密联系,为了完成一项具体功能而协同工作,紧密联系,不可分割的。则称该模块为功能内聚模块。不可分割的。则称该模块为功能内聚模块。 七种内聚的优劣评分七种内聚的优劣评分n功能内聚 10分n顺序内聚 9分n通信内聚 7分n过程内聚 5分n时间内聚 3分n逻辑内聚 1分n偶

17、然内聚 0分高内聚高内聚低内聚低内聚逻辑逻辑内聚内聚模块模块 判断判断调用模块调用模块读读一一个个记记录录写写一一个个记记录录被被调调用用模模块块常见内聚类型常见内聚类型常见内聚类型常见内聚类型耦耦 合合n对一个软件结构内不同模块之间互连程对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接口度的度量。耦合强弱取决于模块间接口的复杂程度、的复杂程度、调用模块的方式以及哪些调用模块的方式以及哪些信息通过接口。信息通过接口。n在软件设计中应该追求尽可能松散耦合在软件设计中应该追求尽可能松散耦合的系统的系统耦合的七种类型(低耦合的七种类型(低高)高)1.非非直直接接耦耦合合:如如果果两

18、两个个模模块块之之间间没没有有直直接接关关系系,它它们们之之间间的的联联系系完完全全是是通通过过主主要要模模块块的的控控制制和和调调用来实现的,这就是非直接耦合。用来实现的,这就是非直接耦合。2.数据耦合:数据耦合:如果一个模块访问另一个模块时,彼如果一个模块访问另一个模块时,彼此之间是通过数据参数(不是控制参数、公共数此之间是通过数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的,据结构或外部变量)来交换输入、输出信息的,则称这种耦合为数据耦合。则称这种耦合为数据耦合。3.标记标记(特征)(特征)耦合耦合 :如果一组模块通过参数表传如果一组模块通过参数表传递记录信息,就是

19、标记耦合。事实上,这组模块递记录信息,就是标记耦合。事实上,这组模块共享了这个记录,它是某一类数据结构的子结构,共享了这个记录,它是某一类数据结构的子结构,而不是简单变量。这要求这些模块都必须清楚该而不是简单变量。这要求这些模块都必须清楚该纪录的结构,并按结构要求对此记录进行操作。纪录的结构,并按结构要求对此记录进行操作。耦合的七种类型(续)耦合的七种类型(续)4.控制耦合控制耦合 :如果一个模块通过传递开关、标志、如果一个模块通过传递开关、标志、名字等控制信息,明显的控制选择另一模块的功能,名字等控制信息,明显的控制选择另一模块的功能,就是控制耦合。就是控制耦合。 5.外部耦合外部耦合 :一

20、组模块都访问同一全局简单变量而一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。该全局变量的信息,则称之为外部耦合。 6.公共耦合公共耦合 :若一组模块都访问同一个公共数据环若一组模块都访问同一个公共数据环境,则它们之间的耦合称为公共耦合。公共的数据境,则它们之间的耦合称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。公共覆盖区等。7.内容耦合:如果一个模块可以直接调用另一模块中内容耦合:如果一个模块可以直接调用另

21、一模块中的数据,或者允许一个模块直接转移到另一个模块的数据,或者允许一个模块直接转移到另一个模块中去,则称它们间的耦合为内容耦合。中去,则称它们间的耦合为内容耦合。弱弱 耦耦 合合数据耦合数据耦合非直接非直接耦合耦合模块模块2模块模块1模块模块4模块模块3特征耦合(参数表特征耦合(参数表传递数据结构)传递数据结构)公公 共共 耦耦 合合公公 共共 耦耦 合合公共耦合会引起下列问题:公共耦合会引起下列问题:1 1. .所所有有公公共共耦耦合合模模块块都都于于某某一一个个公公共共数数据据环环境境内内部部各各项项的的物物理理安安排排有有关关,若若修修改改某某个个数数据据的大小,将会影响到所有的模块。

22、的大小,将会影响到所有的模块。2 2. .无无法法控控制制各各个个模模块块对对公公共共数数据据的的存存取取,严严重重影响软件模块的可靠性和适应性。影响软件模块的可靠性和适应性。3 3. .公公共共数数据据名名的的使使用用,明明显显降降低低了了程程序序的的可可读读性。性。内内 容容 耦耦 合合n如果出现下列情况之一,两个模块间就如果出现下列情况之一,两个模块间就发生了内容耦合:发生了内容耦合:n一个模块访问另一个模块的内部数据一个模块访问另一个模块的内部数据n一个模块不通过正常入口而转到另一个模一个模块不通过正常入口而转到另一个模块的内部块的内部n两个模块有一部分程序代码重叠(只可能两个模块有一

23、部分程序代码重叠(只可能出现在汇编程序中)出现在汇编程序中)n一个模块有多个入口(这意味着一个模块一个模块有多个入口(这意味着一个模块有几种功能)有几种功能)(a)(a)进入另一模块内部进入另一模块内部(b b)模块代码重叠)模块代码重叠(c c)多入口模块)多入口模块ABABEnty1enty2内内 容容 耦耦 合合n内容耦合内容耦合 0分分n公共耦合公共耦合 1分分n外部耦合外部耦合 3分分n控制耦合控制耦合 5分分n特征耦合特征耦合 7分分n数据耦合数据耦合 9分分n非直接耦合非直接耦合 10分分高耦合高耦合低耦合低耦合七种耦合的优劣评分七种耦合的优劣评分关于耦合的设计原则关于耦合的设计

24、原则n尽量使用数据(特征)耦合尽量使用数据(特征)耦合n少用控制耦合少用控制耦合n限制公共环境耦合的范围限制公共环境耦合的范围n完全不用内容耦合完全不用内容耦合建立公共(共享)模块建立公共(共享)模块 建建立立公公共共模模块块的的目目的的是是减减少少冗冗余余,减减少少不不必必要要的的重重复复工工作作,划划出出某某项项功功能能成成为为一一个个能能被被几几个个模模块块共共同同利利用用的的模模块块。也也就就模模块块结结构构图图的的形形态态是是中中层层宽宽大大,上上下下小小的。的。 例:球场,田径场例:球场,田径场哪种设计方案更好呢?哪种设计方案更好呢?自顶向下和自底向上设计自顶向下和自底向上设计n自

25、顶向下自顶向下n顶层开始顶层开始n逐步分解逐步分解n由底向上由底向上 n选择关键部分先设计选择关键部分先设计n扩展到整个系统扩展到整个系统两种设计方法的比较两种设计方法的比较3.如果在可行性上出现问题,如果在可行性上出现问题,可以较早发现可以较早发现3.需要进行详细需要进行详细可行性论可行性论证证2.整体测试可能在模块接口整体测试可能在模块接口间发现不一致等问题间发现不一致等问题2.整体测试较易通过整体测试较易通过1.可能导致较大的重新设计可能导致较大的重新设计1.易于修改和扩展易于修改和扩展由底向上设计由底向上设计自顶向下设计自顶向下设计4.4.1 协同设计协同设计n谁最合适设计系统的某一方

26、面?谁最合适设计系统的某一方面? n如何使组内成员相互了解别人的设计?如何使组内成员相互了解别人的设计? n如何协调设计组件使整个系统统一如何协调设计组件使整个系统统一4.4.2 用户用户(人机人机)界面设界面设计计n让用户驾驭软件,不是软件驾驭用户让用户驾驭软件,不是软件驾驭用户 n减少用户的记忆减少用户的记忆 n保持界面的一致性保持界面的一致性 人机界面设计人机界面设计 人机界面通常也称为人机界面通常也称为用户界面用户界面。(Human ComputerInterface ,简称简称HCI)界面设计界面设计主要包括三个方面:主要包括三个方面:设计软件构件之间的接口设计软件构件之间的接口设计

27、模块和其他非人的信息生产者设计模块和其他非人的信息生产者和消费者的界面和消费者的界面设计人(如用户)和计算机间的界设计人(如用户)和计算机间的界面面 界面的设计原则界面的设计原则分析用户类型分析用户类型应用程序和界面分离应用程序和界面分离一致性一致性尽量减少用户工作尽量减少用户工作提供反馈提供反馈出错处理和帮助功能出错处理和帮助功能增加可视化图形表示增加可视化图形表示界面的设计界面的设计-黄金规则黄金规则在有关界面设计中在有关界面设计中的的三条三条黄金原则黄金原则:置于用户控制之下置于用户控制之下减少用户的记忆负担减少用户的记忆负担保持界面一致保持界面一致 黄金规则:黄金规则:置于用户控制之下

28、置于用户控制之下 Mandel定义的一组允许用户操作控制的原则定义的一组允许用户操作控制的原则:以不强迫用户进入不必要的或不希望的动作的方以不强迫用户进入不必要的或不希望的动作的方式来定义交互方式式来定义交互方式提供灵活的交互提供灵活的交互允许用户交互可以被中断和撤消允许用户交互可以被中断和撤消当技能级别增加时可以使交互流水化并允许定制当技能级别增加时可以使交互流水化并允许定制交互交互使用户隔离内部技术细节使用户隔离内部技术细节设计应允许用户和出现在屏幕上的对象直接交互设计应允许用户和出现在屏幕上的对象直接交互黄金规则:黄金规则:减少用户的记忆负担减少用户的记忆负担 Mandel定义了一组设计

29、原则,使界面能定义了一组设计原则,使界面能够减少用户记忆负担够减少用户记忆负担:减少对短期记忆的要求减少对短期记忆的要求建立有意义的缺省建立有意义的缺省定义直觉性的捷径定义直觉性的捷径界面的视觉布局应该基于真实世界的隐喻界面的视觉布局应该基于真实世界的隐喻以不断进展的方式揭示信息以不断进展的方式揭示信息缺省值黄金规则:黄金规则:保持界面一致保持界面一致 用户应以一致的方式展示和获取信息:用户应以一致的方式展示和获取信息:所有可视信息的组织均按照均按照贯穿所有屏幕所有可视信息的组织均按照均按照贯穿所有屏幕显示所保持的设计标准显示所保持的设计标准输入机制被约束到有限的集合,在整个应用中被输入机制被

30、约束到有限的集合,在整个应用中被一致地使用一致地使用从任务到任务的导航机制被一致地定义和实现从任务到任务的导航机制被一致地定义和实现Mandel定义了一组帮助保持界面一致性的设计原则:定义了一组帮助保持界面一致性的设计原则:允许用户将允许用户将当前任务当前任务放入有意义的语境放入有意义的语境在应用系列内保持一致性在应用系列内保持一致性如过去的交互模型已建立起了用户期望,除非有如过去的交互模型已建立起了用户期望,除非有迫不得已的理由,不要改变它迫不得已的理由,不要改变它界面设计界面设计- 用户友好性设计用户友好性设计 用户友好性用户友好性一般属软件的性能特一般属软件的性能特性,它独立于所有具体功

31、能,却影性,它独立于所有具体功能,却影响着所有功能的重用性。响着所有功能的重用性。 用户友好性用户友好性应体现在与用户有接应体现在与用户有接口的软件特性上。口的软件特性上。 用户友好性的根本目的是为用户友好性的根本目的是为了软件可重用性、可维护性。了软件可重用性、可维护性。用户友好性用户友好性的标志的标志可操作性可操作性健壮性健壮性易学习性易学习性可扩展性可扩展性 系统闭合等级系统闭合等级:极限闭合等级极限闭合等级: 15: 15秒秒复杂闭合等级:复杂闭合等级: 4 41515秒秒简单闭合等级:简单闭合等级: 2 24 4 秒秒最简单闭合等级最简单闭合等级: 1: 12 2 秒秒瞬时响应瞬时响

32、应: 1: 1秒秒界面设计界面设计- 反馈响应时间反馈响应时间(系统延系统延迟迟)用户界面设计用户界面设计-界面设计模型界面设计模型设计用户界面要考虑四种模型设计用户界面要考虑四种模型:软件工程师创建的软件工程师创建的设计模型设计模型 人员工程师创建的人员工程师创建的用户模型用户模型 终端用户对未来终端用户对未来系统的假想系统的假想系统实现后得到的系统实现后得到的系统映象系统映象四种模型可四种模型可能相差甚远,能相差甚远,界面设计人界面设计人员的任务就员的任务就是消除这些是消除这些差距,导出差距,导出一致的界面一致的界面表示表示用户界面设计过程用户界面设计过程用户界面设计过程包括四种不同的框架

33、用户界面设计过程包括四种不同的框架:用户、任务和环境分析及建模用户、任务和环境分析及建模界面设计界面设计界面构造界面构造界面确认界面确认用户用户分析分析偶然型偶然型生疏型生疏型熟练型熟练型专家型专家型新手新手对系统有了解的中级用户对系统有了解的中级用户对系统有了解的经常用户对系统有了解的经常用户用户类型用户类型: :影响用户行为特性的因素影响用户行为特性的因素人人- -机匹配性机匹配性人的固有技能人的固有技能人的固有弱点人的固有弱点用户的知识经验用户的知识经验用户对系统的期望和态度用户对系统的期望和态度用户对计算机系统的要求用户对计算机系统的要求让用户灵活地使用让用户灵活地使用适应不同类型用户

34、适应不同类型用户系统的行为及效果对用户透明系统的行为及效果对用户透明用户对系统的期望和态度用户对系统的期望和态度提供联机帮助功能提供联机帮助功能人机交互尽可能和人际通信相似人机交互尽可能和人际通信相似用户技能方面的使用需求用户技能方面的使用需求应让系统去适应用户应让系统去适应用户使用易于理解、掌握的准自然语言使用易于理解、掌握的准自然语言一致性的系统设计一致性的系统设计用户对系统的期望和态度用户对系统的期望和态度能通过系统学习能通过系统学习系统提供演示及范例系统提供演示及范例用户习性方面的使用需求用户习性方面的使用需求系统应让用户有耐心系统应让用户有耐心系统应很好地对付人的易犯错误系统应很好地

35、对付人的易犯错误系统应对不同用户提供不同交互系统应对不同用户提供不同交互方式方式用户经验、知识方面的使用需求用户经验、知识方面的使用需求系统应能让未经专门训练的用户使用系统应能让未经专门训练的用户使用系统能对不同经验用户做出不同反应系统能对不同经验用户做出不同反应提供同一系统的一致性,建立标准化提供同一系统的一致性,建立标准化人人- -机界面机界面系统必须适应用户在应用领域的知识系统必须适应用户在应用领域的知识变化,提供动态的自适应的设计变化,提供动态的自适应的设计用户对系统的期望方面的要求用户对系统的期望方面的要求用户界面应提供形象、生动、美观的用户界面应提供形象、生动、美观的布局显示和操作

36、环境布局显示和操作环境系统处理问题应尽可能简单,提供学系统处理问题应尽可能简单,提供学习机制习机制系统应对不同用户提供不同交互方式系统应对不同用户提供不同交互方式人人- -机界面的机界面的8 8种种交互方式交互方式1 1 菜单界面菜单界面 按显示形象分类按显示形象分类: :正文菜单正文菜单图标菜单图标菜单正文图标混合菜单正文图标混合菜单按屏幕位置和操作风格分类按屏幕位置和操作风格分类: :固定固定浮动浮动下拉式下拉式嵌入式嵌入式图标式菜单图标式菜单菜单条菜单条弹出式菜单弹出式菜单弹出式帮助文本弹出式帮助文本下拉式菜单、瀑布式菜单下拉式菜单、瀑布式菜单瀑布式菜单瀑布式菜单2 2 对话对话 对话形

37、式对话形式: :(1)(1)必须回答式必须回答式(2)(2)无需回答式无需回答式(3)(3)警告式警告式 对话实现方式对话实现方式: :(1)(1)标准对话标准对话(2)(2)定做式对话定做式对话人人- -机界面的机界面的8 8种种交互方式交互方式3. 3. 功能键功能键4. 4. 图符界面图符界面5. 5. 填表界面填表界面6. 6. 命令语言界面命令语言界面7. 7. 查询语言界面查询语言界面8. 8. 自然语言界面自然语言界面人人- -机界面的机界面的8 8种种交互方式交互方式控制界面的设计控制界面的设计(1)(1)用控制对话选择操作命令用控制对话选择操作命令(2)(2)用菜单界面进行控

38、制用菜单界面进行控制(3)(3)用功能键定义操作命令用功能键定义操作命令(4)(4)用图标表示对象或命令用图标表示对象或命令 界面设计开发界面设计开发 界面设计过程的步骤界面设计过程的步骤:建立任务的目标和意图建立任务的目标和意图为每个目标和意图制定特定的动作序列为每个目标和意图制定特定的动作序列按在界面上执行的方式对动作序列进行规约按在界面上执行的方式对动作序列进行规约指明系统状态,即执行动作时的界面表现指明系统状态,即执行动作时的界面表现 定义控制机制,即用户可用的改变系统状态的设定义控制机制,即用户可用的改变系统状态的设备和动作备和动作指明控制机制如何影响系统状态指明控制机制如何影响系统

39、状态指明用户如何通过界面上的信息解释系统状态指明用户如何通过界面上的信息解释系统状态 一、一、定义界面对象和动作定义界面对象和动作 为创建描述图符的图形设计和放置、为创建描述图符的图形设计和放置、描述性屏幕文字的定义、窗口的规约描述性屏幕文字的定义、窗口的规约和命名、菜单项的规约的屏幕布局提和命名、菜单项的规约的屏幕布局提供基础。供基础。 响应时间、命令和动作结构、错误响应时间、命令和动作结构、错误处理和帮助设施等设计问题应该在精处理和帮助设施等设计问题应该在精化设计模型时考虑。化设计模型时考虑。二、二、导航方式导航方式层次层次线性线性混合式混合式网络式网络式二、二、导航方式导航方式三、三、数

40、据输入数据输入界面界面设计设计数据输入的规则数据输入的规则n明确的输入明确的输入n明确的动作明确的动作n明确的取消明确的取消n确认删除确认删除n提供反馈提供反馈n允许编辑允许编辑n提供复原(提供复原(UndoUndo)n自由格式自由格式n提示输入的范围提示输入的范围四、四、数据显示数据显示界面界面设计设计数据显示的规则数据显示的规则只显示必要的数据只显示必要的数据在一起使用的数据显示在一起在一起使用的数据显示在一起显示出的数据应与用户执行的任务有关显示出的数据应与用户执行的任务有关每一屏数据的数量不应超过整个屏幕面积的每一屏数据的数量不应超过整个屏幕面积的30%30%屏幕布局规则屏幕布局规则尽

41、量少用代码和缩写尽量少用代码和缩写多个显示画面,应建立统一格式多个显示画面,应建立统一格式提供明了的标题、标栏及其它提示信息提供明了的标题、标栏及其它提示信息遵循用户习惯遵循用户习惯采用颜色、字符大小、下划线、不同字体等方式强采用颜色、字符大小、下划线、不同字体等方式强化重要数据化重要数据五、五、实现工具实现工具 用户界面工具箱用户界面工具箱 用户界面开发系统用户界面开发系统(UIDS): 采用预包装的软件构件来构造用户界面采用预包装的软件构件来构造用户界面 UIDS的固有机制的固有机制:n管理输入设备管理输入设备n确认用户输入确认用户输入n处理错误和显示出错信息处理错误和显示出错信息n提供反

42、馈提供反馈(如自动的输入响应如自动的输入响应)n提供帮助和提示提供帮助和提示n处理窗口、域和窗口内的滚动处理窗口、域和窗口内的滚动n建立应用软件和界面间的连接建立应用软件和界面间的连接n将应用程序与界面管理将应用程序与界面管理功能分开功能分开n允许用户定制界面允许用户定制界面 六、六、设计评估设计评估-界面设计评价周期界面设计评价周期初步设计初步设计创建原型创建原型#n界面界面修改设计修改设计用户评估用户评估界面界面设计者研究设计者研究评估结果评估结果创建原型创建原型#1界面界面HELP系统设计系统设计 HELP HELP系统设计不属于界系统设计不属于界面设面设 计范围,涉及系统整体计范围,涉

43、及系统整体结构,是结构,是 结构级用户友好性结构级用户友好性设计。设计。 帮助方式:帮助方式: 操作指南文档操作指南文档 ( (植入系统、未植入系统植入系统、未植入系统) ) 基于帮助文件的要求性帮助基于帮助文件的要求性帮助 ( (命令级帮助命令级帮助) ) 说明性帮助说明性帮助 嵌入系统的要求性帮助嵌入系统的要求性帮助 嵌入培训功能的智能帮助系统嵌入培训功能的智能帮助系统HELP系统设计系统设计设计模板和复用设计模板和复用Design with reuse, design for reuse并发系统设计并发系统设计怎样确保同时执行的组件间对共怎样确保同时执行的组件间对共享数据的一致性享数据的

44、一致性 ?并发处理(顺序执行)并发处理(顺序执行)1、组件组件1查询查询X是否为空。是否为空。2、组件组件1被告知被告知X不为空。不为空。3、组件组件2查询查询X是否为空。是否为空。4、组件组件2被告知被告知X不为空。不为空。5、组件组件1出栈,删除最后一个元素。出栈,删除最后一个元素。6、 组件组件2想出栈,但想出栈,但X已为空,系统已为空,系统进入非法状态。进入非法状态。 并发处理并发处理1、组件组件1询问栈询问栈X是否为空。是否为空。2、组件组件1被告知栈被告知栈X不为空。不为空。3、组件组件2询问栈询问栈X是否为空。是否为空。4、组件组件2被告知栈被告知栈X不为空。不为空。5、组件组件

45、1出栈,删去最后一个元素,并锁住栈出栈,删去最后一个元素,并锁住栈X。6、组件组件2想出栈,但被告知想出栈,但被告知X已上锁。已上锁。7、另一个组件加了一个元素到栈另一个组件加了一个元素到栈X中。中。8、组组件件2被被告告知知X已已开开锁锁(由由于于外外部部进进程程或或者者因因为为组组件件2 再次尝试)再次尝试)9、 组件组件2出栈。出栈。 好的设计具备的特性好的设计具备的特性n模块独立性模块独立性n异常的识别和处理异常的识别和处理n检错和容错机制检错和容错机制软件设计文档软件设计文档n软件设计说明书软件设计说明书n1)范围范围 n2)数据设计数据设计 n3)体系结构设计体系结构设计n4)接口

46、设计接口设计 n5)模块的过程设计模块的过程设计 n6)其他其他 包括测试的考虑,确保设计满足所包括测试的考虑,确保设计满足所有需求,设计约束和一些特殊注解等内容有需求,设计约束和一些特殊注解等内容。 设计复审(设计复审(design review)n及早发现设计中的缺陷及早发现设计中的缺陷n差错的传播差错的传播n复审的内容复审的内容n概要设计复审概要设计复审 n系统的总体结构,模块划分,内外接口系统的总体结构,模块划分,内外接口 n详细设计复审详细设计复审 n各个模块的具体设计各个模块的具体设计 差错传播模型差错传播模型有有/无设计复审的纠错费用比较无设计复审的纠错费用比较202 80412

47、367.0交付使用后交付使用后315 12308215.0综合综合-系统测试系统测试234 1432236216.5综合测试前综合测试前33221.5设计阶段设计阶段纠错代纠错代价价揭露错误时间揭露错误时间1.在传统软件设计中,概要设计复审与在传统软件设计中,概要设计复审与过程设计复审应该分开进行,不允许过程设计复审应该分开进行,不允许合并为一次复审。合并为一次复审。2.除软件开发人员外,概要设计复审必除软件开发人员外,概要设计复审必须有用户代表参加,必要时还可邀请须有用户代表参加,必要时还可邀请有关领域的专家到会。过程设计复审有关领域的专家到会。过程设计复审一般不邀请用户和其他领域的代表。一

48、般不邀请用户和其他领域的代表。复审的复审的5条条指导原则指导原则复审的复审的5条条指导原则指导原则3.参加复审的设计人员应欢迎别人提出批参加复审的设计人员应欢迎别人提出批评和建议,不要为设计的缺陷评和建议,不要为设计的缺陷“护短护短”。4.复审中提出的问题应详细记录,但不要复审中提出的问题应详细记录,但不要谋求当场解决。谋求当场解决。5.复审结束时,应作出本次复审能否通过复审结束时,应作出本次复审能否通过的结论。的结论。设计复审(设计复审(design review)n复审的方式复审的方式nFormal reviewnDesign review meetingnInformal reviewnWalk-through作作 业业 习习 题题 P851.2.357?

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号