




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1软件工程软件工程面向对象分析与设计面向对象分析与设计2面向对象分析面向对象分析分析分析 分析工作主要包括分析工作主要包括3项内容项内容:理解、表达和理解、表达和验证。验证。 在面向对象分析中,主要由对象模型、动在面向对象分析中,主要由对象模型、动态模型和功能模型组成。态模型和功能模型组成。面向对象分析面向对象分析 关键是识别出问题域内的类与对象,并分关键是识别出问题域内的类与对象,并分析它们相互间的关系,最终建立起问题域的简析它们相互间的关系,最终建立起问题域的简洁、精确、可理解的正确模型。其中对象模型洁、精确、可理解的正确模型。其中对象模型是最基本、最重要、最核心的。是最基本、最重要、最核
2、心的。3 不论采用哪种方法开发软件,分析的过不论采用哪种方法开发软件,分析的过程都是提取系统需求的过程。分析工作主要程都是提取系统需求的过程。分析工作主要包括包括3 3项内容,这就是理解、表达和验证。首项内容,这就是理解、表达和验证。首先,系统分析员通过与用户及领域专家的充先,系统分析员通过与用户及领域专家的充分交流,力求完全理解用户需求和该应用领分交流,力求完全理解用户需求和该应用领域中的关键性的背景知识,并用某种无二义域中的关键性的背景知识,并用某种无二义性的方式把这种理解表达成文档资料。分析性的方式把这种理解表达成文档资料。分析过程得出的最重要的文档资料是软件需求规过程得出的最重要的文档
3、资料是软件需求规格说明格说明( (在面向对象分析中,主要由对象模型、在面向对象分析中,主要由对象模型、动态模型和功能模型组成动态模型和功能模型组成) )。4 由于问题复杂,而且人与人之间的由于问题复杂,而且人与人之间的交流带有随意性和非形式化的特点,上交流带有随意性和非形式化的特点,上述理解过程通常不能一次就达到理想的述理解过程通常不能一次就达到理想的效果。因此,还必须进一步验证软件需效果。因此,还必须进一步验证软件需求规格说明的正确性、完整性和有效性,求规格说明的正确性、完整性和有效性,如果发现了问题则进行修正。显然,需如果发现了问题则进行修正。显然,需求分析过程是系统分析员与用户及领域求分
4、析过程是系统分析员与用户及领域专家反复交流和多次修正的过程。也就专家反复交流和多次修正的过程。也就是说,理解和验证的过程通常交替进行,是说,理解和验证的过程通常交替进行,反复迭代,而且往往需要利用原型系统反复迭代,而且往往需要利用原型系统作为辅助工具。作为辅助工具。5 为了更好地理解问题,人们常常采用建立为了更好地理解问题,人们常常采用建立问题模型的方法。所谓模型,就是为了理解事问题模型的方法。所谓模型,就是为了理解事物而对事物作出的一种抽象,是对事物的一种物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图示符无歧义的书面描述。通常,模型由一组图示符号和组织这些符号的
5、规则组成,利用它们来定号和组织这些符号的规则组成,利用它们来定义和描述问题域中的术语和概念。更进一步讲,义和描述问题域中的术语和概念。更进一步讲,模型是一种思考工具,利用这种工具可以把知模型是一种思考工具,利用这种工具可以把知识规范地表示出来。识规范地表示出来。 模型可以帮助我们思考问题、定义术语、模型可以帮助我们思考问题、定义术语、在选择术语时作出适当的假设,并且可以帮助在选择术语时作出适当的假设,并且可以帮助我们保持定义和假设的一致性。我们保持定义和假设的一致性。6 为了开发复杂的软件系统,系统分析员应该从不同角度抽象出目标系统的特性,使用精确的表示方法构造系统的模型,验证模型是否满足用户
6、对目标系统的需求,并在设计过程中逐渐把和实现有关的细节加进模型中,直至最终用程序实现模型。 对于那些因过分复杂而不能直接理解的系统,特别需要建立模型,建模的目的主要是为了减少复杂性。人的头脑每次只能处理一定数量的信息,模型通过把系统的重要部分分解成人的头脑一次能处理的若干个子部分,从而减少系统的复杂程度。7 对象模型表示静态的、结构化的系统的对象模型表示静态的、结构化的系统的“数据数据”性质。性质。 面向对象方法强调围绕对象而不是围绕功能来面向对象方法强调围绕对象而不是围绕功能来构造系统。构造系统。 对象模型是对模拟客观世界实体的对象以及对对象模型是对模拟客观世界实体的对象以及对象彼此间的关系
7、的映射,描述了系统的静态结构。象彼此间的关系的映射,描述了系统的静态结构。为建立动态模型和功能模型,提供了实质性的框架。为建立动态模型和功能模型,提供了实质性的框架。 对象模型用类图来描述。对象模型用类图来描述。 对象模型对象模型8 动态模型表示瞬时的、行为化的系统的动态模型表示瞬时的、行为化的系统的“控制控制”性质,它规定了对象模型中的对象的合法变化序列。性质,它规定了对象模型中的对象的合法变化序列。 状态是对对象属性值的一种抽象。状态是对对象属性值的一种抽象。 各对象之间相互触发(即作用)就形成了一系各对象之间相互触发(即作用)就形成了一系列的状态变化。列的状态变化。 一个触发行为称作一个
8、事件。一个触发行为称作一个事件。 对象对事件的响应,取决于接受该触发的对象对象对事件的响应,取决于接受该触发的对象当时所处的状态。当时所处的状态。 动态模型动态模型9 一旦建立起对象模型之后,就需要考察对象的动态行为。所有对象都具有自己的生命周期(或称为运行周期)。对一个对象来说,生命周期由许多阶段组成,在每个特定阶段中,都有适合该对象的一组运行规律和行为规则,用以规范该对象的行为。生命周期中的阶段也就是对象的状态。 状态有持续性,它占用一段时间间隔。状态与事件密不可分,一个事件分开两个状态,一个状态隔开两个事件。事件表示时刻,状态代表时间间隔。 动态模型动态模型10 用用UML提供的状态图来
9、描绘对象的状态、触发提供的状态图来描绘对象的状态、触发状态转换的事件以及对象的行为(对事件的响应)。状态转换的事件以及对象的行为(对事件的响应)。 每个类的动态行为用一张状态图来描绘,各个每个类的动态行为用一张状态图来描绘,各个类的状态图通过共享事件合并起来,从而构成系统类的状态图通过共享事件合并起来,从而构成系统的动态模型。的动态模型。 动态模型是基于事件共享而互相关联的一组状动态模型是基于事件共享而互相关联的一组状态图的集合。态图的集合。 动态模型动态模型11 功能模型表示变化的系统的功能模型表示变化的系统的“功能功能”性质,它性质,它指明了系统应该指明了系统应该“做什么做什么”,直接地反
10、映了用户对,直接地反映了用户对目标系统的需求。目标系统的需求。 建立功能模型有助于软件开发人员更深入地理建立功能模型有助于软件开发人员更深入地理解问题域,改进和完善自己的设计。解问题域,改进和完善自己的设计。 用例图进行需求分析和建立功能模型的强有力用例图进行需求分析和建立功能模型的强有力工具。工具。 在在UML中把用用例图建立起来的系统模型称为中把用用例图建立起来的系统模型称为用例模型。用例模型。 功能模型功能模型12 通常,功能模型由一组数据流图组成。通常,功能模型由一组数据流图组成。在面向对象方法学中,数据流图远不如在结在面向对象方法学中,数据流图远不如在结构分析、设计方法中那样重要。一
11、般说来,构分析、设计方法中那样重要。一般说来,与对象模型和动态模型比较起来,数据流图与对象模型和动态模型比较起来,数据流图并没有增加新的信息。并没有增加新的信息。 用例模型描述的是外部行为者用例模型描述的是外部行为者(actor)所)所理解的系统功能。用例模型的建立是系统开理解的系统功能。用例模型的建立是系统开发者和用户反复讨论的结果,它描述了开发发者和用户反复讨论的结果,它描述了开发者和用户对需求规格所达成的共识。者和用户对需求规格所达成的共识。 功能模型功能模型13 面向对象建模技术所建立的面向对象建模技术所建立的3 3种模型,种模型,分别从分别从3 3个不同侧面描述了所要开发的系统。个不
12、同侧面描述了所要开发的系统。 这这3 3种模型相互补充、相互配合,使得种模型相互补充、相互配合,使得我们对系统的认识更加全面:功能模型指明我们对系统的认识更加全面:功能模型指明了系统应该了系统应该“做什么做什么”;动态模型明确规定;动态模型明确规定了什么时候了什么时候( (即在何种状态下接受了什么事即在何种状态下接受了什么事件的触发件的触发) )做;对象模型则定义了做事情的做;对象模型则定义了做事情的实体。实体。 3种模型之间的关系种模型之间的关系14 在面向对象方法学中,对象模型是最基在面向对象方法学中,对象模型是最基本最重要的,它为其他两种模型奠定了基础,本最重要的,它为其他两种模型奠定了
13、基础,我们依靠对象模型完成我们依靠对象模型完成3 3种模型的集成。下种模型的集成。下面扼要地叙述面扼要地叙述3 3种模型之间的关系。种模型之间的关系。 3种模型之间的关系种模型之间的关系15(1 1) 针对每个类建立的动态模型,描述了类实例针对每个类建立的动态模型,描述了类实例的生命周期或运行周期。的生命周期或运行周期。(2 2) 状态转换驱使行为发生,这些行为在数据流状态转换驱使行为发生,这些行为在数据流图中被映射成处理,在用例图中被映射成用例,它图中被映射成处理,在用例图中被映射成用例,它们同时与类图中的服务相对应。们同时与类图中的服务相对应。(3 3) 功能模型中的处理(或用例)对应于对
14、象模功能模型中的处理(或用例)对应于对象模型中的类所提供的服务。型中的类所提供的服务。(4 4) 数据流图中的数据存储,以及数据的源点数据流图中的数据存储,以及数据的源点/ /终点,通常是对象模型中的对象。终点,通常是对象模型中的对象。(5 5) 数据流图中的数据流,往往是对象模型中对数据流图中的数据流,往往是对象模型中对象的属性值,也可能是整个对象。象的属性值,也可能是整个对象。 3种模型之间的关系种模型之间的关系16(6 6) 用例图中的行为者,可能是对象模型中的对用例图中的行为者,可能是对象模型中的对象。象。(7 7) 功能模型中的处理(或用例)可能产生动态功能模型中的处理(或用例)可能
15、产生动态模型中的事件。模型中的事件。(8 8) 对象模型描述了数据流图中的数据流、数据对象模型描述了数据流图中的数据流、数据存储以及数据源点存储以及数据源点/ /终点的结构。终点的结构。 3种模型之间的关系种模型之间的关系17 面向对象分析的关键工作,是分析、确面向对象分析的关键工作,是分析、确定问题域中的对象及对象间的关系,并建立定问题域中的对象及对象间的关系,并建立起问题域的对象模型。起问题域的对象模型。 大多数分析模型都不是一次完成的,为大多数分析模型都不是一次完成的,为了理解问题域的全部含义,必须反复多次地了理解问题域的全部含义,必须反复多次地进行分析。因此,分析工作不可能严格地按进行
16、分析。因此,分析工作不可能严格地按照预定顺序进行;分析工作也不是机械地把照预定顺序进行;分析工作也不是机械地把需求陈述转变为分析模型的过程。分析员必需求陈述转变为分析模型的过程。分析员必须与用户及领域专家反复交流、多次磋商,须与用户及领域专家反复交流、多次磋商,及时纠正错误认识并补充缺少的信息。及时纠正错误认识并补充缺少的信息。18 分析模型是同用户及领域专家交流时有分析模型是同用户及领域专家交流时有效的通信手段。最终的模型必须得到用户和效的通信手段。最终的模型必须得到用户和领域专家的确认。在交流和确认的过程中,领域专家的确认。在交流和确认的过程中,原型往往能起很大的促进作用。原型往往能起很大
17、的促进作用。 一个好的分析模型应该正确完整地反映一个好的分析模型应该正确完整地反映问题的本质属性,且不包含与问题无关的内问题的本质属性,且不包含与问题无关的内容。分析的目标是全面深入地理解问题域,容。分析的目标是全面深入地理解问题域,其中不应该涉及具体实现的考虑。但是,在其中不应该涉及具体实现的考虑。但是,在实际的分析过程中完全不受与实现有关的影实际的分析过程中完全不受与实现有关的影响也是不现实的。响也是不现实的。19 虽然分析的目的是用分析模型取代需求虽然分析的目的是用分析模型取代需求陈述,并把分析模型作为设计的基础,但是陈述,并把分析模型作为设计的基础,但是事实上,在分析与设计之间并不存在
18、绝对的事实上,在分析与设计之间并不存在绝对的界线。界线。20面向对象设计面向对象设计 分析是提取和整理用户需求,并建立问题域分析是提取和整理用户需求,并建立问题域精确模型的过程。精确模型的过程。 设计则是把分析阶段得到的需求转变成符合设计则是把分析阶段得到的需求转变成符合成本和质量要求的、抽象的系统实现方案的过程。成本和质量要求的、抽象的系统实现方案的过程。 面向对象设计就是用面向对象观点建立求解面向对象设计就是用面向对象观点建立求解域模型的过程。域模型的过程。21 尽管分析和设计的定义有明显区别,尽管分析和设计的定义有明显区别,但是在实际的软件开发过程中二者的界但是在实际的软件开发过程中二者
19、的界限是模糊的。许多分析结果可以直接映限是模糊的。许多分析结果可以直接映射成设计结果,而在设计过程中又往往射成设计结果,而在设计过程中又往往会加深和补充对系统需求的理解,从而会加深和补充对系统需求的理解,从而进一步完善分析结果。因此,分析和设进一步完善分析结果。因此,分析和设计活动是一个多次反复迭代的过程。计活动是一个多次反复迭代的过程。22 面向对象方法学在概念和表示方法面向对象方法学在概念和表示方法上的一致性,保证了在各项开发活动之上的一致性,保证了在各项开发活动之间的平滑间的平滑( (无缝无缝) )过渡,领域专家和开发过渡,领域专家和开发人员能够比较容易地跟踪整个系统开发人员能够比较容易
20、地跟踪整个系统开发过程,这是面向对象方法与传统方法比过程,这是面向对象方法与传统方法比较起来所具有的一大优势。较起来所具有的一大优势。23 生命周期方法学把设计进一步划分生命周期方法学把设计进一步划分成总体设计和详细设计两个阶段,类似成总体设计和详细设计两个阶段,类似地,也可以把面向对象设计再细分为系地,也可以把面向对象设计再细分为系统设计和对象设计。系统设计确定实现统设计和对象设计。系统设计确定实现系统的策略和目标系统的高层结构。对系统的策略和目标系统的高层结构。对象设计确定解空间中的类、关联、接口象设计确定解空间中的类、关联、接口形式及实现服务的算法。系统设计与对形式及实现服务的算法。系统
21、设计与对象设计之间的界限,比分析与设计之间象设计之间的界限,比分析与设计之间的界限更模糊,本书不再对它们加以区的界限更模糊,本书不再对它们加以区分。分。24系统分解系统分解 软件工程师在设计比较复杂的应用软件工程师在设计比较复杂的应用系统时普遍采用的策略是,系统时普遍采用的策略是,“分而治之,分而治之,各个击破各个击破”。 系统的主要组成部分称为子系统。系统的主要组成部分称为子系统。通常根据所提供的功能来划分子系统。通常根据所提供的功能来划分子系统。25系统分解系统分解 人类解决复杂问题时普遍采用的策略人类解决复杂问题时普遍采用的策略是,是,“分而治之,各个击破分而治之,各个击破”。同样,软。
22、同样,软件工程师在设计比较复杂的应用系统时普件工程师在设计比较复杂的应用系统时普遍采用的策略,也是首先把系统分解成若遍采用的策略,也是首先把系统分解成若干个比较小的部分,然后再分别设计每个干个比较小的部分,然后再分别设计每个部分。这样做有利于降低设计的难度,有部分。这样做有利于降低设计的难度,有利于分工协作,也有利于维护人员对系统利于分工协作,也有利于维护人员对系统理解和维护。理解和维护。 系统的主要组成部分称为子系统。通系统的主要组成部分称为子系统。通常根据所提供的功能来划分子系统。一般常根据所提供的功能来划分子系统。一般说来,子系统的数目应该与系统规模基本说来,子系统的数目应该与系统规模基
23、本匹配。匹配。26 各个子系统之间应该具有尽可能简各个子系统之间应该具有尽可能简单、明确的接口。接口确定了交互形式单、明确的接口。接口确定了交互形式和通过子系统边界的信息流,但是无须和通过子系统边界的信息流,但是无须规定子系统内部的实现算法。因此,可规定子系统内部的实现算法。因此,可以相对独立地设计各个子系统。以相对独立地设计各个子系统。 在划分和设计子系统时,应该尽量在划分和设计子系统时,应该尽量减少子系统彼此间的依赖性。减少子系统彼此间的依赖性。27 大多数系统的面向对象设计模型,大多数系统的面向对象设计模型,在逻辑上都由在逻辑上都由4大部分组成。大部分组成。系统分解系统分解28 这这4
24、4大部分对应于组成目标系统的大部分对应于组成目标系统的4 4个个子系统,它们分别是问题域子系统、人机交子系统,它们分别是问题域子系统、人机交互子系统、任务管理子系统和数据管理子系互子系统、任务管理子系统和数据管理子系统。统。 当然,在不同的软件系统中,这四个当然,在不同的软件系统中,这四个子系统的重要程度和规模可能相差很大,规子系统的重要程度和规模可能相差很大,规模过大的在设计过程中应该进一步划分成更模过大的在设计过程中应该进一步划分成更小的子系统,规模过小的可合并在其他子系小的子系统,规模过小的可合并在其他子系统中。某些领域的应用系统在逻辑上可能仅统中。某些领域的应用系统在逻辑上可能仅由由3
25、 3个个( (甚至少于甚至少于3 3个个) )子系统组成。子系统组成。29 使用面向对象方法开发软件时,在使用面向对象方法开发软件时,在分析与设计之间并没有明确的分界线,对分析与设计之间并没有明确的分界线,对于问题域子系统来说,情况更是如此。但于问题域子系统来说,情况更是如此。但是,分析与设计毕竟是性质不同的两类开是,分析与设计毕竟是性质不同的两类开发工作,分析工作可以而且应该与具体实发工作,分析工作可以而且应该与具体实现无关,设计工作则在很大程度上受具体现无关,设计工作则在很大程度上受具体实现环境的约束。在开始进行设计工作之实现环境的约束。在开始进行设计工作之前前( (至少在完成设计之前至少
26、在完成设计之前) ),设计者应该了,设计者应该了解本项目预计要使用的编程语言,可用的解本项目预计要使用的编程语言,可用的软构件库软构件库( (主要是类库主要是类库) )以及程序员的编程以及程序员的编程经验。经验。30设计问题域子系统设计问题域子系统 面向对象分析所得出的问题域精确模型,面向对象分析所得出的问题域精确模型,为设计问题域子系统奠定了良好的基础,建立为设计问题域子系统奠定了良好的基础,建立了完整的框架。了完整的框架。 面向对象设计仅需从实现角度对问题域模面向对象设计仅需从实现角度对问题域模型做一些补充或修改。型做一些补充或修改。31 通过面向对象分析所得出的问题域通过面向对象分析所得
27、出的问题域精确模型,为设计问题域子系统奠定了精确模型,为设计问题域子系统奠定了良好的基础,建立了完整的框架。只要良好的基础,建立了完整的框架。只要可能,就应该保持面向对象分析所建立可能,就应该保持面向对象分析所建立的问题域结构。通常,面向对象设计仅的问题域结构。通常,面向对象设计仅需从实现角度对问题域模型做一些补充需从实现角度对问题域模型做一些补充或修改,主要是增添、合并或分解类与或修改,主要是增添、合并或分解类与对象、属性及服务,调整继承关系等等。对象、属性及服务,调整继承关系等等。当问题域子系统过分复杂庞大时,应该当问题域子系统过分复杂庞大时,应该把它进一步分解成若干个更小的子系统。把它进
28、一步分解成若干个更小的子系统。32 在面向对象设计过程中,可能对面向对象分析在面向对象设计过程中,可能对面向对象分析所得出的问题域模型做的补充或修改有:所得出的问题域模型做的补充或修改有:1. 调整需求调整需求2. 重用已有的类重用已有的类3. 把问题域类组合在一起把问题域类组合在一起4. 增添一般化类以建立协议增添一般化类以建立协议5. 调整继承层次调整继承层次331. 1. 调整需求调整需求 有两种情况会导致修改通过面向对象有两种情况会导致修改通过面向对象分析所确定的系统需求:一是用户需求分析所确定的系统需求:一是用户需求或外部环境发生了变化;二是分析员对或外部环境发生了变化;二是分析员对
29、问题域理解不透彻或缺乏领域专家帮助,问题域理解不透彻或缺乏领域专家帮助,以致面向对象分析模型不能完整、准确以致面向对象分析模型不能完整、准确地反映用户的真实需求。地反映用户的真实需求。 无论出现上述哪种情况,通常都只需无论出现上述哪种情况,通常都只需简单地修改面向对象分析结果,然后再简单地修改面向对象分析结果,然后再把这些修改反映到问题域子系统中。把这些修改反映到问题域子系统中。342. 2. 重用已有的类重用已有的类 代码重用从设计阶段开始,在研究代码重用从设计阶段开始,在研究面向对象分析结果时就应该寻找使用已面向对象分析结果时就应该寻找使用已有类的方法。若因为没有合适的类可以有类的方法。若
30、因为没有合适的类可以重用而确实需要创建新的类,则在设计重用而确实需要创建新的类,则在设计这些新类的协议时,必须考虑到将来的这些新类的协议时,必须考虑到将来的可重用性。可重用性。353. 3. 把问题域类组合在一起把问题域类组合在一起 在面向对象设计过程中,设计者往往在面向对象设计过程中,设计者往往通过引入一个根类而把问题域类组合在通过引入一个根类而把问题域类组合在一起。事实上,这是在没有更先进的组一起。事实上,这是在没有更先进的组合机制可用时才采用的一种组合方法。合机制可用时才采用的一种组合方法。此外,这样的根类还可以用来建立协议。此外,这样的根类还可以用来建立协议。364. 4. 增添一般化
31、类以建立协议增添一般化类以建立协议 在设计过程中常常发现,一些具体在设计过程中常常发现,一些具体类需要有一个公共的协议,也就是说,类需要有一个公共的协议,也就是说,它们都需要定义一组类似的服务。在这它们都需要定义一组类似的服务。在这种情况下可以引入一个附加类种情况下可以引入一个附加类( (例如,根例如,根类类) ),以便建立这个协议,以便建立这个协议( (即命名公共服即命名公共服务集合,这些服务在具体类中仔细定义务集合,这些服务在具体类中仔细定义) )。375. 5. 调整继承层次调整继承层次 如果面向对象分析模型中包含了多重如果面向对象分析模型中包含了多重继承关系,然而所使用的程序设计语言却
32、继承关系,然而所使用的程序设计语言却并不提供多重继承机制,则必须修改面向并不提供多重继承机制,则必须修改面向对象分析的结果。即使使用支持多重继承对象分析的结果。即使使用支持多重继承的语言,有时也会出于实现考虑而对面向的语言,有时也会出于实现考虑而对面向对象分析结果作一些调整。对象分析结果作一些调整。38 从面向对象设计的角度补充设计人机交互从面向对象设计的角度补充设计人机交互子系统的策略:子系统的策略: 1. 分类用户分类用户 2. 描述用户描述用户 3. 设计命令层次设计命令层次 4. 设计人机交互类设计人机交互类设计人机交互子系统设计人机交互子系统39设计人机交互子系统设计人机交互子系统
33、在面向对象分析过程中,已经对用在面向对象分析过程中,已经对用户界面需求做了初步分析,在面向对象户界面需求做了初步分析,在面向对象设计过程中,则应该对系统的人机交互设计过程中,则应该对系统的人机交互子系统进行详细设计,以确定人机交互子系统进行详细设计,以确定人机交互的细节,其中包括指定窗口和报表的形的细节,其中包括指定窗口和报表的形式、设计命令层次等项内容。式、设计命令层次等项内容。40 人机交互部分的设计结果,将对用户情绪人机交互部分的设计结果,将对用户情绪和工作效率产生重要影响。人机界面设计得好,和工作效率产生重要影响。人机界面设计得好,则会使系统对用户产生吸引力,用户在使用系则会使系统对用
34、户产生吸引力,用户在使用系统的过程中会感到兴奋,能够激发用户的创造统的过程中会感到兴奋,能够激发用户的创造力,提高工作效率;相反,人机界面设计得不力,提高工作效率;相反,人机界面设计得不好,用户在使用过程中就会感到不方便、不习好,用户在使用过程中就会感到不方便、不习惯,甚至会产生厌烦和恼怒的情绪。惯,甚至会产生厌烦和恼怒的情绪。 由于对人机界面的评价,在很大程度上由由于对人机界面的评价,在很大程度上由人的主观因素决定,因此,使用由原型支持的人的主观因素决定,因此,使用由原型支持的系统化的设计策略,是成功地设计人机交互子系统化的设计策略,是成功地设计人机交互子系统的关键。系统的关键。设计人机交互
35、子系统设计人机交互子系统411. 1. 分类用户分类用户 人机交互界面是给用户使用的,显人机交互界面是给用户使用的,显然,为设计好人机交互子系统,设计者然,为设计好人机交互子系统,设计者应该认真研究使用它的用户。应该深入应该认真研究使用它的用户。应该深入到用户的工作现场,仔细观察用户是怎到用户的工作现场,仔细观察用户是怎样做他们的工作的,这对设计好人机交样做他们的工作的,这对设计好人机交互界面是非常必要的。互界面是非常必要的。42 为了更好地了解用户的需要与爱好,为了更好地了解用户的需要与爱好,以便设计出符合用户需要的界面,设计以便设计出符合用户需要的界面,设计者首先应该把将来可能与系统交互的
36、用者首先应该把将来可能与系统交互的用户分类。通常从下列几个不同角度进行户分类。通常从下列几个不同角度进行分类:分类: 按技能水平分类按技能水平分类( (新手、初级、中级、新手、初级、中级、高级高级) )。 按职务分类按职务分类( (总经理、经理、职员总经理、经理、职员) )。 按所属集团分类按所属集团分类( (职员、顾客职员、顾客) )。432. 2. 描述用户描述用户应该仔细了解将来使用系统的每类用户的情况,应该仔细了解将来使用系统的每类用户的情况,把获得的下列各项信息记录下来:把获得的下列各项信息记录下来:用户类型。用户类型。使用系统欲达到的目的。使用系统欲达到的目的。特征特征( (年龄、
37、性别、受教育程度、限制因素等年龄、性别、受教育程度、限制因素等) )。关键的成功因素关键的成功因素( (需求、爱好、习惯等需求、爱好、习惯等) )。技能水平。技能水平。完成本职工作的脚本。完成本职工作的脚本。443. 3. 设计命令层次设计命令层次设计命令层次的工作通常包含以下几项内容。设计命令层次的工作通常包含以下几项内容。(1) (1) 研究现有的人机交互含义和准则研究现有的人机交互含义和准则 现在,现在,WindowsWindows已经成了微机上图形用户已经成了微机上图形用户界面事实上的工业标准。所有界面事实上的工业标准。所有WindowsWindows应用程应用程序的基本外观及给用户的
38、感受都是相同的。序的基本外观及给用户的感受都是相同的。WindowsWindows程序通常还遵守广大用户习以为常的程序通常还遵守广大用户习以为常的许多约定。许多约定。 设计图形用户界面时,应该保持与普通设计图形用户界面时,应该保持与普通WindowsWindows应用程序界面相一致,并遵守广大用应用程序界面相一致,并遵守广大用户习惯的约定,这样才会被用户接受和喜爱。户习惯的约定,这样才会被用户接受和喜爱。45(2) (2) 确定初始的命令层次确定初始的命令层次 所谓命令层次,实质上是用过程抽所谓命令层次,实质上是用过程抽象机制组织起来的、可供选用的服务的象机制组织起来的、可供选用的服务的表示形
39、式。设计命令层次时,通常先从表示形式。设计命令层次时,通常先从对服务的过程抽象着手,然后再进一步对服务的过程抽象着手,然后再进一步修改它们,以适合具体应用环境的需要。修改它们,以适合具体应用环境的需要。(3) (3) 精化命令层次精化命令层次 为进一步修改完善初始的命令层次,为进一步修改完善初始的命令层次,应该考虑下列一些因素:应该考虑下列一些因素:46 次序:仔细选择每个服务的名字,并在命令层的次序:仔细选择每个服务的名字,并在命令层的每一部分内把服务排好次序。排序时或者把最常用的每一部分内把服务排好次序。排序时或者把最常用的服务放在最前面,或者按照用户习惯的工作步骤排序。服务放在最前面,或
40、者按照用户习惯的工作步骤排序。 整体整体- -部分关系:寻找在这些服务中存在的整体部分关系:寻找在这些服务中存在的整体- -部分模式,这样做有助于在命令层中分组组织服务。部分模式,这样做有助于在命令层中分组组织服务。 宽度和深度:由于人的短期记忆能力有限,命令宽度和深度:由于人的短期记忆能力有限,命令层次的宽度和深度都不应该过大。层次的宽度和深度都不应该过大。 操作步骤:应该用尽量少的单击、拖动和击键组操作步骤:应该用尽量少的单击、拖动和击键组合来表达命令,而且应该为高级用户提供简捷的操作合来表达命令,而且应该为高级用户提供简捷的操作方法。方法。474. 4. 设计人机交互类设计人机交互类 人
41、机交互类与所使用的操作系统及编人机交互类与所使用的操作系统及编程语言密切相关。例如,在程语言密切相关。例如,在WindowsWindows环境环境下运行的下运行的Visual C+Visual C+语言提供了语言提供了MFCMFC类库,类库,设计人机交互类时,往往仅需从设计人机交互类时,往往仅需从MFCMFC类库类库中选出一些适用的类,然后从这些类派中选出一些适用的类,然后从这些类派生出符合自己需要的类就可以了。生出符合自己需要的类就可以了。48设计任务管理子系统设计任务管理子系统 确定系统中哪些是必须同时动作的对象,确定系统中哪些是必须同时动作的对象,哪些是相互排斥的对象。然后进一步设计任务哪些是相互排斥的对象。然后进一步设计任务管理子系统。是设计工作的一项重要内容。管理子系统。是设计工作的一项重要内容。 1. 分析并发性分析并发性 2. 设计任务管理子系统设计任务管理子系统49设计任务管理子系统设计任务管理子系统 虽然从概念上说,不同对象可以并虽然从概念上说,不同对象可以并发地工作,但是,在实际系统中,许多发地工作,但是,在实际系统中,许多对象之间往往存在相互依赖关系。此外,对象之间往往存在相互依赖关系。此外,在实际使用的硬件中,可能仅由一个处在实际使用的硬件中,可能仅由一个处理器支持多个对象。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年养殖市场分析:生猪价格与饲料成本博弈下的行业微利时代来临
- 2025年卫浴柜行业竞争分析:卫浴柜行业竞争格局更加激烈
- 贵州省铜仁市2024-2025学年高三上学期1月期末考试英语试题【含答案】
- 2024-2025学年北京市朝阳区高二(上)期末历史试卷
- 2025年公共营养师操作试题及答案
- 2025年医院常见面试题及答案
- 居家老人测试题及答案
- 水土保护毯施工方案
- 5年级上册所有文言文
- 4年级下册英语书科普版
- 施工现场交叉作业安全防护管理措施
- 特殊学生档案
- 2024年02月浙江2024年萧山农商银行春季校园招考笔试历年参考题库附带答案详解
- 2024年东营市东营区人民医院高层次卫技人才招聘笔试历年参考题库频考点附带答案
- 装配式混凝土建筑基本结构体系- 杨15课件讲解
- 直肠癌新辅助治疗
- 10.1溶液的酸碱性教学设计-2024-2025学年九年级化学人教版下册
- 《3-6岁儿童学习与发展指南》考试复习题库(含答案)
- 《个体防护装备安全管理规范AQ 6111-2023》知识培训
- 电力法律法规培训
- 习近平总书记关于教育的重要论述研究(云南师范大学)知到智慧树章节答案
评论
0/150
提交评论