团队开发如何进行(200分)

  • 主题发起人 主题发起人 小宇1
  • 开始时间 开始时间

小宇1

Unregistered / Unconfirmed
GUEST, unregistred user!
各位好,以前编程时由于程序都不大,所以都是一个人独立开发的。突然想起如果是一个大的项目,那要由一个团队来一起开发时,那样的模式是怎么样的呢?即按照什么原则来分工,又根据什么来把各个模块组合起来编译。(如做Delphi项目的情况、做ASP.NET项目的情况)。望各位大虾给于解惑。
 
简单说一下:
1、需要一个版本控制程序vss,cvs,clearcase等都行,主要是用来备份代码,编译程序用
2、如果人员够用,可以细分到功能点,不然可以按模块划分;成立设计组,负责整体设计、成立开发组,完成设计组的功能编码,成立测试组,作功能完成状况检查
3、设立统一的编码规范、统一的界面规范、统一的SQL设计规范,便于管理
4、走设计、编码、测试、修改、测试、优化、测试流程,循序渐进
5、程序追求简单易懂,只有在严重影响使用效率的情况下,对重点程序作算法优化
6、使用成熟的技术,不使用刚推出、未有成功案例的想法
7、经常沟通,共同解决开发过程中的疑难杂症
 
由项目主管分析策划整个项目,分工到每个人,项目主管负责控制项目的进程。
由计划来控制,用规范来制约每人的思路,规定好每个接口
项目主管定期检查完成的内容,合并代码
最主要的是项目主管的文档要描述得清清楚楚,每个模块划分清楚,还要做到模块的
“高内聚,低耦合”,遇到问题要及时汇报并解决
项目主管做到:一切尽在掌握中
项目成员做到:一切为了项目,一切按照规范做事
 
大型MIS软件开发的几点体会
北京开思软件技术有限公司 石宏峰
大型MIS软件的开发工作是一项复杂而艰巨的系统工程,它涉及到软件工程、数据库设计、应用业务、项目控制、人员管理和计算机技术等多种知识和经验,因此任何一项大型MIS软件的开发成功都是一件极不容易的事。虽然当今的软件工程理论和数据库设计理论为我们提供了多种系统开发的方法和手段,但在实际开发工作中经常遇到的情况却是:做出来的系统不符合要求,需要大量修改;开发工作进度难以控制,工期一拖再拖;甚至有些通过了验收的项目也难逃在实际使用过程中搁浅而被束之高阁的厄运。在这里笔者姑且不对造成这种情况的原因和当前一些项目验收中存在的问题进行分析,而是就避免这些问题发生的一些做法与从事软件开发工作的同行进行一下探讨。
在多年的开发工作中,笔者主持过许多类型管理系统的设计、开发和项目管理工作,包括:学籍和考试管理、汽车租赁管理、图书馆管理、公路管理、MRPⅡ和ERP管理等。在这些项目的系统调研、总体设计、模块设计、编程、测试和项目管理工作中,我深切体会到,要想高效率、高质量地完成项目开发工作,应努力做好下面的几项工作。
一、制定开发规范
MIS软件,特别是大型的MIS软件是一项浩大的工程,需要十几个人、几十个人甚至几百个人合作开发几个月、十几个月甚至几年。要保证系统的协调性、统一性和连续性,就需要在开发之前制定严格、详细的开发规范。
开发规范的内容主要包括:系统设计规范、程序开发规范和项目管理规范等。系统设计规范规定字段、数据库、程序和文档的命名规则,应用界面的标准和风格,各类报表的输出格式等。程序开发规范对应用程序进行分类,如可将程序分成代码维护类、业务处理类、业务查询类和统计报表类等。并给出各类应用程序的标准程序流程,有必要时可编制出标准程序。项目管理规范规定项目组中各类开发人员的职责和权力,开发过程中各类问题(如设计问题、程序问题等)的处理规范和修改规则,开发工作的总体进度安排和奖惩措施等。
开发规范的制定需要花费一定的时间和精力,但是"磨刀不误砍柴功",它相当于把今后开发过程中开发人员都要遇到的问题提前做了一个考虑。有了开发规范,在后续的开发过程中,设计人员就不必每次考虑如何为一个字段命名,编程人员也不必去想某个程序的结构和布局应当怎样,测试人员也有了判断程序对错的标准。
开发规范在项目开发工作中起着事前约定的作用,需要所有开发人员共同遵守。它约束开发人员的行为和设计、编程风格,使不同子系统和模块的设计、编程人员达成默契,以便形成整个系统的和谐步调和统一风格,也便于今后的系统维护和扩展工作。
二、合理的人员构成与管理
开发项目的成功需要有一个好的开发组。高效的开发小组要有一个合理的人员构成。一般开发组应包括项目负责人、系统分析员、系统设计员、程序员和测试人员等。开发组的人员要分层次,下层人员要服从上层人员的领导。
项目组要有一个项目负责人,他对整个项目有控制和决定权,对项目开发的成败负责。软件开发中遇到问题的答案往往不止一个,因此需要有人对这些问题有决定权,避免扯皮。大型项目的负责人应有丰富的项目管理经验和数据库设计经验,另外还需对用户的实际业务有较全面和深入的理解。
系统分析员协助项目负责人进行系统分析工作,并负责某一方面的具体设计工作;系统设计员帮助系统分析员进行模块设计;程序员按照模块设计进行编程;测试人员直接受项目负责人领导,为整个项目的质量把关。所有项目组人员都应对用户的实际业务有不同程度的了解,这样有助于系统的开发工作和系统最后的成功。
三、严格控制开发进度
项目进度管理是软件开发中最难以做好的一项工作。编程工作本身是一个难以量化的工作,再加上开发过程中对设计的修改等因素,使得项目开发工作经常不能按预计的时间完成。
为了管理好项目进度,首先要制定一个可行的项目进度计划。一开始,项目进度计划只能根据项目的内容、工作量和参加人员进行大致地估算,包括系统分析和设计时间,编程、测试时间和文档制作时间,估算时应根据业务复杂程度加入一些缓冲时间。系统分析、设计完成后,根据程序清单可估算出每个程序的编程时间(根据程序类型和复杂程度),并在此基础上估算这种程序量下的测试、文档制作和缓冲时间,经过这样估算再做出的进度计划已经可以做到相当准确和细致了。实际上项目进度计划是一个由粗到细且不断调整的计划。
每周要将项目进度情况与项目进度计划进行对比。对于拖延的工作如无充份理由,则应督促有关人员加班或提高工作效率赶上进度;如有正常理由,在无法追回的情况下可以修改进度计划,申请延期。
项目进度管理一定要细致和严格,像设计、编程这种难以量化的工作是很难笼统地去控制进度的。
四、系统设计要超越业务
软件设计的好坏直接关系到项目开发的成败。在设计之前一定要对用户的业务做系统的调研,深入、全面地了解用户业务。在调查时要注意以下几点:
1.有时某个部门的业务由几个业务人员分管,调查时不能只听一个人的叙述。
2.要详细了解一个部门与其他业务部门的业务关系。
3.要了解当前业务的难点,在设计时着重解决。
4.用户不可能一次将所有业务描述清楚,所以调查要由浅入深,分多次进行。
5.调研要以我为主,围绕主题提出问题,不要陷入用户的琐碎业务中。
6.要注意收集原始凭证、报表和文字资料。
在根据调研结果做设计的时候,不要过于迷信一些教科书上介绍的数据库设计方法。在多年的实践中,我发现许多方法不但没用而且还增加工作量,在业务关系比较复杂的情况下,一些数据库设计方法是根本不能推导出设计结果的。而且直接根据收集资料和现行业务去推导数据库结构的做法也是不可取的。这是因为:
1.用户描述的业务可能不是一个好的管理方法。
2.用户描述的各部门间的业务数据传递仍是手工做法。
3.用户描述的业务不是规律性的业务流程,因此会经常发生改变。
4.用户描述的业务不适合于用计算机去实现。
5.用户的输出表格为固定的内容,不能适应业务的变化和扩展。
所以在系统设计时要超越当前的业务,抽象出业务中的管理思想和规律性的东西。为了适应
计算机管理,有时也要改变用户的业务流程,这时要与用户协商,让其理解这种改变的意义。另
外设计还应留有可扩展的余地。
五、程序设计要实用
MIS软件最终的目的是要用户使用。因此在程序设计时必须立足于操作简单、实用,并真正能为用户解决实际的业务问题。不能因为怕编程麻烦而将程序功能设计得过于简陋。
为方便用户使用,应用程序中起码应具有下面这些功能:
1.提示功能。屏幕上的代码信息(如客户代码、科目代码等)要有提示操作,使用户不必记忆很多的代码。
2.操作确认。对于一些不可恢复的操作(如记录删除等)应有操作确认,避免误操作。
3.数据校验。对于一些有限制条件的输入信息,可以自动校验其正确性,避免错误数据进入系统。
4.错误恢复。用户无意中进行了错误操作,应能有相应的处理程序挽回错误。
5.缺省赋值。对于一些常用信息可以设置缺省值,使用户不必每次都输入这些信息。
6.记录复制。用户可以复制一条或多条已存在的记录,并可修改复制结果,形成新的记录。
六、测 试
测试是保证程序质量的一项重要工作。但测试只能证明程序有错,而不能证明程序无错。所以任何软件系统都不能保证内部没有错误。为了确保软件系统的安全与可靠性,一方面要加大测试力度,另一方面要抓住测试重点。
从测试的角度来说,可将MIS软件的程序分为两类:修改数据库类和信息输出类。前一类主要是业务处理程序,是测试重点。对于前一类程序还可以进一步细分为:基础数据采集程序和数据处理统计程序。数据采集程序主要记录原始凭证信息(如发票、凭证、入/出库单等),数据处理统计程序是对数据采集程序记录下来的数据继续做加工。这两类程序中基础数据采集程序又是测试的重点。
以上是笔者在以往的MIS软件开发过程中总结出的几点经验,希望能给从事相关工作的同行们提供一点帮助。
 
先谢谢大家的回答,但我现在想知道的是如果用VSS来进行项目管理和版本控制时,他是如何进行的,比如:用Check in和Check Out来控制每个人修改程序时关系,但我想知道的一点是当一个项目刚要开始时是把整个项目先放到VSS里面,但这个所谓的整个项目包含了什么内容或模块呢?以后各个开发人员要增加或修改程序的原理步骤又是怎么样的呢?谢谢!!!
 
可以用wincvs进行版本控制,
 
Borland的Delphi的TeamSource用于团队开发,不是挺好的吗?
 
这些好象都是理论啊,谁有实际的说明书吗?
 
咱也学习学习
 
App2001的贴子很好~没有思想工具就是些0101
 
同意楼上
 
接受答案了.
 
后退
顶部