??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲一区二区三区久久,久久久久久久综合日本亚洲,亚洲乱码一二三四区麻豆http://www.tkk7.com/masen/category/21335.htmlzh-cnSat, 14 Jul 2007 18:20:43 GMTSat, 14 Jul 2007 18:20:43 GMT60VSShttp://www.tkk7.com/masen/articles/130303.htmlMasenMasenSat, 14 Jul 2007 12:59:00 GMThttp://www.tkk7.com/masen/articles/130303.htmlhttp://www.tkk7.com/masen/comments/130303.htmlhttp://www.tkk7.com/masen/articles/130303.html#Feedback0http://www.tkk7.com/masen/comments/commentRss/130303.htmlhttp://www.tkk7.com/masen/services/trackbacks/130303.html版本控制是工作组软g开发中的重要方面,它能防止意外的文件丢失、允许反q踪到早期版本、ƈ能对版本q行分支、合q和理。在软g开发和(zhn)需要比较两U版本的文g或找回早期版本的文gӞ源代码的控制是非常有用的?br>Visual SourceSafe 是一U源代码控制pȝQ它提供了完善的版本和配|管理功能,以及安全保护和跟t检查功能。VSS通过有关项目文档(包括文本文g、图象文件、二q制文g、声x件、视屏文Ӟ存入数据库进行项目研发管理工作。用户可以根据需要随时快速有效地׃n文g。文件一旦被dqVSSQ它的每ơ改动都会被记录下来Q用户可以恢复文件的早期版本Q项目组的其他成员也可以看到有关文档的最新版本,q对它们q行修改QVSS也同样会新的改动记录下来。你q会发现Q用VSS来组l管理项?使得目l间的沟通与合作更简易而且直观?br>VSS可以?Visual Basic、Visual C++、Visual J++、Visual InterDev、Visual FoxPro 开发环境以?Microsoft Office 应用E序集成在一P提供了方便易用、面向项目的版本控制功能。Visual SourceSafe 可以处理由各U开发语a、创作工h应用E序所创徏的Q何文件类型。在提倡文件再使用的今天,用户可以同时在文件和目U进行工作。Visual SourceSafe 面向目的特性能更有效地理工作l应用程序开发工作中的日怓Q务?

 


1Q? VSS中的文g
当你要修Ҏ(gu)个文档时Q需要先从数据库中将它签出(check outQ,或者告诉VSS你要~辑该文档。VSS会将该文档的副本从数据库中拿C的工作文件夹(working folder)中,你就可以修改你的文档了。如果其他用户再惛_同一文档q行修改QVSS会生一个信息,告诉他,该文档已被签出(check outQ,从而避免多人同时修Ҏ(gu)档,以保证文档的安全性?br>当你完成修改之后Q需要将文档 {օQcheck inQVSS。这个操作从你的工作文g?working folder)中复制被你修改的文档Qƈ它攑֛VSS数据库,以便其他用户能够及时看到文档的改动。VSS能够保存文档的所有改动,q显C最新版本,同时早期版本也会被跟t记录下来。VSS对反增量技术的q用Q仅需要用很少的磁盘空间就能得用戯取文档的所有版本?br>如果你没有修Ҏ(gu)档,你可以执行撤消签?undo check out)命oQ文档将被保存ؓ被签出(check outQ之前的状态?br>如果你只需d某一文档而ƈ不需要编辑它Q你可以执行取出(get)命oQ将文档攑օ你的工作文g夹,再选择查看文档(view)Q来查看你的文档的最新版本?/p>


1Q? VSS中的目
目(project)是指用户存储在VSS数据库中的所有文?file)的集合。用户可以在目之间或项目内部实现文件的d(add)、删?delete)、编?edit)、共?share)。一?#8220;目(project)”在很大程度上cM于一个普通系l的的文件夹Q不同的是它能更好地支持文g合ƈ(merge)、跟t?archive)和版本控?version control)功能?br>文g保存在VSS数据库中的项?project)里。你无须理存储在VSS 中的文g正本Q除非你要检查或与其它拷贝进行比较?br>VSS为每一位用h供了一份备份文件放入工作文件夹(working folder),供用户对文gq行查看与编辑。尽没有工作文件夹也可以查看文Ӟ但要想真正实现对文档的处理,必须建立工作文g夏V?/p>


1Q? VSS的版本控制功?br>VSS能够保存文g的多个版本,包括文g版本之间每一处微的变动。版本控制有以下几方面的内容Q?br>l l内合作——在~省的情况下Q一般一个文件在某一旉只允怸个用户对其进行修改,q样可以防止文g意外地被其他用户改动或者覆盖。但理员可以改动这U缺省的讄Q允许文件多层签出。这U设|也能防止过多的、不必要的改动?br>l 版本q踪——VSS能够Ҏ(gu)代码和其他文件进行存储和早期版本的追t,从而实现重建文件早期版本等有关功能?br>l 跨^台开发——在多^台开发的情况下,版本q踪用于l护核心代码?br>l 代码的再使用—?q踪E序基准使得代码可重用?/p>


1Q? 文g的拆分和׃n
在VSS中可以实C个文件被多个目׃n(share)。在一个项目中Ҏ(gu)件的改动可以自动反映到其他共享的目中去。这正提倡了代码重用。在file菜单中的properties中,点击linkQ可以查看某一文g的共享情c?br>拆分(branch)是将文g从原来共享的目中分d来的q程。它使得VSS可以实现从不同的路径q踪文g?br>注:在其他版本控制系l中Q分支是通过跟踪版本h实现的。例如:版本“2.3.9.2”是版?.3的第二个修订版本的第?ji)个分支。而VSS通过明显不同的项目名U实现对文g分支的跟t?br>拆分文g断开了共享连接,使得本项目中的文件与其他原来׃n的项目无兟뀂对此文件的修改不会再反映到其他项目上。拆分是q样被徏立的Q两个文件以前有着共同的历史记录,从实现拆分开始,他们的历史记录将被VSS分别q踪?br>拆分文g之后Qlink按纽不再显C已断开的连接,但你可以用pathQfile菜单中的properties)按纽览拆分的历史记录?br>׃nQshareQ文件就是在多个目间徏立文件的q接。拆?branch)文g是在项目之间徏立了不同的文件\径?/p>


1Q? 工作文g?working folder)
VSS是存储和理文g的工P但是~辑和编译文件必dVSS指定文g夹中q行。这个文件夹叫工作文件夹Q它可以是现存的文g夹,也可以是VSS新徏的文件夹。VSS览器在文g列表上方昄了文件的工作文g夹的路径?br>在VSSpȝ中,工作文gҎ(gu)是你真正用于处理文档的地斏V当你要~辑或修Ҏ(gu)个文档时Q必d文档实施check out 操作Q详?.3.5修改和编辑文ӞQVSS该文档从项目中拯出来Q放入你的工作文件夹。当你修改完毕ƈcheck in 文g之后QVSS又将文g重新拯到数据库中以记录你的修改?/p>


一旦你文件签出,VSS开始在你的本地Z创徏q管理你的工作文件夹?br>每一个用戗每一个项目或每一台微机都可以有自q工作文g夏V如果Joe在项?/SpreadSheet?/WordProcessor上工作,他就有相应的2个不同的工作文g夏V如果Hanna在同L目上工作,对于每一个项目她又有自己的工作文件夹?br>当你为某个项目设|了工作文g夹,你可以用它来攄你该目中包括子目再内的所


2 VSS的客L安装


2Q? 安装VSS的系l条?br>l 计算?处理? 处理器ؓ486DX/66MHz或以上PC机推荐Pentium或更高的处理器?br>l 内存QWindows 95或以后的版本要求16 MB RAM (推荐32 MB)QWindows NT 4.0要求24 MB (推荐32 MB)?br>l 盘Q客hQ典型安装:59MBQ?72 MBQ安装过E:66 MBQ?br>l 服务器:典型安装Q?28 MBQ最大安装:141 MBQ?br>l 附加盘要求QInternet ExplorerQ典型ؓ43 MBQ最?9 MBQMSDNQ典?7MBQ最?9 MB
l 驱动器:CD ROM
l 昄QVGA或更高昄器,推荐Super VGA?br>l 操作pȝQMicrosoft Windows 95或以后版本或者Microsoft Windows NT 4.0QNT要求Service Pack 3或更高版?包括Service Pack 3?br>l 外围讑֤/其它: Microsoft Internet Explorer 4.01 Service Pack 1 (包含).


2Q? 从网l安装VSS客户?br>1Q?打开本地计算机的“|上d”属性对话框Q?br>2Q?点击“配置”按纽Q?br>3Q??#8220;MICROSOFT|络用户”的属性设|ؓQ登录到WINDOWS NT 域,域名为PLANNINGQ?br>4Q?dTCP/IP、NETBEUI、IPX/SPX协议Q?br>5Q?重新启动计算机,d“planning”域;
注:理员ؓ每位NT用户讄的登录密码ؓ“111”Q用户在W一ơ登录时Q计机会提C用户修改密码?br>6Q??#8220;|上d”?#8220;planning”域中查找服务?#8220;VSSDATA”Q?br>7Q?打开׃n?#8220;VSS”文g夹ƈ双击“NETSETUP”Q?br>8Q?按照安装E序的提C开始安装?/p>


3 VSS的基本用操?/p>


3Q? dVSS
点击VSS图标或从E序菜单中运行Visual SourceSafe 6.0Q即可打开VSS览器?br>如果用户d的VSS密码和登录PLANNING域的密码是一致的Q系l将不再提示输入q入VSS数据库的密码Q如果用户ؓVSS讄的密码与dPLANNING域的密码不同Q系l将提示用户输入VSS的登录密码。关于如何修改VSS用户密码Q详?#8220;3.2.14修改用户密码”?/p>


3Q? VSS览?/p>


当你一打开VSSQ如果你讑֮了密码的话,它会提示你输入密码。如果你没有讑֮密码Q你可以直接看到览器。在览器上Q你可以览你的数据库、查看项目列表、显C文件统计信息、执行命令对文g和项目进行操作等。浏览器的最上方的标题栏是你当前q接的数据库。VSS使用W号来提供有x件和目信息?br>菜单栏的下面是常用工hQ这里有许多常用命o的按U,它可以帮你快速地执行Ҏ(gu)件的操作?br>在项目栏中,昄有项目列表,包括Ҏ(gu)目的有关信息。文件栏昄了当前项目的所有文件的列表。结果栏昄当前你所执行的操作的l果?/p>


3Q? VSS基本操作


3Q?Q?创徏新的文g?br>1Q?选中要创建新文g夹的目Q上U文件夹Q;
2Q?在file菜单中选中creat projectQ?br>3Q?写入要添加的文g夹的名称Q同时也可以在comment栏中为新建的文gҎ(gu)加备注;
4Q?点击OK?/p>


3Q?Q?d文g?br>1Q?选中你要d文g夹的目Q上U文件夹Q;
2Q?在file菜单中选中add filesQ?br>3Q在文g夹列表中选中要添加的文g夹;
4Q点击addQ同时可以在comment栏ؓ你添加的文g夹做一个简单备注;
5Q如果你要连同子文g夹一h加,选择RecursiveQ?br>5Q?点击OKQ成功添加了一个带有备注的文g夏V或者点击closeQ退出操作,q回add files对话框,点击close?/p>


3Q?Q?d文g
3Q?Q?Q?使用add命od文g
1Q选中你要d文g的文件夹Q?br>2Q?在fil菜单中选中add filesQ?br>3Q?在文件列表中选中要添加的文gQ如果要d多个文gQ可以用CTRL键或SHIFT键,同时选中多个文gQ?br>4Q点击addQ同时可以在comment栏ؓ你添加的文g夹做一个简单备注;
5Q点击OK?br>3Q?Q?Q?用拖动的Ҏ(gu)d文g/文g?br>1Q打开VSS览器,调整其大,使得Windows资源理器能够显C出来;
2Q打开Windows资源理器,调整大小Q得两个浏览器可以同时昄Q?br>3Q从Windows资源理器中选择你要d的文件或文g夹;
4Q?拖动你所选的文g或文件夹Q放入VSS览器,文g被添加进目Q而添加的文g夹将作ؓ目的子目?/p>





3Q?Q?查看文g
1Q?在文件列表中选中要查看的文gQ?br>2Q?在EDIT菜单中选中viewQ打开对话框;
3Q选中view SourceSafe’s copy of this fileQ?br>4Q点击OK?/p>


3Q?Q?创徏工作文g?br>在执行签?check in)、签?check out)、撤消签?undo check out)、取出最新版?get latest version)和文件合q?merge branches){命令时都必M用工作文件夹。工作文件夹可以随时讑֮或修改,VSSpȝ中可以通过两种方式讄工作文g夏V?br>3Q?Q?Q?专门创徏工作文g?br>1Q?在VSS览器的文g或项目列表中选中要设|工作文件夹的文?文g夹;
2Q?在file菜单中选择set working folderQ打开对话框;
3Q?在资源管理列表中选择或新建文件夹Q?br>4Q?点击OK?br>3Q?Q?Q?利用check out操作讄工作文g?br>在对文g执行check out操作Ӟ如果该文件还没有讄工作文g夹,pȝ会提C用户ؓ文g创徏或指定工作文件夹Q用户可以根据系l的提示Ҏ(gu)件进行工作文件夹的设|?/p>


3Q?Q?修改和编辑文?br>1Q?在edit菜单中选中edit fileQ打开对话框;
2Q?选择check out this file and edit it in your working folderQ?br>3Q?点击OK?br>注:如果用户已经为文件设|了工作文g夹,VSS会将该文件的一个COPY攑օ你的工作文g夹ƈ打开文gQ让用户q行修改和编辑;如果用户q没有ؓ文g讄工作文g夹,VSSpȝ会提醒用戯|工作文件夹Q用户可Ҏ(gu)pȝ提示Q先讄工作文g夹,才可以对文gq行~辑?/p>


3Q?Q?Ud文g/文g?br>3Q?Q?Q?Ud文g
你只有一U方法移动文Ӟ文件共?share)到项目中Q再其从原来的目中delete或是destroy。移动文件后Q历史信息仍然有效。但是你不能用move命o来移动单个的文g?br>3Q?Q?Q?Ud文g夹(projectQ?br>注:要用移?move)命oQ必dL理员Z讄对移动目的项目的d(add)权限和对源项目中文g的破?destroy)权限?br>使用Ud命o你可以重新定位子文g夹,其从一个文件夹Ud到另一个文件夹中。这个命令重新定义了被移动文件夹的\径?br>q个命o不可以重命名文gQ你只能通过执行重命名命令来实现它。这个移动命令不会改变文件夹的内Ҏ(gu)其中子文件夹的历史信息,它只会媄响到新的和旧的上U文件夹的历史信息?br>警告Q当你移动一个文件夹之后Q就不能再如实地重徏其上U文件夹的早期版本?br>Ud文g夹的具体操作步骤如下Q?br>1Q?选中要移动的文g夹;
2Q?在file菜单中选中moveQ打开对话框;
3Q?在列表中选择目标文g夹;
4Q?点击OK?/p>


3Q?Q?׃n文g/文g?share)
1Q?在VSS览器中选择你要׃n的目标项目?br>2Q?在SourceSafe菜单中选择shareQ打开׃n对话框?br>3Q?在file to share列表中选择你要׃n的文Ӟ如果文g没有昄Q可以旁边的目列表中查找?br>4Q?点击share?br>5Q?点击close?/p>


3Q?Q?拆分文gQbranchQ?br>3Q?Q?Q?拆分被共享的文g
1Q?在浏览器中选中你想要拆分的文gQ?br>2Q?在SourceSafe菜单中选择branchQ打开拆分对话框;
3Q?在comment中填写备注;
4Q?点击OK?br>3Q?Q?Q?用一步操作完成文件的拆分与共?br>1Q?在VSS览器中选择你要branch/share的项目;
2Q?在SourceSafe菜单中打开share对话框;
3Q?在file to share列表中选择要共享的文gQ如果你要的文g没有昄Q在目列表?/p>


3Q?Q?删除/恢复文g或文件夹
如果想从VSS中移走某个文Ӟ你必首先确定是仅仅从项目中U走Q还是从VSS数据库中U走。你q必ȝ定是要删除文Ӟ但其能够恢复,q是怹性地破坏它?br>VSS中有以下三种途径可以实现从数据库中移走文件?br>3Q?Q?Q?Q?删除QdeleteQ?br>文件从目中移走。该文g仍然存在于你的VSS数据库和其它׃n该文件的目中,你可以恢复它。此命o同样适用于项目?br>1Q?选择文g或项目;
2Q?选择file菜单中的delete命oQ?br>3Q?点击OK?br>3Q?Q?Q?Q?破坏QdestroyQ?br>删除(delete)对话框中有永久性破坏(the Destroy PermanentlyQ选项Q你一旦选中它,文g或项目将从VSS数据库中被移赎ͼ你不能再恢复它。此外,当Destroy 和Destroy Permanently命o用于׃n文gӞ它只作用于当前文件夹Q其它共享的文g夹仍然保留该文gQ该文g依然保存在VSS数据库中?br>1Q?选择文g或项目;
2Q?选择file菜单中的delete命oQ?br>3Q?选中 Destroy Permanently 选项Q?br>4Q?点击OK?br>3Q?Q?Q?Q?清除QPurgeQ?br>q个命o永久性地U走你已l删除的文g或项目,但没有破坏它。你可以使用q一命o清空你的文g或项目中的所有内容,但不能恢复它们?br>1Q?在VSS览器中选中目Q?br>2Q?打开file菜单的properties对话框,按delete按纽Q?br>3Q?在列表中选择要清除的文g名;
4Q?点击purgeQ?br>5Q?如果要l,在VSSl你的提C栏中点击yes?/p>


3Q?Q?0查看文g/文g夹的历史信息或早期版?br>在历史信息中保存有每一个文件的详细信息。在history对话框中Q你不仅可以览到文件的版本信息、备注、以及文件的相关历史记录Q也能够获取文g的某个旧版本?br>注:只有文g(file)可以从历史信息中check outQ文件夹QprojectQ不能从中check out?br>你还可以从历史信息对话框中执行get、check out、diff、pin、unpin、roll back和reprot{操作?br>要查看历史信息:
1Q?在tool菜单选中show historyQ打开history options对话框;
2Q?点击OK?/p>


3Q?Q?1获取文g的最新版?br>1Q?选择你要操作的文Ӟ也可以是多个文g或某个项目;
2Q?在SourceSafe菜单中选择get latest versionQ?br>3Q?如果你事先没有设定工作文件夹QVSS会提CZ是否讑֮一个工作文件夹Q点击OKQ设定一个工作文件夹Q?br>4Q?如果你已l确定了选项QVSS׃昄get latest version对话框,你就可以从当前的目中获取文件的最新版本的备䆾Q它攑֜你的工作文g夹中?/p>


3Q?Q?2获取文g的早期版?br>1Q?选中你要查看的文Ӟ
2Q?在tool菜单中选中show historyQ打开history option对话框;
3Q?点击OKQ打开history对话框;
4Q?选中你要看的版本Q?br>5Q?点击getQ打开get对话框;
6Q?如果你事先没有设定工作文件夹QVSS会提CZ是否讑֮一个工作文件夹Q点击OKQ设定一个工作文件夹Q?br>7Q?在取出对话框中点击OKQ文件版本的备䆾׃从当前项目调入你的工作文件夹?/p>


3Q?Q?3修改用户密码
使用更改密码命o来设|或更改你的密码。要更改密码Q必首先知道当前的密码Q如果你忘记了自q密码Q请与管理员联系?br>d的时候,VSS会提CZ输入密码以确认你的n份。如果管理员Z讄的用户名与你的网l名是相同的QVSS不会再提示你输入密码?br>注:你的VSS的密码可以与你用的操作pȝ的密码相同,也可以不同,它ƈ不会替换你操作系l的密码?br>如何更改密码Q?br>1Q?从tool菜单打开change password对话框;
2Q?在旧密码框里键入你当前的密码Q?br>3Q?在新密码框里键入你的新密码;
注:密码可以??5个字W,它以*的Ş式显C;
4Q?在确认框里再ơ键入新密码Q?br>5Q?点OK?/p>


3Q?Q?5打开/关闭数据?br>如果你用了VSSQ你的文件和目׃被存储在一个数据库中。它安全C存你的信息ƈZ提供重要的历史信息和版本跟踪。要创徏新的数据库,要与VSS理员联pR?br>3Q?Q?5Q?打开现有的数据库
要运行你的VSSQ你必须与存储你的文件的数据库连接。这一步通常由VSS自动完成Q除非你要选择其他的数据库。如果数据库q没有安装,请与理员联pR?br>1Q?从file菜单Q选择open SourceSafe databaseQ打开对话框;
2Q?从数据库列表中选择一个数据库Q?br>3Q?点击openQ打开数据库?br>3Q?Q?5Q?关闭数据?br>你只能在一个数据库中进行工作。因此,如果要关闭一个数据库Q只需打开另一个数据库卛_?/p>

Masen 2007-07-14 20:59 发表评论
]]>
模式与J2EEhttp://www.tkk7.com/masen/articles/128987.htmlMasenMasenMon, 09 Jul 2007 02:34:00 GMThttp://www.tkk7.com/masen/articles/128987.htmlhttp://www.tkk7.com/masen/comments/128987.htmlhttp://www.tkk7.com/masen/articles/128987.html#Feedback0http://www.tkk7.com/masen/comments/commentRss/128987.htmlhttp://www.tkk7.com/masen/services/trackbacks/128987.html模式与J2EE
blueski推荐 [2005-3-24]
出处Q来自网?/font>
作者:不详
 

信息工程是以当前数据pȝ为基Q在一个企业或企业的主要部门,关于信息pȝ的规 划、分析、设计和构成的一整套怺兌的正规化、自动化的技术应用?

--- James Martin 

    正如上面信息工程的创始hJames MartinZ息工E的概念所做定义类|模式(Patterns)的创始h建筑师Christopher Alexander?lt;模式语言Q?977?979>一书中Ҏ(gu)式的概念q行了如下描q?附注Q书名后面的q䆾代表在各个不同时期的作品Q下面Ş式同?Q?br>每一个模式描qC一个在我们周围不断重复发生的问题,以及该问题的解决Ҏ(gu)的核心。这P你就能一ơ又一ơ的使用该解x案而不必做重复力_。每个模式是׃部分l成的一个规则,q个规则描述特定环境、问题和解决Ҏ(gu)之间的关pR简单的_没有一个模式是独立的实体,每个模式都存在着怺支持Q但支持的程度不同:大的模式可以内嵌的模式Q同{层ơ的模式q列存在Q而小的模式被嵌入到大的模式之中?
--- Christopher Alexander  

    模式的概念在软g行业被采用以后,得到的广泛的发展Q现在已l存在许多种cd的模式应用,其中比较有名的箸作有QGoF(Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四hQ简UͼGang of Four[GoF])?lt;设计模式Q?995>QMartin Fowler?lt;分析模式Q?997>QFrank Buschmann{h?lt;体系l构模式Q?996?000>、Jim O.Coplien、Niel Harrison{h?lt;~程模式Q?995?996?998?999>和Deepak Alur{h?lt;J2EE核心模式Q?001>{,其中最具媄响的是GoF?lt;设计模式>一书,书中详细讨论了三U类型,?3U模式。好的设计源于工作中l验的积累,当设计用标准的模板以模式的方式q行交流Ӟ模式成了交和重用的强大机Ӟq且可以改善设计和开发Y件的方式。模式可以帮助我们在一个特定的环境里整理ƈ记录已知的可重现的问题及解决Ҏ(gu)Qƈ且通过模式来与他h交流q些知识Q这些模式可以解军_不同环境中重复出现的问题。模式可以设计重复使用Q重复用已知的解决Ҏ(gu)可以~短设计和开发应用的周期Q有效的使用模式Q可以我们q离重复投资的怪圈。模式的关键在于单性和可重现性?br>    举一个模式应用的单示例。例如,在你的便携式?sh)脑上运行一个进E中的对象,q且q些对象需要和q行在另一q程中的别的对象通信Q也许这一q程q不在你的便携式?sh)脑上,而在别的地方。你又不惌pȝ中的对象担心如何扑֯|上的其他对象或者执行远E过E调用。这Ӟ可以使用代理(Proxy模式Q详见GoF?lt;设计模式>一?模式来解册个问题,你能做的事就是ؓq个q程对象在你的本地过E中建立一个代理对象,该代理对象和q程对象h相同的接口。你的本地对象利用通常处理q程中的消息发送来和代理交谈。这时代理对象负责把消息传送给实在对象Q而不实在对象位于何处?br>    ׃下面要讲的Java 2q_的企业版(J2EE)应用模式中很多用C设计模式与重?Refactoring)的概念,所以在此有必要再概要介l一下重构的概念。重构已l被证明可以L软g的腐朽和衰|Q关于重构方面的有名怽当然首推是Martin Fowler所写的<重构Q?999>一书了Q书中详l介l了重构的七大类型,?0余种具体的重构手法,同时也指出测试机制在重构中的重要性。书中Martin Fowler寚w构的概念q行了详l说明:
    重构是对软g内部l构的一U调_目地是在不改变[软g之可察行为]的前提下Q提高其可理解性,降低其修Ҏ(gu)本。重构是一U有U律的、经q训l的、有条不紊的E序整理Ҏ(gu)Q可以将整理q程中不心引入的错误的机率降到最低,本质上说Q重构就是在代码写好之后改进它的设计。重构之前,首先查自己是否有一套可靠的试机制Q这些测试必L我检验能力?br>

--- Martin Fowler 

    建立于Java~程语言和Java技术基之上的J2EEq_是最适用于企业分布式环境的应用l构Q它被设计ؓ面向多层体系的结构。J2EE包含下面关键技术:Java服务器页?Java Service PageQJSP)、Servlet、Enterprise JavaBeans(EJB)lg、Java消息服务(Java Message ServiceQJMS)、JDBC和Java命名与目录接?Java Naming and Directory InterfaceQJNDI)。由于J2EEq_是分层系l,所以我们将J2EE的层ơ模型化Q这个模型得我们将职责逻辑地分C同的层中Q共分了五个层次Q客户层、表C层、业务层、集成层和资源层。因为客户层和资源层q不是J2EEq_直接x的问题,所以后面介l的15个J2EE应用模式全部属于上面五层中的中间三层Q其中表C层模式包含与Servlet和JSP技术相关的模式、业务层模式包含与EJB技术有关的模式、集成层模式包含与JMS和JDBC有关的模式。具体模式可参看下面表格Q?br>
表一Q表C层模式
模式?/strong> 单描q?/strong>
截取qo?Intercepting Filter) 促进h的预先处理和后处?/td>
前端控制?Front Controller) 提供h处理的集中控制器
视图助手(View Helper) 把与表示层格式化无关的逻辑装到助手组?/td>
复合视图(Composite View) 从原子的子组件创Z个聚集视?/td>
工作者服?Service To Worker) 合ƈ分发者组件、前端控制器和视囑֊手模?/td>
分发者视?Dispatcher View) 合ƈ分发者组件、前端控制器和视囑֊手模式,把许多动作推q到视图处理


表二Q业务层模式
模式?/strong> 单描q?/strong>
业务委托(Business Delegate) 把表C层和服务层分隔开Qƈ且提供服务的外观和代理接?/td>
值对?Value Object) 通过减少|络对话Q以加速层之间的数据交?/td>
会话外观(Session Facade) 隐藏业务对象复性,集中化工作流处理
复合实体(Composite Entity) 通过把参数相关的对象分组q单个实体beanQ表C计粗_度实体bean的最好经?/td>
值对象组装器(Value Object Assembler) 把来自多个数据源的值对象组装成一个复合值对?/td>
值列表处理器(Value List Handler) 理查询执行、结果缓册Ӏ以及结果处?/td>
服务定位?Service Locator) 装业务服务查找和创建的复杂性,定位业务服务工厂


表三Q集成层模式
模式?/strong> 单描q?/strong>
数据讉K对象(Data Access Object) 抽象数据源,提供Ҏ(gu)据的透明讉K
服务Ȁ发器(Service Activator) 加速EJBlg的异步处?/td>

    ׃J2EE模式众多Q篇q有限,q里只概要介l其中的一U应用模?- 集成层的数据讉K对象(DAO)模式Q有兴趣的读者可以参看下面参考文献中的资料?br>数据讉K对象模式

数据讉K对象模式

1、问?br>    Ҏ(gu)数据源不同,数据讉K也不同。根据存储的cd(关系数据库、面向对象数据库{?和供应商不同Q持久性存?比如数据?的访问差别也很大。当业务lg(如会话bean)或表C组?如助手组?需要访问某数据源时Q它们可以用合适的API来获得连接性,以及操作该数据源。但是在q些lg中包含连接性和数据讉K代码会引入这些组件及数据源实C间的紧密耦合。组件中q类代码依赖性应用E序从某U数据源q移到其它种cȝ数据源将变得非常ȝ和困难,当数据源变化Ӟlg也需要改变,以便于能够处理新cd的数据源?br>
2、解x?br>    使用数据讉K对象(DAO)来抽象和装所有对数据源的讉K。DAO理着与数据源的连接以便于索和存储数据QDAO实现了用来操作数据源的访问机制。依赖于DAO的业务组件ؓ其客L使用DAO提供了更单的接口QDAO完全向客L隐藏了数据源实现l节。由于当低层数据源实现变化时QDAO向客L提供的接口不会变化,所以该模式允许DAO调整C同的存储模式Q而不会媄响其客户端或业务lg。重要的是,DAO充当lg和数据源之间的适配器?br>
3、实现策?br>    通过调整抽象工厂(Abstract Factory)模式和工厂方?Factory MethodQ这二个创徏型模式的实现详情可参看GoF?lt;设计模式>一?模式QDAO模式可以辑ֈ很高的灵zd?

  • 当低层存储不会随着实现变化而变化时Q可以用工厂方法模式来实现该策略,以生应用程序需要的大量DAOQ如下面cd1所C?
  • 当低层存储随着实现的变化而变化时Q策略可以通过使用抽象工厂模式而实现。抽象工厂可以基于工厂方法实现而创建,q可使用工厂Ҏ(gu)实现Q该{略提供一个DAO的抽象工厂对象,其中该对象可以构造多U类型的具体的DAO工厂Q每个工厂支持一U不同类型的持久性存储实现。一旦你获取某特定实现的具体DAO工厂Q你可以使用它来生成该实C所支持和实现的DAOQ如下面cd2所C?



4、应?br>    当数据访问代码被直接嵌入到有其他不相兌责的某类中时Q就会修改变的十分困难。这时可以采用分L据访问代码的解决Ҏ(gu)Q将数据讉K代码抽取C个新cMQƈ且把该新c逻辑或者物理地Ud到离数据源比较近的位|,q样可以增强模块性和可重用性,如下面图3所C。具体作法可以用提炼类(Extract ClassQ一U重构手法,l节可参看Martin?lt;重构>一?Ҏ(gu)创徏一个新c,q将原来cM把数据访问代码移动到q个新的数据讉K对象(DAO)c,使用q个新的DAO对象从控制器cM讉K数据?br>    CZQ持久性逻辑被嵌入到一个用新DAO对象理的持久性的某企业新DAO对象中,把持久性代码和该企业新DAO对象代码l合h会创q、紧密耦合的代码。当持久性代码是该企业新DAO对象的一部分Ӟ对该持久性存储的M改动都要求更改该新DAO对象的持久性代码。这U耦合对企业新DAO对象代码l护会带来负面的影响。下面图4用分L据访问对象方法对其进行重构改q后的结果?br>


    ?5个J2EE模式中,每个模式都作用于设计模式和构架模式之间的某些斚w。每个模式不是孤立存在的Q需要其它模式的支持才能更加体现其含义和用处Qؓ了最大限度的用好模式Q还需要充分理解模式之间的关系?

参考文?

 

  • pȝ分析员教E?--- |晓沛等?
  • 设计模式Q可复用面向对象软g的元?--- 李英军等?
  • 重构-改善既有代码的设?--- 侯捷{译
  • J2EE核心模式 --- 牛志奇等?
  • UML_a(W二? --- 徐家译

 

 



Masen 2007-07-09 10:34 发表评论
]]>
CMMIhttp://www.tkk7.com/masen/articles/125999.htmlMasenMasenSun, 24 Jun 2007 15:57:00 GMThttp://www.tkk7.com/masen/articles/125999.htmlhttp://www.tkk7.com/masen/comments/125999.htmlhttp://www.tkk7.com/masen/articles/125999.html#Feedback0http://www.tkk7.com/masen/comments/commentRss/125999.htmlhttp://www.tkk7.com/masen/services/trackbacks/125999.html
发表日期Q?006-5-29     来源Q北软金?    
     什么是CMMIQ?br>
   软g能力成熟度模?Capability Maturity Model For Software ,USW-CMM/CMMI),是由国卡内基梅隆大学Y件工E研I所(CMU SEI)研究出的一U用于评仯Y件承包商能力q帮助改善Y件质量的Ҏ(gu)Q其目的是帮助Y件企业对软g工程q程q行理和改q,增强开发与改进能力Q从而能按时地、不预地开发出高质量的软g。其所依据的想法是Q只要集中精力持l努力去建立有效的Y件工E过E的基础l构Q不断进行管理的实践和过E的改进Q就可以克服软g开发中的困难。CMM/CMMI是目前国际上最行、最实用的一UY件生产过E标准,已经得到了国际Y件业界的认可,成ؓ当今(企业)从事规模软g生不可~少的一内宏V?br>

 

CMM

CMMI

CMM?/span>CMMI区别

1.

需求管?/span>RM
Requirements
Management

需求管?/span> RM
Requirements
Management

·

要与需求开?/span>Requirement Development q行工作

·

明确要求需求的可追溯?/span>

2.

软g目{划SPP
Software Project
Planning

目{划PP
Project Planning

·

相关人员的参?/span>

·

要有具体的Q务分解表WBS

·

x目技巧的获得

·

目数据的数据管?/span>

3.

软g目跟踪与监?/span>
SPTO
SoftwareProject
Tracking and Oversight

目监督与控?/span>PMC
Project Monitoring
and Control

·

监控具体实践U别上的U定

·

寚w险和相关人员参与的监?/span>

4.

软g子合同管?/span>
SSM
Software Subcontract
Management

供应商合同管?/span>SAM
Supplier Agreement
Management

·

引入了原"子商理"?/span>"l间协调"的意?/span>

·

合同的概?/span>

 

5.

软g质量保证SQA
Software Quality
Assurance

q程和品质量保?/span>
PPQA
Process and Product
Quality Assurance

·

对过E及工作产品的客观评?/span>

·

要正式徏立评h?/span>

6.

软g配置理SCM
Software Configuration Management

配置理CM
Configuration Management

·

"Software Library软g?/span>" ?/span>"Configuration Management System配置理pȝ"代替

·

配置理pȝ包括存储介质Q规E和登陆配置pȝ的工?/span>

7.

度量与分?/span> MA
Measurement and Analysis

·

新的q程区域

·

比原来共同特性中?/span>"度量与分?/span>"部分要求要多

·

要求l织能够pȝ地开发ƈ发展自己的度?/span>


      CMM/CMMIY件过E的成熟度分?个等U?以下?个等U的基本特征Q?br>  
    (1)初始U?initial)。工作无序,目q行q程中常攑ּ当初的计划。管理无章法Q缺乏健全的理制度。开发项目成效不E_Q项目成功主要依靠项目负责h的经验和能力Q他一但离去,工作U序面目全非?br>
    (2)可重复(Repeatable)。管理制度化Q徏立了基本的管理制度和规程Q管理工作有章可循?初步实现标准化,开发工作比较好地按标准实施?变更依法q行Q做到基U化Q稳定可跟踪Q新目的计划和理Zq去的实늻验,h重复以前成功目的环境和条g?br>
    (3)已定义(Defined)。开发过E,包括技术工作和理工作Q均已实现标准化、文档化。徏立了完善的培训制度和专家评审制度Q全部技术活动和理zd均可控制Q对目q行中的q程、岗位和职责均有共同的理??br>
    (4)已管理(Managed)。品和q程已徏立了定量的质量目标。开发活动中的生产率和质量是可量度的。已建立q程数据库。已实现目产品和过E的控制。可预测q程和品质量趋势,如预偏差,实现及时U正?br>
    (5)优化U?Optimizing)。可集中_֊改进q程Q采用新技术、新Ҏ(gu)。拥有防止出现缺陗识别薄q节以及加以改q的手段。可取得q程有效性的l计数据Qƈ可据q行分析Q从而得出最x?/td>


Masen 2007-06-24 23:57 发表评论
]]>
软g开?需求分析的20条法则(收藏Q?http://www.tkk7.com/masen/articles/111043.htmlMasenMasenMon, 16 Apr 2007 10:20:00 GMThttp://www.tkk7.com/masen/articles/111043.htmlhttp://www.tkk7.com/masen/comments/111043.htmlhttp://www.tkk7.com/masen/articles/111043.html#Feedback0http://www.tkk7.com/masen/comments/commentRss/111043.htmlhttp://www.tkk7.com/masen/services/trackbacks/111043.html
   对商业用h_他们后面是成百上千个供应商,前面是成千上万个消费֮。怎样利用软g理错综复杂的供应商和消贚w客,如何做好_C个小调料包的进、销、调、存的商品流通工作,q些都是商业企业需要信息管理系l的理由。Y件开发的意义也就在于此。而弄清商业用户如此复杂需求的真面目,正是软g开发成功的关键所在?
---  l理Q?#8220;我们要徏立一套完整的商业理软gpȝQ包括商品的q、销、调、存理Q是总部-门店的连锁经营模式。通过通信手段门店自动订货Q供应商自动l算Q卖场通过扫条码实现销售,理人员能够随时查询门店商品销售和库存情况。另外,我们也得为政府部门提供关于商品营q的报告?#8221;

--  -分析员:“我已l明白这个项目的大体l构框架Q这非常重要Q但在制定计划之前,我们必须攉一些需求?#8221;

--  -l理觉得奇怪:“我不是刚告诉你我的需求了吗?”

--  -分析员:“实际上,(zhn)只说明了整个项目的概念和目标。这些高层次的业务需求不以提供开发的内容和时间。我需要与实际要使用pȝ的业务h员进行讨论,然后才能真正明白辑ֈ业务目标所需功能和用戯求,了解清楚后,才可以发现哪些是现有lg卛_实现的,哪些是需要开发的Q这样可节省很多旉?#8221;

--  -l理Q?#8220;业务人员都在招商。他们非常忙Q没有时间与你们详细讨论各种l节。你能不能说明一下你们现有的pȝQ?#8221;

---  分析员尽量解释从用户处收集需求的合理性:“如果我们只是凭空猜想用户的要求,l果不会令h满意。我们只是Y件开发h员,而不是采购专家、营q专家或是胦务专Ӟ我们q不真正明白(zhn)这个企业内部运营需要做些什么。我曄试q,未真正明白这些问题就开始编码,l果没有人对产品满意?#8221;

---  l理坚持道:“行了Q行了,我们没有那么多的旉。让我来告诉(zhn)我们的需求。实际上我也很忙。请马上开始开发,q时将你们的进展情况告诉我?#8221;

---  风险w在需求的q雾之后

-  --以上我们看到的是某客户项目经理与pȝ开发小l的分析人员讨论业务需求。在目开发中Q所有的目风险承担者都寚w求分析阶D备感兴。这里所指的风险承担者包括客h面的目负责人和用户Q开发方面的需求分析h员和目理者。这部分工作做得CQ能开发出很优U的Y件品,同时也会令客h意。若处理不好Q则会导致误解、挫折、障以及潜在的质量和业务h(hun)g的威胁。因此可见——需求分析奠定了软g工程和项目管理的基础?

--  -拨开需求分析的q雾

---  像这L对话l常出现在Y件开发的q程中。客户项目经理的需求对分析人员来讲Q像“N看花”般模pƈ令开发者感到困惑。那么,我们拨开雑֪Q分析一下需求的具体内容Q?

-- -·业务需求——反映了l织机构或客户对pȝ、品高层次的目标要求,通常在项目定义与范围文档中予以说明?

--- ·用户需求——描qC用户使用产品必须要完成的dQ这在用实例或Ҏ(gu)脚本中予以说明?

--- ·功能需求——定义了开发h员必d现的软g功能Q用户利用pȝ能够完成他们的Q务,从而满了业务需求?

-- -·非功能性的需求——描qCpȝ展现l用L行ؓ和执行的操作{,它包括品必遵从的标准、规范和U束Q操作界面的具体l节和构造上的限制?

--- ·需求分析报告——报告所说明的功能需求充分描qC软gpȝ所应具有的外部行ؓ?#8220;需求分析报?#8221;在开发、测试、质量保证、项目管理以及相关项目功能中L重要作用?

--- 前面提到的客户项目经理通常阐明产品的高层次概念和主要业务内容,为后l工作徏立了一个指导性的框架。其他Q何说明都应遵?#8220;业务需?#8221;的规定,然?#8220;业务需?#8221;q不能ؓ开发h员提供开发所需的许多细节说明?

--- 下一层次需求——用户需求,必须从用品的用户处收集。因此,q些用户构成了另一UY件客P他们清楚要用该产品完成什么Q务和一些非功能性的Ҏ(gu)需求。例如:E序的易用性、健壮性和可靠性,而这些特性将会用户很好地接受具有该特点的Y件品?

--- l理层有时试图代替实际用戯话,但通常他们无法准确说明“用户需?#8221;。用户需求来自品的真正使用者,必须让实际用户参与到攉需求的q程中。如果不q样做,产品很可能会因缺乏够的信息而遗留不隐(zhn)?

--- 在实际需求分析过E中Q以上两U客户可能都觉得没有旉与需求分析h员讨论,有时客户q希望分析h员无讨论和~写需求说明就能说出用L需求。除非遇到的需求极为简单;否则不能q样做。如果?zhn)的组l希望Y件成功,那么必须要花上数天时间来消除需求中模糊不清的地方和一些开发者感到困惑的斚w?

--- 优秀的Y件品徏立在优秀的需求基之上Q而优U的需求源于客户与开发h员之间有效的交流和合作。只有双方参与者都明白自己需要什么、成功的合作需要什么时Q才能徏立v一U良好的合作关系?

--- ׃目的压力与日俱增,所有项目风险承担者有着一个共同目标,那就是大安惛_发出一个既能实现商业h(hun)值又能满用戯求,q能使开发者感到满的优秀软g产品?

-- -客户的需求观

-- -客户与开发h员交需要好的方法。下面徏?0条法则,客户和开发h员可以通过评审以下内容q达成共识。如果遇到分歧,通过协商达成对各自义务的怺理解Q以便减以后的擦Q如一方要求而另一方不愿意或不能够满要求Q?

--- 1?分析人员要用符合客戯a习惯的表?

--- 需求讨论集中于业务需求和dQ因此要使用术语。客户应有x语(例如Q采仗印花商品等采购术语Q教l分析h员,而客户不一定要懂得计算业的术语?

--- 2、分析h员要了解客户的业务及目标

--- 只有分析人员更好C解客L业务Q才能产品更好地满需要。这有助于开发h员设计出真正满客户需要ƈ辑ֈ期望的优U软g。ؓ帮助开发和分析人员Q客户可以考虑邀请他们观察自q工作程。如果是切换新系l,那么开发和分析人员应用一下目前的旧系l,有利于他们明白目前系l是怎样工作的,其流E情况以及可供改q之处。s

--- 3?分析人员必须~写软g需求报?

--- 分析人员应将从客户那里获得的所有信息进行整理,以区分业务需求及规范、功能需求、质量目标、解x法和其他信息。通过q些分析Q客户就能得C?#8220;需求分析报?#8221;Q此份报告开发h员和客户之间针对要开发的产品内容达成协议。报告应以一U客戯为易于翻阅和理解的方式组l编写。客戯评审此报告,以确保报告内容准完整地表达光求。一份高质量?#8220;需求分析报?#8221;有助于开发h员开发出真正需要的产品?

--- 4?要求得到需求工作结果的解释说明

--- 分析人员可能采用了多U图表作为文字?#8220;需求分析报?#8221;的补充说明,因ؓ工作图表能很清晰地描q出pȝ行ؓ的某些方面,所以报告中各种图表有着极高的h(hun)|虽然它们不太难于理解Q但是客户可能对此ƈ不熟(zhn),因此客户可以要求分析人员解释说明每个图表的作用、符L意义和需求开发工作的l果Q以及怎样查图表有无错误及不一致等?

--- 5?开发h员要重客户的意?

--- 如果用户与开发h员之间不能相互理解,那关于需求的讨论会有障。共同合作能使大?#8220;兼听则明”。参与需求开发过E的客户有权要求开发h员尊重他们ƈ珍惜他们为项目成功所付出的时_同样Q客户也应对开发h员ؓ目成功q一共同目标所做出的努力表C尊重?

--- 6?开发h员要寚w求及产品实施提出和解x?

--- 通常客户所说的“需?#8221;已经是一U实际可行的实施Ҏ(gu)Q分析h员应力从这些解x法中了解真正的业务需求,同时q应扑և已有pȝ与当前业务不W之处,以确保品不会无效或低效Q在d弄清业务领域内的事情后,分析人员p提出相当好的改进Ҏ(gu)Q有l验且有创造力的分析h员还能提出增加一些用h有发现的很有价值的pȝҎ(gu)?

--- 7?描述产品使用Ҏ(gu)?

--- 客户可以要求分析人员在实现功能需求的同时q注意Y件的易用性,因ؓq些易用Ҏ(gu)或质量属性能使客h准确、高效地完成d。例如:客户有时要求产品?#8220;界面友好”?#8220;健壮”?#8220;高效?#8221;Q但对于开发h员来Ԍ太主观了q无实用价倹{正的做法是,分析人员通过询问和调查了解客h要的“友好、健壮、高效所包含的具体特性,具体分析哪些Ҏ(gu)对哪些Ҏ(gu)有负面影响Q在性能代h(hun)和所提出解决Ҏ(gu)的预期利益之间做出权衡,以确保做出合理的取舍?

--- 8?允许重用已有的Y件组?

--- 需求通常有一定灵zL,分析人员可能发现已有的某个Y件组件与客户描述的需求很相符Q在q种情况下,分析人员应提供一些修攚w求的选择以便开发h员能够降低新pȝ的开发成本和节省旉Q而不必严格按原有的需求说明开发。所以说Q如果想在品中使用一些已有的商业常用lgQ而它们ƈ不完全适合(zhn)所需的特性,q时一定程度上的需求灵zL就昑־极ؓ重要了?

--- 9?要求对变更的代h(hun)提供真实可靠的评?

--- 有时Qh们面临更好、也更昂늚Ҏ(gu)Ӟ会做Z同的选择。而这Ӟ寚w求变更的影响q行评估从而对业务决策提供帮助Q是十分必要的。所以,客户有权利要求开发h员通过分析l出一个真实可信的评估Q包括媄响、成本和得失{。开发h员不能由于不惛_施变更而随意夸大评估成本?

--- 10?获得满客户功能和质量要求的pȝ

--- 每个人都希望目成功Q但q不仅要求客戯清晰地告知开发h员关于系l?#8220;做什?#8221;所需的所有信息,而且q要求开发h员能通过交流了解清楚取舍与限Ӟ一定要明确说明(zhn)的假设和潜在的期望Q否则,开发h员开发出的品很可能无法让?zhn)满意?

--- 11?l分析h员讲解?zhn)的业?

--- 分析人员要依靠客戯解业务概念及术语Q但客户不能指望分析人员会成领域的专Ӟ而只能让他们明白(zhn)的问题和目标;不要期望分析人员能把握客户业务的l微潜在之处Q他们可能不知道那些对于客户来说理所当然?#8220;常识”?

--- 12?抽出旉清楚地说明ƈ完善需?

--- 客户很忙Q但无论如何客户有必要抽出时间参?#8220;头脑高峰会议”的讨论,接受采访或其他获取需求的zd。有些分析h员可能先明白了?zhn)的观点,而过后发现还需要?zhn)的讲解,q时误心对待一些需求和需求的_֌工作q程中的反复Q因为它是h们交中很自然的现象Q何况这对Y件品的成功极ؓ重要?

--- 13?准确而详l地说明需?

--- ~写一份清晰、准的需求文档是很困隄。由于处理细节问题不但烦且耗时Q因此很Ҏ(gu)留下模糊不清的需求。但是在开发过E中Q必解册U模p性和不准性,而客h恰是册些问题作出决定的最佳h选,否则Q就只好靠开发h员去正确猜测了?

--- 在需求分析中暂时加上“待定”标志是个Ҏ(gu)。用该标志可指明哪些是需要进一步讨论、分析或增加信息的地方,有时也可能因为某个特D需求难以解x没有人愿意处理它而标注上“待定”。客戯量每w求的内容都阐q清楚,以便分析人员能准地它们写q?#8220;软g需求报?#8221;中去。如果客户一时不能准表达,通常p求用原型技术,通过原型开发,客户可以同开发h员一起反复修改,不断完善需求定义?

--- 14?及时作出军_

--- 分析人员会要求客户作Z些选择和决定,q些军_包括来自多个用户提出的处理方法或在质量特性冲H和信息准确度中选择折衷Ҏ(gu){。有权作出决定的客户必须U极地对待这一切,快做处理,做决定,因ؓ开发h员通常只有{客户做出决定才能行动,而这U等待会延误目的进展?

--- 15?重开发h员的需求可行性及成本评估

--- 所有的软g功能都有其成本。客h希望的某些品特性可能在技术上行不通,或者实现它要付出极高的代h(hun)Q而某些需求试图达到在操作环境中不可能辑ֈ的性能Q或试图得到一些根本得不到的数据。开发h员会Ҏ(gu)作出负面的评P客户应该重他们的意见?

--- 16?划分需求的优先U?

--- l大多数目没有_的时间或资源实现功能性的每个l节。决定哪些特性是必要的,哪些是重要的Q是需求开发的主要部分Q这只能由客戯责设定需求优先Q因为开发者不可能按照客户的观点决定需求优先Q开发h员将为?zhn)定优先U提供有x个需求的p和风险的信息?

--- 在时间和资源限制下,关于所需Ҏ(gu)能否完成或完成多少应尊重开发h员的意见。尽没有h愿意看到自己所希望的需求在目中未被实玎ͼ但毕竟是要面对现实,业务决策有时不得不依据优先来羃?yu)项目范围或廉工期Q或增加资源Q或在质量上L折衷?

--- 17?评审需求文档和原型

--- 客户评审需求文档,是给分析人员带来反馈信息的一个机会。如果客戯为编写的“需求分析报?#8221;不够准确Q就有必要尽早告知分析h员ƈ为改q提供徏议?

--- 更好的办法是先ؓ产品开发一个原型。这样客户就能提供更有h(hun)值的反馈信息l开发h员,使他们更好地理解(zhn)的需求;原型q是一个实际应用品,但开发h员能其转化、扩充成功能齐全的系l?

--- 18?需求变更要立即联系

--- 不断的需求变_会给在预定计划内完成的质量品带来严重的不利影响。变更是不可避免的,但在开发周期中Q变更越在晚期出玎ͼ其媄响越大;变更不仅会导致代h高的q工Q而且工期被延误Q特别是在大体结构已完成后又需要增加新Ҏ(gu)时。所以,一旦客户发现需要变更需求时Q请立即通知分析人员?

--- 19?늅开发小l处理需求变更的q程

--- 为将变更带来的负面媄响减到最低限度,所有参与者必遵照项目变更控制过E。这要求不放弃所有提出的变更Q对每项要求的变更进行分析、综合考虑Q最后做出合适的决策Q以定应将哪些变更引入目中?

--- 20?重开发h员采用的需求分析过E?

--- 软g开发中最h战性的莫过于收集需求ƈ定其正性,分析人员采用的方法有其合理性。也许客戯为收集需求的q程不太划算Q但L信花在需求开发上的时间是非常有h(hun)值的Q如果?zhn)理解q支持分析h员ؓ攉、编写需求文档和保其质量所采用的技术,那么整个q程会更ؓ利?

--- “需求确?#8221;意味着什?

--- ?#8220;需求分析报?#8221;上签字确认,通常被认为是客户同意需求分析的标志行ؓQ然而实际操作中Q客户往往?#8220;{֭”看作是毫无意义的事情?#8220;他们要我在需求文档的最后一行下面签名,于是我就{了Q否则这些开发h员不开始编码?#8221;

--- q种态度带来麻烦,譬如客户x攚w求或对品不满时׃_“不错Q我是在需求分析报告上{了字,但我q没有时间去d所有的内容Q我是相信你们的Q是你们非让我签字的?#8221;

--- 同样问题也会发生在仅?#8220;{֭认”看作是完成Q务的分析人员w上Q一旦有需求变更出玎ͼ他便指着“需求分析报?#8221;_“(zhn)已l在需求上{֭了,所以这些就是我们所开发的Q如果?zhn)惌别的什么,(zhn)应早些告诉我们?#8221;

--- q两U态度都是不对的。因Z可能在项目的早期׃解所有的需求,而且毫无疑问地需求将会出现变_?#8220;需求分析报?#8221;上签字确认是l止需求分析过E的正确Ҏ(gu)Q所以我们必L白签字意味着什么?

--- ?#8220;需求分析报?#8221;的签名是建立在一个需求协议的基线上,因此我们对签名应该这L解:“我同意这份需求文档表qC我们寚w目Y仉求的了解Q进一步的变更可在此基U上通过目定义的变更过E来q行。我知道变更可能会我们重新协商成本、资源和目阶段d{事宜?#8221;寚w求分析达成一定的p会双方易于忍受来的摩擦,q些摩擦来源于项目的改进和需求的误差或市场和业务的新要求{?

--- 需求确认将q雾拨散Q显现需求的真面目,l初步的需求开发工作画上了双方都明的句号Qƈ有助于Ş成一个持l良好的客户与开发h员的关系Qؓ目的成功奠定了坚实的基

Masen 2007-04-16 18:20 发表评论
]]>
与客户合作的 6 U方??http://www.tkk7.com/masen/articles/108968.htmlMasenMasenFri, 06 Apr 2007 08:27:00 GMThttp://www.tkk7.com/masen/articles/108968.htmlhttp://www.tkk7.com/masen/comments/108968.htmlhttp://www.tkk7.com/masen/articles/108968.html#Feedback0http://www.tkk7.com/masen/comments/commentRss/108968.htmlhttp://www.tkk7.com/masen/services/trackbacks/108968.html在当前的商业气候之下,׃销售不景气Q消费者对商品购买更加的理智,聪明的企业需要固守一些基本的商业法则。即Q?/p>

掌握客户的规?/p>

提高竞争?/p>

但是Q过去那些以客户Z心,以客L满意度和忠诚度作为目标的战略q未q时。过去,那些家庭l营的小零售商店只要有新货到来,老板׃打电(sh)话通知回头客。在二十一世纪Q这U做法同h有过Ӟ你应该及时向客户提供商品及其折扣信息?/p>

(zhn)可以利用网上应用程序,让?zhn)与重要客户保持即时沟通?/p>

以下是六U通过技术手D与客户保持合作的方法:

1. 在线׃n文档

当进行团队或者远E办公的时候,你能够?#8220;微YSharePoint团队服务”{程序徏立一U安全的核心|站。这U群件站炚w过密码q行讉KQ每位成员(客户或员工)能够跟踪目的每一个进展情c?/p>

Pam Stein 是美国佛(jng)|里辑ַ伯克莱市 Clientise.com互联|营销公司的创始hQ他_“q是一U非常有效的工作方式”。例如,假设有一份合同样本需要用户填上详l资料,(zhn)可以将文g攑֜|站上,q样Q每一个h都可以在屏幕上阅读,修改q䆾合同?/p>

Stein _“但是Q文档共享实际上只能在有控制机制的参与下才能够发挥其作用?#8221;他认为,应该建立一U系l,以确保一ơ只有一个有效的版本起作用。Stein打比方说Q?#8220;q就象是图书馆,同一本书有h借,有hq?#8221;

2. 对品测试进行协?/h3>

扩大产品U或服务始终要付出很高的代h(hun)Q这U代价不仅仅是指金钱Q还包括旉、资源、感情以及以及其分散其他业务_֊的代仗?/p>

FeedbackSTAT.com 是位于美国亚利桑那州图森市的一家市场研I公司,公司由六位员工组成,他们专门研究卫生保健市场Q创始h Russ Wedemeyer 通过Z业与客户提供实时通信服务来降低买卖双方的风险?/p>

例如Q一家生物科技公司正在开发一h(hun)值数百万元美元的产品Q这个项目可能需要在全球q行许多的调查研I。在l过现场分析之后QFeedbackSTAT.com为其 设计了在U调查与一个由密码保护的网站。忙的研究人员能够随时随地的登录网站,评估产品q发表意见?/p>

FeedbackSTAT 的其中一位客h Nichols Institute DiagnosticsQ这是美国加利福g州圣胡安-卡皮斯特拉诺市的一家体外试验公司。Phil Miller 是公司负责品研I和开发的副总裁。他_“通过 FeedbackSTAT 的调查研IӞ我们收到了大量客观公正的重要数据。我们有一些高U医疗专家做NQ而这些专家^时很隄C赗与ȝ调查相比Q在U调查研I的速度要快 80%Q?而且成本是离U调查的一半都不到。Wedemeyer 估计Q成本大U节省了7千至 2万美元左叟?#8221;

3. 让客L极参?/h3>

Andy Getsey 是美国加利福g州旧金山?AtomicPR公司 的首席执行官与创始hQ该公司成立于两q之前,现在Q这家公x构一q有 150 万美元的收入Qƈ且拥有很多快速发展的技术型客户。他_“传统的公兛_司费用不Ԍ他们的效率低下而且~Z灉|性,他们客户钓上来以后便撒手不他们了?#8221;

Getsey _ AtomicPR公司的成立就扭{了这U局面。公司有 18 位员工,没有专用办公室(但是有会议室Q,整个工作室能够用无U连接。公司完全通过联网q行通力合作。他_“我们没有沿袭传统的体p,因此Q我们能够采用最新的技术?#8221;

公司的员工在专用的网站上制定计划与项目,q样客户可以dq参与其中。媒体宣传活动的效果与质量也能够借助q套pȝq行跟踪和估量。Getsey _“我们在制定策略和目标时会让客户全E参与?#8221;公司为所有的员工在家中安装了 DSL|络QƈZ们配备了手机Q一旦员工出差,他们可以通过q套pȝ和总部取得联系。Getsey _q样做的好处是:

客户与公司小l的关系更加紧密

更能引v双方的共鸣,增强了客戯买的兴趣

初期工作能够更快地获得反馈意见,避免了时间浪贏V?/p>

׃是在U自助式讉K目和信息,因此提高了高U客L参与E度?/p>

减少了花在内部管理方面的旉

4. 让客戯我推销

五年之前Q让客户使用|上订购的Ş式显得非常的新奇。然而,现在q一切都不是什么神U的事情了,但仍然有很多中小型企业不怿?sh)子商务交易的作用。如果?zhn)是其中一分子Q那׃妨去认识 Debbie Lombardi吧,他是国h狄格州哈特福德市的Barter Business Unlimited贸易集团的创始h。BBU公司已经成立10q了Q员工h数只?2人,它曾l也有过一个企业网站,但一直都没有什么特艌Ӏ去q十二月QLombardi 军_转向在线销售。将招聘传统的销售和支持人员的成本花在投资技术方面。她和她的小l在一月䆾开始筹划网站。她_“我们׃好几百个时Q我们想考虑周全?#8221;除了推广之外Q改版的|站p?5 万美元?/p>

l果是,自八月vQBBU 的业务增长了 15%Q当Ӟ当时的经Ş势也不错。她惊喜地发玎ͼ一些服务方面的专家Q象律师、医生和牙医{等Q也会乐意访问她们的站点?#8221;她说Q?#8220;我们|站知名度已l很响了。这出了我原来的预期?#8221;Q有关电(sh)子商务Y件的详情Q请查阅 Microsoft Commerce Manager。)

5. x获取反馈信息

通常来说Q当消费者开始高声讨说法的时候,他们已经准备转向其它产品了,客户对品的满意E度是有一个过E的Q然而,把握客户的心理L一件很玄的事情?/p>

大公司可能会耗费数周旉q行市场调研以及案头分析工作Q但你可能没有时间去q么做。让我们x 2001q的情况吧,(zhn)会毫无疑问的发玎ͼ当时的经气候可谓变q莫,直超ZM人的预测。?

解决之道是|络。除了测试客h意度的调查之外,Clientise.com ?Stein q创Z要求提供联系Z息的调查问卷。Clientise.com Ҏ(gu)集到的个Z息严g密?/p>

Walker Information 是美国印地安那州印第安纳波利斯的商业对商业信息系l提供商Q它主要对客h意度、失ȝ客户、员工的责Q心、公司的信誉以及商业道dq行评测报告 —他们的许多工作都是通过|上调查来完成的。公司的副总裁 Jeff Marr _“适当的调查可以追t回头客L意见情况。利用这些结果,你可以找出ƈ解决公司l营上存在的问题?#8221;更ؓ的是Q这些结果是以图表和条Ş囄形式交给(zhn),因此Q?zhn)不必再手忙脚׃?/p>

6. 让客戯己决?/h3>

国?jng)罗里达州圣匹兹堡市?Omega Insurance Services 公司主要负责力_索赔的评伎ͼq家公司在五q之内,已经从从一家小公司成长Z拥有 200 多位员工的大型企业。公司创始hFargo 他的迅速发展归功于企业软g的帮助。该软g能够?他的客户dC们的|站Q通过在线录像片断和报告Ş式跟t每一宗保险单的进展情cFargo _“我们不再邮寄录像带?#8221;他的|上数据库和应用E序UCؓ“Power Facts”Q它通过 Microsoft SQL Server 软gq行。Fargo _“Power Facts 向客h供结果,q且让客户可以随心所Ʋ地获取信息Q这大大节省了管理时间与资源Q让我们受益匪浅?#8221;

现在Q技术能够得员工在家办公。当高l理们满世界的奔波,客户因ؓq迟得不到项目进展情况而暴跛_L时候,q样的网l化选择可谓雪中送炭?/p>

不管(zhn)选择哪一U设备或技术,光要的目标便是要简单化。让(zhn)的组?/em>(zhn)的客户能够快速、方便地讉K内部信息。然后观注?zhn)的业务增ѝ?/p>

Masen 2007-04-06 16:27 发表评论
]]> վ֩ģ壺 ɫƬѿ| 88xxѹۿ| 97seۺ | ޾ƷۺϾþ| þerƷѹۿ2| 91Ʒˬž߹ۿ| ëƬ| AVרӰ| xxxxxܴƬ߹ۿ| պѹۿ| ѹƵ| ߹ۿר| þþƷž޾Ʒ| ѿƷ鶹| þþþþëƬѲ | AVպƷþþþ| Ƶۿ | aƷžžŴƬѿ| Ļ| Ļһ| aƬѹۿ| 2017һ| ҹƷþþþþ˳| ɫƬѿ| ޾ƷavƬ| þ޾Ʒa | ҹѸӰԺ| 99߹ۿƵվ| 99Ļ| ձvƬһ| þþƷר| һëƬƵѹۿ | һһˬһ߽дƵ| AV˾Ʒպһ18p| һëƬѹۿշ| anպר| þһ| ޾ƷĻ| ڵƵ| Ѹ弤Ƶ| Ļ߾ƷѹۿƵ|