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