《3+1团队》第七次作业:团队项目设计完善&编码

项目内容
这个作业属于哪个课程任课教师博客主页链接
这个作业的要求在哪里 作业链接地址
团队名称3+1团队
团队博客地址https://home.cnblogs.com/u/3-1group
项目名称一起种水果




1.团队项目github仓库地址链接

https://github.com/HaiYou667/3-1Growingfruits

(1)Github仓库上传《软件设计方案说明书》
(2)Github仓库上传《软件编码规范说明书》
(3)Github仓库上传项目已完成源码


2.项目技术设计方案软件设计准则

●抽象:
  在定义一个类的时候,实际上就是把一类事物的公有的属性和行为提取出来,形成一个物理模型,这种研究问题的方法称为抽象。
  接口和抽象类实际就是抽象的体现,以系统的用户类为例,定义了用户注册、查询等接口,在后期如果用户有新的需求,可以进行扩充。

接口
1660547-20190611225628511-1587330316.png

实现
1660547-20190611225640232-990651378.png

(1)强内聚/弱耦合/模块化

  本系统划分了三大模块、会员管理、买家管理、管理员管理。我们组的设计采用三层架构将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL),区分层次的目的即为了“高内聚,低耦合”的思想。
  内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系;
  耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。

1660547-20190611223226250-365687298.png

(2)信息隐藏和封装:
  封装是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。
  封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。
  要访问该类的代码和数据,必须通过严格的接口控制。
  封装最主要的功能在于能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。
  适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。

    适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。
    ●良好的封装能够减少耦合。
    ● 类内部的结构可以自由修改。
    ●可以对成员变量进行更精确的控制。
    ●隐藏信息,实现细节。类结构分离了接口与实现,从而支持了信息隐藏

  在我们的系统中,以Admin实体为例,把Admin的属性封装,private仅能自己访问。

1660547-20190611230318993-790541260.png

(3)界面和实现的分离:
本系统采用三层架构,三层架构将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。

    ●表现层(UI):就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。
    ●业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。
    ●数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。
  MVC把三层架构中的UI层再度进行了分化,分成了控制器、视图、实体三个部分,控制器完成页面逻辑,通过实体来与界面层完成通话;而C层直接与三层中的BLL进行对话。MVC主要用于表现层,3层主要用于体系架构,3层一般是表现层、中间层、数据层,其中表现层又可以分成M、V、C,(Model View Controller)模型-视图-控制器。三层架构模式与MVC模式就很好的体现了系统界面和功能实现的分离。

1660547-20190611233839581-135623270.png

(4)错误情况处理
  java有两种错误情况,如下图所示:

1660547-20190611234155287-982150971.jpg

本系统采用java的异常处理机制(try…catch…finally),代码区如果有错误,就会返回所写异常的处理。e.printStackTrace();在命令行打印异常信息在程序中出错的位置及原因。

1660547-20190611235046684-123145823.png

(5)程序模块对于运行环境、关联模板、输入输出参数有什么假设

运行环境:
JDK:1.8
Tomcat :9.0
Eclipse:4.6.3
数据库:Oracle

(6)设计方案对于应对变化的灵活性
  在系统设计时我们定义了各种接口,便于系统功能的扩充,也体现了面向对象的思想。

(7)设计方案的软件重用情况
  软件成分的重用课划分为三个级别:【代码重用】【设计结果重用】【分析结果重用】。
  典型的可重用软件成分有项目计划、成本估计、体系结构、需求模型和规格说明、设计、源代码、用户文档和技术文档、用户界面、数据、测试用例。
  我们系听中的重用部分有源代码、用户界面。源代码的重用体现在登录注册功能,采用了以往写过的登录注册的代码。用户界面我们模仿了京东的界面。

(8)设计中采用的启发式规则
  启发式规则是一种经验规律,对该经设计和提高软件质量具有重要的参考价值,在我们的系统中,设计结果十分的清晰易懂,用词一致且定义明确。均设计了简单的类,并且没有包含太多的属性。


3.作业总结

(1)团队分工及所占比例

团队成员分工工作量比例完成时间
王雯涵编码、编写博客,编写《软件设计方案说明书》30%10h
郭佳编码、编写《软件编码规范说明书》,编写《软件设计方案说明书》30%10h
麻存滔编码,燃尽图20%6h
邹立源编码,燃尽图20%6h

1660547-20190611155231555-1253262769.png

(2)本系统燃尽图

1660547-20190611233107124-1048389928.png

(3)每位成员结合任务分工总结本次实验心得,最后由项目组长进行总结陈述。

  本次实验我们更加深了面向对象分析与设计的思想,面向对象的分析设计方法是致力于解决传统软件研发过程中由于软件模块化结构化程度不够高带来的软件重用行差、软件可维护性差、开发出的软件不能满足用户需要等方面的问题。面向对象包括对象、对象的状态和行为、类、类的结构、消息和方法。对象包含对象的唯一性、抽象性、继承性多态性的重要特征。面向对象的要素包含抽象、封装、共享三方面。
  在系统设计过程中,我们坚持面向对象软件设计原则,有已调配是单一职责原则,所以我们尽可能的去分解了这些职责,用不同的类去承担不同的职责。
  OOA与OOD之间没有明显的界限。OOA与OOD的不可分割性正好说明了OO思想的强大,即软件过程阶段的无缝连接,在交流与沟通中不会产生很大的鸿沟,这也正是相对于结构化的优点之一,因为从功能模块到模块详细控制逻辑设计两者之间的联系十分紧密,需要分析人员的再沟通。
  本次实验让我们对面向对象的理念,以及相关方法、设计模式有了更深刻的理解与掌握。慢慢认识到面向对象分析设计的学习就是培养思想的一种过程,这种思维方式还是要大量的时间才能灵活的运用。目前的阶段是能说是知到有这样一种设计思想,有这种解决问题的房按,至于在何时使用、应该怎么使用就需要在今后的经验中去积累了。


转载于:https://www.cnblogs.com/3-1group/p/11003837.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值