2009年9月10日 星期四

強精術

男人只要活著一天,就需要,因此「小弟弟」站不起來,簡直與死無異。然而隨著年齡的增長,男人的體力和精力都會隨之消退。有許多男人都會有這種感覺:以前 年輕的時候,不要說一天做一次,就算一天做三、四次都沒問題;然而現在這種自信心卻越來越薄弱了……。 不過要把責任都推給年齡的話,似乎有欠公允;因為年過八十依然是「一條活龍」,每日與女人纏綿的歐吉桑還是大有人在。最能瞭解「精力絕倫」這四個字真正含 義的,是三、四十歲的男人;十幾二十歲的男人絕對無法瞭解什麼叫「精力絕倫」,因為這些年輕人全部都是「精力絕倫」。

以下所要傳授的方法,是如何增加一個男人「小弟弟」的勃起力,讓它依舊能維持在十幾二十歲時「堅如鐵石」、「金不倒」的狀態。

在談這些方法之前,有一點是大家必須要有共同認知的:「精力絕倫」有個基本的大前提──身體健康。無論是精神或肉體的任何一方面出了狀況,都會造成精力的 衰退。此外,生活環境突然發生改變、生活不規律、疲勞過度、睡眠不足、運動不足、卡洛裡攝取過量、缺乏維他命等等,也一樣會影響精力。

從醫學上來看,影響男性精力最大因素則是男性荷爾蒙分泌的情形,因為男性荷爾蒙會直接影響精子的製造。總之,將身心都調整到最佳狀態是維持精力的基本條件。

在以下的數個方法之中,只要能實踐其中的兩到三項,就可以確保你的男性雄風;持之以恆的話,說不定當你八十歲時也還是「一條活龍」,依然可以和女人做愛喔!強化的秘訣在於強化內轉肌!

當你在廁所小便時,發現自己雖然已經尿完了,卻依然有殘尿的感覺;這時幾乎已經可以斷定你的勃起能力已經開始有衰退現象。陰莖從中段到根部為止,都有一種 名為「球海綿體肌」的肌肉;這種肌肉的主要功能是控制排尿,並在排尿後確認尿已全部排光。但是除了這種功能之外,它也擔任了陰莖勃起時的重要助攻員。如果 這種肌肉能力開始衰退,不僅是會讓你有殘尿感,陰莖的勃起能力也會大幅下降。為了防止這一點,就必須對「球海綿體肌」加以鍛煉。鍛煉「球海綿體肌」,就相 當於鍛勃起能力。不過,要怎麼鍛煉「球海綿體肌」呢?「球海綿體肌」和大腿內側的「內轉肌」之間有神經連結,因此要想鍛煉「球海綿體肌」,就從鍛煉「內轉 肌」來著手;藉著腿部的開閉,可以達到強化該處肌肉的目的。以下介紹兩個具體的鍛方法:

●鍛鍊方法一

仰臥並將膝蓋彎曲,舉高雙腿,然後用左手捉住右小腿,慢慢地向身體兩側重複張開、閉合。如果每做五次為一回合的話,一天做個一~二回就可以了。要注意不要貪心一口氣做過頭,用力過度的話會造成肌肉疲勞,變成反效果喔。

●鍛鍊方法二

坐在床上,兩腿盡可能地張開。接著兩手向前伸展,以額頭碰觸床面為目標將身子向前彎曲。如果每做三~五次為一回合的話,一天做個二~三回就可以了。雖然將 兩腿張開再彎腰,腿間會覺得有點痛,但還是得稍微忍耐一下,因為張腿的動作相當重要。當然剛開始做的時候,額頭很難碰到床面;只要有恆心,大概一個月就可 以做到了。每天做這個動作,一個月後勃起力就能大幅提升。用腹式肛門呼吸法增加精力和膨脹力!

在現實社會中,有許多男人會受到工作以及人際關係的壓力而導致性能力減弱;但是也有一些男人在官場情場兩得意。這兩者的差異究竟在哪裡呢?說穿了主要是交 感神經和副交感神經功能切替上的問題。人類在工作的時候,交感神經會特別活躍;而在性交的時候,則是由副交感神經主宰一切。功能切替順暢的話,無論工作 或**都能是切掌握;反之則在床地間會顯得心有餘而力不足。這種時候最好的解決方法就是暫時將手上的工作拋下,好好放個長假,讓身心輕鬆一下。然而一般人 哪有這麼多假可放呢?所以必須得找個替代的方案才行。

而藉著入浴──副交感神經活潑化時刺激穴道,是最值得推薦的方法。首先,在入浴時在浴室裡找個小凳子坐好,放鬆肩膀的力量,然後用淋浴的方式刺激位於頭頂 的百會穴;接著將全身浸泡在放滿水的浴缸裡,水溫約38~39度左右,就這樣泡差不多十分鐘。如此可以有效地讓神經指揮權的交替更加順暢。另外也有促使交 感神經與非交感神經切替更加順暢的鍛方法。這種鍛法除了可以強化神經系統效能之外,對於增加勃起力、膨脹力甚至性慾都很有效,我們稱它為「腹式肛門呼吸 法」。

●鍛鍊方法

1.首先以跪坐姿坐好,然後調整好呼吸;接著藉由腹部的力量開始緩緩地吸氣。吸氣的同時,肛門也逐漸用力收緊,腦子裡想著好像要從肛門吸入空氣的那種感覺。

2.在以腹部吸滿空氣之後,這次要壓縮腹部,就像是要把空氣擠到背後去一樣。
3.接著再鼓張腹部,就好像要把空氣由背後擠到頭上一樣。4.吐氣的時候,要像是想把空氣擠向心口和下顎一樣慢慢呼出;而緊縮的肛門也隨著呼氣逐步放鬆。 在氣吐完了之後,腹部只要一壓縮,肛門收縮的程度會比想像中更緊。反覆執行1~4的步驟持續約十分鐘,就能讓交感神經和副交感神經在功能交接時更加平順。 這個方法請你一定要試試。此外所有的鍛煉方法都必須持續地做,如果能夠相信它們並持之以恆,相信必然會得到你想要的成果。以上方法是用在日常生活中的鍛鍊 模式。

除了鍛鍊以外,還有許多必須留意之處。好比說是抽煙、喝酒、鹽份、咖啡等等,如果攝取過量,勢必會對精力產生不良的影響。日本AV界精力絕倫的AV男優. 加籐鷹,雖然已經三十七歲了,可是一天射精個六、七次對他而言是十分稀鬆平常的事。他就曾經表示:為了要維持超強的精力,酒和咖啡是絕對不沾的;煙稍微有 抽一點,飲食以魚類為中心。肉類方面盡量少吃,而對於富含精液構成原料─亞鉛的牡蠣、裙帶菜以及紅貝等食物則大量攝取。當然,維他命的攝取也是不可或缺 的。學習控制射精的方法以達到「持久不」!無論是多麼優秀的機器,如果一直全力運轉的話,都會縮短它的壽命;陽具自然也不例外。到八十歲依然能像年輕人一 樣做愛、自慰的歐吉桑,當然有他的秘訣。說實在的,要想成為「絕倫王」的捷徑,最快的方法就是「不斷地性交」。但是即使是精力旺盛的年輕人,也不可能有這 種超人的體力;所以拚命一股腦地抽插是絕對撐不久的。緩急相間的動作,才是性交時的正確方式。就像打棒球時老練的投手在配球一樣,必須要快慢相間;全都用 同一種球路的話,一下子就會被打中了。為了活用這個原則,性交時就要應用「座位」這種體位。「座位」的優點在於它可以減輕心臟、腰部、脊椎骨的負荷,進而 減少體力的消耗;比起其它的體位,「座位」的手部自由度更高,更有餘裕對女體做各種愛撫的動作。而且由於雙腿是張開的,所以只要稍微變更姿勢,就能對女方 的陰道壁、快感中心的G點、甚至陰道後壁和子宮口充分的刺激,輕易地讓她達到性高潮。能夠成功掌握「座位」使用的技巧和時機,就是邁向**高手的最佳捷 徑。不過即使「座位」的功夫練得再好,若是插沒兩下就射精了,那也是白搭。二十幾歲的年輕人一晚上射精數回也不算什麼;但是隨著年齡增長,射精的能力也會 逐步衰減,因此勢必要學習控制射精的方法。

在養生之道裡有一項「持久不」,若能確實做到的話,一晚上讓女人高潮數次也不是什麼困難的事。具地的練習方法如下:

首先,就像是要自慰一樣刺激陰莖,讓陰莖勃起;然後放鬆身體,將兩腿稍微張開,讓陰莖能確實伸展。待**完全露出之後,就用你靈巧的手──包括手掌和手 指,上下套動陰莖的部分;同時另一隻空的手則輕輕地撫摸陰囊部分。**那兒則以拇指、食指和中指三根手指頭輕輕撫摸。當射精感到達80%時,把手移開,令 興奮感稍微降低些;差不多30秒之後,再度用手刺激陽具,讓射精感再度高揚至80%。如此反覆地動作,讓一次的射精時間拉長到十分鐘左右。這項練習的目 的,是要鍛控制射精的能力和培養耐久力。另外,有許多男人在射精之後就倒頭大睡。表面上看起來,「運動」過後立即休息,似乎蠻符合養生之道;但事實正好相 反。

性交後立刻睡覺,這麼做不僅會引起女方的不快,也會使得射精後的疲勞感持續到次日。性交之後不馬上睡覺,起身繼續做一些日常生活中的事情,可以使因性交刺 激而變得遲鈍的脊椎反射神經順利恢復動作。若是完事後立刻倒頭大睡,睡眠的遲鈍效應加上性交刺激的遲鈍效應,會使疲勞一直持續到第二天,讓你腰酸背痛。所 以性交之後,切記不要立刻轉身就睡;也許看個電視、抽根煙,或情話綿綿個一小時左右再睡,就不會讓疲勞感殘留到次日。這個小訣竅你千萬要記得。

好!在看完以上的內容之後,你等於已經拿到了前往「絕倫界」的護照了!接下來要登入「鐵炮」殿堂的話,就得靠你個人的努力了。羅馬不是一天造成的,「鐵炮」也是日日努力的結晶。先以持續一個月的鍛煉為目標,經過鍛煉的「鐵炮」,效果絕對會超越你的想像。

腹式肛門呼吸法

   用腹式肛門呼吸法增加精力和膨脹力,促使副交感神經張力鍛鍊的方法,對於增加勃起力、膨脹力甚至性慾都很有效。腹式肛門呼吸法促進腸子蠕動,不僅能預防常見的便秘苦惱,也能緊實腹肌,改善腰腹無力和性功能等問題。

   (1)首先以跪坐姿坐好,然後調整好呼吸;接著由腹部的力量開始緩緩地吸氣。吸氣的同時,肛門也逐漸用力收緊,腦子裏想著好像要從肛門吸入空氣的那種感覺。

   (2)在以腹部吸滿空氣之後,再要壓縮腹部,就像是要把空氣擠到背後去一樣。

   (3)接著再鼓張腹部,就好像要把空氣由背後擠到頭上一樣。

   (4)吐氣的時候,要像是想把空氣擠向心口和下顎一樣慢慢呼出;而緊縮的肛門也隨著呼氣逐步放鬆。在氣吐完了之後,腹部只要一壓縮,肛門收縮的程度會比想像中更緊。反覆執行1~4的步驟持續約十分鐘。

自然深呼吸法

一般要求做深呼吸時要選擇空氣清新的環境,不要太早(如早上8點以前),也不要在寒冷的環境下做。每天做6次左右,每次6分鐘,正常每分鐘呼吸16次,一般做深呼吸時每分鐘8次為好。如果平時能堅持有意識的做做深呼吸,還能增加腦供氧量,解除疲勞。

逆式呼吸法

   逆式呼吸法也就是吸氣時可是腹部凹入,呼氣時壓縮腹部使之凸起的呼吸法。
  逆式呼吸法:分站與躺,站著練時,吸氣時舌頂上腭、胸腔鼓脹、小腹收緊,小腹微微內收即可。當呼氣時,呼吸要細、慢、長、勻,讓氣沉下入小腹丹田,當然有 一部份氣會從鼻子出去,若是從鼻子出去的氣越多,表示您的功夫還不成熟。躺著練時,與正呼吸相反,吸氣時小腹用點力內收,氣當然自然存放在胸部,當吐氣 時,小腹鼓起以便納氣,氣自然會順勢入小腹中,當然有部份氣還是會從鼻子出去。
  逆呼吸法要持之以恒,早晚各10-20分鐘,日聚月累,最後會水到渠成,不能勉強,否則就會發生悶氣或頭暈等現象發生。經過長期的訓練,人的肺活量可以得到極大提高,由於肌肉得到了足夠的氧、能消耗人體腹部多餘的脂肪、擴大肺活量和軟化血管,從而提高人體活力。

腹式呼吸法

腹式呼吸法又稱丹田呼吸法,吸氣時可是腹部凸起,呼氣時壓縮腹部使之凹人的呼吸法。

腹式呼吸法由三個階段構成:吸氣、止氣、呼氣。開始吸氣時全身用力,儘量使下腹部向外膨脹,並使下腹部達到弧形狀態。此時肺部及腹部會充滿空氣而鼓起,但 還不能停止,仍然要使盡力氣來持續吸氣,不管有沒有吸進空氣,只管吸氣再吸氣。吸氣之後屏住氣息(止氣),此時身體會感到緊張,持續幾秒後再緩緩地將氣呼 出,同時儘量使下腹部往裏收縮,並用力使橫隔肌收縮。呼氣時宜慢、宜長而且不要中斷。在做此法時,吸氣、止氣和呼氣的時間要不斷延長,最後盡可能達到吸氣 20秒、止氣20秒、呼氣20秒,這樣一個呼吸的全過程就是一分鐘。做完幾次後,不但不會覺得難過,反而會有一種舒暢的快感。

系统分析员备考之UML篇

系统分析员备考之UML篇

作者:高艳明



提交者:eastvc 发布日期:2003-7-14 20:28:58

原文出处:http://www.51cmm.com/SATutorship/no051.asp?ID=765








一、概述



统一建模语言(Unified Modeling Language,UML)是一种可视化的建模语言,它能让系统构造者用标准的、易于理解的方式建立起能够表达他们想象力的系统蓝图,并且提供了便于不同人之间有效地共享和交流设计结果的机制。

UML
作为通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统制品的文档。它记录了对必须构造的系统的决定和理解,可用于对系统的理
解、设计、浏览、配置、维护和信息控制。UML 适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具,UML
是一种总结了以往建模技术的经验并吸收当今优秀成果的标准建模方法。UML包括概念的语义,表示法和说明,提供了静态、动态、系统环境及组织结构的模型。
它可被交互的可视化建模工具所支持,这些工具提供了代码生成器和报表生成器。UML标准并没有定义一种标准的开发过程,但它适用于迭代式的开发过程。它是
为支持大部分现存的面向对象开发过程而设计的。

  UML描述了一个系统的静态结构和动态行为。UML将系统描述为一些离散的相互作用的对象并最
终为外部用户提供一定的功能的模型结构。静态结构定义了系统中的重要对象的属性和操作以及这些对象之间的相互关系。动态行为定义了对象的时间特性和对象为
完成目标而相互进行通信的机制。从不同但相互联系的角度对系统建立的模型可用于不同的目的。

  UML还包括可将模型分解成包的结构组件,以便于软件小组将大的系统分解成易于处理的块结构,并理解和控制各个包之间的依赖关系,在复杂的开发环境中管理模型单元。它还包括用于显示系统实现和组织运行的组件。

面向对象的分析与设计(OOA&D)方法的发展在80年代末至90年代中出现了一个高潮,UML是这个高潮的产物。它不仅统一了Booch、Rumbaugh和Jacobson的表示方法,而且对其作了进一步的发展,并最终统一为大众所接受的标准建模语言。


向对象技术和UML的发展过程可用下图来表示,标准建模语言的出现是其重要成果。在美国,截止1996年10月,UML获得了工业界、科技界和应用界的广
泛支持,已有700多个公司表示支持采用UML作为建模语言。1996年底,UML已稳占面向对象技术市场的85%,成为可视化建模语言事实上的工业标
准。1997年11月17日,OMG采纳UML
1.1作为基于面向对象技术的标准建模语言。UML代表了面向对象方法的软件开发技术的发展方向,具有巨大的市场前景,也具有重大的经济价值和国防价值。



二、UML的构成



UML
包括了一些可以相互组合图表的图形元素。由于UML是一种语言,所以UML也具有组合这些元素的法规。UML提供这些图的目的是用多个视图来展示一个系
统,这组视图被称为一个模型(Model)。一个系统的UML模型有点像一个建筑物按照比例缩小的并经艺术家装饰后的建筑模型。但是,UML模型只描述了
一个系统要做什么,并没有指明如何去实施这个系统。

1、 类图

类图中的类和我们经常提到的面向对象软件设计与开发中的类是同一个概念,用
来表示这么一个类的图我们就称之为类图。它主要是展示了系统或者领域中的实体以及实体之间的关联,类的UML图是一个矩形框。类图对系统分析有很大的帮
助,它可以让系统分析员使用客户所采用的术语和客户交流,这样就可以促使客户说出所要解决的问题的重要细节。



图1



2、 对象图

同类一样,对象在这里的概念与面向对象编程思想中的对象一样,它是类的实例。,是具有具体属性值和行为的一个具体事物。


向对象技术已经席卷了整个世界,事实也去确实如此。作为一种程序设计方法,它的建立具有很多优点。基于构件的软件开发方法就是面向对象技术孕育出来的。采
用这种方法建立一个系统时,首先建立一组类,然后通过增加已有构件的功能或者添加新的构件来逐步扩充系统,最后在建立一个新系统时,还可以重用已经建好的
类。这样做可以大大削减系统开发时间。

使用UML可以建立起易于使用和易于理解的对象模型,以使程序员能够创建出这些模型所对应的软件。所以,UML对基于类开发的全过程都有益处。

对象图也是一个举行,和类一样,但是对象名下面要带下划线。





图2



3、 用例图


例是用来描述潜在的用户所看到的系统的UML组件。它是一个被称为参与者(可以是一个人、一个硬件设备、一段时间的流逝或者另一个系统)的实体所发起的场
景的集合。用例的执行必须对发起改用例的参与者或者其他参与者产生影响。用例可以被重用。与用户会谈是导出用例的最好技术,当导出一个用例时,要注意到发
起用例的牵制条件和产生影响的后置条件。

用例是一个强有力的工具,当使用UML可视化地表达出这些概念后用例甚至会变得更加强大。可视化允许你向
用户现实用例,他们能像你提供更多的信息。系统分析过程的一个目标是产生一组用例。此想法是要对用例进行分类整理,以便于引用。用例代表着用户的观点。当
系统要进行升级时,用例目录可以作为进一步收集升级需求的基础。

用例是由参与者发起的,参与者(也许是发起者,但不是必须的)能够从用例的执行中
获得有价值的事物。用例分析的一个好处是它能展现系统和外部世界的边界。参与者是典型的外部实体,而用例是典型的系统内部。参与者、用例和互连线共同组成
了用例模型。如图3示。在用例模型中,直立人形图标代表参与者,椭圆代表用例,参与者和用例之间的关联线代表两者之间的通信关系。





图3



4、 状态图


计算机系统中,当系统和用户(也可能是其他系统)交互的时候,组成系统的对象为了适应交互要经历必要的变化。一种表征系统变化的方法可以说是对想改变了自
己的状态以相应事件和时间的流逝。UML
状态图就是展示这种变化的工具,它描述了一个对象所处的可能状态及状态间的转移,并给出了状态变化序列的起点和终点。要注意,状态图与以上提到的类图、对
象图和用例图有着本质的不同。前3种图能够对一个系统或至少一组类、对象或用例建立模型,而状态图只是对单个对象建立模型。

状态图描述一段时间内对象所处的状态和状态的变化。状态的UML图标是一个圆角矩形,状态转移用状态之间的有向连线表示。

UML
状态图提供了多种表示法符号,并且包括了很多建模思想——如和对单个系统对象所经历的变化建模。或许对于很简单的问题建模时,这种类型的图可能很快就会变
得很复杂,但是,事实上确实很需要状态图,因为它能帮助系统分析员、设计员和开发人员理解系统中对象的行为。类图和对应的对象图只展示了系统的静态方面,
他们展示的是系统的静态层次和关联,并能够告诉你系统的行为是什么,但它们不能说明这些行为的动态细节。





图4



5、 顺序图


态图的焦点是对象的状态,这只是图偏的一小部分。UML顺序图更进一步显示出随着时间的变化对象之间是如何通信的。UML顺序图在对象交互的表示中加入了
时间维。在顺序图中,对象位于图的顶部,从上到下表示时间的流逝,每个对象都有一个垂直向下的对象生命线,对象生命线上的窄矩形条代表激活——改对象某个
操作的执行。可以沿着对象的生命线表示出对象的状态。

消息,有简单的、同步的或异步的三种,没别表示为如图5示的用连接对象生命线的带箭头的连线代表。消息在垂直方向上的位置表示了该消息在交互序列中发生的时间,越靠近图顶部的消息发生的越早,越靠近底部的发生的越晚。





图5




例图可以只说明用例的一个实例(场景),或者可以表示一般的或者一个用例的所有场景。一般顺序图中通常提供了表示“if”条件语句和“while”循环语
句的机会,每个“if”条件语句要用方括号([])括起来,“while”循环语句也要用方括号([])括起来,并在左括号前面加一个星号。同时,一般来
说,对象可能会有一个调用自身的操作,即递归或自身调用。自身调用的表示是从一个激活框中引出消息线又重新回到这个激活框,并在该激活框中附加上一个小的
矩形框,其表示方法如图6示。





图6 顺序图中自身调用的表示法





图7顺序图



6、 活动图

UML
活动图是状态图的一种扩展形式,它展示出对象执行某种行为时或者在业务过程中所要精力的步骤和判定点。每个步骤(活动)用一个圆角矩形(比状态图更扁更
圆)表示,菱形图标代表判定点。它很像程序设计课中学到的流程图。UML活动图可用于表达一个对象的操作和一个业务过程。活动图与状态图的主要区别是,状
态图图出显示的是状态,而活动图突出显示的是活动。

当一个活动路径分成两个或多个路径时,可以用一个与路径垂直的粗实心线来代表路径的分支,两个并发路径的合并可以用相同的方式表达。如图8。





图8并发活动表示法




动图中可以显示出信号:发送信号的图符是一个凸无边形,接收信号的是一个凹无边形。在活动图中还可以表示出执行每个活动的角色,即通过将活动图划分为泳道
——代表每个角色的平行段。还可以在活动图中出现其他图的图符并绘制混合图。一个活动图的大概情况可以表示为如图9示。





图9活动图



7、 协作图

对象图展示出对象和对象之间的静态关系,协作图是对象图的扩展。协作图可视化地表示了对象之间随时间发生的交互,它除了展示对象之间的关联,还显示出对象之间的消息传递。


顺序图一样,协作图也展示对象之间的交互关系,实际上,顺序图和协作图两者是语义等价的。也就是说,这两种图表达的是同一种信息,并可以将顺序图转化为协
作图,反之亦然。但是,顺序图强调的是交互的时间顺序,而协作图强调的是交互的语境和参与交互的对象的整体组织。还可以从另一种角度来看两种图的定义,以
区分这两种图:顺序图按照时间顺序布图,而协作图按照空间组织布图。

协作图中可以表示出一个对象按照指定的次序(或无次序)地向一组对象发送消
息。还可以表示拥有消息控制流的主动对象,以及消息之间的同步。协作图示例如图10。对象图标可以布置在图中的任何位置。对象间的连线代表了对象之间的关
联和消息传递。每个消息箭头都带有一个消息序号,这些序号说明了该消息在交互序列中的序号。





图10 协作图



8、 构件图


件构件是软件系统的一个物理单元,它驻留在计算机中而不是只存在系统分析员的脑海里。像数据表、数据文件、可执行文件、动态链接库、文档等都可以称为构
件。至于构件和类的区别可以这样理解:构件是类的软件实施。类是代表一组属性和操作的抽象实体。类和构件的一个重要关系是:一个构件可以是多个类的实施。

既然构件是驻留在计算机系统中的工作单元,对它建模是不是多此一举呢?我们说不是。因为对构件和构件的关系建模具有如下意义:使客户能够看到最终系统的结构;让开发者有一个目标;让编写技术文档和帮助文件的技术人员能够理解所写的文档是关于哪方面内容的;利于重用等。


件的一个重要方面是它具有潜在的重用性。在当今高节奏的商业竞技场中,你建造的系统发挥功能越快,在竞争中获得的利益就越多。如果在一个系统中所构造的构
件在开发另一个系统时被重用,那么就越有利于获得这种竞争利益。在建立构件的工作上花费一些时间和精力有助于今后的重用。

在对软件实体进行建模的过程中,你可能会遇到三种类型的构件:

①、部署构件(Deployment Component),它形成了可执行系统的基础。例如动态链接库、二进制可执行体、ActiveX控件等。

②、工作产品构件(Work Product Component),它是部署构件的来源,如数据文件和程序源代码。

③、执行构件(Execution Component),是可运行系统产生的结果。

构件图中包括构件、接口和关系。当然前面介绍的其他类型的图标也可以加入到构件图中。构件图的图标是一个左侧附有两个小矩形的大矩形框,如图11示。构件的名字位于构件图标的中央。如果构件是一个包的成员,那么构件名之前要加上包的名字,还可增加一些表达构件的细节信息。





图11 构件图



可以通过构件的接口来访问一个构件,构件的接口使一组操作集合。构件和接口之间的关系叫做实现关系。一个构件可以访问另一个构件提供的服务。当这样做的时候,它要使用导入接口,而实现服务接口的构件对访问它的服务的构件提供服务接口。



9、 部署图


大多数系统中,硬件也是一个重要方面。现在的计算机领域,一个系统可能要包括无数种的操作平台,并且要有可能还要跨越很长的物理距离。一个坚实的系统硬件
部署图对系统设计来说是必不可少的。从一开始的类的概念到上面的驻留在计算机中的软件构件,这里我们来看真是世界中的计算机硬件。

将UML部署图与整个系统集成到一起后将看到完整的物理结构图。系统是由节点组成的,每个节点用一个立方体表示。节点之间的连线代表两个立方体的连接。两种类型的节点分别是处理器(它可以执行软件构件)和设备(不能执行软件构件)。设备通常具有同外部世界通信的接口。

部署图对建立网络结构的模型很有用处。





图12 部署图


小结

以上是我个人根据最近两年的考题中有考察UML的情况,但是发现考察的深度和广度并不是很大,故专门整理了这方面的资料,希望能够对广大系分考友有所帮助,谢谢。

萬病回春/類中風

類中風者:則常有之。有中寒、中暑、中濕、中火、中氣、食厥、勞傷、房勞、痰厥、血暈、中惡、卒死等症。皆類中風者甚多,各有治法,不可作風治。如用風藥,誤之甚矣!

中於寒者:謂冬月卒中寒氣,昏冒口噤,肢攣惡寒,脈浮緊也。 其症或口吐涎沫,重則四肢殭直。先用熱酒、薑汁各半盞,灌之稍醒後。隨用附子理中湯。 若不急治,舌短曩縮而死矣

撰寫 PHP 程式的一些優化建議

這裡有一篇 Tsung 翻譯的「PHP 程式效能優化的 40 條建議」,覺得很不錯。個人接觸 PHP 這個語言約有四個年頭了,再撰寫時多少會注意一些效能細節,不過有時為了讓程式碼更好看、簡短,往往就忽略掉這些細節,這篇的建議正好可以讓新手學習、老手複習一些 PHP 的最佳化技巧。

引用內容:

  1. 如果一個方法可靜態化,就對它做靜態聲明。速率可提升至4倍
  2. echo 比 print 快
  3. 使用echo的多重參數(譯註:指用逗號而不是句點)代替字元串連接
  4. 在執行for循環之前確定最大循環數,不要每循環一次都計算最大值
  5. 註銷那些不用的變量尤其是大數組,以便釋放內存
  6. 盡量避免使用__get,__set,__autoload
  7. require_once()代價昂貴
  8. 在包含文件時使用完整路徑,解析操作系統路徑所需的時間會更少
  9. 如果你想知道腳本開始執行(譯註:即服務器端收到客戶端請求)的時刻,使用$_SERVER['REQUEST_TIME']要好於time()
  10. 函數代替正則表達式完成相同功能
  11. str_replace函數比preg_replace函數快,但strtr函數的效率是str_replace函數的四倍
  12. 如果一個字元串替換函數,可接受數組或字元作為參數,並且參數長度不太長,那麼可以考慮額外寫一段替換程式,使得每次傳遞參數是一個字元,而不是只寫一行程式接受數組作為查詢和替換的參數
  13. 使用選擇分支語句(譯註:即switch case)好於使用多個if,else if語句
  14. 用@屏蔽錯誤消息的做法非常慢
  15. 打開apache的mod_deflate模塊
  16. 資料庫連接當使用完畢時應關掉
  17. $row['id']的效率是$row[id]的7倍
  18. 錯誤訊息代價昂貴
  19. 盡量不要在for循環中使用函數,比如for ($x=0; $x <>
  20. 在function中遞增局部變量,速度是最快的。幾乎與在函數中調用局部變量的速度相當
  21. 遞增一個全局變量要比遞增一個局部變量慢2倍
  22. 遞增一個物件屬性(如:$this->prop++)要比遞增一個局部變量慢3倍
  23. 遞增一個未預定義的局部變量要比遞增一個預定義的局部變量慢9至10倍
  24. 僅定義一個局部變量而沒在函數中調用它,同樣會減慢速度(其程度相當於遞增一個局部變量)。PHP大概會檢查看是否存在全局變量
  25. 方法調用看來與類中定義的方法的數量無關,因為我(在測試方法之前和之後都)添加了10個方法,但性能上沒有變化
  26. 派生類中的方法運行起來要快於在基類中定義的同樣的方法
  27. 調用帶有一個參數的空函數,其花費的時間相當於執行7至8次的局部變量遞增操作。類似的方法調用所花費的時間接近於15次的局部變量遞增操作
  28. 用單引號代替雙引號來包含字元串,這樣做會更快一些。因為PHP會在雙引號包圍的字元串中搜尋變量,單引號則不會。當然,只有當你不需要在字元串中包含變量時才可以這麼做
  29. 輸出多個字元串時,用逗號代替句點來分隔字元串,速度更快。註意:只有echo能這麼做,它是一種可以把多個字元串當作參數的“函數”(譯註:PHP手冊中說echo是語言結構,不是真正的函數,故把函數加上了雙引號)
  30. Apache解析一個PHP腳本的時間要比解析一個靜態HTML頁面慢2至10倍。盡量多用靜態HTML頁面,少用腳本
  31. 除非腳本可以緩存,否則每次調用時都會重新編譯一次。引入一套PHP緩存機制通常可以提升25%至100%的性能,以免除編譯開銷
  32. 盡量做緩存,可使用memcached。memcached是一款高性能的內存物件緩存系統,可用來加速動態Web應用程式,減輕數據庫負載。對運算碼 (OP code)的緩存很有用,使得腳本不必為每個請求做重新編譯
  33. 當操作字元串並需要檢驗其長度是否滿足某種要求時,你想當然地會使用strlen()函數。此函數執行起來相當快,因為它不做任何計算,只返回在 zval 結構(C的內置數據結構,用於存儲PHP變量)中存儲的已知字元串長度。但是,由於strlen()是函數,多多少少會有些慢,因為函數調用會經過諸多步 驟,如字母小寫化(譯註:指函數名小寫化,PHP不區分函數名大小寫),會跟隨被調用的函數一起執行。在某些情況下,你可以使用isset() 技巧加速執行你的程式
    舉例如下:
    if (strlen($foo) < 5) { echo "Foo is too short"; }
    與下面的技巧做比較:
    if (!isset($foo{5})) { echo "Foo is too short"; }
    調用isset()恰巧比strlen()快,因為與後者不同的是,isset()作為一種語言結構,意味著它的執行不需要函數查找和字母小寫化。也就是說,實際上在檢驗字元串長度的頂層程式中你沒有花太多開銷
  34. 當執行變數$i的遞增或遞減時,$i++會比++$i慢一些。這種差異是PHP特有的,並不適用於其他語言,所以請不要修改你的C或Java程式 並指望它們能立即變快,沒用的。++$i更快是因為它只需要3條指令(opcodes),$i++則需要4條指令。後置遞增實際上會產生一個臨時變量,這 個臨時變量隨後被遞增。而前置遞增直接在原值上遞增。這是最優化處理的一種,正如Zend的PHP優化器所作的那樣。牢記這個優化處理不失為一個好主意, 因為並不是所有的指令優化器都會做同樣的優化處理,並且存在大量沒有裝配指令優化器的網際網路服務提供商(ISPs)和服務器
  35. 並不是所有都要使用OOP,面向物件往往開銷很大,每個方法和物件調用都會消耗很多Memory
  36. 並非要用 class 實現所有的數據結構,數組也很有用
  37. 不要把方法細分得過多,仔細想想你真正打算重用的是哪些程式?
  38. 當你需要時,你總能把程式分解成方法
  39. 盡量採用大量的PHP內置函數
  40. 如果在程式中存在大量耗時的函數,你可以考慮用C擴展的方式實現它們
  41. 評估檢驗(profile)你的程式。檢驗器會告訴你,程式的哪些部分消耗了多少時間。Xdebug調試器包含了檢驗程式,評估檢驗總體上可以顯示出程式的瓶頸
  42. mod_zip可作為Apache模塊,用來即時壓縮你的數據,並可讓數據傳輸量降低80%
  43. 另一篇優化PHP的精彩文章,由John Lim撰寫
推到 Twitter!
推到 Plurk!
推到 Facebook!