21 Software Engineering
要什么昵称嘛
做技术好多年了,期间有过彷徨,但是我还是选择了坚持,决心把技术这条路执着的走下去。座右铭:付出才有回报。
展开
-
《人月神话》的观点:是或非?(Propositions of the Mythical Man-Month: True or False?)——摘自《人月神话》
以下内容摘自《人月神话》所有这些观点都是可操作验证的,我将它们表达成刻板的形式是希望能引起读者的思考、判断和讨论。第1 章焦油坑1.1 编程系统产品(Programming Systems Product)开发的工作量是供个人使用的、独立开发的构件程序的九倍。我估计软件构件产品化引起了3 倍工作量,将软件构件整合成完整系统所需要的设计、集成和测试又强加了3 倍的工作量,这些高成本的构件在根本上原创 2004-08-19 13:12:00 · 2339 阅读 · 0 评论 -
DJunit对于Virtual Mock的支持
Java中编写单元测试,复杂一些的技术包括Stub和Mock。如今的Mock技术真的是越来越成熟了,甚至在Mock的概念上衍生出了Virtual Mock的概念。目前很多Java项目编写单元测试都会涉及部分Virtual Mock的技术。DJunit是基于JUnit开发的开源的测试框架,可以集成到Eclipse,支持很多Mock方法,支持测试覆盖率查看等等。详细的可以看http://en.wi原创 2008-05-23 12:43:00 · 7151 阅读 · 0 评论 -
项目风险之人员流动风险
任何一个项目,在管理的过程中,最常出现的风险恐怕就是人员流动风险。每一次有核心成员突然宣布要离开,都会给项目造成很大的影响。 人员流动风险一般情况下,都会影响项目进度,导致必须重新定制计划。严重时候,甚至会导致项目无法继续进行而被迫夭折。 对于项目中的人员,需要平时时候多观察,多进行交流,了解员工对于项目及公司的想法。一般情况下,当项目核心人员在有离职想法之前,都是因为心中有着很多原创 2008-05-18 20:41:00 · 3839 阅读 · 2 评论 -
Mock in JUnit
>是一本比较著名的关于JUnit的书。当谈到JUnit单元测试技术的时候,举出了两种测试方法,Stub和Mock。Stub的大概概念如下:Stub是代码的一部分。其目的就是用简单的行为替换复杂的行为,从而允许独立地测试代码的一部分;Mock Object是使用来代替与你的代码协作的对象的对象,这样代码可以调用Mock Object的方法,这些方法的调用的结果是由你的测试设置好的。Stub适原创 2008-04-28 14:29:00 · 5634 阅读 · 1 评论 -
JUnit4测试代码示例
JUnit4与以前版本相比,有了很大的改变。JUnit4开始使用自定义的一些标签(Annotation)来实现测试活动。而且增加了一些功能,使用起来更加方便了。下面的测试代码能够看出不少JUnit4版本的一些新的东西。具体更加详细的,可以到www.junit.org看看。public class JUnitFourVersionTest { @BeforeClass原创 2008-04-24 12:32:00 · 2272 阅读 · 0 评论 -
培训新人实录
在讲解了许多相关的概念的东西,新人自己也看了很多Java方面的书和项目所需要的一些相关文档后,我决定了解一下他的开发水平,于是就出了个题目,包含几个小的功能,打印出来(做证据)给他,让他试着做一下。大约用了三天时间,期间要求我给过若干提示(都是技术方面的),告诉我完成了。演示程序,我发现有的功能根本不是我想要的,有的功能根本达不到我的要求(还好我有证据)。我试着操作一下,Bug百出。然后我又看原创 2007-07-24 10:18:00 · 1720 阅读 · 0 评论 -
StatCVS 对使用CVS的项目进行深入统计的开源工具
这个工具很好,主要是分析cvs的log得出统计结果,以HTML页面形式提供,非常直观。具体的用法不用多说了,自己去http://statcvs.sourceforge.net下载然后试试就知道了。想说的,是几个很有意思的统计结果,比较能说明问题的。以我的项目做为代表,可能其它项目不是这样。1.一周的开发效率。周二周四开发效率最高,周三其次,周一和周五开发效率最低。似乎合情合理啊。说明项目的开发原创 2007-04-05 10:42:00 · 2693 阅读 · 1 评论 -
极限编程(XP)的重构与设计模式
在刚刚开始将自己的代码转化成软件的时候,我们都缺乏经验。代码臃肿、BUG百出、难以维护、难以扩展。随着时间的流逝,我们成为了更好的软件设计者。我们从自己的错误中学习,能够编写出更加灵活的软件。我们学会从用户的角度考虑问题,将软件做的更加完善、坚固;我们学会从设计中抽象出来一些对象,学会写注释和相关文档,使得软件有更好的可维护性;设计软件时,我们学会考虑当前和将来的需求,这样我们可以从容的处理一些变原创 2005-05-01 15:30:00 · 3495 阅读 · 2 评论 -
项目管理规范 RUP管理实施中角色的划分
角色是抽象的职责定义,它定义的是所执行的一组活动和所拥有的一组文档与模型。角色通常由一个人或作为团队相互协作的多个人来实现。项目团队成员通常要履行许多不同的角色职能;就象一个人可以担任许多职务,一个人也可以担任许多不同的角色。角色并不代表个人,而是说明个人在业务中应该如何表现以及他们应该承担的责任。 分析员角色集 分析员角色集用于组织主要从事需求获取和研究的各种角色。• 业务流程分析员• 业务设计原创 2005-04-21 15:56:00 · 2102 阅读 · 0 评论 -
注意新技术的风险是否会超过获得成功的几率
突然之间有了这样一个感触:新技术的运用也许会有很多好处,比如可以提高自己的团队成员的技术水平,可以大大的提高团队的生产力等等;运用新技术也并不见得就一定会带来更大的实惠,比如学习和交流需要成本。可以说,新技术的运用,很可能带来的风险会超过获得成功的几率。我目前所在的项目组在做GIS相关的开发,本来已经有一些程序,但是为了适应时代的要求,这些程序要在MapXtreme2004平台基础原创 2005-07-10 13:55:00 · 2377 阅读 · 0 评论 -
使用Microsoft Web Application Stress进行压力测试
Web Application Stress 是Microsoft免费提供的一款软件专门对WEB服务进行压力测试用的工具软件。我经常会需要测试一些服务器的运行状态和响应时间什么的,比如在网络中新加了一台防火墙做好设置以后,它的改动对于网络中应用层的服务影响怎么样,客户会不会明显感觉到IE 打开站点的速度明显减慢等等,尤其是在防火墙工作在透明代理模式下加上了一些对于应用服务的内容限制以后,设置前原创 2005-06-28 14:02:00 · 3200 阅读 · 0 评论 -
DOTNET反编译工具Lutz Roeder's Reflector
鼎鼎大名的Reflector工具可以反编译C#、VB.NET和Delphi编写的程序。此工具出来好久了,Lutz Roeder一直在对这个工具进行升级完善,目前版本是Version 4.1.25.0。用此工具试着打开了自己曾经用C#编写的一个程序,反编译以后,C#代码几乎一点不差的展现在了眼前。看来对于.NET编写的程序,没有太多的秘密可言了。对于我这样在学习阶段的人,应该说是好事情吧原创 2005-01-11 14:43:00 · 3290 阅读 · 0 评论 -
做了几天关于地理信息系统的软件测试工作
又忙活了几天。每天早早的就起床,到软件测试所在地,然后坐在那里,忍受着不习惯的闷热。很是痛苦。还好,总算结束了。 测试的对象是一个交通地理信息系统。整个系统采用B/S结构,客户端基于浏览器进行各种操作。系统基于SuperMap二次开发,采用ASP脚本语言。 现在不少的B/S结构的地理信息系统都采用ASP语言进行二次开发,采用ASP.NET还很少很少。ASP脚本语言采原创 2004-12-30 19:40:00 · 2230 阅读 · 0 评论 -
可以内置到.NET环境中的单元测试工具TestDriven.NET
TestDriven.NET是一个VS.NET单元测试工具,它能够与VS.NET 2003环境完全集成。它应该算是在NUnit的基础上编写的一个工具,测试代码的语法与NUnit相同。官方网站为http://www.testdriven.net/ 。下面是其官方介绍: TestDriven.NET makes it easy to run unit tests with a原创 2005-01-05 11:57:00 · 2311 阅读 · 0 评论 -
应用NUnit软件进行.NET程序测试初步
在.NET环境中进行单元测试,有许多软件可以完成,NUnit就是其中之一。这是一款与JUnit齐名的,同属于xUnit家族的单元测试软件。在http://www.NUnit.org可以免费得到这款软件。NUnit 应用程序提供了一个用于编写单元测试的框架,以及一个运行这些测试和查看结果的图形界面。 这里说的是一个初次使用NUnit会遇到的问题。 安装完NUnit原创 2004-12-16 20:57:00 · 1861 阅读 · 0 评论 -
《使用 Microsoft .NET 的企业解决方案模式》读书笔记3
第3章 Web表示模式没有一个设计策略能够适合所有情形。这是因为软件设计存在如下竞争性需求:消除过多的冗余和过度的复杂性。Model-View-Controller 是一个用于将用户界面逻辑与业务逻辑分离开来的基础设计模式。如果在系统的不同视图内复制公共逻辑,则需要集中此逻辑才能减少代码重复量。删除重复的代码是改进系统的总体可维护性的关键。数据检索最好也集中在一个位置进行处理。一个好的原创 2004-11-27 18:44:00 · 2066 阅读 · 0 评论 -
《使用 Microsoft .NET 的企业解决方案模式》读书笔记2
第2章 组织模式面向对象编程的基本元素是类。但是,如果抛开与构成解决方案的其他类的关系不谈,单个类就没有太大意义。每种模式通常都描述一组类,并强调它们之间的关系和交互。因此,模式将大量类转换成更易于管理的模式集合。怎样才能了解所有模式的含义呢?项目之间的关系是问题的关键。体系结构模式表示软件系统的基础结构组织架构。它提供一组预定义的子系统、指定它们的职责并包括用来组织它们之间关系的规则原创 2004-11-27 18:41:00 · 1832 阅读 · 0 评论 -
《使用 Microsoft .NET 的企业解决方案模式》读书笔记1
前言关于设计模式的三个理念:使程序灵活;在不断演变的环境(如企业)中,复杂性越大,成本越高;企业中的不同人员为了不同的目的而使用不同的模式。第1章 企业解决方案的构建模式正常工作的复杂系统总是从以前正常工作的简单系统演变而来的。模式中描述的基础机制虽然概念上很简单,但实际上,它们的实现却相当复杂。所编写的模式提供了一种记录简单且经过证实的机制的有效方法。原创 2004-11-27 18:39:00 · 1861 阅读 · 0 评论