- 博客(42)
- 收藏
- 关注
原创 测试用例的设计
测试用例这种东西对于刚入行的人来说是一种诱惑,初入测试的人急于掌握这门学问,所以一开始就会问测试用例怎么写,问的同时或许还包含了一些期望。其实测试用例就是一个测试矩阵,任何人没有必要注重形式问题,如果你现在或者未来的公司有套非常完善的文档管理体系,那么你可以参考标准模版,如果没有你们大可跟我一样使用下面的格式:--------------------------------------------
2005-12-03 00:09:00 2206
原创 怎样成为优秀的软件模型设计者?
我们期待自己成为一个优秀的软件模型设计者,但是,要怎样做,又从哪里开始呢? 将下列原则应用到你的软件工程中,你会获得立杆见影的成果。 1. 人远比技术重要 你开发软件是为了供别人使用,没有人使用的软件只是没有意义的数据的集合而已。许多在软件方面很有成就的行家在他们事业的初期却表现平平,因为他们那时侯将主要精力都集中在技术上。显然,构件(components),EJB(Enterpris
2005-09-19 23:53:00 866
原创 获取用户需求的十大沟通技巧
成功的软件产品是建立在成功的需求基础之上的,而高质量的需求来源于用户与开发人员之间有效的沟通与合作。当用户有一个问题可以用计算机系统来解决,而开发人员开始帮助用户解决这个问题,沟通就开始了。 需求获取可能是软件开发中最困难、最关键、最易出错及最需要沟通交流的活动。对需求的获取往往有错误的认识:用户知道需求是什么,我们所要做的就是和他们交谈从他们那里得到需求,只要问用户系统的目标特征,什么是要完
2005-09-18 23:26:00 1175
原创 测试类型的理解和实际操作
按一般统计,在完整的软件项目中测试成本占整个开发成本的35%,而开发部分只占30%多一点;另外的35%是系统架构,也就是平常说的需求分析,系统分析,项目规划这些工作。如果说需求分析部分的成本由于往往以来来去去的修改体现出它的价值的话,那么测试,尽管天天说成本比开发的部分还要多;但实际上呢?通常如果是IMS类型的项目,都是十到二十分之一的时间用于测试,更多的时侯,干脆让用户来测试,美其名若系统稳定期
2005-09-09 17:51:00 3212 2
原创 软件测试从零开始
本文面向软件测试新手,从测试前的准备工作、测试需求收集、测试用例设计、测试用例执行、测试结果分析几个方面给出建议和方法。鉴于国内的软件开发、测试不规范的现状,本文为软件测试新手提供了若干个软件测试的关注点。 【关键词】软件测试、测试用例、测试需求、测试结果分析 引言 几年前,从学校毕业后,第一份工作就是软件测试。那时候,国内的软件企业大多对软件测试还没有什么概念,书店里除了郑人杰编写的
2005-08-24 14:50:00 1354
原创 本地化测试错误特征分析与测试方法
软件本地化测试是项系统性任务,讲究团队协作精神。软件测试工程师负责测试、发现、报告软件错误。软件错误修复工程师的工作是及时正确修复处理这些软件错误。为了便于软件错误修复工程师能够迅速重现报告的错误,寻找错误产生的原因,然后及时修复错误,需要测试工程师正确完整地报告发现的错误。另外,不同类型的软件错误,又分别由来自不同公司的软件错误修复工程师进行修复。例如,软件功能错误和软件国际化错误只能由源语言
2005-08-24 14:44:00 1219
原创 如何制定软件项目测试计划
摘要 随着测试走向规范化管理,测试计划成为测试经理必须完成的重要任务之一,本文根据实践经验结合理论,探讨如何制定软件项目测试计划。 关键字 测试计划 变更 正文 软件测试计划作为软件项目计划的子计划,在项目启动初期是必须规划的。在越来越多公司的软件开发中,软件质量日益受到重视,测试过程也从一个相对独立的步骤越来越紧密嵌套在软件整个生命周期中,这样,如何规划整个项目周期的测试工作;如何将测试工
2005-08-24 14:43:00 1149
原创 CMM知识晋级
CMM2◆ 特征 (1)进行较为现实的承诺,可按以前在同类项目上的成功经验建立 的必要过程准则来确保再一次的成功。 (2)主要是逐个项目地建立基本过程管理条例来加强过程能力。 (3)建立了基本的项目管理过程来跟踪成本、进度和功能。 (4)管理工作主要跟踪软件经费支出、进度及功能。识别在承诺方 面出现的问题。 (5)采用基线(BASELINE)来标志进展、控制完整性。 (6)定义了软件项
2005-08-24 13:49:00 1067
原创 CMM不能变成噱头
在国内软件企业赶超美印思潮的引导下,CMM的旗帜效应越来越明显。近日,东软大连国际软件园通过CMM5级认证的消息成为软件行业中的一个热点。在CMM最高级别认证的光环的笼罩下,东软能一下子获得飞跃吗?东软总裁刘积仁表示,只有当CMM成为东软员工的一种行为习惯,成为东软内部沟通一种语言,成为东软的一种文化时,我们才能真正理解CMM的精神,才能真正贯彻好CMM的过程。 首先,我们自然不能否认东软在软件
2005-08-24 11:24:00 1106
原创 软件质量,CMM不是惟一
CMM―软件能力成熟度,如今,已经成为了软件质量保障的代名词。其实,只要有一个科学合理的软件管理流程,不实施CMM也一样能够生产高质量的软件产品。但是,这并不代表CMM就不应该推广,只是,我们应该提倡因企业而异,根据企业自身实际情况选择保障软件质量的方式。 软件能力成熟度模型是软件组织管理的一种方法和工具。我国软件业以何策略应对国内国际市场和用户的最终需求是一个很值得研究的问题。我们特别提出要
2005-08-22 22:25:00 950
原创 CMM和过程改进的“妙语” 集锦
Watts Humphrey 在其著作《Managing Software Process》的卷首引用了下面两条谚语: "If you dont know where youre going, any road will do." "If you dont know where you are, a map wont help." "如果你不知道你要向何处去,你可以选择任何一条道路。" "
2005-08-22 22:24:00 1156
原创 如何使过程改进发挥作用
越来越多的软件开发组织开始努力赶上CMM这趟马车,但是其中大多数最后又还是从这架马车上摔了下去。如果希望从你的软件过程改进活动得到零回报,请遵守以下秘诀:1. 花费大量的金钱和时间用于过程评估、咨询服务和各种形形色色的CMM培训班;2. 按照咨询顾问们开给你的软件文档模板,制定一大堆你想得到想不到的过程规范,然后告诉程序员们必须一个不漏地马上开始实施;3. 接受你的高层领导的指示:“照着CMM说的
2005-08-22 21:59:00 1056
原创 "游泳和CMM" "swimming & CMM"
我有个很简单的例子,就是游泳:一级:一群人没有经过训练,也不知道有没有经验,下水之后乱扑腾,有的人浮起来,有的人沉下去了。这就是一级的无序状态,结果是不可知的二级:大家都在游泳池或者小池塘里下过几次水,基本上在这样的条件下不会出事了。但是动作乱七八糟,有狗刨有说不出名字的动作。也就是二级的能够重复以前的成功经验三级:经过研究,确定了几种标准泳姿,知道自由泳最快,蛙泳最省力等等。这就是三级,有了标准
2005-08-21 23:10:00 835
原创 CMM实施中容易被忽视的方面
面对中国的现实,我们不得不承认,中国的软件工程水平和软件生产力水平还是处在较低水平。这里一方面有素质问题,中国软件科研和教育水平的滞后,对于国际上先进的软件工程的实践和理论的研究和传播的不足,导致了软件从业者素质和观念的落后。而另外一方面则是管理者对建立组织级别的软件开发管理框架缺乏理论和实践经验,更缺乏必要的紧迫感。 近2~3年来,软件能力成熟度模型在中国得到了广泛的重视,也进行了一些实践,但是
2005-08-21 23:06:00 1345
原创 EPG和QA是CMMI实施中两个并驾齐驱的轮子
EPG和QA是CMMI实施中两个并驾齐驱的轮子Jacob 2005-04我们知道,CMMI是一个模型。什么是模型呢?模型就是对现实世界的抽象,模型都是错误的。CMMI也一样,它只是站在一个系统的高度对系统特征(最佳实践)的描述。而在这些特征的抽取和组合过程中,就要基于一定的假设。其中,很重要的一个假设是“一个系统所生产的软件产品的质量归根结底是由它所采用的过程的质量所决定的。”说得简单一些,就是
2005-08-20 19:07:00 2707
原创 CMM与CMMI对比
CMMI全称是Capability Maturity Model Integration, 即软件能力成熟度模型集成模型,是由美国国防部与卡内基-梅隆大学和美国国防工业协会共同开发和研制的。CMMI是一套融合多学科的、可扩充的产品集合, 其研制的初步动机是为了利用两个或多个单一学科的模型实现一个组织的集成化过程改进。CMMI可以解决现有不同CMM模型的重复性、复杂性,并减少由此引 起的成本、缩短改
2005-07-27 15:16:00 828
原创 开发J2EE应用应遵循的几点原则
J2EE,作为开发mission-critical的企业级应用的一整套规范的整合平台,规范多、内容广,从而给开发J2EE应用带来了很多“麻烦”。比如,为实现内容的RDBMS存储,我们可能的方法有JDBC、Entity Beans、JDO、O/R Mapping工具(TopLink、Hibernate)、XML-DBMS、JAXB等方法(其中一些方法不是J2EE规范所包含的)。因此,为实现J2EE各
2005-07-27 13:38:00 756
原创 O/R Mapping实际开发经验之谈
一、概述 O/R Mapping全称Object Relational Mapping,就是对象关系映射。把对表直接进行的操作,变成对持久化类的属性和方法的直接操作。 很多的项目是基于数据库的开发,程序中要大量进行表的增、删、改、查询的工作。 例如下面一段C#代码,从数据库CustomerDemo取表Customer数据: string ConnectionString
2005-07-27 13:00:00 1144
原创 面向对象的关系数据库设计
一、概念的区分 有些人把面向对象的数据库设计(即数据库模式)思想与面向对象数据库管理系统(OODBMS) 理论混为一谈。其实前者是数据库用户定义数据库模式的思路,后者是数据库管理程序的思路。用户使用面向对象方法学可以定义任何一种DBMS数据库,即网络型、层次型、关系型、面向对象型均可,甚至文件系统设计也照样可以遵循面向对象的思路。 面向对象的思路或称规范可以用于系统分析、系统设计、程序设计,也
2005-07-27 11:43:00 1263
原创 可重用性的克服
重用是一种神话,这似乎正在日渐成为编程人员的一种共识。然而,重用可能难以实现,因为传统面向对象编程方法在可重用性方面存在一些不足。本技巧说明了组成支持重用的一种不同方法的三个步骤。 第一步:将功能移出类实例方法由于类继承机制缺乏精确性,因此对于代码重用来说它并不是一种最理想的机制。也就是说,如果您要重用某个类的单个方法,就必须继承该类的其他方法以及数据成员。这种累赘不必要地将要重用此方法的代码复杂
2005-07-27 11:38:00 1118
原创 面向对象的基础结构设计
一个游戏引擎是一个巨大而复杂的软件系统。面向对象的软件工程和类库设计方法能够给这样的大型的软件系统提供很好的支持。这个附录将提供面向对象结构设计的基本问题的一个回顾。另外,在游戏引擎设计中涉及到的一些面向对象设计的问题将会着重谈到,其中包括命名规则、名域、运行时期的类型识别、运行时期的类型识别,单独或者多重继承、模板(参数化的数据类型,泛型?)公共对象、引用计数、流处理、开始和关闭机制。A.
2005-07-27 11:36:00 1379 1
原创 道法自然-面向对象实践指南
面向对象设计的基本原则:1.只实现你真正需要的东西,不要去实现你认为需要的东西2.开闭原则:一个模块对扩展应该是开放的,对修改应是关闭的3.完全替换原则:派生类应该能完全替换掉基类4.以来倒置原则:以来于抽象,而不要以来于具象5.非循环以来原则:包和包之间不能有循环以来关系6.不要重复自己,任何代码都只出现一次7.保持简化的设计8.为人写代码,而不是为机器写代码一般的面向对象开发过程1.面向对象
2005-07-27 11:32:00 3407 1
原创 OOD 启思录 61条面向对象设计的经验原则
你不必严格遵守这些原则,违背它们也不会被处以宗教刑罚。但你应当把这些原则看成警铃,若违背了其中的一条,那么警铃就会响起 ----- Arthur J.Riel (1)所有数据都应该隐藏在所在的类的内部。 (2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者。 (3)尽量减少类的协议中的消息。 (4)实现所有类都理解的最基本公有接口[例如,拷贝操作(深拷贝和浅拷贝)、相等性判断
2005-07-27 11:29:00 824
原创 面向对象的设计与实现的一些基础但重要的概念
在面向对象的设计和实现里,我们必须花时间和精力搞清楚这些概念:抽象,封装,继承和多态,以及面向对象的设计原则,否则就不会真正理解面向对象的灵魂,也不会感受到面向对象设计思想给我们带来的好处。 在学习几年oo和几次实践后,我决心对这些最基本的东西进行一次总结。并以这几个问题作为分析的实例。 1.接口与类的区别 2.为什么要优先考虑合成聚合复用 3.多态会给我们带来那些方便 4
2005-07-27 11:21:00 839
原创 可复用面向对象软件的基础--图例
图例:1).实例化 下图中的虚箭头线表示一个类实例化另一个类的对象,箭头指向被实例化的对象的类。2).继承 我们以竖线和三角表示子类关系,如下图所示。 3). 抽象类 3). 抽象类 3). 抽象类 抽象类的类名以斜体表示,以与具体类相区别。抽象操作也用斜体表示。图中可以包括实现操作的伪代码,如果这样,则代码将出现在带有折角的框中,并用虚线将该折角框与代码所实现的操作相连,图示如下。
2005-07-27 10:55:00 720
原创 有效和正确定义hashCode()和equals()
每个Java对象都有 hashCode() 和 equals() 方法。许多类忽略(Override)这些方法的缺省实施,以在对象实例之间提供更深层次的语义可比性。在 Java理念和实践这一部分,Java开发人员Brian Goetz向您介绍在创建Java类以有效和准确定义 hashCode() 和 equals() 时应遵循的规则和指南。虽然Java语言不直接支持关联数组 -- 可以使用任何对
2005-07-27 10:51:00 713
原创 可复用面向对象软件的基础(1)--图例
图例:1).实例化 下图中的虚箭头线表示一个类实例化另一个类的对象,箭头指向被实例化的对象的类。2).继承 我们以竖线和三角表示子类关系,如下图所示。 3). 抽象类 3). 抽象类 3). 抽象类 抽象类的类名以斜体表示,以与具体类相区别。抽象操作也用斜体表示。图中可以包括实现操作的伪代码,如果这样,则代码将出现在带有折角的框中,并用虚线将该折角框与代码所实现的操作相连,图示如下。
2005-07-26 18:46:00 826
原创 设计模式-OOD的设计原则(4)-"接口隔离原则"
接口隔离原则(ISP):使用多个专门的接口比使用单一的总接口要好.也就是说,一个类对另外一个类的依赖性应当是建立在最小的接口上的. 这里的"接口"往往有两种不同的含义:一种是指一个类型所具有的方法特征的集合,仅仅是一种逻辑上的抽象;另外一种是指某种语言具体的"接口"定义,有严格的定义和结构.比如Java语言里面的Interface结构.对于这两种不同的含义,ISP的表达方式以及含义都有所
2005-07-26 18:40:00 790
原创 设计模式-OOD的设计原则(5)-"合成聚合复用原则"
合成(Composition)和聚合(Aggregation)都是关联(Association)的特殊种类。聚合表示整体和部分的关系,表示“拥有”;合成则是一种更强的“拥有”,部分和整体的生命周期一样。合成的新的对象完全支配其组成部分,包括它们的创建和湮灭等。一个合成关系的成分对象是不能与另一个合成关系共享的。 换句话说,合成是值的聚合(Aggregation by Value),而一般
2005-07-26 18:40:00 1592
原创 设计模式-OOD的设计原则(3)-"依赖倒转原则"
"开-闭"原则是我们OOD的目标,达到这一目标的主要机制就是"依赖倒转原则".这个原则的内容是:要依赖于抽象,不要依赖于具体. 对于抽象层次来说,它是一个系统的本质的概括,是系统的商务逻辑和宏观的,战略性的决定,是必然性的体现;具体的层次则是与实现有关的算法和逻辑,一些战术性的决定,带有相当大的偶然性.传统的过程性系统设计办法倾向于使高层次的模块依赖于低层次的模块;抽象层次依赖于具体层次
2005-07-26 18:39:00 1319
原创 设计模式-OOD的设计原则(2)-"里氏代换原则"
从上一篇的"开-闭"原则中可以看出,面向对象设计的重要原则是创建抽象化,并且从抽象化导出具体化.这个导出要使用继承关系和一个原则:里氏代换原则(Liskov Substitution Principle, LSP). 那么什么是里氏代换原则呢?有个严格的表述,绕口,不好记.还是比较白话的这个好记.说的是:一个软件实体如果使用的是一个基类的话,那么一定适用于其子类,而且它察觉不出基类对象和
2005-07-26 18:38:00 1482
原创 设计模式-OOD的设计原则(1)-"开-闭原则"
这些OOD原则的一个基石就是"开-闭原则"(Open-Closed Principle OCP).这个原则最早是由Bertrand Meyer提出,英文的原文是:Software entities should be open for extension,but closed for modification.意思是说,一个软件实体应当对扩展开放,对修改关闭.也就是说,我们在设计一个模块的时候,应
2005-07-26 18:37:00 2297
原创 J2EE平台架构上开发CRM的技术过程控制
第一章 概述 本文阐述了关于在J2EE平台上开发CRM应用系统的各方面内容,包括高辉本人对于CRM系统的理解,利用J2EE平台开发过程中要注意的一些技术深层的问题,开发分析中要注意的原则等等。这些都是作者在实际的工作中通过经验与教训所得来的。在工作中,我深刻的体会到系统分析员的重要性,尤其是对于以组件为主要开发对象的工程项目,系统分析员的技术与业务素质对于整个项目的成功与否起着非常关键性的作用
2005-07-26 18:28:00 1271
原创 Java Swing中的键盘事件处理
在java Swing编程过程中,经常需要处理键盘事件,例如处理快捷键等。这里就介绍如何定义键盘事件,以及如何处理这些事件。 在jdk1.2中,分别针对Jcomponent和Text类的对象定制了不同的处理键盘事件的方法:在Jcomponent中,定义了registerKeyboardAction方法,使用这个方法来将需要处理的键盘事件以及处理事件的行为绑定在一起。Text类中具有keymap对
2005-07-26 18:24:00 1317
原创 JavaMail快速入门
这篇文章介绍创建基于Java的email应用程序入门知识。假如你想创建你自己的email客户端应用程序来代替Microsoft Outlook,或者创建一个基于Web的email系统来跟Hotmail叫板,那么你可以从这里开始。从JavaMail的一个不同角度出发,该文给出了一个谈话email客户端应用程序。 在JavaMail中,你可以找到API以及其实现部分,从而用它开发功能全面的email
2005-07-26 18:21:00 769
原创 用JAVA实现线程等待提示框
Java语言从其诞生到现在不过短短五年时间,却已经成为全球最热门的语言,Java程序员正成为IT业其它程序员中薪金最高的职员。这一切都应归功于Java良好的特性:简单、面向对象、分布式、平台无关性、可移植性、支持多线程等等。本文将用Java的多线程特性来实现线程等待提示框。 1 问题的提出 在Java应用程序编程中,有时需要在GUI(图形化用户界面)中处理一些占用系统资源较多,耗费时间较长的事
2005-07-26 18:12:00 1599
原创 爪哇语言简单工厂创立性模式介绍
研究和使用创立性模式的必要性 面向对象的设计的目的之一,就是把责任进行划分,以分派给不同的对象。我们推荐这种划分责任的作法, 是因为它和封装(Encapsulation)和分派(Delegation)的精神是相符合的。创立性模式把对象的创立过程封装起来,使得创立实例的责任与使用实例的责任分割开, 并由专门的模块分管实例的创立,而系统在宏观上不再依赖于对象创立过程的细节。 所有面向对象的语言都
2005-07-26 15:30:00 941
原创 爪哇语言工厂方法创立性模式介绍
正如同笔者在一节里介绍的,工厂模式有简单工厂模式,工厂方法模式和抽象工厂模式几种形态。简单工厂模式已经在前面作过介绍。在简单工厂模式中,一个工厂类处于对产品类实例化调用的中心位置上,它决定那一个产品类应当被实例化, 如同一个交通警察站在来往的车辆流中,决定放行那一个方向的车辆向那一个方向流动一样。 而本节要讨论的工厂方法模式是简单工厂模式的进一步抽象化和推广。它比简单工厂模式聪明的地方在于,
2005-07-26 15:21:00 1559
原创 爪哇语言抽象工厂创立性模式介绍
工厂模式有简单工厂模式,工厂方法模式和抽象工厂模式几种形态。其中简单工厂模式和工厂方法模式已经在前面作过介绍。在这里,我们来介绍抽象工厂模式。 抽象工厂模式是所有形态的工厂模式中最为抽象和最具广泛性的一种形态。 抽象工厂模式的定义 抽象工厂模式是工厂方法模式的进一步扩广化和抽象化。我们给出抽象工厂模式的类图定义如下。 图1. 抽象工厂模式的类图定义 从上图可以看出,简单
2005-07-26 15:16:00 1237 1
原创 爪哇语言结构性模式之变压器模式介绍
什么是结构性模式 结构性模式描述类和对象怎样结合在一起成为较大的结构。 结构性模式描述两种不同的东西:类与类的实例。根据它们所描述的东西的不同, 结构性模式可以分为类结构模式和实例结构模式两种。 类结构模式使用继承(inheritance)来把类,接口等组合在一起,形成更大的结构。 当一个类从父类继承,并实现某接口时,这个新的类就把父类的结构和接口的结构结合起来。 类结构模式是静态的。一个类
2005-07-26 15:10:00 1330
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人