项目 内容
这个作业属于哪个课程 老师链接
这个作业的要求在哪里 作业链接地址
团队名称 always run
作业学习目标 掌握面向对象软件设计方法;(2)完善系统设计说明书,掌握面向对象详细设计内容、设计原理和技术。

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

2.软件《软件系统说明书》

3.团队项目系统设计改进总结

   不足:在之前的设计书中没有按照ooD设计准则,经过对面向对象设计方法的学习,改进了系统设计说明书,对上次的项目系统设计说明不足之处进行补充并加以改进,并且更新了《软件系统设计说明书》,讲其上传到GitHub仓库中,然后了解了软件体系结构、软件设计模式以及C/S与B/S结构,并搜集了关于MVC设计模式的相关内容,深入了解了其优缺点,利用面向对象方法,详细分析系统设计模型,总结了之前UML的相关内容,找出不足之处在小组内讨论,最后大家分工合作,完成各自分配到的任务,将其整理到本次博文当中。 

4、团队成员估计各自任务所需时间

成员
任务 时间
种兴达
任务三 一周
徐浩杰
任务二 一周
李敏
任务二 一周
冯婷秀
任务一 一周

三:问题回答

(1)何谓软件体系结构、软件设计模式?

(1)软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组组合连接起来。这一定义注重区分处理构件、数据构件和连接构件,这一方法在其他的定义和方法中基本上得到保持。由于软件系统具有的一些共通特性,这种模型可以在多个系统之间传递,特别是可以应用到具有相似质量属性和功能需求的系统中,并能够促进大规模软件的系统级复用。
    虽然软件体系结构已经在软件工程领域中有着广泛的应用,但迄今为止还没有一个被大家所公认的定义。许多专家学者从不同角度和不同侧面对软件体系结构进行了刻画,较为典型的定义有:1.Dewayne Perry和A1ex Wo1f认为软件体系结构是具有一定形式的结构化元素,即构件的集合;2.Mary Shaw和David Garlan认为软件体系结构是软件设计过程中的一个层次,这一层次超越计算过程中的算法设计和数据结构设计;3.Kruchten指出,软件体系结构有四个角度:概念角度、模块角度、运行角度、代码角度;4.Hayes Roth则认为软件体系结构是一个抽象的系统规范,主要包括用其行为来描述的功能构件和构件之间的相互连接、接口和关系。
    (2)软件设计模式就是Uml统一建模语言的技巧性概念。主要研究各个类模块和接口之间的安排与搭配,也是为程序员提供交流的一个很好的平台。利用软件设计模式您可以做出质量更高,代码更少,扩充更容易的软件。设计模式主要分三个类型:创建型、结构型和行为型。其中,创建型有单例模式、抽象工厂、工厂方法、建造模式、原型模式;行为型有迭代器模式、观察者模式、模板方法、命令模式、状态模式、策略模式、职责链模式、中介者模式、访问者模式、解释器模式、备忘录模式;结构型有组合模式、外观模式、代理模式、适配器模式、装饰模式、桥模式、享元模式。
(2)什么是C/S与B/S结构?
    1.B/S结构:B是英文单词“Browser”的首字母,即浏览器的意思;S是英文单词“Server”的首字母,即服务器的意思。B/S就是“Browser/Server”的缩写,即“浏览器/服务器”模式。
    B/S结构是随着互联网的发展,web出现后兴起的一种网络结构模式。这种模式统一了客户端,让核心的业务处理在服务端完成。你只需要在自己电脑或手机上安装一个浏览器,就可以通过web Server与数据库进行数据交互。
    2.C/S结构:C是英文单词“Client”的首字母,即客户端的意思,C/S就是“Client/Server”的缩写,即“客户端/服务器”模式。
    C/S结构是一种软件系统体系结构,也是生活中很常见的。这种结构是将需要处理的业务合理地分配到客户端和服务器端,这样可以大大降低通信成本,但是升级维护相对困难。比如我们手机中安装的微信、qq、王者荣耀等应用程序就是C/S结构。
    2.C/S结构:
(3)什么是MVC设计模式?
    MVC是一种目前广泛流行的软件设计模式,近来,随着J2EE的成熟,它正在成为在J2EE平台上推荐的一种设计模型,也是广大Java开发者非常感兴趣的设计模型。MVC模式也逐渐在PHP和ColdFusion开发者中运用,并有增长趋势。随着网络应用的快速增加,MVC模式对于Web应用的开发无疑是一种非常先进的设计思想,无论你选择哪种语言,无论应用多复杂,它都能为你理解分析应用模型时提供最基本的分析方法,为你构造产品提供清晰的设计框架,为你的软件工程提供规范的依据。
    (一)MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层――模型层、视图层、控制层。
    (1)视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。
    (2)模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据保存(持续化)。我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。
    (3)控制(Controller)可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。
    (二)MVC的优缺点如下:
    (1)MVC的优点大部分用过程语言比如ASP、PHP开发出来的Web应用,初始的开发模板就是混合层的数据编程。MVC要求对应用分层,虽然要花费额外的工作,但产品的结构清晰,产品的应用通过模型可以得到更好地体现。
    首先,最重要的是应该有多个视图对应一个模型的能力。在目前用户需求的快速变化下,可能有多种方式访问应用的要求。例如,订单模型可能有本系统的订单,也有网上订单,或者其他系统的订单,但对于订单的处理都是一样,也就是说订单的处理是一致的。按MVC设计模式,一个订单模型以及多个视图即可解决问题。这样减少了代码的复制,也易于维护。
    其次,由于模型返回的数据不带任何显示格式,因而这些模型也可直接应用于接口的使用。
    再次,由于一个应用被分离为三层,因此有时改变其中的一层就能满足应用的改变。一个应用的业务流程或者业务规则的改变只需改动MVC的模型层。因此,控制层可以说是包含了用户请求权限的概念。
    最后,它还有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化产生管理程序代码。
    (2)MVC的缺点MVC的设计实现并不十分容易, 理解起来比较容易,但对开发人员的要求比较高。MVC只是一种基本的设计思想,还需要详细的设计规划。模型和视图的严格分离可能使得调试困难一些,但比较容易发现错误。
    综合上述,MVC是构筑软件非常好的基本模式,至少将业务处理与显示分离,强迫将应用分为模型、视图以及控制层, 使得你会认真考虑应用的额外复杂性,把这些想法融进到架构中,增加了应用的可拓展性。

posted on 2019-05-31 10:31  小新潮  阅读(201)  评论(0编辑  收藏  举报