❶ 汽車數據流怎麼分析
1、數值分析法:指對所獲取的數據的變化規律與變化范圍進行分析或與標准數據進行比較。
2、時間分析法:指對所獲取的數據流的數值通過看其是否隨時間的變化而變化進行分析。如冷卻液溫度。
3、因果分析法:指對相互之間有因果關系(或有聯系)的數據間響應情況和響應速度進行對比判斷。
4、關聯分析法:指對彼此有關聯的數據進行分析,對比後來查看故障是否存在。
5、比較分析法:指對相同年款、相同品牌車型、相同系統的兩台車,在相同條件下的數據進行比較。
❷ 需求分析----數據流圖
結構化分析中,常用到數據模型為實體關系圖,功能模型是數據流圖 DFD
可以認為,一個基於計算機的信息處理系統由數據流和一系列的轉換構成,這些轉換將輸入數據流變換為輸出數據流。數據流圖就是用來刻畫數據流和轉換的信息系統建模技術的。它用簡單的圖形記號分別表示數據流、轉換、數據源以及外部實體。
數據對象由其屬性刻畫 實體-關系圖是表示數據對象及其關系的圖形語言機制 數據對象彼此之間相互連接的方式稱為關系,也稱為聯系。可以是一對一聯系(1∶1)、一對多聯系(1∶N)、多對多聯系(M∶N)聯系也可能有屬性。
數據流圖的功能主要為(1)描繪數據在系統中各邏輯功能模塊之間的流動和處理過程,是一種功能型模型 (2)主要刻畫「功能的輸入和輸出數據」、「數據的源頭和目的地」 (3)在數據流圖中沒有任何具體的物理部件,它只是描繪數據在軟體中流動和被處理的邏輯過程。它與數據字典一起用來構成系統的邏輯模型。
數據流圖中個個對象的表示一般來說源點與終點:通常指外部對象,用長方形或長方體表示。處理(加工):可以代表一系列程序、單個程序或者程序的一個模塊,還可代表人工過程等,用圓形或圓角矩形表示。數據存儲:表示需要保存的數據流向,指處於靜止狀態的數據,用平行線或開口矩形表示。數據流:指處理運行中的數據,用箭頭表示。
數據流圖的設計原則:
(1):父圖-子圖平衡原則:
子圖可以理解為父圖中部分環節的細化。例如我們給出父圖:
我們想對其中的成績處理環節進行細化,畫成如下數據流圖:
其中一定要保證父圖輸入輸出數據流 = 子圖輸入輸出數據流
(2)數據守恆原則:
所有的輸出數據流必須是通過加工的,且通過加工能直接產生。一般情況下要注意一下3個錯誤:
*1* 外部實體與外部實體間無數據流。
*2* 外部實體與數據存儲文件無數據流。
*3* 數據存儲文件間無數據流。
(3)守恆加工原則:
對於同一個加工,其輸入與輸出的名字必須不同。通常來說要注意一下2點:
*1* 對於每一個加工,都應該有輸入、輸出。
*2* 數據流與加工有關,且必須經過加工。
在數據流方法中,對數據的精化是伴隨著對轉換的精化而同步進行的。DFD是自頂向下分解的。頂層DFD圖通過系統和尾部世界之間的聯機來描述系統的范圍,沒有數據流圖的雛形,只是一種思想的表達,所以也成為關聯圖。將頂層DFD的系統分解為若干個子系統,決定每個子系統間的數據介面和活動關系,得到0層DFD圖,然後繼續向下細化,得到1、2、3…DFD圖。最後得到的那個叫做底層DFD圖,底層的DFD圖最為詳細,操作也是基本操作。參照底層的DFD圖來實施。
例如:簡單的考務處理系統
有如下的一個簡單考務處理系統,要求完成一下工作:
1. 對考生送來的報名單進行檢查;
2. 對合格的報名單編好准考證號後將准考證送給考生,並將匯總後的考生名單送給閱卷站;
3. 對閱卷站送來的成績單進行檢查,並根據考試中心制定的合格標准審定合格者;
4. 製作考生通知單(含成績及合格/不合格標志)送給考生;
5. 按地區進行成績分類統計和試題難度分析,產生統計分析表。
我們對需求進行關鍵字提取,並用綠色標出實體,紅色標出關鍵的數據流。
答:(1)頂層數據流圖:
(2)一層數據流圖:
(3)二層數據流圖:
例:圖書預訂系統
書店向顧客發放訂單,顧客將所填訂單交由系統處理,系統首先依據圖書目錄對訂單進行檢查並對合格訂單進行處理,處理過程中根據顧客情況和訂單數目將訂單分為優先訂單與正常訂單兩種,隨時處理優先訂單,定期處理正常訂單。最後系統將所處理的訂單匯總,並按出版社要求發給出版社。
答:(1)構建頂層數據流圖
(2)構建0層數據流圖(細化頂層數據流圖)
(3)逐層細化數據流圖
❸ 發動機數據流分析
噴油脈寬是由發動機微機控制的噴油器每次噴油的時間長度,是噴油器工作是否正常的最重要指標。
噴油脈寬信號參數顯示的噴油脈寬數值單位為ms,參數顯示值大,意味著噴油器每次都會開很長時間,發動機會得到濃混合氣;該參數的顯示值較小,這意味著每次噴油器短時間開啟燃油噴射時,發動機都會得到稀混合氣。
燃油噴射脈沖寬度沒有固定的標准,它會隨著發動機轉速和負載而變化。影響噴油脈沖寬度的主要因素如下:
(1)λ調節;活性炭罐的?Mixture濃度;。
燃油噴射過量的常見原因如下:
(1)空氣體流量計損壞;信號噴油脈寬控制點火在汽車故障診斷中的應用
第二,用怠速脈沖寬度診斷油路。
1。熱車正常怠速時,脈沖寬度一般為1.5ms-2.9ms,如果脈沖寬度達到2.9-5。5毫秒,噴嘴通常堵塞。新車行駛一段時間後,噴油嘴會有不同程度的堵塞,會減少噴油量。計算機認為空燃油比會增加,怠速會降低,這會修正噴油脈寬和怠速控制信號,使怠速達到目標速度值。
重復這個循環,空閑脈沖寬度變得越來越大。同時,發動機控制計算機會存儲此時怠速控制閥的位置,供下次啟動時參考。每個氣缸的噴油嘴堵塞程度不同,發動機控制計算機提供給噴油嘴的噴油脈寬相同,導致發動機運轉不穩定,動力不足,加速不良,油耗增加。這時,一個好的噴油器清潔劑就能解決問題。維護示例:
時間超人清洗前的脈沖寬度為3.31毫秒,清洗後的脈沖寬度為1.70毫秒,需要注意的是,新清洗的噴嘴載入後,發動機轉速收斂並增大。這是因為ECU長期燃油修正的結果,學習後記憶數據,從而控制怠速,使空燃比過濃。這里有一個再學習的過程。因為模式不同,學習時間也不一樣。有些車只需要幾秒鍾,而有些車需要更長的時間。
2。如果噴油嘴干凈的車輛怠速脈沖寬度仍然很大,並且已經通過數據流空確認空氣流量計、進氣壓力感測器、氧氣感測器和冷卻水溫度感測器沒有故障,那麼故障的根本原因很可能是燃油壓力低,這時就需要用燃油壓力表來判斷油泵或油壓調節器的故障。h tt ps:// @2019
❹ 軟體測試走查中的靜態分析技術中的數據流分析問題
代碼如下:
void f1(int *p1, int p2, int p3)
{
*p1 = p3 - p2;
}
main()
{
int a,x,y;
printf ("Type in a value for a");
scanf ("%d",&a);
printf ("\n");
y = 0;
if (x != 0)
{
f1 (&y,a,x);
}
printf ("A is %d\n",a);
}
對上面代碼進行數據流分析,結果如下:
變數 x: UR(未初始化就引用)
變數y: DU(初始化後未被引用就出作用域了)
變數y: DD(初始化後未被引用就再次被初始化)
1)x 的 UR異常是由於在「if「的條件之前未給x 賦初值引起的。
修正:
在原碼中給x 賦初值或從鍵盤輸入一個值給 x。
2)Y的 DU異常是由於 Y被賦初值0 後,或是在f1 函數中再次賦值後,都
沒有被引用就出了其作用域。
修正:
在程序末尾,在列印語句中加入 y。
3)y 的 DD 異常是在 Y 被賦初始值 0 後如果是走 if 的真分支那麼 Y 在沒有
被引用的情況下就再次被賦了初值。這是由於使用了不完整的 if 語句造
成的。
修正:
用 if-then-else結構重寫if語句。
❺ 數據流程分析的包括的內容
數據流程分析主要包括對信息的流動、變換、存貯等的分析。其目的是要發現和解決數據流動中的問題。這些問題有:數據流程不暢,前後數據不匹配,數據處理過程不合理等等。問題產生的原因有的是屬於現行管理混亂,數據處理流程本身有問題,有的也可能是我們調查了解數據流程有誤或作圖有誤。調查的目的就是要盡量地暴露系統存在的問題,並找出加以解決的方法。
❻ 汽車故障數據流分析方法
靜態數據流是指當點火開關接通且發動機未起動時,故障診斷儀讀取的發動機電子控制系統的數據。例如,進氣壓力感測器的靜態數據應接近標准大氣壓;當汽車寒冷時,冷卻液溫度感測器的靜態數據應接近環境溫度。以下是使用「靜態數據流」進行診斷的示例。
◆案例一:一輛 捷達 ( 查成交價 | 車型詳解 )王轎車在入冬後的某個早晨無法啟動。
首先,司機反映前幾天早上起步很困難,有時候時間長了就能啟動,啟動後一切正常。
該車已在其他修理廠修理過,檢查過發動機的燃油壓力和缸壓、噴油器、氣門正時、點火正時和火花塞閃絡,但問題一直沒有解決。維修人員仔細復查了以上項目,沒有發現問題。發動機不缺燃料和高壓,但就是發動不起來。原因是什麼?
後來發現火花塞雖然多次啟動,但沒有「水淹」的跡象,說明故障是冷啟動時加濃不足造成的。如果冷啟動濃縮不夠,是什麼原因造成的?冷卻液溫度感測器是否正常?
用故障診斷儀檢查發動機電子控制單元,沒有故障代碼輸出。通過讀取汽車發動機的靜態數據流,發現發動機ECU輸出的冷卻液溫度為105℃,而發動機的實際溫度僅為2~3℃。很明顯,發動機ECU接收到的水溫信號是錯誤的,說明冷卻液溫度感測器有問題。為了進一步確認,用萬用表測量冷卻液溫度感測器和電腦之間的線束,既沒有開路也沒有短路,電腦給冷卻液溫度感測器的5V參考電壓也正常,所以更換冷卻液溫度感測器,重新啟動,正常,排除故障。
這個故障案例其實並不復雜。對於有經驗的維護人員來說,可以直接從冷卻液溫度感測器中找到問題的症結所在。但這說明了一個問題,就是電控燃油噴射發動機系統的ECU並不會記憶一些故障,比如這款車的冷卻液溫度感測器既沒有開路也沒有短路,只是信號失真,所以ECU的自診斷功能不會認為是故障。
如復氧感測器反饋信號失真,空氣體流量計檢測到的進氣量與空氣體流量計電壓信號漂移引起的實際進氣量差異等。不能被電子控制單元識別為故障。
在這種情況下,讀取控制單元數據成為解決問題的關鍵。 @2019
❼ 數據流程分析怎麼分析
數據流程分析就是把數據在現行系統內部的流動情況抽象出來,捨去了具體組織機構、信息載體、處理工作等物理組成,單純從數據流動過程來考察實際業務的數據處理模式。數據流程分析主要包括對信息的流動、變換、存貯等的分析。其目的是要發現和解決數據流動中的問題。現有的數據流程分析多是通過分層的數據流程圖(data flow diagram,簡稱DFD)來實現的。
❽ 數據流分析之有故障碼時的分析步驟
利用數據流分析進行故障診斷有兩種情況:一種是電控系統已經存儲了故障碼;另一種是無故障碼。我們來看看數據流分析中出現故障碼時的分析步驟。
在汽車電控系統故障排除過程中,通過故障碼讀取和確認操作,當故障碼確實存在時,數據流分析的一般步驟如下:
先檢查故障碼記錄時的凍結數據幀,再確認故障碼產生時車輛的運行狀況,使車輛在凍結數據幀指示的條件下驗證故障,利用故障碼快速准確地確定故障位置。
當一個故障碼被確認後,還可以直接找出與故障碼相關的每組數據進行分析,並根據故障碼設定的條件分析故障碼產生的原因,再分析數據的數值波形,最終找出故障點。
示例:
一輛東風雪鐵龍愛麗舍SX1轎車配備AL4自動變速器。儀表盤上的「S」和「*」燈偶爾閃爍,自動變速器升檔太晚。使用專用故障診斷儀PROXIA測試自動變速器ECU,讀取故障代碼,找到下表所列的故障信息。
根據記錄的故障代碼,首先檢查節氣門位置感測器的數據流,以確定故障。當點火開關置於M位置,發動機未起動,油門踏板完全松開時,自動變速器參數由PROXIA測量。發現節氣門開度參數從11.5到40.8保持變化。用手拉節氣門位置感測器的接線頭時,節氣門開度參數穩定在11.5。同時,自動變速器故障指示燈停止閃爍,再次拉動時,節氣門開度參數再次保持變化,自動變速器故障指示燈再次閃爍。
通過以上動態數據檢測,可以判斷車輛的故障是節氣門位置感測器的接插件接觸不良。由於自動變速器的ECU得不到准確的油門位置信號,在正常情況下無法控制換擋,導致換擋延遲。更換油門位置感測器後,對延遲換檔進行故障排除。
❾ 如何進行大數據分析及處理
提取有用信息和形成結論。
用適當的統計、分析方法對收集來的大量數據進行分析,將它們加以匯總和理解並消化,以求最大化地開發數據的功能,發揮數據的作用。數據分析為了提取有用信息和形成結論而對數據加以詳細研究和概括總結的過程。
要求在標題欄中註明各個量的名稱、符號、數量級和單位等:根據需要還可以列出除原始數據以外的計算欄目和統計欄目等。從圖線上可以簡便求出實驗需要的某些結果,還可以把某些復雜的函數關系,通過一定的變換用圖形表示出來。
(9)數據流分析如何寫擴展閱讀:
大數據分析及處理的相關要求規定:
1、以數據流引領技術流、物質流、資金流、人才流,將深刻影響社會分工協作的組織模式,促進生產組織方式的集約和創新。
2、大數據推動社會生產要素的網路化共享、集約化整合、協作化開發和高效化利用,改變了傳統的生產方式和經濟運行機制,可顯著提升經濟運行水平和效率。
3、大數據持續激發商業模式創新,不斷催生新業態,已成為互聯網等新興領域促進業務創新增值、提升企業核心價值的重要驅動力。大數據產業正在成為新的經濟增長點,將對未來信息產業格局產生重要影響。
❿ 【課程筆記】南大軟體分析課程4——數據流分析基礎(課時5/6)
關於這一節 zcc 的筆記已經夠完美了,我就直接在他基礎上記錄了。
上節課是介紹了3種數據流分析迭代演算法,本節課將從數學理論的角度來討論數據流分析,加深對數據流分析演算法的理解。
本質 :常見的數據流迭代演算法,目的是通過迭代計算,最終得到一個穩定的不變的解。
定義1 :給定有k個節點(基本塊)的CFG,迭代演算法就是在每次迭代時,更新每個節點n的OUT[n]。
定義2 :設數據流分析的值域是V,可定義一個 k-元組 : (OUT[n 1 ], OUT[n 2 ], ... , OUT[n k ])。是集合 (V 1 V 2 ... V k ) (冪集,記為V k )的一個元素,表示每次迭代後k個節點整體的值。
定義3 :每一次迭代可看作是V k 映射到新的V k ,通過轉換規則和控制流來映射,記作函數F:V k V k 。
迭代演算法本質 :通過不斷迭代,直到相鄰兩次迭代的 k-元組 值一樣,演算法結束。
不動點 :當X i = F(X i )時,就是不動點。
問題 :
定義 :給定偏序集(P, ), 是集合P上的二元關系,若滿足以下性質則為偏序集:
例子 :
定義 :給定偏序集(P, ),且有P的子集S⊆P:
最小上界 :least upper bound(lub 或者稱為join),用⊔S表示。上確界?
定義:對於子集S的任何一個上界u,均有⊔S⊑u。
最大下界 :greatest lower bound(glb 或者稱為meet),用⊓S表示。下確界?
定義:對於子集S的任何一個下界l,均有l⊑⊓S。
若S只包含兩個元素,a、b(S = {a, b})那麼上界可以表示為a⊔b,下界可以表示為a⊓b。
都是基於上下確界來定義的。
定義 :給定一個偏序集(P,⊑),∀a,b∈P,如果存在a⊔b和a⊓b,那麼就稱該偏序集為格。偏序集中的 任意兩個元素 構成的集合均 存在最小上界和最大下界 ,那麼該偏序集就是格。
例子 :
定義 :給定一個偏序集(P,⊑),∀a,b∈P:
當且僅當a⊔b存在(上確界),該偏序集叫做 join semilatice;
當且僅當a⊓b存在(下確界),該偏序集叫做 meet semilatice
定義 :對於格點 (S, ) (前提是格點)的任意子集S,⊔ S 上確界和⊓S下確界都存在,則為全格complete lattice。
例子 :
符號 : = P ,叫做top; = P,叫做bottom。
性質 :有窮的格點必然是complete lattice。全格一定有窮嗎? 不一定,如實數界[0, 1]。
定義 :給定一組格,L 1 =(P 1 , 1 ),L 2 =(P 2 , 2 ),... ,L n =(P n , n ),都有上確界 i 和下確界 i ,則定義格點積 L n = (P, ):
性質 :格點積也是格點;格點都是全格,則格點積也是全格。
數據流分析框架(D, L, F) :
數據流分析可以看做是 迭代演算法 對 格點 利用 轉換規則 和 meet/join操作 。
目標問題:迭代演算法一定會停止(到達不動點)嗎?
(1)單調性
定義 :函數f: L L,滿足∀x,y∈L,x⊑y⇒f(x)⊑f(y),則為單調的。
(2)不動點理論
定義 :給定一個 完全lattice(L,⊑) ,如果f:L→L是 單調 的,並且 L有限
那麼我們能得到最小不動點,通過迭代:f(⊥),f(f(⊥)),...,f k (⊥)直到找到最小的一個不動點。
同理 我們能得到最大不動點,通過迭代:f(⊤),f(f(⊤)),...,fk(⊤)直到找到最大的一個不動點。
(3)證明
不動點的存在性;
最小不動點證明。
問題 :我們如何在理論上證明 迭代演算法有解 、 有最優解 、 何時到達不動點 ?那就是將迭代演算法轉化為 不動點理論 。因為不動點理論已經證明了,單調、有限的完全lattice,存在不動點,且從⊤開始能找到最大不動點,從⊥開始能找到最小不動點。
目標 :證明迭代演算法是一個 完全lattice(L, ) ,是 有限 的, 單調 的。
根據第5小節,迭代演算法每個 節點(基本塊)的值域 相當於一個 lattice ,每次迭代的 k個基本塊的值域 就是一個 k-元組 。k-元組可看作 lattice積 ,根據格點積性質:若L k 中每一個lattice都是完全的,則L k 也是 完全 的。
迭代演算法中,值域是0/1,是有限的,則lattice有限,則L k 也有限。
函數F:BB中轉換函數f i :L → L + BB分支之間的控制流影響(匯聚是join / meet 操作,分叉是拷貝操作)。
總結 :迭代演算法是完全lattice,且是有限、單調的,所以一定有解、有最優解。
定義 : lattice高度 —從lattice的top到bottom之間最長的路徑。
最壞情況迭代次數 :設有n個塊,每次迭代只有1個BB的OUT/IN值的其中1位發生變化(則從top→bottom這1位都變化),則最多迭 ( n × h ) 次。
說明 :may 和 must 分析演算法都是從不安全到安全(是否安全取決於safe-aprroximate過程),從准確到不準確。
以 Reaching Definitions分析為例:
以available expressions分析為例:
迭代演算法轉化到lattice上,may/must分析分別初始化為最小值 和最大值 ,最後求最小上界/最大下界。
目的 :MOP(meet-over-all-paths)衡量迭代演算法的精度。
定義 :最終將所有的路徑一起來進行join/meet操作。
路徑P = 在cfg圖上從entry到基本塊s i 的一條路徑(P = Entry → s 1 → s 2 → ... → s~i )。
路徑P上的轉移函數F p :該路徑上所有語句的轉移函數的組合f s1 ,f s2 ,... ,f si-1 ,從而構成F P 。
MOP :從entry到s i 所有路徑的F P 的meet操作。本質—求這些值的最小上界/最大下界。
MOP准確性 :有些路徑不會被執行,所以不準確;若路徑包含循環,或者路徑爆炸,所以實操性不高,只能作為理論的一種衡量方式。
對於以上的CFG,抽象出itter和MOP公式。
證明 :
結論 :所以,MOP更准確。若F滿足分配律,則迭代演算法和MOP精確度一樣 F ( x ⊔ y )= F ( x )⊔ F ( y )。一般,對於控制流的join/meet,是進行集合的交或並操作,則滿足分配律。
問題描述 :在程序點p處的變數x,判斷x是否一定指向常量值。
類別 : must分析 ,因為要考慮經過p點所有路徑上,x的值必須都一樣,才算作一定指向常量。
表示 :CFG每個節點的OUT是pair(x, v)的集合,表示變數x是否指向常數v。
(1)D:forward更直觀
(2)L:lattice
變數值域 :所有實數。must分析,所以 是UNDEF未定義(unsafe), 是NAC非常量(safe)。
meet操作 :must分析, 。在每個路徑匯聚點PC,對流入的所有變數進行meet操作,但並非常見的交和並,所以 不滿足分配律 。
(3) F轉換函數
OUT[s] = gen U (IN[s] - {(x, _})
輸出 = BB中新被賦值的 U 輸入 - BB中相關變數值已經不是f常量的部分。
對所有的賦值語句進行分析(不是賦值語句則不管,用val(x)表示x指向的值):
(4) 性質 :不滿足分配律
可以發現,MOP更准確。F(X Y) F(X) F(Y),但是是單調的。
本質 :對迭代演算法進行優化,採用隊列來存儲需要處理的基本塊,減少大量的冗餘的計算。
軟體分析——數據流分析2