项目 |
内容 |
这个做业属于哪一个课程 |
老师连接 |
这个做业的要求在哪里 |
做业连接地址 |
团队名称 |
always run |
做业学习目标 |
掌握面向对象软件设计方法;(2)完善系统设计说明书,掌握面向对象详细设计内容、设计原理和技术。 |
3.团队项目系统设计改进总结
不足:在以前的设计书中没有按照ooD设计准则,通过对面向对象设计方法的学习,改进了系统设计说明书,对上次的项目系统设计说明不足之处进行补充并加以改进,而且更新了《软件系统设计说明书》,讲其上传到GitHub仓库中,而后了解了软件体系结构、软件设计模式以及C/S与B/S结构,并搜集了关于MVC设计模式的相关内容,深刻了解了其优缺点,利用面向对象方法,详细分析系统设计模型,总结了以前UML的相关内容,找出不足之处在小组内讨论,最后你们分工合做,完成各自分配到的任务,将其整理到本次博文当中。
四、团队成员估计各自任务所需时间
|
任务 |
时间 |
|
任务三 |
一周 |
|
任务二 |
一周 |
|
任务二 |
一周 |
|
任务一 |
一周 |
三:问题回答git
(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是构筑软件很是好的基本模式,至少将业务处理与显示分离,强迫将应用分为模型、视图以及控制层, 使得你会认真考虑应用的额外复杂性,把这些想法融进到架构中,增长了应用的可拓展性。github