0
|
6年4月年代表学校与其它三个同学组建YYG开发小组,进行为期两个多月的学生课程注册系统的开发,这也是我第一次参与团队项目开发,虽说没有进行编码的工作,可是三个月下来,收获也是不小。最起码的是获得了宝贵的经验,然后被迫了解了一下RUP建模,CSS样式表、JavaScript脚本、网页布局,这些都是以前想掌握但是却一直没有下定决心去学的知识,可以说压力使人进步吧!在此从各个开发阶段来谈一下经过这次的项目开发后,我的心得,我的体会。希望能给大家一些启发或帮助。
开发计划
在整个开发过程中,应该有两份以上的开发计划书,来严格控制项目各个开发阶段的时间。
最基本的一份是,需求分析、概要设计、详细设计、编码实现,总体测试和打包交付六个任务的大致时间安排。
另外一份就是,当需要分析、概要和详细设计完成后,根据划分的系统模块制订的开发时间安排。
所制订的开发计划,要有特别的监督人员来督促计划的实施。这名监督人员尽可能不是负责编码的组员。
人员分配
最起码需要确立开发组长、项目管理组长、项目决策者(不一定要由不同的人或特立的人来担任)。
n 开发组长主要负责分配人员任务、分拆组装项目模块。
n 管理组长主要负责整理开发文档、监督项目的开发进度、控制已实现模块的变更。
n 项目决策者需要做的就是当组员针对某一问题争论不休时,在掌握必要的情况下,综合各方面因素,做出最终决策。
需求确定
这个阶段在整个开发任务中极为重要!开发小组所有成员都要积极的参与进来,提倡各个组员间的“争吵”,让各种思想尽可能产生碰撞,以便更多的发现矛盾或模糊不清的概念。在有软件用户参与或存在时,要经常的,积极的与他(们)进行参详、讨论。
当问题在双方各执一词的时候,千万不能轻易地将问题搁置,必须在最短的时间内敲板!在久论无果的情况下,由组长或项目决策人定下结论。
用例设计
根据分析出来的用例,将其归纳为若干模块。如,登录验证模块,学生模块,教师模块等。
针对各个模块,从开始的功能描述逐步深入到代码式描述,也就是最终要产生一份包含实现算法的文档,相当于要有一套完整的类图。当然,这里所说的完整只是相当而言,任何的开发都不可能依据计划一成不变。
这个过程经常犯的一个错误是,由于设计人员的懒惰,设计不够细化,导致程序员后期编码要时耗费更多的时间去重新分析问题。
软件测试
一般而言,在编写项目模块时,对各个模块进行一定的测试。故此我只对软件总体测试发表我的看法。见识过软件测试中心测试报告后,我们在进行软件测试的时候,对一个软件基本有功能要求、性能要求、稳定性要求、安全性要求和可操作性要求,对于每个要求
以列表的形式,具体详细地描述的测试要点(一定要非常详细,最好以数字说话)。如学生管理功能测试,有添加学生信息,修改学生信息,删除学生信息,查找学生信息这四个功能点,根据不同的功能点又确定不同的测试用例,以输入输出结果作为测试的凭据。在这里,要视乎情况决定测试要点的取舍、主次与先后。
技术储备
在可能的情况下,应当做好准备,当出现了开发小组内部无法解决的问题时,应该从何处得到相应的支持,这种支持应该同时包括技术性与非技术性上的。否则一旦出现问题,可能会耽误相当长的时间,这对于时间原本便不充足的项目开发来说无疑是致命的。
总述
开发计划没有进一步的细化是我们此次项目最大的败笔。
作为一个开发团体,在互相尊敬的前提下,要频繁展开开发人员之间的讨论,这样才能更多的迸发出智慧的火花;而项目队长与项目决策者则要把握全局,以免过度的讨论造成不良的影响。
除了编码实现阶段,任何一个阶段都要每个成员的积极参与,只要这样才能最大的避免设计人员与编码人员理解不一致的情况。
在个人开发项目的时候,经常会发生混乱,如功能的需求出现反复的变改,开发的进度无法得到保障等等。而确立项目管理者能够尽可能地避免混乱。最要注意的是,项目管理者尽可能地不参与编码,因为我们要留给他更多的时间去探索、管理项目中出现的问题。
作者:温校宏