关于软件质量和软件测试的一点点看法 (转)
关于软件质量和软件测试的一点点看法 (转)[@more@]软件测试和软件质量的概念是分不开的。测试是手段,质量是目的。关于软件质量,学软件工程的时候曾考虑过这个问题,但想得不深。现在正好可以借把想法变成文字的过程理一理自己的思路,谈谈我的看法。在学校读书的时候,我有很多与我不同专业的朋友,建筑的,桥梁的,机械的,等等。他们有一个与我不同的共同之处,都常背一块大木板,机械制图是他们很重要的课程。我和我的同学们则学习程序设计,学习计算机的结构和原理。我们往往抱怨操作系统编译原理太复杂,可是看看那老大一张纸上铅笔
使用IPicture接口读取和显示BMP,GIF,JPG,ICO,EMF,WMF图像 (转)
使用IPicture接口读取和显示BMP,GIF,JPG,ICO,EMF,WMF图像 (转)[@more@]问题的起源 很久以来,我都被一个问题困扰。关于程序中显示图像的问题,我在网络上搜索了很长时间,找到了无数的解决方案,比如分析文件格式,直接读取文件的;用控件的(ImgEdit);以及不知道内部实现方法的库(ImageLoad)。而我找到的方法大都不容易使用,特别是那些直接按位读取图像的。很多时候我不得不为每种文件格式写一段代码。 目前我的解决方案 在使用了多种图形显示方案之后,我决定使用微软提供的IPicture接口来显示图像。由于MFC的CPictureHolder类是这个
明盒开发 (转)
明盒开发 (转)[@more@]明盒开发未经允许,严禁转载本栏目内容 本文经许可转载自软件工程专家网www.21cmm.com, 未经CSDN许可,请勿随便转载,谢谢合作ASP?page=/bbs/index.asp?Type=D"> (一) 明盒结构 明盒定义了实现转换状态盒功能的过程。明盒和相应状态盒的输入、响应集、外部的行为和状态都是同样的。明盒过程通常围绕着外部服务来组织,其用户(人、硬件或其他的明盒)能调用这些服务。例如:一个数据管理明盒可以提供加入、删除和检索用户数据的服务。 明盒设计的焦点是算法的开发。执行由case语句组成的明盒过程
盒式结构开发 (转)
盒式结构开发 (转)[@more@]盒式结构开发未经允许,严禁转载本栏目内容 本文经许可转载自软件工程专家网www.21cmm.com, 未经CSDN许可,请勿随便转载,谢谢合作ASP?page=/bbs/index.asp?Type=D"> "净室软件规范"描述了对系统或程序的两个功能性的观点。第一个基于外部行为(黑盒),第二个基于状态机(状态盒)。以下将描述第三个观点--用于实现状态盒并展示特定的外部行为的过程或算法(明盒)。 自顶向下的循环过程必须做出许多设计决定。通过此过程,一个复杂系统的最高层规范转变为在计算机上执行的代码体。盒式结构方
基于序列的规范过程 (转)
基于序列的规范过程 (转)[@more@]基于序列的规范过程未经允许,严禁转载本栏目内容 本文经许可转载自软件工程专家网www.21cmm.com, 未经CSDN许可,请勿随便转载,谢谢合作ASP?page=/bbs/index.asp?Type=D"> 规范制定有很多方法。基于顺序的规范是指逐步构造出完备、一致和正确的黑盒和状态盒规范的过程。本节讨论的就是这种方法。 在基于序列的规范过程中,按严格顺序系统地举出所有可能的激励(历史激励)序列,如按长度0、1、2……排列。因为每个序列映射至其正确的响应,所以可通过应用归约规则辨识等价序列,当完备和
净室规范和设计的盒子结构(2) (转)
净室规范和设计的盒子结构(2) (转)[@more@]净室规范和设计的盒子结构(2)未经允许,严禁转载本栏目内容 本文经许可转载自软件工程专家网www.21cmm.com, 未经CSDN许可,请勿随便转载,谢谢合作ASP?page=/bbs/index.asp?Type=D"> 4、盒子结构层次 正如前面所述,盒子结构层次随着逐步求精和验证而不断进化。这是一种使用的分层结构而不是一个部件的分层结构,也就是说,一个盒子的每次使用都在分层结构中占有不同的位置,并且通过盒子的顺序和并发使用定义了所有处理过程。当然,使用的分层结构并不意味代码在执行使用的任何
实践中的增量开发 (转)
实践中的增量开发 (转)[@more@]实践中的增量开发未经允许,严禁转载本栏目内容 本文经许可转载自软件工程专家网www.21cmm.com, 未经CSDN许可,请勿随便转载,谢谢合作ASP?page=/bbs/index.asp?Type=D"> 增量式软件开发的应用开发如图1所示。 图1中增量式开发计划将项目划分为四个增量部分,在一些增量中重用已存在的组件,在增量1中创建了顶层体系结构,定义了三个低层子系统,其中一个已实现。实现的子系统含一个可重用组件,子系统中使用的桩(stubs)将在后续增量中实现。桩不仅仅是占位符,它包含一个接口规范和函数
实践中的增量计划 (转)
实践中的增量计划 (转)[@more@]实践中的增量计划未经允许,严禁转载本栏目内容 本文经许可转载自软件工程专家网www.21cmm.com, 未经CSDN许可,请勿随便转载,谢谢合作ASP?page=/bbs/index.asp?Type=D"> 随着系统新的增量在原增量已实现了的函数的基础上的精心设计,整体目标和约束上的增量式开发将逐步成长为系统。这就是说,一个增量中新的函数将插入预先定义结构的早期增量,而且应满足需求一致的子规范。这种函数分配过程是引用透明性在增量式开发计划中的实际应用。因此,对增量函数的逻辑分配是基于函数间的相互关系,本
增量式开发的理论基础 (转)
增量式开发的理论基础 (转)[@more@]增量式开发的理论基础未经允许,严禁转载本栏目内容 本文经许可转载自软件工程专家网www.21cmm.com, 未经CSDN许可,请勿随便转载,谢谢合作ASP?page=/bbs/index.asp?Type=D"> 净室过程中实践的增量式开发技术是基于引用透明性原理的。引用透明性意味着一个表达式所关心的惟一的事情是它的值,能用其值相等的子表达式代替。引用透明性暗示,一个实体的有关低层细节被抽象了,而不是忽略了高层描述的特定系统。因此,当置身于较大的上下文中时,高层描述包含的每一件事必须明白表达实体。引用
增量式开发的优点 (转)
增量式开发的优点 (转)[@more@]增量式开发的优点未经允许,严禁转载本栏目内容 本文经许可转载自软件工程专家网www.21cmm.com, 未经CSDN许可,请勿随便转载,谢谢合作ASP?page=/bbs/index.asp?Type=D"> 统计质量控制之下的增量式开发(incremental development)是软件项目建立和保持管理控制的净室途径。增量式开发是20世纪70年代早期由Mills提出的。但直到80年代末,当Mills和他的助手们的净室论文和专项报告开始出现的时候才获得认同。Fred Brooks描述了增量式开发方法的深刻影响,针对该方法在软件实践方面的作用,给出了影
净室与其他软件工程实践的关系 (转)
净室与其他软件工程实践的关系 (转)[@more@]净室与其他软件工程实践的关系未经允许,严禁转载本栏目内容 本文经许可转载自软件工程专家网www.21cmm.com, 未经CSDN许可,请勿随便转载,谢谢合作ASP?page=/bbs/index.asp?Type=D"> 净室过程对许多当前使用中成功的软件实践提供了强有力的支持。 一、面向对象 净室过程为面向对象开发提供了可管理性和技术严密性(Ett和Trammell 1995)。对象从本质上来说是封装了数据和一系列服务的状态机器。一个净室组件用黑盒视图(一个对象的外部行为)、状态盒视图(一个对象的封装数
净室技术 (转)
净室技术 (转)[@more@]净室技术 未经允许,严禁转载本栏目内容 本文经许可转载自软件工程专家网www.21cmm.com, 未经CSDN许可,请勿随便转载,谢谢合作 ASP?page=/bbs/index.asp?Type=D"> 净室软件工程可用如下三个关键技术来刻画:置于统计过程控制之下的增量开发,基于函数的规范、设计和验证以及统计测试和软件认证。这些技术可分开使用,也可一起使用。采用这些技术可改进技术生产过程。 在统计过程控制下的增量开发 增量开发基于产品开发中受控迭代的工程原理------控制迭代。增量开发不是把整个开发
净室软件工程及发展 (转)
净室软件工程及发展 (转)[@more@]净室软件工程及发展 未经允许,严禁转载本栏目内容 本文经许可转载自软件工程专家网www.21cmm.com, 未经CSDN许可,请勿随便转载,谢谢合作 ASP?page=/bbs/index.asp?Type=D"> 净室是一种以合理的成本开发高质量软件的基于理论、面向工作组的方法。净室是基于理论的,因为坚实的理论基础是任何工程学科所不可缺少的。再好的管理也代替不了理论基础。净室是面向工作组的,因为软件是由人开发出来的,并且理论必须简化到实际应用才能引导人的创造力和协作精神。净室是针对经济实用
净室基础 (转)
净室基础 (转)[@more@]净室基础未经允许,严禁转载本栏目内容 本文经许可转载自软件工程专家网www.21cmm.com, 未经CSDN许可,请勿随便转载,谢谢合作 ASP?page=/bbs/index.asp?Type=D"> 净室理论基础来自于数学。Harlan Mills敏锐地看出计算机程序可以执行一个数学函数,从而为软件开发确立了合适的科学基础。在他的早期论文“结构化程序设计的数学基础”、“计算机程序设计的新数学”和“如何正确编写和认识程序”中,解释了软件开发基于数学的函数理论。Mills在软件测试的统计特性方面同样敏锐地确立了相应的
净室过程 (转)
净室过程 (转)[@more@]净室过程未经允许,严禁转载本栏目内容 本文经许可转载自软件工程专家网www.21cmm.com, 未经CSDN许可,请勿随便转载,谢谢合作ASP?page=/bbs/index.asp?Type=D"> 净室参考模型(CRM)由软件工程所(Linger和Trammell 1996)提出,它为净室项目运行定义了一套完整的过程和工作产品。下图显示了CRM由14个分别对应于软件管理、规范、开发和认证的独立过程组成: 1、管理过程包括项目计划、项目管理、性能改进以及工程变更。 2、规范过程包括需求分析、功能规范、使用规范、使用规范、结构规范和增量
groove系统的术语 (转)
groove系统的术语 (转)[@more@]术语 词汇表 这部分提供了在本文档中使用的大部分专业术语。 共享空间(shared space) 共享空间是Groove用户(成员)进行交互的专用“虚拟场所”。一个共享空间包含一个以上的工具并且按照每个交互的当前状态来维护数据。共享空间的例子比如:“the Groove development team shared space”和“the Smith family shared space”。共享空间的持久版本是一个文件数据库,每个成员的机器上都装有同样拷贝的数据库,每一份拷贝是即时更新的,所以它们都能说明共享空间的当前状况。这些文件包含这个共享空间所有
对于C+的RTTI机制的初步思考 (转)
对于C+的RTTI机制的初步思考 (转)[@more@] 首先,很不好意思的说明,我还正在看C++ language programming,但还没有看到关于RTTI的章节。另外,我也很少使用C++ RTTI的特性。所以对RTTI的理解仅限于自己的摸索和思考。如果不正确,请大家指正。 RTTI特性是C++语言加入较晚的特性之一。和其他语言(比如Java)相比,C++的RTTI能力算是非常差的。这与C++的设计要求应该有重要的关系:性能。没错,性能的因素使得C++的很多地方不能称的上完美,但是也正因为如此,在高级通用语言里面,只有C能和C++的性能可以相提并论。 1:ty
(译)win32asm教程-6 (转)
(译)win32asm教程-6 (转)[@more@] 7.0条件跳转XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" /> 在Code部分,你可以看到像这样的标签: .code mov eax, edxsub eax, ecxcmp eax, 2jz loc1xor eax, eaxjmp loc2loc1:xor eax, eaxinc eaxloc2: (xor eax, eax意为:eax=0) 让我们来看看这些代码: mov eax, edx;把edx放入eax中 sub eax, ecx;eax-ecx cmp eax, 2 这有一条新指令:cmp。Cmp意为compare(比较)。它能比较两个值(寄存器,内存,直接数值)并设置Z-flag(零标志)。零标
(译)win32asm教程-5 (转)
(译)win32asm教程-5 (转)[@more@] 6.0 文件结构XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" /> 汇编源文件被分成了几个部分。这些部分是code,data,未初始化data,constants,resource和relocations,资源部分是资源文件创建的,后面会有更多的讨论。Relocation部分对我们不重要(它包含了使PE-loader可以在内存的不同的位置装载入程序的信息)。重要的部分是code,data,未初始化data和constants。可能你已经猜到,code部分包含了代码。Data装有数据,并有读写权限。整个data部分被包括
Effective STL:Item2 当心与容器无关(container-independent)的代码这个错觉 (转)
Effective STL:Item2 当心与容器无关(container-independent)的代码这个错觉 (转)[@more@]Effective STLItem2 当心与容器无关(container-independent)的代码这个错觉 STL是基于泛型思想的,数组泛化为container,并根据它们所包含的对象类型而进行参数化。函数泛化为algorithms,并根据它们所使用的iterators类型而进行参数化。指针泛化为iterators,并根据它们所指向的对象类型而进行参数化。 但这只是个开始。单个container类型泛化为序列容器(sequence container)和关联容器(associative container),相似的conta