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

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

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

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


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

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

接口


实现

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

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

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

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

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

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

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

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

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

(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

(2)本系统燃尽图

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

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


《3+1团队》第七次作业:团队项目设计完善&编码的更多相关文章

  1. 《你说对就队》第七次作业:团队项目设计完善&编码

    <你说对就队>第七次作业:团队项目设计完善&编码 项目 内容 这个作业属于哪个课程 [教师博客主页链接] 这个作业的要求在哪里 [作业链接地址] 团队名称 <你说对就队> ...

  2. 《毛毛虫团队》第七次作业:团队项目设计完善&编码

    一:实验名称:团队项目设计完善&编码 二:实验目的与要求 掌握软件编码实现的工程要求. 三:实验步骤 任务一:团队软件项目设计完善: 任务二:团队软件项目编码实现: 任务三:在团队博客发布博文 ...

  3. 《快活帮》第七次作业:团队项目设计完善&编码

    项目 内容 这个作业属于哪个课程 2016计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十一 团队作业7-团队项目设计完善&编码 团队名称 快活帮 作业学习目标 掌握 ...

  4. 《逆袭团队》第七次作业:团队项目设计完善&编码

    实验十一 团队作业7:团队项目设计完善&编码 内容 项目 软件工程 任课教师博客主页链接 作业链接地址 团队作业7:团队项目设计完善&编码 团队名称 逆袭团队 具体目标 (1)完善团队 ...

  5. 《hello-world团队》第七次作业:团队项目设计完善&编码

    项目 内容 这个作业属于哪个课程 2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十一 团队作业7:团队项目设计完善&编码 团队名称 <hello--w ...

  6. 《奋斗吧!菜鸟》 第七次作业:团队项目设计完善&编码

    项目 内容 这个作业属于哪个课程 任课教师链接 作业要求 https://www.cnblogs.com/nwnu-daizh/p/10980707.html 团队名称 奋斗吧!菜鸟 作业学习目标 团 ...

  7. 实验十一 团队作业7:团队项目设计完善&编码

    实验十一 团队作业7:团队项目设计完善&编码 实验时间 2019-6-6 Deadline: 2019-6-12 10:00,以团队随笔博文提交至班级博客的时间为准. 评分标准: 按时交 – ...

  8. 实验十一 团队作业7—团队项目设计完善&编码测试

    实验十一 团队作业7—团队项目设计完善&编码测试 实验时间 2018-6-8 Deadline: 2018-6-20 10:00,以团队随笔博文提交至班级博客的时间为准. 评分标准: 按时交 ...

  9. 《ABCD组》实验十一 团队作业7:团队项目设计完善&编码

    <ABCD组>实验十一 团队作业7:团队项目设计完善&编码 项目 内容 这个作业属于哪个课程 http://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在 ...

  10. Spring_Four -- 团队项目设计完善&编码测试

    团队项目设计完善&编码测试 1.文档<软件设计方案说明书>github地址:https://github.com/gzyt/SRS 2.项目集成开发环境 数据库:Mysql 5.0 ...

随机推荐

  1. 【tensorflow】softmax_cross_entropy_with_logits与sparse_softmax_cross_entropy_with_logits

    softmax_cross_entropy_with_logits与sparse_softmax_cross_entropy_with_logits都是对最后的预测结果进行softmax然后求交叉熵 ...

  2. 工具中修改设置Default VM Arguments

    转自:https://www.cnblogs.com/zouhao/p/6513177.html

  3. go创建模块化项目

    比如我要创建一个xxx-system,里面可能有多个子模块,步骤如下: 1.mkdir xxx-system 2.cd xxx-system 3.在xxx-system目录下创建一系列的service ...

  4. firefox 获取xpath

    在做一个爬虫是,输入内容后,会自动显示内容,而且只能选择,不能根据输入的提交,一点就失去焦点,找不到相关内容 后来发现firefox的查看元素的最左边的类似于鼠标尖头的按钮,就是确保这种情况下,去查找 ...

  5. PAT(B) 1078 字符串压缩与解压(Java)

    题目链接:1078 字符串压缩与解压 (20 point(s)) 题目描述 文本压缩有很多种方法,这里我们只考虑最简单的一种:把由相同字符组成的一个连续的片段用这个字符和片段中含有这个字符的个数来表示 ...

  6. Android 7.0 之后相机/文件读写等权限获取方式改变,导致开启相机闪退

    在 Android 7.0 之前 Google 提供的动态申请权限的 API,可以调用相机拍照,访问SDcard等操作都只需要申请对应的权限,如下: <uses-permission andro ...

  7. c++实现双端队列

    在使用c++容器的时候其底层如何实现  例如  vector 容器  :是一个内存可以二倍扩容的向量容器,使用方便但是对内存要求严格,弊端明显    list  容器  : 双向循环链表    deq ...

  8. 15. Scala并发编程模型Akka

    15.1 Akka介绍 1) Akka是Java虚拟机JVM平台上构建高并发.分布式和容错应用的工具包和运行时,可以理解成Akka是编写并发程序的框架 2) Akka用Scala语言写成,同时提供了S ...

  9. nginx修改响应头(可屏蔽后端服务器的信息:IIS,PHP等)

    修改nginx反向代理请求的Header 需要使用到proxy_set_header和add_header指令.其中: proxy_set_header 来自内置模块ngx_http_proxy_mo ...

  10. (未完成)ARM-linux 移植 SDL

    ref : https://blog.csdn.net/u012075739/article/details/24877639   2.      交叉编译SDL 编译SDL前先要编译其依赖库 tsl ...