威赛儿商务通系统开发员手册(UMLchina.com,转载)

发表于:2007-06-30来源:作者:点击数: 标签:
威赛儿商务通系统 开发 员手册 苏康胜() 一、前言 为了保证商务通系统项目开发成本优化并且有利于将来的扩展及重用,项目成员必须严格遵守以下开发手册。力求达成一种默认的开发规范。 二、设计约定 l系统将采用RDS技术访问远程组件,必须记住RDS不支持对象

威赛儿商务通系统开发员手册


  
苏康胜()
  

一、      前言


为了保证商务通系统项目开发成本优化并且有利于将来的扩展及重用,项目成员必须严格遵守以下开发手册。力求达成一种默认的开发规范。

二、      设计约定


l         系统将采用RDS技术访问远程组件,必须记住RDS不支持对象的属性的这一限制。
l         系统必须提供统一灵活的错误处理机制,统一管理组件的返回信息。
l         系统组件尽量遵守松耦合的原则,使组件在能重用的基础之上还能适应今后更多方面的变更。
l         为了使系统具有很强的移植性,设计要排除对使用存储过程实现的依赖等。
l         组件的设计应该避免产生过多的创建数据库连接请求。
l         详细设计必须详细到每个组件及方法和接口。
l         采用Rational Rose做为系统分析设计的辅助工具。
l         设计必须配合项目管理,辅助需求管理人员提供需求基线依据。
l         必须及时获取程序员反馈信息,修补设计时的漏洞。
l         其他补充可以找苏康胜商量。

三、      程序规范

a)VB的编程规范


在软件开发过程中,编程的工作量是相当大的,同一项目参与编程的人可能有各自编程的经验和习惯,不同风格的程序代码带来了维护工作量的增加,因此为了提高代码的可读性、系统的稳定性及维护和升级的成本,程序的代码必须严格遵循统一的编程规范。
  
总则:
   应有良好的、尽可能一致的编程风格
   编码应该是严谨的、可读性强、目标明确及直观的。
  
注释:
   无论是用户端表示层程序还是组件程序,注释必不可少。要求能占程序总量的20%,另外注释必须在程序改变时实时更新。
每个构件的顶部应该有注释
   包括:模块名称
         功能描述
         设计                       作者
构件内的每个过程或方法应该有注释
   包括:功能描述
         参数说明
         返回值说明
         作者                   更新            
         创建日期               最后更新日期          
每个模块级变量必须给出注释
重要的变量应该给出注释
           描述变量的用途
  
变量、常量、对象的命名规约
   命名必须使用大小写结合(VB编辑器会自动转换以减少程序出错的机率)
   变量命名采用[范围前缀][数组前缀][类型前缀]+[自定义命名]
   控件命名采用[控件前缀]+[自定义命名]
  
   变量范围做前缀

   范围

前缀

例子

全局变量

g

gStrUserName

模块级

m

mStrUserName

过程级


StrUserName

  数组前缀: a
  类型前缀:

数据类型

前缀

例子

Boolean

Bln

BlnFound

Byte

Byt

BytRasterDate

Currency

Cur

CurBalance

Date

Dtm

DtmBeginDate

Double

Dbl

DblFee

Integer

Int

IntQty

Long

Lng

LngVcID

Single

Sng

SngAverage

String

Str

StrItemId

Object

Obj

ObjRmtsvr

ADODB.Recordset

Rst

RstItem

ADODB.Connection

Cnn

cnnNewsPaper

ADODB.Command

Cmm

CmmAddCustomer

Variant

Vnt

VntCheck

自定义类型

Udt

UdtUserInfo

  

  

  

  
控件类型命名前缀

控件类型

前缀

例子

ADO Data

ado

AdoBiblio

Check box

chk

chkReadOnly

Combo box, drop-down list box

cbo

CboEnglish

Command button

cmd

CmdExit

Common dialog

dlg

dlgFileOpen

Data-bound combo box

dbcbo

dbcboLanguage

Data-bound grid

dbgrd

dbgrdQueryResult

Data-bound list box

dblst

dblstJobType

Data combo

dbc

DbcAuthor

Data grid

dgd

DgdTitles

Data list

dbl

dblPublisher

Directory list box

dir

DirSource

Drive list box

drv

DrvTarget

File list box

fil

FilSource

Form

frm

FrmEntry

Frame

fra

fraLanguage

Graph

gra

GraRevenue

Grid

grd

GrdPrices

Horizontal scroll bar

hsb

HsbVolume

Image

img

ImgIcon

Image combo

imgcbo

imgcboProduct

ImageList

ils

IlsAllIcons

Label

lbl

lblHelpMessage

Line

lin

LinVertical

List box

lst

lstPolicyCodes

ListView

lvw

lvwHeadings

Menu

mnu

mnuFileOpen

Month view

mvw

MvwPeriod

MS Chart

ch

chSalesbyRegion

MS Flex grid

msg

MsgClients

MS Tab

mst

MstFirst

Option button

opt

OptGender

Picture box

pic

PicVGA

ProgressBar

prg

prgLoadFile

Remote Data

rd

RdTitles

Slider

sld

SldScale

Spin

spn

SpnPages

StatusBar

sta

staDateTime

SysInfo

sys

SysMonitor

TabStrip

tab

TabOptions

Text box

txt

txtLastName

Timer

tmr

TmrAlarm

Toolbar

tlb

TlbActions

TreeView

tre

treOrganization

UpDown

upd

updDirection

Vertical scroll bar

vsb

VsbRate

自行开发ActiveX控件的前缀
根据具体项目的设计时规定。
  
自定义命名空间规约
采用大小写结合的英文缩写,要求尽量能顾名思义。
代码约定:
风格约定
每个变量必须显式定义。在每个模块开始前加代码:Option Explicit。
采用缩进的格式保持程序循环的层次结构和可读性。
       表示层信息对话框的图标规则
       vbExclamation  ------   警告
       vbQuestion    ------    询问性警告
       vbInformation  ------    提示信息
       vbCritical      -------   程序或系统错误
       对话框的标题为模块名称(ActiveX控件中定义一个模块极变量表示模块名称)
  
限制约定
模块初始化的方法统一用Init作为方法名称。
为了保持开发过程中与Windows 98环境下的兼容性,对ADO的引用采用(Microsoft ActiveX Object Library 2.1),Windows 2000下最新的是2.5版本的。另外也可以减少很多网络传输量。
程序开发阶段禁止使用On Error Resume Next语句,以免造成对错误的忽略。
程序维护前应该屏蔽所有On Error Resume Next语句。
程序中对数据库的操作语句只能用标准的SQL语句,如在SQL SERVER中虽然支持delete 。。。。。,但必须使用delete from [TABLE]。。。。保证系统的可移植性。
  
其它约定
为了保证程序实现正确的意图,程序编制开始前程序员应该对程序的意图有清晰、明确的理解,有任何疑问必须找系统设计人员洽谈。

b)ASP的编程规范


四、      用户界面

a)概述


商务通系统将采用B/S结构,在Windows平台下开发,界面主要涉及的技术有VB、ASP、HTML。菜单将主要采用HTML形式、复杂的输入输出界面将采用在HTML页面中嵌入VB的ActiveX控件的方式实现。查询将采用ASP方式实现。

b)总体规范


系统主页要求美观大方,能提供报刊亭、客户、中心职员的登录界面,登录后的页面能体现系统的总体功能框架。ASP与VB的ActiveX控件的字体及色彩基调应该保持一致风格。

c)HTML页面细则


l         HTML页面主要用于实现系统“主菜单”的功能,要求美观大方,利于扩展。
l         主页面上应该有公司或产品标志。
l         基本色调建议采用能反映系统特色色彩。
l         “菜单”页面所有功能按钮能在一个页面的视觉范围内全部显示出来,不需要拉动滚动条。
l         页面设计过程中的基本图形元素应该按目录保存下来,以便将来功能扩展时快速修改页面。
l         查询页面的提交表单、ASP页面字体和色彩基调应该与ActiveX控件保持一致。
l         密码输入要用“*”屏蔽。
l         修改IIS的错误返回的页面,提示用户打开浏览器选项中的容许ActiveX控件等信息。
l         页面提供ActiveX标题的显示。
l         防止特殊字符:< > < / > ‘ “对数据库提交或浏览器的影响,必须做特殊处理。
l         含有ActiveX控件的页面应该使控件开始获得焦点,避免控件上快捷键和浏览器上快捷键产生冲突。

d)ActiveX规范


复杂的录入界面采用ActiveX控件方式实现,ActiveX控件的界面应遵循以下原则:
1.         易用性原则
l         控件的名称或标题最好使用用户熟悉的字眼,而且不能超过4个字。
l         完成相同或相近功能的按妞用Frame框起来,按钮要支持快捷方式。
l         完成同一功能或任务的元素在集中位置,减少鼠标移动的距离。
l         按TAB键自动切换的顺序应该与界面上控件的排列顺序保持一致。
l         按回车键能自动进入TAB顺序表示的下一控件的焦点状态(验证不通过除外)。
l         界面上首先要输入的和重要的信息控件应该是TAB键顺序靠前而且在比较醒目的位置,使对应控件在一开始就获得焦点。
l         同一界面的控件数最好不要超过10个,多于10个可以考虑按功能或属性分类的多个页面显示。
l         分页界面的页面间用Ctrl+Tab的组合快捷键切换,顺序按重要程度和访问几率排列。
l         复选框和选项框按选择几率的高低先后排列,并且有默认的选项。
l         选项数为2~5时可用选项框,选项数为2~20时可用下拉框,大于20时用小查询按钮查询选择。
l         选项数不定且数量不多的情况选用下拉框。选项数固定且数量范围为2~5的情况下根据界面的当前排列情况选择选项框或下拉框。
l         按“新增”或“修改”按妞后未存盘而是按“取消”按钮应使界面回到初始状态。
l         对显示有当前记录资料的界面按“新增”操作时,可以提示保留当前值新增和清屏新增两种方式,也可以选择取消回到初始界面。
l         在新增和修改状态下关闭窗口或按退出按钮提示是否保存修改。
l         对于定单编号、报刊代号等的输入可以通过小按钮查询选择。
2.         安全性原则
l         可写的控件的值改变时应该提供输入验证,不合格后应该自动获得焦点。
l         首要排除可能会使应用非正常终止的错误,如:除零运算等,死循环、长度超过数据库规定的长度、含有特殊字符等。
l         应当注意排除无意的无效数据录入,如数值形态的控件要防止录入字符等。
l         应该避免未授权功能的使用及无意义的操作。
l         对可能引起致命错误或系统出错的输入字符和动作要加以限制和屏蔽。
l         界面上操作数据库中关联性强的表时,如:一对一或多的表的关系时,存储动作应该放在一个按钮中完成。
l         影响数据库操作的特殊字符,如:’ 、“、空格等要做特殊处理后再参与数据库操作。
l         日期采用统一的YYYY/MM/DD格式表示。而且日期的合理性必须得到验证。(若给大陆以外的客户使用,日期处理更加复杂)。
l         小数点的位数必须根据数据库字段的要求加以限制。
l         费率等数值不能录入负数值。
l         对输入的字符串和数值数据必须限制长度不能超过数据库规定。
l         界面能捕获ESC键的使用,执行退出代码的功能。
l         取消操作能回到初始状态。
3.         合理性原则
l         ActiveX控件应放在浏览器页面比较显眼的位置,能在浏览器常用工具栏显示的情况下,可以在一个屏幕中显示完整的ActiveX控件界面,不需拉动滚动条。
l         非法输入和操作应该有足够明确的提示说明,提示说明不能混淆和重复,如“不能输入大于600的数字”“数字应该小于或等于600”应该只保留其中一种说法。不能出现A处有A的说法,B处有B的说法,其实是一个意思。
l         一些键盘或鼠标的屏蔽性的操作无须用MsgBox来显示提示信息,如控件只能输入数字、小数点、“-”,当输入字符时不需要有任何提示。
l         提示或警告信息必须具有向导性,能告知用户错误原因,并自动使需改变的控件在第一时间内获得焦点。
l         按钮的排列应该遵循新增、修改、删除、打印、退出等主题的排列顺序。注意界面按钮的屏蔽逻辑,如按下“新增”后屏蔽新增、修改、删除按钮,在对应位置显示存盘、取消按钮等。整个系统应该采用统一的界面按钮逻辑风格。
l         不需要另外界面输入打印查询条件的打印功能应该有预览和打印两个按钮。预览排在前面。
l         删除的动作必须先有提示信息确认是否真正删除。
l         如果执行的处理时间比较长(可能比较长)要有进度条或者等待界面提示用户等待系统响应。
l         按钮必须提供快捷方式,快捷键的取值符合其它MIS项目的共同习惯。[TABLE]

功能

快捷键

说明

增加

Ctrl+N

增加一个新的内容

明细保存

Alt + A

添加或保存一个明细资料(如一个报刊亭的报刊批销费率明细资料)

修改

Ctrl+E

修改当前内容

取消

Ctrl+C

撤消做的修改

删除

Ctrl+D

删除当前内容

明细移除

Alt +D

移除一个明细资料

保存

Ctrl+S

保存当前内容

第一条

Ctrl+Home

到第一条记录

上一条

PageUp

到上一条记录

下一条

PageDown

到下一条记录

最后一条

Ctrl+ End

到最一条记录

打印

Ctrl+P

打印当前内容

退出

Ctrl+X

退出当前Form

换页

Ctrl+Tab

页面间的切换(控件数较多时采用多页面显示的情况)

  
4.         美观与协调性原则
l         图形按钮的图标必须具有代表性能产生感官上的功能认同。
l         长宽的比较接近黄金分割定律。
l         布局要合理切忌过于密集或过于空旷,合理利用空间。
l         字体统一采用宋体 5号字大小,所有控件排列要力求整齐,左右都能对齐,Label两个字的中间空4个空格,三个字的中间空两个空格。
l         前景色与背景色搭配要合理,不宜反差太大,要考虑色盲用户的使用,且尽量能融合到HTML页面的基本色调中去。
l         所有按钮大小基本相近,功能相近的按钮放在一起,退出按钮一般放在右下角,与最右边的控件右边对齐。
l         类似结构的ActiveX控件界面的整体布局保持一致。
l         所有ActiveX控件的界面风格要保持一致,字体、颜色要相同。

五、      组件开发注意事项


六、      开发制度


为了保证开发工作的顺利进行,规范控制代码的并行开发机制,特做如下规定:
l         开发人员必须按照时间的规定严格完成程序任务,每周五上午可以公布下周的详细任务清单。
l         测试人员公布的BUG由程序的初始编写人员负责修正。
l         修改通用模块(工具类等)、控件、组件要通知相关程序人员做适应性调整。
l         所有开发文档及软件源代码全部存放在服务器上,用Visual SourceSafe统一管理,程序员改动程序之前必须check out,每日改动后要check in。
l         系统所有原程序及其它资料每周进行备分,目录用日期表示。
l         存储的目录结构如下:
http://www.umlchina.com/xprogrammer/issue/4/shangw3.jpg
l         模块命名方式
DLL ——》采用NP(NewsPaper简称) + 模块英文大小写简称,如:NPCustMangage
CLS ——》采用模块英文大小写简称的前两位 + CLASS的英文大小写简称,如:ClsCustMain
客户端构件命名方式
OCX ——》 Onp +模块英文大小写简称
l         网页命名方式
必须采用直观的、顾名思义的名称,主页用Index.htm
l         开发人员必须每周登记工作日志。
l         公共函数和方法公开制度
系统将提供两个工具组件Utility.Dll 和Public.Dll,其中前者是用于当前系统的,后者不但可以用于当前系统,而且可以用于公司的其它项目。程序开发人员在开发过程中用到某些方法,如果觉得可以归纳到以上两个组件中去,则可以向苏康胜提出。验证后加入组件。
 

原文转自:http://www.ltesting.net