﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-大鱼</title><link>http://www.blogjava.net/luluyanglu/</link><description /><language>zh-cn</language><lastBuildDate>Mon, 13 Apr 2026 09:03:24 GMT</lastBuildDate><pubDate>Mon, 13 Apr 2026 09:03:24 GMT</pubDate><ttl>60</ttl><item><title>需求分析报告 V 需求说明书 V 需求规格说明书的区别</title><link>http://www.blogjava.net/luluyanglu/archive/2011/10/31/362410.html</link><dc:creator>大鱼</dc:creator><author>大鱼</author><pubDate>Mon, 31 Oct 2011 14:20:00 GMT</pubDate><guid>http://www.blogjava.net/luluyanglu/archive/2011/10/31/362410.html</guid><wfw:comment>http://www.blogjava.net/luluyanglu/comments/362410.html</wfw:comment><comments>http://www.blogjava.net/luluyanglu/archive/2011/10/31/362410.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/luluyanglu/comments/commentRss/362410.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/luluyanglu/services/trackbacks/362410.html</trackback:ping><description><![CDATA[<br />需求分析报告：一般是对某个市场或者是客户群来讲的，类似于调研报告，重点是体现出产品要满足哪些功能，哪些是重点、热点。 <br /><br />需求说明书：是根据与现场实际客户进行沟通，把客户的需求进行整理，CMMI中有标准的模板，我就不细说了，重点是站在客户的角度讲产品功能。 <br /><br />需求规格说明书：是从业务规则讲起的，细一点偏向于软件的概要设计。是从开发、测试的角度去讲产品功能，里面要包含原型界面、业务接口、活动图等.<img src ="http://www.blogjava.net/luluyanglu/aggbug/362410.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/luluyanglu/" target="_blank">大鱼</a> 2011-10-31 22:20 <a href="http://www.blogjava.net/luluyanglu/archive/2011/10/31/362410.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FineReport调用Oracle数据库中的存储过程需要两步走</title><link>http://www.blogjava.net/luluyanglu/archive/2011/10/19/361558.html</link><dc:creator>大鱼</dc:creator><author>大鱼</author><pubDate>Wed, 19 Oct 2011 02:28:00 GMT</pubDate><guid>http://www.blogjava.net/luluyanglu/archive/2011/10/19/361558.html</guid><wfw:comment>http://www.blogjava.net/luluyanglu/comments/361558.html</wfw:comment><comments>http://www.blogjava.net/luluyanglu/archive/2011/10/19/361558.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/luluyanglu/comments/commentRss/361558.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/luluyanglu/services/trackbacks/361558.html</trackback:ping><description><![CDATA[存储过程是由流控制和SQL语句书写的过程，这个过程经编译和优化后存储在数据库服务器中，FienReport使用时只要调用即可。 
<p>　　调用Oracle存储过程主要有两步：第一步，定义存储过程；第二步，调用存储过程。 
<p>　　下面以一个具体的实例来学习如何使用FineReport调用Oracle存储过程的。 
<p>　　<strong>第一步，Oracel定义存储过程</strong> 
<p>　　StScroe是Oracele数据库中的张表，其中记录了学生的成绩信息，表结构如下： 
<p>　　 
<center><img style="border-bottom: black 1px solid; border-left: black 1px solid; border-top: black 1px solid; border-right: black 1px solid" src="http://image.01hr.com:81/article/15/7f5/7f5c330aa9c560e8397132757597710f.jpg"  alt="" /></center>
<p>　　定义返回列表的存储过程&#8212;&#8212;由于oracle存储过程没有返回值，它的所有返回值都是通过out参数来替代的，列表同样也不例外，但由于是集合，所以不能用一般的参数，必须要用pagkage了，所以定义存储过程要分两部分： 
<p>　1.建立一个程序包，如下： 
<p>CREATE or REPLACE PACKAGE TESTPACKAGE AS<br />TYPE Test_CURSOR IS REF CURSOR;<br />END TESTPACKAGE;</p>
<p>　　2.建立存储过程，存储过程为： </p>
<p>CREATE or REPLACE PROCEDURE p_STSCORE(Class in varchar2,p_CURSOR out TESTPACKAGE.Test_CURSOR) IS<br />BEGIN<br />OPEN p_CURSOR FOR select * FROM FR.STSCORE where STSCORE.ClassNo=Class;<br />END p_STSCORE;</p>
<p><br /><br /></ccid_nobr></p><br />
<p>　　<strong>第二步，调用存储过程</strong> 
<p>　　1.启动FineReport设计器，右击数据源面板，选择私有数据源，弹出私有数据源对话框。 
<p>　　2.点击增加按钮，新建一个私有数据源，名为ds1，数据库选择为Oracle数据源，查询类型为存储过程，在sql文本框中写如下语句调用存储过程： 
<p>　　 
<center><ccid_nobr>
<table class="txcode" border="0" cellspacing="0" cellpadding="0" align="center">
<tbody>
<tr>
<td style="font-size: 9pt" class="code" bgcolor="#e6e6e6"><pre><ccid_code>{call fr.p_stscore('[?Class|Class1?]',?)}</ccid_code></pre></td></tr></tbody></table></ccid_nobr></center><br />
<p>　　 
<center><img style="border-bottom: black 1px solid; border-left: black 1px solid; border-top: black 1px solid; border-right: black 1px solid" src="http://image.01hr.com:81/article/15/341/3415611597a0c155d4f5932f3106e8f2.jpg"  alt="" /></center>
<p>　　3.点击预览按钮，可以预览查询到的数据，如下所示： 
<p>　　 
<center><img style="border-bottom: black 1px solid; border-left: black 1px solid; border-top: black 1px solid; border-right: black 1px solid" src="http://image.01hr.com:81/article/15/c3b/c3b41bd8c84b7d7107e7c268fb8f9208.jpg"  alt="" /></center>
<p>　　至此，FineReport设计器成功调用Oracle存储过程，您可以根据报表需求随心所欲地设计报表样式了。 
<p>　　</p><img src ="http://www.blogjava.net/luluyanglu/aggbug/361558.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/luluyanglu/" target="_blank">大鱼</a> 2011-10-19 10:28 <a href="http://www.blogjava.net/luluyanglu/archive/2011/10/19/361558.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>排序算法java版，速度排行：冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序  </title><link>http://www.blogjava.net/luluyanglu/archive/2011/10/06/360090.html</link><dc:creator>大鱼</dc:creator><author>大鱼</author><pubDate>Thu, 06 Oct 2011 15:34:00 GMT</pubDate><guid>http://www.blogjava.net/luluyanglu/archive/2011/10/06/360090.html</guid><wfw:comment>http://www.blogjava.net/luluyanglu/comments/360090.html</wfw:comment><comments>http://www.blogjava.net/luluyanglu/archive/2011/10/06/360090.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/luluyanglu/comments/commentRss/360090.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/luluyanglu/services/trackbacks/360090.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 先推荐一篇关于排序算法的文章：http://www.cppblog.com/guogangj/archive/2009/11/13/100876.html本文思路部分来源于上篇文章，但测得的结果似乎不大相同，不知是因为java的缘故还是因为我算法的缘故，欢迎拍砖。复习排序，顺便比下各种算法的速度，榜单如下：1、冒泡排序2、简单选择排序3、直接插入排序4、折半插入排序...&nbsp;&nbsp;<a href='http://www.blogjava.net/luluyanglu/archive/2011/10/06/360090.html'>阅读全文</a><img src ="http://www.blogjava.net/luluyanglu/aggbug/360090.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/luluyanglu/" target="_blank">大鱼</a> 2011-10-06 23:34 <a href="http://www.blogjava.net/luluyanglu/archive/2011/10/06/360090.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>深刻认识clientX，offsetX，screenX</title><link>http://www.blogjava.net/luluyanglu/archive/2011/10/06/360088.html</link><dc:creator>大鱼</dc:creator><author>大鱼</author><pubDate>Thu, 06 Oct 2011 15:32:00 GMT</pubDate><guid>http://www.blogjava.net/luluyanglu/archive/2011/10/06/360088.html</guid><wfw:comment>http://www.blogjava.net/luluyanglu/comments/360088.html</wfw:comment><comments>http://www.blogjava.net/luluyanglu/archive/2011/10/06/360088.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/luluyanglu/comments/commentRss/360088.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/luluyanglu/services/trackbacks/360088.html</trackback:ping><description><![CDATA[<p>clientX 设置或获取鼠标指针位置相对于窗口客户区域的 x 坐标，其中客户区域不包括窗口自身的控件和滚动条。 <br />clientY 设置或获取鼠标指针位置相对于窗口客户区域的 y 坐标，其中客户区域不包括窗口自身的控件和滚动条。 <br />offsetX 设置或获取鼠标指针位置相对于触发事件的对象的 x 坐标。 <br />offsetY 设置或获取鼠标指针位置相对于触发事件的对象的 y 坐标。 <br />screenX 设置或获取获取鼠标指针位置相对于用户屏幕的 x 坐标。 <br />screenY 设置或获取鼠标指针位置相对于用户屏幕的 y 坐标。 <br />x 设置或获取鼠标指针位置相对于父文档的 x 像素坐标。 <br />y 设置或获取鼠标指针位置相对于父文档的 y 像素坐标 </p>
<p>实验实例（来源于网络，修改过）： </p>
<p>view plaincopy to clipboardprint?<br />&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"&gt; <br />&lt;HTML&gt; <br />&lt;BODY onclick='test()' style="margin:0 0 0 0" mce_style="margin:0 0 0 0"&gt; <br />&lt;font color=green&gt;设置或获取鼠标指针位置相对于窗口客户区域的 x,y 坐标，其中客户区域不包括窗口自身的控件和滚动条。&lt;/font&gt; <br />&lt;br/&gt; <br />clientX=&lt;INPUT TYPE="text" NAME="x1"&gt; <br />clientY=&lt;INPUT TYPE="text" NAME="x2"&gt; <br />&lt;br/&gt; <br />&lt;br/&gt; <br />&lt;font color=blue&gt;设置或获取鼠标指针位置相对于触发事件的对象的 x,y 坐标。 &lt;/font&gt; <br />&lt;br/&gt; <br />offsetX =&lt;INPUT TYPE="text" NAME="x3"&gt; <br />offsetY =&lt;INPUT TYPE="text" NAME="x4"&gt; <br />&lt;br/&gt; <br />&lt;br/&gt; <br />&lt;font color=green&gt;设置或获取获取鼠标指针位置相对于用户屏幕的 x,y 坐标 &lt;/font&gt; <br />&lt;br/&gt; <br />screenX =&lt;INPUT TYPE="text" NAME="x5"&gt; <br />screenY =&lt;INPUT TYPE="text" NAME="x6"&gt; <br />&lt;br/&gt; <br />&lt;br/&gt; <br />&lt;font color=blue&gt;设置或获取鼠标指针位置相对于父文档的 x,y 像素坐标。&lt;/font&gt; <br />&lt;br/&gt; <br />x=&lt;INPUT TYPE="text" NAME="x7"&gt; <br />y=&lt;INPUT TYPE="text" NAME="x8"&gt; <br />&lt;br/&gt; <br />&lt;br/&gt; <br />&lt;TABLE align="center" width=400 height=500 border=1 style="border-style:none" mce_style="border-style:none" CELLPADDING=0 CELLSPACING=0 onclick='test()'&gt; <br />&lt;TR&gt; <br />&lt;TD&gt;a&lt;/TD&gt; <br />&lt;TD&gt;b&lt;/TD&gt; <br />&lt;/TR&gt; <br />&lt;TR&gt; <br />&lt;TD&gt;c&lt;/TD&gt; <br />&lt;TD&gt;d&lt;/TD&gt; <br />&lt;/TR&gt; <br />&lt;/TABLE&gt; <br />&lt;/body&gt; <br />&lt;/html&gt; <br />&lt;SCRIPT LANGUAGE="JavaScript"&gt; <br />&lt;!-- <br />function test(){ <br />document.all.x1.value=event.clientX; <br />document.all.x2.value=event.clientY; <br />document.all.x3.value=event.offsetX; <br />document.all.x4.value=event.offsetY; <br />document.all.x5.value=event.screenX; <br />document.all.x6.value=event.screenY; <br />document.all.x7.value=event.x; <br />document.all.x8.value=event.y; <br />} <br />//--&gt; <br />&lt;/SCRIPT&gt; <br /></p>
<p>实验结果分析： </p>
<p>clientX 和x值在实验过程中，没有发现值不一样的例子，所以我认为它们在效果上是一样的！ <br />offsetX 是相对于当前窗口内，本触发事件对象（或者是某一区域）而言，如本例中你单击a区域，值是相对于a所在&lt;td&gt;区域而言，同理b，c，d都一样！ <br />clientX ，x，offsetX共同点：它们都是想对于相对位置，只是offsetX是相对于触发对象的父容器而言！ <br />screenX是相对与客户端显示器而言，是绝对位置！ </p><img src ="http://www.blogjava.net/luluyanglu/aggbug/360088.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/luluyanglu/" target="_blank">大鱼</a> 2011-10-06 23:32 <a href="http://www.blogjava.net/luluyanglu/archive/2011/10/06/360088.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UML 继承、实现、依赖、关联、聚合、组合的联系与区别  </title><link>http://www.blogjava.net/luluyanglu/archive/2011/10/06/360086.html</link><dc:creator>大鱼</dc:creator><author>大鱼</author><pubDate>Thu, 06 Oct 2011 15:15:00 GMT</pubDate><guid>http://www.blogjava.net/luluyanglu/archive/2011/10/06/360086.html</guid><wfw:comment>http://www.blogjava.net/luluyanglu/comments/360086.html</wfw:comment><comments>http://www.blogjava.net/luluyanglu/archive/2011/10/06/360086.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/luluyanglu/comments/commentRss/360086.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/luluyanglu/services/trackbacks/360086.html</trackback:ping><description><![CDATA[<p style="text-indent: 2em">这是一堂关于UML基础知识的补习课；现在我们做项目时间都太紧了，基本上都没有做过真正的class级别的详细设计，更别提使用UML来实现规范建模了；本篇主要就以前自己一直感觉很迷糊的几种class之间的关系进行整理，让我们在真正用UML进行比如类图设计时能够更加清晰明了；以下就分别介绍这几种关系：</p>
<p style="text-indent: 2em">继承</p>
<p style="text-indent: 2em">指的是一个类（称为子类、子接口）继承另外的一个类（称为父类、父接口）的功能，并可以增加它自己的新功能的能力，继承是类与类或者接口与接口之间最常见的关系；在Java中此类关系通过关键字extends明确标识，在设计时一般没有争议性；</p>
<p style="text-indent: 2em"><a href="http://photo.blog.sina.com.cn/showpic.html#blogid=53a99cf30100d8xi&amp;url=http://static4.photo.sina.com.cn/orignal/53a99cf3h6b4686e239f3&amp;690" rel="nofollow"><img border="0" alt="UML 继承、实现、依赖、关联、聚合、组合的联系与区别 - xiaotot - 享受编码" src="http://img.blog.163.com/photo/LtTOT_doqBQJLrHiAouIzw==/1757811229559527893.jpg" __1317913425901__="ev_4155641983" /></a></p>
<p style="text-indent: 2em"><wbr></p>
<p style="text-indent: 2em">实现</p>
<p style="text-indent: 2em">指的是一个class类实现interface接口（可以是多个）的功能；实现是类与接口之间最常见的关系；在Java中此类关系通过关键字implements明确标识，在设计时一般没有争议性；</p>
<p style="text-indent: 2em"><a href="http://photo.blog.sina.com.cn/showpic.html#blogid=53a99cf30100d8xi&amp;url=http://static3.photo.sina.com.cn/orignal/53a99cf3h6b46893f0762&amp;690" rel="nofollow"><img border="0" alt="UML 继承、实现、依赖、关联、聚合、组合的联系与区别 - xiaotot - 享受编码" src="http://img.blog.163.com/photo/MpQvxhCOtFrb9ViwK8fvUg==/339458821914501732.jpg" __1317913425901__="ev_5866510548" /></a></p>
<p style="text-indent: 2em"><wbr></p>
<p style="text-indent: 2em">依赖</p>
<p style="text-indent: 2em">可以简单的理解，就是一个类A使用到了另一个类B，而这种使用关系是具有偶然性的、、临时性的、非常弱的，但是B类的变化会影响到A；比如某人要过河，需要借用一条船，此时人与船之间的关系就是依赖；表现在代码层面，为类B作为参数被类A在某个method方法中使用；</p>
<p style="text-indent: 2em"><a href="http://photo.blog.sina.com.cn/showpic.html#blogid=53a99cf30100d8xi&amp;url=http://static5.photo.sina.com.cn/orignal/53a99cf3h6b468a4256b4&amp;690" rel="nofollow"><img border="0" alt="UML 继承、实现、依赖、关联、聚合、组合的联系与区别 - xiaotot - 享受编码" src="http://img.blog.163.com/photo/t4TzLaEOtM4DL0CL-s5B-A==/339458821914501733.jpg" __1317913425901__="ev_6711928952" /></a></p>
<p style="text-indent: 2em"><wbr></p>
<p style="text-indent: 2em">关联</p>
<p style="text-indent: 2em">他体现的是两个类、或者类与接口之间语义级别的一种强依赖关系，比如我和我的朋友；这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的，一般是长期性的，而且双方的关系一般是平等的、关联可以是单向、双向的；表现在代码层面，为被关联类B以类属性的形式出现在关联类A中，也可能是关联类A引用了一个类型为被关联类B的全局变量；</p>
<p style="text-indent: 2em"><a href="http://photo.blog.sina.com.cn/showpic.html#blogid=53a99cf30100d8xi&amp;url=http://static15.photo.sina.com.cn/orignal/53a99cf3h6b468c1c1cde&amp;690" rel="nofollow"><img border="0" alt="UML 继承、实现、依赖、关联、聚合、组合的联系与区别 - xiaotot - 享受编码" src="http://img.blog.163.com/photo/DUq8n7zoEedD__TreLl2sQ==/339458821914501734.jpg" __1317913425901__="ev_4906082611" /></a></p>
<p style="text-indent: 2em"><wbr></p>
<p style="text-indent: 2em"><wbr></p>
<p style="text-indent: 2em">聚合</p>
<p style="text-indent: 2em">聚合是关联关系的一种特例，他体现的是整体与部分、拥有的关系，即has-a的关系，此时整体与部分之间是可分离的，他们可以具有各自的生命周期，部分可以属于多个整体对象，也可以为多个整体对象共享；比如计算机与CPU、公司与员工的关系等；表现在代码层面，和关联关系是一致的，只能从语义级别来区分；</p>
<p style="text-indent: 2em"><a href="http://photo.blog.sina.com.cn/showpic.html#blogid=53a99cf30100d8xi&amp;url=http://static12.photo.sina.com.cn/orignal/53a99cf3h6b468eaaa3db&amp;690" rel="nofollow"><img border="0" alt="UML 继承、实现、依赖、关联、聚合、组合的联系与区别 - xiaotot - 享受编码" src="http://img.blog.163.com/photo/w_PRcxfR4vIqzXNk5Av2NQ==/339458821914501735.jpg" __1317913425901__="ev_3604638093" /></a></p>
<p style="text-indent: 2em"><wbr></p>
<p style="text-indent: 2em">组合</p>
<p style="text-indent: 2em">组合也是关联关系的一种特例，他体现的是一种contains-a的关系，这种关系比聚合更强，也称为强聚合；他同样体现整体与部分间的关系，但此时整体与部分是不可分的，整体的生命周期结束也就意味着部分的生命周期结束；比如你和你的大脑；表现在代码层面，和关联关系是一致的，只能从语义级别来区分；</p>
<p style="text-indent: 2em"><a href="http://photo.blog.sina.com.cn/showpic.html#blogid=53a99cf30100d8xi&amp;url=http://static10.photo.sina.com.cn/orignal/53a99cf3h6b469023a269&amp;690" rel="nofollow"><img border="0" alt="UML 继承、实现、依赖、关联、聚合、组合的联系与区别 - xiaotot - 享受编码" src="http://img.blog.163.com/photo/nvZMBdt39hK6Bx_iSx1Txw==/339458821914501736.jpg" __1317913425901__="ev_9272367795" /></a></p>
<p style="text-indent: 2em"><wbr></p>
<p style="text-indent: 2em">对于继承、实现这两种关系没多少疑问，他们体现的是一种类与类、或者类与接口间的纵向关系；其他的四者关系则体现的是类与类、或者类与接口间的引用、横向关系，是比较难区分的，有很多事物间的关系要想准备定位是很难的，前面也提到，这几种关系都是语义级别的，所以从代码层面并不能完全区分各种关系；但总的来说，后几种关系所表现的强弱程度依次为：组合&gt;聚合&gt;关联&gt;依赖</p><img src ="http://www.blogjava.net/luluyanglu/aggbug/360086.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/luluyanglu/" target="_blank">大鱼</a> 2011-10-06 23:15 <a href="http://www.blogjava.net/luluyanglu/archive/2011/10/06/360086.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>必须知道的业务系统简称  </title><link>http://www.blogjava.net/luluyanglu/archive/2011/10/06/360087.html</link><dc:creator>大鱼</dc:creator><author>大鱼</author><pubDate>Thu, 06 Oct 2011 15:15:00 GMT</pubDate><guid>http://www.blogjava.net/luluyanglu/archive/2011/10/06/360087.html</guid><wfw:comment>http://www.blogjava.net/luluyanglu/comments/360087.html</wfw:comment><comments>http://www.blogjava.net/luluyanglu/archive/2011/10/06/360087.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/luluyanglu/comments/commentRss/360087.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/luluyanglu/services/trackbacks/360087.html</trackback:ping><description><![CDATA[<p>ERP ：Enterprise Resource Planning 企业资源计划</p>
<p>&nbsp;</p>
<p>CRP：Capacity Requirment Planning 能力需求计划</p>
<p>&nbsp;</p>
<p>MRP：Materials Requirement Planning 物料需求计划</p>
<p>&nbsp;</p>
<p>CRM：Customer Relationship Management 客户关系管理</p>
<p>&nbsp;</p>
<p>ERM：Enterprise Relationship Management 企业关系管理</p>
<p>&nbsp;</p>
<p>SCM：Supply Chain Management 供应链管理</p>
<p>&nbsp;</p>
<p>ESB：Enterprise Services Bus 企业服务总线</p><img src ="http://www.blogjava.net/luluyanglu/aggbug/360087.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/luluyanglu/" target="_blank">大鱼</a> 2011-10-06 23:15 <a href="http://www.blogjava.net/luluyanglu/archive/2011/10/06/360087.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring事务配置的五种方式 </title><link>http://www.blogjava.net/luluyanglu/archive/2011/06/06/351829.html</link><dc:creator>大鱼</dc:creator><author>大鱼</author><pubDate>Mon, 06 Jun 2011 14:11:00 GMT</pubDate><guid>http://www.blogjava.net/luluyanglu/archive/2011/06/06/351829.html</guid><wfw:comment>http://www.blogjava.net/luluyanglu/comments/351829.html</wfw:comment><comments>http://www.blogjava.net/luluyanglu/archive/2011/06/06/351829.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/luluyanglu/comments/commentRss/351829.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/luluyanglu/services/trackbacks/351829.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 前段时间对Spring的事务配置做了比较深入的研究，在此之间对Spring的事务配置虽说也配置过，但是一直没有一个清楚的认识。通过这次的学习发觉Spring的事务配置只要把思路理清，还是比较好掌握的。 &nbsp;&nbsp;&nbsp; 总结如下：&nbsp;&nbsp;&nbsp; Spring配置文件中关于事务配置总是由三个组成部分，分别是DataSource、Transaction...&nbsp;&nbsp;<a href='http://www.blogjava.net/luluyanglu/archive/2011/06/06/351829.html'>阅读全文</a><img src ="http://www.blogjava.net/luluyanglu/aggbug/351829.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/luluyanglu/" target="_blank">大鱼</a> 2011-06-06 22:11 <a href="http://www.blogjava.net/luluyanglu/archive/2011/06/06/351829.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>spring中连接池的配置</title><link>http://www.blogjava.net/luluyanglu/archive/2011/06/06/351828.html</link><dc:creator>大鱼</dc:creator><author>大鱼</author><pubDate>Mon, 06 Jun 2011 14:02:00 GMT</pubDate><guid>http://www.blogjava.net/luluyanglu/archive/2011/06/06/351828.html</guid><wfw:comment>http://www.blogjava.net/luluyanglu/comments/351828.html</wfw:comment><comments>http://www.blogjava.net/luluyanglu/archive/2011/06/06/351828.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/luluyanglu/comments/commentRss/351828.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/luluyanglu/services/trackbacks/351828.html</trackback:ping><description><![CDATA[在默认通过myeclipse生成的配置里，spring使用的是apache的dbcp连接池 
<p>　　&lt;bean id="dataSource"</p>
<p>　　class="org.apache.commons.dbcp.BasicDataSource"&gt;</p>
<p>　　&lt;property name="driverClassName"</p>
<p>　　value="com.mysql.jdbc.Driver"&gt;</p>
<p>　　&lt;/property&gt;</p>
<p>　　&lt;property name="url"</p>
<p>　　value="jdbc:mysql://localhost:3306/mysql"&gt;</p>
<p>　　&lt;/property&gt;</p>
<p>　　&lt;property name="username" value="root"&gt;&lt;/property&gt;</p>
<p>　　&lt;property name="password" value="root"&gt;&lt;/property&gt;</p>
<p>　　&lt;/bean&gt;</p>
<p>　　如果改为C3P0则为：</p>
<p>　　&lt;bean id="propertyConfigurer"</p>
<p>　　class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"&gt;</p>
<p>　　&lt;property name="location"&gt;</p>
<p>　　&lt;value&gt;classpath:jdbc.properties&lt;/value&gt;</p>
<p>　　&lt;/property&gt;</p>
<p>　　&lt;/bean&gt;</p>
<p>　　&lt;bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"&gt;</p>
<p>　　&lt;property name="driverClass" value="com.mysql.jdbc.Driver" /&gt;</p>
<p>　　&lt;property name="jdbcUrl" value="${jdbc.url}" /&gt;</p>
<p>　　&lt;property name="user" value="${jdbc.username}" /&gt;</p>
<p>　　&lt;property name="password" value="${jdbc.password}" /&gt;</p>
<p>　　&lt;property name="autoCommitOnClose" value="true"/&gt;</p>
<p>　　&lt;property name="checkoutTimeout" value="${cpool.checkoutTimeout}"/&gt;</p>
<p>　　&lt;property name="initialPoolSize" value="${cpool.minPoolSize}"/&gt;</p>
<p>　　&lt;property name="minPoolSize" value="${cpool.minPoolSize}"/&gt;</p>
<p>　　&lt;property name="maxPoolSize" value="${cpool.maxPoolSize}"/&gt;</p>
<p>　　&lt;property name="maxIdleTime" value="${cpool.maxIdleTime}"/&gt;</p>
<p>　　&lt;property name="acquireIncrement" value="${cpool.acquireIncrement}"/&gt;</p>
<p>　　&lt;property name="maxIdleTimeExcessConnections" value="${cpool.maxIdleTimeExcessConnections}"/&gt;</p>
<p>　　&lt;/bean&gt;</p>
<p>　　jdbc.properties：</p>
<p>　　# Database URL</p>
<p>　　jdbc.url=jdbc:mysql://192.168.0.25"3306/db</p>
<p>　　# Database login information</p>
<p>　　jdbc.username=root</p>
<p>　　jdbc.password=</p>
<p>　　# Time to wait for an open connection before timing out</p>
<p>　　# (in milliseconds)</p>
<p>　　cpool.checkoutTimeout=5000</p>
<p>　　# Connection pool size</p>
<p>　　cpool.minPoolSize=5</p>
<p>　　cpool.maxPoolSize=40</p>
<p>　　# How long to keep unused connections around(in seconds)</p>
<p>　　# Note: MySQL times out idle connections after 8 hours(28,800 seconds)</p>
<p>　　# so ensure this value is below MySQL idle timeout</p>
<p>　　cpool.maxIdleTime=25200</p>
<p>　　# How long to hang on to excess unused connections after traffic spike</p>
<p>　　# (in seconds)</p>
<p>　　cpool.maxIdleTimeExcessConnections=1800</p>
<p>　　# Acquiring new connections is slow, so eagerly retrieve extra connections</p>
<p>　　# when current pool size is reached</p>
<p>　　cpool.acquireIncrement=5</p>
<p>　　或者将上面的3部分写成一个：</p>
<p>　　&lt;bean id="c3p0DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"&gt;</p>
<p>　　&lt;property name="driverClass"&gt;</p>
<p>　　&lt;value&gt;${jdbc.driverClassName}&lt;/value&gt;</p>
<p>　　&lt;/property&gt;</p>
<p>　　&lt;property name="jdbcUrl"&gt;</p>
<p>　　&lt;value&gt;${jdbc.url}&lt;/value&gt;</p>
<p>　　&lt;/property&gt;</p>
<p>　　&lt;property name="user"&gt;</p>
<p>　　&lt;value&gt;${jdbc.username}&lt;/value&gt;</p>
<p>　　&lt;/property&gt;</p>
<p>　　&lt;property name="password"&gt;</p>
<p>　　&lt;value&gt;${jdbc.password}&lt;/value&gt;</p>
<p>　　&lt;/property&gt;</p>
<p>　　&lt;property name="initialPoolSize"&gt;&lt;value&gt;10&lt;/value&gt;&lt;/property&gt;</p>
<p>　　&lt;property name="minPoolSize"&gt;&lt;value&gt;5&lt;/value&gt;&lt;/property&gt;</p>
<p>　　&lt;property name="maxPoolSize"&gt;&lt;value&gt;30&lt;/value&gt;&lt;/property&gt;</p>
<p>　　&lt;property name="acquireIncrement"&gt;&lt;value&gt;5&lt;/value&gt;&lt;/property&gt;</p>
<p>　　&lt;property name="maxIdleTime"&gt;&lt;value&gt;10&lt;/value&gt;&lt;/property&gt;</p>
<p>　　&lt;property name="maxStatements"&gt;&lt;value&gt;0&lt;/value&gt;&lt;/property&gt;</p>
<p>　　&lt;/bean&gt;</p><br />如果使用的是受管理的J2EE<a class="channel_keylink" href="http://server.chinaitlab.com/" target="_blank">服务器</a>，则在spring中配置为JNDI连接： 
<p>　　&lt;bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"&gt;</p>
<p>　　&lt;property name="jndiName"&gt;</p>
<p>　　&lt;value&gt;java:comp/env/jndi/xxx&lt;/value&gt;</p>
<p>　　&lt;/property&gt;</p>
<p>　　&lt;/bean&gt;</p>
<p>　　如果在应用里有独自使用hibernate，则在spring中配置hibernate连接池，使用C3P0如下：</p>
<p>　　&lt;bean&nbsp;&nbsp; id="DataSource"</p>
<p>　　class="org.apache.commons.dbcp.BasicDataSource"&gt;</p>
<p>　　&lt;property&nbsp;&nbsp; name="driverClassName"&gt;</p>
<p>　　&lt;value&gt;oracle.jdbc.driver.<a class="channel_keylink" href="http://oracle.chinaitlab.com/" target="_blank">Oracle</a>Driver&lt;/value&gt;</p>
<p>　　&lt;/property&gt;</p>
<p>　　&lt;property&nbsp;&nbsp; name="url"&gt;</p>
<p>　　&lt;value&gt;jdbc:oracle:thin:@172.16.20.241:1521:dbsvr&lt;/value&gt;</p>
<p>　　&lt;/property&gt;</p>
<p>　　&lt;property&nbsp;&nbsp; name="username"&gt;</p>
<p>　　&lt;value&gt;hl3000&lt;/value&gt;</p>
<p>　　&lt;/property&gt;</p>
<p>　　&lt;property&nbsp;&nbsp; name="password"&gt;</p>
<p>　　&lt;value&gt;hldw3101&lt;/value&gt;</p>
<p>　　&lt;/property&gt;</p>
<p>　　&lt;/bean&gt;</p>
<p>　　&lt;bean&nbsp;&nbsp; id="SessionFactory"</p>
<p>　　class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"&gt;</p>
<p>　　&lt;property&nbsp;&nbsp; name="dataSource"&gt;</p>
<p>　　&lt;ref&nbsp;&nbsp; bean="DataSource"&nbsp;&nbsp; /&gt;</p>
<p>　　&lt;/property&gt;</p>
<p>　　&lt;property&nbsp;&nbsp; name="hibernateProperties"&gt;</p>
<p>　　&lt;props&gt;</p>
<p>　　&lt;prop&nbsp;&nbsp; key="hibernate.dialect"&gt;org.hibernate.dialect.<a class="channel_keylink" href="http://oracle.chinaitlab.com/" target="_blank">Oracle</a>Dialect&lt;/prop&gt;</p>
<p>　　&lt;prop&nbsp;&nbsp; key="hibernate.show_sql"&gt;true&lt;/prop&gt;</p>
<p>　　&lt;!--&nbsp;&nbsp; C3P0连接池配置&nbsp;&nbsp; --&gt;</p>
<p>　　&lt;prop&nbsp;&nbsp; key="hibernate.connection.provider_class"&gt;org.hibernate.connection.C3P0ConnectionProvider&lt;/prop&gt;</p>
<p>　　&lt;prop&nbsp;&nbsp; key="hibernate.c3p0.max_size"&gt;20&lt;/prop&gt;</p>
<p>　　&lt;prop&nbsp;&nbsp; key="hibernate.c3p0.min_size"&gt;5&lt;/prop&gt;</p>
<p>　　&lt;prop&nbsp;&nbsp; key="hibernate.c3p0.timeout"&gt;120&lt;/prop&gt;</p>
<p>　　&lt;prop&nbsp;&nbsp; key="hibernate.c3p0.max_statements"&gt;100&lt;/prop&gt;</p>
<p>　　&lt;prop&nbsp;&nbsp; key="hibernate.c3p0.idle_test_period"&gt;120&lt;/prop&gt;</p>
<p>　　&lt;prop&nbsp;&nbsp; key="hibernate.c3p0.acquire_increment"&gt;2&lt;/prop&gt;</p>
<p>　　&lt;prop&nbsp;&nbsp; key="myeclipse.connection.profile"&gt;hl3000&lt;/prop&gt;</p>
<p>　　&lt;/props&gt;</p>
<p>　　&lt;/property&gt;</p>
<p>　　&lt;property&nbsp;&nbsp; name="mappingResources"&gt;</p>
<p>　　&lt;list&gt;</p>
<p>　　&lt;value&gt;com/hl3000/DBLogic/POJO/PermUserAccount.hbm.xml&lt;/value&gt;</p>
<p>　　&lt;/list&gt;</p>
<p>　　&lt;/property&gt;</p>
<p>　　&lt;/bean&gt;</p>
<p>　　spring中配置独立使用hibernate时使用jndi的配置：</p>
<p>　　hibernate.dialect = net.sf.hibernate.dialect.MySQLDialect</p>
<p>　　hibernate.connection.datasource=java:comp/env/jdbc/SAMPLEDB</p>
<p>　　hibernate.show_sql=true</p>
<p>　　如果是使用不受管理的Servlet容器如Tomcat，也可以使用jndi的方式配置，需要在tomcat中配置数据源，在server.xml中增改大致如下：</p>
<p>　　&lt;Resource name="jdbc/testDb" auth="Container"</p>
<p>　　type="javax.sql.DataSource"/&gt;</p>
<p>　　&lt;ResourceParams name="jdbc/testDB"&gt;\\数据源的名称</p>
<p>　　&lt;parameter&gt;&lt;name&gt;username&lt;/name&gt;&lt;value&gt;root&lt;/value&gt;&lt;/parameter&gt;数据库的名称</p>
<p>　　&lt;parameter&gt;&lt;name&gt;password&lt;/name&gt;&lt;value&gt;password&lt;/value&gt;&lt;/parameter&gt;数据库密码</p>
<p>　　&lt;parameter&gt;&lt;name&gt;driverClassName&lt;/name&gt;</p>
<p>　　&lt;value&gt;org.gjt.mm.mysql.Driver&lt;/value&gt;&lt;/parameter&gt;\\要加载的驱动</p>
<p>　　&lt;parameter&gt;&lt;name&gt;url&lt;/name&gt;</p>
<p>　　&lt;value&gt;jdbc:mysql://172.20.0.73/rk?&lt;/value&gt;&lt;/parameter&gt;\\要连接的URL</p>
<p>　　&lt;/ResourceParams&gt;</p> <img src ="http://www.blogjava.net/luluyanglu/aggbug/351828.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/luluyanglu/" target="_blank">大鱼</a> 2011-06-06 22:02 <a href="http://www.blogjava.net/luluyanglu/archive/2011/06/06/351828.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件开发文档基本知识</title><link>http://www.blogjava.net/luluyanglu/archive/2011/06/06/351825.html</link><dc:creator>大鱼</dc:creator><author>大鱼</author><pubDate>Mon, 06 Jun 2011 12:39:00 GMT</pubDate><guid>http://www.blogjava.net/luluyanglu/archive/2011/06/06/351825.html</guid><wfw:comment>http://www.blogjava.net/luluyanglu/comments/351825.html</wfw:comment><comments>http://www.blogjava.net/luluyanglu/archive/2011/06/06/351825.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/luluyanglu/comments/commentRss/351825.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/luluyanglu/services/trackbacks/351825.html</trackback:ping><description><![CDATA[如今，软件开发越来越复杂，软件功能也越来越丰富。而几乎所有成熟的商业软件，都是靠一个开发团队齐心协力的血汗结晶。&#8220;罗马不是一天建成的！&#8221;，当我们震撼于 Microsoft Windows 的惊世巨著的同时，也道听途说了微软公司软件工程是如何的完善规范。的确，集数百名员工几年的共同努力之大成，软件项目管理的成败是控制开发成本的关键环节。这里面，少不了贯穿其中的重要步骤 ---- 软件文档。 
<p class="textbody-c2">软件文档可以分为开发文档和产品文档两大类。 
<p class="textbody-c2">开发文档包括：《功能要求》、《投标方案》、《需求分析》、《技术分析》、《系统分析》、《数据库文档》、《功能函数文档》、《界面文档》、《编译手册》、《 QA 文档》、《项目总结》等。 
<p class="textbody-c2">产品文档包括：《产品简介》、《产品演示》、《疑问解答》、《功能介绍》、 《技术白皮书》、《评测报告》、《安装手册》、《使用手册》、《维护手册》、 《用户报告》、《销售培训》等。 
<p class="textbody-c2">一、开发文档 
<p class="textbody-c2">1. 《功能要求》 -- 来源于客户要求和市场调查，是软件开发中最早期的一个环节。客户提出一个模糊的功能概念，或者要求解决一个实际问题，或者参照同类软件的一个功能。有软件经验的客户还会提供比较详细的技术规范书，把他们的要求全部列表书写在文档中，必要时加以图表解说。这份文档是需求分析的基础。 
<p class="textbody-c2">2. 《投标方案》 -- 根据用户的功能要求，经过与招标方沟通和确认，技术人员开始书写《投标方案》，方案书一般包括以下几个重要的章节： 
<p class="textbody-c2">前言 -- 项目背景、公司背景和业务、技术人员结构、公司的成功案例介绍等。 
<p class="textbody-c2">需求分析 -- 项目要求、软件结构、功能列表、功能描述、注意事项等。 
<p class="textbody-c2">技术方案 -- 总体要求和指导思想、技术解决方案、软件开发平台、网络结构体系等。 
<p class="textbody-c2">项目管理 -- 描述公司的软件开发流程、工程实施服务、组织和人员分工、开发进度控制、软件质量保证、项目验收和人员培训、软件资料文档等。 
<p class="textbody-c2">技术支持 -- 公司的技术支持和服务介绍、服务宗旨和目标、服务级别和响应时间、技术服务区域、技术服务期限、授权用户联系人等。 
<p class="textbody-c2">系统报价 -- 软、硬件平台报价列表、软件开发费用、系统维护费用等。 
<p class="textbody-c2">项目进度 -- 整个项目的进度计划，包括签署合同、项目启动、需求分析、系统分析、程序开发、测试维护、系统集成、用户验收、用户培训等步骤的时间规划。 
<p class="textbody-c2">3. 《需求分析》 -- 包括产品概述、主要概念、操作流程、功能列表和解说、注意事项、系统环境等。以《功能要求》为基础，进行详细的功能分析 ( 包括客户提出的要求和根据开发经验建议的功能 ) ，列出本产品是什么，有什么特殊的概念，包括那些功能分类，需要具备什么功能，该功能的操作如何，实现的时候该注意什么细节，客户有什么要求，系统运行环境的要求等。这里的功能描述跟以后的使用手册是一致的。</p>
<p class="textbody-c2">4. 《技术分析》 -- 包括技术选型、技术比较、开发人员、关键技术问题的解决、技术风险、技术升级方向、技术方案评价，竞争对手技术分析等。以《需求分析》为基础，进行详细的技术分析 ( 产品的性能和实现方法 ) ，列出本项目需要使用什么技术方案，为什么，有哪些技术问题要解决 ，估计开发期间会碰到什么困难，技术方案以后如何升级，对本项目的技术有什么评价等。</p>
<p class="textbody-c2">5. 《系统分析》 -- 包括功能实现、模块组成、功能流程图、函数接口、数据字典、软件开发需要考虑的各种问题等。以《需求分析》为基础，进行详细的系统分析 ( 产品的开发和实现方法 ) ，估计开发期间需要把什么问题说明白，程序员根据《系统分析》，开始在项目主管的带领下进行编码。</p>
<p class="textbody-c2">6. 《数据库文档》 -- 包括数据库名称、表名、字段名、字段类型、字段说明、备注、字段数值计算公式等。以《系统分析》为基础，进行详细的数据库设计。必要时可以用图表解说，特别是关系数据库。</p>
<p class="textbody-c2">7. 《功能函数文档》 -- 包括变量名、变量初植、功能，函数名，参数，如何调用、备注、注意事项等。以《系统分析》为基础，进行详细的说明，列出哪个功能涉及多少个函数，以便以后程序员修改、接手和扩展。 </p>
<p class="textbody-c2">8. 《界面文档》 -- 包括软件外观、界面素材、编辑工具、文件名、菜单、按钮和其它界面部件的要求，这里与软件完成后的运行界面是一致的。 </p>
<p class="textbody-c2">9. 《编译手册》 -- 包括服务器编译环境、操作系统、编译工具、 GNU 的 C++ 编译器版本信息、目录说明、程序生成、源程序文件列表、 Makefile 配置及其相关程序的对应关系列表。客户端的编译过程、编译结果、编译示例、编译环境、操作系统、编译工具、源文件列表和制作安装程序的过程。 </p>
<p class="textbody-c2">10. 《 QA 文档》 -- 包括产品简介、产品原理、产品功能列表、功能描述、功能流程、执行结果、数据库结构、测试要求等，提供给软件测试人员使用。 </p>
<p class="textbody-c2">11. 《项目总结》 -- 包括项目简介、项目参与人员和开发时间、项目风险管理过程、项目功能列表、项目结构特点、技术特点、对项目的升级建议、对以后的项目的建议、人员素质情况等。 </p>
<p class="textbody-c2">二、产品文档 </p>
<p class="textbody-c2">1. 《产品简介》 -- 包括公司背景、产品概念、适用范围、产品功能、功能特点、运行要求和公司联系地址。 </p>
<p class="textbody-c2">2. 《产品演示》 -- 包括公司简介、产品背景、产品描述、产品特点、产品作用、适用范围、使用分析、功能模块、解决问题、合作伙伴、成功案例等。一般用 Power 
<p class="textbody-c2">point 或者 VCD 录制软件实现。 </p>
<p class="textbody-c2">3. 《疑问解答》 -- 列出用户关心的问题和处理方法。用于解答软件的操作功能和解决用户的疑难问题。 </p>
<p class="textbody-c2">4. 《功能介绍》 -- 以《需求分析》为书写基础，包括软件介绍、软件结构、功能列表、功能描述和公司联系地址。 </p>
<p class="textbody-c2">5. 《技术白皮书》 -- 以《技术分析》为书写基础，包括功能实现、技术选型、关键技术问题的解决、技术方案特点、技术升级方向等。 </p>
<p class="textbody-c2">6. 《评测报告》 -- 第三方权威评测报告。包括评测目的、评测范围、评测环境、评测内容、实测数据、性能表现、结果分析和评测总结等。 </p>
<p class="textbody-c2">7. 《安装手册》 -- 包括系统环境、运行平台、产品安装过程、初始环境设置、安装记录等。 </p>
<p class="textbody-c2">8. 《使用手册》 -- 包括产品简介、功能列表、功能描述和解释、功能操作、客户服务和联系方式等。 </p>
<p class="textbody-c2">9. 《维护手册》 -- 包括产品简介、系统须知、初始环境设置、系统配置、数据管理和备份、技术问题解答和联系方式等。 </p>
<p class="textbody-c2">10. 《用户报告》 -- 包括产品简介、购买时间、使用目的、使用时间、使用地点、实施过程、出现问题和解决、产品总结和建议等。 </p>
<p class="textbody-c2">11. 《销售培训》 -- 包括项目简介、产品功能、产品特点、商业优势、系统运行环境、适用范围、目标客户等。</p><img src ="http://www.blogjava.net/luluyanglu/aggbug/351825.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/luluyanglu/" target="_blank">大鱼</a> 2011-06-06 20:39 <a href="http://www.blogjava.net/luluyanglu/archive/2011/06/06/351825.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在项目开发过程中，应该按要求编写好十三种文档</title><link>http://www.blogjava.net/luluyanglu/archive/2011/06/06/351823.html</link><dc:creator>大鱼</dc:creator><author>大鱼</author><pubDate>Mon, 06 Jun 2011 12:09:00 GMT</pubDate><guid>http://www.blogjava.net/luluyanglu/archive/2011/06/06/351823.html</guid><wfw:comment>http://www.blogjava.net/luluyanglu/comments/351823.html</wfw:comment><comments>http://www.blogjava.net/luluyanglu/archive/2011/06/06/351823.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/luluyanglu/comments/commentRss/351823.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/luluyanglu/services/trackbacks/351823.html</trackback:ping><description><![CDATA[在项目开发过程中，应该按要求编写好十三种文档，文档编制要求具有针对性、 <br />精确性、清晰性、完整性、灵活性、可追溯性。 <br /><br />　　&#9671; 可行性分析报告： <br />　　　　说明该软件开发项目的实现在技术上、经济上和社会因素上的可行性，评述 <br />为了合理地达到开发目标可供选择的各种可能实施方案，说明并论证所选定实施方案 <br />的理由。 <br /><br />　　&#9671; 项目开发计划： <br />　　　 为软件项目实施方案制订出具体计划，应该包括各部分工作的负责人员、开 <br />发的进度、开发经费的预算、所需的硬件及软件资源等。 <br /><br />　　&#9671; 软件需求说明书（软件规格说明书）： <br />　　 对所开发软件的功能、性能、用户界面及运行环境等作出详细的说明。它是 <br />在用户与开发人员双方对软件需求取得共同理解并达成协议的条件下编写的，也是实 <br />施开发工作的基础。该说明书应给出数据逻辑和数据采集的各项要求，为生成和维护 <br />系统数据文件做好准备。 <br /><br />　　&#9671; 概要设计说明书： <br />　　　　该说明书是概要实际阶段的工作成果，它应说明功能分配、模块划分、程序 <br />的总体结构、输入输出以及接口设计、运行设计、数据结构设计和出错处理设计等， <br />为详细设计提供基础。 <br /><br />　　&#9671; 详细设计说明书： <br />　　　　 着重描述每一模块是怎样实现的，包括实现算法、逻辑流程等。 <br /><br />　　&#9671; 用户操作手册： <br />　　　　 本手册详细描述软件的功能、性能和用户界面，使用户对如何使用该软件 <br />得到具体的了解,为操作人员提供该软件各种运行情况的有关知识，特别是操作方法 <br />的具体细节。 <br /><br />　　&#9671; 测试计划： <br />　　　　为做好集成测试和验收测试，需为如何组织测试制订实施计划。计划应包括 <br />测试的内容、进度、条件、人员、测试用例的选取原则、测试结果允许的偏差范围等。 <br /><br />　　&#9671; 测试分析报告： <br />　　　　 测试工作完成以后，应提交测试计划执行情况的说明，对测试结果加以分 <br />析，并提出测试的结论意见。 <br /><br />　　&#9671; 开发进度月报： <br />　　　　 该月报系软件人员按月向管理部门提交的项目进展情况报告，报告应包括 <br />进度计划与实际执行情况的比较、阶段成果、遇到的问题和解决的办法以及下个月 <br />的打算等。 <br /><br />　　&#9671; 项目开发总结报告： <br />　　　　 软件项目开发完成以后，应与项目实施计划对照，总结实际执行的情况， <br />如进度、成果、资源利用、成本和投入的人力，此外，还需对开发工作做出评价， <br />总结出经验和教训。 <br /><br />　　&#9671; 软件维护手册： <br />　　　　主要包括软件系统说明、程序模块说明、操作环境、支持软件的说明、维护 <br />过程的说明，便于软件的维护。 <br /><br />　　&#9671; 软件问题报告： <br />　　　　 指出软件问题的登记情况，如日期、发现人、状态、问题所属模块等，为 <br />软件修改提供准备文档。 <br /><br />　　&#9671; 软件修改报告： <br />　　　　 软件产品投入运行以后，发现了需对其进行修正、更改等问题，应将存在 <br />的问题、修改的考虑以及修改的影响作出详细的描述，提交审批。&nbsp;&nbsp; <br /><img src ="http://www.blogjava.net/luluyanglu/aggbug/351823.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/luluyanglu/" target="_blank">大鱼</a> 2011-06-06 20:09 <a href="http://www.blogjava.net/luluyanglu/archive/2011/06/06/351823.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>