系統設計知識:系統設計的基本原理介紹

? ? ? ? ? ? ?

?

?

1、抽象

抽象主要用來將復雜的現象簡化到可以分析、實驗或者可以理解的程度。抽象的最低層就是實現該軟件的源程序代碼。在進行模塊化設計也可以有多個抽象層次,最高抽象層次的模塊用概括的方式描述問題的解決方案。較低層次的模塊是對更高抽象層次模塊對問題描述的細化。

2、模塊化

模塊在程序中是數據說明、可執行語句等程序對象的集合,或者是單獨命名和編址的元素。比如高級語言的函數、子程序等。在軟件的體系結構中,模塊是可組合、分解、更換的單元。

模塊化就是將一個待開發的項目系統分解成若干個簡單模塊。每個模塊可以獨立的開發、測試,最后組裝成完整程序。采用分而治之的原則。模塊化的目的是使程序的結構清晰,容易閱讀、理解、測試、修改。

3、信息隱蔽

信息隱蔽是開發整體程序結構時使用的法則,即將每個程序的成分隱蔽或封裝在一個單一的設計模塊中,定義每一個模塊時盡可能少地顯露其內部的處理。在設計時首先列出一些可能發生變化的因素,在劃分模塊時將一個可能發生變化的因素隱蔽在個某個模塊的內部,使其他模塊與這個因素無關。在這個因素發生變化時,只需修改含有這個因素的模塊。而與其他模塊無關。

信息隱蔽原則對提高軟件的可修改性、可測試性、可移植性都有重要的作用。

4、模塊獨立

模塊獨立是指每個模塊完成一個相對的特定子功能、并且與其他模塊之間的聯系簡單。衡量模塊獨立程度標準有兩個:耦合性、內聚性。

4.1 耦合?

耦合性是指模塊之間聯系的緊急程度。耦合性越高,則模塊的獨立性越差。模塊間耦合的高低取決于模塊間接口的復雜性、調用的方式及傳遞的信息。

  • 無直接耦合:指兩個模塊間沒有直接的關系,它們分別從屬于不同模塊的控制與調用它們之間不傳遞任何信息。模塊間耦合性最弱,模塊獨立性最高。

  • 數據耦合:指兩個模塊之間有調用關系,傳遞的是簡單的數據值,類似于高級語言中的值傳遞。耦合度較低、模塊間的獨立性較高。

  • 標記耦合:指兩個模塊之間傳遞的數據結構。如高級編程語言中的數據組名、記錄名、文件名等這些名字即為標記,其實傳遞的是這個數據結構的地址。

  • 控制耦合:指一個模塊調用另一個模塊時,傳遞的是控制變量,被調模塊通過該控制變量的指有選擇地執行塊內的某一功能。

  • 公共耦合:通過一個公共數據環境相互作用的那些模塊之間的耦合。

  • 內容耦合:屬于程度最高的耦合。當一個模塊直接使用另一個模塊的內部數據,或通過非正常入口而轉入另一個模塊內部,這種模塊之間的耦合為內容耦合,常常會出現在匯編程序設計當中。

4.2 內聚

  • 內聚是指模塊內部各元素之間聯系的緊密程度。內聚度越低,模塊的獨立性越差。

  • 偶然內聚:指一個模塊內的各個處理元素之間沒有任何聯系。

  • 邏輯內聚:指模塊內執行幾個邏輯上相似的功能,通過參數確定該模塊完成哪一個功能。

  • 時間內聚:把需要同時執行的動作組合在一起形式的模塊。

  • 通信內聚:指模塊內所有處理元素都在同一個數據結構上操作,或者指各處理使用相同的輸入數據或產生相同的輸出數據。

  • 順序內聚:指一個模塊中各個處理元素都密切相關于同一功能且必須順序執行,前者的元素的輸出是下一個元素的輸入。

  • 功能內聚:是最強的內聚,指模塊內所有元素共同完成一個功能,缺一不可。

系統劃分模塊時,盡量做到高內聚、低耦合從而提高軟件模塊的獨立性。

IT技術分享社區

個人博客網站:https://programmerblog.xyz

文章推薦程序員效率:畫流程圖常用的工具程序員效率:整理常用的在線筆記軟件遠程辦公:常用的遠程協助軟件,你都知道嗎?51單片機程序下載、ISP及串口基礎知識硬件:斷路器、接觸器、繼電器基礎知識

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/271144.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/271144.shtml
英文地址,請注明出處:http://en.pswp.cn/news/271144.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Wpf Binding.Path設置

Binding.Path 獲取或設置綁定源屬性的路徑。 每個綁定通常都具有四個組件:綁定目標對象、目標屬性、綁定源,以及要使用的綁定源值的路徑。有關這些數據綁定概念的更多信息,請參見數據綁定概述。 使用 Path 屬性可以指定您要綁定到的源值&…

java內存溢出怎樣查找代碼_JVM - 內存溢出,問題查找

當內存溢出會拋出 java.lang.OutOfMemoryError: Java heap space 的異常,那這個時候怎樣去分析到底哪里導致內存溢出呢?我們可以通過在vm的參數, -XX:HeapDumpOnOutOfMemoryError 記住這個理是大寫XX。當內存溢出后,顯示java.lang…

系統設計知識:系統模塊結構設計知識筆記

1、什么是模塊?模塊可以認為是組成系統的基本單位,它具有可組合、分解、更換的特點。系統中任何一個處理功能都能看成是一個模塊。模塊根據具體化的程度可劃分為邏輯模塊和物理模塊。模塊的要素:輸入輸出:模塊的輸入來源和去向都是…

安卓掃一掃自動跳轉軟件_ipad軟件使用技巧

適用于三款ipadipad pro 1ipad pro2ipad 2018三個ipad軟件分別是notability、goodnotes、和MarginNote,這三個軟件各有特點。其中notability、goodnotes是筆記軟件,同樣都可以自己創立筆記本配合蘋果筆像手寫一樣做筆記,也可以導入pdf作為閱讀…

第12章 使用Samba或NFS實現文件共享

章節簡述: 本章節為讀者講述文件共享系統的作用,了解Samba與NFS服務程序的開發背景以及用法。 詳細逐條講解Samba服務配置參數,演示安全共享文件的配置策方法,并使用autofs服務程序自動掛載設備, 學會后即可實現Linux…

ExtClassLoader和AppClassLoader是Launcher類的兩個內部類

sun.misc.Launcher他是一個java虛擬機的入口應用 看下Launcher類 ExtClassLoader和AppClassLoader是Launcher類的兩個內部類

Java后端帶參跨域訪問_java后端解決請求跨域

跨域跨域:指的是瀏覽器不能執行其他網站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器對javascript施加的安全限制。例如:a頁面想獲取b頁面資源,如果a、b頁面的協議、域名、端口、子域名不同,所進行的訪問行動都是跨…

系統輸入輸入出設計相關知識介紹

1、輸出設計輸出設計主要包括:確定輸出內容、選擇輸出設備與介質、確定輸出格式三個方面的內容。確定輸出內容:輸出內容的設計首先要確定用戶在使用信息方面的需求,然后設計輸出信息的內容,包信息形式(括文字、圖形、表…

計算機知識:電腦系統盤文件夾詳解

今天給大家介紹一下電腦系統盤(C盤)的相關知識。C盤變紅,是存儲空間告急。C盤里通常都是安裝的系統文件,一般情況下不放其他文件,如果放了可以轉移到其他盤里去。還有一個就是電腦桌面,通常也是屬于C盤空間…

python json dumps utf8_Python2操作JSON出現亂碼的解決方案

其實剛剛寫過一整篇Python編碼問題的解決方案,由于JSON又是一種特殊案例(與庫相關,與語言本身無關)所以就單獨提出來說。我們來看一個從網上獲取json并又存到本地文件的例子import requests,jsonr requests.get(https://api.github.com/repos/solomonxi…

【代碼筆記】iOS-字體抖動動畫

一,效果圖。 二,代碼。 ViewController.m #import "ViewController.h"interface ViewController ()endimplementation ViewController- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typicall…

java for循環如何優化_java for循環及其優化

for循環1.首先知道,for循環的3個表達式的意思:表達式1: 一般為賦值表達式,給控制變量賦初值;表達式2: 關系表達式或邏輯表達式,循環控制條件;表達式3: 一般為賦值表達式&…

ElementUI+VUE 日期控件禁用用法

今天給大家整理一下ElementUIVUE 日期控件禁用用法&#xff0c;希望對大家有所幫助&#xff01;HTML文件<el-date-pickerv-model"value"type"date":editable"false"placeholder"開始日期"value-format"yyyy-MM-dd":picke…

利用rfcomm實現樹莓派與手機通信_工業物聯網 | 怎么用NodeRed實現樹莓派與阿里云物聯網平臺通信?虹科告訴你!...

想獲取更多IIOT干貨請點擊藍字&#xff0c;關注我們虹科工業樹莓派高性能多接口寬溫--適應惡劣環境★★★★★Node-RED是構建物聯網(IoT)應用程序的強大工具&#xff0c;它使用可視化的編程方法&#xff0c;允許開發人員將預定義的代碼塊(稱為“節點”)連接在一起以執行任務。當…

關于“using namespace std”

http://www.cnblogs.com/uniqueliu/archive/2011/07/10/2102238.html轉載于:https://www.cnblogs.com/prayer521/p/5762948.html

mysql的mtr是指什么_MySQL中MTR的概念

MTR全稱是Mini-Transaction&#xff0c;顧名思義&#xff0c;可以理解為"最小的事務"&#xff0c;MySQL中把對底層頁面的一次原子訪問的過程稱之為一個Mini-Transaction&#xff0c;這里的原子操作&#xff0c;指的是要么全部成功&#xff0c;要么全部失敗&#xff0…

前端:Element UI 多選框組用法筆記

今天給大家分享一下Element UI 多選框組用法筆記&#xff0c;直接上代碼&#xff01;<html><head></head><body><el-form> <el-form-item label"興趣愛好:"> <el-checkbox-group v-model"form.checkList"> <…

xiaocms 關于搜索功能 添加搜索字段

自己折磨了好幾天 就是沒研究個出像樣的的東西 看了一下 core/controller/index.php searchAction()方法 但是不知從何下手。查了sql語句&#xff0c;還是沒實現 請教了一位自學php的小弟 &#xff0c;人家三下五除二的功夫就做出來了 解決的思路是一樣的&#xff0c;可我就是…