《系统与设计实验》资料.docx
《《系统与设计实验》资料.docx》由会员分享,可在线阅读,更多相关《《系统与设计实验》资料.docx(35页珍藏版)》请在冰豆网上搜索。
《系统与设计实验》资料
制造工艺软件服务系统——项目启动
一、实验要求
1.了解如何进行系统调查,体会系统调查原则的重要性。
2.了解可行性研究的主要步骤和内容,根据现行系统的主要业务流程提出系统方案的设想。
二、实验目的
1.学习如何进行系统调查,体会系统调查原则的重要性。
2.熟悉可行性研究的主要步骤和主要内容,根据现行系统的主要业务流程提出系统方案的设想。
3.熟悉可行性分析报告的主要内容和格式。
三、实验环境
Windows
四、实验内容及过程
问题描述:
某种机床,该系统只考虑一种机床,即一般凸轮轴磨床,这种有很多种参数,比如工艺类别、加工方式、材料类别、材料牌号、毛坯热处理、毛坯硬度等,该机床有若干凸轮片,这种凸轮片也同样有许多参数,比如波纹度、凸轮全升程误差、凸轮相位角误差、表面烧伤程度、最大相邻误差、表面粗糙度,最大升程。
对于该机床的不同参数,机床都表现出不同的性能和用途。
要求作出一个服务系统,为不同的机床需求提供服务,即问答服务。
当用户提交机床和凸轮片的参数后可以针对这些参数提问多个;问题提交到系统后,专家们即可对这些参数进行回答,同时可以提交图片,同样,专家也具有提问的功能;系统管理员可以针对某些回答进行标记,把某种机床对应的问题的答案标记为最佳答案,同时跟新专家的问题表,使得已经有最佳答案的问题不再出现在专家的问题列表中,系统管理员还可以对某些产品进行删除,同时,系统管理员还需要管理用户表。
针对上述问题,我们可以做一个制造工艺软件服务系统,为客户提供上述服务,经过一系列的统计和分析得出一个解决方案,并且该系统是可行的,解决方案如下:
用mysql存储数据表,用php+javascript+html写逻辑和界面。
可以兼容常见的几种浏览器:
ie,火狐,google浏览器等。
本系统的宗旨是提高制造工艺管理工作的效率,减少相关人员的工作量,其人性化的设计使制造工艺管理工作变得更加轻松并且高效。
具体功能:
客户功能:
个人信息,所有信息,提问,查询,添加
专家功能:
继承客户功能,添加,查询,回答功能
系统管理员:
继承专家功能,标记最佳答案功能,添加和删除、查询、修改用户,添加和删除
制造工资信息等
制造工艺软件服务系统——系统分析
一、实验要求
1.了解系统分析阶段的主要工作内容,画出用例图与序列图;
2.了解阅读分层数据流程图和数据字典;
3.能够画出小型系统的数据流程图。
二、实验目的
1.了解系统分析阶段的主要工作内容;
2.能够熟练阅读分层数据流程图和数据字典;
3.能够对小型系统的数据处理进行分析,画出小型系统的数据流程图;
4.熟悉数据词典的基本形式和作用,能够使用结构化语言或判定表描述基本加工的处理逻辑。
三、实验环境
Visio2007
四、实验内容及过程
根据收集到的各种系统输入单、机床参数表单、凸轮片表单和输出报表等凭证,又通过亲身实践以及向有关业务管理人员的访问调查,系统分析结果如下。
1、用例分析。
角色分析:
该系统包含三个用户:
系统管理员、专家、普通用户。
功能分析:
a、客户功能
个人信息:
显示该用户自己向产品信息表中添加的所有参数信息,点击某一行参数,然后点击“明细”,则可以产看到针对该产品参数的提出的问题和回答,问题和回答有其相应的提出者和回答者的名字。
“添加”弹出对话框,可以添加参数,同时提出问题,提交后,如果还要添加问题则可以选上该行参数,然后点击“提出新问题”则可以添加新的问题(上交后同时保存提交者的用户名)。
所有信息:
显示所有的用户提出的产品参数信息,可以明细每行的参数,明细后可以看到针对该参数的问题和精彩回答。
b、专家功能
显示所有没有被标记的问题(如果问题有了最佳答案,管理员会标记该问题为最佳),点击“回答”后,会显示该问题的相应产品参数,并且有个编辑框可以回答问题,回答问题后即可提交(上交后同时保存回答者的用户名),如果可以,回答问题的同时有上传截图的功能。
c、系统管理员功能:
用户信息管理:
包含对用户的添加,删除和对用户的修改,比如修改密码。
产品参数管理:
点击后显示所有的产品参数,“删除”可以删除某一行参数,同时参数该参数所对应的所有问题和答案。
“明细”可以产看该参数对应的问题和答案。
问题管理:
点击后显示所有的问题,点击“删除”即可删除该问题和该问题所对应的答案,点击“明细”后即可弹出对话框,显示显示该问题所对应的参数和答案,可以在这里标记最佳答案。
子系统:
制造工艺软件服务系统包含三个子系统:
需求服务注册系统,专家问答系统和管理系统。
通过以上分析可以得出三种子系统的用例图
需求服务注册子系统
专家问答子系统
管理子系统
以上用例图显示,专家继承了普通用户,系统管理员继承了专家,可以使得专家具有普通用户的功能,系统管理员具有所有功能。
2、数据流分析(DFD图)
通过分析和讨论,和以上的用例图,我们可以得到三个子系统的数据流图。
以下画出三子系统的数据流的0层和1层。
数据流图主要记录数据的流向,存储和处理。
从第0层DFD图进行分析,自定向下,逐步求精,慢慢的细化并得到详细数据流图,根据数据流图可以明确的看到数据的流向、存储等情况。
需求服务注册系统数据流图:
0层DFD
1层DFD
专家问答系统数据流图:
0层DFD
1层DFD
管理系统数据流图:
0层DFD
1层DFD
3、数据字典分析
根据以上数据流图,我们分析他们的数据字典信息。
用户信息:
用户id,用户名,用户密码,角色id,权力范围,用户注册时间,信息更新时间。
机床信息:
产品id,用户id,机床名称,工艺类别,加工方式,材料类别,材料牌号,毛坯热处理,毛坯硬度,毛坯余量,砂轮实际直,砂轮实际直,从动件类型,滚子半径,凸轮片数量,工件总长,波纹度,凸轮全升程误差,凸轮相位角误差,表面烧伤程度,最大相邻误差,最大升程误差,表面粗糙度,最大升程
凸轮片参数:
凸轮片id,产品id,初始位置,初始相位角,相邻位置,相邻相位角,基圆补偿,凸轮片升程表,基圆半径。
问题信息:
问题id,产品id,问题内容,用户id,问题是否已回答
答案信息:
答案id,问题id,用户id,问题的答案,产品的视图,是否是最佳答案
4、系统的顺序图
制造工艺软件服务系统的顺序图主要包裹三大部分:
普通用户顺序图,专家回答系统顺序图,系统管理顺序图。
分别描述三种角色(即普通用户、专家和系统管理员)对该系统的操作和管理顺序与动作。
普通用户顺序图
首先是用户登陆,通过用户验证,如果为普通用户,则主菜单中主要显示普通用户的功能,普通用户进入客户需求注册页面,可以添加和修改机床参数和凸轮片参数信息,当然这些修改都需要写入相对于的数据库表中。
随后,用户可以针对自己填的产品参数进行提问,问题内容记录在问题表中。
登录用户可以查看所有用户所提出的产品参数和问题以及专家回答的问题的答案,在答案中可以看到是否有最佳答案。
专家回答系统顺序图
用户首先登录,如果验证用户为专家,则显示专家相应的功能,当然,专家的功能包括了普通用户的功能。
打开客户需求问答页面,专家可以查看到最新的没有最佳答案的所有用户提出的问题。
可以正对该问题进行回答,回答内容同样要记录进回答表中。
系统管理顺序图
用户首先登录,如果验证用户为系统管理员,则主菜单显示系统管理员的功能,即该系统的所有功能。
打开用户管理页面,可以添加/删除/修改用户信息,同样需要更新用户表。
还可以检索用户,通过发送检索请求,在数据库表rv_user中进行检索,得到检索的用户信息显示到界面。
打开机床管理页面,管理员可以对机床参数进行删除,这是一个多表删除,会连带删除几乎所有表中的相关信息,需要慎重删除。
可以发送标记请求,标记某个答案为最佳答案,标记最佳答案后同时更新rv_question表中的is_done属性,表示该问题已经有最佳答案,当专家进入专家问答页面时,该问题不再显示在专家问题列表中。
5、系统边界和处理方式
(l)系统边界
输入边界——机床和凸轮片参数录入、查询条件等。
输出边界——报表和查询响应输出等。
(2)处理方式
新系统采用实时处理方式。
制造工艺软件服务系统——系统设计
一、实验要求
1.了解系统设计阶段的主要任务;
2.了解模块的独立性概念;
3.能够熟练阅读软件结构图和程序流程图、N-S盒图以及分析图描述的模块逻辑结构图。
二、实验目的
1.熟悉系统设计阶段的主要任务;
2.掌握模块独立性的概念;
3.能够熟练阅读软件结构图和用程序流程图、N-S盒图以及问题分析图描述的模块逻辑结构图;
4.掌握结构化程序设计的方法,熟练使用三种基本控制结构构造单入口单出口的模块,并能够使用程序流程图、N-S盒图以及问题分析图描述的模块逻辑结构;
5.了解概要设计、模块设计阶段文档的基本格式。
三、实验环境
Visio2007
四、实验内容及过程
1.系统目标设计
1)方便的数据输入性能,良好的人机界面。
2)灵活地查询性能,能快速实现用户数据和库存数据的查询。
3)专家列表需要更新。
综合考虑改进后的系统逻辑模型和设计的新系统目标的要求。
设计新系统功能结构如图所示。
功能结构图:
制造工艺软件服务系统的功能结构图中主要包含了添加、删除、修改、查看、查询、提出问题、回答问题、标记等功能。
专家继承了普通用户的功能,而系统管理员也继承了专家的功能,该系统不包含注册功能,需要联系管理员,通过管理员创建账户和密码。
系统工作流程图如下:
系统流程从登陆开始,登陆后判断是什么用户,再给你用户不同的权限,用户就得到不同的功能,所有用户都具有基本的功能,能进行添加产品参数,修改产品删除,明细,查询,提交问题,查看问题和回答等功能。
如果是专家或者系统管理员,则具有问答问题的功能。
如果是系统管理员,则具有管理用户列表的功能和管理产品的功能,管理产品包含删除产品和标记功能。
2、E-R图:
针对该系统的关系和属性,可得到该系统的E-R图
3、数据库表设计
对数据库流程分析和E-R图中的关系和属性分析,可以设计这个系统需要用到的几个表。
表格清单描述数据库表名和功能作用。
数据库表名
功能描述
rv_role
角色表,存储三种角色的id,分别代表客户,回答者,管理员
rv_user
用户信息表,存储用户id,姓名,密码,角色id等信息,每个角色id可以对应多个用户
rv_user_procc_def
产品信息表,存储产品的各种属性,这些属性的参数由用户提供
rv_question
问题表,存储客户提交的问题,拥有问题id,产品id等,每一个产品id可以对应多个问题
rv_answer
答案表,存储回答者回答的问题,有答案的id,和其所对应的问题id,一问题id可以对应多个答案id。
答案表中还有是否是最佳答案的属性,又管理员确定最佳答案。
rv_user_cam_def
小零件表,存储产品参数中的各个凸轮片的参数
以下为数据库表:
(1)角色表
表名:
rv_role
表信息:
字段
字段类型
Key
对应信息
id
int(11)
primarykey
角色ID
11
varchar(200)
角色名字
action
text
可执行动作
(2)用户信息表
表名:
rv_user
字段
字段类型
Key
对应信息
id
int(11)
primarykey
用户id
username
varchar(60)
用户名
password
varchar(60)
用户密码
roleid
int(11)
角色id
areaid
varchar(200)
权力范围
created_at
datetime
用户注册时间
updated_at
datetime
信息更新时间
(3)机床参数表
表名:
rv_user_procc_def
字段
字段类型
Key
对应信息
product_id
int(11)
primarykey
产品id
user_id
int(11)
foreignkey(rv_user)
用户id
mcht_name
varchar(30)
机床名称
procc_name
varchar(10)
工艺类别
proct_name
varchar(10)
加工方式
mat_type
varchar(16)
材料类别
mat_mark
varchar(20)
材料牌号
cas_wpheat
varchar(10)
毛坯热处理
cas_wphard
varchar(10)
毛坯硬度
cas_wprem
double
毛坯余量
cas_wrdiam
double
砂轮实际直
cas_camshaty
varchar(20)
凸轮轴类型
cas_slavtype
varchar(20)
从动件类型
cas_rolradi
double
滚子半径
cas_camcnt
int(11)
凸轮片数量
cas_camthk
double
凸轮片厚度
cas_tlen
double
工件总长
cas_wav
varchar(10)
波纹度
cas_calfe
double
凸轮全升程误差
cas_cphae
double
凸轮相位角误差
cas_hurt
varchar(10)
表面烧伤程度
cas_emaxph
double
最大相邻误差
cas_emaxlf
double
最大升程误差
cas_rough
double
表面粗糙度
cas_maxlf
double
最大升程
(4)问题表
表名:
rv_qustion
字段
字段类型
key
对应信息
question_id
int(11)
primarykey
问题id
products_id
int(11)
foreignkey(rv_product)
产品id
question
varchar(500)
问题
user_id
int(11)
用户id
is_done
tinyint
(1)
问题是否已回答
(5)答案表
表名:
rv_answer
字段
字段类型
key
对应信息
answer_id
int(11)
primarykey
答案id
questions_id
int(11)
foreignkey(rv_question)
问题id
user_id
int(11)
用户id
answer
varchar(500)
问题的答案
image_url
varchar(50)
产品的视图
isbest
tinyint
(1)
是否是最佳答案
(6)凸轮片参数表
表名:
rv_user_cam_def
字段
字段类型
key
对应信息
cam_id
int(11)
primarykey
小零件id
product_id
int(11)
foreignkey
(rv_user_procc_def)
产品id
CAS_INITIPOS
double
初始位置
CAS_INITIPHA
double
初始相位角
CAS_BORDUPOS
double
相邻位置
CAS_BUPHANG
double
相邻相位角
CAS_BCCOMP
double
基圆补偿
CAS_CAMLIFT
Varchar(50)
凸轮片升程表
CAS_BRAD
double
基圆半径
制造工艺软件服务系统——系统实现
一、实验要求
选择一种熟悉的程序设计语言或开发工具,编制实验三中各模块的程序代码,也可以另外选择其他的一些程序设计题进行联系。
在编写程序时注意程序设计的风格,然后分别调试各个模块的程序。
二、实验目的
1.成在程序中书写注解的习惯;
2.程序的书写格式要规范;
3.构造简明易懂的程序语句。
三、实验环境
Visio2007,php+mySql环境,windows7系统
四、实验内容及过程
系统的设计与分析工作做好后最后是系统的实现了,系统的实现主要设计编码工作。
该系统的实现用了几个lib库,包括图片、权限检测、mysql连接和查询等库。
通过php写后台逻辑,用tpl中的html和javascript做界面样式
清单表主要记录实现制造工艺软件服务系统的几乎所有关键的源文件及其功能描述。
以下为程序设计源文件清单表:
程序清单汇总表
程序名
功能描述
index.php
程序入口文件
action.index.php
判断是否登录
index.htm
程序首页
action.info.php
处理工艺需求服务注册
info_list.htm
列出当前用户所注册的所有产品信息
info_new.htm
新建一个产品
info_edit.htm
修改编辑产品参数
info_show.htm
显示小零件参数
question_add.htm
问题提出
littlepiece_add.htm
添加小零件参数
action.sell.php
处理查看所有问题及其参数和答案
sell_list.htm
列出所有用户所注册的所有产品信息
sell_show.htm
显示小零件参数
list_question.htm
查看问题
list_answer.htm
查看问题所对应的答案
action.doc.php
查询工艺需求服务,回答者回答问题
doc_list.htm
列出所有没有最佳答案的问题
doc_new.htm
针对对于的问题作出回答
doc_show.htm
显示产品及其小零件参数
action.user.php
用户管理,添加用户,删除用户,修改和检索
user_list.htm
列出所有用户
user_new.htm
添加用户
user_edit.htm
修改用户信息,比如密码,角色权限等
user_login.htm
用户登陆
action.config.php
产品及问题答案管理,包括删除(多表删除),标记等功能
config_list.htm
列出有所有产品参数
config_new.htm
显示问题的答案,并且可以标记为最佳答案
config_edit.htm
显示所有的问题,点击链接可以查看该问题所对应的答案
lib/mysql.class.php
数据类
lib/smarty.class.php
模版类
lib/json.class.php
JSON类
lib/func.class.php
核心类
lib/image.class.php
图片类
lib/rabc.class.php
查询类
同时画出程序的调用关系图:
核心代码:
index.php
//配置数据库
$cfg["dbhost"]="localhost";//数据库主机名
$cfg["dbuser"]="root";//数据库用户名
$cfg["dbpass"]="qaz109556";//数据库密码
$cfg["dbname"]="A4_SAAS_GRIND";//数据库名称
$cfg["webname"]="制造工艺软件服务系统";//系统名称
//引入类库及公共方法
@define("CORE",dirname(__FILE__)."/");//根目录
require_once("lib/mysql.class.php");//数据类
require_once("lib/smarty.class.php");//模版类
require_once('lib/json.class.php');//JSON类
require_once("lib/func.class.php");//核心类
require_once("lib/rabc.class.php");//查询类
require_once("lib/image.class.php");//图片类
//读取用户数组
$sql_user="SELECTid,usernameFROM`rv_user`";
$db->query($sql_user);
$user_arr=$db->fetchAll();
foreach($user_arras$key=>$val){
$user_list[$user_arr[$key][id]]=$user_arr[$key][username];//用户数组
}
//执行页面
switch($action){
case"":
include('action/action.index.php');//首页
break;
case"info":
include('action/action.info.php');//客户
break;
case"sell":
include('action/action.sell.php');//销售
break;
case"daily":
……
}
Aciton.info.php
if($do==""){
……
//查询
$sql="SELECT*FROM`rv_user_procc_def`where1=1$searchorderbyproduct_iddescLIMIT$pageNum,$numPerPage";
$db->query($sql);
$list=$db->fetchAll();
//模版
$smt=newsmarty();smarty_cfg($smt);
$smt->assign('list',$list);
$smt->assign('numPerPage',$_POST[numPerPage]);//显示条数
$smt->assign('pageNum',$_POST[pageNum]);//当前页数
$smt->assign('total',$total);
$smt->assign('title',"问题列表");
$smt->display('info_list.htm');
……
}
//写入产品参数
if($do=="add"){
If_rabc($action,$do);//检测权限
$user_id=$_SESSION[userid];
$sql="INSERTINTO`rv_user_procc_def`(`MCHT_NAME`,`PROCC_NAME`,`PRO