6.1 概述
在管理信息系统的生命周期中,经过了系统规划、系统分析和系统设计等阶段以后,便开始了系统实施阶段。系统实施阶段要继承此前各阶段的工作成果,将技术设计转化成物理实现,因此,系统实施的成果是系统分析和设计阶段的结晶。同时,系统实施作为系统生命周期中的后期阶段,是把系统设计转化为可实际运行的物理系统的必然步骤。再好的系统设计,不通过系统实施也只能是不能带来现实效益的空中楼阁。系统实施作为系统的最后物理实现阶段,对于系统的质量、可靠性和可维护性等有着十分重要的影响。
6.2 编程工具与环境
编程过程又称程序设计或编写程序,按照详细设计阶段产生的程序设计说明书,用选定的程序设计语言书写源程序,在程序设计中,不仅要保证程序的正确性,而且要保证程序的可读性,必须采用结构化程序设计的方法,用一组单一入口和单一出口的基本控制结构及其反复嵌套。
本系统采用C#作为程序设计语言。后台数据库所采用的软件是 Microsoft公司的 SQL Server 2005。
SQL Server是一个高性能的,多用户关系型数据库管理系统,它被设计成支持高容量的事务处理以及需求较少的决策支持应用程序。它可以允许不同的用户通过不同的方式看同样的数据,保证了数据库的一致性和可恢复性。它的可靠性、质量和易用性使之成为很多数据库软件的首选。
Microsoft SQL Server 2005 是Microsoft 公司推出的SQL Server 数据库管理系统的最新版本,该版本在继承了SQL Server 7.0 版本优点的同时,又比它增加了许多更先进的功能,具有使用方便、可伸缩性好、与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2005 的大型多处理器的服务器等多种平台使用。Microsoft SQL Server 2005全面扩展了SQL Server 7.0 的性能,并增加了几种新的功能,由此成为大规模联机事务处理 (OLTP)、数据仓库和电子商务应用程序的优秀数据库平台。
6.3 系统测试
软件测试是系统质量保证的主要活动之一。测试虽然不是质量保证的“安全网”。但它是不可缺少的,而且是重要的环节。因为,在系统开发的过程中,涉及一系列的活动,而在这个活动过程中,人们可能犯很多错误,错误可能发生在设计阶段,也可能发生在整个过程的开始阶段。
系统测试的目标是:
测试是一个程序的执行过程,其目标在于发现错误。
一个好的测试用例能够发现至今尚未察觉的错误。
一个成功的测试则是发现至今尚未察觉的错误的测试。
总之,测试是发现错误,这不只是从技术角度测试下定义。软件测试中最为重要的是,实际工作中人们的心理学和经济学问题。
系统的测试分为单元测试、组装测试、确认测试和系统测试,每一步都是在前一步的基础上进行的。
单元测试
单元测试是指程序中的一个模块或一个子程序,是程序运行的最小单元,或是程序最小的独立编译单位,单元测试也称模块测试。
例如对“登录”模块进行测试:
获得用户登录名和密码。业务员信息中查找所有成员登录名和密码,核对是否有给定的用户登录名和密码,若给定的登录名和密码不存在,同显示错误信息“帐号或密码不正确!”
进行单元测试可以采用白盒测试方法。白盒测试将软件看作一个透明的白盒子,按照程序的内部结构处理逻辑来选定测试用例,对软件的逻辑路径及过程进行测试,检查它与设计是否相符。本例采用白盒测试的条件覆盖标准,每一判定中的每个条件,分别按“真”、“假”至少各执行一次,得到以下测试结果。
或者采用黑盒测试用例。将软件看作黑盒子,在完全不考虑程序的内部结构和特性的情况下,测试软件的外部特性。根据软件的需求规格说明书设计测试用例,从程序的输入和输出特性测试是否满足设定的功能。
组装测试
单元测试通过后,需要按照设计时作出的层次模块图把它们连接起来,进行组装测试。通常采用黑盒法自顶向下测试。按HIPO图从顶层模块自上而下地组装。每次只啬一个模块逐个安装系统。首先安装主菜单,并为主菜单添上下接子菜单,逐步将系统安装完毕。
确认测试
确认测试是进一步检查软件是否符合软件需求规格说明书的全部需求,因此又称为合格性测试,确认测试的内容主要包括以下几部分:
功能测试
性能测试
配置审查
用户资料
系统分析资料
系统设计资料
源程序与测试材料
系统测试
系统测试也将整个软件作为测试对象,将信息系统的所有组成部分包括软硬件,用户及环境等综合在一起进行测试,以保证系统的各组成部分协调进行。经测试,未发现本软件有异常情况,能正常进行。
6.4 系统运行与维护
经过上述一系列测试通过后,系统就可以投入使用了。为了保证办公系统长期高效地工作,必须加强对办公系统运行的日常管理。办公系统的日常运行管理包括系统每天运行状况、数据输入和输入情况以及系统的安全性,完备性能及时地如实记录和处置。这些工作主要由系统运行值班人员来完成。
系统维护的目的是为了保证管理信息系统正常可靠地运行,并能使系统不断得到改善和提高,以充分发挥作用。
系统应用程序维护:业务处理是通过程序进行的,一旦程序发生问题或业务发生变化就必然地引地程序的修改和调整。
数据维护:需求为业务是不断在变化的,因此反映这种变化的数据也要求随之改变,包括内容增加及数据结构的调整。
代码维护:系统的任何变化最终要通过修改代码实现。
硬件设备维护:主要指主机及外设的日常维护和管理,以保证系统正常有效地运行。
第七章 结束语
7.1 概述
协成办公自动化系统是一个典型的信息管理系统(办公系统),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立 起数据一致性和完善性强,数据安全性好的库,而对于后者则要求应用程序功能完善,易使用等特点,经过考虑,我使用ASP.NET,在短时间内建立系统应用原形,然后,对初始原形系统进行需求迭代,不断修改正和改进,直到形成用户满意的可行系统。
该系统不但减轻和节省了人们的办公劳动,还大大提高了工作效率,改善了工作环境,从而给企业带来更好的效益和更广阔的发展前景,同时也有利于我们创建资源节约型、环境友好型社会!
7.2 系统的功能
经过三个月左右的设计和开发,协成办公自动化系统基本开发完毕。该系统可以为企业用户提供员工信息管理、文件传输、资源共享、网上审批、网上考勤、活动管理、公文管理、公告管理、规章制度和总结管理。,其系统功能基本符合用户需求。
7.3 系统的特点
本系统的每一个管理子系统均做到内容详备合理、界面安排真观、查询检索功能强大。采用数据累计保存,满足用户对历史资料的查询等优点。
系统登录,需要使用者键入用户名和密码,以防止未经授权的用户查询修改数据。
7.4 存在问题及改进方向
虽然系统总体功能已经实现,但是由于时间的关系,数据验证还不完全,浏览器兼容等问题,亟待我们努力改善。
7.5 系统开发的体会
通过此次办公自动化系统的开发遵循了标准软件开发的过程,由此对软件工程基础知识的学习进行了全面的回顾与总结。
1. 系统分析的重要性
系统分析工作的主要任务是明确问题、确定问题,了解用户的信息需求。由于对于用户信息需求的最大限度往往是软件开发成败的关键,而用户大都不是计算机专业人员,引导他们从规范和专业的角度考虑需求是重要的。由于明白这一点的重要性,在软件开发开始的时候就重视这一点,从而避免了多走弯路,加快了系统开发的进程。
2. 严格按照既定规划进行系统的开发
在系统开发的前半部分工作,如系统分析、系统设计为系统开发的后续工作制定了大量的规范。因此,一旦系统分析、系统设计经过大量的论证,与用户的协商、反复考虑后定稿,在系统的实施过程中就要严格遵循这些即定的规范去做,本人对这个问题不够重视,所以也造成了部分工作不得不重来。
3. 注重吸收商用软件的优点
在这点尤其要注重的是商用软件普遍具有的人性化的界面,友好的操作方法,方便、易用,这样才能促进用户选择使用。
4. 广泛的积累素材
一本好的参考资料往往能够使系统的开发工作事半功倍,并使我们眼界不至于只局限于一个特定的框架体。
7.6 经验与教训
通过这个开发项目的顺利完成,我们学会了很多知识,提高了实际动手能力及积累了一些工作的经验,使我们在以后的工作中能够更加熟练适应这种工作,这种书本上所学不到的,对我们以后的学习和工作都有很大的帮助。
最后,我对老师的悉心指导和所有关心支持该系统开发的朋友表示衷心的感谢!
第八章 参考文献
1、《实用软件工程教程》------------阎菲 潘正清 吴年志 中国水利水电出版社
2、《ASP.NET项目开发全程实录》---------张领 清华大学出版社
3、《IT项目管理》-------------------------谭武梁 毛志雄 中国铁道出版社
附录二: 部分程序源代码
登录界面
Login.htm
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
<meta http-equiv="X-UA-compatible" content="IE=7" />
<meta name="copyright" content="Copyright . zhuwenlong0510.51.com . All Rights Reserved." />
<meta name="author" content="朱文龙" />
<meta name="keywords" content="OA,OA系统,办公自动化,OA软件,OA办公自动化" />
<meta name="description" content="协成OA系统,OA办公自动化软件坚持为用户提供最具性价比且极易上手的办公自动化系统。选OA系统,就选协成OA办公系统" />
<title>用户登录中心_OA办公自动化系统</title>
<style type="text/css">
body{background-image:url(images/login_background.gif);}
#container{background-image:url(images/login.jpg);width:590px;height:371px;position:absolute;top:100px;left:200px;}
#pageBody{font-size:15px;position:absolute;top:80px;left:80px;}
#pageBody ul{list-style-type:none;width:300px;}
#pageBody li{height:35px;font-weight:550;font-family:"新宋体";text-align:center;}
</style>
<script type="text/java script">
var xmlHttp;
function checkLogin(userName,userPassword)
{
var cookieEnabled=(navigator.cookieEnabled)? true : false;
if(!cookieEnabled)
{
alert("请开启浏览器COOKIE功能!");
return false;
}
var type = 0;
for (var i = 0; i < document.getElementsByName("radio").length; i++)
{
if(document.getElementsByName("radio")[i].checked) //判断帐号类型
{
type = document.getElementsByName("radio")[i].value;
}
}
if(document.getElementById("txtUserName").value==""||document.getElementById("txtUserName").value==null)
{
alert("请输入登录帐号!");
document.getElementById("txtUserName").focus();
return false;
}
if(document.getElementById("txtUserPassword").value==""||document.getElementById("txtUserPassword").value==null)
{
alert("请输入登录密码!");
document.getElementById("txtUserPassword").focus();
return false;
}
if(document.getElementById("txtUserPassword").value.length <= 5)
{
alert("登录密码不能少于六位!");
document.getElementById("txtUserPassword").focus();
return false;
}
createXMLHTTP();
var url="login.aspx?userName="+escape(userName)+"&userPassword="+userPassword+"&type="+escape(type)+"";
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange=checkUserLogin;
xmlHttp.send(null);
}
function createXMLHTTP()//创建XMLHttpRequest对象
{
if(window.XMLHttpRequest)
{
xmlHttp=new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");//IE新版本
if(!xmlHttp)
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");//IE老版本
}
}
if(!xmlHttp)
{
window.alert("不能创建XMLHttpRequest对象实例!");
return false;
}
}
function checkUserLogin()
{
if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
if(xmlHttp.responseText=="true")
{
window.location.href="officeTable.aspx";
}
else
{
alert("帐号或密码不正确!");
document.getElementById("txtUserName").value="";
document.getElementById("txtUserPassword").value="";
document.getElementById("txtUserName").focus();
}
}
}
}
</script>
</head>
<body onload="document.getElementById('txtUserName').focus();">
<div id="container" style="left: 200px; top: 100px">
<div id="pageBody">
<form action="login.aspx" method="post" id="loginForm">
<ul>
<li>登录帐号:<input type="text" name="txtUserName" id="txtUserName" maxlength="18" style="width: 135px;
height: 16px" />
</li>
<li>登录密码:<input type="password" name="txtUserPassword" id="txtUserPassword" maxlength="18"
style="width: 135px; height: 16px" />
</li>
<li>
<input type="radio" name="radio" checked="checked" value="员工" />员工
<input type="radio" name="radio" value="管理" />管理 </li>
<li>
<input type="button" name="submitLogin" value="" style="background-image: url(images/login.bmp);
border: 0; height: 25px; width: 122px; cursor:pointer" onclick="checkLogin(document.getElementById('txtUserName').value,document.getElementById('txtUserPassword').value)" />
</li>
</ul>
</form>
</div>
</div>
</body>
</html>