不知火舞的被虐|伊人天伊人天天综合网|博洛尼亚天气|任你懆这里只有精品4|久久美日韩精品久久|掌中之物漫画免费阅读观看|0丨d老妇

面向?qū)ο蟮陌咐?/h1>
面向對象視角認識基于模型的系統(tǒng)工程
摘要 軟件工程經(jīng)歷了從面向過程(Process-Oriented)到面向?qū)ο?/em>(Object-Oriented)的轉(zhuǎn)變,實踐證明了這種轉(zhuǎn)變的成功。相對軟件工程更為一般化的系統(tǒng)工程,也遇到了系統(tǒng)日益復雜的問題。基于模型的系統(tǒng)工程(MBSE,Model-Based Systems Engineering)是對建模(活動)的形式化應用(formalized applicationof modeling),以便支持系統(tǒng)要求、設(shè)計、分析、驗證和確認等活動,這些活動從概念設(shè)計階段開始,持續(xù)貫穿到設(shè)計開發(fā)以及后來的所有壽命周期階段。MBSE采用從統(tǒng)一建模語言(UML,Unified Modeling Language)發(fā)展而來的系統(tǒng)建模語言(Systems Modeling Language,SysML)來構(gòu)建系統(tǒng)模型,其本質(zhì)是面向?qū)ο?/em>的系統(tǒng)工程(Object-Oriented Systems Engineering,OOSE),也將獲得類似面向?qū)ο?/em>的軟件工程(Object-Oriented Software Engineering,OOSWE)的優(yōu)勢,而且MBSE的工作流程,應以面向?qū)ο?/em>為指導原則來探索和實踐。 關(guān)鍵字 面向?qū)ο?/em>;基于模型的系統(tǒng)工程;系統(tǒng)建模語言;面向?qū)ο?/em>的系統(tǒng)工程 軟件工程中存在面向過程和面向?qū)ο?/em>兩種思路。我們又知道,軟件工程是系統(tǒng)工程的特例,SysML又源自于UML,系統(tǒng)工程是否也存在面向過程和面向?qū)ο?/em>之分呢?從傳統(tǒng)的系統(tǒng)工程(TraditionalSystems Engineering,TSE)發(fā)展到基于SysML的MBSE,是否也是系統(tǒng)工程思路的重大轉(zhuǎn)變——從面向過程到面向?qū)ο?/em>?MBSE又能否借鑒面向?qū)ο?/em>帶來的優(yōu)勢去處理日益復雜的工程系統(tǒng)?本文作一簡要論述。
展開
Mathematica 面向對象編程解決方案
面向?qū)ο?/em>原理 什么是面向?qū)ο?/em>?維基百科說,“面向?qū)ο?/em>程序設(shè)計(英語:Object-oriented programming,縮寫:OOP),指一種程序設(shè)計范型,同時也是一種程序開發(fā)的方法。它將對象作為程序的基本單元,將程序和數(shù)據(jù)封裝其中,以提高軟件的重用性、靈活性和擴展性”。 C語言是面向過程的,我們把要做的事情分成一個個函數(shù)來完成,比如我要寫一個公交車自動收費系統(tǒng),那么我需要為公交車行駛,公交車報站,公交車開關(guān)門,乘客上車,乘客交費,乘客刷卡等行為編寫相應的函數(shù)。 后來人們發(fā)現(xiàn),程序里的很多函數(shù)有很強的分類性與隔離性,公交車行駛可能和乘客上車完全不相干;而且人類認知世界的方式也是先知道有某樣東西,然后知道它有什么用。因此,一種面向?qū)ο?/em>的程序設(shè)計思想逐漸誕生。 面向?qū)ο?/em>里最核心的概念就是類和對象。拿生物作類比,類就是一種物種,對象就是一個特定的生物;類是抽象的概念,對象是存在的實體。因此,對于“貓”這個類,它有性別,毛色,年齡等數(shù)據(jù)屬性(稱為成員變量),還有捉老鼠,睡覺等行為屬性(稱為成員函數(shù));而一只特定的貓,就會擁有它自己特定的性別,毛色和年齡,但對于成員函數(shù),相同類的對象是相同的,只是函數(shù)執(zhí)行時會用到對象的成員變量值而計算出不同的結(jié)果。 類概念的引入,使得我們可以把相關(guān)性很強的函數(shù)與數(shù)據(jù)進行封裝,增強程序的模塊化程度;同時面向?qū)ο?/em>更加適宜我們對一個大型項目進行建模。 那么,C++里的面向?qū)ο?/em>是什么樣子的呢?我們來看個例子。 假設(shè)我們有兩個學生對象 tom和kate,他們都有speak函數(shù)來說出自己的名字, tom.speak(); kate.speak(); 運行結(jié)果可能是 My name is Tom. My name is Kate.
展開
面向對象有限元程序設(shè)計及其VC++與Matlab混合編程實現(xiàn)
面向?qū)ο?/em>有限元程序設(shè)計及其VC++ 與Matlab 混合編程實現(xiàn) 史貴才1, 2,葛修潤1 (1. 中國科學院 巖土力學重點實驗室,武漢 430071;2. 常州工學院 土木建筑工程學院,江蘇 常州 213002) 摘 要:應用面向?qū)ο?/em>方法來研究有限元,是對有限元新方法的有益嘗試和創(chuàng)新性發(fā)展。通過對比面向過程和面向?qū)ο?/em>的程 序設(shè)計方法,討論了面向?qū)ο?/em>方法與有限元程序設(shè)計相結(jié)合的優(yōu)點,并簡要回顧了國內(nèi)外面向?qū)ο?/em>的程序設(shè)計方法的研究進 展。應用面向?qū)ο?/em>的程序分析方法,建立了三維脆塑性有限元分析類庫。采用VC++和Matlab 混合編程的手段,設(shè)計了基于 Windows98/2000/NT 操作平臺的面向?qū)ο?/em>的三維脆塑性有限元分析軟件,成功地分析了國內(nèi)某大型水電站地下硐室群圍巖穩(wěn) 定性,驗證了該面向?qū)ο?/em>有限元分析程序的有效性和實用性。 面向?qū)ο?/em>有限元程序設(shè)計及其VC++與Matlab混合編程實現(xiàn).pdf
展開
鳥瞰 ABAQUS/CAE 的 PYTHON 二次開發(fā),“面向對象”的用武之地
鳥瞰 ABAQUS/CAE 的 PYTHON 二次開發(fā),“面向?qū)ο?/em>”的用武之地 在《神乎其技!“面向?qū)ο?/em>“的 ABAQUS PYTHON 二次開發(fā)體驗》中(https://www.yqgqt.org.cn/content/post/441445),“封裝”立方體的示例實際上是對 abaqus/cae模型操作方面的Mdb接口進行優(yōu)化,起到提高編碼效率、提高代碼復用率、降低二次開發(fā)難度的作用。 那“面向?qū)ο?/em>”在 Abaqus/cae python 二次開發(fā)中,有哪些用武之地?簡要來說,有以下兩大方面。 一、優(yōu)化二次開發(fā)接口 Abaqus/cae python 二次開發(fā)的接口主要在三個方面,(1)模型操作,Mdb接口;(2)結(jié)果數(shù)據(jù)接口,Odb;(3)可視化接口,Session。這些接口擁有大量“成員變量”和“成員函數(shù)”,從“面向?qū)ο?/em>”二次開發(fā)“封裝”的角度來看,這些接口在二次開發(fā)“封裝”的最內(nèi)層。開發(fā)者可以根據(jù)自己二次開發(fā)任務(wù)的特點進行“封裝”,還可以根據(jù)需要把最原始的接口跟“封裝”過的接口再次“封裝”。 二、模塊化開發(fā)流程 開發(fā)任務(wù)千差萬別,但流程具有一致性。只要有能夠抽取出“共性”的地方,就會有“面向?qū)ο?/em>”技術(shù)發(fā)揮的空間。實際上,“開發(fā)流程的模塊化”相比于“優(yōu)化二次開發(fā)接口”更具神奇效果。 預 告 希望掌握“面向?qū)ο?/em>”技術(shù),提升 Abaqus/cae python 二次開發(fā)技能的朋友,請“關(guān)注” huoli 技術(shù)鄰賬號。相關(guān)的能力提升課程即將推出!
展開
面向?qū)ο髨D1
面向對象“的 ABAQUS PYTHON 二次開發(fā)體驗
面向?qū)ο?/em>”的 ABAQUS PYTHON 二次開發(fā)體驗 昨天,從“面向?qū)ο?/em>”的角度帶大家鳥瞰 ABAQUS PYTHON 二次開發(fā)。采用的例子簡單,可能大家領(lǐng)會不到“面向?qū)ο?/em>編程”的魔力。(“鳥瞰”一文請看https://www.yqgqt.org.cn/content/post/441360) 今天這篇文字將緊密結(jié)合 ABAQUS/CAE 的腳本運行功能,帶領(lǐng)大家一瞥“面向?qū)ο?/em>編程”的高效和神奇。 長長的命令 接觸過 ABAQUS PYTHON 二次開發(fā)的朋友,應該對下面這種長長的命令有印象。 mdb.models['Model-1'].parts['Part-1].edges[1] # 代碼的含義是:選取Model-1模型中,Part-1部件的序號為1的輪廓線。 在 python 腳本中,可以用 highlight( )、unhighlight( ) 這兩個函數(shù)將選取的線、面,進行高亮(取消高亮)顯示。完整的代碼如下: # 高亮顯示序號為1的邊 highlight(mdb.models['Model-1'].parts['Part-1].edges[1]) # 取消高亮顯示序號為1的邊 unhighlight(mdb.models['Model-1'].parts['Part-1].edges[1]) 可見代碼變得更長了,編寫腳本的效率低了,閱讀腳本也不夠清晰明了。如果采用“面向?qū)ο?/em>編程”的“封裝”技術(shù),情形就會截然不同。 “封裝”立方體 用一個“class”(類型)把選取立方體“線”、“面”的操作“封裝”起來。python代碼如下: (根據(jù) ABAQUS/CAE 命名的特點,在代碼中為模型名稱、部件名稱定義了不傳參數(shù)進去時候的默認值) 把這段代碼保存在名為“script.py“的文本文件中。
展開
加筋土擋墻建模,“面向對象”ABAQUS PYTHON 二次開發(fā)
加筋土擋墻建模,“面向?qū)ο?/em>”ABAQUS PYTHON 二次開發(fā) 因為滿鋪包裹式加筋土的 建模參數(shù)明確、形狀較簡單、同時完全手工進行各種情況的 反復建模很繁瑣,所以滿鋪包裹式加筋土的建模過程,非常適合作為“面向?qū)ο?/em>”ABAQUS PYTHON 二次開發(fā)實戰(zhàn)的例子。 下面為大家展示本次“戰(zhàn)果”。 “面向?qū)ο?/em>”,一脈相承 本文與前面《鳥瞰》、《神乎》兩篇帖子是一脈相承的,如果對“面向?qū)ο?/em>編程”感到陌生,請回頭先瀏覽一下前文(https://www.yqgqt.org.cn/content/post/441360)(https://www.yqgqt.org.cn/content/post/441445)。 在本次實戰(zhàn)中,“滿鋪包裹式加筋土擋墻”被抽象為一個“對象”,以 geogrid 的名稱“封裝”在“類型”(class)里面:(見下圖) 圖中 def 所定義的,就是“對象”的“成員函數(shù)”或“方法”。我已經(jīng)把建模需要的步驟、流程都變成了一個個拿來即用的方法。
展開
鳥瞰 ABAQUS/CAE 的 PYTHON 二次開發(fā),“面向對象”該如何理解 ?
鳥瞰 ABAQUS/CAE 的 PYTHON 二次開發(fā),“面向?qū)ο?/em>”該如何理解 ? 如果你嘗試去了解或?qū)W習ABAQUS/CAE 的PYTHON 二次開發(fā),你就會被告知:“ABAQUS/CAE 的 PYTHON 二次開發(fā)是面向?qū)ο?/em>編程的。” 這篇文字就帶各位從“面向?qū)ο?/em>編程”這個角度來初步認識一下ABAQUS/CAE 的 PYTHON 二次開發(fā)。 換個表達去理解 首先,“對象”可以換成“實例”這個詞語來表達,可以樸素的理解為“實際的例子”、“實實在在的例子”。 過去面向過程編程,變量都是一個一個松散的進行定義,比如為了描述下面這個邊長20cm的立方體模型,會像這樣定義變量和函數(shù)來描述它: # L長度 W寬度 H高度 L = 20.0 W = 20.0 H = 20.0 # 這個函數(shù)用來計算體積 def volume (L, W, H): V = L * W * H return V 而面向?qū)ο?/em>編程會這樣來描述它: # 邊長變量 和 計算體積的函數(shù) 被包含在 model 這個類型里面 class model (object): def __init__(self, L, W, H): self.L = L self.W = W self.H = H def volume (self): return self.L * self.W * self.H 兩種方式的區(qū)別是非常明顯的。如果有兩個尺寸不同的立方體模型,前一種方法為了區(qū)分不同立方體模型的參數(shù),也許會給參數(shù)定義下標,L1, W1, H1, L2, W2, H2。
展開
汽車覆蓋件模具的面向對象UG編程技術(shù)
本文通過UG/API、GRIP以及VC++等工具,利用面向?qū)ο?/em>技術(shù),對汽車覆蓋件模具的數(shù)控編程進行了二次開發(fā),開發(fā)出適合于汽車覆蓋件模具的數(shù)控編程系統(tǒng)。 二、傳統(tǒng)的NC編程方法及其缺點汽車覆蓋件模具的特點決定了NC編程的復雜性。一般來講,一套模具的加工需要數(shù)十個NC程序來完成。傳統(tǒng)的編程方法,是一個過程式編程,對于每一個NC編程操作都要經(jīng)過這一流程,即使有時僅僅修改其中的一個參數(shù)。因此造成設(shè)定參數(shù)的過程較為繁瑣。另外,計算機生成刀位軌跡需要占用一定的時間,一般約占編程時間的30%以上,這樣也影響了編程效率和程序的質(zhì)量。 三、面向?qū)ο?/em>技術(shù)在NC編程中的應用 1.面向?qū)ο?/em>的參數(shù)定義在本文講述的編程系統(tǒng)中,把類和對象的概念引入到參數(shù)定義中。各類或對象之間具有層次關(guān)系,各層自上向下有繼承的特性。通過類的繼承可以派生一個類,在派生類中不但可以添加新的成員,而且可以通過函數(shù)覆蓋來修改其基類,使之更易于使用。在汽車覆蓋件模具類A中定義了汽車覆蓋件模具的共有參數(shù)和特征。拉深模類B1是由A中派生出來的,它繼承了A類的所有參數(shù)和特征,同時在B1類中定義了拉深模的共有參數(shù)和特征,同理向下派生。
展開
(轉(zhuǎn))Java程序員應該了解的10個面向對象設(shè)計原則
為了平等地比較兩個對象,我們用類本身而不是客戶端類來做比較。這個設(shè)計原則的好處是沒有重復的代碼,而且很容易對其進行修改。 總之,希望這些面向?qū)ο?/em>的設(shè)計原則能幫助你寫出更靈活更好的代碼。理論是第一步,更重要的是需要開發(fā)者在實踐中去運用和體會。 來源:CSDN 資訊
如何理解面向對象編程
后來學了一點皮毛,也以為面向?qū)ο?/em>編程很優(yōu)秀,那它和面向過程哪個更好,其實面向過程語言如python 也是可以寫面向過程程序的。所以說程序語言看你學要什么功能選擇性學習就好。面向?qū)ο?/em>的特點很鮮明,還是很好用的。
abaqus python 面向對象二次開發(fā)—— geogrid 加筋土擋墻插件(正式版) ¥10
視頻鏈接:【GUI, 二次開發(fā)】面向?qū)ο?/em>的 abaqus python 插件 —— geogrid (https://www.yqgqt.org.cn/college/video/c13463?nagivator=course) 在 geogrid 加筋土擋墻插件開發(fā)期間,寫了多個帖子、錄制了多個視頻,對插件的功能、腳本編譯方法進行了介紹。 現(xiàn)在 geogrid 已經(jīng)可以實現(xiàn)墻面各種傾角、任意加筋長度組合的加筋土擋墻建模功能。插件可以在 GUI 界面和命令行使用。 geogird 既是一個用來演示“面向?qū)ο?/em>”abaqus python 二次開發(fā)的例子,也是直接能用來分析真實擋土墻的插件。 如果,大家希望通過我發(fā)布的視頻內(nèi)容入門面向?qū)ο?/em>”abaqus python 二次開發(fā)。強烈建議下載源文件進行實際操作,在下一次進行代碼精講視頻發(fā)布時有一個鋪墊,同時帶著問題來看代碼精講的視頻。在后面代碼精講視頻里面,會逐步提供未編譯的 python 腳本源代碼。 如果用到 geogrid 進行實際擋土墻的分析,那歡迎反饋你們的工程需求,我將免費添加相應功能。在插件的功能不斷豐富的同時,錄制更多免費視頻 讓大家對插件的維護、版本迭代、升級、代碼重構(gòu),有貼近實戰(zhàn)的了解。 在跟隨 geogrid 插件開發(fā)之路上,你會掌握如何擺脫現(xiàn)在的面向過程思維,從軟件工程的角度創(chuàng)造出一款屬于自己的接口豐富、功能完備、準商業(yè)級的前(后)處理插件。 插件更新、維護: 付費下載后,請在評論區(qū)留下郵箱,插件更新或維護之后會通過郵件方式發(fā)送新版本。 加入qq群(280631123),對軟件使用的問題可以在群里交流。 插件需求征集: 在下方留言里,留下你想要的插件。我先收集插件需求,針對排在前幾名的,進行投票,最后進行插件開發(fā)。在開發(fā)過程中,錄制免費學習視頻供大家參考學習。
展開
面向?qū)ο髨D2
python 源文件 ——“面向對象“的 ABAQUS PYTHON 二次開發(fā)體驗 ¥5
面向?qū)ο?/em>“的 ABAQUS PYTHON 二次開發(fā)體驗》(https://www.yqgqt.org.cn/content/post/441445)一文中的源代碼。 原文有源代碼的截圖,如果對 python 熟悉,可以自己照著敲一遍(代碼不多,也有助于理解),如果不熟悉 python 建議在這里付費下載。因為自己敲代碼可能會遇到“縮進空格、標點輸入法、輸入錯誤”的小困擾,導致無法運行代碼,先下載體驗再去理解會更節(jié)省時間。 注意:下載源文件之后,要把后綴的“.txt”去掉。(.py 文件不支持上傳)
面向對象 ABAQUS PYTHON 二次開發(fā),加筋土擋墻參數(shù)化建模工具 ¥20
加筋土擋墻建模,“面向?qū)ο?/em>”ABAQUS PYTHON 二次開發(fā)》(https://www.yqgqt.org.cn/content/post/441859)的源文件。 源文件的使用: 將下載的 .pyc 文件放到類似這樣的路徑下 “D:\SIMULIA\CAE\2019\win_b64\code\python2.7\lib”。使用說明參考上述《實戰(zhàn)》一文,視頻演示如下。 源文件版本說明: 在 CAE 命令行導入 geogrid ,并實例化之后,輸入以下命令,可以看到建模工具的版本信息。 # 導入 geogrid from geogrid import * # 實例化 g = geogrid( ) # 查看版本信息 g.version 軟件更新、維護: 付費下載后,請在評論區(qū)留下郵箱,軟件更新或維護之后會通過郵件方式發(fā)送新版本。 加入qq群(280631123),對軟件使用的問題可以在群里交流。 加筋土擋墻參數(shù)化建模工具的說明: (內(nèi)容待續(xù))
展開
三種系統(tǒng)開發(fā)方法的比較(轉(zhuǎn))
第四,對象可以按其屬性來歸類,一個類的上層可以有父類,下層可以有子類,形成類的層次結(jié)構(gòu),子類可以通過繼承機制獲得其父類的特性。 (3)開發(fā)階段劃分 采用面向?qū)ο?/em>法,首先要進行系統(tǒng)調(diào)查和系統(tǒng)分析,作為今后系統(tǒng)開發(fā)的依據(jù)。然后,按照前期進行系統(tǒng)調(diào)查和系統(tǒng)分析的結(jié)果,進行一下階段的工作。 面向?qū)ο?/em>分析階段 面向?qū)ο?/em>分析階段是一個抽取和整理用戶需求,并建立問題域精確模型的過程。此階段的關(guān)鍵是利用信息模型技術(shù)識別問題域中的對象實體,標識對象之間的關(guān)系,確定對象的屬性和操作,建立系統(tǒng)的對象模型。一般稱之為面向?qū)ο?/em>的分析,即OOA。 面向?qū)ο?/em>設(shè)計階段 對系統(tǒng)分析的結(jié)果進一步抽象、歸類和整理,確定系統(tǒng)的物理模型形式。一般稱之為面向?qū)ο?/em>的設(shè)計,即OOD。 面向?qū)ο?/em>實現(xiàn)階段 根據(jù)面向?qū)ο?/em>設(shè)計的結(jié)果,利用面向?qū)ο?/em>的程序設(shè)計語言進行編程。一般稱之為面向?qū)ο?/em>的程序設(shè)計,即OOP。 面向?qū)ο?/em>測試階段 運用面向?qū)ο?/em>的技術(shù)進行軟件或系統(tǒng)的測試和調(diào)試。 (4)方法特點 與人類的思維方式一致。 面向?qū)ο?/em>方法使系統(tǒng)的描述及信息模型的表示與客觀實體相對應,,與人類使用現(xiàn)實世界的概念抽象地思考問題和解決問題的思維方式相一致。 穩(wěn)定性好 面向?qū)ο?/em>的系統(tǒng)是基于問題域的模型,而不是以算法和應完成的功能分解而建立起來的,所以當對系統(tǒng)的功能需求發(fā)生變化時,并不會引起系統(tǒng)結(jié)構(gòu)的整體變化。只要現(xiàn)實世界的實體是相對穩(wěn)定的,以對象構(gòu)造的系統(tǒng)也就是比較穩(wěn)定的。 可重用性好 把對象的屬性和操作捆綁在一起,可提高對象的內(nèi)聚性,并減少與其他對象的耦合。對象所固有的封裝性和信息隱蔽機理,使得對象的內(nèi)部實現(xiàn)與外部隔離,而由此具有較強的獨立性。
展開
面向對象有限元編程|自定義求解器之共軛梯度法
共軛梯度法是方程組求解的一種迭代方法。這種方法特別適合有限元求解,因為該方法要求系數(shù)矩陣為對稱正定矩陣,而有限元平衡方程的系數(shù)矩陣正好是對稱正定矩陣(考慮邊界條件)。同時,共軛梯度法也適合并行計算。 算法原理 對于方程組 ,假定 是對稱正定矩陣,采用共軛梯度法算法步驟如下:取初始值 這里