《网上书店--软件工程课程设计报告(共22页).doc》由会员分享,可在线阅读,更多相关《网上书店--软件工程课程设计报告(共22页).doc(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上 软件工程课程设计报告( 2013 - 2014 学年 第二学期)课程名称: 软件工程课程设计 题 目: 网上书店 院 系: 计算机学院 班 级: 软件(.NET)12-2班 组 长: 黄金磊 组 员:焦雷阳、师飞、顾鹏翔、吕四凯、路志恒指导教师: 安吉宇 小组成绩: 日期:2014 年 6月 20日软件工程课程设计任 务 书一、 目的、要求通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力。具体如下:1. 学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设计,编码和测试
2、方面的知识;2. 熟悉自动化的软件开发工具Rational Rose,并将其运用于软件开发的全过程;3. 进一步加强和提高软件工程文档的编写能力;4. 培养协作能力和团队精神。二、 主要内容1 运用面向对象技术、UML及可视化的建模工具完成系统的需求分析与设计。2 使用JAVA语言进行代码编写。3 运用MySql进行数据存储,读取。三、任务分配任务负责人参与人备注问题定义、可行性研究顾鹏翔顾鹏翔、路志恒需求分析师飞师飞、焦雷阳概要设计详细设计吕四凯吕四凯、黄金磊编码、测试黄金磊黄金磊、顾鹏翔摘要:随着网络信息的发展,网络在人们生活中的应用越来越广泛。人们越来越想在最短的时间内购买到自己所需的图
3、书。但书目的繁多,给人们在繁忙的工作生活中购书带来了很大的麻烦,于是网上购书便成了人们向往的事情,此系统的开发为人们带来了很大的方便,使他们足不出户就可以轻轻松松地买到自己想要的书,既省时又省力。在电子商务网站中,网上书店是目前应用最广、最成功的典范之一。通过它用户可以在网络上通过Internet,突破时间和空间的限制而实现网上购书。网上书店的崛起对传统的图书流通体系产生了强烈的冲击,有效地缩短了图书流通发行环节,将广大读者、图书、出版者、发行者紧密地结合在一起,大大提高了图书流通率。它有着经营成本低、库存是虚拟的、用户检索方便、地域限制少等特点。本系统运用面向对象技术、UML及可视化的建模工
4、具Rational Rose 2007及2003完成系统的需求分析与设计。并且以JSP为主要制作工具,实现了用户登陆、验证身份及用户数据的采集、书籍的预览查询、对书籍的购买通过购物车实现。关键词:网上书店,面向对象,Rational Rose一、课程设计的目的与要求通过软件开发的实践训练,使学生进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力。具体如下:1. 学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设计,编码和测试方面的知识;2. 熟悉自动化的软件开发工具Rational Rose,并将其运用于软件开发的全过程
5、;3. 进一步加强和提高软件工程文档的编写能力;4. 培养协作能力和团队精神。二、设计正文1. 概述1.1 课题描述随着网络信息的发展,网络在人们生活中的应用越来越广泛。人们越来越想在最短的时间内购买到自己所需的图书。但书目的繁多,给人们在繁忙的工作生活中购书带来了很大的麻烦,于是网上购书便成了人们向往的事情,此系统的开发为人们带来了很大的方便,使他们足不出户就可以轻轻松松地买到自己想要的书,既省时又省力。1.2 系统目标网上书店既可以避免书目订货的局限和盲目,又可以克服看样订货投入大,费用高,管理难的不足,而且网上选择范围广能直观看样,可浏览内容,可随时添订,结算及时,快捷方便,周转高速。这
6、些优势是其它难以达到的。图书网上交易是图书销售领域未来发展之必然,也是出版发行业摆脱困境,建立新的,繁荣出版,繁荣市场的必由之路。1.3 环境a) 操作系统: Windows 7, Windows XP,Vistab) 使用软件:代码编写:JSP数据库:MYSQL建模工具:Rational Rose文档编写:Microsoft Word 2007.c) 开发语言:JSP,JAVA2. 系统需求分析网上书店是一种高质量,更快捷,更方便的购书方式。网上书店不仅可用于图书的在线销售,也有音碟、影碟的在线销售。而且网站式的书店对图书的管理更加合理化,信息化。售书的同时还具有书籍类商品管理、购物车、订单
7、管理,非常灵活的网站内容和文章管理功能。根据宾馆的具体情况,系统的主要功能包括:1 用户功能 :(1) 注册功能:注册、登录、退出、个人管理(2) 图书选购:浏览图书、购物车得管理(3) 订单的管理:查看订单、修改订单、撤销订单2 管理员功能:(1) 登录(2) 用户管理:删除用户、查询用户(3) 图书管理:添加图书、删除图书、修改图书、查询图书(4) 订单管理:查询订单、确认订单、删除订单2.1 用例图a) 管理者用例:1.登录:管理员登录。图表 a.1管理者登录用例图2.订单管理:包括对订单的增加删除以及查询订单功能。图表 a.2管理者对订单管理用例图3.图书管理:对图书的查询(通过年份、
8、书名、作者查询)、删除、添加以及对图书的修改。图表 a.3管理者对图书管理用例图.4.用户管理:对用户的查询,删除用户。图表 a.4管理者对用户管理用例图a)b) 客户用例图1.登录:用户登录。图表 b.1客户登录用例图2.订单管理:让用户可以对自己订单进行查看、撤销、订单的查询、订单的日期查询、修改订单等等。图表 b.2客户对订单管理用例图3.图书选购:通过刘丹图书的信息,当需要购买时创建购物车,通过购物车来进行对图书进行浏览、删除以及订单的生成和数量的修改等等。图表 b.3客户图书选购用例图4.注册:用户的注册。图表b.4客户注册用例图2.2 类图系统采用MVC三层架构,另将数据库操作提取
9、为单独一层。a) 视图层:控制用户界面,及用户与系统的交互,此处省略。b) 控制器层:控制具体业务。PersonRrcControl:控制管理员及前台人员。UserAction:用户进行对网页的浏览以及对图书的选购。AdminAction:图书管理者对用户订单的处理。图表 1 控制层类图c) 业务逻辑层: 包括登录,图书管理以及订单处理等等。图表 2 业务逻辑层类图d) 持久层:控制数据库的增删查改操作。图表 3 持久层类图系统中用到的所有模型类图如下:Manager:系统管理员,字段包括管理者得等级。User:用户,字段包括用户身份姓名、密码。Order:订单,字段包括订单号、订单人的姓名、
10、订单的花费、订购人的手机号、订单的日期、订单的状态。Book:图书信息,字段包括图书号、图书名、作者名、图书价钱、图书的类型、图书的简介、图书的出版日期。图表 4 模型类图2.3 顺序图a) 管理者进行登录:管理者通过进行登录的动作响应(LoginAction),并且调用了登录服务函数(LoginService),通过姓名密码来对Person类进行核对来确定是否成功登录。图表 a 管理者进行登录顺序图b) 管理者对图书管理:这个顺序图里,由于功能较多用BookService()函数来进行查询图书、删除图书、添加图书、修改图书等等来进行对图书的管理,最后更行了BookDao。图表 b 登录者对图
11、书管理顺序图c) 用户订单处理:用户通过UserAction进行对图书的查找,并且通过OrderService来进行对需要的图书加入购物车,进行对图书的修改等等,最终确定订单后对OrderDao进行结账。图表 c 用户订单处理顺序图3. 系统总体设计系统模块图:网上书店用户系统管理员系统注册登录图书选购订单管理注册登录退出浏览图书购物车管理选购图书修改订单撤销订单查看订单登录用户管理图书管理订单管理个人管理密码修改删除用户添加图书删除图书修改图书查询图书确认订单删除订单查询用户查询订单删除物品修改数量查看详细信息查看详细信息生成订单1.1 设计数据管理子系统用户表:User(username,
12、password)管理员表:Admin(adminname,adminpsw)书籍表:Book(bookid,bookname,bookauthor,price,publish,publishtime,serialnum,info)订单表:Orders(orderid,username,ordernum,expense,address,phonenum,ordertime);1.2 设计人机交互子系统1) 管理者登录页面:2) 管理员添加书籍界面:3) 用户浏览图书页面4) 购物车页面4. 详细设计访问首页点击购物按钮进入ShoppingAction检查Session创建Shopcart添加图
13、书浏览购物车不存在购物车存在5. 系统实现1) 购物车类import java.util.*;import com.my.bookstore.model.Bookpublic class ShoppingCartMap itemMap = new HashMap();double price = 0;public ShoppingCart()public void updatePrice()price = 0;Iterator it = itemMap.keySet().iterator();while(it.hasNext()Book b = it.next();price = price
14、+ b.getPrice();public void addItem(Book book)if(itemMap.containsKey(book)int num = itemMap.get(book);itemMap.put(book, num + 1); else itemMap.put(book, 1);updatePrice();public void removeItem(Book book)itemMap.remove(book);updatePrice();public void print()Iterator it = itemMap.keySet().iterator();wh
15、ile(it.hasNext()Book b = it.next();System.out.println(b.getBookname()+:+itemMap.get(b);2) 购物车Actionpublic class ShopcartAction extends ActionSupportint bookid;String command;BookService bookService = new BookService();Overridepublic String execute() throws Exception/ TODO Auto-generated method stub/
16、*add item*/HttpSession session = ServletActionContext.getRequest().getSession();if(command.equals(show)ShoppingCart cart = (ShoppingCart)session.getAttribute(cart) ;if(cart = null)cart = new ShoppingCart();session.setAttribute(cart, cart);if(command.equals(add)ShoppingCart cart = (ShoppingCart)sessi
17、on.getAttribute(cart) ;if(cart = null)cart = new ShoppingCart();cart.addItem(getBookService().getBookById(getBookid();session.setAttribute(cart, cart); else cart.addItem(getBookService().getBookById(getBookid();session.setAttribute(cart, cart);/*delete item*/if(command.equals(delete)ShoppingCart car
18、t = (ShoppingCart)session.getAttribute(cart) ;cart.removeItem(bookService.getBookById(bookid);return SUCCESS;6. 测试1) 测试管理员登录:Admin登录成功界面2) 测试管理员添加书籍1. 管理员进入添加书籍界面,输入书籍信息。2.数据库变化3.首页变化3) 测试用户点击购买按钮1. 用户在首页点击购买按钮后进入购物车界面,用例中用户购买了设计模式。2.用户返回首页继续选择书籍。三、课程设计总结或结论通过这次课设,我们通过了市场调研以及从网上收集信息我们知道了JSP网上书店,包括其他
19、类型的网上书店,都是电子商务的传统的应用。电子商务是计算机网络的又一次的革命,旨在通过电子手段建立一种新的经济次序,它不仅涉及电子技术和商业交易本身,而且涉及到诸如金融、税务、教育等社会其他层面。从微观角度说,电子商务是指各种具有商业活动能力的实体(生产企业、商贸企业、金融机构、政府机构、个人消费等)利用网络和先进的数字化传媒技术进行的各项商业贸易活动,这里要强调两点:一是活动要有商业背景;一是网络化和数字化。这让我们深深的了解到了做开发之前对这项开发的背景了解的重要性,只有通过对背景的深刻了解,我们才能保证开发之后有一定的市场。特别是通过一定人数的市场的调研,只要充分了解到了大多数人的具体需
20、求才能够对具体的设计进行正确的建模。在开发设计的过程中,曾经出现了一些问题,通过和同学交流以及网上搜索信息,都已经解决,实现了最终的目标。在进行编码之前,对于需求分析很重要,我们通过对网络充分的收集信息,进而对模块划分做了充分的讨论。虽然前期出来一些模块构建的分歧,但是我们后来积极基于客户的方面把意见达成了统一。在画类图、用例图以及顺序图都是基于现实客户以及管理的需要,进行符合实际的画图,花费了很长时间对其设计。明白了开发编码不是全部,前面的设计也是非常耗时耗力,需要我们积极参与和注重分析。在开发的过程中,也曾经感觉到代码的凌乱复杂没有规律。在对书中内容进行系统地了解后,终于明白采用三层架构的
21、技术,并且使用打包的方法和头文件的提取,确保了代码的简洁明快,并提高了代码的可重用行。整个开发过程,努力贴近软件工程的思想,通过前期可行性分析,需求分析,进入到概要设计,然后总体详细设计,最后代码产生后,亦进行白盒测试。这个过程中,积极学习,尽量做到举一反三,一小见大,在开发过程中,了解掌握了JAVA的基本构架和设计思想,开发流程。到目前为止,已经明晰了JAVA的总体思想。在未来的时间里,详细这次课设打下了基础,能让我们进一步对和编程有了进一步的提升。四、参考文献作者1郑人杰,作者2 马素霞, 作者3殷人昆 书 名: 软件工程概论 : 出版时间: 2010年03月作者1蔡敏,作者2黄炳强 书名:UML 基础与ROSE 建模教程 出版社:人民邮电出版社出版日期: 2006-01-01专心-专注-专业