posts - 78, comments - 34, trackbacks - 0, articles - 1
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

     摘要: 今日的三大主要内容:Spring中的数据库操作事务、Spring整合hibernate、Spring整合Struts1.X,最来再来一个SSH整合。 数据库操作、数据库事务管理、hibernate、Sturts,这些大家都已经十分熟悉了。所以将他们与Spring整合使课程内容比较简单。Spring的特性是什么?不就是IOC的DI和AOP吗!简单在大脑里回顾一下,SSH整合正是使用这些特性。 一...  阅读全文

posted @ 2010-01-28 17:23 長城 阅读(645) | 评论 (0)编辑 收藏

     摘要: 这知识越学越简单了。其实现在学习的Spring和之前学习的Hibernate等框架等,他们的实现都是我们之前学习的Java基础和JavaWeb基础。再加之做了几个总结性的练习,巩固了基础。所以现在学习起来就比较容易了。 今日的课程内容为两部分:Spring中的AOP面向切面编程和Spring对JDBC的支持。   一、Spring-AOP AOP面向切面编程(Aspect-Orie...  阅读全文

posted @ 2010-01-26 22:49 長城 阅读(363) | 评论 (0)编辑 收藏

     摘要: “你用过什么框架?我用过Srping,但不要说成我用过春!”,哈哈。刚开课,佟佟就把大家斗乐了,非常开心。佟佟这称号是同学私底下叫的,比较亲切。他无论在哪个班上课,都可以听到那个班的欢声笑语。 大名鼎鼎的Spring大家都听过,spring是一个开源框架,Spring为简化企业级应用开发而生。使用Spring可以使简单的JavaBean实现以前只有EJB才能实现的功能。Spring是一个DI(依...  阅读全文

posted @ 2010-01-24 23:23 長城 阅读(1007) | 评论 (1)编辑 收藏

今日学习版本管理软件——SVN,我在以前的工作中正是使用SVN做为版本管理的。使团队合作更加轻松、方便、快捷。

 

SVN在当今软件项目开发中占的比重较大,在外国的软件行业中几乎全部使用SVN进行版本管理的。在国内的大中型企业也在使用,可能存在部分小型公司没有使用。

 

在当今开源的世界中SVN的应用屡见不鲜,今日的课程就是学习如何假设SVNCVS服务器,还有SVNCVS的客户端使用。Eclipse的经典更不用说,她真是一个和谐的大家庭!

 

SVNCVS的配置在互联网,或其官网“http://www.subversion.org.cn/ ”已经非常全面细至了。

 

我们平时自己写个项目时,都将代码备份到自己的本地其他逻辑空间中,定期也将代码发到自己的邮箱中备份。但Google为我们提供了免费的代码托管“http://code.google.com/intl/zh-CN/projecthosting/ ”使用起来十分方便!

 

我十分喜欢Google

posted @ 2010-01-23 21:45 長城 阅读(354) | 评论 (0)编辑 收藏

     摘要: EJB3的功能很是强大,但中小企业很少使用它做开发,一般应用SSH足以应付。JAVAEE是做什么的?她是分布式企业级应用的规范,那EJB就是为实现这样的应用而开发的。 什么是分布式应用?听着名字很大。比如咱们的在线支付系统,淘宝、china-pub和amazon等都支持支付宝在线支付。难道它们分别都要将支付宝模块放在自己的服务器上?完全没必要。支付宝模块单独放在一个服务器上,其他服务器使用(调用...  阅读全文

posted @ 2010-01-22 11:40 長城 阅读(339) | 评论 (0)编辑 收藏

     摘要: 今天内容为两个版块JPA与EJB,从学习hibernate、UML到JPA。他们都涉及到一个极为重要的细节——类与类、接口与接口或类与接口之间的四类关联关系。今日上午到下午3点左右内容为JPA中处理这四类关系。我想我应该将他们系统的做一下总结,这项任务就留着后天休息来完成吧! 近三天的课程内容除了带给我知识上的获取和见识的增长,更让我感觉到一种力量!在学习WEB之前,这些互联网的东西让我满头雾水...  阅读全文

posted @ 2010-01-20 23:20 長城 阅读(744) | 评论 (0)编辑 收藏

     摘要: 今后三天的课程内容为:JPA与EJB。我们的班型是JAVAEE精品就业班,我们学习的是JAVAEE吗?JAVAEE是分布式企业级应用,我们之前学习的JSP与Servlet都是JAVAEE的内容,是基础内容。那么JAVAEE的核心是什么?没有学习JAVAEE的核心还算是学习过JAVAEE吗?JAVAEE的核心是EJB! EJB具体是做什么的?目前还不清楚,这部分内容在明天和后天会学习。今日的重点内...  阅读全文

posted @ 2010-01-19 23:46 長城 阅读(570) | 评论 (0)编辑 收藏

UML,是我在整套课程中比较期盼的内容。虽说是对UML的期盼,更是对CMM标准化项目开发的期盼。软件工程的概念是参照建筑工程等流程提出来的,与建筑工程相同,软件工程需要可行性分析、需求分析、概要设计、详细设计...。建筑需要图纸,软件也需要图纸,设计软件图纸的工具就是UML(统一建模语言)。

到传智播客学习,了解和运用软件工程也是我的重要目标之一。因为我受够了没有经过软件工程标准化开发,而直接编码所带来的痛苦。今日的课程内容比较简单,上课的氛围比较轻松。有机会听徐老师谈一谈国内的软件公司现状。CMM是印度人总结出来的被国际公认并普遍使用的软件工程规范,最高等级应该是CMM5。但十分遗憾的是中国的真正意义上的CMM5等级的这种软件企业并不多,为什么?要搞一个CMM5的认证来,与我们社会中想搞一个学位证书的概念差不多。可想这种卑劣的文化!残害着自己的民族。在这个社会里一切都不会超过人情世故。

我对这种标准化的工程流程十分关注,国内在这方面做的比较好的是大连。但大连是中国最大的软件外包产业,几乎全在为日本工作。所以这种CMM5的高层(设计层)都是由日本人来完成的,中国的“打字员”只需要按照日本人设计的详细文档,把代码敲到电脑里并测试通过就可以了。我们知道编码只是软件开发中的一小部分而已,非常惭愧!

不在其位莫思其事!

老徐说给我们提供UML的课程是为了让大家在以后的工作中能看懂UML图。UML的画图工具很简单,难在你用丰富的经验画出优美的软件框架和详细设计来。

一、软件工程

简要学习一下软件工程,软件工程是由软件危机引起的。软件危机就引起了瀑布模型,从瀑布模型又升级出来RUP来。

一幅美丽的用来形容软件工程问题的漫画:

clip_image002[4]

1.瀑布模型

clip_image003[4]

模型的特点是:

1). 各阶段间具有顺序性和依赖性: 后一阶段工作必须在前一阶段工作完成后才能进行。

2). 质量保证机制的依赖性。即每一步都必须循序渐进,及早消除故障隐患,保证本阶段的工作的质量,从而达到保证整体软件质量的目的。

3). 推迟实现原则。前一阶段工作做的越细, 越扎实,后一阶段工作进行的就越顺利,强调”宁慢求好”。因此,各阶段工作总是一拖再拖,致使整个工期推迟实现。显然瀑布模型不能满足呈爆炸状增长的社会应用需求。

2. 统一软件开发过程:RUP(Rational Unified ProcessRUP)

一个通用的软件流程框架, 以架构为中心, 用例驱动的迭代化开发流程。 RUP 是从几千个软件项目的实践经验中总结出来的, 对于实际的项目具有很强的指导意义。RUP 用二维坐标来描述。 横轴通过时间来组织, 是过程展开的生命周期特征, 体现开发过程的动态结构;纵轴以内容来组织, 体现开发过程的静态结构。

clip_image004[4]

有关瀑布模型和RUP的资料网上有很多,在次就不多做总结了。

三、UML

UML(United Modeling Language,统一建模语言):是一种基于面向对象的可视化建模语言。

UML采用了一组形象化的图形(如类图)符号作为建模语言,使用这些符号可以形象地描述系统的各个方面。

UML通过建立图形之间的各种关系(如类与类之间的关系)来描述模型。

UML中有二类图(共10种):

1).静态模型图:描述系统的静态结构

类图、对象图、包图、组件图、部署图

2).动态模型图:描述系统行为的各个方面

用例图、时序图、协作图、状态图、活动图。

其中蓝色为重点图例,其他的图例比较少用。

在画图之前我们有必要复习一下类的四种关系:

u 关联关系(association)

u 依赖关系(dependency)

u 泛化关系(generalization)

u 实现关系(realization)

我们在hibernate中有学习到这四种关系,原本我以为那只是在hibernate中使用。没想到在UML中也有,其实这四种关系应该是软件工程中的规范了。那hiberante也是使用了这种规范进行相关开发的,这样可以促进hibernate路线的正确性,这太好了!

我们使用的是IBM的RationalRoseUML设计工具,使用工具具体图画的操作就不说明了。

1.用例图

用例图(Use Case Diagram): 也称为用户模型图, 是从软件需求分析到最终实现的第一步, 它是从客户的角度来描述系统功能。

用例图包含 3 个基本组件:

1) 参与者(Actor): 与系统打交道的人或其他系统即使用该系统的人或事物。在UML中参与者用人形图标表示。

2) 用例(Use Case): 代表系统的某项完整的功能。在UML中使用一个椭圆来表示。

3) 关系: 定义用例之间的关系:

a) 泛化关系:表示同一业务目的(父用例)的不同技术实现(各个子用例)。 在UML中,用例泛化用一个三角箭头从子用例指向父用例。以下是某购物网站为用户提供不同的支付方式。

b) 包含关系:一个用例可以包含其他用例具有的行为, 并把它包含的用例行为作为自身行为的一部分。 在 UML 中包含关系用虚线箭头加 “<<include>>”, 箭头指向被包含的用例。

c) 扩展关系:如果在完成某个功能的时候偶尔会执行另外一个功能, 则用扩展关系表示。在 UML 中扩展关系用虚线箭头加 “<<extend>>”, 箭头指向被扩展的用例。

clip_image006[4]

蓝线部分为:泛化关系。红线部分为:包含关系。绿线部分为:泛化关系。

2.类图

类图是面向对象系统建模中最常用的图,是定义其他图的基础。

类图主要是用来显示系统中的类, 接口以及它们之间的关系。

类图包含的主要元素有类, 接口和关系。 其中关系有关联关系, 泛化关系, 依赖关系和实现关系。 在类图中也可以包含注释和约束。

这里的关系十分重要,我们来一一看一下。

1). 泛化关系(继承关系):用来表示类与类, 接口与接口之间的继承关系. 泛化关系有时也称为”is a kind of”关系。

clip_image008[4]

2). 实现关系:用来表示类与接口之间的实现关系。

clip_image010[4]

3).依赖关系:比如我们上班需要交通工具,交通工具可以是公交车、私家车、电动车或自行车,步行也可以。这就是一依赖关系,使用某一个对象或对象的方法来完成一种功能。但与它不存在固定对应关系。

clip_image012[4]

4).关联关系:对于两个相对独立的系统,当一个系统的实例与另一个系统的一些特定实例存在固定的对应关系时,这两个系统之间为关联关系。

多对多双向关联,可以自动生成代码哦:

clip_image014[4]

关联关系中有一个难点,上面的图是多对多双向关联。我也可以映射出一对多和多对一的意向关联。但一对多关系中还有聚合关系和组成关系。

聚合关系:是更强形式的关联。强调部分和整体逻辑结构,但不强调生命周期。对应的属性具有get/set方法。例如计算机包含键盘和鼠标,但如果计算机不在了键盘和鼠标可以存。我们也可以为计算机换键盘和鼠标:

clip_image016[4]

UML中组成关系:是更强形式的聚合,不仅强调部分和整体,而且还强调生命周期。仅有get方法。比如人有头和手,如果主体不在了,那么部分肯定也不存在了。也不能更换。

clip_image018[4]

5).导航性:

导航性表示可从源类的任何对象到目标类的一个或多个对象遍历。 即:给定源类的一个对象, 可以得到目标类的所有对象。 可以在关联关系上加上箭头表示导航方向。

只在一个方向上可以导航的关联称为单向关联,用一个带箭头的方向表示; 在两个方向上都可以导航的关联称为双向关联, 用一条没有箭头的实线表示。

clip_image020[4]

3. 时序图

时序图用于描述对象之间的传递消息的时间顺序, 即用例中的行为顺序。

当执行一个用例时, 时序图中的每条消息对应了一个类操作或者引起转换的触发事件。

在 UML 中, 时序图表示为一个二维的关系图, 其中, 纵轴是时间轴, 时间延竖线向下延伸。 横轴代表在协作中各个独立的对象。 当对象存在时, 生命线用一条虚线表示, 消息用从一个对象的生命线到另一个对象的生命线的箭头表示。 箭头以时间的顺序在图中上下排列。

clip_image022[5]

时序图中的基本概念:

对象:时序图中对象使用矩形表示,并且对象名称下有下划线。将对象置于时序图的顶部说明在交互开始时对象就已经存在了。如果对象的位置不在顶部,表示对象是在交互的过程中被创建的。

生命线:生命线是一条垂直的虚线。表示时序图中的对象在一段生命周期内的存在。每个对象底部中心的位置都带有生命线。

消息:两个对象之间的单路通信。从发送方指向接收方。在时序图中很少使用返回消息。

激活:时序图可以描述对象的激活和钝化。激活表示该对象被占用以完成某个任务。钝化指对象处于空闲状态,等待消息。在 UML 中,对象的激活时将对象的生命线拓宽为矩形来表示的。矩形称为计划条或控制期。对象就是在激活条的顶部被激活的。对象在完成自己的工作后被钝化。

对象的创建和销毁:在时序图中, 对象的默认位置是在图的顶部。这说明对象在交互开始之前就已经存在了。如果对象是在交互过程中创建的,那么就应该将对象放到中间部分。如果要撤销一个对象,在其生命线终止点处放置“ X”符号。

5.活动图

活动图就是流程图,但在UML工具中可以加入泳道:

clip_image024[4]

6.状态图

通过建立对象的生存周期模型来描述对象随时间变化的动态行为。比如hibernate中持久化对象的三种状态:临时状态、持久化状态、游离状态。

clip_image026[4]

状态图的基本概念:

状态:用圆角矩形表示。状态名称表示状态的名字,通常用字符串表示。一个状态的名称在状态图所在的上下文中应该是唯一的。

转换:用带箭头的直线表示。一端连着源状态,一端连着目标状态。

初始状态:每个状态图都有一个初始状态。此状态代表状态图的起始位置。初始状态只能作为转换的源,不能作为转换的目标,并且在状态图中只能有一个。初始状态用一个实心圆表示。

终止状态:模型元素的最后状态,是一个状态图的终止点。终止状态在一个状态图中可以有多个。

7.协作图、对象图、包图

不画了,用处不大且非常简单。

8.组件图

组件图用来建立系统中各组件之间的关系,各组件通过功能组织在一起。

Javabean,ejb,jsp都是组件。在UML中,组件使用在左侧有两个小矩形的大矩形来表示。

组件图可以用来设计系统的整体构架:

clip_image028[4]

9.部署图

部署图用来帮助开发者了解软件中的各个组件驻留在什么硬件位置,以及这些硬件之间的交互关系。

节点:用来表示一种硬件,可以是打印机,计算机等。节点的标记符号是一个三维框,在框的左上方包含了节点的名称。

通信关联:节点通过通信关联建立彼此的关系,采用从节点到节点绘制实线来表示关联。

clip_image030[4]

一下子搞出来这么多东西,这么一看UML贯穿软件设计的各个阶段。让人感觉很好!

一定要学好软件工程,努力在工作中总结经验!

posted @ 2010-01-19 00:24 長城 阅读(1030) | 评论 (0)编辑 收藏

     摘要:          前两天我们已经完成了流程定义的管理和表单的定义的管理。今天们将整合这两大模块,使他们形成一个标准的工作流程。            在学习OA项目时,就像学习其他知识一样跟着老师的思路走。有的时候东西讲...  阅读全文

posted @ 2010-01-17 14:03 長城 阅读(727) | 评论 (1)编辑 收藏

     摘要: 来到北京,今天的天气似乎是最好的,希望不要再有降温天气了。今日继续我们的审批流程,今天的内容似乎有点多,同学们需要努力学习哦!   我个人认为今天的内容多,是为因今天加入了测试部分。使用JBPM开发OA系统,说简单些就是将自定义表单数据放到JBPM工作流中流转。我们所需要实现的功能就是,使用户可以向系统中部署自定义工作流,用户可以自己添加自定义表单。我们通过编写通用表单实体,让任何自定义...  阅读全文

posted @ 2010-01-15 23:29 長城 阅读(724) | 评论 (0)编辑 收藏

仅列出标题
共8页: 上一页 1 2 3 4 5 6 7 8 下一页