这是回答一个网友问题时临时组织的一些文字片段,单独拿出来,欢迎大家加以讨论或灌水,也希望给那些困在项目里或刻苦学习CASE的同志以启发 (0分)

  • 主题发起人 主题发起人 阿朱
  • 开始时间 开始时间

阿朱

Unregistered / Unconfirmed
GUEST, unregistred user!
我们第一阶段的目标,我们应该一切所做都是为了这个目标:
1代码易读,好找错,好修改,稳定,好维护
2螺旋式开发,每周小计划安排,频繁检查目标,进度和质量
在这一阶段,最容易犯的是注重性能,注重程序技巧和不常用技术,想面向对象,怕浪费资

不要去吝惜多写begin
..end,不要吝惜多写一个变量赋值,我看见程序员这样写
GetData(pid, GetOutWardDate());因为在参数和()多了的时候往往使语句显的很复杂
不管单元,函数,还是变量,尽量使用业务命名,不要使用计算机术语命名。并且写的代码
和注释尽量突出业务需要和业务流程
不要面向对象,因为你用属性,消息,事件,继承,反而把易读性失去了。因为在第一阶段
的程序员往往还不能灵活并深刻掌握面向对象的本质
正确的做法:
1命名,写注释,封装,小函数,错误自我保护,这样易理解[命名,写注释],错误也不容易扩散[封装,小函数,错误自我保护],报错也清晰易修改[错误提示清晰]
2严格数据结构设计,所有字段都不允许为空,不允许有默认值,没有约束条件,没有trigger,力求出错就断定是程序的错,而不会程序和数据库两头不稳定,两边都需要查,这样就好找错,也为稳定性提供了支持
3先开发流程大框架,再开发大框架中的功能,再开发需要数据拉下和保存的数据操作[这是or mapping],再开发界面[这是oi mapping],这样就保证了由于彼此独立所以好修改.由于你
的功能和流程是由若干个小函数组成的,所以小函数多了也不好维护,他们之间的调用关系
是如何,谁是关键函数,谁是辅助函数,哪些函数有依赖关系,哪些函数是不让外界调用的
,你按这种思路一规划代码,你发现你的代码拓扑结构很清晰结构化了,你的代码开始有些
面向对象的感觉了。在下一步,我们会把我们功能中的可变配置写到注册表中,你自由配置
注册表,我们的功能就变了,根本不用改代码,并且为每家客户做的特殊东西都单独封装成
DLL,这样哪家用户也有此需求,就把DLL给他即可。我们的基本功能以后也要封装成DLL,更进一步是COM,然后我们做工程时就配置DLL和注册表。如果确实需要小变动,我们修改代码也只是在DLL范围内,使错误不会大面积扩散。封装与组合是面向对象最新的趋势,而不是抽象和继承。大家不要计较什么真三层和假三层,就象计较真ERP和假ERP,不管是什么,对我们有好处,对客户有好处,这个东西就不错。
4有各种数据校验工具,系统维护管理工具,初始化工具,数据表说明,数据字典说明,业务手册,很容易维护
5迭代开发,功能由粗变细,由少变多,所以不让问题扩散,既保证了进度又保证了稳定性
6每周小计划安排保证了进度安排现实,可以现实控制。频繁检查目标,进度和质量,避免程序员尝试新技术新方法或追求完美偏离目标和时间表
7用SQL SERVER设计表结构,用PB记下字段含义,用DELPHI做界面,用WORD写描述,用SMARTDRAW画流程
在客户实施期间,边加强功能实用易用边调整高性能

测试代码的方法:在产品开发期间就用我们的程序进行数据输入输出和字典维护,这叫自尝苦果。在产品出品准备期间,集中进行业务逻辑正确性测试,数据正确性测试,报表正确性测试,性能压力测试,加强保护代码和错误提示代码
易用的指导原则:尽量不用输入,不用回答是与否,不用人工检查,一句话,尽量不用动脑
子和手
实用的指导原则:完成他现在最需要解决的问题,而不是所有问题和未来要遇到的问题
这样实用,易用,高性能,代码好修改,实施好维护,开发有进度,稳定的一个产品多好
第二阶段的目标
由于第一目标的实现,工程人员在第二阶段需要完成的关键
1做好需求调查
找到关键提需求的人,找到关键需求问题[是他们一直想解决却解决不了的]
收集他们的人员组织,人员功能
常用流程,单据,报表
不常用流程,单据,报表
特殊流程,单据,报表
2按培训手册和培训计划进行培训
3按数据规范进行数据准备,按数据校验工具进行数据校验
4按实施规范把软件环境各方面部署好
5按上线计划推进

没有用什么XP,UML,CMM,ROSE,ERWIN,VISIO,DUNIT,设计模式,project2000之类,软件写的挺好,用户也用的不错,你还奢望什么

附录:各类角色产出的文档
项目经理:
1阶段性目标和计划
2 每周计划安排
需求调查人员:
3 需求调查计划
4 需求调查分析
5 需求确定
设计人员:
6业务流,界面描述,复杂业务描述,数据流做成一个文档
7 数据结构说明
8 数据字典准备规范
程序员:
9 复杂代码说明文档
10 带注释的源代码
测试员:
11 测试计划[包含测试数据]
12 测试报告
实施员:
13 实施计划
14 实施准备
15 系统管理手册
16 业务技术FAQ
备注:由于一个项目往往是一个项目经理带领两个程序员,所以项目经理还担任需求分析人员,设计人员,测试员,所以项目经理会写10种文档。程序员一般还担任实施人员,也担任测试员,所以会写8种文档
我们的产品开发思路
产品符合客户需要
市场做的好
产品稳定
可以提出专业的适合用户个性化的解决方案,支持功能多一些,更实用一些
产品高性能
能按计划标准化的专业实施
产品灵活扩展,快速响应用户个性化
能最小成本实施
我们做产品不是一出实验室做完第一版就算定型的。而是第一阶段刚出来的时候,
功能弱的只要缺一项,整个流程就没法继续,这个版本稳定下来并且易用,我们的第一版本
的目标就算达到了,这就叫基础版,给没有上过系统的用户或小用户使用。然后我们会根据
客户需要一点一点往上加,并且在期间建立实施规范,实施工具,提高性能,我们的标准版
就出来了,专门针对那些上过系统但过去系统有些解决不了的问题正好我们能解决的这些用
户。再继续加强灵活性配置,统计报表,我们的高级版就出来了,给那些应用软件管理层
积极数据也规范确实想提高管理的用户。事物是逐渐发展的,用户的发展状况也是有大有小
有简单有复杂的,我们正好有三种版本对应。不要用一个版本去做不同层次的用户,没上过
系统的用户嫌复杂,想提高管理水平的用户却发现数据积累了很多但没有地方可查。
我们对小用户的目标:加快关键业务操作,形成计算机应用的环境,为下步升级做好准备
我们对发展中用户的目标:整理清基础数据[往往上过一次系统的用户由于第一次没有经验,
使基础数据很混乱],弥补过去不足,加强业务数据准确性和完整性,为下步升级做好准备
我们对良好管理的用户:由于过去良好的数据积累,这时的历史数据才不会成为垃圾数据,
有分析统计的价值,所以加强统计是我们的重点
市场部签定哪家用户是我们无法决定的,但是我们可以决定给他上什么版本,
做什么质量的咨询,培训,实施和支持。
 
接受答案了.
 
后退
顶部