|
|
关于开发环节小议
我近来导入OOAD,时间不多,故也未曾花些时间来看一下了,因为要拼命学习再学习,年老矣,已不复当年勇喽
关于开发流程,简单来讲确实简单,然尔如果要真的开始布置一套系统的开发,却不再是那么简单的事情,主要问题在一个是规划时的边界界定(包括分析到模块),二个是工作过程中的协调,而第一个是第二个的基础,如果说边界不够清晰则在协调的时候会很麻烦,因为相互间的耦合性太强。
在协调者方面来讲,一是只擅长作设计,当然我们国内的PM一般都是从CODING开始做起,这种情况一般不多见,而且以国内目前的开发体系来讲,这种人要不就非常厉害,即可以协调得了组里的开发人员,要不就是最终流产;二是编码高手,但PM经验不足,这样子就会容易出现大包揽情况,怎么讲呢,就是比如是几个人的小组,协调者协调到最后,整个流程变成了一个人在做的事儿了。
其实对于开发及项目管理,几乎每个人都可以说一套出来,然而却不是都管用的,这也是我们与INDIA的开发最大的区别,我没有和IN人共事过,但据共事过的朋友讲,个人间的水平不相上下,但整体起来就差许多,也就是说,我们的开发大多还处在英雄时代,而没有进入到协同时代罢
偶发一些感慨,人人可批之,呵呵
开发流程,简言之:
1. 需求 这是系统开发的出发点,不管是针对客户还是自己
2. 分析 如果说用OOA的话,再加上UML的话,那么,这里面还要分许多出来
____2.1 问题域界定
________就是说要解决的问题核心是什么,以及以这个核心为中心的外围点又是什么,将问题点及相关点分开,以便于进行用例分析。
____2.2 用例分析
________通过上面的问题域界定,可以得到相关的Actor(就是与要进行开发的系统进行交互但不属于该系统的相关部分),以及以各Actor为中心得到的Use Case(即Actor要进行的动作吧,当然不一定要将所有Actor都进行分析画图)
____2.3 用例细节分析
________或者感觉有点儿套路了吧,细节分析的时候就是使用Sequence,Collaboration等进行动作流程分析,得到Actor的请求动作及系统或是其他相关部分的响应及内部处理的一些细节,以及Object之间的关系分布,这样基本可以确定系统的动作,及Method
____这样其实应该有了个大体的开发思路了。其实,我自己一直也弄不清的是,系统本身的整体架构到底应该在哪一部分时候确定,现在我一般会在这里思考系统架构,因为我觉得在分析的差不多的时候,确实系统的整体架构是比较合适的,这样后面的类分析的时候才有比较有的放矢,但我同时也感觉到,使用的语言会对后面的设计产生很大的影响,这是对我一个问题。
3. 程序架构分析
____比如像B/S系统,比较流行的方式是MVC ModeII,然后分析下如何构建,包括像权限系统什么的,Cache机制等乱七八糟的。
4. 类分析
____其实经过上面的分析后,类已经比较完整的出现了,后面进行类的具体分析,这一部分是比较复杂的,要上下负责,而且要两面通,我现在在这里头有点儿痛,呵呵
5. 生成框架
6. 开发
7. 测试 测试要专人处理,如果可能的话,在开发的时候也要进行测试,这两种测试有区别在,不过像XP样的,提倡开发人同自己测试,在最小范围内迭代
8. 打包,发布
我写一点自己的理解在这里,因为看过及多类似的项目半途流产的,我自己也做过这样的事情,到现在还有项目挂在sourceforge那里
而现在这个BBS项目,大体思路和流程都有,但是如果说这众多人进行协同开发的话,如这样的处理方法,一般最终会失败的,这个失败不是说这个系统做不出来,而是说,达不到一种协同。
先写这少许,老朽要休息下了,体力不支呵,有谁要批评就写出来
我希望这个项目最终有非常清晰的分析设计编码打包发布的流程以及相关的文档,就是可以之为典范即可也。
毛老头曾讲过,“在内部要展开批评与自我批评”, 这是一种很好的习惯呵
另,Who can give me a Chinese document for Together? Thanks a lot. :-) |
|