系统设计与分析Homework8

1.描述软件架构与框架之间的区别与联系

  • 软件架构:软件架构是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。
  • 软件框架:软件框架通常是指为了是实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。即框架是特定语言和技术的架构应用解决方案。
  • 联系:框架是一种或多种架构的组合的实现,架构知道了框架的设计思想。
  • 区别:框架是一种特殊的软件,为构建解决方案提供良好的基础,是半成品;而架构不是软件,是关于软件、系统如何设计的重要决策,软件架构决策涉及到如何将软件系统分解成不同的部分、各部分之间的静态结构关系和动态交互关系等。

2.以你的项目为案例,绘制三层架构模型图,细致到分区;结合你程序的结构,从程序员的角度说明三层架构给开发者带来的便利

  • 三层架构模型图:
    jiagoumoxing

  • 结合你程序的结构,从程序员的角度说明三层架构给开发者带来的便利

    • 每个层或包的职责是清晰的,模块化并可扩展的。系统分析的每个类会分明确的放置
    • 提供了隐式的程序复用准则
    • 每个层涉及的技术是明确的。这使得程序员可以通过快速培训上岗
    • 通过依赖估计项目变化产生的工作量
    • 开发次序和重要性是明确的
    • 并行开发支持。利用前后端分离,实现并行开发

3.研究VUE与Flux状态管理的异同

  • VUE

    • Vue是一套用于构建用户界面的渐进式框架,其中vuex是其中的状态管理工具。vuex主要包含几个概念:
      • State:Vuex 使用单一状态树,用一个对象就包含了全部的应用层级状态
      • Getter:getters属性主要是对于state中数据的一种过滤,属于一种加强属性
      • Mutation:更改 Vuex 的 store 中的状态的唯一方法
      • Action:类似于 mutation,但是Action 提交的是 mutation,而不是直接变更状态
      • Module:模块化操作
  • Flux

    • Flux 是一个由 Facebook 为其应用所设计的应用程序架构。Flux使用单向数据流。在这种架构当中,Views 查询 Stores(而不是 Models),并且用户交互将会触发 Actions,Actions 则会被提交到一个集中的 Dispatcher 当中。当 Actions 被派发之后,Stores 将会随之更新自己并且通知 Views 进行修改。这些 Store 当中的修改会进一步促使 Views 查询新的数据。
      flux
    • VUE是一个渐进式框架而Flux是一种前端状态管理架构,专门解决软件的结构问题。
    • 对数据流的管理方式不同
    • 都使用了单项数据流进行状态管理
    • vuex背后借鉴了flux的思想,是flux的一个有效实现