● 技巧方法:
☆ 真正以用户为中心的设计,到客户的实际工作环境中观察和记录;
☆ 仔细查找各种业务主角,并描述不同主角的各种操作流程与步骤;
☆ 简化需求,将客户的需求归纳整理,抓住核心问题;
☆ 细化需求,针对核心问题,模拟用户角色,进一步确认流程和规范;
☆ 认真制定设计计划书,为下阶段的工作打好基础;
在这个阶段,我们将客户的需求转换成一个切实可行的设计方案,并为客户重新进行业务优化和组合,定出项目目标。
现在我们总算找到方向了,剩下的就是开始攻坚。向下一个阶段进发……
第三阶段:系统分析及软件建模
如果说前面两个阶段是设计大楼蓝图,那么,我们现在要开始打地基了。
系统分析和建模是项目开发的核心工作,对于一个有经验的开发人员来说,客户的需求有很多方式可以实现,但是不同的构架对系统今后的维护、升级和扩展具有天差地别的影响,一个不合理的结构用不了多久就得完全抛弃,重新开发。
如果眼光仅仅放在满足客户眼下的需求,当问题出现时再不断修补,头痛医头,脚痛医脚,甚至系统构架需要不断调整或重新设计,那么,很快就会陷入代码泥潭或坠入系统重复开发的无底深渊,项目完成时的成就感将被无止境的沮丧所代替。系统分析决定系统开发的成败,软件建模使系统开发走向成熟。
客户的需求一定会变,服务器和客户端环境也不断在变,考虑到不同的操作平台、不同的应用服务器、不同的数据库、不同的编程语言、不同的传输介质等等所带来的影响,系统分析员面临着艰难的选择,任何人都不可能掌握甚至说精通全部的技术,孰优孰劣,何去何从?我们仿佛走到了迷宫的中央,四处都是通道,却不知道哪里才是最快的出口。
“采用面向对象的开发模式并使用UML(统一建模语言)对系统建模!”,网站即软件,软件开发方法同样适用于网站项目开发,这给系统分析员指出了方向。
建模并不等同于程序编码,利用同样的UML模型可以生成不同语言的框架代码,而且可以通过反向生成,在编写代码过程中及时更新UML模型,这对系统分析员和项目管理人员来说是梦寐以求的。只要能够仔细地把握客户的需求,不断改进软件模型,那么采用什么样的语言开发已经成了次要,大量的需求积累和分析工作能在客户需求变化时得到高度的复用,即使系统采用新的语言重新开发,需要的也仅仅是编码部分的工作。
● 重要角色:系统分析师,构架设计师,数据库工程师,业务流程分析师。
● 获取文档:《需求分析报告》、《项目模型报告》、《用户界面原型》、《设计开发计划书》。
● 里 程 碑:《系统分析报告》、《设计及编码规范》、《系统模型工件》。
● 注意事项:
☆ 客户比较关注的是功能实现,但是不意味着客户不在乎系统的性能,成功的项目开发不会仅仅为表面上达到客户的需求而忽视系统的缺陷和瑕疵,网站项目同样需要有”精品”意识,树立一个品牌将为自己赢得更多的机会和更丰厚的回报。
☆ 客户的初期需求或许很简单,但开发人员不能不为客户潜在的巨大需求打下坚实的基础。
☆ 也许是因为项目周期过短、开发人员技能达不到等因素,在小型项目开发中难以采用进行规范的系统分析设计和建模,此时,应尽可能采用模块化设计、争取代码最大限度的复用。
● 技巧方法:
☆ 补充完善上一阶段可能欠缺的系统性能需求;
☆ 系统分析员需要站在全局出发,设计合理可行的系统方案;
☆ 在需求不明的情况下设计多种解决方案,供客户选择;
☆ 使用UML建模方式,将客户变化的需求映射到模型中,大大提高系统的扩展性和开发效率。
走到这一步,最难的骨头被啃了下来,当一个合理可靠的系统核心被设计出来时,客户会很诧异地问他为什么看不到一行的代码,但成熟的系统分析员已经成竹在胸。
下面让我们一起看看整个系统是如何构建起来的……
第四阶段:界面设计、交互设计及程序开发
在网站项目开发过程中,这个阶段也叫做构建阶段,是工作量最大、最艰苦、最难以控制的阶段。不管一座大楼蓝图设计得多宏伟,若没有管道工、泥瓦匠、水电工等各种工匠一砖一瓦地艰辛积累,密切协作,这座大楼始终是空中楼阁、海市蜃楼。
如果客户此时参观项目小组的工作,他可以看到:
● 美工设计师在根据用户界面原型进行美工设计,准确地将系统的形象进行定位;
● 交互设计师将美工的作品根据业务流程进行网页的编辑,为用户体贴地设计着交互程序;
● 程序员根据系统分析员分配的模块编写代码,一行行代码将系统浇注起来,一个个模块开始活起来;
● 测试工程师不断地检验着每个人的工作,单元测试、集成测试、负荷测试;
● 文档工程师开始收集、管理各种开发文档,每天检查更新记录和随时保证重要文档处于最新版本;
● 系统管理员为每个开发人员部署开发环境,并保证着最佳的工作状态;
项目小组在项目经理的带领下紧张而有序地进行着,全速开动。系统构建阶段,控制开发质量,保证进度是项目经理最关注的焦点,通过合理地分配资源和任务、建立小组成员间的有效沟通和采用相关管理软件控制能够有效地提高开发质量和进度。
● 重要角色:美工分析师、交互设计师、程序员、测试工程师、文档工程师。
● 获取文档:《需求分析报告》、《项目模型报告》、《用户界面原型》、《设计开发计划书》、《系统分析报告》、《设计及编码规范》、《系统模型工件》。
● 里 程 碑:《程序模块》、《开发文档》、《按客户需求开发完成的系统》。
● 注意事项:
☆ 人不是机器。当人成为项目开发流程中一个链条的时候,谁也保证不了人可以像机器一样精确而不知疲倦地工作,因此,项目管理人员要保障小组成员之间有效地沟通和协作。在划艇比赛中,不是人数越多就划的越快,当有人喊着号子,大家齐心协力协调行动时,这艘皮艇才能快速地向目标驶近。
☆ 测试是保证质量最直接最有效的方式,只有不断地测试、测试、再测试,才能使系统达到满意的质量。把BUG消除在萌芽状态是最理想的,遗憾的是老虎也有打盹的时候,何况人还会偷懒?系统构建进度最快的时候通常就是BUG产生最多的时候,只有进行反复交叉的测试才能确保质量。
☆ 交互设计师是系统和用户之间的桥梁,真正从用户的方便和习惯上下功夫,无论是一个弹出窗口还是站点的导航设计,甚至意外出错的提示等等,都需要精心设计,反复雕琢。交互设计如果能解除新用户对系统的恐惧,将会赢得意想不到的奇效。
☆ 程序员在编码过程中需要和系统分析员保持密切的协作和沟通,在规范的系统开发过程中,随意的个性化是极其有害的,任何一个自定义函数或字段都可能造成系统崩溃。构建一个系统好比将1000块砖头垒成一叠,程序员再往上加一个模块上去的时候都得想想摆正了没有,否则垒不到几十块的时候,系统就轰然倒塌了。系统就是这么一回事,一点也不好笑。
● 技巧方法:
☆ 利用项目管理工具对项目进行管理,无论是Project还是Starteam,或是其他工具都行;
☆ 建立文档管理规范,采用相应的文档管理工具对版本进行控制,PVCS或VSS都是可选择的工具;
☆ 创建团队的沟通环境和渠道,利用邮件或者论坛,开会或者递纸条,一切有利于交流的方式都可以,以保证协作成员之间迅速绕过障碍,奔向目标,人力资源经理的忠告是:沟通是提高团队凝聚力最有效的办法;
☆ 建立BUG汇报及处理系统。只要是软件,就一定有BUG,虽然这是个灰色笑话,但捕捉和消灭BUG是开发人员的天生义务,建立BUG管理系统可以争取使同样的错误不再犯第二次,当系统日渐完善的时候,那长长的BUG消灭清单就像工程师们的累累战果。
系统的全貌终于露了出来,客户的心这时候总算踏实了些。
不过这时候可不是结束的时候,在软件开发过程中,剩下的10%工作量都可能会拖延占用项目的90%时间。
第五阶段:系统测试、部署和文档编写
意外在网站项目管理中不是个新鲜词,最大的意外就是没有意外。
系统开发完成后,虽然经过了一次又一次的测试,但是在部署过程中仍然随时存在着意外。此时,最常听到开发人员说的一句话就是:“奇怪?!怎么在我这里好好的,放到别人那里就不行了?”
● 测试工程师根据《系统分析报告》和《项目模型报告》模拟测试环境,按照测试指标对系统的功能和性能进行全面的测试,编写测试报告,并通知项目成员进行修正。
● 部署工程师会同客户代表进行安排配置和调试,直至正式发布启用。
● 文档工程师撰写各种文档,包括系统白皮书,用户使用手册,管理员手册,客户培训文档,用户帮助等等,并总结设计和开发文档,进行项目总结。
中国有句古话:“善始善终。”项目小组协助客户快速部署并提供相应文档,不但能为售后服务节省大量精力和成本,同时能够大幅度提高客户满意度。
● 重要角色:测试工程师、文档工程师、部署工程师、客户代表。
● 获取文档:《需求分析报告》、《项目模型报告》、《用户界面原型》、《设计开发计划书》、《系统分析报告》。
● 里 程 碑:《测试报告》、《技术白皮书》、《用户使用手册》、《客户培训文档》、《用户帮助》。
● 注意事项:
☆ 测试不单包括功能测试,特别需要注意到性能测试和兼容性测试,应尽可能创建不同的模拟环境,取得完整的测试数据,针对测试结果对系统进行改进。
☆ 开发环境和部署环境不同造成实施过程出现“意外”一点也不意外,只有到客户能够良好地驾驭系统才算达成目标。
☆ 对照前两个阶段所做的《需求分析报告》和《项目模型报告》,检查目标是否都已经实现了?马虎的项目小组也许经过长时间的开发,已经忘记了最早的项目目标,而需求计划在开发过程中也许经过了大量改动,事实也许就是这样,等做完了,客户和你才找到了真正需要的东西。
● 技巧方法:
☆ 根据系统的特性,采用专用测试软件或编写测试工具,有助于提高测试的效率、准确性和完整性。
☆ 选择对系统完全陌生的典型用户模拟操作,能够发现大量系统缺陷。
☆ 无论是网页模板还是程序模块,养成在源代码中写注释的良好习惯,对开发过程中任务交接、纠错或今后二次开发都非常重要。
☆ 交给客户的文档越规范详尽,后期的成本越节省。
当系统终于如期运转的时候,该好好祝贺你了,系统开发完毕,对于项目小组来说接近了终点,但是对于客户来说才是一个起点,项目进入收尾阶段就是从客户培训开始的。
文章来源于领测软件测试网 https://www.ltesting.net/