宠物商店详细设计说明书.docx
《宠物商店详细设计说明书.docx》由会员分享,可在线阅读,更多相关《宠物商店详细设计说明书.docx(19页珍藏版)》请在冰豆网上搜索。
![宠物商店详细设计说明书.docx](https://file1.bdocx.com/fileroot1/2022-11/30/5bb5c087-6db6-4f31-896b-7090f3b1945b/5bb5c087-6db6-4f31-896b-7090f3b1945b1.gif)
宠物商店详细设计说明书
宠
物
商
店
详
细
设
计
说
明
书
i.引言
1.1编写目的
本详细设计说明书是针对工程案例宠物商店编写的.计算机技术开展日新月异,在各行各业应用越来越广泛。
人们越来越多的在网上购物,开发网上宠物购置可以使宠物买卖方便、快捷、费用低等有点,将人们从传统的宠物买卖方式中解脱出来,提高效率,帮助了解更多宠物的信息。
1.2背景
此工程由13届软件工程一班,实训时完成。
软件是基于实训容——java和数据库。
软件目前只能运行在Windows平台下。
软件用于方便人们快捷的从逛街式,转变成网上购置宠物,不仅可以防止外出,还可以具体了解宠物的信息。
1.3工程训练的技能点
1面向对象程序设计的思想
2使用类图设计系统
3Java集合存储和传输数据
4Java异常处理
5JDBC操作数据库
6Oracle存储数据
7DAO层的应用
1.4专业知识
面向对象的程序设计:
即(Object-OrientedProgramming,简记为OOP)立意于创立软件重用代码,具备更好地模拟现实世界环境的能力,这使它被公认为是自上而下编程的优胜者。
它通过给程序中参加扩展语句,把函数“封装〞进编程所必需的“对象〞中。
面向对象的编程语言使得复杂的工作条理清晰、编写容易。
Java:
Java是一个由Sun公司开发而成的新一代编程语言。
使用它可在各式各样不同机器、不同操作平台的网络环境中开发软件。
Java正在逐步成为Internet应用的主要开发语言。
JDBC:
JDBC〔JavaDataBaseConnectivity,java数据库连接〕是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。
DAO层:
DAO(DataAccessObjects)数据访问对象是第一个面向对象的接口,它显露了MicrosoftJet数据库引擎〔由MicrosoftAccess所使用〕,并允许VisualBasic开发者通过ODBC象直接连接到其他数据库一样,直接连接到Access表。
DAO最适用于单系统应用程序或小围本地分布使用。
1.5整体的开发思路
系统开发步骤:
8明确需求
9设计数据库
10设计技术框架
11Java技术
12数据访问层
13编码顺序
1)系统启动
2)登录功能
3)各种宠物主人操作
4)各种宠物商店操作
1.6界面交互设计
界面交互设计的原那么:
〔1〕统一性原那么
①界面风格统一
用一样方式展现一样类型的数据,如:
日期类型
②交互风格统一
用一样方式完成一样类型
的操作,如:
录入日期
〔2〕美观性原那么
界面美观大方
〔3〕易用性原那么
操作方式自然、易理解
系统功能构造:
ii.总体设计
2.1需求规定
2.1.1工程管理
1、工程根底信息
工程名称:
宠物商店
工程小组:
明,黄慧芳,露,宪阳,鑫鑫,俊杰,季兵,叶浩东;
工程时间:
2016/1/1---2016/1/3
工程承当:
工程小组成员
2、工程相关文档
文档:
详细设计说明书、实训课程报告;
2.2系统概述
2.2.1工程要求概述:
●在宠物商店里,宠物主人可以出卖、购置宠物
●每一笔买入、卖出的业务,店家都会记录在账
●商店可以根据需求自己培育宠物品种
●系统角色:
宠物、主人、宠物商店、账目
总体业务流程图
2.2.2其他要求
1、先进性:
采用先进成熟的技术,确保系统的先进性、经济性和实用性。
2、平安可靠:
平台提供的应用框架及平台本身提供给用平安保证,并可以和第三方平安手段,如认证、加密、电子签名等进展集成。
必须保证数据的平安性和性。
3、规性:
开发过程控制、开发技术、系统编码、文档应规化,并遵循相应的国外标准。
开发完毕时,提供必要的文档资料。
4、可靠性:
保证系统的可靠运行和在升级过程中的方便快捷。
5、可扩大性:
系统应当可以根据需求的变化,方便地进展功能的调整、增减,模块的升级和系统架构的逐步完善。
提交相应的系统规文档,应用单位能够进展必要的二次开发。
6、界面友好、操作方便:
操作界面要直观、简单、贴近实际,操作过程应当尽量简化,符合实际过程。
身份认证过程即要保证平安,也要尽量简化认证过程。
7、可维护性:
系统维护应当简单。
8、集成性:
平台应对基于平台开发的应用模块、权限控制、界面进展集成。
9、操作系统:
本软件支持Windows系统。
2.3接口
程序中实现的接口有:
Accountable、Breadable、Buyable、PetFactory、
PetOwnerService、PetStoreFactory、PetStoreService、Sellable、PetDao、PetOwnerDao、PetStoreDao、AccountDao
2.4根本设计概念和流程
2.4.1设计原那么
1、采用面向对象技术进展设计和开发。
2、应用中间件技术,保证系统的开放性和对技术开展的适应性。
3、采用组件技术进展开发,提高系统可扩展性。
4、科学划分信息块,方便快速查询,提高使用性。
2.4.2设计概念
(1)在宠物商店里,宠物主人可以出卖、购置宠物
(2)每一笔买入、卖出的业务,店家都会记录在账
(3)商店可以根据需求自己培育宠物品种
iii.系统功能设计
3.1构造
本系统主要实现在线电子宠物商店的前台功能,可分为会员效劳、宠物信息查询、宠物分类〔新培育的宠物和库存宠物〕、用户登陆、用户购置宠物、用户卖出宠物、交易账目等主要的功能模块。
下列图是系统流程图:
3.2类设计
3.2.1总体构造
总体类图
3.3主要功能设计及详细设计
3.3.1系统启动
当我们进入宠物商店时,我们有一个系统启动模块:
在系统启动时,显示所有的宠物信息、宠物主人信息、宠物商店信息。
系统启动后,提示选择登录模式。
〔1〕思路分析:
①DAO代码:
PetDao:
getAllPet()查询所有宠物信息
PetOwnerDao:
getAllOwner()查询所有宠物主人信息
PetStoreDao:
getAllStore()查询所有宠物商店信息
②测试类
startPetShop():
获取相关信息并输出,提示选择登录模式
main():
调用startPetShop(),启动程序
〔2〕重点
使用JDBC访问Oracle数据库
获取相关信息并遍历输出
如下列图:
图3-0
3.3.2登录
在登陆这块模块,输入用户名和密码,判断登录是否成功,如果成功,输出主人根本信息并提示选择相应操作。
如果登录失败,提示确认用户名和密码后重新输入。
我们以成功为例,主人成功登录后,可选择购置库存宠物,显示所有库存宠物列表供主人选择,输入宠物编号完成购置,购置成功将显示提示信息。
〔1〕思路分析
①DAO代码
PetOwnerDao:
selectOwner()根据查询条件查询宠物主人信息
Service代码
PetOwnerService:
login()宠物主人登录
②测试类
ownerLogin():
宠物主人登录
startPetShop():
如果选择主人登录,调用ownerLogin()
main():
调用startPetShop(),启动程序
如下列图:
图3-1
3.3.3宠物主人购置库存宠物
主人成功登录后,可选择购置库存宠物,显示所有库存宠物列表供主人选择,输入宠物编号完成购置,购置成功将显示提示信息。
〔1〕思路分析
①DAO代码
Service代码查询所有库存宠物
根据主人选择实现购置
②测试类
ownerBuy():
宠物主人购置宠物
ownerLogin():
如果主人购置宠物,调用ownerBuy()
〔2〕重点
①更新宠物信息:
指定ownerid
②更新宠物主人信息:
减少
③更新宠物商店信息:
增加
④更新账目信息:
添加新账目
如下列图:
图3-2
3.3.4宠物主人购置新培育宠物
主人成功登录后,可选择购置新培育宠物,显示所有新培育宠物列表主人选择,输入宠物编号完成购置,购置成功将显示提示信息。
思路分析
①实现步骤与购置库存宠物一样
②购置库存宠物和新培育宠物属于两种不同的业务,在业务接口和实现类中应该定义不同的方法
③重用数据访问层代码
宠物主人卖出宠物给商店显示主人的宠物列表,选择要卖出的宠物序号,确认卖出宠物,显示宠物商店列表,选择买家序号完成交易,交易成功将显示提示信息。
1、思路分析
〔1〕DAO代码
〔2〕Service代码
①获得指定ID的宠物主人的所有宠物信息
②宠物主人向宠物商店卖出自己宠物
〔3〕测试类
①ownerSell():
宠物主人卖出宠物
②ownerLogin():
如果主人卖出宠物,调用ownerSell()
2、重点
根据主人选择实现购置
①更新宠物信息:
删除ownerid
②更新宠物主人信息:
增加
③更新宠物商店信息:
减少
④更新账目信息:
添加新账目
如下列图:
图3-3
3.4主要的类设计
3.4.1根据数据库表创立实体类
实体类一般和数据库表对应,实体类的属性对应于表的字段,为四个数据库表分别创立实体类,实现数据库数据在各个层次的传输,四个实体类的名称可以定义为Pet、PetOwner、PetStore、Account。
①宠物商店实体类:
PetStore
②宠物主人实体类:
PetOwner
③宠物实体类:
Pet
④宠物商店账目类:
Account
图3-5
3.4.2创立DAO接口和实现类
采用面向接口编程的思想设计数据访问层,定义DAO接口和实现类,为四个数据库表分别创立DAO接口和实现类,为了重用建立和关闭数据库的代码,创立BaseDao作为四个实现类的父类
图3-6
3.4.3创立业务接口和实现类
①宠物主人实现类:
PetOwnerServiceImpl
②宠物工厂实现类:
PetFactoryImpl
③宠物商店实现类:
PetStoreServiceImpl
④宠物商店工程实现类:
PetStoreFactoryImpl
图3-7
3.4.4优化业务接口
我们按照“单一职能原那么〞对业务接口定义进展优化,抽取出Buyable、Sellable、Breedable、Accountable等接口,PetOwnerService、PetStoreService接口根据自身功能继承其中的一个或多个接口。
①宠物商店数据库操作类:
PetStoreDaoImpl
②宠物主人数据库操作类:
PetOwnerDaoImpl
③宠物数据库操作类:
PetDaoImpl
④宠物商店账目信息数据库操作类:
AccountDaoImpl
iv.概念构造设计
4.1库表关系图
iv.1.1库表描述
名称
实现
宠物表
Pet
用户表
PetOwner
商店表
PetStore
1.宠物表
2.主人表
3商店表
iv.1.2数据库脚本
CREATETABLEPET(
IDNUMBER,
NAMEVARCHAR2(50);
TYPENAMEVARCHAR(20);
HEALTHNUMBER,
LOVENUMBER,
BIRTHDAYDATE,
OWNER_IDNUMBER,
STORE_IDNUMBER);
CREATESEQUENCESEQ_NAME
STATRWITH1
INCREMENTBY1
NOMAXVALUE
CACHE10;
selectto_char(BIRTHDAY,'mm-dd-yyyy')frompet;
insertintopet(ID,NAME,TYPENAME,LOVE,BITHDAY,OWNER_ID,STORE_ID)
values(651,'小花','狗狗',90,89,to_date('2015-02-14','yyyy-mm-dd'),361,985);
insertintopet(ID,NAME,TYPENAME,LOVE,BITHDAY,OWNER_ID,STORE_ID)
values(652,'贝贝','喵咪',100,95,to_date('2015-05-05','yyyy-mm-dd'),362,211);
insertintopet(ID,NAME,TYPENAME,LOVE,BITHDAY,OWNER_ID,STORE_ID)
values(653,'小环','企鹅',98,100,to_date('2015-08-08','yyyy-mm-dd'),363,212);
insertintopet(ID,NAME,TYPENAME,LOVE,BITHDAY,OWNER_ID,STORE_ID)
values(654,'麦克','鹦鹉',100,100,to_date('2015-09-09','yyyy-mm-dd'),364,213);
insertintopet(ID,NAME,TYPENAME,LOVE,BITHDAY,OWNER_ID,STORE_ID)
values(655,'爱丽丝','仓鼠',100,95,to_date('2015-10-01','yyyy-mm-dd'),365,214);
insertintopet(ID,NAME,TYPENAME,LOVE,BITHDAY,OWNER_ID,STORE_ID)
values(656,'旺财','狗狗',100,85,to_date('2015-11-11','yyyy-mm-dd'),366,215);
insertintopet(ID,NAME,TYPENAME,LOVE,BITHDAY,OWNER_ID,STORE_ID)
values(657,'小白','蛇',100,75,to_date('201512-12','yyyy-mm-dd'),367,216);
SELECT*FROMPET;
DELETEPET;
createtablePetowner(
IDNUMBER,
NAMEVARCHAR2(50),
PASSWORDVARCHAR2(50),
MONEYNUMBER(10,2)
);
insertintoPetowner(ID,NAME,PASSWORD,MONEY)
values(361,'小红','6661',150);
insertintoPetowner(ID,NAME,PASSWORD,MONEY)
values(362,'前前','6662',200);
insertintoPetowner(ID,NAME,PASSWORD,MONEY)
values(363,'小静','6663',80);
insertintoPetowner(ID,NAME,PASSWORD,MONEY)
values(364,'菲菲','6664',163);
insertintoPetowner(ID,NAME,PASSWORD,MONEY)
values(365,'夏雨','6665',45);
select*fromPetowner;
deletePetowner;
createtablePetstore(
IDNUMBER,
NAMEVARCHAR2(50),
PASSWORDVARCHAR2(50),
MONEYNUMBER(10,2));
insertintoPetstore(ID,NAME,PASSWORD,MONEY)
values(001,'第一宠物店','1101',4300);
insertintoPetstore(ID,NAME,PASSWORD,BALANCE)
values(002,'西苑','1102',5507);
insertintoPetstore(ID,NAME,PASSWORD,BALANCE)
values(003,'观音桥','1103',8954);
SELECT*FROMPETSTORE;
DELETEPETSTORE;
createtableAccount(
IDNUMBER,
DEAL_TYPENUMBER,
PET_IDNUMBER,
SELLER_ID,
BUYER_ID,NUMBER,
PRICENUMBER,
DEAL_TIMEDATE);
v.维护与扩展
主要为对效劳器上的数据库数据进展维护。
可使用Oracle数据库的维护功能机制。
例如,定期为数据库进展Backup,维护管理数据库死锁问题和维护数据库数据的一致性等。