Welcome 微信登录

首页 / 软件开发 / 数据结构与算法

简介Tapestry 5中的DI

简介Tapestry 5中的DI

简介Tapestry 5中的DI2013-07-20 关东升 DI是Dependency Injection缩写,我们翻译为“依赖注入”。简单的说,两个对象A->B(或者组件)依赖关系的建立,最好不要在编程时候确定下来,即不要通过new的方式确定依赖关系,这种方式会使系统失去可扩展性、可复用性等特点。当业务需求变化的时候,A不再依赖B而是依赖C(A->C)时候,new方式建立依赖关系的时候就不得不修改A,这是我们在系统设计中最不希望...
简述.NET企业级系统架构设计

简述.NET企业级系统架构设计

简述.NET企业级系统架构设计2013-07-20 关东升 .NET设计层面上的体系架构,如1.1图是从设计层面上划分的.NET体系架构。图 1.1软件设计的原则是为了提高软件系统的可复用性和可扩展性,我们采用的手段是为应用系统划分层次,这是一种逻辑上的划分不是物理上的划分,也就是这些层可以是在一台电脑上也当然可以分布到在多台电脑上。这些层之间是松耦合的,层的内部是高内聚的。因此,降低耦合是软件设计的目标,能够设计出低耦合的系统,就意味着我们的系统具有可复...
STRUTS 2单元测试实例

STRUTS 2单元测试实例

STRUTS 2单元测试实例2013-07-20 关东升 当程序员编写完成程序的时候,他(她)如果保证程序的正确性呢?当然要进行测试,程序员一般要编写一个程序测试目标程序的正确性。这样的测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。这种基于程序员的测试叫做单元测试。单元测试原理单元测试的原理其实很简单。就是某一条件下测试期待结果和实际结果是否一致。例如我们编写如程序清单2.1所示Java类...
UML图的视图分类

UML图的视图分类

UML图的视图分类2013-07-20 关东升 UML图(diagram)可以分成三种视图(view):功能需求视图,着重从用户的角度描述系统的功能需求。包括:用例图(Use case diagram)静态结构视图,着重描述系统中对象、属性、操作和关系等静态结构。包括:类图(Class Diagram)对象图(Object Diagram)组件图(Component Diagram)部署图(Deployment Diagram)动态行为视图,着重描述对象之...
UML与OOAD的关系

UML与OOAD的关系

UML与OOAD的关系2013-07-20 关东升 OOAD就是面向对象的分析与设计,OOAD是一种方法学。面向对象的方法按照人类的自然思维的方式,面对客观世界建立软件模型。充分体现了对复杂系统进行分解、抽象、模块化等思想。OOA依照用户所理解的真实世界中的对象和概念,发现和分析对象的内部构成和外部关系,建立准确而简洁的软件系统的对象模型。OOD是根据已建立的系统对象模型,运用面向对象技术,进行软件设计。OOAD与传统设计分析(面向过程的)相比优点:在实现...
简述测试在敏捷项目中的重要性

简述测试在敏捷项目中的重要性

简述测试在敏捷项目中的重要性2013-08-01 infoq 陈菲本文是一位测试专家对该文做出的回应。就如同已经灭亡的皇室(国王已经消逝了,但是皇后却将永存),我们的软件开发正传递着类似的呼声:“测试已死,我们再也不需要测试人员了!”但随之你会发现,哎呀,客户不满意,最后又回到“测试万岁”,但这次是更好,更完整,更有效的测试。就如同历史上众多的复辟王朝(我最喜欢皇后伊丽莎白1世)一样,测试将强有力地帮助重新定...
BDD中的常用工具

BDD中的常用工具

BDD中的常用工具2013-08-01什么是BDD?BDD在wikipedia上定义如下:BDD是第二代的、由外及内的、基于拉(pull)的、多方利益相关者的(stakeholder)、多种可扩展的、高自动化的敏捷方法。它描述了一个交互循环,可以具有带有良好定义的输出(即工作中交付的结果):已测试过的软件。简单一点地说,BDD,即行为驱动开发,是通过与产品经理沟通需求,定义出满足这些需求的软件需具备的行为(Behaviour),再以这些行为为驱动(Driv...
BPM流程管理软件的创新功能

BPM流程管理软件的创新功能

BPM流程管理软件的创新功能2013-08-01业务流程管理软件既是一种载体,也是一种应运而生的工具。业务流程管理(BPM)软件是大部分企业的重要工具,有助于企业进行集成和自动化梳理内部流程。随着技术的不断创新不断进步,BPM的功能也随之不断完善。BPM出现的新功能是否为企业进行流程管理带来变化,当中是否存在发展瓶颈。下面介绍BPM软件的五大创新:第一,智能BPM。由于业务压力不断增大,企业不能循规蹈矩度日,要有所发展必须有所创新。社会化商务、移动应用和云...
UML用例图中的泛化、扩展和包含关系

UML用例图中的泛化、扩展和包含关系

UML用例图中的泛化、扩展和包含关系2013-08-01在画用例图的时候,理清用例之间的关系是重点。用例的关系有泛化(generalization)、扩展(extend)和包含(include)。其中include和extend最易混淆。下面我们结合实例彻底理清三者的关系。基本概念用例图(Use Case Diagram):用例图显示谁是相关的用户,用户希望系统提供什么服务(用例),以及用例之间的关系图。用例图主要的作用是获取需求、指导测试。用例图的4个基...
下层可扩展性解决方案:聚合集合

下层可扩展性解决方案:聚合集合

下层可扩展性解决方案:聚合集合2013-08-01 infoq 丁雪丰没有解决方案的问题有什么好的?在《负载增长时悄然袭来的42个怪兽问题》一文中,我们讨论了一些问题;在这篇文章(早些时候有过一篇文章,我会重新组织一下内容)里,我们将讨论我所谓的聚合策略(aggregation strategies)。请牢记,这些都是下层架构方面的一些建议,比如如何组织代码组件的结构,它们该如何交互。本文不会讨论大规模集群,但是会讨论你的应用程序在内部—&md...
图形数据维护工具项目架构设计总结

图形数据维护工具项目架构设计总结

图形数据维护工具项目架构设计总结2013-08-011、背景近期负责一个GIS矢量化项目,工程中涉及图形数据、GIS业务数据的关联存储和管理。为弥补图形矢量化软件在附属属性管理方面的局限性,采用两套数据库系统进行图-数关联存储的方案:图形矢量化软件存储图形数据,文件数据库存储业务数据。图形数据维护工具,是矢量化实施项目中核心支撑系统之外数据检查、校正工具,主要完成图-数对应关系的建立、维护,业务数据合法性的基础检查和纠正等。2、需求概述在信息管理方面,整个...
应用性能管理成熟度模型

应用性能管理成熟度模型

应用性能管理成熟度模型2013-08-01 infoq 赵震一在企业中证明APM在企业IT机构中工作过的人都会发现,一些好的工具很频繁地遭遇废弃。有时是因为工具本身没有满足原本的预期或需求;有时是因为该工具的倡导者离开了机构;又或者仅仅是因为在供应商被收购或产品被废弃之后,技术因此而变得过时。对于应用性能管理(APM)方面的工具来说也会面临这样的问题。对于该问题,并没有终极的解决方案。但是,如果你的工作正好是采购像APM这样的工具的话,这里有一些可以供你参...
设计模式的C++实现之抽象工厂模式

设计模式的C++实现之抽象工厂模式

设计模式的C++实现之抽象工厂模式2013-08-02解决的问题:在系统里a,b,c三个组件必须同时使用,但是a的同类 a1和a2这三种方法有共同特点但是是互斥的,b,b1,b2和c,c1,c2和a/a1/a2是一样的。就比如说创建在不同操作系统的视窗环境下都能够运行的系统时,Unix下面有unixButton和 unixText,Win下面也有winButton和winText,unixButton和unixText必须在一个系统unix里面用,而win...
设计模式的C++实现之单例模式

设计模式的C++实现之单例模式

设计模式的C++实现之单例模式2013-08-02单例模式,顾名思义,就是只能由一个实例,那么我们就必须保证该类不能被复制。该类不能被公开的创造。那么对于C++来说,他的构造函数,拷贝构造函数和他的赋值函数都不能被公开调用。但对于该私有的构造函数的构造时机上来说也可以分两种情况来构造:只有当需要改类的时候去构造(即为懒汉模式)在程序开始之前我就先构造好,你到时候直接用就可(即为饿汉模式)那么我分别来说说这两种模式:懒汉模式,静态局部变量只会被初始化一次即第...
设计模式的C++实现之工厂方法模式

设计模式的C++实现之工厂方法模式

设计模式的C++实现之工厂方法模式2013-08-02工厂方法模式不同于简单工厂模式的地方在于工厂方法模式把对象的创建过程放到里子类里。这样工厂父对象和产品父对象一样,可以是抽象类或者接口,只定义相应的规范或操作,不涉及具体的创建或实现细节。其类图如下:实例代码为:#pragma onceclass IProduct{public:IProduct(void);virtual ~IProduct(void);};#pragma once#include &...
设计模式的C++实现之简单工厂模式

设计模式的C++实现之简单工厂模式

设计模式的C++实现之简单工厂模式2013-08-02简单工厂模式按照设计模式类型分的话是属于创建型模式,他是工厂模式中最简单的一种,他不属于GoF 23中设计模式之一,但是是简单实用的。他是有一个工厂对象来决定创建哪一种对象的实例。实现比较简单,这里我只贴出类图和调用方法:调用方法:IProduct * simpleFactory::Create(std::string className){if( className == "Ipad&quo...
设计模式的C++实现之建造者模式

设计模式的C++实现之建造者模式

设计模式的C++实现之建造者模式2013-08-02解决的问题:我创建的这个对象比较复杂,且该对象里面的成员函数用不同的实现来表示不同的实例,换句话说就是同样的对象构建过程可以有不同的表示。比如我那天去吃过桥米线,他们有不同的套餐,套餐里包含的种类是一样的,都有一碗米线,一份凉菜,一杯饮料。但是不同的套餐里这3样又都不是全部一样的。此时我们就可以用建造者模式。类图结构:1.建造者(Builder)角色:给出一个抽象接口,以规范产品对象的各个组成成分的建造。...
设计模式的C++实现之桥模式

设计模式的C++实现之桥模式

设计模式的C++实现之桥模式2013-08-02桥模式,其作用就是让抽象与实现相分离,让两者都能够各自变化。举例来说吧,画图,我可以画矩形,圆,三角形等等,在哪里画呢?我可以在pdf上画,也可以在doc上面画。画什么图和在哪里画都是可以独立变化的,此种情况就比较适合用桥模式。就是说设计中有超过一维的变化我们就可以用桥模式。如果只有一维在变化,那么我们用继承就可以圆满的解决问题。我的图形定义:#pragma once#include<vector>#i...
国防工业中的敏捷

国防工业中的敏捷

国防工业中的敏捷2013-08-03 infoq 陈菲每当我听到其他软件负责人抱怨他们的“类瀑布”开发流程,我总问他们为什么不尝试些更敏捷的方法呢。而最常见的回答就是他们不知道如何开始。事实上,如果一本书通篇都在以敏捷开发为主题,也不会使敏捷更容易。向项目管理团队解释你想放弃已知的一切,然后去试那些完全不一样的东西确实需要一整本来描述,而这将需要些功夫来销售。这类改变往往让管理团队畏惧。可事实上,敏捷开发是非常简单,而且是可高度定制...
解析精益产品开发:看板开发方法

解析精益产品开发:看板开发方法

解析精益产品开发:看板开发方法2013-08-03 infoq 何勉看板(Kanban)开发方法是近年来最热门的敏捷和精益开发方法。越来越多的案例表明,它能够改善协作、优化管理,显著提高交付速度、质量和灵活性。看板开发方法的规则简单,但其有效实施依赖于对原理的理解、对原则的坚持和实践的应变。本文将整体介绍看板的原理、原则和基本实践。1. 看板的原始含义看板源自精益制造。尽管具体实践不同,看板开发方法和精益制造中的看板原理是一致的。从精益制造出发,可以帮助我...
<< 151 152 153 154 155 156 157 158 159 160 >>