软件项目的设计Word下载.docx
《软件项目的设计Word下载.docx》由会员分享,可在线阅读,更多相关《软件项目的设计Word下载.docx(28页珍藏版)》请在冰豆网上搜索。
图2:
BS网上商城后台功能结构图
2、产品管理程序设计说明
2.1程序描述
产品管理程序功能的描述:
商品的种类信息,详细信息全部通过终端保存在数据库服务器,管理员可以对这
些信息进行增加,修改和删除操作.软件应该提供对管理员的增加,修改和删除的操
作。
2.2功能
系统名称
BS网上商城
模块名称
产品模块
模块编号
T001
作者
XXX
日期
2011/7/16
模块简述
此模块用于对产品进行增加、修改、删除、搜索等
调用模块
添加、查看、修改、删除、搜索模块
被调用模块
无
输入
项目
一个指定产品的信息或添加一个新产品
格式
所有信息严格按照数据库中表的字段的数据类型填入
处理
当输入产品的信息通过系统调用查看、修改、添加、删除、搜查时,对应的信息被数据库保存。
当提交的信息不成功是,提示相应的处理并返回
输出
新产品被输入或者旧的产品信息被新的产品信息所代替并保存在数据库
局部数据元素
约束条件
注释
涉及的表:
产品信息表(Product)
表1:
产品信息管理程序模块IPO表
2.3性能
在输入产品信息时严格执行数据库表所要求的精度,在执行数据(商品,订单,会员,管理员)增加的时候,不允许出现因为程序的原因导致增加操作失败,也不允许发生重复增加的数据;
在执行数据删除操作的时候,不允许因为程序的原因发生多删除数据,删除失败的情况;
数据的修改也要求保持对应的准确性;
管理员输入的精度要求主要取决于数据库的相关数据类型要求:
在数据库为系统管理员提供的多种视图中将有各类数据库对象的相关数据类型及精度要求。
管理员工作过程中可以利用工具或查询有关数据库对象的精度信息已决定输入的参数。
如果管理员输入的参数与要求不符将得到提示并重新进行操作。
用户输入精度的要求取决于相应功能所需参数的精度要求:
用户浏览的页面内如果需要用户输入相关的信息或参数将给出详细的数据类型说明,并且如果用户在非恶意的情况下
输入了错误的数据类型参数,系统将自动提示用户再次输入正确的参数
2.4输人项
名称
标识
数据类型
有效范围
输入方式
输入媒体
输入数据来源
安全保密条件
数量
频度
新产品
varchar
255
手动输入
键盘、鼠标
商城新产品
待定
指定以产品修改
数据库中也有产品
指定以产品删除
数据库中已有产品
产品搜索
表2:
输入项信息表
2.5输出项
输出方式
输出媒体
对应图形符号说明
新产品被添加
自动输出
对应产品被修改
对应产品被删除
对应产品被搜索
表3:
输出项信息表
2.6算法
产品添加算法:
functioncheck(){
VarselectedCategory=document.formAdd.categoryId.options[document.formAdd.categoryId.selectedIndex];
varselectedValue=selectedCategory.value;
if(二级分类不等于2){
alert("
请选择第二级分类!
"
);
document.formAdd.categoryId.focus();
returnfalse;
}else{
selectedCategory.value=将二级分类的pid设为0;
}
returntrue;
}
多个产品一块删除算法:
String[]idArray=request.getParameterValues("
id"
if(idArray==null||idArray.length==0){
out.println("
ID号输入错误!
return;
publicvoiddelete(String[]idArray){
StringconditionStr="
whereidin("
;
for(inti=0;
i<
idArray.length;
i++){
conditionStr+=idArray[i];
conditionStr+="
"
}
conditionStr=conditionStr.replaceAll("
.$"
"
)"
//conditionStr=conditionStr.substring(0,conditionStr.length()-1)+"
System.out.println(conditionStr);
dao.delete(conditionStr);
2.7流程逻辑
图7:
产品模块流程图
2.8接口
图8:
产品模块界面
与本程序关联的Product表:
图9:
Product表信息图
3.1测试计划
对本单元进行单元测试。
进行黑盒测试,检验能否实现功能。
输入正确的条件,预期结果,输出信息。
输入错误的条件,预期结果,无法输出信息,提示输入正确条件。
进行白盒测试,检验各程序路径是否能执行到。
4.1程序描述
用户管理程序功能描述:
会员的信息全部通过终端保存在数据库服务器,管理员可以对这些信息进行增加,
修改和删除操作.软件应该提供对会员的增加,修改和删除的操作;
会员本身可以对自
身信息进行增加、查看、修改等功能
4.2功能
用户管理模块
T002
此模块用于对用户信息进行查看、修改、删除等
会员查看、修改、删除、搜索模块
会员的新信息或指定会员的信息
当输入会员的信息通过系统调用查看、修改、添加、删除时,对应的信息被数据库保存。
新会员被输入或者旧的会员信息被新的会员信息所代替并保存在数据库或会员信息被删除
管理员通过后台登陆成功进入用户管理模块
会员信息表(User)
表4:
用户管理程序模块IPO表
4.3性能
在输入会员信息时严格执行数据库表所要求的精度,在执行数据(商品,订单,会员,管理员)增加的时候,不允许出现因为程序的原因导致增加操作失败,也不允许发生重复增加的数据;
4.4输人项
会员查看
数据库中的已有会员
会员信息被严格保密
指定一会员修改
数据库中已有会员
指定一会员删除
表5:
用户管理程序模块输入信息表
4.5输出项
会员信息被输出
对应会员信息被修改
对应会员信息被删除
表6:
用户管理程序模块输出信息表
4.6算法
会员列表信息算法:
finalintPAGE_SIZE=2;
//每页显示多少条记录
finalintPAGES_PER_TIME=10;
//每次显示多少个页码链接
intpageNo=1;
StringstrPageNo=request.getParameter("
pageNo"
if(strPageNo!
=null&
&
!
strPageNo.trim().equals("
)){
try{
pageNo=Integer.parseInt(strPageNo);
}catch(NumberFormatExceptione){
pageNo=1;
if(pageNo<
=0)
pageNo=1;
List<
User>
users=newArrayList<
();
inttotalRecords=User.getUsers(users,pageNo,PAGE_SIZE);
inttotalPages=(totalRecords+PAGE_SIZE-1)/PAGE_SIZE;
if(pageNo>
totalPages)
pageNo=totalPages;
<
%
intstart=((pageNo-1)/PAGES_PER_TIME)*PAGES_PER_TIME+1;
for(inti=start;
i<
start+PAGES_PER_TIME;
if(i>
totalPages)break;
if(pageNo==i){
%>
tdbgcolor="
#ffffff"
>
nbsp;
u>
b>
%=i%>
/b>
/u>
/td>
}else{
td>
ahref="
UserList.jsp?
pageNo=<
%=i%>
/a>
%>
采用如上所示的分页算法。
4.7流程逻辑
图10:
会员管理模块流程图
4.8接口
图11:
会员管理模块界面
与本程序关联的User表:
图12:
User表的信息图
4.12测试计划
5订单管理程序设计说明
5.1程序描述
订单管理程序功能的描述:
订单的信息全部通过终端保存在数据库服务器,管理员可以对这些信息进行增
加,修改和删除操作.软件应该提供对订单的增加和删除的操作.;
会员可以通过登
录查看自己的订单信息及过去的交易记录
5.2功能
订单模块
T003
此模块用于对订单进行查看、修改、删除等
订单的查看、修改、删除模块
产品的订单列表信息
当订单的信息通过系统调用查看、修改、删除时,对应的信息被数据库保存。
原订单信息被新的信息代替,并保存在数据库
订单信息表(SalesOrder)
表7:
订单程序模块的IPO表
5.3性能
在执行数据(商品,订单,会员,管理员)增加的时候,不允许出现因为程序的原因导致增加操作失败,也不允许发生重复增加的数据;
5.4输人项
订单查看
数据库中的已有订单
订单会员信息被严格保密
指定一订单修改
数据库中已有订单
指定一订单删除
表8:
订单程序模块的输入项信息表
5.5输出项
订单信息被输出
对应订单信息被修改
对应订单信息被删除
表9:
订单程序模块的输出向信息表
5.6算法
订单列表所用到的算法:
分页算法
%!
privatestaticfinalintPAGE_SIZE=2;
StringstrPageNo=request.getParameter("
pageno"
intpageNo=1;
if(strPageNo!
=null){
pageNo=Integer.parseInt(strPageNo);
if(pageNo<
1)pageNo=1;
//getalltheusers
SalesOrder>
orders=newArrayList<
inttotalRecords=OrderMgr.getInstance().getOrders(orders,pageNo,PAGE_SIZE);
inttotalPages=(totalRecords+PAGE_SIZE-1)/PAGE_SIZE;
if(pageNo>
totalPages)pageNo=totalPages;
按id进行展现算法:
SalesOrderso=OrderMgr.getInstance().loadById(uid);
publicSalesOrderloadById(intid){
Connectionconn=DB.getConn();
Statementstmt=DB.getStatement(conn);
ResultSetrs=null;
SalesOrderso=null;
Stringsql="
selectsalesorder.id,salesorder.userid,salesorder.odate,salesorder.addr,salesorder.status,"
+
"
user.iduid,user.username,user.password,user.addruaddr,user.phone,user.rdatefromsalesorder"
joinuseron(salesorder.userid=user.id)wheresalesorder.id="
+id;
rs=DB.getResultSet(stmt,sql);
if(rs.next()){
Useru=newUser();
u.setId(rs.getInt("
uid"
));
u.setAddr(rs.getString("
uaddr"
u.setUsername(rs.getString("
username"
u.setPassword(rs.getString("
password"
u.setPhone(rs.getString("
phone"
u.setRdate(rs.getTimestamp("
rdate"
so=newSalesOrder();
so.setId(rs.getInt("
so.setAddr(rs.getString("
addr"
so.setODate(rs.getTimestamp("
odate"
so.setStatus(rs.getInt("
status"
so.setUser(u);
}
}catch(SQLExceptione){
e.printStackTrace();
}finally{
DB.close(rs);
DB.close(stmt);
DB.close(conn);
returnso;
5.7流程逻辑
图13:
订单管理程序模块流程图
5.8接口
图14:
与本程序关联的salesorder表:
图15:
salesorder表的信息图
5.12测试计划
类别管理程序设计说明
6.1程序描述
类别管理程序功能的描述:
些信息进行增加,修改和删除操作.软件详细展示商品的类别信息。
并且商品的添加必
须在二级子类别及以下添加。
6.2功能
类别管理模块
此模块用于对类别进行查看、增加、修改、删除等
添加、查看、修改、删除模块
一个指定类别的信息或输入一个新的类别
当输入产品的类别信息通过系统调用查看、修改、添加、删除时,对应的信息被数据库保存。
新产品类别被输入或者旧的产品类别信息被新的产品类别信息所代替并保存在数据库
类别表(Category)
表10:
类别管理程序模块的IPO表
6.3性能
在输入产品信息时严格执行数据库表所要求的精度,在执行数据