软件工程
文章平均质量分 79
wang_8910
孤木行舟眼观四海潮起潮落,宽厚仁和笑对人生无欲无求
展开
-
浅谈代码分层:构建模块化程序
<br />模块化的程序是怎样的程序?我们可以说一个具有明显物理结构的软件是模块化的,例如带插件的软件,一个完整的软件由若干运行时库共同构建;也可以说一个高度面向对象的库是模块化的,例如图形引擎OGRE;也可以说一些具有明显层次结构的代码是模块化的。<br />模块化的软件具有很多显而易见的好处。在开发期,一个模块化的设计有利于程序员实现,使其在实现过程中一直保持清晰的思路,减少潜伏的BUG;而在维护期,则有利于其他程序员的理解。<br />在我看来,具有良好模块设计的代码,至少分为两种形式:整体设计没有层转载 2011-04-07 10:58:00 · 1326 阅读 · 0 评论 -
统一建模语言UML轻松入门(3)――静态建模:类和对象
同类相从,同声相应,固天之理也。——《庄子·渔父》类是一种对本质相同事物的抽象,人类软件开发技术的发展历史,就是还事物以本源的历史,开发技术、名词越来越接近世界的真实,“面向对象”、“类”就是这样的产物。3.1类图在UML中,类图显示了一组类、接口、协作以及它们之间的关系。在UML的静态机制中类图是一个重点,它不但为设计人员所关心,更为实现人员所关注,建模工具也主要依据类图来产生代码(正向)工程。因此,类图在UML的各种图中占据了相当重要的地位。 类在类图中类用矩形框来表示,它的属性和操作分别列转载 2011-04-11 12:48:00 · 744 阅读 · 0 评论 -
统一建模语言UML轻松入门(2)――静态建模:用例
目前,在热播的内地版《神雕侠侣》中,杨过和小龙女有一份不为人知的默契与浪漫,那就是他们所绘制的并肩小人图。这样的小人图,是UML用例图的一部分,被称为参与者。2.1 用例与用例图用例是需求分析中最重要的概念,需求表征了一个系统的设计特性、特征和行为,描述一个系统的需求意味着描述了建立在该系统外部的事物与系统之间的契约,契约上声明了期望系统做什么。需求获取(Requirement Elicitation) 是需求工程的主体,其主要工作是建立待开发系统的模型,而用例就是用于建立这种模型的良好方法。用例最初由Iv转载 2011-04-10 10:20:00 · 1051 阅读 · 0 评论 -
系统构架设计应考虑的因素
<br />本文从程序的运行时结构和源代码的组织结构两个方面探讨了系统构架设计应考虑的各种因素,列举了系统构架设计文档应考虑的一些问题。 <br /><br /> 一、与构架有关的几个基本概念:<br /> <br /> 1、模块(module):一组完成指定功能的语句,包括:输入、输出、逻辑处理功能、内部信息、运行环境(与功能对应但不是一对一关系)。<br /> <br /> 2、组件(component):系统中相当重要的、几乎是独立的可替换部分,它在明确定义的构架环境中实现确切的转载 2011-04-09 15:15:00 · 760 阅读 · 0 评论 -
BitTorrent 性能卓越的原因
<br />概要<br /> BitTorrent 文件发布系统采用针锋相对(tit_for_tat)的方法来达到帕累托有效,与当前已知的协作技术相比,它具有更高的活力。本文将解释BitTorrent 的用途,以及是怎样用经济学的方法来达到这个目标的。<br /> <br />1、BitTorrent 用来做什么?<br /> 当通过HTTP协议来下载一个文件的时候,所有的上载开销都在主机上。而使用 BitTorrent,当多个人同时下载同一个文件的时候,他们之间也相互为对方提供文件的部转载 2011-04-09 15:30:00 · 819 阅读 · 0 评论 -
泡泡堂、QQ堂游戏通信架构分析
<br /> 之前,我分析过QQ游戏(特指QQ休闲平台,并非QQ堂,下同)的通信架构(http://blog.csdn.net/wang_8910/archive/2011/04/09/6311779.aspx),分析过魔兽世界的通信架构(http://blog.csdn.net/wang_8910/archive/2011/04/09/6311810.aspx),似乎网络游戏的通信架构也就是这些了,其实不然,在网络游戏大家庭中,还有一种类型的游戏我认为有必要把它的通信架构专门作个介绍,这便是如泡泡堂、Q转载 2011-04-09 15:08:00 · 794 阅读 · 0 评论 -
逆向思维--魔兽世界封包分析
特别声明: 本人非常欣赏暴雪及他们的游戏,之所以写这个文章,是想让大家了解一些网络封包分析方面的常见方法以及学习暴雪游戏在网络处理方面的经验,偶认为作为一个网络编程者,熟练掌握封包分析的工具和方法应该是其基本功之一。本文所列的所有封包分析内容,全部是采用普通黑箱方式即可得来的,并未涉及对魔兽世界可执行程序的逆向工程。同时,除此文涉及的内容外,本人拒绝向任何人透露更详细的关于魔兽世界封包方面的更多内容,有兴趣者请自己进行相关的试验,本人在此文中也将尽量避免公开敏感的封包内容及相关加解密算法。谨以此文献给转载 2011-04-09 14:48:00 · 1635 阅读 · 0 评论 -
负载均衡--大型在线系统实现的关键(再谈QQ游戏百万人在线的技术实现)
<br />本文出处:http://blog.csdn.net/sodme<br /> <br /> 要了解此篇文章中引用的另一篇文章,请到以下地址:http://blog.csdn.net/wang_8910/archive/2011/04/09/6311765.aspx<br /> <br /> 以上的这篇文章是早在去年的时候写的了,当时正在作休闲平台,一直在想着如何实现一个可扩充的支持百万人在线的游戏平台,后来思路有了,就写了那篇总结。文章的意思,重点在于阐述一个百万级在线的系统是转载 2011-04-09 14:31:00 · 1067 阅读 · 0 评论 -
类似于QQ游戏百万人同时在线的服务器架构实现
<br />本文作者:sodme 本文出处:http://blog.csdn.net/sodme<br /> <br /> QQ游戏于前几日终于突破了百万人同时在线的关口,向着更为远大的目标迈进,这让其它众多传统的棋牌休闲游戏平台黯然失色,相比之下,联众似乎已经根本不是QQ的对手,因为QQ除了这100万的游戏在线人数外,它还拥有3亿多的注册量(当然很多是重复注册的)以及QQ聊天软件900万的同时在线率,我们已经可以预见未来由QQ构建起来的强大棋牌休闲游戏帝国。<br /><br /> 那么,在技转载 2011-04-09 14:21:00 · 2469 阅读 · 0 评论 -
统一建模语言UML轻松入门(1)――基本概念
统一建模语言UML轻松入门(1)――基本概念---------------------------------------------------------------------宋宝华 email:21cnbao@21cn.com---------------------------------------------------------------------公元前260年,秦、赵之间发生了空前惨烈的长平之战。赵军战败,40多万人被坑杀。从此,六国再也无力抵御秦军的进攻。前230~前221年,秦王转载 2011-04-08 16:15:00 · 573 阅读 · 0 评论 -
编程修养
<br />前言<br />什么是好的程序员?是不是懂得很多技术细节?还是懂底层编程?还是编程速度比较快?我觉得都不是。对于一些技术细节来说和底层的技术,只要看帮助,查资料就能找到,对于速度快,只要编得多也就熟能生巧了。<br />我认为好的程序员应该有以下几方面的素质:<br /> 1、有专研精神,勤学善问、举一反三。<br /> 2、积极向上的态度,有创造性思维。<br /> 3、与人积极交流沟通的能力,有团队精神。<br /> 4、谦虚谨慎,戒骄戒燥。<br /> 5、写出的代码质量高。包括转载 2011-04-08 10:04:00 · 525 阅读 · 0 评论 -
统一建模语言UML轻松入门(4)――动态建模
静可描形,动可描行。动和静是辩证的两面,在UML中,静态建模可以描述系统的组织和结构,而动态建模则可描述系统的行为和动作。前一节中介绍的类图和对象图主要用于静态建模,本节我们将描述UML中的动态建模机制。在动态建模机制中,以消息来完成对象之间的交互,用状态图、顺序图、协作图和活动图来描述系统的行为。4.1消息 在面向对象领域,两个对象的交互是通过消息的发送和接收来完成的。消息分为简单消息、同步消息和异步消息: (1)简单消息:只是表示控制如何从一个对象发给另一个对象,并不包含控制的细转载 2011-04-30 17:05:00 · 1106 阅读 · 5 评论