UE模型.docx

上传人:b****7 文档编号:10269754 上传时间:2023-02-09 格式:DOCX 页数:15 大小:132.50KB
下载 相关 举报
UE模型.docx_第1页
第1页 / 共15页
UE模型.docx_第2页
第2页 / 共15页
UE模型.docx_第3页
第3页 / 共15页
UE模型.docx_第4页
第4页 / 共15页
UE模型.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

UE模型.docx

《UE模型.docx》由会员分享,可在线阅读,更多相关《UE模型.docx(15页珍藏版)》请在冰豆网上搜索。

UE模型.docx

UE模型

Useease框架白皮书

广州优亿信息科技有限公司

第一章概述

计算机软件可以说是人类创造的最复杂的一种产品,软件开发是一个非常复杂的过程。

有一个问题一直是软件开发人员的心病,软件是工具,开发的是客户业务的应用,但客户不了解软件,开发者不了解业务,如何有效沟通是软件质量的重大障碍。

把开发者变成客户业务的专家是个没有办法的办法,让软件企业付出的代价也是昂贵的。

瀑布模型、极限编程、敏捷开发是有代表性的开发模式,在对开发者、客户、最终的产品的关注上的变化,体现了软件开发管理者在管理模式上的变化。

1瀑布模型-极限编程-敏捷开发

1.1瀑布模型

瀑布模型(WaterfallModel)是Royce在1970年提出的,他把大型软件开发分为:

分析与编程,像工厂流水线一样把软件开发过程分成各种工序,并且每个工序可以根据软件产品的规模、参与人员的多少进一步细分成更细的工序。

该模型非常符合软件工程学的分层设计思路,所以成为软件开发企业使用最多的开发模型。

图1.1瀑布模型

瀑布模型的特点:

1、强调文档,前一个阶段的输出就是下一个阶段的输入,文档是个阶段衔接的唯一信息。

所以很多开发人员好象是在开发文档,而不是开发软件,因为要到开发的后期,才可以看到软件的“模样”。

2、没有迭代与反馈。

瀑布模型对反馈没有涉及,所以对变化的客户需求非常不容易适应,瀑布就意味着没有回头路。

3、管理人员喜欢瀑布模型的原因是把文档理解为开发的速度,可以方便地界定不同阶段的里程碑。

瀑布模型的用户很多,也有一些反对的意见:

1、瀑布模型不适合客户需求不断变化的软件开发,尤其是客户的业务管理的软件,业务随着市场变化,而软件初期的设计可能已经大大变化,而后期的需求更改成本是开始的10倍基数。

在ERP盛行的软件市场里,一方面市场带动需求变化,另一方面初期客户对需求描述不清楚,都为瀑布模型的使用团队带来困难。

2、瀑布模型是一种软件文档的开发,把开发者变成流水线上的机器,大量重复性的工作让编程人员提不起兴趣,工作很枯燥,没有激情,编程成了一种没有创意的机械劳动,这让一向以高科技为标志的高级程序人员大为恼火。

在这种背景下,极限编程(eXtremeProgramming,XP)带来了新鲜的空气。

1.2极限编程

极限编程诞生于一种加强开发者与用户的沟通需求,让客户全面参与软件的开发设计,保证变化的需求及时得到修正。

要让客户能方便地与开发人员沟通,一定要用客户理解的语言,先测试再编码就是先给客户软件的外部轮廓,客户使用的功能展现,让客户感觉到未来软件的样子,先测试再编码与瀑布模型显然是背道而驰的。

同时,极限编程注重用户反馈与让客户加入开发是一致的,让客户参与就是随时反馈软件是否符合客户的要求。

有了反馈,开发子过程变短,迭代也就很自然出现了,快速迭代,小版本发布都让开发过程变成更多的自反馈过程,有些像更加细化的快速原型法。

当然极限编程还加入了很多激励开发人员的“措施”,如结队编程、40小时工作等。

极限编程是一种开发管理模式,它强调的重点是:

1、角色定位:

极限编程把客户非常明确地加入到开发的团队中,并参与日常开发与沟通会议。

客户是软件的最终使用者,使用是否合意一定以客户的意见为准。

不仅让客户参与设计讨论,而且让客户负责编写拥护故事(UserStory),也就是功能需求,包括软件要实现的功能以及完成功能的业务操作过程。

用户在软件开发过程中的责任被提到与开发者同样的重要程度。

2、敏捷开发:

敏捷开发追求合作与响应变化。

迭代就是缩短版本的发布周期,缩短到周、日,完成一个小的功能模块,可以快速测试、并及时展现给客户,以便及时反馈。

小版本加快了客户沟通反馈的频率,功能简单,在设计、文挡环节大大简化。

极限编程中文挡不再重要的原因就是因为每个版本功能简单,不需要复杂的设计过程。

极限编程追求设计简单,实现客户要求即可,无需为扩展考虑太多,因为客户的新需求随时可以添加。

3、追求价值:

极限编程把软件开发变成自我与管理的挑战,追求沟通、简单、反馈、勇气,体现开发团队的人员价值,激发参与者的情绪,最大限度地调动开发者的积极性,情绪高涨,认真投入,开发的软件质量就大大提高。

结对编程就是激发队员才智的一种方式。

极限编程把软件开发过程重新定义为聆听、测试、编码、设计的迭代循环过程,确立了测试->编码->重构(设计)的软件开发管理思路。

极限编程的12个实践是极限编程者总结的实践经典,是体现极限编程管理的原则,对极限编程具有指导性的意义,但并非一定要完全遵守12个实践,主要看它给软件过程管理带来的价值。

1、小版本。

为了高度迭代,与客户展现开发的进展,小版本发布是一个可交流的好办法,客户可以针对性提出反馈。

但小版本把模块缩得很小,会影响软件的整体思路连贯,所以小版本也需要总体合理的规划。

2、规划游戏。

就是客户需求,以客户故事的形式,由客户负责编写。

极限编程不讲求统一的客户需求收集,也不是由开发人员整理,而是采取让客户编写,开发人员进行分析,设定优先级别,并进行技术实现。

当然游戏规则可进行多次,每次迭代完毕后再行修改。

客户故事是开发人员与客户沟通的焦点,也是版本设计的依据,所以其管理一定是有效的、沟通顺畅的。

3、现场客户。

极限编程要求客户参与开发工作,客户需求就是客户负责编写的,所以要求客户在开发现场一起工作,并为每次迭代提供反馈。

4、隐喻。

隐喻是让项目参与人员都必须对一些抽象的概念理解一致,也就是我们常说的行业术语,因为业务本身的术语开发人员不熟悉,软件开发的术语客户不理解,因此开始要先明确双方使用的隐喻,避免歧异。

5、简单设计。

极限编程体现跟踪客户的需求变化,既然需求是变化的,所以对于目前的需求就不必过多地考虑扩展性的开发,讲求简单设计,实现目前需求即可。

简单设计的本身也为短期迭代提供了方便,若开发者考虑“通用”因素较多,增加了软件的复杂度,开发的迭代周期就会加长。

简单设计包括四方面含义:

1、通过测试。

2、避免重复代码。

3、明确表达每步编码的目的,代码可读性强。

4、尽可能少的对象类和方法。

由于采用简单设计,所以极限编程没有复杂的设计文档要求。

6、重构。

重构是极限编程先测试后编码的必然需求,为了整体软件可以先进行测试,对于一些软件要开发的模块先简单模拟,让编译通过,到达测试的目的。

然后再对模块具体“优化”,所以重构包括模块代码的优化与具体代码的开发。

重构是使用了“物理学”的一个概念,是在不影响物体外部特性的前提下,重新优化其内部的机构。

这里的外部特性就是保证测试的通过。

7、测试驱动开发。

极限编程是以测试开始的,为了可以展示客户需求的实现,测试程序优先设计,测试是从客户实用的角度出发,客户实际使用的软件界面着想,测试是客户需求的直接表现,是客户对软件过程的理解。

测试驱动开发,也就是客户的需求驱动软件的开发。

8、持续集成。

集成的理解就是提交软件的展现,由于采用测试驱动开发、小版本的方式,所以不断集成(整体测试)是与客户沟通的依据,也是让客户提出反馈意见的参照。

持续集成也是完成阶段开发任务的标志。

9、结对编程。

这是极限编程最有争议的实践。

就是两个程序员合用一台计算机编程,一个编码,一个检查,增加专人审计是为了提供软件编码的质量。

两个人的角色经常变换,保持开发者的工作热情。

这种编程方式对培养新人或开发难度较大的软件都有非常好的效果。

10、代码共有。

在极限编程里没有严格文档管理,代码为开发团队共有,这样有利于开发人员的流动管理,因为所有的人都熟悉所有的编码。

11、编码标准。

编码是开发团队里每个人的工作,又没有详细的文档,代码的可读性是很重要的,所以规定统一的标准和习惯是必要的,有些象编码人员的隐喻。

12、每周40小时工作。

极限编程认为编程是愉快的工作,不轻易加班,今天的工作今天做,小版本的设计也为了单位时间可以完成的工作安排。

1.3敏捷开发

极限编程的思想体现了适应客户需求的快速变化,激发开发者的热情,也是目前敏捷开发思维的重要支持者。

2001年,17名编程大师分别代表极限编程、Scrum(“棒球”团队开发模式)、特征驱动开发、动态系统开发方法、自适应软件开发、水晶方法、实用编程等开发流派,发表“敏捷软件开发”宣言。

敏捷软件开发是一个开发软件的管理新模式,用来替代以文件驱动开发的瀑布开发模式。

敏捷方式也称轻量级开发方法。

敏捷软件开发宣言内容:

●个体和交互胜过过程和工具

●可以工作的软件胜过面面具到的文档

●可户合作胜过合同谈判

●响应变化胜过遵循计划

敏捷开发集成了新型开发模式的共同特点,它重点强调:

1、以人为本,注重编程中人的自我特长发挥。

2、强调软件开发的产品是软件,而不是文档。

文档是为软件开发服务的,而不是开发的主体。

3、客户与开发者的关系是协作,不是合约。

开发者不是客户业务的“专家”,要适应客户的需求,是要客户合作来阐述实际的需求细节,而不是为了开发软件,把开发人员变成客户业务的专家,这是传统开发模式或行业软件开发企业的最大面临问题。

4、设计周密是为了最终软件的质量,但不表明设计比实现更重要,要适应客户需求的不断变化,设计也要不断跟进,所以设计不能是“闭门造车”、“自我良好”,能不断根据环境的变化,修改自己的设计,指导开发的方向是敏捷开发的目标。

敏捷开发避免了传统瀑布方式的弊端,主要是吸收了各种新型开发模式的“动态”特性,关注点从文档到开发者,管理方式也从工厂的流水线到团队的自我放松式的组织。

总结敏捷开发与瀑布模式的不同,主要是下面几个“敏捷”的关注点:

●迭代。

软件的功能是客户的需求,界面的操作是客户的“感觉”,对迭代的强调是缩短了软件版本的周期

●客户参与。

以人为本,客户是软件的使用者,是业务理解的专家,没有客户的参与,开发者很难理解客户的真实需求

●小版本。

快速功能的展现,看似简单,但对于复杂的客户需求,合理地分割与总体上的统一,要很好地二者兼顾是不容易的。

敏捷就是“快”,快才可以适应目前社会的快节奏;要快就要发挥个人的个性思维多一些,个性思维的增多,虽然通过结队编程、代码共有、团队替补等方式减少个人对软件的影响力,但也会造成软件开发继承性的下降,因此敏捷开发是一个新的思路,但不是软件开发的终极选择。

对于长时间、人数众多的大型软件应用的开发,文档的管理与衔接作用还是不可替代的。

如何把敏捷的开发思路与传统的“流水线工厂式”管理有机地结合,是软件开发组织者面临的新课题。

2Useease框架结构及特点

如上分析,随着现代软件产业的发展,软件开发必须能够快速的满足客户的需求。

在传统的瀑布模型中,需求变化非常困难,它强调在系统开发初期就要求客户有明确的需求,瀑布过程一旦启动后,需求就很难变更。

在软件开发实际过程中,由于客户并不懂得计算机软件技术,往往在系统开发的初期客户并不能提出明确需求,而在系统初步交付时,客户却会有大量的变更需求提出,因此由于需求的变更导致了很多软件项目的失败。

针对这种情况,近年来极限编程、敏捷开发等新的软件开发模式逐步流行。

这些新的模式都欢迎需求的变化,采用一种迭代的方式进行软件的开发。

广州优亿信息科技有限公司把握了这种趋势,针对中、小型B/S架构应用的快速开发,提出了Useease框架。

Useease框架建立了一整套B/S架构应用的开发模式,并提供多种辅助工具、自动生成代码、基础类库为快速开发、需求变更提供支撑。

Useease框架结构如图1.2所示。

图1.2Useease框架结构图

Useease框架具有以下的显著特点:

●自动代码生成:

各种实体类代码(数据库实体、资源实体、关系实体……)由Useease源代码生成器自动生成,开发时设计人员只需要编写实体定义XML文件(或者使用源代码生成器编辑)就可以完成实体层的编码,同时Useease源代码生成器还提供了自动生成数据库脚本、定制JSON序列化的代码生成

●欢迎变更:

通过实体层的自动代码生成,对实体层的任何变更,只需要修改实体定义文件并重新生成代码即可

●便于扩展:

自动生成的代码可以方便扩充,根据需要加入方法、属性

●快速开发:

开发人员只需要专注于应用系统的业务逻辑和实现用户界面,其他模块均由框架提供支持

●方便、灵活的数据库访问:

实体层(数据库访问层)代码自动生成,业务逻辑层使用统一的接口调用数据库访问层,开发过程中不需要编写任何SQL语句,数据库访问与具体数据库无关,无论使用何种数据库(SQLSever、Oracle、Access……),数据库访问代码完全一致。

所有的数据库访问之后均返回强类型的实体对象,方便上层代码的调用

●三层结构:

Useease框架中应用程序完全按照表示层、业务逻辑层、实体层(数据访问层)进行分层。

实体层提供了对系统中实体类的封装,包括数据库实体、资源实体、关系实体等多种实体,实体层基本上通过自动代码生成。

所有的数据库表在系统中都可以看作一个数据库实体,数据库实体封装了对数据库访问的所有方法,并且在系统中全部转换为强类型类的操作,完全屏蔽底层数据库的细节。

业务逻辑层主要由开发者根据业务逻辑在实体层基础之上进行编码。

表示层实现用户界面,如果使用Web方式,则可以在UseeaseJavaScript基础上进行开发,实现“纯”Ajax的Web应用

●“纯”Ajax应用:

表示层与业务逻辑完全分离,业务逻辑层通过WebService向表示层提供服务,表示层通过访问WebService来获取业务数据

●丰富的系统组件:

框架中提供多种可用于应用系统的组件,包括人员和组织架构、权限管理、消息处理、日志、操作记录等基础模块,同时也提供了Excel操作、Ajax模式的文件上传组件(支持进度报告、支持无大小限制文件上传)等多个组件

●……

3Useease框架组成部分概述

从图1.2中可以看到,Useease框架由多个部分组成,包括源代码生成器(Useease-SrcGen)、基础类库(数据访问类库:

Useease-DB、操作类库:

Useease-Operable)、实体代码(数据库实体、资源实体、关系实体)、序列化定义以及基于JQuery的Useease页面层类库。

3.1Useease源代码生成器

Useease通过代码自动生成来实现一种“配置”式的开发和不做“重复”工作的理念。

使用Useease框架,开发人员只需要根据业务系统的需求和系统分析,使用源代码生成器设计实体类属性或直接编写实体定义XML文件然后生成源代码即可。

Useease框架中包括数据库实体、资源实体、关系实体、消息实体、积分实体、可访问实体等多种实体。

在数据库实体定义完成后,除了生成实体类代码之外,还可以:

●生成数据库脚本用于创建数据库

●生成实体默认的JSON序列化代码以及必要的Web.Config声明代码

生成的数据库实体代码提供了一种与底层数据库无关的查询方法,也就是说无论实际采用什么数据库(SQLServer2005、SQLServer2000、Oracle、MySql……),在数据库实体中查询方法是一致的。

3.2基础类库

Useease框架提供了基础类库,包括封装常用方法的类库、数据库访问类库、日志类库、人事管理类库等。

Useease框架的类库主要封装在多个dll中,各dll之间的依赖关系如图1.3所示。

图1.3Useease框架中类库dll的依赖关系

注意:

项目中需要使用Useease类库,那么项目必须引用相应的dll,同时引用该dll依赖的dll。

●常用方法类库:

Useease基础类库提供一些常用的方法和数据结构,详情参见通用类库文档

●数据访问类库:

Useease基础提供了数据库访问的方法,提供了通用的查询方法和查询所需要的数据结构。

源代码代码生成器生成的数据库实体代码调用基础类库的方法进行数据库查询,它们共同配合为上层代码提供了一种与具体数据库无关的通用查询方法

●操作、资源类库:

基础类库封装了关系实体、资源实体、积分实体、消息实体……等数据结构和常用方法。

通过关系实体、资源实体以及操作的定义,Useease框架实现了灵活、强大的粒度达到数据库记录级别的权限控制

●日志和操作记录类库:

基础类库提供了标准、通用的日志和操作记录模块供开发者调用,开发者可以不用编写任何代码在系统中实现详尽的日志功能

●人员和组织架构类库:

基础类库提供了通用的、灵活的人事和组织架构管理的模块。

使用该模块,开发者可以轻松实现一个包含权限控制、多种级别组织架构、角色管理等的人员组织模块

●消息机制:

基础类库提供实体类消息传递的机制,使开发者可以充分利用实体间的消息进行通信

3.3页面层JavaScript类库

Useease框架以JQuery框架作为基础,通过扩展JavaScript基础类和JQuery为Web页面层的快速开发提供了丰富的手段。

扩展主要包括以下几个方面:

●对String类型的扩展:

Useease框架为JavaScript的String类型提供了多个常用的方法扩展,如Trim、isInteger、isDateTime、isDate、startsWith、endsWith、left、right、format等方法。

其中,较为有特色的是页面JavaScript类库为字符串提供了FormatO方法,它可以使用一个对象格式化字输出符串

●类似C#,UseeaseJavaScript类库提供了StringBuilder类型用于快速、高效处理字符串连接操作

●对Date、Object对象的扩展:

提供了format方法

●基于JQuery,页面层JavaScript类库提供了通用的调用WebService的封装

●同样基于JQuery,页面层JavaScript类库为页面提供了丰富的常用组件的封装,如显示浮动框ueFloat、日期选择ueDatePicker、模式对话框MessageBox、显示重复数据ueGrid、ueRepeater等等,同时页面层还可以自由选用互联网大量的基于JQuery的组件

4如何使用Useease框架

4.1准备工作

使用Useease框架需要的软件环境:

●WindowsXP或者Windows2003操作系统

●安装.netframework2.0

●安装Asp.NetAjax

●建议开发环境visualstudio2005

●安装IIS(如果开发Web应用)

●安装相应的数据库(如果是开发数据库的应用)

注意:

目前的Useease框架基于.netframework2.0,在最近的版本规划中,Useease框架将基于.netframework3.5进行开发。

注意:

Useease框架仅使用Asp.NetAjax提供的System.Web.Extensions的扩展类库,而并不使用任何它提供的控件、组件等。

在最近的版本规划中,由于.netframework3.5已经集成Asp.NetAjax,所以将不再需要安装Asp.NetAjax。

注意:

Useease框架对基于Web的数据库应用提供了强大的支持手段,但是Useease框架并不限于基于Web的开发,也不限于数据库的应用。

4.2使用Useease框架的基本步骤

使用Useease框架的基本流程如图1.4所示

图1.4使用Useease框架开发的基本流程

在系统分析和设计之后,根据设计结果,开发人员可以着手编写实体定义文件,如数据库实体定义、资源实体定义等等。

实体定义文件均为XML文件,开发人员可以使用任何文本编辑器编辑,也可以使用Useease源代码生成器提供的编辑界面直接定义实体。

在完成实体定义文件后,开发人员可以使用Useease源代码生成器生成类代码,如果是数据库实体,那么还可以使用Useease源代码生成器生成数据库脚本和全景视图脚本并用于创建数据库。

5成功案例

第二章Useease.DB

1数据库访问

2自动代码生成、XML定义

第三章Useease.Operable

1操作者

2权限机制

3接口定义

4自动代码生成

5消息机制

第四章Useease.Community

1基本概念

2提供的接口和方法

第五章Useease其他

1Useease.ExcelHelper

2Useease.FileUpload

第六章表示层

1Jquery

2UseeaseJavascript扩展

3UseeaseJquery扩展

4Useease“纯”AjaxB/S架构应用系统开发

第七章UseeaseWeb开发框架

1解决方案基本结构

2实现细节

第八章完整实例

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1