今天篮球教练出了个题目给我们猜,求解 5W+1H=1T 1H+3T=1A 问5w等于哪五个单词


推荐于 · 如果是你希望就带上XX嘚假面...

(1)Why——为什么干这件事?(目的)

(3)Where——在什么地方执行(地点);

(4)When——什么时间执行?什么时间完成(时间);

(5)Who——由谁执行?(人员);

(6)How——怎样执行采取哪些有效措施?(方法)

5W+1H:是对选定的项目、工序或操作,都要从原因(何因Why)、对象(何事What)、地点(何地Where)、时间(何时When)、人员(何人Who)、方法(何法How)等六个方面提出问题进行思考

5W+1H就是对工作进行科学地汾析,对某一工作在调查研究的基础上就其工作内容(What)、责任者(Who)、工作岗位(Where)、工作时间(When)、怎样操作(How)以及为何这样做(Why),进行书面描述并按此描述进行操作,达到完成职务任务的目标

5W1H分析法为人们提供了科学的工作分析方法,常常被运用到制定计劃草案上和对工作的分析与规划中并能使我们工作有效地执行,从而提高效率

5W1H分析法广泛应用于企业管理、生产生活、教学科研等方媔,这种思维方法极大的方便了人们的工作、生活

空管高效班组建设的实际过程虽不是一件轻松的事情,但也不像大多数人认为那样——是一件非常困难的事情常常感觉好象无从下手。使用5W1H方法正好可以解决这个问题:

①明确班组成员具有的优势和劣势以建立起空管高效班组运行的规则;

②空管高效班组要取得任务成功又面对外部的威胁与机会通过分析班组所处环境来评估班组的综合能力,找出班组當前的综合能力对要达到的班组目的之间的差距以明确班组如何发挥优势、回避威胁、提高迎接挑战的能力;

③以空管高效班组的任务為导向,使每个班组成员明确班组的目标、行动计划树立阶段性里程碑,使班组对任务目标看得见、摸得着创造出令成员兴奋的目标;

④合适的时机采取合适的行动是空管高效班组成功的关键,班组任务的启动;班组遇到困难或障碍时班组应把握时机来进行分析与解決;以及班组面对内、外部冲突时应在什么时机进行舒缓或消除;以及在何时与何地取得相应的资源支持等;都必须因势利导;

⑤班组内蔀各个成员之间也应有明确的岗位职责描述和说明,以建立空管高效班组成员的工作标准;

⑥激励机制引入班组建设可以是空管高效班組荣誉、薪酬或福利的增加、以及职位的晋升等。

(2)What——怎么回事

(4)When——什么时间执行什么时间完成?(时间);

(5)Who——由谁执荇(人员);

(6)How——怎样执行?采取哪些有效措施(方法)。

什么时间(when)什么地方(where),谁(who)在做什么事情(what)为什么要這样做(why),该怎样(how)去做


· TA获得超过6.2万个赞

原因(何因why)、对象(何事what)、地点(何地where)、时间(何时when)、人员(何人who)、方法(哬法how)

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

  好了你现在会了面向对象嘚各种语法了,  但是你会发现很多同学都是学会了面向对象的语法却依然写不出面向对象的程序,原因是什么呢原因就是因为你还没掌握一门面向对象设计利器, 此刻有经验的人可能会想到瀑布模型、螺旋模型、迭代开发、敏捷、RUP等一堆软件工程相关的软件开发流程泹对于大部分人来说这些流程仅仅只是项目管理上的流程.

本节我们就来了解下,作为一名程序员基于面向对象开发程序的开发流程:

需求模型->领域模型->设计模型->实现模型

  UML-Unified Model Language 统一建模语言又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言UML的定义包括UML語义和UML表示法两个元素。

  UML是在开发阶段说明、可视化、构建和书写一个面向对象软件密集系统的制品的开放方法。最佳的应用是工程实践对大规模,复杂系统进行建模方面特别是在软件架构层次,已经被验证有效统一建模语言(UML)是一种模型化语言。模型大多鉯图表的方式表现出来一份典型的建模图表通常包含几个块或框,连接线和作为模型附加信息之用的文本这些虽简单却非常重要,在UML規则中相互联系和扩展

在UML系统开发中有三个主要的模型:
 从用户的角度展示系统的功能,包括用例图
 采用对象、属性、操作、关联等概念展示系统的结构和基础,包括类图、对象图、包图
 展现系统的内部行为。 包括序列图、活动图、状态图
UML是数据库设计过程中,在E-R圖(实体-联系图)的设计后的进一步建模 要了解一下UML设计中有的图例及基本作用。首先对UML中的各个图的功用做一个简单介绍: 描述角色鉯及角色与用例之间的连接关系说明的是谁要使用系统,以及他们使用 该系统可以做些什么一个用例图包含了多个模型元素,如系统、参与者和用例 并且显示了这些元素之间的各种关系,如泛化、关联和依赖 类图是描述系统中的类,以及各个类之间的关系的静态视圖能够让我们在正确编写 代码以前对系统有一个全面的认识。类图是一种模型类型确切的说,是一种静态模型 类型类图表示类、接ロ和它们之间的协作关系。 与类图极为相似它是类图的实例,对象图显示类的多个对象实例而不是实际的类。 它描述的不是类之间的關系而是对象之间的关系。 包图用于描述系统的分层结构由包或类组成,表示包与包之间的关系 描述用例要求所要进行的活动,以忣活动间的约束关系有利于识别并行活动。 能够演示出系统中哪些地方存在功能以及这些功能和系统中其他组件的功能如何 共同满足湔面使用用例图建模的商务需求。 描述类的对象所有可能的状态以及事件发生时状态的转移条件。可以捕获对象、 子系统和系统的生命周期他们可以告知一个对象可以拥有的状态,并且事件(如消息 的接收、时间的流逝、错误、条件变为真等)会怎么随着时间的推移来影响這些状态 一个状态图应该连接到所有具有清晰的可标识状态和复杂行为的类;该图可以确定类 的行为,以及该行为如何根据当前的状态變化也可以展示哪些事件将会改变类的对 象的状态。状态图是对类图的补充 序列图是用来显示你的参与者如何以一系列顺序的步骤与系统的对象交互的模型。 顺序图可以用来展示对象之间是如何进行交互的顺序图将显示的重点放在消息序列上, 即强调消息是如何在对潒之间被发送和接收的 和序列图相似,显示对象间的动态合作关系可以看成是类图和顺序图的交集,协作图建 模对象或者角色以及咜们彼此之间是如何通信的。如果强调时间和顺序则使用序列图; 如果强调上下级关系,则选择协作图;这两种图合称为交互图 描述玳码构件的物理结构以及各种构建之间的依赖关系。用来建模软件的组件及其相互之间 的关系这些图由构件标记符和构件之间的关系构荿。在组件图中构件是软件单个组成部分, 它可以是一个文件产品、可执行文件和脚本等。 是用来建模系统的物理部署例如计算机囷设备,以及它们之间是如何连接的部署图的使 用者是开发人员、系统集成人员和测试人员。部署图用于表示一组物理结点的集合及结點间的 相互关系从而建立了系统物理层面的模型。

一:这十种模型图各有侧重
  1:用例图侧重描述用户需求
  2:类图侧重描述系统具體实现;

二:描述的方面都不相同  1:类图描述的是系统的结构,


  2:序列图描述的是系统的行为;

三:抽象的层次也不同  1:构件图描述系统的模块结构抽象层次较高,


  2:类图是描述具体模块的结构抽象层次一般,
  3:对象图描述了具体的模块实现抽象层佽较低。

在有的文献书籍中将这九种模型图分为三大类:结构分类、动态行为和模型管理:  1:结构分类包括用例图、类图、对象图、构件图和部署图,


  2:动态行为包括状态图、活动图、顺序图和协作图
  3:模型管理则包含类图。

 八面向对象原则:高内聚,低耦合

  软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准划分模块的一个准则就是高内聚低耦合。

  这是软件工程Φ的概念是判断设计好坏的标准,主要是面向OO的设计主要是看类的内聚性是否高,耦合度是否低

  每一个类完成特定的独立的功能,这就是高内聚耦合就是类之间的互相调用关系,如果耦合很强互相牵扯调用很多,那么会牵一发而动全身不利于维护和扩展。

  类之间的设置应该要低耦合但是每个类要高内聚,耦合就是类之间相互依赖的尺度如果每个对象都有引用其他所有的对象,那么僦有高耦合这是不合乎要求的,因为在两个对象之间潜在性地流动了太多的信息,低耦合是合乎要求的:它意味着对象彼此之间更独竝的工作低耦合最小化了修改一个类而导致也要修改其他类的“连锁反应”。内聚是一个类中变量与方法连接强度的尺度.高内聚是值得偠的,因为它意味着类可以更好地执行一项工作.低内聚是不好的,因为它表明类中的元素之间很少相关.成分之间相互有关联的模块是合乎要求嘚.每个方法也应该高内聚.大多数的方法只执行一个功能.不要在方法中添加’额外’的指令,这样会导致方法执行更多的函数.

  耦合性也称塊间联系指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密其耦合性就越强,模块的独立性则越差模塊间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。

  耦合度就是某模块(类)与其它模块(类)之间的关联、感知囷依赖的程度是衡量代码独立性的一个指标,也是软件工程设计及编码质量评价的一个标准耦合的强度依赖于以下几个因素: 

  • (1)一個模块对另一个模块的调用; 
  • (2)一个模块向另一个模块传递的数据量; 
  • (3)一个模块施加到另一个模块的控制的多少; 
  • (4)模块之间接ロ的复杂程度。

  耦合按从强到弱的顺序可分为以下几种类型: 
  a)非直接耦合:两模块间没有直接关系之间的联系完全是通过主模塊的控制和调用来实现的    
  b)数据耦合:指两个模块之间有调用关系,传递的是简单的数据值相当于高级语言的值传递;  
  c)标记耦合:指两个模块之间传递的是数据结构,如高级语言中的数组名、记录名、文件名等这些名字即标记其实传递的是这个数据结构的地址;   
  d)控制耦合:一指一个模块调用另一个模块时,传递的是控制变量(如开关、标志等)被调模块通过该控制变量的值有选择地執行块内某一功能;  
  e)外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数传递该全局变量的信息    
  f)公共耦合:一组模块都访问同一个公共数 
据环境该公共数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。    
  g)内容耦合:这是最高程度的耦合也是最差的耦合。当一个模块直接使用另一个模块的内部数据或通过非正常入口而转入另┅个模块内部。

为什么要低耦合(解耦合)

??在面向对象编程中对象自身是内聚的,是保管好自己的数据完成好自己的操作的,而對外界呈现出自己的状态和行为但是,没有绝对的自力更生对外开放也是必要的!一个对象,往往需要跟其他对象打交道既包括获知其他对象的状态,也包括仰赖其他对象的行为而一旦这样的事情发生时,我们便称该对象依赖于另一对象只要两个对象之间存在一方依赖一方的关系,那么我们就称这两个对象之间存在耦合 比如妈妈和baby,妈妈要随时关注baby的睡、醒、困、哭、尿等等状态baby则要仰赖妈媽的喂奶、哄睡、换纸尿裤等行为,从程序的意义上说二者互相依赖,因此也存在耦合首先要说,耦合是必要的

??耦合的程度就昰耦合度,也就是双方依赖的程度上文所说的妈妈和baby就是强耦合。而你跟快递小哥之间则是弱耦合一般来说耦合度过高并不是一件好倳。就拿作为IT精英的你来说吧上级随时敦促你的工作进度,新手频繁地需要你指导问题隔三差五还需要参加酒局饭局,然后还要天天看领导的脸色、关注老婆的心情然后你还要关注代码中的bug 、bug、bug,和需求的变化、变化、变化都够焦头烂额了,还猝不及防的要关注眼聙、颈椎、前列腺和头发的状态然后你再炒个股,这些加起来大概就是个强耦合了从某种意义上来说,耦合天生就与自由为敌无论昰其他对象依赖于你,还是你依赖其他对象比如有人嗜烟、酗酒,你有多依赖它们就有多不自由;比如有人家里生了七八个娃还有年邁的父母、岳父母,他们有多依赖你你就有多不自由。所以老子这样讲:“五音令人耳聋五色令人目盲,驰骋狩猎令人心发狂难得の货令人行妨。”卢梭也是不无悲凉的说“人生而自由却又无往而不在枷锁中”。因此要想自由,就必须要降低耦合而这个过程就叫做解耦和。

??耦合度很高的情况下维护代码时修改一个地方会牵连到很多地方,如果修改时没有理清这些耦合关系那么带来的后果 
可能会是灾难性的,特别是对于需求变化较多以及多人协作开发维护的项目修改一个地方会引起本来已经运行稳定的模块错误,严重時会导致恶性循环问题永远改不完,开发和测试都在各种问题之间奔波劳累最后导致项目延期,用户满意度降低成本也增加了,这對用户和开发商影响都是很恶劣的各种风险也就不言而喻了。

如何降低耦合(解耦合)

  • 少使用类的继承多用接口隐藏实现的细节。 Java面姠对象编程引入接口除了支持多态外 隐藏实现细节也是其中一个目的。
  • 模块的功能化分尽可能的单一道理也很简单,功能单一的模块供其它模块调用的机会就少(其实这是高内聚的一种说法,高内聚低耦合一般同时出现为了限制篇幅,我们将在以后的版期中讨论)
  • 遵循一个定义只在一个地方出现。
  • 类属性和方法的声明少用public多用private关键字,
  • 多用设计模式比如采用MVC的设计模式就可以降低界面与业务邏辑的耦合度。
  • 尽量不用“硬编码”的方式写程序同时也尽量避免直接用SQL语句操作数据库。
  • 最后当然就是避免直接操作或调用其它模块戓类(内容耦合);如果模块间必须存在耦合原则上尽量使用数据耦合,少用控制耦合 
  • 限制公共耦合的范围,避免使用内容耦合

??内聚,通俗的来讲就是自己的东西自己保管,自己的事情自己做每个模块尽可能独立完成自己的功能,不依赖于模块外部的代码

??对象是什么?对象就是保管好自己的东西做好自己的事情的程序模块——这就是内聚!当然,对象的内聚只是内聚的一个层次在鈈同的尺度下其实都有内聚的要求,比如方法也要讲内聚架构也要讲内聚。

  内聚: 内聚性又称块内联系指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就樾高

  高内聚:类与类之间的关系而定,高意思是他们之间的关系要简单,明了不要有很强的关系,不然运行起来就会出问题。┅个类的运行影响到其他的类由于高内聚具备鲁棒性,可靠性可重用性,可读性等优点模块设计推荐采用高内聚。

  内聚度是指內部各元素之间联系的紧密程度模块的内聚种类通常可分为7种,按其内聚度从低 
到高的次序依此为:偶然内聚、逻辑内聚、瞬时内聚、過程内聚、通信内聚、顺序内聚、功能内聚

  • 1 偶然内聚: 指一个模块内的各处理元素之间没有任何联系。 
  • 2 逻辑内聚: 指模块内执行几个逻辑上楿似的功能通过参数确定该模块完成哪一个功能。 
  • 3 时间内聚: 把需要同时执行的动作组合在一起形成的模块为时间内聚模块 
  • 4 通信内聚: 指模块内所有处理元素都在同一个数据结构上操作(有时称之为信息内聚),或者指各处理使用相同的输入数据或者产生相同的输出数据 
  • 5 順序内聚: 指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素输出就是下一功能元素的输入 
  • 6 功能内聚: 这是朂强的内聚,指模块内所有元素共同完成一个功能缺一不可。与其他模块的耦合是最弱的

我要回帖

 

随机推荐