一、问题定义
随着互联网的飞速发展,传统的企业模式受到了更大的挑战,越来越多的企业盯上了互联网这块充满商机的领域。各个企业也在网络上架起了自己的网站,希望潜在的客户能够通过自己的网站来了解自己的企业。现在很多医药公司自己的网站也是层出不穷,但是大多数医药公司都仅仅介绍自己企业的结构、药品的介绍和讲解一些医学常识。还很少有医药公司开展网上购药这一业务,往往还是以前的传统模式,需要亲自到公司订购。
它的缺点是:客户往往需要打电话或者亲自来到公司来进行预订,往往是长途电话或者是往返两地。打长途电话花费贵,自然的客户希望谈话简短,但是这样,若对于大批量的订购,则是很难在短时间内说清楚的。而如果有出差人员亲自到公司订购,无疑出差的花费大,人力资源的浪费也大。以往的客户对于新药品信息的了解,是需要到亲自到公司才能获得。这样,如果对于一种很畅销的特效药,则有可能因为路途遥远,不能及时的订购。
但是,如果我们采用了网上购药系统,则这些问题就可以迎刃而解了。首先客户在网上订购能够非常及时、快速的浏览到新药的信息,了解价格并且可以直接进行订购。
二、可行性研究
1、概述:
用户:天乐医药公司
系统名称:天乐医药公司网上购药系统
开发工具:Dreamweaver MX 2004,Flash MX 2004, Photoshop 7.0,SQlServer2000
团队的组成:团队模型是MSF模型中的一个,它帮助形成一个具有确定职责和分工的良好的团队结构。团队或小组是最小的合作单位。下面是我们团队结构的图形表示:
2、时间安排:
3、系统目标综述:
30天内建立一个基于Web的网上订药系统。使顾客(要求注册)能够方便,快速地了解和订购各种药品。打造三层系统,第一层客户端;第二层ASP(实现数据的传递);第三层数据库管理系统(DBMS)—SQL-SERVER 7.0。要求信息全部源于数据库。
标号 |
目标 |
实现策略 |
1 |
客户注册 |
Register.asp |
2 |
客户登录 |
disPlanInfo.asp |
3 |
公司简介 |
OrderRoom.asp |
4 |
工作计划 |
plan.asp |
5 |
留言版 |
note.asp |
6 |
药品查询 |
inttor.asp |
功能版块说明:
注册界面----用户输入自己的信息,系统要将用户的用户名和现
在数据数据库中的进行比较看是否有重复的,如果没有其它信息也输入正确那么就能成功注册了。
公司简介界面----用户可以点击进入后浏览公司的简介。
工作计划界面——客户或者员工可以进入该界面浏览公司近期的计划,以便作好安排
留言版界面----用户可以将自己对公司的一些建议写在留言
版中,方便工作人员提升自己的服务。而且可以询问相关的医务人员一些健康上的问题。
药品查询界面——用户可以根据自己的需要,选择查询的条件,比如可以选择“中药”或者“西药”;可以选择“注射剂型”或者“液体剂型”等。选择后点击确定,就可以显示出你需要查询的药品。点击药品,就可以看到详细的药品说明,用量,主治功能等等。
三、需求分析
1、用户需求分析
在我们的产品经理与客户的交谈后,我们列出了用户的需求,如下所示:
(1)、客户应能浏览与网站页提供的产品有关的信息
(2)、客户应能查询本网页所能提供的产品
(3)、应该有一个收集与访问该站点客户机有关的信息的功能
(4)、随着用户数不断的增长,系统应能正常工作
(5)、系统结构应该支持未来的扩充
(6)、开发小组应了解当前客户的限制条件
(7)、向维护新系统的人员提供相应的培训
(8)、确定本网站所需的支持的类型以及提供这种技术的人员
(9)、物理系统的安排,如服务器,电缆以及必须安装的UPS系统
(10)、提供有充分、有技能的人员来事实这一解决方案
(11)、确定项目中发生的费用
(12)、确定本网站的安全级别
2、系统性能需求分析
为医药公司开发的应用程序要求在所处理的事务数方面具有高性能。这可以使大量的用户可以用Web站点同时订购药物。如果应用程序的响应时间随着用户数目的增加而增加,则可能造成用户要等待很长的时间,会使他们退出系统,做其他的选择。这会导致客户的流失。这是不允许的。
因此,为医药公司开发的系统的性能需求如下:
(1)、响应时间应该最小
(2)、网络带宽应该支持每一个时间片个数
(3)、系统应该稳定,并且在工作负荷增加的情况下不会瘫痪
3、可用性需求分析
在医药公司连锁店遍布全国,鉴于其地理范围的广阔性,应该一天二十四小时向用户提供应用程序。全国每个角落的工作人员都会使用该应用程序来预定药品。公司人员也要求应用程序一天二十四小时可以使用,以便能有效地为客户提供服务。
为保证应用程序一天二十四小时的可用性,系统停机时间保持最小。可以有许多不同方法来达到这一点,如镜盘镜象、数据复制、管理事务日志等等。
应用程序具有分布式多地点结构,对于全公司范围的实施来说,这是最合适的结构。这一结构涉及到将单个活动分解或几个模块化任务,然后把这些工作分布到几个处理机,从而增加系统的性能。
4、培训需求分析
培训需求取决于用户的类型。对医药公司的情况,有普通拥护以及负责管理站点和数据库的用户。除了培训管理员外,还必须对最终用户进行培训,以使普通用户熟悉应用程序所提供的功能。
鉴于医药公司的运行上要求,医务人员的培训必须按组进行。没有接触过联机应用程序的普通用户必须在单位内部接受脱产培训。
5、安全性需求分析
系统和数据的安全性至关重要。所考虑的安全策略的两种类型是乐观安全策略和悲观安全策略。前者只顾及那些具有敏感数据的资源的保护,而后者针对所有资源的保护,向用户提供严格限制的访问。
在医药公司的情况,由于必须限制外部用户对应用程序的访问,必须采取悲观的安全策略。
此外,关于外部用户的数据,如他们的用户名和口令,必须加密。客户只能访问预定药品模块,不准访问其他任何模块。这样,对不同用户应建立不同的角色和许可权,对于医药公司来说,我们有下述角色:
(1)、管理员
(2)、用户(外来客户)
Web站点也应从外部保障安全。实施防火墙可以做到这一点。
6、可伸缩性需求分析
为医药公司开发的应用程序具有高度的可伸缩性,以适应单位未来增长和扩充的需求。医药公司管理层已决定将起连锁店在未来的两年内再增加十家。连锁店扩大造成数据量的增加。还有,大量客户会通过Web站点和系统交互。用户数量不应影响应用程序的性能。
7、维护需求分析
医药公司计划设立由其自己员工组成的维护队伍,一负责维护工作。该单位计划向少数的员工提供培训,然后这些员工负责日常备份和类似的维护功能。采取这一维护策略是为了避免高额的维护上的花费,这种花费,从长期角度看,会出现在第三方维护支出上。
四、系统分析
1、硬件系统:
由于本系统需要利用Internet实现信息的传递,系统采用客户机与服务器的连接,为了方便用户,可以使核心数据处理使用总公司的服务器执行,用户端只需配置基本上网必备的硬件即可;因为考虑到网上订房使公司的业务量增大,公司需要至少1台硬件配置较优的服务器。
2、软件系统
关于软件系统,客户机所使用的系统要求较低,需要IE5.0以上的版本,操作系统不限;服务器方面,我们的选择具有较高的系统稳定性和可维护性,而且价格适中的即可。
3、系统结构
范围分析图(CAD)
数据流图(DFD)
顶层dfd:
细化dfd:
ER图
五、部分源代码:
- 使用的的连接字符串为:conn
Provider=SQLOLEDB;DATASOURCE=127.0.0.1;UID=sa;PWD=;database=webhotel
- 注册部分:Register.asp
核心代码:
******************************
* 判断用户名是否重复 *
******************************
If (CStr(Request(MM_flag)) <> "") Then
MM_rsKeyConnection=MM_conn_STRING
MM_dupKeyUsernameValue = CStr(Request.Form("cUserName"))
MM_dupKeySQL="SELECT cUserName FROM dbo.customer WHERE cUserName='" & MM_dupKeyUsernameValue & "'"
MM_adodbRecordset="ADODB.Recordset"
set MM_rsKey=Server.CreateObject(MM_adodbRecordset)
MM_rsKey.ActiveConnection=MM_rsKeyConnection
MM_rsKey.Source=MM_dupKeySQL
MM_rsKey.CursorType=0
MM_rsKey.CursorLocation=2
MM_rsKey.LockType=3
MM_rsKey.Open
If Not MM_rsKey.EOF Or Not MM_rsKey.BOF Then
******************************
* 发现用户名重复 *
******************************
session("judgeRegister")="err"
MM_qsChar = "?"
If (InStr(1,MM_dupKeyRedirect,"?") >= 1) Then MM_qsChar = "&"
MM_dupKeyRedirect = MM_dupKeyRedirect & MM_qsChar & "requsername=" & MM_dupKeyUsernameValue
Response.Write("注册失败")
End If
MM_rsKey.Close
End If
(3)登录部分:User_Login.asp
核心代码:
******************************
* 登录成功后保存用户名 *
******************************
Session("MM_Username") = MM_valUsername
- 添加计划部分:DisplayInfo.asp
核心代码:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="Connections/conn.asp" -->
<%
if request("iSchemeId")="" then
response.end
end if
%>
<%
Dim Recordset3
Dim Recordset3_numRows
Set Recordset3 = Server.CreateObject("ADODB.Recordset")
Recordset3.ActiveConnection = MM_conn_STRING
Recordset3.Source = "select * from scheme where iSchemeId='"&request("iSchemeId")&"'"
Recordset3.CursorType= 1
Recordset3.CursorLocation = 2
Recordset3.LockType = 1
Recordset3.Open()
Recordset3_numRows = 0
%>
<p>
标题:
<%=Recordset3("cSchemeTitle")%>
</p>
<p>
内容:
<%=Recordset3("cSchemeContent")%>
</p>
<%
Recordset3.Close()
Set Recordset3 = Nothing
%>
六、系统测试
本项目所做的测试列表如下:
其中包括有单元与功能测试和总体调试
1、项目名称:客户注册系统
日期:2005-4-10
开发者:*** 测试者:***
测试说明:本系统测试的是第一个子系统,测试主页和Register.asp连接是否有问题,判断各种的输入能否做出正确的响应
编号 |
测试值 |
期望结果 |
实际结果 |
成功/失败 |
1 |
什么也没输入 |
提示输入信息的 |
提示输入信息的,数据库中可以没有添加新记录 |
成功 |
2 |
两次密码输入不一致 1.12345 2.1234 |
返回提示密码不一致的信息 |
成功提示信息,数据库中可以没有添加新记录 |
成功 |
3. |
Emial框中输入的没有包含@符号 1.We.com |
提示输入正确的Emial |
成功提示信息,数据库中可以没有添加新记录 |
成功 |
4. |
输入数据不完全,只输入了部分数据 |
提示输完 |
成功提示信息,数据库中可以没有添加新记录 |
成功 |
5 |
全部数据正确填写 |
返回注册成功信息,数据库中可以添加新记录 |
返回注册成功信息,数据库中可以添加新记录 |
成功 |
2、项目名称:计划提交系统
日期:2005-4-14
开发者:*** 测试者:***
测试说明:本系统测试的是第三个子系统,测试输入日期是否成功
编号 |
测试值 |
期望结果 |
实际结果 |
成功/失败 |
1 |
输入日期已经过期 |
提示日期错误 |
提示日期错误 |
成功 |
2 |
输入日期正确 |
输入日期正确 |
输入日期正确 |
成功 |