SummerRain

软件开发/信息安全
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

记录一个人事管理信息系统的开发过程1

Posted on 2008-07-01 11:54  SummerRain  阅读(4090)  评论(31编辑  收藏  举报
 

项目初期-愉快的沟通、确定路线、统一思想

朋友F接到一个项目,开发一个地级市的人事管理信息系统。分布式的终端用户约100个,人员数据量约4万条,5年内数据增长后不会超过10万条。我们组建了一个四人小团队,X(就是我啦)、HK,当然还有F

XH具有多年的程序开发经验,以前合作过,很愉快。X善长.NETH善长Java

K有一定开发基础,熟悉PHP/MySQL,经验略显不足。

H已经做了初步的系统功能设计,对用户需求较熟悉。

初次的团队会议(很自由的讨论)讨论技术路线问题。H主张用Delphi开发,关键是用户易操作开发快。我6年前与H一起开发过Delphi的人事管理信息系统,可是必竟过了那久了,我问他还经常用Delphi吗?他说没有。其实我们现在对Delphi都不是很熟悉,6年前的经验也很初级。我因为长期的ASP.NET开发经验所以力推B/S实现,其实一开始我对需求不是很熟悉,凭着经验和直觉力陈B/SASP.Net所有实现的类似C/S的功能,几乎要决定了。可是F提到了用户要求的安全性,考虑到未来安全性的扩展(比如为客户端配电子钥匙)、客户的易操作性等,我们觉得完全的B/S模式可能并不适合。那么只能是C/S模式。K提议了.Net Remoting技术,H担心安装打包的问题(需要客户单独安装.Net Framework)。基于对.NET的了解,虽然我并没开发过Remoting项目,但我觉得这可能是比较好的折中方案。当晚没有定下来。

第二天,我经过在网上的搜索,找到并实验了.Net Framework打包到程序安装包中自动安装的技术,同时利用一个晚上,通读了<C#高级编程>中关于Remoting技术的章节(看书时发现自己以前读过,只是不太深入,呵呵),与H进行了沟通(H八月份要去外地,所以技术只能以我所熟悉的为最好),基本确定了项目采用.Net Remoting技术。

第二次的团队会议,我们确定了.Net Remoting技术的开发方案,并进行了开发思想的统一和初步的分工,因为大家都有一定的开发经验,所以没有写很正规的文档,以下是本次讨论会的主要内容。

-----------------------------------------------------------------

 

项目技术要求及初步分工

夏春涛 2008-6-30

 

一、      项目采用的技术与运行环境

1. 项目核心技术:

考虑到项目的分布式要求、客户端操作易用性和安全性要求,以及团队技术经验,采用如下技术开发:

.NetRemoting.Net Framework2.0),TCP通道

2. 运行环境:

(1)    服务端:Win2003Server Sp2.NetFramework2.0Oracle9.2

(2)    客户端:WinXP Pro.Net Framework2.0Office2003Word/Excel

3. 开发环境

VS2005/C#.Net Framework2.0

二、      项目开发原则与代码编写要求

1. 项目开发原则

(1)    简单、简洁原则。界面不追求美观,但要直观、易用;尽量不用自己不熟悉的东西,尽量先不考虑第三方控件或库。

(2)    可扩展原则;程序将来可能需要调整或扩展的地方,尽量利用配置文件解决,不要硬编码在程序中。可扩展原则不要过度,“简单简洁”是我们首要考虑的。

(3)    分层开发原则;采用简单三层开发思想,实体层、数据访问层、业务层;另外,数据库中所有对表的操作通过存储过程实现;界面层中不允许出现直接调用SQL语句或存储过程的代码,必须通过业务层实现对数据的访问。

2. 代码编写要求

(1)    为便于使用代码自动生成工具,程序代码中的命名以及数据库中表、字段、存储过程的命名必须采用英文单词命名,禁止使用汉语或拼音形式。

(2)    代码要加适当的注释。每个文件要注释出:功能说明/作者/时间;每个函数要注释出:功能说明;要求采用.NET///注释形式。

三、      预见的技术问题及解决方案

1. 字典表(代码表)频繁读取的问题

为避免从服务端频繁读取字典表,将字典表存储到客户端使用;为避免字典表更新造成的不一致,设计一个强制客户端自动升级的模块。

2. Office报表实现问题

两种备选方法:

(1)    doc模板方法,编程替换doc模块中的自定义标签,需要利用Office开发接口,分析word/excel对象;

(2)    xml模板方法,将Office报表模板存为xml文档,编程替换xml文档中的自定义标签,只需分析xml文档(当作文本字符串)即可;(注:word xml文档中的图片是采用base64编码存储的)

拟采用xml模板方法。

另外考虑利用配置文件将表中字段与模板中标签映射,自动化报表生成的技术,以解决报表量巨大的问题。

3. 数据集传输量问题

为提高效率,拟采用分页读取数据(分页存储过程)实现。

四、      项目实施与初步分工

1. 项目分为两个子系统:

1)服务端子系统:

1)服务控制(启动、停止);

2)数据备份与恢复;

3)数据导出与上报;

2)客户端子系统:

  除服务端之外的所有系统功能设计中定义的功能。

 

2.  初步分工(2008-07-012008-07-15):

阶段目标:为客户展示界面原型,再次确定功能需求

X:服务端子系统框架搭建及项目整体框架考虑与搭建;

HK:客户端子系统。首先是客户端界面原型开发,根据界面原型同步进行数据库设计;HK商讨后再进行细分。

F:文档,后勤保障。

本阶段完成后再进行更细的分工。

 

 

附:其它问题:

1.      给项目起一个正式的名称;

2.      讨论:各种数据修改需要提交审核的问题的处理机制。

 

下篇: 记录一个人事管理信息系统的开发过程2(结束)