软件项目的设计.docx

上传人:b****6 文档编号:4589164 上传时间:2022-12-07 格式:DOCX 页数:28 大小:422.58KB
下载 相关 举报
软件项目的设计.docx_第1页
第1页 / 共28页
软件项目的设计.docx_第2页
第2页 / 共28页
软件项目的设计.docx_第3页
第3页 / 共28页
软件项目的设计.docx_第4页
第4页 / 共28页
软件项目的设计.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

软件项目的设计.docx

《软件项目的设计.docx》由会员分享,可在线阅读,更多相关《软件项目的设计.docx(28页珍藏版)》请在冰豆网上搜索。

软件项目的设计.docx

软件项目的设计

软件项目的设计

1实验目的

1)掌握系统总体结构的设计;

2)掌握系统接口设计,数据结构设计;

3)掌握系统概要设计的步骤和方法。

4)掌握模块的程序描述;

5)熟练使用流程图、PDL等详细描述工具;

6)掌握详细设计的步骤和方法。

2实验要求

要求完成概要设计和部分详细设计,利用word和visio或其它建模工具写出设计文档。

需要给出系统合理的解决方案;包含模块及模块间调用关系;部分关键模块的实现方案。

3实验内容

1)主要解决实现该系统需求的程序模块设计问题。

(包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。

2)进行软件系统的结构设计、逐个模块的程序描述(包括各模块的功能、性能、输入、输出、算法、程序逻辑、接口等等)

4实验步骤

1)首先确定系统总体设计方案(分清系统是事务型还是加工型)。

2)完成系统的模块结构图及模块的功能说明。

3)完成系统的接口设计。

4)完成系统的数据结构设计写出该课题的可行性报告,熟悉相应的软件开发环境。

5)首先进行程序系统的结构设计。

6)然后对主要程序进行描述。

5实验学时

2学时。

6实验结果

上交所制作的流程图文件和实验报告。

7思考题

1)系统设计和需求分析的关系是什么?

两者必须先后关联吗?

2)怎样描绘系统的体系结构?

3)怎样绘制符合规范的流程图。

4)怎样组织对设计阶段工作的评审?

项目开发首先要做的事是什么?

1、程序系统的结构

 

 

 

图1:

BS网上商城前台功能结构图

图2:

BS网上商城后台功能结构图

 

2、产品管理程序设计说明

2.1程序描述

产品管理程序功能的描述:

商品的种类信息,详细信息全部通过终端保存在数据库服务器,管理员可以对这

些信息进行增加,修改和删除操作.软件应该提供对管理员的增加,修改和删除的操

作。

2.2功能

系统名称

BS网上商城

模块名称

产品模块

模块编号

T001

作者

XXX

日期

2011/7/16

模块简述

此模块用于对产品进行增加、修改、删除、搜索等

调用模块

添加、查看、修改、删除、搜索模块

被调用模块

输入

项目

一个指定产品的信息或添加一个新产品

格式

所有信息严格按照数据库中表的字段的数据类型填入

处理

当输入产品的信息通过系统调用查看、修改、添加、删除、搜查时,对应的信息被数据库保存。

当提交的信息不成功是,提示相应的处理并返回

输出

新产品被输入或者旧的产品信息被新的产品信息所代替并保存在数据库

局部数据元素

约束条件

注释

涉及的表:

产品信息表(Product)

表1:

产品信息管理程序模块IPO表

2.3性能

在输入产品信息时严格执行数据库表所要求的精度,在执行数据(商品,订单,会员,管理员)增加的时候,不允许出现因为程序的原因导致增加操作失败,也不允许发生重复增加的数据;在执行数据删除操作的时候,不允许因为程序的原因发生多删除数据,删除失败的情况;数据的修改也要求保持对应的准确性;

管理员输入的精度要求主要取决于数据库的相关数据类型要求:

在数据库为系统管理员提供的多种视图中将有各类数据库对象的相关数据类型及精度要求。

管理员工作过程中可以利用工具或查询有关数据库对象的精度信息已决定输入的参数。

如果管理员输入的参数与要求不符将得到提示并重新进行操作。

用户输入精度的要求取决于相应功能所需参数的精度要求:

用户浏览的页面内如果需要用户输入相关的信息或参数将给出详细的数据类型说明,并且如果用户在非恶意的情况下

输入了错误的数据类型参数,系统将自动提示用户再次输入正确的参数

2.4输人项

名称

标识

数据类型

有效范围

输入方式

输入媒体

输入数据来源

安全保密条件

数量

频度

新产品

varchar

255

手动输入

键盘、鼠标

商城新产品

待定

待定

指定以产品修改

varchar

255

手动输入

键盘、鼠标

数据库中也有产品

待定

待定

指定以产品删除

数据库中已有产品

待定

待定

产品搜索

varchar

255

手动输入

键盘、鼠标

数据库中已有产品

待定

待定

表2:

输入项信息表

2.5输出项

名称

标识

数据类型

有效范围

输出方式

输出媒体

对应图形符号说明

安全保密条件

数量

频度

新产品被添加

varchar

255

自动输出

待定

待定

对应产品被修改

varchar

255

自动输出

待定

待定

对应产品被删除

自动输出

待定

待定

对应产品被搜索

varchar

255

自动输出

待定

待定

表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

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功能

系统名称

BS网上商城

模块名称

用户管理模块

模块编号

T002

作者

XXX

日期

2011/7/16

模块简述

此模块用于对用户信息进行查看、修改、删除等

调用模块

会员查看、修改、删除、搜索模块

被调用模块

输入

项目

会员的新信息或指定会员的信息

格式

所有信息严格按照数据库中表的字段的数据类型填入

处理

当输入会员的信息通过系统调用查看、修改、添加、删除时,对应的信息被数据库保存。

当提交的信息不成功是,提示相应的处理并返回

输出

新会员被输入或者旧的会员信息被新的会员信息所代替并保存在数据库或会员信息被删除

局部数据元素

约束条件

管理员通过后台登陆成功进入用户管理模块

注释

涉及的表:

会员信息表(User)

表4:

用户管理程序模块IPO表

4.3性能

在输入会员信息时严格执行数据库表所要求的精度,在执行数据(商品,订单,会员,管理员)增加的时候,不允许出现因为程序的原因导致增加操作失败,也不允许发生重复增加的数据;在执行数据删除操作的时候,不允许因为程序的原因发生多删除数据,删除失败的情况;数据的修改也要求保持对应的准确性;

管理员输入的精度要求主要取决于数据库的相关数据类型要求:

在数据库为系统管理员提供的多种视图中将有各类数据库对象的相关数据类型及精度要求。

管理员工作过程中可以利用工具或查询有关数据库对象的精度信息已决定输入的参数。

如果管理员输入的参数与要求不符将得到提示并重新进行操作。

用户输入精度的要求取决于相应功能所需参数的精度要求:

用户浏览的页面内如果需要用户输入相关的信息或参数将给出详细的数据类型说明,并且如果用户在非恶意的情况下

输入了错误的数据类型参数,系统将自动提示用户再次输入正确的参数

4.4输人项

名称

标识

数据类型

有效范围

输入方式

输入媒体

输入数据来源

安全保密条件

数量

频度

会员查看

varchar

255

手动输入

键盘、鼠标

数据库中的已有会员

会员信息被严格保密

待定

待定

指定一会员修改

varchar

255

手动输入

键盘、鼠标

数据库中已有会员

会员信息被严格保密

待定

待定

指定一会员删除

数据库中已有会员

会员信息被严格保密

待定

待定

表5:

用户管理程序模块输入信息表

4.5输出项

名称

标识

数据类型

有效范围

输出方式

输出媒体

对应图形符号说明

安全保密条件

数量

频度

会员信息被输出

varchar

255

自动输出

会员信息被严格保密

待定

待定

对应会员信息被修改

varchar

255

自动输出

会员信息被严格保密

待定

待定

对应会员信息被删除

自动输出

会员信息被严格保密

待定

待定

表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;

Listusers=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

if(i>totalPages)break;

if(pageNo==i){

%>

 <%=i%> 

<%

}else{

%>

 

pageNo=<%=i%>"><%=i%> 

<%

}

}

%>

采用如上所示的分页算法。

4.7流程逻辑

图10:

会员管理模块流程图

4.8接口

图11:

会员管理模块界面

与本程序关联的User表:

图12:

User表的信息图

4.12测试计划

对本单元进行单元测试。

进行黑盒测试,检验能否实现功能。

输入正确的条件,预期结果,输出信息。

输入错误的条件,预期结果,无法输出信息,提示输入正确条件。

进行白盒测试,检验各程序路径是否能执行到。

 

5订单管理程序设计说明

5.1程序描述

订单管理程序功能的描述:

订单的信息全部通过终端保存在数据库服务器,管理员可以对这些信息进行增

加,修改和删除操作.软件应该提供对订单的增加和删除的操作.;会员可以通过登

录查看自己的订单信息及过去的交易记录

5.2功能

系统名称

BS网上商城

模块名称

订单模块

模块编号

T003

作者

XXX

日期

2011/7/16

模块简述

此模块用于对订单进行查看、修改、删除等

调用模块

订单的查看、修改、删除模块

被调用模块

输入

项目

产品的订单列表信息

格式

所有信息严格按照数据库中表的字段的数据类型填入

处理

当订单的信息通过系统调用查看、修改、删除时,对应的信息被数据库保存。

当提交的信息不成功是,提示相应的处理并返回

输出

原订单信息被新的信息代替,并保存在数据库

局部数据元素

约束条件

注释

涉及的表:

订单信息表(SalesOrder)

表7:

订单程序模块的IPO表

5.3性能

在执行数据(商品,订单,会员,管理员)增加的时候,不允许出现因为程序的原因导致增加操作失败,也不允许发生重复增加的数据;在执行数据删除操作的时候,不允许因为程序的原因发生多删除数据,删除失败的情况;数据的修改也要求保持对应的准确性;

管理员输入的精度要求主要取决于数据库的相关数据类型要求:

在数据库为系统管理员提供的多种视图中将有各类数据库对象的相关数据类型及精度要求。

管理员工作过程中可以利用工具或查询有关数据库对象的精度信息已决定输入的参数。

如果管理员输入的参数与要求不符将得到提示并重新进行操作。

用户输入精度的要求取决于相应功能所需参数的精度要求:

用户浏览的页面内如果需要用户输入相关的信息或参数将给出详细的数据类型说明,并且如果用户在非恶意的情况下

输入了错误的数据类型参数,系统将自动提示用户再次输入正确的参数

5.4输人项

名称

标识

数据类型

有效范围

输入方式

输入媒体

输入数据来源

安全保密条件

数量

频度

订单查看

varchar

255

手动输入

键盘、鼠标

数据库中的已有订单

订单会员信息被严格保密

待定

待定

指定一订单修改

varchar

255

手动输入

键盘、鼠标

数据库中已有订单

订单会员信息被严格保密

待定

待定

指定一订单删除

数据库中已有订单

订单会员信息被严格保密

待定

待定

表8:

订单程序模块的输入项信息表

5.5输出项

名称

标识

数据类型

有效范围

输出方式

输出媒体

对应图形符号说明

安全保密条件

数量

频度

订单信息被输出

varchar

255

自动输出

订单会员信息被严格保密

待定

待定

对应订单信息被修改

varchar

255

自动输出

订单会员信息被严格保密

待定

待定

对应订单信息被删除

自动输出

订单会员信息被严格保密

待定

待定

表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

Listorders=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;

try{

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("id"));

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功能

系统名称

BS网上商城

模块名称

类别管理模块

模块编号

T001

作者

XXX

日期

2011/7/16

模块简述

此模块用于对类别进行查看、增加、修改、删除等

调用模块

添加、查看、修改、删除模块

被调用模块

输入

项目

一个指定类别的信息或输入一个新的类别

格式

所有信息严格按照数据库中表的字段的数据类型填入

处理

当输入产品的类别信息通过系统调用查看、修改、添加、删除时,对应的信息被数据库保存。

当提交的信息不成功是,提示相应的处理并返回

输出

新产品类别被输入或者旧的产品类别信息被新的产品类别信息所代替并保存在数据库

局部数据元素

约束条件

注释

涉及的表:

类别表(Category)

表10:

类别管理程序模块的IPO表

6.3性能

在输入产品信息时严格执行数据库表所要求的精度,在执行数据

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1