时间:2023-03-21 17:15:37
导言:作为写作爱好者,不可错过为您精心挑选的10篇计算机毕业论文,它们将为您的写作提供全新的视角,我们衷心期待您的阅读,并希望这些内容能为您提供灵感和参考。
本科学生在毕业之前必须做毕业论文,其目的是通过毕业论文,让学生独立开发一个具体的计算机应用项目,系统地进行分析总结和运用学过的书本知识,以巩固本科阶段所学的专业理论知识,并给予一个理论联系实际的机会。
为了便于实施和管理,规定网络学院计算机相关专业本科学生毕业论文主要以开发一个管理信息系统为毕业实践的课题,每个毕业生通过独立开发一个具体的管理信息系统,掌握开发一个比整完整的管理信息系统的主要步骤,并从中获得一定的实际经验。
二、管理信息系统开发的主要步骤
管理信息系统开发的主要步骤及各步骤的基本内容如下:
1、 系统分析
主要工作内容有以下几项:
确定系统目标
系统可行性分析
2、 系统调查
系统的组织结构、职能结构和业务流程分析。其中系统的组织结构图应画成树状结构。
系统业务流程分析、业务流程图
3、 数据流程分析
数据流程图(系统关联图、顶层图、一层数据流图、二层数据流图)
数据词典
代码设计
4、 管理信息系统的功能设计
系统的功能结构图,每个功能模块的主要工作内容、输入输出要求等。
系统控制结构图
5、 数据库设计
概念模型设计:实体、实体间的联系、e-r图
关系模式设计:e—r图->关系模式的转换规则
关系模式
数据库表设计:数据库表结构
6、 系统物理配置方案
7、 人机界面设计
8、 模块处理概述
9、 系统测试和调试:测试计划、测试用例、测试结果
三、开发工具和注意事项
1、开发工具
开发工具可由学生任选。如delphi、foxpro、vb、access等,这些工具的使用全由学生自学。
2、注意事项
(1)项目开发步骤的完整性(系统需求分析、概念设计、物理设计、系统环境和配置、系统实施以及系统测试和调试等)
(2)每个开发步骤所得结果的正确性(业务流程图、数据流程图、数据词典、hipo图、e-r图、关系模式、人机界面设计及模块处理等的详细分析和说明)
相关推荐:
在这宝贵的两年的研究生生活中,首先我要感谢我的导师——郭清顺老师。“授人以鱼,不如授之以渔”,郭老师正是这样以言传身教来教导着我们。
在这里,还要特别感谢我另外一位老师——道焰老师,她雷厉风行的性格、干净利落的做事风格永远是我学习的榜样。无论是在学习上还是在生活,她总给在我最需要的时候给予帮助。
不得不提,王竹立老师,他慈父一样的关怀曾使我感激不已。他使我懂得,踏踏实实做人,认认真真做事,应付别人就是应付自己。
感谢在研究生学习期间给我诸多教诲和帮助的信息与网络中心的各位老师,感谢陈铁老师、苏顺开老师、黄海老师、张汶老师给予我的指导和帮助!
感谢317实验室的兄弟姐妹,是你们给我带来了欢乐,是你们让我知道了什么是手足情深。
感谢我的三位同学——陈颂丽、路昉硕和郭泽平,我们之间的友谊足以使我今生不忘。
目录
第一章:诸论………………………………………………………………..1
1.1设计思想……………………………………………………………………………………1
1.2开发工具的选用及介绍……………………………………………………………………….1
第二章:网站总体分析与设计2
2.1网站系统分析………………………………………………………………………………………….2
2.2、主页设计3
2.3、数据库设计4
第三章:详细设计4
3.1家长学校联络簿………………………………………………4
3.2网上图书馆11
3.3网上评优投票系统20
3.4达级考试在线查分系统与计数器的制作………………………22.
第四部分:系统的使用说明与安装25
第五部分:参考文献:26
附录:源文件代码27
第一章诸论
在internet飞速发展的今天,互联网成为人们快速获取、和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。internet上信息主要是通过网站来实现的,获取信息也是要在internet“海洋”中按照一定的检索方式将所需要的信息从网站上下载下来。因此网站建设在internet应用上的地位显而易见,它已成为政府、企事业单位信息化建设中的重要组成部分,从而倍受人们的重视。为了更好的办学,提高学校知名度,特构建长沙市工商职业中专学校网站。
1.1设计思想
通过网站,全面宣传,展示学校风采、优点与特色,学校的重大活动安排与招生政策,增强家长与学校之间的联系,在internet上实现完成部分校务,提高办事效率。
1.2开发工具的选用及介绍
asp的优势:
activeserverpages:“动态服务器网页”,一般简称为“asp”,asp之所以能受到大家的重视与使用的原因,主要在于所产生的执行结果都是标准的html格式,而且这些程序是在网络服务端中执行,使用一般的浏览器(如ie或netscape)都可以正确地获得asp的“执行”结果,并且将这asp执行的结果直接在浏览器中“浏览”,不像vbscript或javascript是在客户端(client)的浏览器上执行,若使用vbscript来设计程序,客户端(client)在ie浏览器中可以显示程序执行的结果,可是,客户端(client)若使用netscape浏览器就无法显示vbscript的执行结果。
asp的特点:
任何开发工具皆可发展asp只要使用一般的文书编辑程序,如windows记事本,就可以编辑。当然,其他网页发展工具,例如,frontpageexpress、frontpage等也都可以;不过还是建议你用记事本来写,既省钱又方便,若是使用那些所见即所得的网页编辑来写asp,可能会发生一些意想不到的离奇状态。
通吃各家浏览由于asp程序是在网络服务器端中执行,执行结果所产生的html文件适用于不同的浏览器。
语言相容性高
asp与所有的activexscript语言都相容,除了可结合html,vbscript、javascript、activex服务器组件来设计外,并可经由“plug-in(外挂组件模组)的方式,使用其他厂商(thirdparty)所提供的语言。
隐密安全性高
如果我们在浏览器中直接查看网页的原始代码,就只能看到html文件,原始的asp程序代码是看不到的!这是因杰asp程序先于网站服务(webserver)端执行后,将结果转换成标准html文件,再传送到客户端(client)的浏览器上,因此,我们所辛苦撰写的asp程序并不会轻易地被看见进而被盗用。
易于操控数据库
asp可以轻易地通过odbc(opendatabaseconnectivity)驱动程序连接各种不同的数据库,例如:acess、foxpro、dbase、oracle等等,另外,asp亦可将“文本文件”或是”excel”文件当成数据库用。
面向对象学习容易
asp具备有面向对象(object-oriented)功能,学习容易,asp提供了五种方便能力强大的内建对象:request、response、sever、application以及session,同时,若使用asp内建的“application”对象或”session”对象所撰写出来的asp程序可以在多个网页之间暂时保存必要的信息。
asp的六大内部对象
对象名称功能描述
requestresponseserversessionapplicationobjectcontext从客户端取得信息将信息送给客户端提供一些web服务器工具储存在一个session内的用户信息,该信息仅可被该用户访问在一个asp-application中让不同的客户端共享信息可以用来配合microsofttransaction服务器进行分布式事务处理所以我选择了asp结合frontpage架构长沙市工商职业中专学校网站
第二章网站总体分析与设计
2.1网站系统分析
根据前面的设计思想进行分析,按照系统开发的基本观点对网站进行分解,从内容上可对网站作如下划分:
l学校风采通过学校概括、教师风采、校园之星及部分图片等内容来展现。
l优点特色通过新闻、生动活泼的教育教学栏目来展现。
l信息通过公告栏、信息查询等栏目来实现,内容有招生政策、
活动安排等。
l部分校务根据校务的公开程度与参与人数的多少,特选择图书管
理、评优、考试查分、家校联系四大校务在网上实现。
2.2主页设计
网站主页采用静、动相结合的方式,即静态的主画面和动态的图片相结合,体现学校的勃勃生气,静态主
页方式介绍学校风采、优点特色、信息,对于四大校务,就得利用asp与数据库结合的技术建立数
据库查询管理系统,采用交互式的动态的web画面来实现。
主页结构图
注:带下划线的表示是链接方式
2.3数据库设计
采用的数据库是microsoftaccess,拟建立teach.mdb库文件,包含如下几个表文件:
allmessage留言信息表
libbooks图书信息表
libcategories图书类别信息表
libemps图书馆用户信息表;
stud学生信息表
第三章详细设计
3.1家长学校联络簿
3.1.1功能:
利用sql语法过滤特定的家长留言意见,让老师可以针对某位特定学生家长所发表的意见作出独立的回答,同时,家长在发表个人意见时,若认为意见内容涉及敏感的话题或是意见内容涉及私人隐私,都可用“悄悄话”的方式发言,这些“悄悄话”将不会被显示出来让大家看到,当然,老师拥有管理的能力,只要以密码登录管理模式,就可以进行各个学生家长的单独意见回复,而且还能看到家长们所留下的“悄悄话”。
3.1.2组成构造
共分成六大部分:
1,意见留言结果网页guest.asp:用来显示家长发言与老师回复内容,同时还具备一般模式与管理模式两种显示方法。
2,家长发言表单网页addmsg.asp:让学生家长填写发言内容并选择发言性质。
3,家长发言数据处理asp程序add.asp:处理家长发表的意见数据,同时将这些意见数据记录起来并将网页显示转向至意见留言结果网页。
4,老师回复表单网页teachans.asp:让老师针对某位特定学生家长所发表的意见作出独立的回答。
5,老师回复数据处理asp程序anssave.asp:处理老师回复的数据内容,同时将这些意见数据起来并将网页显示转向至意见留言结果网页。
6,数据表文件allmessage:用来储存家长发言数据与老师回复数据的access类型数据库文件。“数据表文件”负责存放家长发言数据与老师回复内容的数据记录,为access类型的库文件,将它定名为:“message.mdb”。
下图为家庭联络簿的组成与流程图:
老师回复
家长留言
读入写入
写入
3.1.3数据库结构设计
数据库文件”teach.mdb“中的数据表”allmessage“的栏目设置,如下图:
字段名字段类型
3.1.4界面设计与重点、难点代码的设计
数据库与留言显示程序网页
家长发言与老师回复的内容数据全部储存在数据库中,要在网页中显示目前的家长发言与老师回复数据,必须先进行数据库的链接与打开,要链接数据库我们必须使用ado对象群的connection对象;而要打开数据库则必须使用ado对象群的recordset对象,程序:
setcn=server.createobject("adodb.connection")
cn.open"filedsn=c:\programfiles\commonfiles\odbc\datasources\msaccessdatabase.dsn"
setrs=server.createobject("adodb.recordset")
sql="select*fromallmessageorderby留言时间desc"
rs.opensql,cn,1,1
recordset对象是负责浏览与操作从数据库取出来的数据,connection对象只负责与数据库进行链接的动作,并不能使用数据库内的数据,因此必须建立一个可以存取数据库数据的recordset对象,使用rs.open方法存取”teach.mdb”数据库
rs.opensql,cn,1,1
使用open方法来打开数据表或执行select指令参数设置如下:
1,参数一(source):为欲打开的数据表或sql指令。
2,参数二(actionconnection):指定一个已打开的数据库对象,将此参数设为链接我们已经建立好的connection对象“cn”。
3,参数三(cursortype):指定recordset的打开类型,1为可读写且可自由移动。
4,参数四(locktype):指定锁定类型,1为只读。
数据排序与sql指令
1.select指令的筛选语句:
格式:select…from
在sql语言中:“select”数据表“中选取某些“栏位”的数据.
2.如果要选取的数据表数据包含了一个以上的栏位,则我们可以利用“,”逗号来栏位名称隔开。
3.如果要选取的数据表数据包含了全部的栏位,则可以利用万用字符“*”来代表全部的栏位。
可排序数据的select指令
1.当我们希望被选取出来的数据记录数据能够依据某个或某几个栏位的内容来排序时,只要将这些排序
依据的栏位摆放在“orderby“保留字之后,然后将这处排序的语句连接在”select…from“后面就行了
。
2.“orderby“默认的排序方式是“由小排到大”,但若是希望排序方式是“由大排到小”,则我们可
在栏位名称后再加上“desc“保留字!将排序方式改为”由大排到小“。
在“显示留言意见”网页中的打开数据库asp程序中的语句:
select*fromallmessageorderby留言日期desc
功能为:从数据表“allmessage“中取出所有栏位的数据,并将取出的数据记录内容依照”留言日期“栏
位使用的”由大排到小“排序方式进行排序。
留言显示网页的管理模式
“显示留言意见”的网页就必须具备显示模式选择的功能,当显示模式在一般情况时要能显示家长们的一
般性发言,同时还得将“悄悄话“的发言隐藏起来。当老师以密码登录成为管理模式时,则必须将一般性
发言与悄悄话发言的数据全部显示出来,同时还得让老师们可以针对某位特定学生家长所发表的意见作出
独立的回答。
这两个情况是通过密码登录管理模式的asp程序实现的:
密码:value="教师管理">
在这段网页语句中,利用session对象来记录目前的工作模式。当我们第一次进入“显示留言意见”网页
的时候,我们所见的网页画面一定是一般!因为session尚未被建立,因此它的“变量”值一定不会是
“yes”,所以网页中会出现一个输入密码进入“教师管理”模式的栏位,只有当我们输入密码按下“教
师管理”的按钮组织上发asp程序中的进入管理模式语句后,session对象才会被建立,同时,
“checkedit“session对象变量值被设置为“yes“,所以我们就进入了能将一般性发言与悄悄话发言的
数据全部显示出来,同时还让教师们可以针对某位特定学生家长所发表的意见作出独立回答的管理模式页
面。
留言显示网页的分页
当家长的发言与老师回复的数据笔数太多时,一次要将全部的数据内容显示在网页中,等待网页下载的时
间太长了,因此采用固定笔数分页浏览方式来显示网页。
要进行分页显示,得先知道目前有多少笔的留言数据,而留言数据笔数可以通过recordset对象的
“recordcount“(记录个数)属性得知,我们将每10笔数据为一单位分页显示:
count=rs.recordcount
ifcount/10>(count\10)then
totalpage=(count\10)+1
elsetotalpage=(count\10)
endif
“/”为浮点数除法,“\”为整数除法。
跳页选择的asp程序语句
所有的发言数据采用固定笔数分页浏览的方式来显示后,还要提供一个跳页链接显示的功能,让浏览者可
以选择希望浏览的页次进得浏览,asp程序语句:
pagecount=0
rs.movefirst
ifrequest.querystring("topage")<>""thenpagecount=cint(request.querystring("topage"))
ifpagecount<=0thenpagecount=1
ifpagecount>totalpagethenpagecount=totalpage
rs.move(pagecount-1)*10
发言表单网页制作
insetu3
表单的参数
表单的action参数:action参数是用来指定server端处理此一表单数据内容的程序,此处表单处理asp程
序为“add.asp“,
表单的mothed参数:要将表单传送至server端的方式有两种,设置值分别为get及post,若设置为post,
则浏览器会等server端来读取数据,若设置为get,则当我们按下送出按钮时,浏览器会立即将表单中的
数据内传送出去。利用post方法,在传送的数据上将不受限制,利用get方法传送的数据量则大约只有2k
左右。
留言处理程序
要将家长发言数据作后续处理及将这些数据内容存入数据库,须利用添加数据记录的insertinto指令,
然后再写入数据库文件中:
insetinto指令语句格式:
insertinto数据表名(栏目名)values(栏目值)
sql="insertintoallmessage(家长姓名,留言主题,联络信箱,留言内容,私人公开,留言时间,班级)
values("
sql=sql&""&parent&","
sql=sql&""&subject&","
sql=sql&""&email&","
sql=sql&""&memo&","
sql=sql&""&personal&","
sql=sql&""&now&","
sql=sql&""&bj&")"
cn.executesql
回复表单程序网页
必须让老师们可以针对某位特定学生家长所发表的意见作出独立的回答,
使用select…from…where筛选语句
sql="select*fromallmessagewhere(编号="&id&")"
rs.opensql,cn,1,3
然后将特定的家长发言数据放在表单,方法是将数据库中的数据取出来,然后放在表单栏位中:
“家长姓名“栏位网页语句标签
“留言主题“栏位网页语句标签
“留言内容“栏位网页语句标签
老师在回复栏位中所填入的数据,必须送给处理老师回复数据的asp程序”anssave.asp”来记录以及处理
这些回复数据。当老师填写好回复发言的数据后按下“送出回复”按钮后,表单中的数据内容就会以
“post”的方式由sever端读取,然后将数据内容交由处理老师回复数据的asp程序“anssave.asp”来将
数据内容写入数据库。
3.2网上图书馆
网上图书馆将学校图书馆图书放到网络上供人借阅,这样不仅方便了校内的学生与教职员工使用图书馆的
资源,还为图书馆管理员提供了一种简便地管理图书馆的方法.
3.2.1功能
网上图书馆系统可以进行图书的出借和归还.还可以在系统中按照多种字段对图书进行查找,还可以浏览某
个种类的所有图书.该应用程序也为图书馆管理员提供了一些功能,如添加、编辑以及删除图书等,或者在
分类层次结构中添加新的种类。
3.2.2系统的层次结构
下图的每个方框代表校园图书馆网站中的一个页面。除了只包含html的search页面外,其他的均为
asp页面。因为每个图书的页面都不同,所以大多数的页面实际上都是多页面。
3.2.3数据库设计
本系统共使用3个数据表:
libbooks表包含与图书有关的所有数据。该表中的字段内容的图书的通用信息。另外,对于已经出借的图
书,该表中还包含借阅该图书的用户的id号,以及图书的状态。
表视图如下:
字段名意义字段类型字段名意义字段类型
bookid书号(主键)数字(nonull)status状态文本
title书名文本checkedoutto用户id数字
author著者文本reservedby用户学号数字
subject主题文本description描述文本
isbnisbn号文本keywords关键字文本
libcategories表包含library中的所有类别,在访问者浏览图书列表时将会用到这些类别。每个类别都
可以作为另外类别的父类别。有一个特殊的类别,top-level,没有出现在类别列表中,但是可以作为其他
任何类别的父类别。
字段名意义字段类型
categoryname类别文本(noll)
parentcategory父类别文本(noll)
libemps表包含可以访问图书馆网站的用户信息。该表包含一些通用的信息字段,比如用于进入图书馆
的用户密码等。
字段名意义字段类型字段名意义字段类型
empid用户id(主键nonull)数字password用户密码文本
empname用户姓名文本manager管理员代号数字
emailaddress用户邮箱文本
图书馆数据库的数据关系如图9-22所示。其中表libemps和表libcategories与表libbooks之间都是一对
多的关系。每个雇员都可以借阅多本图书,每个类别都可以包含多本图书。
3.2.3界面设计与重点代码的设计
网上图书馆系统有两种用户,一是管理员。另一种是只允许使用图书馆系统,而没有管理功能的一
般用户。访问者进入网站,首先要进行登录,如下图所示。登录页面(index.asp)
访问者输入e-mail地址和密码来登录,然后单击“登录”按钮。输入的数据提交后与数据库中的用户表
进行匹配。
须创建一个记录来保存基于访问者登录的用户信息
setrsfindemp=conn.execute("selectempid,managerfromlibempswhere"_
&"emailaddress="&request.form("emailaddress")&"and"_
&"password="&request.form("password")&"")
ifrsfindemp.eofthen
themessage="密码或email地址不对."
else
session("empid")=rsfindemp("empid")
session("manager")=rsfindemp("manager")
response.redirect"../yk.htm"
endif
表单域emailaddress和password用于where了句中来获取一个记录。如果访问者输入了一个无效的用户名
,则记录集中将不会返回匹配的记录。我们可以通过查看eof标记来判断一个记录集是否为空。为空,则
访问者将被拒绝进入该系统。不为空,则访问者的empid值和manager值将从记录集中返回。写入session
变量,变量将在整个网站的所有网页中都是有效的。这些变量的存在与否及其取值将用于确定是否允许
进入一个特定的网页,同时也用于访问者进行书目的归还和借阅操作。
图书馆菜单页面
图书馆菜单页面包含指向其他4个页面的链接:管理页面、搜索页面、图书列表页面和主页面。还有一个
可显示用户所借书籍的按纽。如果访问者是图书馆管理员,则菜单界面如图所示。如果访问者不是图书馆
管理员,则看到如图所示的界面。非管理员的访问者的界面上没有指向管理员菜单页面的链接。
实现办法:访问者登录时在登录页面上的创建的会话变量session用于从数据库中获取访问者的有关
信息,表示它是否是管理员。如果值为1,就表明访问者是一个管理员,则用如下代码写入一个指向管理
员页面的链接:
管理员菜单
通过按纽b1是否为空来判断要不要显示用户所借图书,利用一个记录集来获取访问者已经借出了的所有图
书的列表。
ifnotisempty(request.form("b1"))then
setrsbooks=conn.execute("selectbookid,titlefromlibbookswhere"_
&"checkedoutto="&session("empid"))
endif
再用循环语句将所借书以表格形式显示出来。
循环将遍历rsbooks记录集中的每个记录,直到该记录集结束:
该网站中的所有asp页面都会在访问者访问之前对其进行登录检查。这样就可以避免访问者通过输入
某个页面地址然后在没有登录的情况下直接进入该页面的情况发生。此外,每个管理页面都要确认访问者
是管理员。
管理菜单页面
管理菜单页面有一个html表单,根据选择的按钮的不同,可以进行5种不同的操作:图书的归还、图书的
编辑、图书的删除、图书的添加和类别的添加。不管选择了哪一个按钮,该表单都提交人其自身进行处理
。
要进行图书的归还、图书的编辑、图书的删除三种操作,须先进行搜索,找到该书后,由图书book.asp返
回一个链接:
&bookid=">管理员菜单
而管理者页面通过下列语句
>
这样就将所找到的书的书号bookid、书名title传递管理者页面。再进行所须操作。共有3个不同的铵纽,
可以进行3种操作。若单击“修改”钮:
则重定向到编辑图书页面,同时把bookid传递给该页面。
response.redirect"./edit_book.asp?bookid="&request("bookid1")
将其他的情况需要建立到数据库的连接:
setconn=server.createobject("adodb.connection")
conn.open("filedsn=c:\programfiles\commonfiles\odbc\datasources\msaccessdatabase.dsn")
ifnotisempty(request.form("delete"))andrequest("bookid1")<>""then
conn.execute"deletefromlibbookswherebookid="&request("bookid1")
endif
if(notisempty(request.form("checkin")))andrequest("bookid1")<>""then
conn.execute"updatelibbookssetcheckedoutto=0,status=availablewherebookid="&request
("bookid1")
endif
页面中的添加新的种类部分包含一个文本控件和一个选择控件。其中选择控件是用所有已经存在的类别列
表进行填充的,包括特殊类别toplevel,该类别表明当前类别是处于类别层次结构中的最顶层。代码
如下:
先用一个记录集来填充父类别选择控件:
setrscategories=conn.execute("selectcategorynamefromlibcategoriesorderby
categoryname")
再用下列循环语句:
">
遍历rscategories记录集中的每个记录,并作为一个选项添加到列表中,而记录集中categoryname同时
作为显示值和传递值:
本页面还包含一个指向添加图书页面的链接。
搜索结果页面
搜索页面的代码获取与访问者查找规则相匹配的图书,然后将这些图书显示给访问者。
搜索页面上的表单包含一个选择控件和一个文本控件。选择控件中的选项是用可搜索的字段填充的:
需要用一个记录集来保存与访问者的查找规则相匹配的记录:
setrsbooks=conn.execute("selectbookid,author,title,subjectfromlibbookswhere"_
&request.form("searchfield")&"like%"&request.form("searchcriteria")&"%")
注意:,符号%表示的是一个广义搜索。这一点类似于access中的符号*。
然后将所找到的书以表格形式显示出来。代码如下:
书名:">
著者:
;主题:
图书页面
图书页面的代码显示图书的有关信息,以及管理图书的出借操作。
该页面通过querystring传递bookid
ifisempty(request.querystring("bookid"))then
response.redirect"./search.html"
endif
如果其中不存在,则访问者将被重定向到搜索页面:
如果同时传递表单中包含的变量action不为空,则表明访问者正借阅该图书:
ifnotisempty(request.querystring("action"))then
在这种情况下,需要将图书状态改为checkout,同时需要将checkedoutto字段修改为该访问者:
conn.execute"updatelibbookssetstatus=checkedout,"_
&"checkedoutto="&session("empid")&"wherebookid="_
&request.querystring("bookid")
response.redirect"./library_menu.asp"
endif
然后将该访问者重定到图书馆菜单页面:
下一步,利用图书的状态来确定不同的链接
未借出时链接如下:
ifrsbooks("status")="available"then
linktext="借这本书"
如果图书已经借出,就创建一个不同的消息,并将链接设置为指向librarymenu页面:
linktext="图书已出借,返回主菜单。"
最后根据是否是管理员,显示管理员菜单链接。
&bookid=">管理员菜单
3.3网上评优投票系统
3.3.1功能:
能实现全校性的评选,快捷、公平,且有效,不允许做票。
3.3.2组成构造
这个系统由3个部分组成——投票页面vote.htm,处理投票结果的脚本,显示投票页面。
3.3.3数据表的设计:
3.3.4界面设计与重点、难点代码设计
投票页面
该页面是一个纯html文件,它让用户选择自己想选举的候选人,并填写自己的详细资料,以确认投票的有
效性。页面显示如图所示。
表单处理脚本
在vote.htm中各项数据都填写完毕后,单击确定投票按钮,表单的数据就被提交,
本次评优共有4个候选人,但只能选两个。故用复选框。
投票的有效性通过是否是本校学生,且是否投过票来判断。
ifrequest("passno")<>""then
sql="select*fromstudwherepassword="&""&request("passno")&""&"andyitu=0"
setrs=cn.execute(sql)
ifrs.eofthen%>
本设计允许少选,不允许多选。通过判断vote投票界面传递过来的复选按纽值的长度看是否多选。
vo=request("cand")
iflen(vo)>4then%>
然后根据所投的票将对应候选人的投票结果字段加1,同时将该投票人的已投字段置为1。
sqq="updatestudsetyitu=1wherepassword="&""&request("passno")&""
cn.execute(sqq)
ifinstr(vo,"1")then
cn.execute("updatestudsetresult=result+1wherename=李宁")
endif
ifinstr(vo,"2")then
cn.execute("updatestudsetresult=result+1wherename=杨兰")
endif
ifinstr(vo,"3")then
cn.execute("updatestudsetresult=result+1wherename=江道明")
endif
ifinstr(vo,"4")then
cn.execute("updatestudsetresult=result+1wherename=段启文")
endif%>
显示当前投票情况show.asp
由于投票处理页面已经完成了绝大部分的工作,所以显示结果页面就很简单了,其功能是从stud表文件
中读取候选人所得票数,显示在页面上。
页面显示如图
值得注意的代码主要有以下几处:
该页面有自动刷新功能,使在线用户可以尽快的看到最新的选举情况。我们这里设定每隔30秒钟自动刷新
一次。
显示投票时,我们采用了while循环,把候选人及其得票数,整齐地显示在一个表格中,这种技术在数据
库查询结果的显示中也经常用到。代码如下:
3.4达级考试在线查分系统与计数器的制作
3.4.1功能:
它提供了在线查看成绩。考生可以在网上使用这一系统,通过输入准考证编号来查询达级考试的结果。
3.4.2数据表的设计
与评优系统共用stud表,表设计同上。
3.4.3界面设计与重点难点代码的设计
该模块需要查询者输入准考证号后来查看结果。若id1不为空时,表示有表单输入,开始查询数据库。使
用select的sql指令查询数据库的数据。先设定sql指令,查询id符合准考证编号request.form("id1")的
数据,下个“execute”指令,即可开始执行存取、查询数据的动作了。并将查询结果储存到recordsets
组件rs中。
ifrequest.form("id1")<>""then
setconn=server.createobject("adodb.connection")
conn.open("filedsn=c:\programfiles\commonfiles\odbc\datasources\msaccessdatabase.dsn")
sql="selectname,id,scorefromstudwhereid="&request.form("id1")&""
setrs=conn.execute(sql)
若考试通过,则显示考试的结果,包括姓名、准考证编号、总分和考试结果,分别由recordsets组件的
rs(0)、rs(1)、rs(2)、rs(3)得到。fs.field.count表示recordsets组件的域的总数,由“for
i=0tors.fields.count-1”,取得rs(i)各域的数据。配合表格的html语法,将结果填入表
格的各单元格中。若还有下一个数据,就使用rs.movenext移到下一个位置。
3.4.4页面访问计数器的制作
利用文件处理组件filesystem的强大功能来制作,比用application对象计数器要好,application计数器
当有20分钟没有人连上该网页或关机时,计数器会被归零。而文件计数器却不会因时间而消失。我用
count.txt存放访问人次。代码如下:
whichfile=server.mappath("pic\count.txt")
setmyfile=server.createobject("scripting.filesystemobject")创建一个
setthisfile=myfile.opentextfile(whichfile)组件对象
visit=thisfile.readline
thisfile.close读取计数器数据文件count.txt中的计数数据
visit=visit+1记录自加一次
length=len(visit)
fori=1tolength
response.write""将记录的数据用图片显示出来
next
setthisfile=myfile.createtextfile(whichfile,1)将新计数数据写入文件thisfile.writeline
(visit)
setmyfile=nothing
数字图片我利用photoshop中的文字特效制作了9个立方数字:
等
四.系统的使用说明与安装
4.1运行环境要求
windows98
personalwebserver3.0(pws)
microsoft?access2000(9.0.2812)
4.2安装设置
a.将本网站拷贝到硬盘上的某一目录下,如:拷贝至c:\y1下。
b.运行pws,将默认的web站点主目录设置为该目录,如上例应为c:\y1;
具体步骤:
a.选择“高级”项;
b.单击“编辑属性”按钮,在出现的“编辑属性”对话框中的“目录”项中填入“c:\y1”,其他不变,
确定;
c.设置启动默认文档为:yy.asp
致谢
通过这次毕业设计,使我感到高科技、新知识的力量。这次毕业设计过程中,得到了长沙市工商职业中专
学校的大力支持,给我提供了舒适的工作学习环境,也得到了科大老师、教授的精心指导,在此表示衷心
的感谢!
五.参考文献
[1]李世杰activeserverpages(asp)3.0网页设计手册北京:清华大学出版社1999
[2]前沿电脑图像工作室巧学巧用dreamweaver、fireworks、flash制作网页北京:人民邮电出版社
[3]asp入门与实例演练薄小志编著中国青年出版社
毕业论文范文
毕业论文格式范文
[摘要]页面要求:毕业论文须用a4(210×297mm)标准、70克以上白纸,一律采用单面打印;毕业论文页边
距按以下标准设置:上边距(天头)为:30mm;下边距(地脚)25mm;左边距和右边距为:25mm;装订线:
10mm;页眉:16mm;页脚:15mm。
页眉:页眉从摘要页开始到论文最后一页,均需设置。页眉内容:浙江广播电视大学专科毕业论文(
设计),居中,打印字号为5号宋体,页眉之下有一条下划线。
页脚:从论文主体部分(引言或绪论)开始,用阿拉伯数字连续编页,页码编写方法为:第x页共x
页,居中,打印字号为小5号宋体。
题目采用黑体二号居中,题目下空一行写摘要,摘要(包括关键词)、参考资料用宋体5号。
前置部分从中文题名页起单独编页。
字体与间距:毕业论文字体为小四号宋体,字间距设置为标准字间距,行间距设置为固定值20磅。正
文中的小标题用三号黑体.
[关键词]
毕业论文,免修免考,社会实践
为加强中央广播电视大学免修免考,促进广播电视大学教育与其他高等教育的相互沟通,推进中央广播电
视大学人才培养模式改革和开放教育试点的深入开展,中央广播电视大学制定了《中央广播电视大学免修
免考课程管理办法(试行)》文件,现就文件中有关问题问答如下:
一.《中央广播电视大学免修免考课程管理办法(试行)》何时实施,以往中央电大所发文件与本规定有
不符者,将如何执行?
本规定自文件之日起开始执行;以往中央电大所发文件与本规定有不符者,废止。
二.免修免考课程内容有何要求?
作为免修免考替代的课程,其专业层次、教学内容和教学要求应不低于现修专业被替代课程的专业层
次、教学内容和教学要求。
三.免修免考对象?免修不免考的对象?
免修免考对象为电大课程、国家自学考试课程、合作高等学校课程、国家外语等级证书;另外,对于
公共基础课程(15年有效),允许已获得相应科类专业专科以上学历(国家承认的国民教育系列)者免修
免考,并获得相应学分,如:数学专业毕业的学生可申请非数学专业的高等数学课程免修免考。免修不免
考的对象为其他高等学校课程。
注:开设专业与合作高校一览表
专业名称
合作高校
专业名称
合作高校
会计学
北京工商大学
英语
北京外国语学院
计算机科学与技术
清华大学
工商管理
东北财经大学
金融学
中国金融学院
法学
中国政法大学
汉语言文学
北京大学
数学与应用数学
东北师范大学
土木工程
天津大学
机电
哈尔滨工程大学
公共事业管理(卫生)
北京大学医学部
小学教育
上海师范大学
公共事业管理(教育)
东北师范大学
水利水电工程
华北水利水电学院
四.现修专业所有课程只要符合条件均能被免修免考吗?
现修专业并不是所有课程只要符合条件均能被免修免考!因为考虑到课程开放的特点,课程开放专业
所有课程暂不考虑学分替换和免修免考问题;反之,对于已获得课程开放专业的合格课程可免修免考电大
其它非课程开放专业的课程。
五.免修免考课程学分如何记载?
经审核允许进行学分替换的课程,学分按现修专业中被替代课程规定的学分记载;对批准免修免考课
程的成绩,按“合格”记载。
六.如何理解文件中的专业层次?
专科段层次的课程只能替换相同或不同专业专科段层次的课程,即使其它条件符合免修免考要求,也
不能用它来替换本科段层次专业的课程。例如:某生在专科段学了经济数学课程,在本科段学习时又必修
相同内容和要求的该课程(且教材相同),可它仍然不能被免修免考。但是中央电大对英语课有特殊规定
,对于在低层次(如专科段)所学的,并记入毕业总学分审核的英语(1)(2)课程,在高层次(如本科
段)学习中只给予免修免考,但不能获得学分,其学分必须通过选修同层次课程获得;在同层次中予以免
修免考,并获得本课程学分。相反,某生在本科段学了经济数学课程,在专科段学习时又必修相同内容和
要求的该课程(且教材相同),那么该课程允许免修免考,并获得相应的学分。
七.只要教学内容、教学要求不低于现修专业被替代课程教学内容、教学要求的课程都能免修免考吗?
不是。作为免修免考替代的课程,除了考虑其教学内容、教学要求不低于现修专业被替代课程的教学
内容、教学要求外,还应考虑其有效年限、课程所在院校和专业层次等等。
八.所有免修免考的课程均可获得相应的学分吗?
不是。中央电大对英语课有特殊规定,对于在低层次(如专科段)所学的,并记入毕业总学分审核的
英语(1)(2)课程,在高层次(如本科段)学习中只给予免修免考,但不能获得学分,其学分必须通过
选修别的课程获得;在同层次中予以免修免考,并获得本课程学分。
九.如何理解文件中的有效年限?
有效年限是指已获得的毕业证书、单科结业证书、国家外语四、六级证书签发日期到电大注册日期。
如6年有效这样理解:如果你是合作高校97年7月毕业生,02年入学注册,注册时离毕业时间只有5年,不
到规定年限6年,那么你将有权利申请免修免考课程,并且此门课程保留八年学籍有效。假如你是03年秋
季或之后前入学注册,注册时离毕业时间已到规定年限(6年),那么你将没有权利申请免修免考。另外
,高校毕业生课程均视为毕业年所学,比如98年合作高校学生在第一学历学习时学了国际公法课程(不管
此门课程当年毕业时间,均视为该专业毕业年98年7月所学),假如这位学生03年春季或之前注册中央电
大开放教育本科法学专业,那么根据《中央广播电视大学免修免考课程管理办法(试行)》规定和中央广
播电视大学专业教学计划,他将可以免修免考该课程,并获得该课程5学分(前提是符合免修免考应具备
的其它条件);相反,假如这位学生03年秋季或之后注册中央电大开放教育本科法学专业,那么根据《中
央广播电视大学免修免考课程管理办法(试行)》规定,此门课程已过免修免考有效年限6年,因此他将
不能申请免修免考。对于有单科结业证书的课程,有效年限起始日期不应以毕业证书日期为准,而应以单
科证书签发日期为准(审核人员应加强管理力度,预防学生舞弊)。
十.省级成人高等本科英语统测证书能替换电大公共外语课程吗?国家外语四、六级证书呢?
获得省级成人高等本科英语统测证书可以免修电大英语(1)(2)(或电大英语(3)(4)课程)课
程和大学英语ⅲ(1)(2)课程,但其不能获得相应学分,其学分必须通过选修同层次其他课程获得相应
学分。我们建议具有较高外语水平的学生,各校应鼓励他们学习更高层次的公共外语课程。
获得国家外语四、六级证书的学生可以替换所有设置公共外语课程(包括大学英语ⅲ(1)(2)),
并可取得相应的学分。
十一.是否除合作高等学校之外的任何其他高等学校课程,均不能免修免考?
不是!对于普通高等学校基础专业毕业的课程,将可申请电大非原毕业专业基础课程的免修免考,并
取得相应的学分。如:数学专业毕业的学生可申请非数学专业的高等数学课程免修免考。
十二.免修免考外语课程将影响申请学位吗?
不一定!如《免修免考课程管理办法》允许注册前6年内或注册后学籍期间,获得国家外语四、六级
证书者可免修免考电大非英语专业所有外语课程,但是中央电大学位条例只承认申请学位当年前5年内所
获得的国家外语四、六级证书。另外,通过外语专业毕业证书取得电大非英语专业外语课程免修免考者,
将无法替代学位外语。
十三.只要符合替换要求的课程都能100%替换吗?
不是!替换课程比例有限制,如下表课程类型替代必修总学分比
替代方法
电大课程(含注册生)
100%
免修免考
国家自学考试课程
40%
免修免考
合作高等学校课程
100%
免修免考
其他高等学校课程
50%
免修不免考
十四.某生98年注册国家自考办法律专科专业(共11门课程),现已通过9门,还有两门屡站屡败,后来
这位学生转入中央电大注册视听生法律专科专业学习,恰好有5门课教学内容、教学要求、有效年限、专
业层次等都不低于现修专业被替代课程的教学内容、教学要求、专业层次。试问这位学生的5门课能免修
免考吗?
不一定,文件规定课程替换有比例限制,对于国家自考办课程,只能替换现专业(电大注册视听生法
律专业)必修课总学分的40%,那么根据电大注册视听生法律专业教学计划,其必修课总学分为47分,折
40%,实际能替换为18.8学分。即从5门课中挑出学分和不高于18学分的完整课程来替换。假如这位学生的
5门课程是中央电大或合作高校的,那么这些课程将100%替换。假如这位学生是92年注册国家自考办,那
么情况又不同了,还得验证这5门课程的有效年限(国家自考办单科结业证书6年,电大课程和合作高校均
为8年)。
十五.对于分学期课程(如刑法学(1)(2)课程、学校管理(1)(2)课程等分两学期开设的课程)应
如何执行替代原则?
对于分学期课程(如《刑法学(1)(2)》),首先应明确它在教学计划中是作为一门课程,因教学
内容和教学任务等较重而分两学期开设,严格课程名称为《刑法学》,(1)(2)只是标识分两学期开设
。单独的《刑法学(1)》或《刑法学(2)》都不能构成一门完整的课程。因此不能对现修课程《刑法学
(1)》或《刑法学(2)》中之一进行免修免考,只有原修课程的教学内容、教学要求、有效年限、专业
层次等都不低于现修被替代课程《刑法学(1)(2)》方可免修免考。如:高自考《刑法学》教学内容和
要求高于电大《刑法学(1)》但低于《刑法学(1)(2)》,因此高自考《刑法学》不能替代电大《刑
法学(1)(2)》。那么能否替代《刑法学(1)》呢?回答不能!因为《刑法学(1)》不是一门课,无
法替代一门课的部分内容。
十六.那些证书能免修免考电大课程?
国家外语四、六级证书(替代非外语专业所有英语课程,6年有效期)、国家承认的基础专业(如数
学专业、英语专业等)毕业证书(替代非本专业相对应的基础课程)等。
十七.省级电大审核的基本程序?
(1)由省级电大按照申请免修免考的条件、申请免修免考的原则,负责对学生有关证件的有效性进
行审核,并将有关证件、材料复印存档且填写初审意见。(由经办人初审并填写)。
(2)省级电大要聘请熟悉本课程教学要求且具有中级以上职称的专职教师,根据专业层次、教学内
容和要求不低于现修课程教学大纲要求的原则,对有关教材(或教学大纲)进行审核。对于学科发展变化
较快的课程,应以学生知识结构的合理性为原则,严格控制并适当缩短证书有效年限。审核之后,要认真
填写审定意见及审定结论。
(3)教务处主管领导,要根据免修免考申请条件、原则、专家审定意见及证件的有效性等情况,对
申请作最后的审批。
(4)省级电大根据批准的申请报告,将免修免考课程人员情况、单科结业证书复印件及审核意见等
文件存入学生成绩档案。(对批准免修免考课程的成绩,按“合格”记载)
(5)省级电大应将审批结果,填入“广播电视大学课程替代、免修免考情况登记表”;采用教务管
理系统中的成绩管理子模块,录入免修免考课程数据。将免修免考数据和“广播电视大学课程替代、免修
免考情况登记表”(打印稿)随考试成绩单报中央电大。
(6)省级电大应按时向申请人反馈中央电大审批结果,通知应包括未批准的原因等情况。
十八.中央电大终审程序?
(1)中央电大负责对“广播电视大学课程替代、免修免考情况登记表”进行审核,并根据省级电大
这次我们所设计的课题正是互联网与社会生活之间的紧密关系的体现,现今的社会,人们已经离不开了网络,网络已经成为人与人之间交流的一种形式,他能够把事情的复杂化转为简单化。老干部局网网站的建设不仅能够使该事业单位的工作方式有所改变,也大大地提高了该单位工作人员的办事效率,也增加了该单位的知明度,更重要的是为我们局的老干部们提供了一个网络生活空间,促进了他们对网络知识的进一步地了解。
通过该网站展示了机构设置、政策法规、办事指南、电子刊物、新闻、学习园地、问题集锦、养生保健、生活小常识、旅游简介等系列内容的介绍。同时您也可以利用电子信箱经济而又快捷地与外界进行各种信息沟通。
asp简介
1 什么是a s p microsoft active server pages (asp)实际上是将标准的h t m l文件拓展了一些附加特征, a s p像标准的h t m l文件一样包含h t m l语句并且在一个浏览器上解释并显示。但它为h t m l编写人员提供了在服务器端运行脚本的环境,使h t m l编写人员可以利用v b s c r i p t和j s c r i p t或其他
多媒体是90年展起来的新技术。它是一种把文本、图形、形象、视频图像、动画和声言等运载信息的媒体集成在一起,并通过计算机综合处理和控制的一种信息技术。多媒体技术是信息领域的又一次革命,在教学上,它既能向学生快速提供丰富多彩的集图、文、声于一体的教学信息,又能为学生提供生动、友好、多样化的交互方式。
多媒体教学可产生优良的视听效果。因为人的视觉、听觉是接收信息的主要渠道,获得的信息也最大。多媒体教学有利于信息传递和学生对信息的接受、储存。其特有的优势对学生产生一定强度的刺激,引起学生的注意。如果没有注意,感知就不会产生强烈观察力。而观察力是在感知过程中并以感知为基础形成起来的,离开了感知也就没有了观察。利用多媒体的优势引人入胜,可以不断提高学生注意的品质,使学生心理活动处于积极状态。
同时计算机将具备更多的智能成分,它将具有多种感知能力、一定的思考与判断能力及一定的自然语言能力。除了提供自然的输入手段(如语音输入、手写输入)外,让人能产生身临其境感觉的各种交互设备已经出现,虚拟现实技术是这一领域发展的集中体现。
传统的磁存储、光盘存储容量继续攀升,新的海量存储技术趋于成熟,新型的存储器每立方厘米存储容量可达10TB(以一本书30万字计,它可存储约1500万本书)。信息的永久存储也将成为现实,千年存储器正在研制中,这样的存储器可以抗干扰、抗高温、防震、防水、防腐蚀。如是,今日的大量文献可以原汁原味保存、并流芳百世。
新型计算机系统不断涌现
硅芯片技术的高速发展同时也意味着硅技术越来越近其物理极限,为此,世界各国的研究人员正在加紧研究开发新型计算机,计算机从体系结构的变革到器件与技术革命都要产生一次量的乃至质的飞跃。新型的量子计算机、光子计算机、生物计算机、纳米计算机等将会在21世纪走进我们的生活,遍布各个领域。
量子计算机
量子计算机是基于量子效应基础上开发的,它利用一种链状分子聚合物的特性来表示开与关的状态,利用激光脉冲来改变分子的状态,使信息沿着聚合物移动,从而进行运算。
量子计算机中数据用量子位存储。由于量子叠加效应,一个量子位可以是0或1,也可以既存储0又存储1。因此一个量子位可以存储2个数据,同样数量的存储位,量子计算机的存储量比通常计算机大许多。同时量子计算机能够实行量子并行计算,其运算速度可能比目前个人计算机的PentiumⅢ晶片快10亿倍。目前正在开发中的量子计算机有3种类型:核磁共振(NMR)量子计算机、硅基半导体量子计算机、离子阱量子计算机。预计2030年将普及量子计算机。
光子计算机
光子计算机即全光数字计算机,以光子代替电子,光互连代替导线互连,光硬件代替计算机中的电子硬件,光运算代替电运算。
与电子计算机相比,光计算机的“无导线计算机”信息传递平行通道密度极大。一枚直径5分硬币大小的棱镜,它的通过能力超过全世界现有电话电缆的许多倍。光的并行、高速,天然地决定了光计算机的并行处理能力很强,具有超高速运算速度。超高速电子计算机只能在低温下工作,而光计算机在室温下即可开展工作。光计算机还具有与人脑相似的容错性。系统中某一元件损坏或出错时,并不影响最终的计算结果。
目前,世界上第一台光计算机已由欧共体的英国、法国、比利时、德国、意大利的70多名科学家研制成功,其运算速度比电子计算机快1000倍。科学家们预计,光计算机的进一步研制将成为21世纪高科技课题之一。
生物计算机(分子计算机)
生物计算机的运算过程就是蛋白质分子与周围物理化学介质的相互作用过程。计算机的转换开关由酶来充当,而程序则在酶合成系统本身和蛋白质的结构中极其明显地表示出来。
20世纪70年代,人们发现脱氧核糖核酸(DNA)处于不同状态时可以代表信息的有或无。DNA分子中的遗传密码相当于存储的数据,DNA分子间通过生化反应,从一种基因代玛转变为另一种基因代码。反应前的基因代码相当于输入数据,反应后的基因代码相当于输出数据。如果能控制这一反应过程,那么就可以制作成功DNA计算机。
蛋白质分子比硅晶片上电子元件要小得多,彼此相距甚近,生物计算机完成一项运算,所需的时间仅为10微微秒,比人的思维速度快100万倍。DNA分子计算机具有惊人的存贮容量,1立方米的DNA溶液,可存储1万亿亿的二进制数据。DNA计算机消耗的能量非常小,只有电子计算机的十亿分之一。由于生物芯片的原材料是蛋白质分子,所以生物计算机既有自我修复的功能,又可直接与生物活体相联。预计10~20年后,DNA计算机将进入实用阶段。
纳米计算机
“纳米”是一个计量单位,一个纳米等于10[-9]米,大约是氢原子直径的10倍。纳米技术是从80年代初迅速发展起来的新的前沿科研领域,最终目标是人类按照自己的意志直接操纵单个原子,制造出具有特定功能的产品。
现在纳米技术正从MEMS(微电子机械系统)起步,把传感器、电动机和各种处理器都放在一个硅芯片上而构成一个系统。应用纳米技术研制的计算机内存芯片,其体积不过数百个原子大小,相当于人的头发丝直径的千分之一。纳米计算机不仅几乎不需要耗费任何能源,而且其性能要比今天的计算机强大许多倍。
目前,纳米计算机的成功研制已有一些鼓舞人心的消息,惠普实验室的科研人员已开始应用纳米技术研制芯片,一旦他们的研究获得成功,将为其他缩微计算机元件的研制和生产铺平道路。
互联网络继续蔓延与提升
今天人们谈到计算机必然地和网络联系起来,一方面孤立的未加入网络的计算机越来越难以见到,另一方面计算机的概念也被网络所扩展。二十世纪九十年代兴起的Internet在过去如火如荼地发展,其影响之广、普及之快是前所未有的。从没有一种技术能像Internet一样,剧烈地改变着我们的学习、生活和习惯方式。全世界几乎所有国家都有计算机网络直接或间接地与Internet相连,使之成为一个全球范围的计算机互联网络。人们可以通过Internet与世界各地的其它用户自由地进行通信,可从Internet中获得各种信息。
回顾一下我国互联网络的发展,就可以感受到互联网普及之快。近三年中国互联网络信息中心(CNNIC)对我国互联网络状况的调查表明我国的Internet发展呈现爆炸式增长,2000年1月我国上网计算机数为350万台,2001年的统计数为892万台,翻一番多;2000年1月我国上网用户人数890万;2001年1月的统计数为2250万人,接近于3倍;2000年1月CN下注册的域名数为48575,2001年1月的统计数为122099个,接近于3倍;国际线路的总容量目前达2799M,8倍于2000年1月的351M。
人们已充分领略到网络的魅力,Internet大大缩小了时空界限,通过网络人们可以共享计算机硬件资源、软件资源和信息资源。“网络就是计算机”的概念被事实一再证明,被世人逐步接受。
在未来10年内,建立透明的全光网络势在必行,互联网的传输速率将提高100倍。在Internet上进行医疗诊断、远程教学、电子商务、视频会议、视频图书馆等将得以普及。同时,无线网络的构建将成为众多公司竞争的主战场,未来我们可以通过无线接入随时随地连接到Internet上,进行交流、获取信息、观看电视节目。
移动计算技术与系统
随着因特网的迅猛发展和广泛应用、无线移动通信技术的成熟以及计算机处理能力的不断提高,新的业务和应用不断涌现。移动计算正是为提高工作效率和随时能够交换和处理信息所提出,业已成为产业发展的重要方向。
移动计算包括三个要素:通信、计算和移动。这三个方面既相互独立又相互联系。移动计算概念提出之前,人们对它们的研究已经很长时间了,移动计算是第一次把它们结合起来进行研究。它们可以相互转化,例如,通信系统的容量可以通过计算处理(信源压缩,信道编码,缓存,预取)得到提高。
所谓的分层技术其实就是对计算机软件结构中其内部层次所存在依赖关系的阐述,一般来说,计算机软件的开发往往要保证软件运行的过程中有着一定的可靠性和灵活性,并不仅仅局限于单一功能,而要尽可能最大限度地实现软件的多种功能。
1.2分层技术的特点
首先分层技术将计算机软件适当地进行扩展,按照功能的不同分解计算机软件复杂的系统,适当改造和升级计算机软件,从根本上修改系统中某一功能层以及上下层。其次分层技术不仅仅将软件开发的效率有效提升,同时对于软件运行的可靠性同样有着一定的保障。计算机软件在开发的过程中,通过改造原有的计算机系统,一方面将复杂软件开发的时间缩小,另一方面对于新软件产品的质量有着实质性的保障。最后分层技术在计算机软件开发中的应用,便于计算机软件的再次使用,通过对分层模式的利用,进而定义功能层次的接口,实现软件的自行开发,并对标准接口进行利用,其端口的无缝隙对接也就在某种程度上最大限度地实现。
2分层技术在计算机软件开发中的应用
随着时代经济的发展以及网络技术的普及,计算机软件开发备受关注。同时计算机软件开发技术的发展,打破了传统计算机软件单项业务处理模式,进而趋向于多层次计算机软件业务处理。就其实质性而言,目前计算机软件开发中所采用的分层技术由刚开始的二层和三层,逐渐发展为现如今的四层和五层。现本文对其在计算机软件开发中的应用进行分析探讨。
2.1双层技术在计算机软件开发中的应用
计算机软件开发中双层技术的应用不仅仅将软件开发的效率有效提高,同时也使软件开发所需的时间在某种程度上有所缩短。所谓的双层技术主要由客户端和服务器两个端点组成,首先客户端主要是提供界面供用户使用,并将某种状态下出现的相关逻辑关系进行处理;服务器主要是对客户信息的接收,并在某种程度上将用户所需要的信息进行一定的整合,再次传递到客户端。分层技术在计算机软件开发中应用的前提,是要保证计算机的服务器有着较好的效能,同时也要保证用户数量相对较少。一旦用户数量相对较多,计算机软件在实际的运行中,不仅仅出现系统上的错误,同时也在一定程度上使得软件运行速度相对较慢,很难实现用户的真正需求。
2.2三层技术在计算机软件开发中的应用
所谓的三层技术主要是在计算机软件开发中双层技术的基础上进行完善。相对于双层技术,三层技术不仅仅使得应用服务器在某种程度上得到增加,同时对于计算机使用用户数据的存储也有着一定的优势。三层技术的应用,一方面使得计算机信息访问的效率有所提高,同时另一方面从根本上实现了计算机与人之间的信息的真正交互,计算机工作的效益明显提高。三层技术主要有业务处理层次、界面层次以及数据层次三个方面。业务处理层次主要是分析用户的真正需求,并发出一定的请求,对数据进行处理和提取;界面层主要是对用户真正需求进行主要的搜集,通过对信息进行一定的加工,进而将数据搜集的结果传递给业务处理层次;而数据层次主要是对业务处理层的申请进行审核,并对数据库相关信息进行查询,进行科学的分析之后将处理结果传递给业务层。三层技术虽然在一定程度上提高了计算机工作的效率,但是面对复杂的用户环境,很难从根本上科学地分开界面层、业务处理层以及数据库层。
2.3四层技术在计算机软件开发中的应用
四层技术是在三层技术的基础上进行完善的,主要有业务处理层、Web层、数据库层以及存储层。其在软件开发中的应用过程,首先是业务处理层对用户的需求进行分析,进而将数据层处理的结果传递给Web层,通过进行数据的交换和数据访问的代码将数据库与计算机对象之间的关系进行直观地反映。
2.4中间件技术在计算机软件开发中的应用
随着数据通信与计算机网络技术的蓬勃发展,在计算机软件开发过程中,中间件技术相对来说是一种独立性的系统软件,从根本上将异构与分布集成带来的各种复杂技术加以屏蔽,将计算机软件开发过程中技术上的难度有效降低。中间件技术不仅仅将开发的周期缩短,而且可从根本上科学优化操作系统、应用软件以及数据库之间的某种关系,同时对于系统的安全运行以及软件开发风险的降低有一定的保障性作用,真正实现了计算机运行过程中各系统资源的优势互补。
在95年11月武汉水利水电工程地质计算机会上,首次公开进行了本专业的自由软件展示与交流,尽管会议上提供的自由软件只有4个,但都是些实用性强的软件,与会代表争相自由拷贝,气氛异常活跃,成为本次会议的一大特色。《会议纪要》认为:自由软件的广泛交流,体现了信息社会共同发展的合作精神,抛弃了传统封闭的小农意识。封闭是没有出路的,只有交流才能发展,这是我们计算机应用事业的保证。
什么样的软件是自由软件?自由软件与商品软件是什么关系,本文便是笔者的一些粗浅认识。
1.软件按商业性质分类
如果按软件的商业性质来分类,大致可分为商品软件、自由软件、共享软件和转让软件等四大类。现分述如下:
1.1商品软件
所谓商品软件,是将软件当成商品出售,具有商品的使用价值和价值两个属性。一般来说,商品软件要求有一定数量的用户群,有一定范围的销售网络,有较为健全的咨询和软件维护技术队伍,有开发队伍不断地进行软件升级。
按国家规定,要在市场上销售的商品软件首先要经过国家或社会普遍公认的软件评测机构(如中国软件评测中心)的质量认证。认证的标准和依据是国家有关标准或行业标准,例如:GB8566-88、GB8567-88、GB9385-88、GB/12504~12505-90、GJB437-88等,同时还应取得beta测试版用户的测试报告。
软件是逻辑产品而不是物理产品。软件生产集中于开发而不是制造,起决定作用的是人的智能的高效率的发挥。软件是看不见(或读不懂)摸不着的以磁盘、磁带、光盘等记录/读取介质为载体的计算机程序编译代码。鉴别软件的优劣、功能的强弱、使用的价值等等,可按国家对软件开发的规范标准组织评审,或由国家专门的软件评测中心进行评测。对于应用软件来说,笔者认为最权威的鉴定和评测是软件的直接使用者---用户。
软件能否形成商品,当然要看是否具备商品的一些基本特性,要看是否有一定数量的用户,即是否具备商品的使用价值。能够形成商品的软件,要有极强的商品意识和版权保护,这是无庸置疑的。而不能形成商品的软件,又可分为两大类:
一类是开发难度大专业性很强用户很少的软件,或为特殊要求而开发的软件,或研究课题在理论上还不成熟的软件。例如控制卫星发射的软件或高精尖科学研究的专门软件,既不会卖,一般用户也不会买,显然不是商品软件。又如为一种新的尚未越过探讨阶段的结构设计理论而编制的软件,至少在新理论未经实践检验没有被广泛承认尚无规范认可阶段,不是商品软件。还有一些专业性软件,标准化程度低,规范性差,软件维护困难,没有售后服务,仅仅是单位之间的有偿引进或转让,自然也算不上商品软件。
另一类是开发难度不大,多为个人单干开发的小型软件、小工具、单一功能的小程序块等,反映出程序设计中的一些技巧和经验,有一定的使用价值,如果没有经过包装,用户不多,也很难形成规模性的商品软件。
1.2自由软件
自由软件(freeware)又称免费软件,由国外类似活动中freeware一词转译而来,指经软件作者同意或软件版权所有者授权,免费提供给用户的非商业性质的软件产品。自由软件可以有著作权(版权)或无著作权。
有著作权的自由软件,其作者声称版权所有,但免费或收取很少的费用提供给用户,让人几乎没有限制地使用或拷贝或与他人分亨,一般不公布源程序代码(一些公开发表源程序代码的短小程序当然也属于自由软件)。例如许多国内外广泛流行的磁盘拷贝、磁盘文件管理、硬件测试、文本编辑器、文件图形格式转换等等工具类软件,Internet网络BBS(电子公告板)上可随时下载的软件,以及许多商品软件的低版本、演示版、教学版、简版等软件,均属于此类。另外,国内的一些优秀汉字系统如王码WMDOS5.0以及后来升级的6.0和8.0、UCDOS3.0简版、UCDOS5.0试用版、213L等,还有一些汉字输入法、办公排版系统等,亦为有版权的自由软件。96年初,深受用户喜爱的中文优秀制表软件CCED的版权人朱崇君先生宣布难以忍受软件销售70%的收入被销售商拿去的现实,将正在热销的CCED5.0以CCED5.03版本加入到有版权的自由软件行列而成为96年中国软件行业和用户们议论纷纷的重大新闻之一。
没有著作权的自由软件,是指在软件技术发展过程中已经形成了的大批标准的子程序和常用模块,它们已经在很多软件产品中被多次使用过,或被收入教科书和公开出版的源程序代码集中,实际上已经弄不清是谁原创的,即已不清楚谁是版权人。还有一些软件,其开发者在发表时公开声明放弃版权,供社会公众自由使用,对于这些已经成为社会公共财富的软件,在开发中使用是不会构成侵权的,可放心引用。
1.3共享软件
共享软件(英文:shareware)有别于自由软件,需收一定费用,但仍为非赢利软件。共享软件所收费用仅限于资料的成本费和发行费。共享软件鼓励用户自由拷贝,自由应用,软件不加密,如果喜欢该软件,有义务向发行公司注册,只需付很少的注册费就可得到更多的技术支持以及进行技术交流,发行公司所收取的少量的注册费也仅是为了进一步发展和支持该软件。例如近来到处做广告的"王特绿色MIS4.0"和"雅奇MIS6.2"属于数据库与管理信息系统自动编程一类的大型软件,可以减少应用系统大量的编程工作,也推出了共享软件版本。
1.4转让软件
一些专业性较强,开发难度较大(多为单位开发),用户群有限,无规模性销售网络,无健全的咨询和软件维护技术队伍,达不到商品软件的要求,但又有用户需要,于自由软件和共享软件与商品软件之间的软件,笔者暂且将此类软件称之为转让软件。水利水电系统中各单位之间互相以商品软件形式出现的绝大多数专业软件均属此类软件。
转让软件的纠纷较多,单位之间的转让往往没有履行严格的合同手续,是以单位、领导、熟人和朋友之间的信誉为转让基础的。转让软件专业性较强,维护困难,售后服务差或根本没有售后服务,是发生纠纷的主要原因。
2.国内外的自由软件交流
自由软件的价值在于交流,这种交流没有国界,不讲阶级立场,不分专业,不论社会地位,所有参加软件交流的人全球平等,就象在Internet网络上发送E-mail,参加各种论谈一样。
2.1自由软件的国际交流
在发达国家,自由软件已是较普遍采用的一种方式。从商业意义上讲,商品软件的测试、反馈、改进、交流与传播,都离不开免费试用、交流共享这种方式。在极端强调知识产权的美国,自由软件却十分普遍,国内广泛流行的外国自由软件多为美国自由软件,《软件世界》杂志不定期公布的自由软件目录清单中有相当一部分是自由软件联谊网国际交流部提供的美国自由软件。事实上,我们每个计算机用户手中都有一些如磁盘拷贝、磁盘整理、文件管理等实用工具软件,基本上都是这种国外自由软件。
业界振臂高呼网络就是计算机,计算机就是网络,以至于Internet网络热得一塌糊涂,BBS作为Internet的重要组成部分,大量的信息资源和自由软件供广大电脑爱好者免费取用,这也许是Internet最吸引人的功能,用户只要通过Modem和电话线即可使用。BBS为自由软件的交流提供了公开场所,很受电脑爱好者们的喜爱。
2.2自由软件在国内的大气候
在中国软件行业协会中有一个分会---自由软件分会,该分会于93年4月面向全国各行各业成立了自由软件联谊网,三年多来的自由软件联谊活动在全社会引起了极大反响,数千位个人网员和单位网员遍布全国29个省、市、自治区。联谊网成功地举办过自由软件展示会,组织自由软件参加计算机交易会和计算机应用成果展示会。联谊网除了向网员直接寄发自由软件信息和自由软件拷贝外,在《软件世界》杂志上设置有专门的自由软件栏目,不定期公布自由软件目录清单,截至1996年第6期止共了十七期近180余个自由软件,有时还刊登自由软件的功能介绍,凡是入了网的单位和个人,均可免费获得网上的自由软件。
自由软件联谊网的活动得到了一大批计算机软件专家、软件开发研制单位和软件公司的大力支持。著名的王码、希望、晓军、新天地等电脑公司向联谊网提供了各自优秀软件的自由软件版本;天汇、中国龙、利方、超想、CCED等国内优秀软件的自由软件版本也在联谊网中广为传播;王特绿色MIS和雅奇MIS等国内优秀数据库自动编程软件系统也纷纷加入了共享软件的行列;CCED的版权人朱崇君先生多次为自由软件发表高见。众人拾柴,越办越火。可以说,自由软件已经成为中国软件业的一个重要组成部分。
《软件世界》杂志对自由软件的高度评价:联谊网的自由软件活动将有助于提高全民族的知识产权保护意识、加快软件的研制开发、促进优秀计算机软件在我国的普及,这是经过了计算机行业多年的发展和酝酿,在新的市场经济的促进下,接受了国外Freeware的启发并结合我国的具体实际情况而逐渐成熟起来的。自由软件是推广普及计算机知识、造福社会、培养下一代计算机人才的科普性社会公益事业,是计算机事业的希望工程。
3.自由软件的存在基础
自由软件为什么会有如此巨大的社会反响和热烈火爆的交流市场?用户积极索取自由软件,说明自由软件决不是一些滥竽充数毫无用处的劣质软件,否则尽管不花钱,取之无用,反而占据磁盘空间,谁还会去花时间和精力瞎折腾。另一方面,有大量的自由软件提供者,显然不是一种简单的计算机行业软件的流通与交换现象,如果有人能从社会科学、人文科学、政治经济学、市场经济学、心理学、人性的本能等多学科广角度全方位去研究这一问题,肯定会有惊人发现,说不定能获得诺贝尔奖。
作为商品软件的试用版、测试版、普及版和低版本,以自由软件的形式广为散发,有其商业广告和市场策略的性质;而一些工具类和小技巧类自由软件则毫无商业意义,为什么仍然有广泛的提供者呢?
编程序很累,调试程序常常会通宵达旦,能做到这一点,单从个人对经济利益的追求来解释是不全面的,对于某些利已主义者来说也许是这样,而对于那些电脑迷程序狂计算机人而言,所谓的工作激情、思想根源和行为动机显然是争取诺贝尔奖获得者们的重大研究课题。科学家的执着追求,发明家的废寝忘食,科技工作者不计报酬撰写论文(近年来在一些学术刊物上发表学术论文不但无稿费可言,反而要交版面费)等等事例,都不能完全用经济利益来解释。《组织人事报》称:当前人才流动的主要动机不再是追求高薪收入,而是寻找自身价值发挥的最佳环境。可见,现实生活中人性的本能反映与人的需求和欲望的多元化,使得对某些事物的解释众口异说,有人就是愿意将自己的劳动成果无偿奉献给他人,并以此为自己生活中的一大乐趣,我想这正是自由软件存在的基础的基础。
软件是有生命的。软件的生命就是软件的生存周期,即从提出软件产品开始,直到该软件产品被淘汰的全过程。软件的生存周期说明,软件不具备收藏价值,不存在增值意义。软件的发展非常迅速,更新换代十分频繁,新版本出来老版本基本上就没有什么商业意义了,这也许是商品软件提供自由软件版本的原因之一。个人开发的形不成商品的软件,在生命周期内不进行交流,个人的劳动价值就没有得到社会的承认,是不是有点冤枉?
4.关于工程地质自由软件与转让软件
我们的许多地质计算机人员在长期的生产实践过程中积累了大量的编程技巧、实践经验和实用程序(软件),来之不易,弃之可惜。由于水利水电工程地质专业的特殊性和复杂性,专业软件的难度较大,用户群又十分有限,标准化程度低,规范性差,各家自主开发,极少进行交流,又难以形成商品,与其如此自编自用自生自灭,还不如贡献出来作为自由软件或共享软件在系统内广为交流,互通有无,实现这些知识产品的真正价值。
事实上,水利水电系统各单位自行开发的一些实用软件一般达不到商品软件的要求,因此,完全没有必要各自为政,互相封闭,低层次的重复开发,实在是得不偿失。其实,提倡软件交流,反对低层次的重复开发,早已是许多领导讲话和技术干部献计献策中多次提及的,绝不是笔者个人的大声疾呼。当然,软件作者不愿意将自己的作品作为自由软件提供出来交流,也是无可非议的。
需提请用户注意的是,要钱的软件并不都是好软件,反之亦然。特别是单位之间的引进和转让软件,纠纷较多。该类软件维护困难,要价很高,没有售后服务,有可能是一锤子买卖,近年来在本系统中已经有类似现象,用户在引进时一定要慎重。我们也希望那些不太成熟的软件要自重,一锤子买卖不旦损害了兄弟单位的利益,而且损害了自己的声誉,眼前利益短期行为不可取!
Abstract:ThispaperdiscusstheimportantcontentsoftheRationalUnifiedProcess,includingDevelopmentPhase,IterationProcess,CoreWorkflowsandsoon.Additionally,givingsomecommentsaboutitsadvantagesandweaknessesinthesoftwareprojectsdevelopment.
KeyWords:UnifiedProcess,Milestone,Iteration,CoreWorkflows
一前言
软件过程是指实施于软件开发和维护中的阶段、方法、技术、实践及相关产物(计划、文档、模型、代码、测试用例和手册等)的集合。行之有效的软件过程可以提高开发软件组织的生产效率、提高软件质量、降低成本并减少风险。目前市场上领先的软件过程主要有RUP(RationalUnifiedProcess)、OPENProcess和OOSP(Object-OrientedSoftwareProcess)。
RUP具有较高认知度的原因之一恐怕是因为其提出者Rational软件公司聚集了面向对象领域三位杰出专家Booch、Rumbaugh和Jacobson,同时它又是面向对象开发的行业标准语言——标准建模语言(UML)的创立者。RUP是由Objectory过程演化而来,其初始版本为5.0,先后经历了5.1、5.11、5.5等版本直到最新的RationalUnifiedProcess2000版本。本文主要讨论RUP的主要内容和特点。
二RUP的二维开发模型
RUP可以用二维坐标来描述。横轴通过时间组织,是过程展开的生命周期特征,体现开发过程的动态结构,用来描述它的术语主要包括周期(Cycle)、阶段(Phase)、迭代(Iteration)和里程碑(Milestone);纵轴以内容来组织为自然的逻辑活动,体现开发过程的静态结构,用来描述它的术语主要包括活动(Activity)、产物(Artifact)、工作者(Worker)和工作流(Workflow)。如图1:
图1RUP的二维开发模型
三开发过程中的各个阶段和里程碑
RUP中的软件生命周期在时间上被分解为四个顺序的阶段,分别是:初始阶段(Inception)、细化阶段(Elaboration)、构造阶段(Construction)和交付阶段(Transition)。每个阶段结束于一个主要的里程碑(MajorMilestones);每个阶段本质上是两个里程碑之间的时间跨度。在每个阶段的结尾执行一次评估以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下一个阶段。
1.初始阶段
初始阶段的目标是为系统建立商业案例并确定项目的边界。为了达到该目的必须识别所有与系统交互的外部实体,在较高层次上定义交互的特性。本阶段具有非常重要的意义,在这个阶段中所关注的是整个项目进行中的业务和需求方面的主要风险。对于建立在原有系统基础上的开发项目来讲,初始阶段可能很短。
初始阶段结束时是第一个重要的里程碑:生命周期目标(LifecycleObjective)里程碑。生命周期目标里程碑评价项目基本的生存能力。
2.细化阶段
细化阶段的目标是分析问题领域,建立健全的体系结构基础,编制项目计划,淘汰项目中最高风险的元素。为了达到该目的,必须在理解整个系统的基础上,对体系结构作出决策,包括其范围、主要功能和诸如性能等非功能需求。同时为项目建立支持环境,包括创建开发案例,创建模板、准则并准备工具。
细化阶段结束时第二个重要的里程碑:生命周期结构(LifecycleArchitecture)里程碑。生命周期结构里程碑为系统的结构建立了管理基准并使项目小组能够在构建阶段中进行衡量。此刻,要检验详细的系统目标和范围、结构的选择以及主要风险的解决方案。
3.构造阶段
在构建阶段,所有剩余的构件和应用程序功能被开发并集成为产品,所有的功能被详细测试。从某种意义上说,构建阶段是一个制造过程,其重点放在管理资源及控制运作以优化成本、进度和质量。
构建阶段结束时是第三个重要的里程碑:初始功能(InitialOperational)里程碑。初始功能里程碑决定了产品是否可以在测试环境中进行部署。此刻,要确定软件、环境、用户是否可以开始系统的运作。此时的产品版本也常被称为“beta”版。
4.交付阶段
交付阶段的重点是确保软件对最终用户是可用的。交付阶段可以跨越几次迭代,包括为做准备的产品测试,基于用户反馈的少量的调整。在生命周期的这一点上,用户反馈应主要集中在产品调整,设置、安装和可用性问题,所有主要的结构问题应该已经在项目生命周期的早期阶段解决了。
在交付阶段的终点是第四个里程碑:产品(ProductRelease)里程碑。此时,要确定目标是否实现,是否应该开始另一个开发周期。在一些情况下这个里程碑可能与下一个周期的初始阶段的结束重合。
四RUP的核心工作流(CoreWorkflows)
RUP中有9个核心工作流,分为6个核心过程工作流(CoreProcessWorkflows)和3个核心支持工作流(CoreSupportingWorkflows)。尽管6个核心过程工作流可能使人想起传统瀑布模型中的几个阶段,但应注意迭代过程中的阶段是完全不同的,这些工作流在整个生命周期中一次又一次被访问。9个核心工作流在项目中轮流被使用,在每一次迭代中以不同的重点和强度重复。
1.商业建模(BusinessModeling)
商业建模工作流描述了如何为新的目标组织开发一个构想,并基于这个构想在商业用例模型和商业对象模型中定义组织的过程,角色和责任。
2.需求(Requirements)
需求工作流的目标是描述系统应该做什么,并使开发人员和用户就这一描述达成共识。为了达到该目标,要对需要的功能和约束进行提取、组织、文档化;最重要的是理解系统所解决问题的定义和范围。
3.分析和设计(Analysis&Design)
分析和设计工作流将需求转化成未来系统的设计,为系统开发一个健壮的结构并调整设计使其与实现环境相匹配,优化其性能。分析设计的结果是一个设计模型和一个可选的分析模型。设计模型是源代码的抽象,由设计类和一些描述组成。设计类被组织成具有良好接口的设计包(Package)和设计子系统(Subsystem),而描述则体现了类的对象如何协同工作实现用例的功能。
设计活动以体系结构设计为中心,体系结构由若干结构视图来表达,结构视图是整个设计的抽象和简化,该视图中省略了一些细节,使重要的特点体现得更加清晰。体系结构不仅仅是良好设计模型的承载媒介,而且在系统的开发中能提高被创建模型的质量。
4.实现(Implementation)
实现工作流的目的包括以层次化的子系统形式定义代码的组织结构;以组件的形式(源文件、二进制文件、可执行文件)实现类和对象;将开发出的组件作为单元进行测试以及集成由单个开发者(或小组)所产生的结果,使其成为可执行的系统。
5.测试(Test)
测试工作流要验证对象间的交互作用,验证软件中所有组件的正确集成,检验所有的需求已被正确的实现,识别并确认缺陷在软件部署之前被提出并处理。RUP提出了迭代的方法,意味着在整个项目中进行测试,从而尽可能早地发现缺陷,从根本上降低了修改缺陷的成本。测试类似于三维模型,分别从可靠性、功能性和系统性能来进行。
6.部署(Deployment)
部署工作流的目的是成功的生成版本并将软件分发给最终用户。部署工作流描述了那些与确保软件产品对最终用户具有可用性相关的活动,包括:软件打包、生成软件本身以外的产品、安装软件、为用户提供帮助。在有些情况下,还可能包括计划和进行beta测试版、移植现有的软件和数据以及正式验收。
7.配置和变更管理(Configuration&ChangeManagement)
配置和变更管理工作流描绘了如何在多个成员组成的项目中控制大量的产物。配置和变更管理工作流提供了准则来管理演化系统中的多个变体,跟踪软件创建过程中的版本。工作流描述了如何管理并行开发、分布式开发、如何自动化创建工程。同时也阐述了对产品修改原因、时间、人员保持审计记录。
8.项目管理(ProjectManagement)
软件项目管理平衡各种可能产生冲突的目标,管理风险,克服各种约束并成功交付使用户满意的产品。其目标包括:为项目的管理提供框架,为计划、人员配备、执行和监控项目提供实用的准则,为管理风险提供框架等。
9.环境(Environment)
环境工作流的目的是向软件开发组织提供软件开发环境,包括过程和工具。环境工作流集中于配置项目过程中所需要的活动,同样也支持开发项目规范的活动,提供了逐步的指导手册并介绍了如何在组织中实现过程。
五RUP的迭代开发模式
RUP中的每个阶段可以进一步分解为迭代。一个迭代是一个完整的开发循环,产生一个可执行的产品版本,是最终产品的一个子集,它增量式地发展,从一个迭代过程到另一个迭代过程到成为最终的系统。
传统上的项目组织是顺序通过每个工作流,每个工作流只有一次,也就是我们熟悉的瀑布生命周期(见图2)。这样做的结果是到实现末期产品完成并开始测试,在分析、设计和实现阶段所遗留的隐藏问题会大量出现,项目可能要停止并开始一个漫长的错误修正周期。
图2瀑布模型
一种更灵活,风险更小的方法是多次通过不同的开发工作流,这样可以更好的理解需求,构造一个健壮的体系结构,并最终交付一系列逐步完成的版本。这叫做一个迭代生命周期。在工作流中的每一次顺序的通过称为一次迭代。软件生命周期是迭代的连续,通过它,软件是增量的开发。一次迭代包括了生成一个可执行版本的开发活动,还有使用这个版本所必需的其他辅助成分,如版本描述、用户文档等。因此一个开发迭代在某种意义上是在所有工作流中的一次完整的经过,这些工作流至少包括:需求工作流、分析和设计工作流、实现工作流、测试工作流。其本身就像一个小型的瀑布项目(见图3)。
图3RUP的迭代模型
与传统的瀑布模型相比较,迭代过程具有以下优点:
?降低了在一个增量上的开支风险。如果开发人员重复某个迭代,那么损失只是这一个开发有误的迭代的花费。
?降低了产品无法按照既定进度进入市场的风险。通过在开发早期就确定风险,可以尽早来解决而不至于在开发后期匆匆忙忙。
?加快了整个开发工作的进度。因为开发人员清楚问题的焦点所在,他们的工作会更有效率。
?由于用户的需求并不能在一开始就作出完全的界定,它们通常是在后续阶段中不断细化的。因此,迭代过程这种模式使适应需求的变化会更容易些。
六总结
RUP具有很多长处:提高了团队生产力,在迭代的开发过程、需求管理、基于组件的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面,针对所有关键的开发活动为每个开发成员提供了必要的准则、模板和工具指导,并确保全体成员共享相同的知识基础。它建立了简洁和清晰的过程结构,为开发过程提供较大的通用性。但同时它也存在一些不足:RUP只是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容;此外,它没有支持多项目的开发结构,这在一定程度上降低了在开发组织内大范围实现重用的可能性。可以说RUP是一个非常好的开端,但并不完美,在实际的应用中可以根据需要对其进行改进并可以用OPEN和OOSP等其他软件过程的相关内容对RUP进行补充和完善。
主要参考文献
unitpro2;
interface
uses
。。。,Menus,shellAPI;//TNotifyIconData是定义在shellAPI单元的
{自定义消息,当小图标捕捉到鼠标事件时Windows向回调函数发送此消息}
constWM_MYTRAYICONCALLBACK=WM_USER+1000;
。。。。
private
MyTrayIcon:TNotifyIconData;
procedureWMMyTrayIconCallBack(VarMsg:TMessage);messageWM_MYTRAYICONCALLBACK;
//托盘消息处理过程
procedureWMCommand(Varmsg:TWMCommand);messageWM_Command;
//处理托盘图标的右键菜单事件
procedureMinimize(varmess:TWMNCLBUTTONDOWN);messageWM_NCLBUTTONDOWN;
//窗体最小化时的消息处理
。。。。。。。。
procedureTForm1.FormCreate(Sender:TObject);
begin
//将程序窗口样式设为TOOL窗口,避免在任务栏上出现
SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
end;
procedureTForm1.FormShow(Sender:TObject);
begin
//设置托盘
Icon.Handle:=LoadIcon(Hinstance,''''MAINICON'''');
MyTrayIcon.cbSize:=SizeOf(TNotifyIconData);//nid变量的字节数
MyTrayIcon.Wnd:=Handle;//主窗口句柄
MyTrayIcon.uID:=1;//内部标识,可设为任意数
MyTrayIcon.uFlags:=NIF_ICONorNIF_TIPorNIF_MESSAGE;//指明哪些字段有效
MyTrayIcon.uCallBackMessage:=WM_MYTRAYICONCALLBACK;//回调函数消息,将自定义托盘消息传递进去
MyTrayIcon.hIcon:=Application.Icon.Handle;//要加入的图标句柄,可任意指定
StrCopy(MyTrayIcon.szTip,PChar(Caption));
Shell_NotifyIcon(NIM_ADD,@MyTrayIcon);
ShowWindow(Handle,sw_Hide);
//Visible:=False;//当程序启动时就最小化在托盘区即Form.Create时启用此语句
Application.ShowMainForm:=False;
SetForegroundWindow(Application.Handle);
end;
////消息过程实现
procedureTForm1.WMMyTrayIconCallBack(varMsg:TMessage);
varCursorPos:TPoint;
begin
caseMsg.LParamof
WM_LBUTTONDBLCLK://双击消息:弹出主窗口
begin
Visible:=notVisible;
Application.ShowMainForm:=Visible;
SetForegroundWindow(Application.Handle);
end;
WM_RBUTTONDOWN://鼠标右键:弹出菜单
begin
GetCursorPos(CursorPos);
{Popupmenu1.Popup(CursorPos.X,CursorPos.Y);
popupmen1里面就可以加入显示主窗口、退出等功能。这个右键菜单可以是静态的,如上面一句来弹出;也可以动态建立,如下面所示的方法:}
pm:=createpopupmenu;//建立一个Hmenu,pm:hmenu;
AppendMenu(pm,0,ord(''''A''''),''''关于....'''');//在指定的菜单里添加一个菜单项
AppendMenu(pm,0,Ord(''''B''''),''''&Exit'''');
//加入菜单事件---》处理WMCOMMAND消息即可
TrackPopupMenu(pm,Tpm_BottomAlignorTpm_RightAlign,CursorPos.x,CursorPos.y,0,handle,nil);
//在图标上方显示该弹出式菜单
end;
end;
end;
procedureTForm1.WMCommand(varmsg:TWMCommand);
begin
Casemsg.ItemIDof
Ord(''''A''''):showmessage(''''我的右键菜单!'''');
Ord(''''B''''):Self.close;//关闭程序主窗体
elseinherited;
end;
end;
procedureTform1.Minimize(varmess:TWMNCLBUTTONDOWN);//应用程序最小化消息处理
begin
ifMess.Hittest=htReducethen
Self.Hide
elseinherited;
end;
procedureTForm1.FormClose(Sender:TObject;varAction:TCloseAction);
var{程序被关闭时通知Windows去掉小图标}
nid:TNotifyIconData;
begin
nid.cbSize:=sizeof(nid);//nid变量的字节数
nid.uID:=1;//内部标识,与加入小图标时的数一致