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>
信息工程是以当前数据pȝ为基Q在一个企业或企业的主要部门,关于信息pȝ的规 划、分析、设计和构成的一整套怺兌的正规化、自动化的技术应用?
模式的概念在软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>
模式?/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到视图处理 |
模式?/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) | 装业务服务查找和创建的复杂性,定位业务服务工厂 |
模式?/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?
什么是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/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> |
• |
掌握客户的规?/p> |
• |
提高竞争?/p> |
但是Q过去那些以客户Z心,以客L满意度和忠诚度作为目标的战略q未q时。过去,那些家庭l营的小零售商店只要有新货到来,老板׃打电(sh)话通知回头客。在二十一世纪Q这U做法同h有过Ӟ你应该及时向客户提供商品及其折扣信息?/p>
(zhn)可以利用网上应用程序,让?zhn)与重要客户保持即时沟通?/p>
以下是六U通过技术手D与客户保持合作的方法:
当进行团队或者远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;
扩大产品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;
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> |
• |
减少了花在内部管理方面的旉 |
五年之前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。)
通常来说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>
国?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>
]]>