第七章面向对象设计_第1页
第七章面向对象设计_第2页
第七章面向对象设计_第3页
第七章面向对象设计_第4页
第七章面向对象设计_第5页
已阅读5页,还剩95页未读 继续免费阅读

下载本文档

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

文档简介

1、软软件工程件工程中中国国石油大石油大学胜学胜利利学学院院OOD方法及示例方法及示例七、面向对象设计七、面向对象设计Logo第第7 7章章 面向对象设计面向对象设计n软件设计概述软件设计概述n面向对象设计建模面向对象设计建模n系统架构设计系统架构设计n系统元素设计系统元素设计n面向对象设计示例面向对象设计示例中中国国石油大石油大学胜学胜利利学学院院Logo7.1 7.1 软件设计概述软件设计概述n“怎么做怎么做”的问题,最富活力和创造力的阶段的问题,最富活力和创造力的阶段n两种主流设计方法两种主流设计方法n结构化程序设计SDn面向对象程序设计OOD中中国国石油大石油大学胜学胜利利学学院院Logo

2、典型的软件生存周期典型的软件生存周期典型的软件生存周期需求分析软件分析软件设计编码(测试)软件测试运行维护计划开发运行(可行性研究和)计划详细设计(模块设计)系统分析总体设计(概要设计)中中国国石油大石油大学胜学胜利利学学院院Logo回忆:结构化设计回忆:结构化设计从从SASA模型导出模型导出SDSD模型模型PSPEC数据对象描述CFDDFDE-RDDCSPEC过程设计 接口设计体系结构设计数据设计中中国国石油大石油大学胜学胜利利学学院院Logon什么是模块?什么是模块?模块是一个有明确定义的输入、输出和特性的模块是一个有明确定义的输入、输出和特性的程序实体程序实体。C语言中的语言中的函数函数

3、、Java中的中的类类都是模块都是模块n什么是模块化?什么是模块化?把大型软件把大型软件划分为划分为一个个一个个较小的较小的、相对独立但又互相关联相对独立但又互相关联的的模块。模块。分解分解和和模块的独立性模块的独立性,是重点,是重点n什么是模块的什么是模块的独立性独立性?软件系统中每个模块软件系统中每个模块只涉及软件要求的具体的子功能只涉及软件要求的具体的子功能, 而和而和软件系统中其它的模块的软件系统中其它的模块的接口是简单的接口是简单的。n如何度量模块的独立性?如何度量模块的独立性?模块的模块的内聚内聚和和耦合耦合掌握掌握内聚和耦合的应用原则内聚和耦合的应用原则7.1 7.1 软件设计概

4、述软件设计概述中中国国石油大石油大学胜学胜利利学学院院Logo什么是模块什么是模块(Module)“模块模块”,又称,又称“组件组件”。它一般具有如下三个基本属性。它一般具有如下三个基本属性:n功能功能:描述该模块实现什么功能:描述该模块实现什么功能n逻辑逻辑:描述模块内部怎么做:描述模块内部怎么做n状态状态:该模块使用时的环境和条件:该模块使用时的环境和条件7.1 7.1 软件设计概述软件设计概述中中国国石油大石油大学胜学胜利利学学院院Logo怎样描述一个模块(结构化为例)怎样描述一个模块(结构化为例)n在在描述一个模块时,还必须按模块的描述一个模块时,还必须按模块的外部特性外部特性与与内部

5、特内部特性性分别描述分别描述n模块的模块的外部特性外部特性n 模块的模块的模块名模块名、参数表参数表、其中的输入参数和输出参数、其中的输入参数和输出参数,以及给程序以至整个系统造成的影响,以及给程序以至整个系统造成的影响n模块的模块的内部特性内部特性n 完成其功能的完成其功能的程序代码程序代码和仅供该模块内部使用的和仅供该模块内部使用的数据数据7.1 7.1 软件设计概述软件设计概述中中国国石油大石油大学胜学胜利利学学院院Logo什么是模块独立性?怎样度量?什么是模块独立性?怎样度量?n 模块独立性模块独立性,是是指软件系统中每个模块只涉及软件要求指软件系统中每个模块只涉及软件要求的的具体的子

6、功能具体的子功能, 而和软件系统中其它的模块的而和软件系统中其它的模块的接口是接口是简单简单的的。n 例如例如, 若一个模块只具有单一的功能且与其它模块没有若一个模块只具有单一的功能且与其它模块没有太多的联系太多的联系, 则称此模块具有则称此模块具有模块独立性模块独立性n 一般采用两个准则度量模块独立性。即模块间一般采用两个准则度量模块独立性。即模块间耦合耦合和模和模块块内聚内聚7.1 7.1 软件设计概述软件设计概述中中国国石油大石油大学胜学胜利利学学院院Logon衡量标准衡量标准n模块模块本身本身的内聚的内聚o模块内部内部各个成分之间的联系o又称块内联系或模块强度n模块模块间间的耦合的耦合

7、o一个模块与其他模块之间之间的联系o又称块间联系n模块独立性越高,块内联系越强,块间联系越弱模块独立性越高,块内联系越强,块间联系越弱。n模块模块独立性比较强的模块应是独立性比较强的模块应是高内聚低耦合高内聚低耦合的模块。的模块。7.1 7.1 软件设计概述软件设计概述中中国国石油大石油大学胜学胜利利学学院院Logo c n.偶然性内聚偶然性内聚 功能无关功能无关n.逻辑性内聚逻辑性内聚 逻辑功能相似逻辑功能相似n.时间性内聚时间性内聚 同一时间执行同一时间执行n.过程性内聚过程性内聚 一组任务特定次序执行一组任务特定次序执行n.通讯性内聚通讯性内聚 同一输入或同一输出同一输入或同一输出n.顺

8、序性内聚顺序性内聚 顺序执行顺序执行n.功能性内聚功能性内聚 单一功能单一功能模块独立性模块独立性- -内聚内聚中中国国石油大石油大学胜学胜利利学学院院Logo低内聚低内聚n偶然性偶然性内聚内聚n块内各组成部分在功能上是互不相关的。块内各组成部分在功能上是互不相关的。n模块内部成分的组合模块内部成分的组合纯属偶然纯属偶然。n时间性内聚时间性内聚n模块所包含的成分,是由模块所包含的成分,是由相同的执行时间相同的执行时间将他们将他们连接到一起。连接到一起。n要求在同一时间内执行。要求在同一时间内执行。模块独立性模块独立性- -内聚内聚中中国国石油大石油大学胜学胜利利学学院院Logon逻辑性内聚逻辑

9、性内聚n由若干个逻辑功能相似的成分组成。n执行时须从模块外引入判断量,增大块间耦合。读入分数读入分数平均平均/最高最高?计算平均分计算平均分计算最高分计算最高分输出结果输出结果模块独立性模块独立性- -内聚内聚中中国国石油大石油大学胜学胜利利学学院院Logo中内聚中内聚n过程过程性内性内聚聚模块模块中包含的一组任务必须按照某一个中包含的一组任务必须按照某一个特定的次序特定的次序执行。执行。建立方程组系数矩阵建立方程组系数矩阵高斯消去法高斯消去法回回 代代模块独立性模块独立性- -内聚内聚中中国国石油大石油大学胜学胜利利学学院院Logon通信性内聚通信性内聚n模块内部的各成分使用模块内部的各成分

10、使用同一种数据输入同一种数据输入,或产生,或产生同一同一个数据输出个数据输出。n他们靠他们靠公用数据公用数据连接在一起。连接在一起。开领书单登记售书发票领书单售书登记表删除修改文 件模块独立性模块独立性- -内聚内聚中中国国石油大石油大学胜学胜利利学学院院Logo高内聚高内聚n顺序顺序性内聚性内聚/信息内聚信息内聚n各个功能都在各个功能都在同一数据结构同一数据结构上操作,每项功能有唯一的上操作,每项功能有唯一的入口点。如对符号表有入口点。如对符号表有查找、登录、删除、修改查找、登录、删除、修改等操作等操作,把查找、登录、删除、修改等功能设计在一个模块中,把查找、登录、删除、修改等功能设计在一个

11、模块中,以实现信息的隐蔽。,以实现信息的隐蔽。n功能性内聚功能性内聚n模块中的所有的成分结合在一起,用于完成一个单一的模块中的所有的成分结合在一起,用于完成一个单一的功能。功能。n块内联系块内联系最强的最强的一类模块。一类模块。模块独立性模块独立性- -内聚内聚中中国国石油大石油大学胜学胜利利学学院院Logo使用内聚的使用内聚的原则原则n功能性内聚最强功能性内聚最强,与其他模块联系少,最优,与其他模块联系少,最优n其他的其他的高内聚和中内聚模块高内聚和中内聚模块也可以使用也可以使用n低内聚模块尽量避免低内聚模块尽量避免使用使用模块独立性模块独立性- -内聚内聚中中国国石油大石油大学胜学胜利利学

12、学院院Logo模块独立性模块独立性- -耦合耦合1.非直接耦合无信息传递非直接耦合无信息传递2.数据耦合简单变量数据耦合简单变量3.特征耦合数据结构特征耦合数据结构4.控制耦合控制耦合 开关值或标志量开关值或标志量5.外部耦合外部耦合 访问相同全局变量访问相同全局变量6.公共耦合公共耦合 访问相同数据结构访问相同数据结构7.内容耦合内容耦合 调用其它模块数据或转调用其它模块数据或转到到 其它其它模块模块中中国国石油大石油大学胜学胜利利学学院院Logo非直接耦合非直接耦合(Nondirect Coupling) 两个模块之间没有直接关系,它们两个模块之间没有直接关系,它们之间之间的联系完全是通过

13、主模块的联系完全是通过主模块的控制的控制和和调用调用来实现的来实现的。非。非直接耦合直接耦合的的模块模块独立性独立性最强最强。数据耦合数据耦合 (Data Coupling)一个模块访问另一个模块时,彼此之间是通过一个模块访问另一个模块时,彼此之间是通过简单数据参数简单数据参数 (不不是控制参数、公共数据结构或外部变量是控制参数、公共数据结构或外部变量) 来交换输入、输出信来交换输入、输出信息的。息的。特征特征耦合耦合 (Stamp Coupling)一组模块通过一组模块通过参数表传递记录信息参数表传递记录信息,就是特征(标记)耦合。,就是特征(标记)耦合。这个记录是某一数据结构的子结构,而不

14、是简单变量。这个记录是某一数据结构的子结构,而不是简单变量。模块模块独立性独立性- -耦合耦合中中国国石油大石油大学胜学胜利利学学院院Logo模块模块独立性独立性- -耦合耦合中中国国石油大石油大学胜学胜利利学学院院数据耦合数据耦合非非直接耦合直接耦合模块模块2模块模块1模块模块4模块模块3特征耦合特征耦合(参数参数表传递数据结表传递数据结构构)模块之间没模块之间没有信息传递有信息传递调用时通过调用时通过参数表交换参数表交换简单变量简单变量调用时通过调用时通过参数表交换参数表交换数据结构数据结构Logo控制耦合控制耦合 (Control Coupling) 如果一个如果一个模块模块通过通过传送

15、传送开关开关、标志、标志、名字名字等控制信息,等控制信息,明显地控制明显地控制选择选择另一模块另一模块的功能的功能,就是,就是控制控制耦合。耦合。读入分数读入分数平均平均/最高?最高?计算平均分计算平均分计算最高分计算最高分输出结果输出结果控制控制信号信号模块模块独立性独立性- -耦合耦合中中国国石油大石油大学胜学胜利利学学院院Logo外部耦合(外部耦合(External Coupling)一组模块都一组模块都访问同一全局简单变量访问同一全局简单变量而不是同一全局数据结而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之构,而且不是通过参数表传递该全局变量的信息,则称之为外部

16、耦合。为外部耦合。公共耦合(公共耦合(Common Coupling)若一组模块都访问若一组模块都访问同一个公共数据环境同一个公共数据环境,则它们之间的耦,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。、共享的通信区、内存的公共覆盖区等。模块模块独立性独立性- -耦合耦合中中国国石油大石油大学胜学胜利利学学院院Logo中中国国石油大石油大学胜学胜利利学学院院公共耦合图示公共耦合图示模块模块独立性独立性- -耦合耦合Logo内容耦合内容耦合 (Content Coupling(Content

17、Coupling) )如果如果发生下列情形,两个模块之间就发生了内容耦合发生下列情形,两个模块之间就发生了内容耦合 ( (1) 1) 一个模块直接访问另一个模块的一个模块直接访问另一个模块的内部数据内部数据; ; ( (2) 2) 一个模块不通过正常入口一个模块不通过正常入口转到另一模块内部转到另一模块内部; ; ( (3) 3) 两个模块两个模块有一部分程序代码重迭有一部分程序代码重迭( (只可能出现在汇编只可能出现在汇编语言中语言中);); ( (4) 4) 一个模块有多个入口一个模块有多个入口。模块模块独立性独立性- -耦合耦合中中国国石油大石油大学胜学胜利利学学院院Logo使用耦合的原

18、则使用耦合的原则 对对“耦合耦合”的应用原则:的应用原则:不在于禁止耦合,而不在于禁止耦合,而是充分了解各种耦合的特点与不足,并在需要时是充分了解各种耦合的特点与不足,并在需要时使用它们并能预见到可能产生的问题使用它们并能预见到可能产生的问题。 耦合是影响软件复杂程度的一个重要因素。应耦合是影响软件复杂程度的一个重要因素。应该采取下述设计原则:该采取下述设计原则: 尽量使用数据耦合,少用控制耦合,限制公共尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容耦合环境耦合的范围,完全不用内容耦合。中中国国石油大石油大学胜学胜利利学学院院模块模块独立性独立性- -耦合耦合Logo7.

19、2 7.2 面向对象设计建模面向对象设计建模n面向对象设计面向对象设计模型组成?(总结)模型组成?(总结)n系统架构层:总体结构系统架构层:总体结构n类和对象层:类层次关系类和对象层:类层次关系及对象设计及对象设计表示表示n消息层:消息模型,内外部接口消息层:消息模型,内外部接口n责任层责任层 :属性:属性/数据结构数据结构/算法算法回忆结构化设计回忆结构化设计的内容的内容n面向对象设计的任务面向对象设计的任务n系统架构设计系统架构设计n系统元素设计:子系统系统元素设计:子系统/包包/类和类和对象对象回忆结构化设计的任务:回忆结构化设计的任务: 概要设计、详细设计概要设计、详细设计中中国国石油

20、大石油大学胜学胜利利学学院院LogoOOAOOA模型转换到模型转换到OODOOD模型模型属性、操作、协作者对象-行为模型对象-关系模型类/对象模型用例模型系统架构设计类及对象设计消息设计责任设计中中国国石油大石油大学胜学胜利利学学院院面向对象设计模型组成?(总结)面向对象设计模型组成?(总结)Logo7.3 7.3 系统架构设计系统架构设计n系统高层结构设计系统高层结构设计n确定设计元素确定设计元素n任务管理策略任务管理策略n分布式实现机制分布式实现机制n数据存储设计数据存储设计n人机交互人机交互设计设计系统架构设计包括哪些内容?系统架构设计包括哪些内容?中中国国石油大石油大学胜学胜利利学学院

21、院Logo.1系统系统高层结构设计高层结构设计 系统高层结构设计,为后续设计提供一个公共的基础框架,系统高层结构设计,为后续设计提供一个公共的基础框架,用以承载逐步演进和累加的设计内容。用以承载逐步演进和累加的设计内容。n应用应用架构模式架构模式 n层次架构(Layers)n模型-视图-控制架构(Model-View-Control)n管道与过滤器架构(Pipes and Filters)n黑板架构(Blackboard)n层次架构层次架构: n应用子系统应用子系统:面向用户,应用程序特有的服务n业务专用层业务专用层:业务专用构件n中间件层中间件层:各种复用构件,GUI图形界面

22、构建器,与数据库管理系统的接口,OLE构件n系统软件层系统软件层:操作系统、数据库、与硬件的接口 越向下越接近于底层中中国国石油大石油大学胜学胜利利学学院院Logo.1系统系统高层结构设计高层结构设计 n层次层次架构架构: 层层 次次功功 能能特殊特殊一般一般应用子系统层应用子系统层组成所开发应用的独特应用子系统业务专用层业务专用层该应用所属业务类型专用的一些可复用子系统中间件层中间件层提供实用程序的子系统,和为异构环境中分布式对象计算提供独立于平台的服务等,GUI/OLE/ADO系统软件层系统软件层构成实际基础设施的软件,如操作系统、特定硬件的接口、设备驱动程序等中中国国石油

23、大石油大学胜学胜利利学学院院Logo7.3.2 7.3.2 确定确定设计元素设计元素 由分析模型,分析现有分析类,确定设计模型元素由分析模型,分析现有分析类,确定设计模型元素n映射映射分析类到设计元素分析类到设计元素 n一个分析类可以映射为一个设计类或多个设计类的组合,也可以将其映射为子系统接口 n三种分析类直接映射为设计类n分析类复杂,映射为子系统的接口,子系统的功能代替某个分析类的功能中中国国石油大石油大学胜学胜利利学学院院Logo7.3.2 7.3.2 确定确定设计元素设计元素 由分析模型,分析现有分析类,确定设计模型元素由分析模型,分析现有分析类,确定设计模型元素n确定确定子系统子系统

24、 n划分成几个子系统需根据实际情况来确定n子系统实际上是一种特殊的包,具有统一的接口n确定子系统的一些指导性参考原则 n定义子系统接口定义子系统接口 n为子系统确定一个备选接口集 n寻找接口之间的相似点 n定义接口依赖关系 n将接口映射到子系统 n定义接口所指定的行为中中国国石油大石油大学胜学胜利利学学院院Logo7.3.3 7.3.3 任务管理任务管理策略策略 实现对实现对多用户、多任务的并行处理多用户、多任务的并行处理支持支持n三种解决方案三种解决方案n多处理器多处理器方案-将并发子系统分配到不同的处理器n操作系统操作系统方案-将并发子系统分配到相同的处理器并由操作系统提供同步控制n应用程

25、序应用程序方案-应用软件负责在适当的时间从一个代码分支切换到另一个代码分支n引进任务管理部件引进任务管理部件 微型的任务管理器,考虑的是任务怎么被激活的。 有些任务是由事件激活的,有些是由时间驱动的 举例:计数器中中国国石油大石油大学胜学胜利利学学院院Logo7.3.3 7.3.3 任务管理任务管理策略策略 实现对实现对多用户、多任务的并行处理多用户、多任务的并行处理支持支持n基于基于进程和线程的控制进程和线程的控制 n进程和线程建模n确定进程的生命周期n在进程间分布模型元素通过创建进程和线程,为多任务提供可独占使用的内存空间以及其他资源。为每一个线程分配需要执行的动作流程。中中国国石油大石油

26、大学胜学胜利利学学院院Logo7.3.4 7.3.4 分布式分布式实现机制实现机制应用程序的不同部件被安装在多个通过网络连接的计算机上应用程序的不同部件被安装在多个通过网络连接的计算机上,系统运行时不同计算机相互协作,提供应用服务。,系统运行时不同计算机相互协作,提供应用服务。n确定确定网络拓扑配置网络拓扑配置n将设计元素分配到网络节点将设计元素分配到网络节点n节点容量(指内存量和处理能力) n通信介质带宽(总线、LAN、WAN) n硬件与通信链路的可用性、重选路由 n对冗余与容错能力的要求n响应时间要求n吞吐量要求 n设计分布处理机制设计分布处理机制 n采用RMI实现分布处理机制o引入可直接

27、利用的类库 o建立一些有role标识的类,代表实际设计元素 o描述分布机制的静态结构 中中国国石油大石油大学胜学胜利利学学院院Logo7.3.5 7.3.5 数据数据存储设计存储设计 实现数据的持久性存储实现数据的持久性存储n基于基于JDBC的数据存储机制的数据存储机制n引入JDBC相关类库 (java.sql包中的类 )n构造一些具有role标识的类,代表设计元素 n描述持久存储机制的静态结构 n描述机制的典型应用场景 利用利用JDBC,如何实现数据的持久性存储?,如何实现数据的持久性存储?中中国国石油大石油大学胜学胜利利学学院院Logo7.3.6 7.3.6 人机交互人机交互设计设计 用例

28、模型给出用户和系统交互情况,系统设计阶段用例模型给出用户和系统交互情况,系统设计阶段给出人机交互所有系统成分,给出人机交互所有系统成分,包括:包括:n用户如何用户如何操作操作系统系统n系统如何系统如何响应响应命令命令n系统系统显示显示信息与报表的信息与报表的格式格式具体步骤:具体步骤:n分类分类分析用户特点,设计不同界面分析用户特点,设计不同界面 n增加用户界面专用的类与对象增加用户界面专用的类与对象 n利用快速原型演示,改进界面设计利用快速原型演示,改进界面设计 中中国国石油大石油大学胜学胜利利学学院院Logo7.3.6 7.3.6 人机交互人机交互设计设计通过案例体会通过案例体会 n界面一

29、致性界面一致性n同一系统内界面用语保持一致,每种概念和用语只有一种表达中中国国石油大石油大学胜学胜利利学学院院文本 含义和行为 是否出现在按钮上 是否出现在菜单上 热键 快捷键OK 接受输入的数据或显示的响应信息,关掉窗口 Yes No None or Cancel 不接受输入的信息,关掉窗口 Yes No None Esc Close 结束当前的任务,让程序继续进行;关掉数据窗口 Yes Yes Alt+C None Exit 推出程序 No Yes Alt+X Alt+F4 Help 调出程序的帮助信息 Yes Yes Alt+H Fl Logo7.3.6 7.3.6 人机交互人机交互设计

30、设计通过案例体会通过案例体会 n界面一致性界面一致性n同一系统内界面风格保持一致。每种控件的只有一种样式:窗口、 按钮、菜单、对话框等;同一系统内字体、颜色、布局、位置、尺寸、间距等尽可能保持一种格式。中中国国石油大石油大学胜学胜利利学学院院Logo7.3.6 7.3.6 人机交互人机交互设计设计通过案例体会通过案例体会 n界面一致性界面一致性n界面风格(例:菜单组织、快捷键设计等)与常用软件、用户使用习惯保持一致中中国国石油大石油大学胜学胜利利学学院院Logo7.3.6 7.3.6 人机交互人机交互设计设计通过案例体会通过案例体会 n界面一致性界面一致性n导航一般会在页面的左侧和上方,界面风

31、格与常用软导航一般会在页面的左侧和上方,界面风格与常用软件、用户使用习惯保持一致件、用户使用习惯保持一致中中国国石油大石油大学胜学胜利利学学院院Logo7.3.6 7.3.6 人机交互人机交互设计设计通过案例体会通过案例体会 n快捷方式快捷方式n提供快捷方式,更快的操作入口,以减少查找时间。提供快捷方式,更快的操作入口,以减少查找时间。中中国国石油大石油大学胜学胜利利学学院院Logo7.3.6 7.3.6 人机交互人机交互设计设计通过案例体会通过案例体会 n快捷方式快捷方式n最近频繁使用列表,更快的操作入口,以减少查找时间最近频繁使用列表,更快的操作入口,以减少查找时间中中国国石油大石油大学胜

32、学胜利利学学院院Logo7.3.6 7.3.6 人机交互人机交互设计设计通过案例体会通过案例体会 n快捷方式快捷方式n操作过程和步骤优化,去除不必要的按钮,以减少交互操作过程和步骤优化,去除不必要的按钮,以减少交互次数次数中中国国石油大石油大学胜学胜利利学学院院Logo7.3.6 7.3.6 人机交互人机交互设计设计通过案例体会通过案例体会 n快捷方式快捷方式n提供默认值(例:当天日期、用户常用选项等),以减提供默认值(例:当天日期、用户常用选项等),以减少不必要的用户输入少不必要的用户输入中中国国石油大石油大学胜学胜利利学学院院Logo7.3.6 7.3.6 人机交互人机交互设计设计通过案例

33、体会通过案例体会 n错误处理错误处理n错误预防、操作限制:不适当的菜单选项灰色显示、限错误预防、操作限制:不适当的菜单选项灰色显示、限制错误输入(例:数字域限制字母输入)、可能引起损制错误输入(例:数字域限制字母输入)、可能引起损害的操作前的用户确认害的操作前的用户确认中中国国石油大石油大学胜学胜利利学学院院Logo7.3.6 7.3.6 人机交互人机交互设计设计通过案例体会通过案例体会 n错误处理错误处理n错误检测:检测到错误、明确提示用户错误原因及可能错误检测:检测到错误、明确提示用户错误原因及可能的操作指导,让用户知道怎么做的操作指导,让用户知道怎么做中中国国石油大石油大学胜学胜利利学学

34、院院Logo7.3.6 7.3.6 人机交互人机交互设计设计通过案例体会通过案例体会 n错误处理错误处理n发现因手误删除邮件,可以在已删除中找回。发现因手误删除邮件,可以在已删除中找回。中中国国石油大石油大学胜学胜利利学学院院Logo7.3.6 7.3.6 人机交互人机交互设计设计通过案例体会通过案例体会 n信息反馈信息反馈n根据用户输入提供相关的信息反馈,以减少方便用户输根据用户输入提供相关的信息反馈,以减少方便用户输入或减少记忆负荷入或减少记忆负荷中中国国石油大石油大学胜学胜利利学学院院Logo7.3.6 7.3.6 人机交互人机交互设计设计通过案例体会通过案例体会 n信息反馈信息反馈n记

35、住用户的输入和选择记住用户的输入和选择中中国国石油大石油大学胜学胜利利学学院院Logo7.3.6 7.3.6 人机交互人机交互设计设计通过案例体会通过案例体会 n信息反馈信息反馈n根据用户输入来猜测用户意图根据用户输入来猜测用户意图中中国国石油大石油大学胜学胜利利学学院院Logo7.3.6 7.3.6 人机交互人机交互设计设计通过案例体会通过案例体会 n信息反馈信息反馈n界面上提供的反馈和确认信息不要打扰用户的操作流程界面上提供的反馈和确认信息不要打扰用户的操作流程。例:新浪微博“发布成功”提示信息几秒后自动消失中中国国石油大石油大学胜学胜利利学学院院Logo7.3.6 7.3.6 人机交互人

36、机交互设计设计通过案例体会通过案例体会 n有表现力的界面有表现力的界面n经典美感。界面外观清晰、整洁、给人予以愉悦感经典美感。界面外观清晰、整洁、给人予以愉悦感n表达美感。界面外观表达独创、新颖,有吸引力。表达美感。界面外观表达独创、新颖,有吸引力。n表达情感。界面通过表情等界面元素来表达情感状态表达情感。界面通过表情等界面元素来表达情感状态n情感共鸣。界面激起用户深层次的内在情感共鸣。情感共鸣。界面激起用户深层次的内在情感共鸣。中中国国石油大石油大学胜学胜利利学学院院Logo54补充了解:软件架构师补充了解:软件架构师角色:软件角色:软件架构师架构师Software Architect定义:

37、定义:主导主导系统全局系统全局分析设计和实施、负责软件构分析设计和实施、负责软件构架和关键技术决策的架和关键技术决策的角色。角色。Logo55职责职责n领导与协调领导与协调整个项目中的技术活动(分析、设计和实整个项目中的技术活动(分析、设计和实施等)施等)n推动主要的推动主要的技术决策技术决策,并最终表达为软件构架,并最终表达为软件构架n确定和文档化系统的相对构架而言确定和文档化系统的相对构架而言意义重大意义重大的方面,的方面,包括系统的需求、设计、实施和部署等包括系统的需求、设计、实施和部署等“视图视图”n确定确定设计元素设计元素的分组以及这些主要分组之间的的分组以及这些主要分组之间的接口接

38、口n为技术决策提供为技术决策提供规则规则,平衡各类涉众的不同关注点,平衡各类涉众的不同关注点,化解技术风险,并保证相关决定被有效的传达和贯彻化解技术风险,并保证相关决定被有效的传达和贯彻n理解、评价并接收系统理解、评价并接收系统需求需求n评价和确认软件架构的评价和确认软件架构的实现实现补充了解:软件架构师补充了解:软件架构师Logo56专业技能专业技能n技术全面、成熟练达、洞察力强、经验丰富,具备在缺乏技术全面、成熟练达、洞察力强、经验丰富,具备在缺乏完整信息、众多问题交织一团、模糊和矛盾的情况下,迅完整信息、众多问题交织一团、模糊和矛盾的情况下,迅速抓住问题要害,并做出合理的关键决定的能力。

39、速抓住问题要害,并做出合理的关键决定的能力。n具备战略性和前瞻性思维能力,善于把握全局,能够在更具备战略性和前瞻性思维能力,善于把握全局,能够在更高抽象级别上进行思考。高抽象级别上进行思考。n对项目开发涉及的所有问题领域都有经验,包括彻底地理对项目开发涉及的所有问题领域都有经验,包括彻底地理解项目需求,开展分析设计之类软件工程活动等。解项目需求,开展分析设计之类软件工程活动等。n具备领导素质,以在各小组之间推进技术工作,并在项目具备领导素质,以在各小组之间推进技术工作,并在项目压力下做出牢靠的关键决策。压力下做出牢靠的关键决策。n拥有优秀的沟通能力,用以进行说服、鼓励和指导等活动拥有优秀的沟通

40、能力,用以进行说服、鼓励和指导等活动,并赢得项目成员的信任。,并赢得项目成员的信任。补充了解:软件架构师补充了解:软件架构师Logo57n以目标导向和主动的方式来不带任何感情色彩地关注项目以目标导向和主动的方式来不带任何感情色彩地关注项目结果,构架师应当是项目背后的技术推动力,而非构想者结果,构架师应当是项目背后的技术推动力,而非构想者或梦想家(追求完美)或梦想家(追求完美)n精通构架设计的理论、实践和工具,并掌握多种参考构架精通构架设计的理论、实践和工具,并掌握多种参考构架、主要的可重用构架机制和模式。、主要的可重用构架机制和模式。n具备系统设计员的所有技能,但涉及面更广、抽象级别更具备系统

41、设计员的所有技能,但涉及面更广、抽象级别更高。高。补充了解:软件架构师补充了解:软件架构师Logo58软件架构师的知识体系软件架构师的知识体系n软件架构师作为整个软件系统结构的总设计师,其软件架构师作为整个软件系统结构的总设计师,其知识体知识体系、技能和经验决定了软件系统的可靠性、安全性、可维系、技能和经验决定了软件系统的可靠性、安全性、可维护性、可扩展性和可移植性等方面的性能。护性、可扩展性和可移植性等方面的性能。因此一个优秀因此一个优秀的软件架构师必须具备相当的软件架构师必须具备相当丰富的知识、技能和经验丰富的知识、技能和经验。n对比对比软件架构师和系统分析师在软件开发中的职责和软件架构师

42、和系统分析师在软件开发中的职责和角色角色系统分析系统分析师的主要职责是在师的主要职责是在需求分析、开发管理、运行维需求分析、开发管理、运行维护护等等方面;而方面;而软件架构师的重点工作是在软件架构师的重点工作是在架构与设计架构与设计这两这两个关键环节上个关键环节上。n因此因此在系统分析师必须具备的知识体系中对系统的构架与在系统分析师必须具备的知识体系中对系统的构架与设计等方面知识体系的要求就相对低些;而软件架构师在设计等方面知识体系的要求就相对低些;而软件架构师在需求分析、项目管理、运行维护等方面知识的要求也就相需求分析、项目管理、运行维护等方面知识的要求也就相对低些。对低些。Logo59n成

43、为一名合格的软件架构师必须具备的知识成为一名合格的软件架构师必须具备的知识n信息系统综合知识体系n软件架构知识体系软件架构师的知识体系软件架构师的知识体系Logo60?nMFC,MSF,MOF,RUP,J2EE,Spring,SOA,JUnit,ORM,.NetnMVC,UML,XML,Corba,MDA,MDD,Web-ServicenRSS,Web2.0,AJAX,Serverlet,HibernatenIOC, AOPnRuby On RailsnRupnBPELnWorkflow EnginenLBSnOraclenCMMInMQnLogo软件架构师在干什么?软件架构师在干什么?n思考

44、、思考、再思考思考、思考、再思考n深入理解、准确把握建设的业务需求n分析所有可见的问题、障碍、风险n充分参考已有的成功方案,降低风险n交流、讨论、博弈、质疑交流、讨论、博弈、质疑n对构思中的方案不断提出质疑,避免漏洞n广泛听取各层面的意见,开拓思路n反复质疑、逐步完善已有的设计构思n在动手实现之前验证设计方案的正确性在动手实现之前验证设计方案的正确性Logo62软件架构师的知识结构软件架构师的知识结构n软件知识软件知识n最好要有系统开发全过程经验。最好要有系统开发全过程经验。n对对 IT 建设生命周期各个环节有深入了解,包括:系统建设生命周期各个环节有深入了解,包括:系统/模块逻辑设计、物理设

45、计、代码开发、项目管理、测试模块逻辑设计、物理设计、代码开发、项目管理、测试、发布、运行维护等。、发布、运行维护等。n深入掌握深入掌握1-2种主流技术平台上开发系统的方法。种主流技术平台上开发系统的方法。n了解多种应用系统的结构。了解多种应用系统的结构。n了解架构设计领域的主要理论、流派、框架。了解架构设计领域的主要理论、流派、框架。Logo63软件架构师的知识结构软件架构师的知识结构n业务知识业务知识n深入了解系统建设的业务需求。n了解系统的非功能需求和运行维护需求。n了解企业 IT 公共设施、网络环境、外部系统。Logo64软件架构师的思维方式软件架构师的思维方式n基于框架的思维基于框架的

46、思维n架构设计的层次(Enterprise, Application, etc)nIT 的生命周期(What, Why, Where, How, When, etc)n成功经验以及方法论的指导n合理把握技术细节合理把握技术细节n把握各个层次应有的内容n合理忽略不应有的技术细节Logo65软件架构师的思维方式软件架构师的思维方式n风险管理意识风险管理意识n采用成功经验、避免不应有的风险n多方位的开放思维多方位的开放思维n多维度、多方向、包容性、避免排他性n分析、质疑、抽象、归纳n没有绝对好的架构设计,只有相对优秀的方案Logo66软件架构师的任职条件软件架构师的任职条件根据软件架构师的职责和角色

47、定位,以及知识体系,从实践根据软件架构师的职责和角色定位,以及知识体系,从实践的角度考虑,合格的软件架构师应该具有以下能力和经验:的角度考虑,合格的软件架构师应该具有以下能力和经验:(1)具有具有8年以上的软件项目开发实际工作经验,其中至少有年以上的软件项目开发实际工作经验,其中至少有3年以上的代码编写工作经验,年以上的代码编写工作经验,4年以上的基于面向对象和构年以上的基于面向对象和构件开发方法的软件产品设计经验。件开发方法的软件产品设计经验。 (2)具有具有5个以上大中型开发项目的总体规划、方案设计经验个以上大中型开发项目的总体规划、方案设计经验,有大中型应用系统开发和实施的成功案例。,有

48、大中型应用系统开发和实施的成功案例。(3)对相关的技术标准有深刻的认识,对软件工程标准和规范对相关的技术标准有深刻的认识,对软件工程标准和规范有良好的把握。有良好的把握。 (4)对对.Net或或Java技术及整个解决方案有深刻的理解及熟练技术及整个解决方案有深刻的理解及熟练的应用,精通的应用,精通Web Service,熟练掌握流行的架构。,熟练掌握流行的架构。 Logo67(5)对设计模式有深刻的理解,并能在此基础上设计出适合产品对设计模式有深刻的理解,并能在此基础上设计出适合产品特性和质量属性的框架。特性和质量属性的框架。(6)具有面向对象的分析、设计和开发能力,精通具有面向对象的分析、设

49、计和开发能力,精通UML和和XML,能熟练使用能熟练使用Rational Rose、PowerDesigner等工具进行设计等工具进行设计。 (7)具有良好的团队意识和协作精神,有较强的沟通能力和书面具有良好的团队意识和协作精神,有较强的沟通能力和书面表达能力。表达能力。(8)具有旺盛的精力和学习能力,能快速掌握新技术和新方法。具有旺盛的精力和学习能力,能快速掌握新技术和新方法。 软件架构师的任职条件软件架构师的任职条件Logo7.4 7.4 系统元素设计系统元素设计 n子系统设计子系统设计 n将子系统行为分配给子系统元素将子系统行为分配给子系统元素 n描述子系统元素描述子系统元素 n说明子系

50、统的依赖关系说明子系统的依赖关系 n分包设计分包设计 n分包的原则分包的原则 n描述包之间的依赖关系描述包之间的依赖关系 n包之间的耦合关系包之间的耦合关系 n类类/对象设计对象设计中中国国石油大石油大学胜学胜利利学学院院Logo7.4 7.4 系统元素设计系统元素设计 n子系统子系统设计设计子系统内部的元素和之间的交互子系统内部的元素和之间的交互 n将子系统行为分配给子系统将子系统行为分配给子系统元素元素通过子系统的外部行为(实现的接口)得到实现子系统通过子系统的外部行为(实现的接口)得到实现子系统的操作所执行的行为的操作所执行的行为 用用时序时序图图表示表示例例7.4“选课系统选课系统”课

51、程目录子系统课程目录子系统中中国国石油大石油大学胜学胜利利学学院院Logo选课系统选课系统- -课程课程目录子系统时序图目录子系统时序图 中中国国石油大石油大学胜学胜利利学学院院Logo7.4 7.4 系统元素设计系统元素设计 n子系统设计子系统设计 n将子系统行为分配给子系统元素将子系统行为分配给子系统元素 n描述子系统描述子系统元素元素创建一个或多个创建一个或多个类图类图表示子系统包含的元素以及他们之表示子系统包含的元素以及他们之间的关系间的关系 中中国国石油大石油大学胜学胜利利学学院院Logo课程目录子系统内部类图课程目录子系统内部类图 中中国国石油大石油大学胜学胜利利学学院院Logo7

52、.4 7.4 系统元素设计系统元素设计 n子系统设计子系统设计 n将子系统行为分配给子系统元素将子系统行为分配给子系统元素 n描述子系统元素描述子系统元素 n说明子系统的依赖说明子系统的依赖关系关系当当子系统包含的某个元素使用了另一个子系统中的某个子系统包含的某个元素使用了另一个子系统中的某个元素行为时,就在两个子系统间创建了元素行为时,就在两个子系统间创建了依赖关系依赖关系。 中中国国石油大石油大学胜学胜利利学学院院Logo子系统间依赖关系子系统间依赖关系 中中国国石油大石油大学胜学胜利利学学院院Logo7.4 7.4 系统元素设计系统元素设计 n子系统设计子系统设计 n将子系统行为分配给子

53、系统元素将子系统行为分配给子系统元素 n描述子系统元素描述子系统元素 n说明子系统的依赖关系说明子系统的依赖关系 n分包设计分包设计 n分包设计是在层次结构的基础上,划分更细的组分包设计是在层次结构的基础上,划分更细的组织单元,把设计元素分别放入特定的包中。体现织单元,把设计元素分别放入特定的包中。体现高内聚低耦合。高内聚低耦合。n分包的原则分包的原则 n描述包之间的依赖关系描述包之间的依赖关系 n包之间的耦合关系包之间的耦合关系 中中国国石油大石油大学胜学胜利利学学院院Logo7.4 7.4 系统元素设计系统元素设计 n子系统设计子系统设计 n将子系统行为分配给子系统元素将子系统行为分配给子

54、系统元素 n描述子系统元素描述子系统元素 n说明子系统的依赖关系说明子系统的依赖关系 n分包设计分包设计 n分包的分包的原则原则将边界将边界类打包类打包将将功能相关的类打包功能相关的类打包 【例7.5】应用子系统层,Registration包 业务专用层,University Artifacts包中中国国石油大石油大学胜学胜利利学学院院Logo包的依赖关系包的依赖关系 中中国国石油大石油大学胜学胜利利学学院院LogoUniversity ArtifactsUniversity Artifacts包内元素的类图包内元素的类图 中中国国石油大石油大学胜学胜利利学学院院Logo7.4 7.4 系统元

55、素设计系统元素设计 n子系统设计子系统设计 n将子系统行为分配给子系统元素将子系统行为分配给子系统元素 n描述子系统元素描述子系统元素 n说明子系统的依赖关系说明子系统的依赖关系 n分包设计分包设计 n分包的原则分包的原则 n描述包之间的依赖关系描述包之间的依赖关系 n包之间的耦合关系包之间的耦合关系 n类类/对象设计对象设计 设计工作的核心,具体最接近实现设计工作的核心,具体最接近实现中中国国石油大石油大学胜学胜利利学学院院Logo类类/ /对象设计对象设计n设计设计初始设计类初始设计类n设计边界类、实体类、控制类n定义操作定义操作n研究每个类的职责,为职责确定操作(参数、可见性、作用域)n

56、增加一些典型的操作n定义方法定义方法n方法是对操作的实现(白盒)n定义状态定义状态n可以创建状态图n定义定义属性(属性名、类型、初始值、可见性)属性(属性名、类型、初始值、可见性)n定义依赖关系定义依赖关系n定义关联关系定义关联关系n定义泛化关系定义泛化关系n处理非功能需求处理非功能需求中中国国石油大石油大学胜学胜利利学学院院Logo类类/ /对象设计对象设计n设计初始类设计初始类n设计边界类、实体类、控制类中中国国石油大石油大学胜学胜利利学学院院Logo类的重新设计类的重新设计 中中国国石油大石油大学胜学胜利利学学院院Logo类类/ /对象设计对象设计n设计初始类设计初始类n设计边界类、实体类、控制类n定义操作定义操作n研究每个类的职责,为职责确定操作n增加一些典型的操作n定义方法定义方法n方法是对操作的实现n定义状态定义状态n可以创建状态图中中国国石油大石油大学胜学胜利利学学院院Logo定义操作的类图定义操作的类图 中中国国石油大石油大学胜学胜利利学学

温馨提示

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

评论

0/150

提交评论