問題タブ [uml]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2879 参照

interface - インターフェース使用時の UML 集約

各クラスが実装クラスではなく、他のクラスのインターフェースへのリンクを持つように、UML で 2 つのクラス間の集約関係を表すにはどうすればよいですか?

たとえば、iFoo を実装するクラス Foo と、iBar を実装する Bar があります。Foo には iBar 型のメンバー変数が必要であり、Bar には iFoo 型のメンバー変数が必要です。

2 つの実装クラス間で集計を作成すると、メンバーはスーパークラスではなく、実装クラスの型になります。また、インターフェイス間の集約は UML では無効です (あまり意味がありません)。

0 投票する
2 に答える
769 参照

coding-style - コードの可読性を向上させるために、Cockburn スタイルのテキスト UML ユース ケース コンテンツをコード ベースに埋め込むことは可能ですか?

コードでCockburnのユースケースを試す

複雑な UI コードを書いていました。私は、魚、凧、および海面 (Martin Fowler の著書「UML Distilled」で説明) を使用した Cockburn の使用例を採用することにしました。UI ワークフローのステップを表す静的定数に対して論理条件をテストできるように、Cockburn のユース ケースを静的 C# オブジェクトでラップしました。ラップされたオブジェクトとそのパブリック コンタントが名前空間を介して英語のユース ケースを提供するため、コードを読んで、それが何をしているかを知ることができるという考えでした。

また、リフレクションを使用して、説明したユース ケースを含むエラー メッセージを送り出すつもりでした。アイデアは、スタック トレースにいくつかの UI ユース ケースの手順を英語で含めることができるということです....DSL コンパイラを作成する必要なく、ミニで疑似軽量のドメイン言語を実現する楽しい方法であることが判明しました。だから私の質問は、これがこれを行う良い方法であるかどうかです? 誰かが同じようなことをしたことがありますか?


c# の例のスニペットが続きます

3 つのユーザー コントロール (多数のクリック可能な要素) を持つ aspx ページがあるとします。ユーザーは 1 つの特定のユーザー コントロール内のものをクリックする必要があり (おそらく何らかの選択を行う)、UI は選択が成功したことをユーザーに視覚的に知らせる必要があります。ここで、その項目が選択されている間、ユーザーはグリッドビューを参照して他のユーザー コントロールのいずれかで項目を見つけ、何かを選択する必要があります。これは簡単に管理できるように思えますが、コードが見苦しくなります。

私の場合、ユーザーは、メイン ページによってキャプチャされたすべての送信済みイベント メッセージを制御します。このようにして、ページは UI イベントの中央プロセッサのように機能し、ユーザーがクリックしたときに何が起こるかを追跡できました。

そのため、メインの aspx ページで、最初のユーザー コントロールのイベントをキャプチャします。

したがって、MyCompany.MyApp.Web.UseCases 名前空間には、次のようなコードが含まれている可能性があります。

クラスに埋め込まれたワークフローのユース ケースは、内部クラス、静的メソッド、列挙型など、最もクリーンな名前空間を提供するものであれば何でもかまいません。最初に何をしたか覚えていませんが、写真はわかります。

0 投票する
3 に答える
512 参照

oop - 不適切な OO 設計の問題 - Java の一般的な機能が必要ですが、実装方法がわかりません

私は Java で小さな UML クラス エディターを開発していますが、主に個人的なプロジェクトです。プロジェクトを作成する時間があれば、SourceForge で終了する可能性があります。

このプロジェクトは非常に高度です。クラスの作成、移動、インターフェイスの作成、リンクの作成などを行うことができます。

私が取り組んでいるのは、クラス/インターフェースのプロパティを設定し、新しいクラス/インターフェースを作成するためのダイアログ ボックスです。

たとえば、JDialog を拡張するクラスがあります。これは、クラスとインターフェイスを編集するためのメインの「ウィンドウ」です (まあ、それぞれにクラスがあります)。これには、JPanels を含む JTabbedPane が含まれます。

この JPanel は実際にはカスタムのものです。JPanel を拡張する抽象クラスを作成しました。このクラスはコンポーネント (そのサブクラスによって定義される) を使用し、それらの値を JTable (JPanel にも含まれる) に追加します。

たとえば、クラスの属性を編集する場合、JPanel には、属性の名前を入力するための JTextField と、そのタイプを入力するための別の JTextField が含まれます。これらのフィールドに入力されたデータを処理するための一連のボタンもあります。「保存」をクリックすると、JTextFields に入力したデータが JTable に追加されます (Enterprise Architect 風)。抽象クラスを拡張する具体化されたクラスは、制御を定義し、行が JTable に追加または削除されたときにデータをどう処理するかを決定します。ただし、JTable の管理は抽象クラスの責任です。

これが私の問題です。オブジェクト指向では、クラスにはメソッドがあり、インターフェースにもメソッドがあります。クラスまたはインターフェイスのメソッドを格納するために、同じ具体的なカスタム JPanel (AttributesPanel (作成した抽象 JPanel クラスを拡張する)) を使用できると自分に言い聞かせました。

ただし、クラスは、作業中のクラスまたはインターフェイスのコピーを (属性として) 保持する必要があります。そうすれば、メソッドが追加されたときに、editedClass.addMethod() (またはeditedInterface.addMethod()) を呼び出すことができます。問題は、クラスまたはインターフェイスのどちらで作業しているかを判断する方法がないことです。

私が見つけた解決策は醜いです.AttributesPanelクラスに属性editClassと属性editInterfaceを保持してください。クラスまたはインターフェイスのどちらを編集しているかに応じて、これらの属性の 1 つが null になり、他の属性は null になりません。

あなたが私に尋ねると、それはかなり醜いです。実際、地獄の第 9 サークルで燃えている (実際には凍っている) 間、私の頭の中でソフトウェア エンジニアリングの教師が苦痛に悲鳴を上げているのが聞こえます。

この設計上の問題を解決する簡単な方法は、"ObjectWithMethods" という名前のインターフェイスを作成することです。このインターフェイスは、Class および Interface クラスで実装されます。そうすれば、AttributesPanel クラスに ObjectWithMethods パラメーターを配置するだけで済みます。

しかし、それは「ObjectWithAttributes」または「ObjectWithBlahBlah」という名前のクラスを作成する必要があるということですか? ここに「TheDailyWTF」の良い可能性があると思います...その上、ドメイン オブジェクト (クラス、インターフェイス、ノート、リレーションシップ (UML エディター用)) を変更したり、新しいインターフェイスを作成したりする必要はないと思います。いくつかのUIの考慮事項....

どう思いますか?

もっと説明が必要です(私は今とても疲れていて、この心の状態では(特に英語で-私の母国語はフランス語です)かなりひどく正しい傾向があるため...)、聞いてください。これを編集します質問。

乾杯、

ギヨーム。

0 投票する
3 に答える
1571 参照

architecture - UMLコネクタの方向

UMLコンポーネント図でアーキテクチャをモデル化する場合、コネクタのさまざまな属性を同時に表示するにはどうすればよいですか?好き

  • ビジネスオブジェクト情報フロー(A-> B、B-> A、A <-> B)
  • 要求/応答の方向
  • 同期/非同期動作

シーケンス図のような他の種類の図を知っています。ただし、この情報をコンポーネント図に表示することには価値があります。

アソシエーション(単にコンポーネントが接続されていることを示す)または「ロリポップ」(要求/応答)を超えて何が可能ですか?

0 投票する
6 に答える
1975 参照

language-agnostic - シーケンス図は、コードと同じ深さでロジックを現実的に捉えることができますか?

私は常に UML シーケンス図を使用しており、UML2 表記法にも精通しています。

しかし、私は自分がやろうとしていることの本質を捉えるためにしかそれらを使用しません. 言い換えれば、ダイアグラムは常に実際のコードの上の抽象化レベルに存在します。それらを使用して自分が何をしようとしているのかを正確に説明しようとするたびに、非常に多くの水平スペースと非常に多くの alt/loop フレームを使用することになり、努力する価値がありません。

理論的には可能かもしれませんが、この詳細レベルで図を実際に使用した人はいますか? もしそうなら、あなたは例を提供できますか?

0 投票する
10 に答える
1227 参照

uml - 最初に開発ソリューションを設計/スケッチ/描画してから開発しますか? もしそうなら、どのように?

私は、ビジネスでテクノロジーをより有効に活用したいと考えている意思決定者と多くの仕事をしています。百聞は一見にしかず、システムのプロトタイプを何らかの図で作成することは、常に議論に大いに役立ちます。私は、Visio、UML (ある程度)、マインド マップ、フロー チャート、およびモックアップされた WinForms を使用して、これらのスポンサーのビジョンを開始し、全員が同じページにいることを確認しました。私は常に、共通のプロセスを使用してビジネス ビジョンを開発プロセスに結びつけ、「問題を解決する機能的なもの」という同じ目的に到達できるようにする方法を探しているようです。

開発に 1 週​​間しかかからないアプリケーションでも機能するように設計プロセスにアプローチする方法についての提案や Cliff のメモを探していますが、大規模なプロジェクトにも使用できます。

これが UML の領域を掘り下げていることは承知していますが、さまざまな種類の図を適切に使用するためのガイドを見つけるのに苦労していることに気付きました。

システム/アプリケーションのビジョンを捉え、プロジェクトのスポンサーに提示するために何を使用しますか? (1行のコードを書く前にすべて)...

0 投票する
2 に答える
2460 参照

model - UML のドメイン モデルで汎化関係を示すことはできますか

クラス図でできることは理解していますが、ドメイン モデルの UML で汎化関係を示すことができるかどうかを尋ねたいと思いますか? クラス図を除いて、汎化関係を表示するドメイン モデルの例はあまり見ませんでした。可能でない場合、ドメイン モデル内のエンティティがエンティティ A またはエンティティ B またはエンティティ C またはエンティティ D などであることを表示する最良の方法は何ですか?

0 投票する
5 に答える
657 参照

uml - ユースケース図でアクターができないことを示していただけますか?

ユース ケース図で、アクターが実行できないことを示すことができますか?

それとも、特定のユースケースに結び付ける線がないという事実のために、単に暗示されているのでしょうか?

0 投票する
9 に答える
22113 参照

automation - テキスト ファイルからの UML ダイアグラムのレンダリング

テキスト ソース ファイルから .svg 形式の UML 画像を作成できる優れたツールまたはツール チェーンはありますか? この質問の理由は、これらのイメージの生成を自動化して、この一連のイメージを手動で作成および更新する必要がないようにしたいからです。

0 投票する
4 に答える
5187 参照

class - 自動車販売店のドメイン モデリングまたはクラス図

自動車販売店向けに UML でドメイン モデルまたはクラス図を描こうとしています。モデルで試乗を提示する方法にこだわっています。1つの方法は、予約クラスを用意してから、サブクラスとして試乗することです。ディーラーはアフターセールス車両サービスも提供しているので、予約/予約クラスをスーパークラスとして、次に車両サービスと試乗を2つのサブクラスとして持つことができます.

もう 1 つの方法は、予約クラスの下で、顧客クラスを試乗クラスおよび車両サービス クラスと直接関係させることです。

ディーラーでは、新車および中古車とその部品も販売しています。

ディーラーはまた、車の販売のための融資を提供しています。

試乗クラスは車両クラスと関係がありますか、それとも展示と試乗クラスに別のクラスがありますか?

もう 1 つの問題は、潜在的な顧客と、販売やサービスに関する問い合わせをモデルに表示するにはどうすればよいかということです。ディーラーは、潜在的な顧客がマーケティング目的で許可されている場合、その詳細を保存したいと考えています。顧客用と潜在顧客用の 2 つのクラスを作成しますか?それとも、顧客クラスの属性を使用するだけで実現できますか?