资源描述
1引言21.1编写目的21.2背景21.3定义21.4参考资料22程序系统的结构33程序1 (标识符)设计说明43.1程序描述43.2功能43.3性能43.4输人项43.5输出项53.6算法63.7流程逻辑63.8 接口83.9存储分配83.10注释设计83.11限制条件93.12测试计划93.13尚未解决的问题94程序2 (标识符)设计说明9详细设计说明书1引言1.1编写目的该阶段开发以正式进入软件的实际开发阶段,本阶段完成系统的详细设计并明确系统的 数据结构与软件结构。在软件设计阶段主要是把一个软件需求转化为软件表示的过程,这种表示只是描绘出软 件的总的概貌。本详细设计说明书的目的就是进一步细化软件设计阶段得出的软件总体概 貌,把它加工成在程序细节上非常接近于源程序的软件表示。软件开发小组的每一位参与开发成员应该阅读本说明,以清楚产品在技术方面的要求和 实现策略,本手册将进行技术评审和技术的可行性检查。1.2背景说明:A. 软件系统的名称:BS网上商城系统B. 任务提出者:BS电子商务公司开发者:LEI_SKY软件开发小组C. 本系统将是一个独立的系统,目前所产生的输出都是独立的本系统将使用MySql作为数据库的存储系统1.3定义A. .B/S (Brower/Server)B. .IIS 5.0 (Internet Information Server)C. .HTML ( Hypertext Markup Language,超文本标记语言)D. .CSS (Cascading Style Sheets,层叠样式表单)E. .JSP (Java Server Pages)1.4参考资料相关的文件包括:A.内部文件BS网上商城电子商务系统案例研究项目B. BS网上商城电子商务系统案例研究项目合同20110710 - 01C. BS网上商城电子商务系统案例研究项目可行性分析 参考资料:A. 国家标准软件需求说明书(GB856T88);B. 网站开发项目教程陈密方中国铁道出版社软件测试朱少名电子工业出版社合同:A.BS网上商城电子商务系统案例研究项目合同20110710 - 012程序系统的结构图2: BS网上商城后台功能结构图3产品管理程序设计说明3.1程序描述产品管理程序功能的描述:商品的种类信息,详细信息全部通过终端保存在数据库服务器,管理员可以对这 些信息进行增加,修改和删除操作.软件应该提供对管理员的增加,修改和删除的操 作。3.2功能调用模块被调用模块输入添加、查看、修改、删除、搜 索模块无项目格式一个指定产品的信息或添加一个新产品所有信息严格按照数据库中表的字段的数据类型填入处理输出局部数据元素约束条件当输入产品的信息通过系统调用查看、修改、添加、删除、搜查时,对应的信息被数据库 保存。当提交的信息不成功是,提示相应的处理并返回新产品被输入或者旧的产品信息被新的产品信息所代替并保存在数据库注释无涉及的表:产品信息表(Product)系统名称BS网上商城模块名称产品模块模块编号T001作者XXX日期2011/7/16模块简述此模块用于对产品进行增加、修改、删除、搜索等表1:产品信息管理程序模块IPO表3.3性能在输入产品信息时严格执行数据库表所要求的精度,在执行数据(商品,订单,会员,管理 员)增加的时候,不允许出现因为程序的原因导致增加操作失败,也不允许发生重复增加的数 据;在执行数据删除操作的时候,不允许因为程序的原因发生多删除数据,删除失败的情况;数 据的修改也要求保持对应的准确性;管理员输入的精度要求主要取决于数据库的相关数据类型要求:在数据库为系统管理员 提供的多种视图中将有各类数据库对象的相关数据类型及精度要求。管理员工作过程中可 以利用工具或查询有关数据库对象的精度信息已决定输入的参数。如果管理员输入的参数与 要求不符将得到提示并重新进行操作。用户输入精度的要求取决于相应功能所需参数的精度要求:用户浏览的页面内如果需 要用户输入相关的信息或参数将给出详细的数据类型说明,并且如果用户在非恶意的情况下 输入了错误的数据类型参数,系统将自动提示用户再次输入正确的参数3.4输人项名称标识数据类 型有效范围输入方 式输入媒 体输入数 据来源安全保 密条件数量频度新产品varchar255手动输入键盘、 鼠标商城新产品无待定待定指定以 产品修 改varchar255手动输入键盘、 鼠标数据库 中也有 产品无待定待定指定以 产品删 除数据库 中已有 产品无待定待定产品搜 索varchar255手动输入键盘、 鼠标数据库 中已有 产品无待定待定表2:输入项信息表3.5输出项名称标识数据类 型有效范围输出方 式输出媒 体对应图 形符号 说明安全保 密条件数量频度新产品 被添加varchar255自动输出无待定待定对应产 品被修 改varchar255自动输出无待定待定对应产 品被删 除自动输出无待定待定对应产 品被搜 索varchar255自动输出无待定待定表3 :输出项信息表36算法产品添加算法:function check() VarselectedCategorydocument.formAdd.categoryId.optionsdocument.formAdd.categoryId.selectedIndex;var selectedValue = selectedCategory.value;if(二级分类不等于2) alert(请选择第二级分类! ”);document.formAdd.categoryId.focus();return false; else selectedCategory.value =将二级分类的 pid 设为 0;return true;多个产品一块删除算法:String idArray = request.getParameterValues(id);if(idArray = null II idArray.length = 0) out.println(ID 号输入错误! ”);return;public void delete(String idArray) String conditionStr = where id in (;for (int i = 0; i |图8:产品模块界面 与本程序关联的Product表:栏位索引外键触发器选项注记容类型长度+遊位允许空L1idint110nam亡vardnar2550descrvardnar355-00normalpricedouble00rnermberpricedouble00pdatedatetime0匚 ategoryidint110图9: Product表信息图3.9存储分配本模块由及其自动分配内存。310注释设计1. 模块首部的注释:用户验证程序。2. 对调用函数的注释:调用加密函数MD5。311限制条件当系统第一次使用时,具有统一的用户ID和密码:超级用户和123456。在三次验证错 误后,系统自动关闭。312测试计划对本单元进行单元测试。进行黑盒测试,检验能否实现功能。输入正确的条件,预期结果,输出信息。输入错误 的条件,预期结果,无法输出信息,提示输入正确条件。进行白盒测试,检验各程序路径是否能执行到。313尚未解决的问题需求中的问题在本设计中已经全部实现,但是,基于一般的考虑,并且在开发工程中可能会出现功能不完善或者是功能模块缺少的等工程或者后期版本中增加的功能包括:1、公告通知模块;2、统计分析模块;3、广告模块;广告模块是整个网上商城系统中的盈利板块之一4、完善个人信息空间;增设空间留言、空间网页游戏、空间交友、产品分享、购买心得等板块,这样可以增加用户的在线时间,收录更多的好 友,更加方便的了解产品的信息。4用户管理程序设计说明4.1程序描述用户管理程序功能描述:会员的信息全部通过终端保存在数据库服务器,管理员可以对这些信息进行增加, 修改和删除操作.软件应该提供对会员的增加,修改和删除的操作;会员本身可以对自 身信息进行增加、查看、修改等功能4.2功能系统名称BS网上商城模块名称用户管理模块模块编号T002作者XXX日期2011/7/16模块简述此模块用于对用户信息进行查看、修改、删除等会员查看、修改、删除、搜索 模块调用模块被调用模块无输入项目格式会员的新信息或指定会员的信息所有信息严格按照数据库中表的字段的数据类型填入处理当输入会员的信息通过系统调用查看、修改、添加、删除时对应的信息被数据库保存。当提交的信息不成功是,提示相应的处理并返回输出新会员被输入或者旧的会员信息被新的会员信息所代替并保存在数据库或会员信息被删除局部数据元约束条件注释管理员通过后台登陆成功进入用户管理模块 涉及的表:会员信息表(User)表4:用户管理程序模块IPO表4.3性能在输入会员信息时严格执行数据库表所要求的精度,在执行数据(商品,订单,会员,管理 员)增加的时候,不允许出现因为程序的原因导致增加操作失败,也不允许发生重复增加的数 据;在执行数据删除操作的时候,不允许因为程序的原因发生多删除数据,删除失败的情况;数 据的修改也要求保持对应的准确性;管理员输入的精度要求主要取决于数据库的相关数据类型要求:在数据库为系统管理员 提供的多种视图中将有各类数据库对象的相关数据类型及精度要求。管理员工作过程中可 以利用工具或查询有关数据库对象的精度信息已决定输入的参数。如果管理员输入的参数与 要求不符将得到提示并重新进行操作。用户输入精度的要求取决于相应功能所需参数的精度要求:用户浏览的页面内如果需 要用户输入相关的信息或参数将给出详细的数据类型说明,并且如果用户在非恶意的情况下 输入了错误的数据类型参数,系统将自动提示用户再次输入正确的参数4.4输人项名称标识数据类 型有效范围输入方 式输入媒 体输入数 据来源安全保 密条件数量频度会员查 看varchar255手动输入键盘、 鼠标数据库 中的已 有会员会员信 息被严 格保密待定待定扌日定 会员修 改varchar255手动输入键盘、 鼠标数据库 中已有 会员会员信 息被严 格保密待定待定扌日定 会员删 除数据库 中已有 会员会员信 息被严 格保密待定待定表5:用户管理程序模块输入信息表4.5输出项名称标识数据类 型有效范围输出方 式输出媒 体对应图 形符号 说明安全保 密条件数量频度会员信 息被输 出varchar255自动输出会员信 息被严 格保密待定待定对应会 员信息 被修改varchar255自动输出会员信 息被严 格保密待定待定对应会 员信息 被删除自动输出会员信 息被严 格保密待定待定表6:用户管理程序模块输出信息表4.6算法会员列表信息算法:f inal int PAGE_SIZE = 2; /海页显示多少条记录final int PAGES_PER_TIME = 10;/每次显示多少个页码链接 int pageNo = 1;String strPageNo = request.getParameter(pageNo);if (strPageNo != null & !strPageNo.trim().equals() try pageNo = Integer.parseInt(strPageNo); catch (NumberFormatException e) pageNo = 1;if (pageNo users = new ArrayListvUser();int totalRecords = User.getUsers(users, pageNo, PAGE_SIZE);int totalPages = (totalRecords + PAGE_SIZE - 1) / PAGE_SIZE;if (pageNo totalPages) pageNo = totalPages; totalPages) break;if(pageNo = i) %&n bsp;vuvbx%=i %v/bx/u &n bsp;v/td&n bsp;v%=i%v/a 采用如上所示的分页算法。4.7流程逻辑图io:会员管理模块流程图4.8 接口*阳徑JO .FftfS* r=aM*+ !=&*q 订 *VI3*订中即事 二巴底畫忌HI户工in 口庭盂电砥注ft Ifleryanki1nul2U1H0I7-1Q 2O;llr57nullWf.surJ-iKln23011417-13 17:ifi!.3?iTsngdTQoegQMl-|QU*QCKrgpWGhat*m 1丨楚 衣丨取If吊万贰:痴 冏戸危-1191 - EfIBffl -WEfl402Z I I/IV32 I X| D I 7 I 0 I 9 I ID I I | 图11:会员管理模块界面与本程序关联的User表:栏位索引|外谨|触岌器选顷注记茗类型长度十进f立1idint110usernamevarchar4C0passwordvarchar160phonevarthar400addrvarchar竽0dnt 亡datetim 亡00图12: User表的信息图4.9存储分配本模块由及其自动分配内存。4.10注释设计1. 模块首部的注释:用户验证程序。2. 对调用函数的注释:调用加密函数MD5。411限制条件当系统第一次使用时,具有统一的用户ID和密码:超级用户和123456。在三次验证错 误后,系统自动关闭。412测试计划对本单元进行单元测试。进行黑盒测试,检验能否实现功能。输入正确的条件,预期结果,输出信息。输入错误 的条件,预期结果,无法输出信息,提示输入正确条件。进行白盒测试,检验各程序路径是否能执行到。413尚未解决的问题需求中的问题在本设计中已经全部实现,但是,基于一般的考虑,并且在开发工程中可能会出现功能不完善或者是功能模块缺少的等工程或者后期版本中增加的功能包括:1、公告通知模块;2、统计分析模块;3、广告模块;广告模块是整个网上商城系统中的盈利板块之一4、完善个人信息空间;增设空间留言、空间网页游戏、空间交友、产品分享、购买心得等板块,这样可以增加用户的在线时间,收录更多的好 友,更加方便的了解产品的信息。5订单管理程序设计说明51程序描述订单管理程序功能的描述:订单的信息全部通过终端保存在数据库服务器,管理员可以对这些信息进行增 力口,修改和删除操作.软件应该提供对订单的增加和删除的操作.;会员可以通过登 录查看自己的订单信息及过去的交易记录5.2功能系统名称BS网上商城模块名称订单模块模块编号T003作者XXX日期2011/7/16此模块用于对订单进行查看、修改、删除等模块简述 调用模块 被调用模块订单的查看、修改、删除模块 无输入项目格式产品的订单列表信息所有信息严格按照数据库中表的字段的数据类型填入处理输出局部数据元素约束条件当订单的信息通过系统调用查看、修改、删除时,对应的信息被数据库保存。 当提交的信息不成功是,提示相应的处理并返回原订单信息被新的信息代替,并保存在数据库注释无涉及的表:订单信息表(SalesOrder)表7:订单程序模块的IPO表5.3性能在执行数据(商品,订单,会员,管理员)增加的时候,不允许出现因为程序的原因导致增加 操作失败,也不允许发生重复增加的数据;在执行数据删除操作的时候,不允许因为程序的原 因发生多删除数据,删除失败的情况;数据的修改也要求保持对应的准确性;管理员输入的精度要求主要取决于数据库的相关数据类型要求:在数据库为系统管理员 提供的多种视图中将有各类数据库对象的相关数据类型及精度要求。管理员工作过程中可 以利用工具或查询有关数据库对象的精度信息已决定输入的参数。如果管理员输入的参数与 要求不符将得到提示并重新进行操作。用户输入精度的要求取决于相应功能所需参数的精度要求:用户浏览的页面内如果需 要用户输入相关的信息或参数将给出详细的数据类型说明,并且如果用户在非恶意的情况下 输入了错误的数据类型参数,系统将自动提示用户再次输入正确的参数5.4输人项名称标识数据类 型有效范围输入方 式输入媒 体输入数 据来源安全保 密条件数量频度订单查看varchar255手动输入键盘、 鼠标数据库 中的已 有订单订单会 员信息 被严格 保密待定待定扌日定 订单修 改varchar255手动输入键盘、 鼠标数据库 中已有 订单订单会 员信息 被严格 保密待定待定扌日定 订单删 除数据库 中已有 订单订单会 员信息 被严格 保密待定待定表8:订单程序模块的输入项信息表5.5输出项名称标识数据类 型有效范围输出方 式输出媒 体对应图 形符号 说明安全保 密条件数量频度订单信 息被输varchar255自动输出订单会 员信息待定待定出被严格保密对应订 单信息 被修改varchar255自动输出订单会 员信息 被严格 保密待定待定对应订 单信息 被删除自动输出订单会 员信息 被严格 保密待定待定表9:订单程序模块的输出向信息表56算法订单列表所用到的算法:分页算法%String strPageNo = request.getParameter(pageno);int pageNo = 1;if(strPageNo != null) pageNo = Integer.parseInt(strPageNo);if(pageNo orders = new ArrayListvSalesOrder();int totalRecords = OrderMgr.getInstance().getOrders(orders, pageNo, PAGE_SIZE);int totalPages = (totalRecords + PAGE_SIZE - 1) / PAGE_SIZE;if(pageNo totalPages) pageNo = totalPages;%按id进行展现算法:SalesOrder so = OrderMgr.getInstance().loadById(uid);public SalesOrder loadById(int id) Connection conn = DB.getConn();Statement stmt = DB.getStatement(conn);ResultSet rs = null;SalesOrder so = null;try String sql = select salesorder.id, salesorder.userid, salesorder.odate, salesorder.addr, salesorder.status , +user.id uid, user.username, user.password, user.addr uaddr, user.phone, user.rdate from salesorder +join user on (salesorder.userid = user.id) where salesorder.id = + id;rs = DB.getResultSet(stmt, sql);if(rs.next() User u = new User();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 = new SalesOrder();so.setId(rs.getInt(id);so.setAddr(rs.getString(addr);so.setODate(rs.getTimestamp(odate);so.setStatus(rs.getInt(status);so.setUser(u); catch (SQLException e) e.printStackTrace(); finally DB.close(rs);DB.close(stmt);DB.close(conn);return so;5.7流程逻辑图13:订单管理程序模块流程图5.8 接口*用戶刃表IB ostrnane- bdJr odartsratrusFliciyanLeL niJT|2rai-0T-16 18:33:3LO|D打豆砺砺 j3jSliflT 短JT王T王三I 最后一F*曲廉LJ&灯单用-订单W*二旳图14:产品模块界面与本程序关联的salesorder表:栏位I索引I外键I触发器I迭项I注活容类型长度+曲立允许空?1kidint11us&ridint11addrvardnar2550odatedatetime00statusint110*图15: salesorder表的信息图5.9存储分配本模块由及其自动分配内存。510注释设计1. 模块首部的注释:用户验证程序。2. 对调用函数的注释:调用加密函数MD5。511限制条件当系统第一次使用时,具有统一的用户ID和密码:超级用户和123456。在三次验证错 误后,系统自动关闭。512测试计划对本单元进行单元测试。进行黑盒测试,检验能否实现功能。输入正确的条件,预期结果,输出信息。输入错误 的条件,预期结果,无法输出信息,提示输入正确条件。进行白盒测试,检验各程序路径是否能执行到。513尚未解决的问题需求中的问题在本设计中已经全部实现,但是,基于一般的考虑,并且在开发工程中可能会出现功能不完善或者是功能模块缺少的等工程或者后期版本中增加的功能包括:1、公告通知模块;2、统计分析模块;3、广告模块;广告模块是整个网上商城系统中的盈利板块之一4、完善个人信息空间;增设空间留言、空间网页游戏、空间交友、产品分享、购买心得等板块,这样可以增加用户的在线时间,收录更多的好 友,更加方便的了解产品的信息。6类别管理程序设计说明6.1程序描述类别管理程序功能的描述:商品的种类信息,详细信息全部通过终端保存在数据库服务器,管理员可以对这 些信息进行增加,修改和删除操作.软件详细展示商品的类别信息。并且商品的添加必 须在二级子类别及以下添加。一个指定类别的信息或输入一个新的类别所有信息严格按照数据库中表的字段的数据类型填入输入6.2功能处理输出局部数据元素约束条件注释当输入产品的类别信息通过系统调用查看、修改、添加、删除时,对应的信息被数据库保 存。当提交的信息不成功是,提示相应的处理并返回新产品类别被输入或者旧的产品类别信息被新的产品类别信息所代替并保存在数据库无涉及的表:类另9表(Category)系统名称BS网上商城模块名称类别管理模块模块编号T001作者XXX日期2011/7/16此模块用于对类别进行查看、增加、修改、删除等模块简述 调用模块 被调用模块添加、查看、修改、删除模块 无项目格式表io:类别管理程序模块的ipo表6.3性能在输入产品信息时严格执行数据库表所要求的精度,在执行数据(商品,订单,会员,管理 员)增加的时候,不允许出现因为程序的原因导致增加操作失败,也不允许发生重复增加的数 据;在执行数据删除操作的时候,不允许因为程序的原因发生多删除数据,删除失败的情况;数 据的修改也要求保持对应的准确性;管理员输入的精度要求主要取决于数据库的相关数据类型要求:在数据库为系统管理员 提供的多种视图中将有各类数据库对象的相关数据类型及精度要求。管理员工作过程中可 以利用工具或查询有关数据库对象的精度信息已决定输入的参数。如果管理员输入的参数与 要求不符将得到提示并重新进行操作。用户输入精度的要求取决于相应功能所需参数的精度要求:用户浏览的页面内如果需 要用户输入相关的信息或参数将给出详细的数据类型说明,并且如果用户在非恶意的情况下 输入了错误的数据类型参数,系统将自动提示用户再次输入正确的参数6.4输人项名称标识数据类 型有效范围输入方 式输入媒 体输入数 据来源安全保 密条件数量频度新产品类别varchar255手动输入键盘、 鼠标商品新类别无待定待定指定以 产品修 改varchar255手动输入键盘、 鼠标数据库 中已有 产品类 别无待定待定指定以 产品删 除数据库 中已有 产品类 别无待定待定表11:类别管理程序模块的输入项信息表6.5输出项名称标识数据类 型有效范围输出方 式输出媒 体对应图 形符号 说明安全保 密条件数量频度新类别 被添加varchar255自动输出无待定待定对应类 别被修 改varchar255自动输出无待定待定对应类 别被删 除自动输出无待定待定表12:类别管理程序模块的输出项信息表66算法类别列表中用到的特殊算法:for (int i = 0; i categories.size(); i+) Category c = categories.get(i); String preStr =;for(int j=l; jvc.getGrade(); j+) preStr +=-;判断当前的id的类别的grade是第几级,如果是第0级则直接现在当前的类别名,如 果是第1级则在当前类别名前加“-”输出,每增加一个级别相应的在加“-”,但是级 别数不超过2。6.7流程逻辑类别管理图16:产品类别模块流程图6.8 接口*用円廉*整變*亶彌用翻 q p品腫* r=ffiW q 订 *WIV“ ig爆 上追计号折 送 HIFflM 网PIDsa1曰團nnhadriQ1DOOO1t;理熄扇淖所#畀2贸宣一主产力nzoooo13-Bi阳玄兀葱砌子2201002申I磁I图17:类别模块界面与本程序关联的Category表:栏位索引|外谨|触发器选顷注记皂类型长度+選位允许空九1idint11.0pidint110namevardiar2550descrvarchar25 50noint110gradeint110图18:Category表的信息图6.9存储分配本模块由及其自动分配内存。610注释设计1. 模块首部的注释:用户验证程序。2. 对调用函数的注释:调用加密函数MD5。611限制条件当系统第一次使用时,具有统一的用户ID和密码:超级用户和123456。在三次验证错 误后,系统自动关闭。612测试计划对本单元进行单元测试。进行黑盒测试,检验能否实现功能。输入正确的条件,预期结果,输出信息。输入错误 的条件,预期结果,无法输出信息,提示输入正确条件。进行白盒测试,检验各程序路径是否能执行到。613尚未解决的问题需求中的问题在本设计中已经全部实现,但是,基于一般的考虑,并且在开发工程中可能会出现功能不完善或者是功能模块缺少的等工程或者后期版本中增加的功能包括:1、公告通知模块;2、统计分析模块;3、广告模块;广告模块是整个网上商城系统中的盈利板块之一4、完善个人信息空间;增设空间留言、空间网页游戏、空间交友、产品分享、购买心得等板块,这样可以增加用户的在线时间,收录更多的好 友,更加方便的了解产品的信息。最后:本系统由于经费问题,对界面没有特别人性化的设计。在后续的版本中我们将会改善这个问题。
展开阅读全文