1. 程式人生 > >系統分析與設計(8)

系統分析與設計(8)

1、軟體架構與框架

軟體架構(architecture)

  • 軟體架構就是把系統分解為一些部件,描述這些部件的職責以及它們之間的協作行為,是有關整體結構與元件的抽象描述,用於指導大型軟體系統各個方面的設計。
  • 軟體架構決策涉及到軟體系統核心(主體、基礎)結構的組成元素,以及這些核心組成元素之間的相互依賴、互動、協作等關係。
  • 軟體架構並不僅僅關注軟體本身的結構和行為,還注重其他特性使用、功能性、效能、彈性、重用、可理解、經濟以及技術的限制和權衡等。
  • 軟體架構對應的職業是架構師。架構師的主要任務是將軟體分割成不同的模組,並定義模組之間的介面。

框架(Framework)

  • 框架是特定語言和技術的架構應用解決方案,通常指的是為了實現某個業界標準或者完成特定的基本任務的軟體元件規範。
  • 框架與具體的軟體應用無關,但是提供並實現軟體架構和體系。
  • 框架與具體語言和技術相關,是一種或多種架構的組合的實現,是繼承了你的程式碼和第三種解決方案的工具,讓程式設計師聚焦於業務邏輯程式碼而不是技術實現。
  • 框架可以看做是一種特殊的軟體,是一個半成品。

聯絡與區別

框架不是構架(即軟體體系機構)。體系結構確定了系統整體結構、層次劃分,不同部分之間的協作等設計考慮。框架比架構更具體。更偏重於技術涉嫌。確定框架後,軟體體系結構也隨之確定,而對於同一軟體體系結構(比如Web開發中的MVC),可以通過多種框架來實現。

2、以你的專案為案例

繪製三層架構模型圖,細緻到分割槽

這裡寫圖片描述

結合你程式的結構,從程式設計師角度說明三層架構給開發者帶來的便利

  • 開發人員可以只關注整個結構中的其中某一層;
  • 可以很容易的用新的實現來替換原有層次的實現;
  • 可以降低層與層之間的依賴;
  • 有利於標準化;
  • 利於各層邏輯的複用。
  • 擴充套件性強。不同層負責不同的層面
  • 安全性高。使用者端只能通過邏輯層來訪問資料層,減少了入口點,把很多危險的系統功能都遮蔽了。
  • 專案結構更清楚,分工更明確,有利於後期的維護和升級
    研究 VUE 與 Flux 狀態管理的異同

3、研究 VUE 與 Flux 狀態管理的異同

VUE

Vuex 是一個專為 Vue.js 應用程式開發的狀態管理模式。它採用集中式儲存管理應用的所有元件的狀態,並以相應的規則保證狀態以一種可預測的方式發生變化。

Flux

Flux 使 Views 查詢 Stores(而不是 Models),使用者互動觸發的 Actions 被提交到一個 Dispatcher 中。當 Actions 被派發後,Stores 將會隨之更新自己並且通知 Views 進行修改。這些 Store 當中的修改會進一步促使 Views 查詢新的資料。即在相對獨立的元件中,action -> state -> view 的單向資料流能得到保證。

異同

  • Vue和Flux都是基於CQRS(命令和查詢職責分離)思想,更新和引用的資料流動時單向的,避免當一個Model被多個View引用時,一個Model被View改變時導致的混亂的波紋擴散式更新。
  • flux不區分同步和非同步更改, 而Vuex區分, commit時同步更新, action是非同步更新。
  • Vuex的更新是直接通過state例項,作為state方法來呼叫,而flux的action由view提交後,通過dispatch分發到store更新,然後再通知view更新。

相關推薦

系統分析設計8

1、軟體架構與框架 軟體架構(architecture) 軟體架構就是把系統分解為一些部件,描述這些部件的職責以及它們之間的協作行為,是有關整體結構與元件的抽象描述,用於指導大型軟體系統各個方面的設計。 軟體架構決策涉及到軟體系統核心(主體、基礎)結構的組

系統分析設計5

領域建模 閱讀 Asg_RH 文件,按用例構建領域模型。 資料庫建模(E-R 模型) E-R模型如下圖所示 資料庫匯出指令碼如下: -- MySQL Script generated by MySQL Workbench -- Mon

系統分析設計——作業8

開發者 模式 解決方案 技術 繪制 三層 作業 相關 架構 一.描述軟件架構與框架之間的區別與聯系 (1)軟件架構與框架的區別: 架構是把系統分解為一些部件,描述這些部件的職責及它們之間的協作行為;架構模式是特定領域常見問題的解決方案。 而框架是具體語言和技術相關的,是特定

演算法分析設計

一、演算法的定義 滿足五個條件:可行性、確定性、輸入、輸出、有窮性 滿足前四個條件為計算過程(OS) 二、演算法複雜性分析 時間複雜性:對該輸入需要產生的原子操作的步數(是輸入大小的函式) 空間複雜性:演算法所需要的儲存空間 三、計算複雜性函式的階 階:描述增長

系統分析設計 作業8

1、描述軟體架構與框架之間的區別與聯絡 軟體架構是一種指導方法,並不是一個具體實現。 軟體框架是基於具體語言的一個架構實現。 軟體框架可能包含若干軟體架構,並作出了一定修改和改進。 2、以你

演算法分析設計動態規劃

動態規劃的概念複習 每次決策依賴於當前狀態,又隨即引起狀態的轉移。一個決策序列就是在變化的狀態中產生的,所以,這種多階段最優化決策解決問題的過程就稱為動態規劃。 動態規劃的思想和策略 將待求解的問題分解為若干個子問題,按順序求解子階段,前一子問題的解,為後

系統分析設計作業8

使用ECB實現make reservation用例的詳細設計(包含用例簡介,順序圖,類圖)1.用例簡介用例模型如下make reservation包含4個主要用例:1.查詢酒店      2.預定酒店 

系統分析設計學習筆記

學習 掌握 應該 溝通 基本 最終 表示 對象 毫無 為什麽要學習這門課程?   “擁有一把錘子未必能成為建築師”。 這門課程學習的是面向對象分析和設計的核心技能的重要工具。對於使用面向對象技術和語言來,創建設計良好、健壯且可維護的軟件來說,這門課程所

【軟考】——軟體工程基礎知識Web應用系統分析設計

WebApp的特性 WebApp屬性???——》網路密集性、併發性、無法預知的負載量、效能、可用性、資料驅動; web應用系統分析的模型型別???——》 內容模型???——》給出由Web應

《基於UML的中小型超市管理系統分析設計》論文筆記二十

一、基本資訊 標題:基於UML的中小型超市管理系統分析與設計 時間:2016 來源:湘南學院學報 關鍵詞:中小型連鎖超市; 資訊化建設; Java技術; Java EE技術; 二、研究內容 1.中小型超市管理系統的需求分析:   這個系統面向的使用者主要是超市收銀員

系統分析設計--學習筆記3用例建模

一.使用故事板(Storyboard)技術,建模網上訂機票、車票,或訂旅店的過程。 故事前提:你是註冊使用者,並已登陸。 故事起點:發起目標查詢 故事終點:確認訂單(不包含支付) 描述手法:參考 “建模練習” 文件 用“藝龍網”的網上訂酒店來模仿建模:(更多資訊在藝龍網

系統分析設計--學習筆記4建模應用

一.按建模練習資料的 Task1 ,完成用例圖 Task1:用例建模(Use Case Modeling)是使用用例的方法來描述系統的功能需求的過程 (1)Use Case Diagram (2)Use Case Specification--Brief Level

架構師學習筆記8--系統分析設計方法

系統設計是架構師的看家本領,但設計基於系統分析。系統架構師在專案管理師的協調下,與系統分析師協同工作。 一、定義問題與歸結模型 軟體系統的目的是解決問題,所以軟體開發第一步是定義和分析問題,在此基礎上歸結模型。 定義問題的過程包括,理解真實世界中的問題和使

《推薦系統》基於使用者和Item的協同過濾演算法的分析實現Python

開啟微信掃一掃,關注《資料與演算法聯盟》1:協同過濾演算法簡介2:協同過濾演算法的核心3:協同過濾演算法的應用方式4:基於使用者的協同過濾演算法實現5:基於物品的協同過濾演算法實現一:協同過濾演算法簡介    關於協同過濾的一個最經典的例子就是看電影,有時候不知道哪一部電影是

B2C電子商務系統研發——商品SKU分析設計

一、SKU及相關概念定義 在設計商品SKU之前,首先讓我們熟悉一下SKU和相關的一些概念。# 什麼是SKU:      SKU=Stock Keeping Unit(庫存量單位)      同一型號的商品,或者說是同一個產品專案(商品條形碼是針對企業的產品 專案來進

系統分析設計UML建模

撰寫 中一 聚合和組合 常見 log 操作 發生 -- mac UML的歷史 1997年,OMG組織(Object Management Group對象管理組織)發布了統一建模語言(Unified Modeling Language,UML)。UML的目標之一就是為開發團隊

LINUX系統服務管理Services---------第六天

rsync同步? ? ?虛擬機A? ? 1. 將防火墻狀態設置為trusted? 2.SELinux當前修改為permissive? 3.SELinux永久狀態修改為permissive? ? 4.清空Yum緩存,檢查Yum是否可用? ? 虛擬機B? ? 1. 將防火墻狀態設置為trusted? 2.SELi

LINUX系統服務管理Services---------第二天

根下常用的命令用途 自定義yum倉庫 ln創建軟連接 源碼包編譯安裝 主要用途/boot ? ? ? ? 存放系統引導必需的文件,包括內核、啟動配置/bin、/sbin ? 存放各種命令程序/dev ? ? ? ? ?存放硬盤、鍵盤、鼠標、光驅等各種設備文件/etc ? ? ? ? ?存放Li

LINUX系統服務管理Services---------第四天

dns服務器虛擬機A? ? 1. 將防火墻狀態設置為trusted? 2.SELinux當前修改為permissive? 3.SELinux永久狀態修改為permissive? ? 4.清空Yum緩存,檢查Yum是否可用? ? 虛擬機B? ? 1. 將防火墻狀態設置為trusted? 2.SELinux當前修

LINUX系統服務管理Services---------第五天

部署dhcp服務器 pxe網絡裝機服務器 虛擬機A? ? 1. 將防火墻狀態設置為trusted? 2.SELinux當前修改為permissive? 3.SELinux永久狀態修改為permissive? ? 4.清空Yum緩存,檢查Yum是否可用? ? 虛擬機B? ? 1. 將防火墻狀態設置為tr