创新性应用: 详见论文“应用技术经验论述”
行业借鉴经验:
应用难点技巧:
|
应用技术经验
论述
宁军辉
2006-07-15
目录
一. 创新性应用
1. 关于家校通…………………………………………………………………3
1.1. 什么是家校通…………………………………………………………3
1.2.家校通特性……………………………………………………………3
2.需求分析……………………………………………………………………3
2.1.获取信息………………………………………………………………4
2.2. 软件架构搭建…………………………………………………………4
2.2.1 . 应用层表现……………………………………………………5
2.2.2 .数据层表现…………………………………………………….5.
3.功能设计…………………………………………………………………….5
4.代码与数据库的关系………………………………………………………6
序言
家校通:从含义上来讲其实就是用于联络家庭和学校的一个平台,它含有数据管理功能、短信功能、语音短信功能、语音信箱留言和电话会议功能,不光可以通过平台来进行数据管理和短信功能,也可以通过声讯来完成语音信箱和留言、电话会议的功能。关于家校通管理平台的应用有两个版本,分别是B/S的和C/S的,功能都是相同的,在创新性应用中主要从C/S着手讲解。功能上主要讲解数据管理的功能,其它的功能会稍微涉及一些。
一. 创新性应用(主要讲一讲家校通)
1. 关于家校通
1.1. 什么是家校通
简单的说就是用于联络家庭和学校的管理平台
1.2. 家校通特性
提供一个通用的平台,供各种家校通业务系统来使用,完成短信,语音短信的发送、语音信箱留言,电话会议的功能。
2. 需求分析
2.1.获取信息
过程省略,分析之后,获得系统模型可以用下面的图形来表示
描述:通过外部的应用程序(可以是一个短信接收程序或者声讯流程),将获得数据放入到管理平台中,通过管理平台可以对这些数据进行管理。然后再由管理平台将短信信息通过调用短信转出组件(语音信箱转出组件、电话会议转出组件)转出给短信发送子系统(语音信箱子系统(声讯流程)、电话会议子系统(声讯流程)),用户就可以收到短信、听到留言或者收听电话会议了。
2.2.软件架构搭建
根据需求分析的情况(前提是需求分析应该比较符合现实情况)开始设计软件架构。由以上的图可以了解架构其实就分为外部应用程序的开发(短信收发程序、固话或手机声讯流程)、转入接口组件、管理平台开发、转出接口组件、子系统的开发。下面就管理平台的搭建作介绍。
2.2.1 .应用层表现
它含有人员信息、组织信息、业务信息、角色信息、权限信息、各种信息的维护、话单的信息(用来打印的)。
因为该系统涉及到收费问题,因此在开通后并不是每一个固话用户都可以使用的,因此需要设计一个人员信息来进行注册,只有注册后的用户才可以使用该系统或流程。
将不同的用户分为不同的角色,不同的角色又属于不同的组织,角色的权限也均不相同。每个用户使用的业务也不一定相同(有些使用短信、有些使用固话流程),因此需要设计组织信息、业务信息、角色信息和权限信息。
在某些时候还要将不同用户使用的情况(话单)打印出来供参考。因此还需要有话单的基本信息。
以上设计之后,该管理平台的应用层就剖析开了。
2.2.2 .数据层表现
针对于不同的信息,又含有他们特定的属性(这是根据需求分析获得的)。分解出他们不同的属性和公用的属性,这样就可以将数据层体现出来。
3. 功能设计
根据应用层的体现,可以剖析出应用层中每一个应用的具体功能。例如:如果要剖析人员信息的功能,那么需要考虑人员如果要使用这个系统,那么必须首先进行注册,这样就分离出了“添加功能”,如果人员信息有变动,那么就需要增加一个“修改功能”,如果人员不想再使用这个功能了,那么就需要增加一个“删除功能”。对于维护人员而言,他需要了解或打印出某一人员信息的话单信息,那么有需要添加“查询功能”和“打印功能”。这样基本的功能就能分析出来了。其它的也都是类似的。
4. 代码与数据库的关系
在功能设计和库设计完成之后,再编写之前需要考虑该程序的可移植性和可维护性。一般程序一拿到功能设计文档和数据字典之后就埋头开始编写程序,这时我不赞成的。我希望再编写之前认真地考虑那些需要用代码实现,那些直接就可以用存储过程实现。考虑清楚之后,再开始编写程序,这样就会事半功倍。
我将我的方法列在下面供大家参考,希望能够带给大家一点启发。
a. 连接数据字符串用XML文件或者文本文件实现,在程序中只需要读取XML文件或文本文件中的内容就可以了。这样如果数据库用户或密码改变,就不用再打开程序去修改,直接在外部修改就可以完成了。
b. 数据添加和删除也写在XML文件中或文本文件中,还可以写在存储过程当中。对于一张字段大于10的表来说,在程序里面用插入语句实现会显得非常的长(繁琐),虽然两者的工作量没什么区别。但从执行效率来讲,将语句放在外面,然后通过程序调用(或者传递变量)速度会快很多。
c. 查询尽量用存储过程实现,尤其是复杂的查询。在存储过程中SQL会调用SQL引擎来自动执行,它的速度是非常快的。虽然少量的数据看不出来执行速度,但是一旦数据库庞大的话,效果是非呈明显的。
上面三点就可以保证程序代码和数据库能够完全独立,这对于后面的可移植性和可维护性会非常有利。
5. 测试与维护
程序的测试非常重要,一般程序员写完程序后都会执行编译和运行程序来进行测试,但是这样的测试会有弊端,因为程序员在自己写的测试用例中会不自觉地设计正确的测试路径,用的也是正确的测试数据,这样他们就发现不了错误。因此最好有专门的测试人员来进行测试,而这个测试人员应该不了解该软件的使用方式。这样写出的测试用例就可以尽可能多地找出错误,避免交付用户使用的时候出现问题。
二. 行业借鉴经验(讲一讲我的工作历程)
由于我个人跨行业比较多,因此就从我参加过工作的几个行业来叙述一下:
在中核集团的时候,对于我来讲,对于软件编程还是个门外汉,更别提什么学习组态王了。但我的学习能力还是很强的,能够很快掌握组态王和VB编程,并学习了串口编程。具备这点知识在该公司里已经可以胜任我的岗位上的工作了。并了解了一些硬件和强电上的知识。
在第二家单位华信铁路技术有限公司的时候,我工作的就比较顺手了,因为该公司的性质是:在软件上有数据采集、数据库编程,硬件上有测试台(和强电有关系)。因此在这里主要学习了数据库编程,并更深一步的进行面向对象的编程。掌握了VB.net编程。
在第三家单位海天信息技术有限公司,开始负责海天HIS的设计和开发。那是在开发上我已经非常熟悉了。在设计上我还没有过这么大的项目。但是我以前设计过单独的软件系统(乌鲁木齐数据库管理软件)。因为HIS是由很多的小系统组成的,因此我将他们分离,然后独立设计,再找出共同的地方,将他们联系起来。在这里真正的了解了软件的设计和建模,但是因为特殊原因,未能参与开发。
在现在的单位,就有了更多的空间,因为它的性质属于电信行业,该行也是非常庞大的,也就会开发不同的软件。通讯的、数据库的和声讯的,自己的岗位上的工作也是一个项目要独立完成。用的语言也是不定的,根据我在前面三家单位综合起来的经验,开发工作也是非常顺手。在这里又积累了声讯流程方面的经验。
综上所述:在工作中积累经验是非常重要的,因为不管以后在那里工作,经验不会丢掉,并且有非常大的借鉴价值。这就是人的自身价值。
三. 应用难点技巧(一点小技巧)
a.管理数据库方面:
a.1. 新建一个数据库(Sql Server中的)之后,如果该数据库非常重要,那么尽量要建立一个专用于该数据库的用户,
该用户的密码位数尽量要设置长一些,并且密码的组合为字母、特殊符号和数字的组合。这样可以确保数据库的安全。
a.2. 如果是针对与Oracle中的数据库,那么只需要在建立用户的时候配置一个难以破解的密码就可以了。然后在这个用户下建立表和过程、触发器.OraCle的安全性远远要大于Sql Server
a.3. 每天定时备份数据库,如果出现数据丢失或数据库损坏的情况,能够在最短的时间内恢复数据或数据库。
b.使用数据库方面:
如果一个软件中有这样一个功能,就是每天都要在一定的时间内运行一个操作。那么一般的方法
就是在程序中使用定时器和循环来判断当前时间是否在那个时间段内,如果在,直接运行程序,否
则不执行。而我不赞成这种方法,因为我希望将程序和数据库能完全分离。软件只需要负责应用层。
而让数据层直接在数据库操作中完成。下面我介绍一下我的方法(当然,我相信有很多人都应用过
这种方法,也许这不是什么新鲜的事情了,但是我希望我的经验能带给那些不知道这样去用的程序员):
b.1. 直接在数据库(Sql Server)中建立一个作业。步骤如下:
首先启动Sql Server服务管理器中的Sql Server Agent服务,然后打开Sql Server企业管理器,展开
Sql Server组,展开管理节点,在管理节点下展开Sql Server代理,选中作业。
b.1.1.点击右键
b.1.2.新建作业
b.1.3.在弹出的新建作业属性对话框中输入名称
b.1.4.选择步骤页面
b.1.5.在该对话框中的“常规”选项页面中输入步骤名、类型、选择数据库和需要执行的命令(Sql语句)
b.1.6.在“高级”选项页面中配置“成功操作时”的值。
b.1.7.在新建作业属性对话框中选择“调度”页面,弹出新建作业调度页面
b.1.8.配置该SQL语句运行的时间或时间段
b.1.9.其他的配置可以省略,至此建立作业完成。
这样,在每天的这个时候就会执行一次作业,省去了编写代码的麻烦。前提是必须保证SQL语句是正确的。
宁军辉
2006-07-15
5.测试与维护…………………………………………………………………7
二.行业借鉴经验…………………………………………………7
三.应用难点技巧…………………………………………………8