宠物商店项目需求说明.ppt
36页训练的技能点•面向对象程序设计的思想•使用类图设计系统•使用Java集合存储和传输数据•Java异常处理•使用JDBC操作数据库•使用SQL Server存储数据•DAO层的应用1任务描述•系统概述–在宠物商店里,宠物主人可以出卖、购买宠物–每一笔买入、卖出的业务,店家都会记录在账–商店可以根据需求自己培育宠物品种•系统角色–宠物、主人、宠物商店、账目•提交结果–创建数据库表的脚本文件、系统类图、程序代码演示案例:宠物商店演示案例:宠物商店2问题分析1:整体开发思路•系统开发步骤–明确需求–设计数据库–设计技术框架•Java技术•数据访问层–编码顺序–测试12343问题分析2:界面交互设计•界面交互设计的原则–统一性原则•界面风格统一–用相同方式展现相同类型的数据,如:日期类型•交互风格统一–用相同方式完成相同类型的操作,如:录入日期–美观性原则•界面美观大方–易用性原则•操作方式自然、易理解4难点分析1:设计数据库表结构 •根据业务确定表的名称•根据业务确定表的具体字段–如何区分一个宠物是否被卖出–如何区分一个宠物是库存还是新培育的–如何定义一个宠物的所属商店–如何确定一个宠物是属于哪个主人的•注意主键和外键的设计,建立表之间关联关系5难点分析2:使用类图设计系统•采用DAO模式设计和开发本项目案例 •设计步骤–第一步:根据数据库表创建实体类–第二步:创建DAO接口和实现类–第三步:创建业务接口和实现类–第四步:优化业务接口设计–第五步:根据分析结果,给出伪代码,完成设计6项目准备:设计并创建数据库表2-1•数据库表–宠物表pet–宠物主人表petowner –宠物商店表petstore –账目表account•具体字段根据业务进行确定•注意主键和外键的设计,建立表之间关联关系7项目准备:设计并创建数据库表2-2宠物表宠物表宠物主人表宠物主人表宠物商店表宠物商店表账目表账目表8项目准备:完成接口设计5-1•第一步:根据数据库表创建实体类–实体类一般和数据库表对应,实体类的属性对应于表的字段–为四个数据库表分别创建实体类,实现数据库数据在各个层次的传输–四个实体类的名称可以定义为Pet、PetOwner、PetStore、Account9项目准备:完成接口设计5-2•第二步:创建DAO接口和实现类–采用面向接口编程的思想设计数据访问层,定义DAO接口和实现类–为四个数据库表分别创建DAO接口和实现类–为了重用建立和关闭数据库的代码,创建BaseDao作为四个实现类的父类10项目准备:完成接口设计5-3•第三步:创建业务接口和实现类–从业务角度考虑,主要是宠物主人和宠物商店业务–创建宠物主人和宠物商店业务接口及实现类–在业务实现类中调用DAO接口实现相应业务11项目准备:完成接口设计5-4•第四步:优化业务接口设计–按照“单一职能原则” 对业务接口定义进行优化–抽取出Buyable、Sellable、Breedable、Accountable等接口–PetOwnerService、PetStoreService接口根据自身功能继承其中的一个或多个接口12项目准备:完成接口设计5-5•第五步:根据分析结果给出伪代码,完成设计–给出实体类伪代码–给出DAO接口和实现类伪代码–给出业务接口和实现类伪代码13开发计划14用例1:系统启动3-1•需求说明–在系统启动时,显示所有的宠物信息、宠物主人信息、宠物商店信息–系统启动后,提示选择登录模式 指导指导指导指导讲解需求说明讲解需求说明15用例1:系统启动3-2DAO代码–PetDao:getAllPet() 查询所有宠物信息–PetOwnerDao:getAllOwner() 查询所有宠物主人信息–PetStoreDao:getAllStore() 查询所有宠物商店信息测试类–startPetShop():获取相关信息并输出,提示选择登录模式 –main():调用startPetShop(),启动程序使用JDBC访问SQL Server数据库获取相关信息并遍历输出完成时间:完成时间:35分钟分钟提示提示提示提示分析分析分析分析16共性问题集中讲解•常见问题及解决办法•代码规范问题•调试技巧17用例1:系统启动3-3正确显示所有宠物信息正确显示所有主人和商店信息提示选择登录模式•要求–互相验证完成的程序功能–小组长检查本组完成情况功能测试功能测试功能测试功能测试演示案例:系统启动演示案例:系统启动18用例2:宠物主人登录3-1•需求说明–输入用户名和密码,判断登录是否成功–如果成功,输出主人基本信息并提示选择相应操作–如果登录失败,提示确认用户名和密码后重新输入指导指导指导指导讲解需求说明讲解需求说明19用例2:宠物主人登录3-2DAO代码–PetOwnerDao:selectOwner() 根据查询条件查询宠物主人信息Service代码–PetOwnerService:login() 宠物主人登录测试类–ownerLogin() :宠物主人登录–startPetShop():如果选择主人登录,调用ownerLogin() –main():调用startPetShop(),启动程序完成时间:完成时间:15分钟分钟分析分析分析分析20共性问题集中讲解•常见问题及解决办法•代码规范问题•调试技巧21用例2:宠物主人登录3-3•宠物主人登录成功•宠物主人登录失败•要求–互相验证完成的程序功能–小组长检查本组完成情况功能测试功能测试功能测试功能测试演示案例:宠物主人登录演示案例:宠物主人登录22用例3:宠物主人购买库存宠物3-1 •需求说明–主人成功登录后,可选择购买库存宠物–显示所有库存宠物列表供主人选择–输入宠物编号完成购买–购买成功将显示提示信息 指导指导指导指导讲解需求说明讲解需求说明23用例3:宠物主人购买库存宠物3-2DAO代码Service代码–查询所有库存宠物–根据主人选择实现购买测试类–ownerBuy():宠物主人购买宠物–ownerLogin() :如果主人购买宠物,调用ownerBuy()根据主人选择实现购买–更新宠物信息:指定ownerid–更新宠物主人信息:减少元宝数–更新宠物商店信息:增加元宝数–更新账目信息:添加新账目完成时间:完成时间:35分钟分钟分析分析分析分析提示提示提示提示24共性问题集中讲解•常见问题及解决办法•代码规范问题•调试技巧25用例3:宠物主人购买库存宠物3-3显示所有库存宠物根据主人选择实现购买•要求–互相验证完成的程序功能–小组长检查本组完成情况功能测试功能测试功能测试功能测试演示案例:宠物主人购买库存宠物演示案例:宠物主人购买库存宠物26用例4:宠物主人购买新培育宠物3-1 •需求说明–主人成功登录后,可选择购买新培育宠物–显示所有新培育宠物列表供主人选择–输入宠物编号完成购买–购买成功将显示提示信息指导指导指导指导讲解需求说明讲解需求说明27用例4:宠物主人购买新培育宠物3-2 •实现步骤与购买库存宠物相同购买库存宠物和新培育宠物属于两种不同的业务,在业务接口和实现类中应该定义不同的方法重用数据访问层代码完成时间:完成时间:15分钟分钟分析分析分析分析28共性问题集中讲解•常见问题及解决办法•代码规范问题•调试技巧29用例用例4::宠物主人物主人购买新培育新培育宠物物3-3显示所有新培育宠物根据主人选择实现购买•要求–互相验证完成的程序功能–小组长检查本组完成情况功能测试功能测试功能测试功能测试演示案例:宠物主人购买新培育宠物演示案例:宠物主人购买新培育宠物30用例5:宠物主人卖出宠物给商店3-1•需求说明–显示主人的宠物列表–选择要卖出的宠物序号–确认卖出宠物–显示宠物商店列表–选择买家序号完成交易–交易成功将显示提示信息指导指导指导指导讲解需求说明讲解需求说明31用例5:宠物主人卖出宠物给商店3-2DAO代码Service代码–获得指定ID的宠物主人的所有宠物信息–宠物主人向宠物商店卖出自己宠物测试类–ownerSell():宠物主人卖出宠物–ownerLogin() :如果主人卖出宠物,调用ownerSell()根据主人选择实现购买–更新宠物信息:删除ownerid–更新宠物主人信息:增加元宝数–更新宠物商店信息:减少元宝数–更新账目信息:添加新账目完成时间:完成时间:30分钟分钟分析分析分析分析提示提示提示提示32共性问题集中讲解•常见问题及解决办法•代码规范问题•调试技巧33用例5:宠物主人卖出宠物给商店3-3显示主人的宠物列表、所有宠物商店列表完成卖出交易,显示成功信息•要求–互相验证完成的程序功能–小组长检查本组完成情况功能测试功能测试功能测试功能测试演示案例:宠物主人卖出宠物给商店演示案例:宠物主人卖出宠物给商店34项目总结•讲解要点–完成情况、技能总结、经验分享、项目收获•表达要求–清晰流畅、有条理、重点突出作品展示作品展示作品展示作品展示35技能总结•主要技能点–数据库设计–使用类图设计系统–使用JDBC操作数据库–使用SQL Server存储数据–DAO层的应用•项目流程–需求设计开发测试–设计:数据库设计、技术框架设计、交互设计36。





