宠物商店详细设计说明书Word格式.docx
《宠物商店详细设计说明书Word格式.docx》由会员分享,可在线阅读,更多相关《宠物商店详细设计说明书Word格式.docx(19页珍藏版)》请在冰豆网上搜索。
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代码
selectOwner()根据查询条件查询宠物主人信息
Service代码
PetOwnerService:
login()宠物主人登录
ownerLogin():
宠物主人登录
如果选择主人登录,调用ownerLogin()
如下列图:
图3-1
3.3.3宠物主人购置库存宠物
主人成功登录后,可选择购置库存宠物,显示所有库存宠物列表供主人选择,输入宠物编号完成购置,购置成功将显示提示信息。
Service代码查询所有库存宠物
根据主人选择实现购置
ownerBuy():
宠物主人购置宠物
如果主人购置宠物,调用ownerBuy()
①更新宠物信息:
指定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库表描述
名称
实现
宠物表
用户表
PetOwner
商店表
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'
),362,211);
values(653,'
小环'
企鹅'
98,100,to_date('
2015-08-08'
),363,212);
values(654,'
麦克'
鹦鹉'
100,100,to_date('
2015-09-09'
),364,213);
values(655,'
爱丽丝'
仓鼠'
2015-10-01'
),365,214);
values(656,'
旺财'
100,85,to_date('
2015-11-11'
),366,215);
values(657,'
小白'
蛇'
100,75,to_date('
201512-12'
),367,216);
SELECT*FROMPET;
DELETEPET;
createtablePetowner(
NAMEVARCHAR2(50),
PASSWORDVARCHAR2(50),
MONEYNUMBER(10,2)
);
insertintoPetowner(ID,NAME,PASSWORD,MONEY)
values(361,'
小红'
,'
6661'
150);
values(362,'
前前'
6662'
200);
values(363,'
小静'
6663'
80);
values(364,'
菲菲'
6664'
163);
values(365,'
夏雨'
6665'
45);
select*fromPetowner;
deletePetowner;
createtablePetstore(
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(
DEAL_TYPENUMBER,
PET_IDNUMBER,
SELLER_ID,
BUYER_ID,NUMBER,
PRICENUMBER,
DEAL_TIMEDATE);
v.维护与扩展
主要为对效劳器上的数据库数据进展维护。
可使用Oracle数据库的维护功能机制。
例如,定期为数据库进展Backup,维护管理数据库死锁问题和维护数据库数据的一致性等。