《宠物商店详细设计说明书.doc》由会员分享,可在线阅读,更多相关《宠物商店详细设计说明书.doc(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、宠物商店详细说明书宠物商店详细设计说明书目录目录2i.引言41.1 编写目的41.2背景41.3项目训练的技能点41.4专业知识41.5整体的开发思路41.6界面交互设计4ii.总体设计42.1需求规定42.1.1项目管理42.2.1项目要求概述:42.2.2其他要求42.3接口42.4基本设计概念和流程42.4.1设计原则42.4.2设计概念4iii.系统功能设计43.1结构43.2类设计43.2.1总体结构43.3 主要功能设计及详细设计43.3.1系统启动43.3.2登录43.3.3宠物主人购买库存宠物43.3.4宠物主人购买新培育宠物43.4主要的类设计43.4.1根据数据库表创建实体
2、类43.4.2创建DAO接口和实现类43.4.3创建业务接口和实现类43.4.4优化业务接口4iv.概念结构设计44.1库表关系图44.1.1 库表描述44.1.2 数据库脚本4v.维护与扩展429i. 引言1.1 编写目的本详细设计说明书是针对项目案例宠物商店编写的. 计算机技术发展日新月异,在各行各业应用越来越广泛。人们越来越多的在网上购物,开发网上宠物购买可以使宠物买卖方便、快捷、费用低等有点,将人们从传统的宠物买卖方式中解脱出来,提高效率,帮助了解更多宠物的信息。1.2背景此项目由13届软件工程一班,实训时完成。软件是基于实训内容java和数据库。软件目前只能运行在Windows平台下
3、。软件用于方便人们快捷的从逛街式,转变成网上购买宠物,不仅可以避免外出,还可以具体了解宠物的信息。1.3项目训练的技能点 面向对象程序设计的思想 使用类图设计系统 Java集合存储和传输数据 Java异常处理 JDBC操作数据库 Oracle存储数据 DAO层的应用1.4专业知识面向对象的程序设计:即(Object-OrientedProgramming,简记为OOP)立意于创建软件重用代码,具备更好地模拟现实世界环境的能力,这使它被公认为是自上而下编程的优胜者。它通过给程序中加入扩展语句,把函数“封装”进编程所必需的“对象”中。面向对象的编程语言使得复杂的工作条理清晰、编写容易。Java:J
4、ava是一个由Sun公司开发而成的新一代编程语言。使用它可在各式各样不同机器、不同操作平台的网络环境中开发软件。Java正在逐步成为Internet应用的主要开发语言。JDBC:JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。DAO层:DAO(DataAccessObjects)数据访问对象是第一个面向对象的接口,它显露了M
5、icrosoftJet数据库引擎(由MicrosoftAccess所使用),并允许VisualBasic开发者通过ODBC象直接连接到其他数据库一样,直接连接到Access表。DAO最适用于单系统应用程序或小范围本地分布使用。1.5整体的开发思路系统开发步骤: 明确需求 设计数据库 设计技术框架 Java技术 数据访问层 编码顺序1) 系统启动2) 登录功能3) 各种宠物主人操作 4) 各种宠物商店操作1.6界面交互设计界面交互设计的原则:(1)统一性原则 界面风格统一 用相同方式展现相同类型的数据,如:日期类型 交互风格统一 用相同方式完成相同类型的操作,如:录入日期(2)美观性原则 界面美
6、观大方(3)易用性原则 操作方式自然、易理解系统功能结构: ii. 总体设计2.1需求规定2.1.1项目管理1、项目基础信息项目名称:宠物商店项目小组:孙明,黄慧芳,郑露,沈宪阳,郑鑫鑫,孙俊杰,季兵,叶浩东;项目时间:2016/1/1-2016/1/3项目承担:项目小组成员2、项目相关文档文档:详细设计说明书、实训课程报告;2.2系统概述2.2.1项目要求概述:l 在宠物商店里,宠物主人可以出卖、购买宠物l 每一笔买入、卖出的业务,店家都会记录在账l 商店可以根据需求自己培育宠物品种l 系统角色:宠物、主人、宠物商店、账目总体业务流程图2.2.2其他要求1、先进性:采用先进成熟的技术,确保系
7、统的先进性、经济性和实用性。2、安全可靠:平台提供的应用框架及平台本身提供应用安全保证,并可以和第三方安全手段,如认证、加密、电子签名等进行集成。必须保证数据的安全性和保密性。3、规范性:开发过程控制、开发技术、系统编码、文档应规范化,并遵循相应的国内外标准。开发结束时,提供必要的文档资料。4、可靠性:保证系统的可靠运行和在升级过程中的方便快捷。5、可扩充性:系统应当可以根据需求的变化,方便地进行功能的调整、增减,模块的升级和系统架构的逐步完善。提交相应的系统规范文档,应用单位能够进行必要的二次开发。6、界面友好、操作方便:操作界面要直观、简单、贴近实际,操作过程应当尽量简化,符合实际过程。身
8、份认证过程即要保证安全,也要尽量简化认证过程。7、可维护性:系统维护应当简单。8、集成性:平台应对基于平台开发的应用模块、权限控制、界面进行集成。9、操作系统:本软件支持Windows系统。2.3接口程序中实现的接口有:Accountable、Breadable、Buyable、PetFactory、PetOwnerService、PetStoreFactory、PetStoreService、Sellable、PetDao、PetOwnerDao、PetStoreDao、AccountDao2.4基本设计概念和流程2.4.1设计原则1、采用面向对象技术进行设计和开发。2、应用中间件技术,保证
9、系统的开放性和对技术发展的适应性。3、采用组件技术进行开发,提高系统可扩展性。4、科学划分信息块,方便快速查询,提高使用性。2.4.2设计概念(1) 在宠物商店里,宠物主人可以出卖、购买宠物(2) 每一笔买入、卖出的业务,店家都会记录在账(3) 商店可以根据需求自己培育宠物品种iii. 系统功能设计3.1结构本系统主要实现在线电子宠物商店的前台功能,可分为会员服务、宠物信息查询、宠物分类(新培育的宠物和库存宠物)、用户登陆、用户购买宠物、用户卖出宠物、交易账目等主要的功能模块。下图是系统流程图: 3.2类设计3.2.1总体结构总体类图3.3 主要功能设计及详细设计3.3.1系统启动 当我们进入
10、宠物商店时,我们有一个系统启动模块:在系统启动时,显示所有的宠物信息、宠物主人信息、宠物商店信息。系统启动后,提示选择登录模式 。(1)思路分析:DAO代码:PetDao:getAllPet() 查询所有宠物信息PetOwnerDao:getAllOwner() 查询所有宠物主人信息PetStoreDao:getAllStore() 查询所有宠物商店信息测试类startPetShop():获取相关信息并输出,提示选择登录模式main():调用startPetShop(),启动程序(2)重点使用JDBC访问Oracle数据库获取相关信息并遍历输出 如下图: 图 3-03.3.2登录在登陆这块模块
11、,输入用户名和密码,判断登录是否成功,如果成功,输出主人基本信息并提示选择相应操作。如果登录失败,提示确认用户名和密码后重新输入。我们以成功为例,主人成功登录后,可选择购买库存宠物,显示所有库存宠物列表供主人选择,输入宠物编号完成购买,购买成功将显示提示信息 。(1)思路分析DAO代码PetOwnerDao:selectOwner() 根据查询条件查询宠物主人信息Service代码PetOwnerService:login() 宠物主人登录测试类ownerLogin() :宠物主人登录startPetShop():如果选择主人登录,调用ownerLogin()main():调用startPet
12、Shop(),启动程序如下图:图 3-13.3.3宠物主人购买库存宠物主人成功登录后,可选择购买库存宠物,显示所有库存宠物列表供主人选择,输入宠物编号完成购买,购买成功将显示提示信息。(1)思路分析DAO代码Service代码查询所有库存宠物根据主人选择实现购买测试类ownerBuy():宠物主人购买宠物ownerLogin() :如果主人购买宠物,调用ownerBuy()(2)重点更新宠物信息:指定ownerid更新宠物主人信息:减少更新宠物商店信息:增加更新账目信息:添加新账目如下图: 图 3-23.3.4宠物主人购买新培育宠物主人成功登录后,可选择购买新培育宠物,显示所有新培育宠物列表主
13、人选择,输入宠物编号完成购买,购买成功将显示提示信息。思路分析实现步骤与购买库存宠物相同 购买库存宠物和新培育宠物属于两种不同的业务,在业务接口和实现类中应该定义不同的方法重用数据访问层代码宠物主人卖出宠物给商店显示主人的宠物列表,选择要卖出的宠物序号,确认卖出宠物,显示宠物商店列表,选择买家序号完成交易,交易成功将显示提示信息。1、思路分析(1)DAO代码(2)Service代码获得指定ID的宠物主人的所有宠物信息宠物主人向宠物商店卖出自己宠物(3)测试类ownerSell():宠物主人卖出宠物ownerLogin() :如果主人卖出宠物,调用ownerSell()2、重点根据主人选择实现购
14、买更新宠物信息:删除ownerid更新宠物主人信息:增加更新宠物商店信息:减少更新账目信息:添加新账目如下图:图 3-33.4主要的类设计3.4.1根据数据库表创建实体类实体类一般和数据库表对应,实体类的属性对应于表的字段,为四个数据库表分别创建实体类,实现数据库数据在各个层次的传输,四个实体类的名称可以定义为Pet、PetOwner、PetStore、Account。 宠物商店实体类:PetStore 宠物主人实体类:PetOwner 宠物实体类:Pet 宠物商店账目类:Account 图 3-53.4.2创建DAO接口和实现类采用面向接口编程的思想设计数据访问层,定义DAO接口和实现类,为
15、四个数据库表分别创建DAO接口和实现类,为了重用建立和关闭数据库的代码,创建BaseDao作为四个实现类的父类图3-63.4.3创建业务接口和实现类 宠物主人实现类:PetOwnerServiceImpl 宠物工厂实现类:PetFactoryImpl 宠物商店实现类:PetStoreServiceImpl 宠物商店工程实现类:PetStoreFactoryImpl图 3-73.4.4优化业务接口 我们按照“单一职能原则” 对业务接口定义进行优化,抽取出Buyable、Sellable、Breedable、Accountable等接口,PetOwnerService、PetStoreServic
16、e接口根据自身功能继承其中的一个或多个接口。宠物商店数据库操作类:PetStoreDaoImpl宠物主人数据库操作类:PetOwnerDaoImpl宠物数据库操作类:PetDaoImpl宠物商店账目信息数据库操作类 :AccountDaoImpliv. 概念结构设计4.1库表关系图4.1.1 库表描述名称实现宠物表Pet用户表PetOwner商店表PetStore1. 宠物表2. 主人表3商店表 4.1.2 数据库脚本CREATE TABLE PET(ID NUMBER,NAME VARCHAR2(50);TYPENAME VARCHAR(20);HEALTH NUMBER,LOVE NUMB
17、ER, BIRTHDAY DATE,OWNER_ID NUMBER,STORE_ID NUMBER);CREATE SEQUENCE SEQ_NAMESTATR WITH 1INCREMENT BY 1NOMAXVALUE CACHE 10;select to_char(BIRTHDAY,mm-dd-yyyy)from pet;insert into pet(ID,NAME,TYPENAME,LOVE,BITHDAY,OWNER_ID,STORE_ID)values(651,小花,狗狗,90,89,to_date(2015-02-14,yyyy-mm-dd),361,985);insert i
18、nto pet(ID,NAME,TYPENAME,LOVE,BITHDAY,OWNER_ID,STORE_ID)values(652,贝贝,喵咪,100,95,to_date(2015-05-05,yyyy-mm-dd),362,211);insert into pet(ID,NAME,TYPENAME,LOVE,BITHDAY,OWNER_ID,STORE_ID)values(653,小环,企鹅,98,100,to_date(2015-08-08,yyyy-mm-dd),363,212);insert into pet(ID,NAME,TYPENAME,LOVE,BITHDAY,OWNER_
19、ID,STORE_ID)values(654,麦克,鹦鹉,100,100,to_date(2015-09-09,yyyy-mm-dd),364,213);insert into pet(ID,NAME,TYPENAME,LOVE,BITHDAY,OWNER_ID,STORE_ID)values(655,爱丽丝,仓鼠,100,95,to_date(2015-10-01,yyyy-mm-dd),365,214);insert into pet(ID,NAME,TYPENAME,LOVE,BITHDAY,OWNER_ID,STORE_ID)values(656,旺财,狗狗,100,85,to_dat
20、e(2015-11-11,yyyy-mm-dd),366,215);insert into pet(ID,NAME,TYPENAME,LOVE,BITHDAY,OWNER_ID,STORE_ID)values(657,小白,蛇,100,75,to_date(201512-12,yyyy-mm-dd),367,216);SELECT * FROM PET;DELETE PET;create table Petowner(ID NUMBER,NAME VARCHAR2(50),PASSWORD VARCHAR2(50),MONEY NUMBER(10,2);insert into Petowner
21、(ID,NAME,PASSWORD,MONEY)values(361,小红,6661,150);insert into Petowner(ID,NAME,PASSWORD,MONEY)values(362,前前,6662,200);insert into Petowner(ID,NAME,PASSWORD,MONEY)values(363,小静,6663,80);insert into Petowner(ID,NAME,PASSWORD,MONEY)values(364,菲菲,6664,163);insert into Petowner(ID,NAME,PASSWORD,MONEY)value
22、s(365,夏雨,6665,45);select * from Petowner;delete Petowner;create table Petstore(ID NUMBER,NAME VARCHAR2(50),PASSWORD VARCHAR2(50),MONEY NUMBER(10,2);insert into Petstore(ID,NAME,PASSWORD,MONEY)values(001,安徽第一宠物店,1101,4300);insert into Petstore (ID,NAME,PASSWORD,BALANCE)values(002,北京西苑,1102,5507);inse
23、rt into Petstore(ID,NAME,PASSWORD,BALANCE)values(003,重庆观音桥,1103,8954);SELECT * FROM PETSTORE;DELETE PETSTORE;create table Account(ID NUMBER,DEAL_TYPE NUMBER,PET_ID NUMBER,SELLER_ID,BUYER_ID,NUMBER,PRICE NUMBER,DEAL_TIME DATE);v. 维护与扩展主要为对服务器上的数据库数据进行维护。可使用Oracle数据库的维护功能机制。例如,定期为数据库进行Backup,维护管理数据库死锁问题和维护数据库内数据的一致性等。