2018-06-03-系统分析与设计作业8

系统分析与设计作业8

  • 描述软件架构与框架之间的区别与联系
  • 以你的项目为案例
    • 绘制三层架构模型图,细致到分区
    • 结合你程序的结构,从程序员角度说明三层架构给开发者带来的便利
  • 研究 VUE 与 Flux 状态管理的异同

软件架构与框架之间的区别与联系

什么是架构

软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。

什么是框架

软件框架是指在一定的设计原则基础上,从不同角度对组成系统的各部分进行搭配和安排,形成系统的多个结构而组成架构,它包括该系统的各个组件,组件的外部可见属性及组件之间的相互关系。组件的外部可见属性是指其他组件对该组件所做的假设。

架构与框架的区别

  1. 框架是一个半成品的软件, 为最后的软件制品提供了基础代码。而架构不是软件,也不是代码, 它是一种软件设计的策略和思想。用于指导软件的设计与开发。
  2. 所针对的需要解决的问题对象不同。框架是针对特定的语言,技术的架构应用解决方案;而架构针对的是某一类软件生产问题的解决方案,并不针对于特定的语言实现。
  3. 架构重在 “构建”, 即在逻辑层面上进行分析,得到的结果也是在逻辑层面表达;框架则是重在“架”, 即为软件开发搭建好一些必要的基本代码,其成果直接体现为软件的一些 basecode

架构与框架的联系

  1. 框架一般即架构的具体实现,即架构落实到某种具体语言和技术上的体现。
  2. 架构和框架都是范围从大到小,逐步求精。架构通常是先建立全局的架构, 之后针对某个子系统再设计详细架构; 框架也是先为整个软件确定开发框架, 再根据某些子功能的实现选择其专门的框架。
  3. 架构和框架都在一定程度上缓解了因软件复杂而造成的代码混乱。它们都是在抽象的层面上对软件的开发起到了指导性的作用

绘制三层架构模型图

模型图如下:

三层架构给开发者带来的便利:

  1. 使开发者可以集中关注某一个部分的任务, 从而使分工更加明晰
  2. 有效的实现了去耦合, 使表示,业务,与持久化层分离。
  3. 项目的结构清晰, 易于拓展与维护。
  4. 在架构清晰的基础上, 很容易套用现有的框架来实现部分解决方案(代码复用)

VUE 与 Flux 状态管理的异同

不同

Flux:

Flux将应用分为四个部分: View, Action, Dispatcher, Store

这四个部分的功能如下:

  1. View:视图层
  2. Action:接收视图层传递的消息, 并执行相应的动作
  3. Dispatcher: 每一个Action都经过Dispatcher传递给所有的store,达到这一目的的实现方式是通过回调函数来完成的。
  4. Store:数据层, 这里用来存放应用的状态,当这里发生变化时, 在视图层上相应的展示出来

这里有一幅图, 感觉将数据流描述的比较清晰:

2018-06-03-系统分析与设计作业8_第1张图片

VUE:

Vue中状态管理有一个单独的模式, 叫 Vuex。其中主要分为以下几类: state, getters, mutations, actions, modules

  1. state: 作为数据源的存在, 用于存放组件之间的共享状态
  2. getters: 筛选state的派生状态, 方便其他组件使用它。
  3. mutations: 通过提交mutations,来更改state中的状态, 这也是更改state中状态的唯一方法。
  4. actions: 和mutation相似,但是支持异步操作。 Action也可以改变state中的状态, 不过是通过提交mutation来实现

相同

  1. 都含有数据驱动的思想, 以数据流的方向来进行思考与设计。
  2. Flux基于MVC模式, 而Vuex则是部分吸收Flux的特点
  3. 两者都是通过store来储存状态。

你可能感兴趣的:(软件工程,系统分析与设计)