Altium DesignerDelphiで䜜成された最倧のアプリ玄1500䞇コヌドラむン

゚ンバカデロは、Delphiで構築された商甚アプリケヌションの成功に関しお、Altium Designerに぀いお垞に蚀及しおいたす。 プロゞェクトの芏暡を驚かすこずはできたせん。玄15,000,000行1500䞇行の゜ヌスコヌドがありたす。 Altium Designerは、3Dモデリングを含む電子システムのプリント回路基板の蚭蚈のためのCADシステムです。 今日は、゜フトりェア゚ンゞニアリングの芳点からシステムの技術的なコンポヌネントに぀いおお話したす。







この蚘事の目的は、この分野の専門家の間ですでによく知られおいるAltium Designerを宣䌝たたは宣䌝するこずではありたせん。 プロゞェクトの奥深くで䞀皮の遠足を行い、タスクの耇雑さず実装の芏暡のコンテキストで、その実装の機胜に粟通したす。 これは、初心者の開発者だけでなく、あらゆる意味でビッグデヌタだけでなく倧芏暡システムに関心のある専門家にずっお特に䟿利です。



機胜のコンテキストでシステムの芏暡をすぐに評䟡したしょう。 䞻な機胜モゞュヌルたたはサブシステムを説明しおください。 これは非垞に重芁です CADコンピュヌタヌ支揎蚭蚈ずいう甚語にはかなり広い意味がありたす。これは、単玔な描画アプリケヌションずむンテリゞェントCADの䞡方ず呌ぶこずができたす。 Altium Designerは䜕ができたすか



゚ンゞニアは、動䜜する必芁がある条件から始たり、䜿甚する予定の芁玠ベヌスで終わる、デバむスの仕様を受け取りたたは策定したす。 珟圚、非垞に倚くの堎合、開発はマむクロプロセッサから実行されたす。必芁なタスクを解決するチップが遞択され、ストラップが蚭蚈されおいたす。 その埌、䜿甚されたコンポヌネントのラむブラリが䜜成され、論理/回路図が回路゚ディタに衚瀺されたす。 ここには明確化ず制限が蚭定されおおり、ボヌドが物理的に「飌育される」方法に圱響を䞎える可胜性がありたす。 シグナルむンテグリティ、回路シミュレヌションなど、さたざたなタむプの分析を実行できたす。 その埌、プリント基板の䜜成が始たりたす。 䜿甚される局の数は仕様に埓っお指定され、コンポヌネントが配眮され、信号を送信するトラック、䟛絊電力などが決定されたす ぀たり ボヌドの物理的な衚珟はすでに圢成されおいたす。 その埌、ドキュメントが生成され、生産/印刷ボヌドに送信されるファむルが送信され、アセンブリコンベアに䜿甚されるコンポヌネントのリストが䜜成されたす。



血圧の利点の1぀は、䞊蚘のすべおの操䜜が1぀の補品で互いに非垞に緊密に統合されお実行されるこずです。

システムの䞻な機胜ブロック



機胜サブシステムのそれぞれが非垞に孀立したモゞュヌルであるず蚀うこずは可胜ですか そうですか その堎合、モゞュヌルはどのように実装されたすか これらのdllプラグむンはコア甚ですか これらの同等のアプリケヌションはありたすか それらの間でデヌタを亀換するためのメカニズムは䜕ですか



ほずんどの倧芏暡システムず同様に、Altiumはモゞュラヌアヌキテクチャを䜿甚したす。 基本的なむンフラストラクチャドキュメント、蚭定、メッセヌゞサブシステムなどおよび機胜を実装するモゞュヌルを提䟛するプラットフォヌムがありたす。 最近のバヌゞョンでは、各モゞュヌルはむンタヌフェむスのセットを提䟛する分離されたdllです。 むンタヌフェむスはCOM互換ではありたせんが、盞互運甚可胜です。 このプラットフォヌムではいく぀かの補品が構築されおいたすが、最倧のものはAltiumDesignerです。



モゞュヌルの結合方法に぀いおもう少し。 䜕らかの内郚APIがありたすか Altiumでは、各サブシステムは個別のチヌムによっお開発されおいる可胜性が非垞に高いです。 䞀般的なアむデアはありたすか たたはモゞュヌル間のいく぀かの通信プロトコル ネットワヌク接続はありたすか



はい、もちろん内郚で䜿甚されるAPIがありたす。 基本は、䜿甚されるタむプにいく぀かの制限があるむンタヌフェヌスです。 非垞に広く䜿甚されおいるコマンド/メッセヌゞシステム。



Altium DesignerADに加えお、同瀟の゜リュヌションスタックには、ラむセンスサヌバヌからAltium.Live゚コシステムを提䟛するむンフラストラクチャに至るたで、かなり幅広い範囲の補助補品があるため、倚くのネットワヌクむンタラクションがありたす。 Webサヌビスが積極的に䜿甚されおいたす。 内郚補品の堎合、ほずんどの堎合、倖郚サヌビスを備えたSOAPプロトコルですか 最近-REST。



プロゞェクトのストレヌゞはどのように線成されおいたすか



ここではすべおが非垞に単玔で、プラットフォヌム、補品コア、拡匵機胜、Webプロゞェクトなどのアプリケヌション領域で分けられたSVNリポゞトリがいく぀かありたす。 Assemblaのタスク管理では、Googleドキュメントを積極的に䜿甚しおいたす。



「クラッシュレポヌト」の収集、「システムの構築」、「テストファヌム」でのテスト起動システムなどの内郚サポヌトサヌビスがいく぀かありたす。



本栌的な環境に぀いお話すず、シンプルだが興味深い疑問が生じたす。 システムのメむンりィンドりにはいく぀のメニュヌ項目がありたすか アプリにはいく぀のりィンドりがありたすか 明確で、誰も具䜓的に考えおいるわけではありたせんが、面癜いだけです。 「䜕癟䞇ものリベットやボルトがテレビ塔を建蚭するために行った」ようなものです。 そのような正匏なパラメヌタヌはどうですか



正盎なずころ、このような蚈算に埓事しおいる人はほずんどいたせん。 ドキュメントに関係する同僚はそれに぀いお知っおいるかもしれたせんが、これらのダむアログをすべお最新に保぀必芁がありたす:)



2぀のメむンリポゞトリのdfmファむルを怜玢するず、プラットフォヌムで最倧500、メむン補品で最倧1800の数倀が埗られたす 。 メニュヌ項目の数は、特に動的であり、開いおいるドキュメント、操䜜モヌドなどに䟝存するため、蚈算が非垞に困難です。 しかし、本圓にたくさんありたす:)

基本構成では、玄150-200のdllモゞュヌルがあり、基本リポゞトリでは玄500 dprプロゞェクトで、補品の完党なビルドには40分かかりたすこれは実際には完了しおいたすが、そのようなビルドの結果は曎新システムのナヌザヌが利甚できるようになりたす。



回路がロヌドされたシステムりィンドりのスクリヌンショットを想像できたす。 これは兞型的なオブゞェクトCADりィンドりですか メむンの䜜業甚グラフィックフィヌルド、ツヌルバヌ、オブゞェクトプロパティ゚ディタヌ たたは、いく぀かの機胜がありたすか



基本的に、䜜業はプロゞェクトの論理スキヌム最初のスクリヌンショットず既に物理的な実装2番目のスクリヌンショットで実行されたす。 もちろん、他にも倚くの分野がありたすが、これらは重芁です。



画像



2番目のスクリヌンショット䞋-フレックスリゞッドボヌドの3D衚珟。 通垞、蚭蚈自䜓は2Dモヌドで実行されたす。



画像



むンタヌフェむスの人間工孊を向䞊させるために、暙準のDelphiコンポヌネントを䜿甚したしたか、たたは远加のラむブラリを䜿甚したしたか



ビゞュアルから-DevExpressおよびDreamControlsコンポヌネントは非垞に広く䜿甚されおおり、非垞に倚くの自己蚘述コントロヌルがありたす。

描画モデル-「キャンバス」たたはいく぀かのGPUベヌスのラむブラリOpenGL、DirectXを䜿甚したしたか

回路甚-GDI / GDI +、PCB甹-DirectX



システムはどの皋床開いおいたすか 独自のカスタムプラグむンを䜜成できたすか



以前は非垞にオヌプンでしたが、珟圚では非垞に倚くの拡匵機胜があり、ほずんどの堎合は統合的な性質のものです。 最近のバヌゞョンでは、これが匷調されおいたす-Delphi、C ++、CのSDKがありたす。 近日䞭に、DeveloperEditionのバヌゞョンがリリヌスされ、拡匵機胜の開発がさらに容易になりたす。



ナヌザヌ自動化メカニズムはありたすか スクリプト、マクロ、内郚プログラミング蚀語はありたすか



はい、ナヌザヌに非垞に人気のあるDelphi / Basic / Java-scriptがありたす 。 これは、拡匵機胜の䜜成ず日垞䜜業の䞡方、特にオブゞェクトの耇雑なフィルタヌの蚭定に䜿甚されたす。



画像



開発の歎史に぀いお話したしょう。 プロゞェクトはどこから始たりたしたか



この補品ず同様に、同瀟は85幎に手頃な䟡栌のパヌ゜ナルコンピュヌタが登堎し、プリント基板の䜜成を自動化する必芁性が生じた、かなり前に始たりたした。 Windows甚のECADを䜜成した最初の䌁業の1぀でしたが、今ではそう思われるような明らかなステップではありたせんでした。 その埌、オヌストラリアの蚌刞取匕所ぞのアクセス、䞀連の䌁業ず技術の買収、電子機噚開発のための統合技術スタックの構築がありたした。



Delphiのどのバヌゞョンから、Altium Designereの開発はどのバヌゞョンに埓っお行われたしたか このような倧芏暡なプロゞェクトは移行が難しいこずは明らかですが、成功した詊みはありたしたか



誀解しない限り、補品の最初のバヌゞョンはTurboPascalで䜜成され、次に3日目以降の䞀連のDelphiバヌゞョンが䜜成されたした。 珟時点ではDelphi 2010です。通垞、実甚的な芳点から正圓化されたずきに移行が行われたした。必芁な技術が登堎し、重倧な゚ラヌが修正されたした。 わずかなシステム圢成クラスの倉曎でも、人件費の非垞に正確な蚈算たで、非垞に真剣に考え、゜リュヌションに非垞に慎重にアプロヌチしたす。 サヌドパヌティのラむブラリもあるこずを考慮したす。 私たちは、最新バヌゞョンぞの移行を急いでいたせんが。



ただし、Delphiに加えお、かなりの蚀語ず環境を䜿甚したす。たずえば、䞀郚のモゞュヌルはC ++およびCで実装され、MorfikはWebサヌビスおよびアプリケヌションの䞀郚に䜿甚されたす。



コアモゞュヌルのアヌキテクチャはどのように構成されおいたすか これらの叀兞的なバヌゞョンは、フォヌムコントロヌルアクションレスポンスプロシヌゞャタむプですか、たたはモデルずむンタヌフェむスを分離するなど、より高床な技術がありたすか



このような倧芏暡プロゞェクトには倚くのアプロヌチがありたす。 キヌの1぀は、コマンドの説明ずコマンドの実行コヌドの分離です。 メむンコマンドパネルずメニュヌは、倖郚の蚭定可胜なファむルで説明されおいたす。ドキュメントでは、モデルずディスプレむが倚少明確に分離されおおり、補助的な分離ダむアログは通垞、叀兞的なフォヌムむベントで実装されたす。



環境むンタヌフェむスはほずんど静的ですか、たたは倖郚構成に応じおナヌザヌむンタヌフェむスを生成するための動的なメカニズムがありたすか



むンタヌフェむスの䞀郚は、開いおいるドキュメントによっお異なりたすたずえば、PCBずBOMの堎合、コマンドずメニュヌのセットは根本的に異なりたす。アクティブなラむセンスでどの機胜を䜿甚できるかによっお異なりたす。 ぀たり プラットフォヌムによっお提䟛されるいく぀かの基本的なフレヌムワヌクは倉曎されず、残りはモゞュヌルのモヌドずロゞックによっお決定されたす。



人工知胜の芁玠を備えた耇雑で科孊的なもの、たたは興味深いアルゎリズムがシステムで䜿甚されおいたすか

AIの䜿甚に぀いおはよくわかりたせんが、特にPCBずシミュレヌションの分野では、アルゎリズムベヌスが非垞に耇雑な領域がいく぀かありたす。 たずえば、ボヌドの自動レむアりトは、アルゎリズムの芳点からするず非垞に容量の倧きい領域です。 実装する堎合、トラックをスペヌスに配眮する問題ほずんどのボヌドは倚局​​であり、トラックはレむダヌを倉曎できるだけでなく、ナヌザヌによっお蚭定された膚倧な数の制限を考慮に入れる必芁がありたす-トラック間の最小距離、トラックむンピヌダンス、結果のトポロゞの「ノむズ」高呚波など...この地域は、わが囜ではただ完党に解決されおいたせん。



プリント基板や構造芁玠の党䜓的な寞法など、最適化の機䌚はありたすか マルチパラメヌタヌの最適化 制限の動的蚭定



特にサむズに関しお、最適化を特に芚えおいたせん。 仕様、既存のデバむスの機械モデル、䜿甚されおいるチップのサむズ、むンタヌフェヌスコネクタなどの圢で、寞法はしばしば「倖偎」にあるずさえ蚀うでしょう。



倚くの堎合、プロゞェクトは倚くの制玄、いわゆる 制玄駆動蚭蚈。 ゚ンゞニアは制限を定矩したすが、非垞に耇雑な堎合もありたすが、補品はそれを実珟するのに圹立぀か、違反を犁止したす。 たずえば、簡単なチェックの1぀は、特定のコンポヌネント間のトラック幅、たたはRFパスを配線する際の蚱容角床です。



画像



倖郚生産蚭備をシステムに接続する可胜性は䜕ですか ゚ンゞニアが入力でタスクの正匏な説明を提出し、出力で「ハヌドりェアで」実装された既補のスキヌムを提出するずきに、システムをスタンドの䞀郚ずしお䜿甚するこずは可胜ですか



生産-はいずいうよりもむしろ。 これは隣接しおいるものの、ただ領域ですが、私たちが焊点を圓おおいるものである蚭蚈ず開発からはほど遠いものです。 マシンが完成したボヌドにはんだを塗垃し、コンポヌネントを配眮し、プロセス技術に埓っおボヌドを「焌き付け」、ボヌド自䜓の開発ず完党に亀差しない堎合、最新の組立ラむンを制埡するこずは非垞に困難です。 補造段階のサポヌトは確かにありたすが、これはプロセスの最も重芁な郚分の1぀です。回路基板の補造、組立生産、テストスタンドなどのデヌタの゚クスポヌトず準備です。

接続された機噚の䞭で、プログラマブルロゞックFPGA / FPGAを䜿甚した開発に䜿甚されるデバむスであるNanoboardに蚀及できたす。



モバむルフロント゚ンドの実装に぀いお考えたこずはありたすか 倚くのCADシステムには、クラむアントワヌクステヌション甚のモバむルオプションがすでにあるこずが知られおいたす。 それらの有甚性はただ十分に明らかではありたせんが、おそらく、倧芏暡なCADシステムたたはCADシステム内でのモバむルアプリケヌションの適甚可胜性に぀いお独自のビゞョンをお持ちですか



珟圚、そのような蚈画はありたせん。 あなたが気づいたように、それらの目的ず必芁性は完党に明確ではありたせん。 MCADで玙の図面を眮き換えるのず同じように、圌らは特に仕事にそれらを䜿甚するこずはできたせん...



同瀟にはモバむル開発に関䞎する郚門がありたすが、これはADず盎接関係のない近隣地域の独立した地域です。



オブゞェクト構造が非垞に発達しおいるず思いたす。 開発者間のやり取りにグラフィカルな衚蚘法を䜿甚しおいたすか たたは、責任範囲ず機胜モゞュヌルの既存の配垃により、゜ヌスコヌドをシステムに関する単䞀の知識゜ヌスずしお䜿甚できるようになるようなプログラマヌの資栌ですか



いいえ、グラフィック衚蚘は䜿甚されたせん。 実践が瀺すように、私たちの堎合、開発者の盎接的なコミュニケヌションず十分なレベルの資栌がより効果的です。



システムが耇雑になるほど、テスト、特に回垰テストの芁件が厳しくなりたす。 このプロセスをどのように管理したすか 自動テスト、手動テスト、開発者ずテスタヌの関係



重芁な分野をカバヌする自動テスト、手動回垰テスト、高床なベヌタテストがありたすが、私の意芋では、テストは状況を改善できる分野の1぀です。 たずえば、珟圚解決しようずしおいる問題の1぀は、開発の初期段階でのQA゚ンゞニアの関䞎です。



アルティりムの人事ポリシヌずは䜕ですか かなり閉じたチヌムはありたすか たたは、あなたは垞にオヌプンで、䟡倀あるスペシャリストを雇う準備ができおいたすか



この分野では、䌚瀟はオヌプン以䞊です。 私の知る限り、珟時点では、キ゚フず䞊海のオフィスで優秀な開発者を積極的に探しおいたす。 ずころで、面癜い瞬間です。オヌストラリアの䌚瀟のRDコアの重芁な郚分は、ロシア語を話す゚ンゞニアで構成されおいるこずがわかりたした。



たず第䞀に、あなたは専門家を犠牲にしおあなたのスタッフを拡倧したすか、それずも゜フトりェア開発でキャリアを築き始めたばかりの初心者のために空垭がありたすか



通垞、開発者は優れたスキルず経隓、たたは独自の胜力を持っお䌚瀟に来たす。 リズムずタスクに参加する初心者は非垞に困難です。



知識、スキル、経隓を持぀ナニヌクなスペシャリストを招埅した堎合、平均的な垂堎よりも高い絊䞎を支払う準備はできおいたすか



はい:)。



それでも、Altiumは補品䌚瀟であり、補品に携わる人に倧きく䟝存しおいたす。 ここでは、問題の正匏な偎面に぀いおは説明したせん。このため、圓瀟には特別な人anastasia.demchenko@altium.comがおり、垞に連絡を取り合っおいたす。



開発者ずしおAltiumで䜜業するには、Delphi以倖に䜕を知る必芁がありたすか 「はんだごおを手に」生たれた「電子技術者」になる必芁がありたすか たたは、数孊ずCAD理論を非垞によく知る必芁がありたすか それずも、さたざたな問題を解決した経隓のある有胜なプログラマヌである必芁がありたすか



いいえ、私たちの䌚瀟で働く必芁はありたせんでした。「はんだごおを手にしお」生たれなければなりたせんでした:)もちろん、䞀郚の分野の電子工孊たたは数孊の知識はプラスですが、必須の芁件ではありたせん-私たちが遭遇するタスクの範囲は非垞に広いです



補品開発戊略ずは䜕ですか 今の優先事項は䜕ですか 自動化の改善 機胜拡匵 耇雑な技術システムの他の芁玠を蚭蚈するなど、関連するフィヌルドに入力しようずしおいたすか



いく぀かの領域があり、それらは䞻にECADシステムの占有垂堎シェアの拡倧を目的ずしおいたす。 ぀たり 既存の補品ずの統合を拡倧するこずを陀いお、メカニカルCADに移行するこずはたずありたせんが、たずえば、3Dでボヌドを蚭蚈する機胜を確実に向䞊させたす。



䌝統的な質問。 䟋えば、Altiumの需芁に応えるために、専門的な開発レベルにたで成長したい初心者プログラマヌに䜕をアドバむスできたすか



䞀般的な堎合の答えはここでは普遍的です-経隓を積む、問題を解決するこずを孊ぶ、優れた技術的基盀を持぀。 いく぀かのオヌプンなECAD プロゞェクトがあり、それらぞの参加は非垞に䟿利です。



All Articles