目 录
1 绪论 4
1.1项目背景 4
1.2项目意义 4
2 需求分析 4
2.1功能性需求 4
2.2非功能性需求 5
3 可行性分析 5
3.1市场可行性 5
3.2技术可行性 5
3.3经济可行性 6
4 系统概要设计 6
4.1系统用例图 6
4.2系统功能模块描述 6
4.2.1手机客户端各功能模块描述 7
4.2.2数据库服务器端各功能模块描述 7
4.2.3网页客户端各功能模块描述 7
4.3系统流程图 7
4.3.1质量数据采集 7
4.3.2数据库服务器 8
4.3.3数据展示与分析 8
4.4 系统运行环境 9
5 系统详细设计 9
5.1系统架构 9
5.2系统设计模式 10
5.2.1传统两层客户机/服务器模式(C/S) 10
5.2.2浏览器/服务器模式(B/S) 10
5.3数据库设计 11
5.3.1表格设计 11
5.3.2数据库配置优化 13
5.4网络连接设计 14
6 系统实现 15
6.1 系统实现关键技术 15
6.1.1多线程服务器 15
6.1.2面向连接的Socket编程模型 16
6.1.3 IO多路复用 17
6.1.4 SQLite3数据库 17
6.1.5 ASP.Net 17
6.2数据库服务器的实现 18
6.2.1概述 18
6.2.2主程序模块 18
6.2.3业务处理模块 19
6.2.4 Socket通信模块 19
6.2.5线程池模块 19
6.2.6字符串处理模块 19
6.2.7数据库访问模块 19
6.2.8调试模块 20
6.2.9 编译、移植和运行 20
6.3手机客户端的实现 21
6.3.1概述 21
6.3.2界面实现 21
6.3.3面向连接的Socket通信模块 21
6.3.4本地缓存模块 22
6.3.5业务逻辑模块 23
6.3.6工程代码架构 23
6.3.7编译与运行 23
6.4网页客户端的实现 24
6.4.1概述 24
6.4.2网页前端 24
6.4.3网页后端 24
6.4.4工程代码架构 25
6.4.5编译与运行 26
7 系统使用说明 26
7.1运行数据库服务器 26
7.2采集质量数据 27
7.3显示分析数据 29
8总结 37
致谢 38
参考文献 38
2 需求分析
本系统的需求分为功能性需求和非功能性需求[4]。其中,功能性需求是为满足产品质量管理系统用户的业务需求而必须实现的、具有实质性内容的要求;而非功能性需求是旨在更好发挥功能性需求,系统必须具备的某些特性。
2.1功能性需求
(1)质量信息的录入
品质管理员登录Android手机中的产品质量管理系统客户端,根据相应的生产车间,选择员工,建立班次,对于产品做出质量评价后,直接通过手机的触摸屏准确无误地录入产品质量信息,上传到数据库服务器,存储到数据库服务器上的数据库中,到下班点的时候,可以进行下班操作。当生产中遇到紧急情况或者产品质量出现严重问题的时候,可以下达停产整顿、查明原因等指令。
(2)质量信息的查询统计分析
经理等管理人员通过登录客户端网页,间接访问数据库服务器,了解近期产品生产情况,产品生产过程中存在的问题、经过BI(商务智能)处理的解决方案,查询质量数据的统计分析结果。简单的统计分析过程是通过计算机按照一定的业务流程直接以饼状图、条形图、折线图等形式直观地呈现在网页界面中,更加复杂的统计分析结论是通过质量数据分析人员登录到客户端,进行数据挖掘之后得到的。
(3)质量信息的数据挖掘
质量数据分析人员通过客户端登录到本系统后,根据公司需求、产品生产情况以及产品质量问题,有针对性地而非机械性地提出有利于公司发展的、可以供公司管理层作为参考的依据和策略。
(4)系统配置维护
系统管理员登录到本系统后,不仅可以进行数据库维护,如数据库备份等操作,还必须能够管理员工信息,本文转载自http://www.biyezuopin.vip/onews.asp?id=15048如修改密码,以及系统设置等常见系统操作。
2.2非功能性需求
(1)产品质量管理系统的及时性
品质管理员通过手机端采集到质量数据录入手机的时间不超过2秒。在局域网内,将质量数据上传到服务器的时间不能超过3秒。
(2)产品质量管理系统的响应时间
网页页面加载时间低于2秒,网页页面响应时间低于5秒。
手机页面加载时间低于1秒,手机页面响应时间低于3秒。
(3)产品质量管理系统的负载能力
产品质量管理系统必须满足整个品质管理流程的需要,就应该能够具备一定并发数量的服务器,能够承载各个车间品管员、经理、数据分析员同时访问而正常运行,并发量为500基本能满足要求。
(4)产品质量管理系统的容错能力
服务器对于非法访问、非法数据请求、错误操作、以及超负荷的操作应能够及时处理,继续良好运行。
(5)产品质量管理系统的数据安全性
由于产品质量数据用于了解产品生产情况,提供决策参考,属于公司内部资料信息,必须保证数据库服务器和数据库以及局域网内通信不被非法窃取,仅对相关人员开放其权限范围内的数据信息,以保证数据安全性。
(6)产品质量管理系统的可扩展性
可以根据公司不同时期的需求,扩展系统功能,比如修改统计分析指标,增加统计项目等。
<%@ page language="C#" autoeventwireup="true" inherits="Login, App_Web_tizktcrv" %>
<!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 runat="server">
<title>品质管理系统登录界面</title>
<link href="style/css/index-css/public.css" rel="stylesheet" type="text/css" />
<link href="style/css/index-css/Login.css" rel="stylesheet" type="text/css" />
<link href="style/css/index-css/float.css" rel="stylesheet" type="text/css" />
<link href="style/css/index-css/js-css/jquery-ui-1.10.2.custom.css" rel="stylesheet"type="text/css" />
<script src="lib/jquery-1.9.1.js" type="text/javascript"></script>
<script src="lib/jquery-ui-1.10.2.custom.min.js" type="text/javascript"></script>
<script src="lib/Mylib/Login.js" type="text/javascript"></script>
<script type="text/javascript" runat="server" >
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true">
</asp:ScriptManager>
<asp:Timer ID="timerGoAnotherPage" runat="server" Interval="500"
Enabled="False" ontick="timerGoAnotherPage_Tick" >
</asp:Timer>
<div>
<div class="left"></div>
<div class="right"></div>
<div class="content">
<div class="global_header">
<img src="style/images/bg-images/title.png" />
</div>
<div class="global_main">
<div class="loginDiv">
<table>
<tr class="tabler-row">
<td class="tabler-column1"> <asp:Label ID="Label1" runat="server" Text="用户名:"
ForeColor="White" style="font-weight:bold;"></asp:Label></td>
<td> <asp:TextBox ID="txtUserName" for="age" runat="server" Height="26px" style="font-size:medium;" ToolTip="请输入用户名"></asp:TextBox>
</td>
</tr >
<tr class="tabler-row">
<td class="tabler-column1"><asp:Label ID="Label3" runat="server" Text="密码:"
ForeColor="White" style="font-weight:bold;"></asp:Label></td>
<td><asp:TextBox ID="txtPwd" runat="server" Height="26px"
style="font-size:medium;" TextMode="Password" ToolTip="请输入密码"></asp:TextBox></td>
</tr>
<tr class="tabler-row">
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<td> <asp:Button ID="btnLogin" runat="server" Text="登录"
style="background-color:#4F97BF;color:White;height:33px;width:60px;font-size:medium; font-weight:bold;"
onclick="btnLogin_Click" /></td>
<td> <asp:Button ID="btnCancell" runat="server" Text="取消"
style="background-color:#4F97BF;color:White;height:33px;width:60px;font-size:medium; font-weight:bold;"
onclick="btnCancell_Click" /></td>
</ContentTemplate>
</asp:UpdatePanel>
</tr >
<tr class="tabler-row">
<td>
<asp:Label ID="lbTip" runat="server" Text="登录成功" Visible="false"></asp:Label>
</td>
</tr>
</table>
</div>
</div>
<div class="global_footer"></div>
</div>
<div class="clear"></div>
</div>
</form>
</body>
</html>