ソフトウェア工学

システム開発ライフサイクル内で働く専門家、学者、学生向けのQ&A

8
ナッシシュナイダーマン図は実際に使用されていますか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 6年前休業。 私は構造化プログラミングのコースでそれらについて学びましたが、それらが分析段階または文書化の目的でその後使用されるのを見たことはありません。Pascal(Delphi)のような高度に構造化された言語についてもそうではありません。 実際にナッシシュナイダーマン図を使用している人はいますか?はいの場合、それらを作成/維持するためにどのツールを使用していますか? 編集: またはあなたはそれらについて聞いたことがありませんか?

10
あなたが見たいくつかの良いエンドユーザープログラミングソリューションは何ですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 6年前休業。 エンドユーザープログラミングでは、通常のエンドユーザー、つまりプログラマー以外のユーザーが、最小限のトレーニングまたは指示でプログラムをカスタマイズしたり、新しいプログラムを作成したりできます。 App Inventor for Androidは最近の例の1つですが、エンドユーザープログラミングの最も一般的な例はスプレッドシートでしょう。 エンドユーザープログラミングのどの例を使用したか、または有用だと思いますか?システムの哲学は何ですか?どのような課題が残っていますか?

1
Mementoデザインパターンの「Memento」クラスは何ですか?
ギャングオブフォーの「メメント」デザインパターンでは、Mementoクラスは実際には私に値を提供しない役に立たないラッパーのように見えます。 それはなんのためですか?String(ウィキペディアの例のように)オブジェクトを単に渡すことができない理由はありますか?

2
現在のJITは、生成されたマシンコードをランタイム統計に基づく分岐予測用に最適化しますか?
一部のJVMは、Javaバイトコードをネイティブマシンコードにコンパイルします。そのために適用できる最適化はたくさんあります。最近、CPUが誤った予測を行うと、分岐操作がCPUをブロックし、パフォーマンスに大きな影響を与える可能性があることも学びました。 収集された実行時統計に基づいて、JVMがCPUがマシンコードをより簡単に生成して正しい予測を行うかどうか誰かが知っていますか?
8 java  jvm  jit 

2
RESTサービスの一意のリクエストIDのHTTP応答ヘッダー
RESTサービスでは、すべての応答で一意のリクエストIDを送り返したいと思います。内部プロジェクトのデバッグに役立つだけでなく、将来サービスを使用する可能性のあるサードパーティにサポートを提供する場合にも役立ちます。 すべてのRESTリクエストがレスポンスボディになる必要があるわけではないため(多くの場合、低レベルのREST APIはステータスコードと説明のみを利用します)、このリクエストを送り返す必要があるため、レスポンスヘッダーを使用する必要があると判断しました。 ID。 可能であれば、途中でプロキシによって取り除かれる可能性が低い HTTP応答ヘッダーを使用するようにします。 多数のクライアントがモバイルデバイスであり、クライアントとサーバー間の「興味深い」ネットワークトポロジにバインドされているため、これは非常に重要です。 ただし、同じサービスが、自社のファイアウォール/プロキシを使用する他の企業にも販売される可能性があります。 このため、よく知られているヘッダーの代わりにカスタム応答ヘッダーを使用するという考えを根本的に覆いました。 私の現在の優勝既知のヘッダーはETagヘッダーですが、それはほぼ正しいですが、それは完全ではありません- ETagはリソース用であり、リクエストではありません(つまり、同じリソースに対する2つの別々のリクエストは合法的に同じを返しますETag)。さらに、それを使用すると、エンティティタグを他の目的で実行できないことを意味します。 誰か良いアイデアはありますか? 更新 Pragmaヘッダーは使用されているように見えますが、Asp.Net WebAPI内での書き込みに問題があります。 SOに関する関連質問です。

3
いつ、どのように、そしてなぜ1つの(Java)フレームワークをアップグレードする必要がありますか?
概要としての短い要約: 私たちは小さなJava Web開発チームであり、JSF、Hibernate、Seamなどのさまざまなフレームワークとライブラリを使用してアプリケーションを作成し、それらすべてを一緒にJBoss ASにデプロイします。 当初、アプリは組み立てられ、いくつかの機能が追加されて潜在顧客に表示するショーケースが形成されました。研磨が行われ、アプリがリリースされ、承認されて機能し、時間が経つにつれ、追加機能が追加され、バグが修正され、新しいバグが発生しています。 高いバス要因とスタートアップレースのために、開発は手に負えなくなりました。システムのコアアーキテクチャを完全に理解していないのに、ますます多くの機能が追加されました。それはまだ機能していますが、システムが元の場所から別の場所に進化したため、常に落とし穴があり、最初はさまざまなショートカットが開発をスピードアップするために行われました-回避策が使用されているため、これはすべて戻ってきて開発が遅くなりますプロジェクトに新しい開発者を紹介するのはかなり難しい。 今、私は物事の整理と整理を進めています-バグ追跡システムのインストール、テスト/品質の文化の構築、自動テストの実行方法の検討、コードレビュー(私たちが欠けていたすべての豪華な専門的なもの)はじめに)クラスの階層や関数を整理するなどの一般的なリファクタリングを行い、ものを使いやすくします。これですべてが少し良くなりますが、やるべきことはまだたくさんあります。私は最初にシステムを構築した人ではなく(以前のプログラマーは去りました)、それを経験していません(現在2.5年間開発していますが、これが今のところ私の唯一の「オープンワールド」の経験です)。行う。 これが私の問題です: リファクタリングは常に良いものであり、私は物事を簡単にするために常にそれを行っていますが、基本的なアーキテクチャ(つまり、システムが依存するライブラリ、アプリケーションサーバー、データベースなど)をいつ、どのように、なぜアップグレードする必要があるのか​​、というのは私を困惑させます。 例: 現在、JBoss 4.2.2を使用しています。JBoss7.1のどこかをすでに読んでいますが、それでもいいですか?これをどのように評価できますか? 大きなブロッカーのように見えるSeam 2.2を使用します(より高いJBossバージョンでは機能せず、JSF2をサポートしていません)。さらに、Seamの代わりにJEE機能を使用するように指示するソースが表示されます。 基本的に、私は上記の例で述べたものだけでなく、この問題の一般的なアプローチに興味があります-別のシステムの別のライブラリの別の時間にこの問題に遭遇する可能性があります(または他の誰かが同様の問題に直面する可能性があります) 。 だから、ポイントは何ですか?私は最新の状態で最先端のライブラリのみを使用する必要がありますか、それとも私が持っているものを使い続けるべきですか?私が使用している技術は文字通り死んだ馬であり、飛び降りることをどのように認識しますか?このようなテクノロジーのアップグレードはどのくらいの頻度で表示されますか? そして、一般的な「アップグレード方法」の横にある別の質問。私のソフトウェアが「専門家によって作成された」ものと呼ばれる可能性があることをどのように認識しますか?一般的なプログラマーのセンス以外に、よくできたソフトウェアのJoelテストはありますか?

2
C#でのシリアル化されたオブジェクトの保存と保守
C#でシリアル化されたオブジェクトを格納および維持するためのベストプラクティスは何ですか?適用できる戦略やパターンはありますか? 私がこれまで信じてきたのはこれです: スペースと速度の両方の点でXMLよりもJsonを優先しますが、大きなデータセットの場合、XMLはLINQ to XMLを介してデータをクエリ/マイニングする方が簡単です。 すべてのプロパティについて、シリアル化された名前に明示的にマップします。将来、プロパティの名前を変更する必要がある場合、シリアル化されたデータは壊れません。属性はこれに役立ちます。 将来データを大量に移行する必要がある場合に備えて、シリアル化されたオブジェクトにある種のバージョン情報を保存します 更新:(難しい方法を見つけた) アプリケーション全体およびすべてのバージョンで、すべての日時を統一された方法で保存します。フォーマットとタイムゾーンの両方について。

3
機能とユーザーストーリーに関してアプリケーションの側面をどのように扱いますか?
バックログを作成するとき、エラー処理やフィードバックなどのアプリケーションの側面など、非常に多くのユーザーストーリーに適用されるいくつかの要件があります。これらをどのように含めるのですか(各ユーザーストーリーで#includeディレクティブを使用せずに)?エラープレゼンテーションを機能として扱い、「システムが例外をキャッチし、情報をユーザーに表示する」など、この機能のユーザーストーリーを用意する必要がありますか?

8
STLはOOで実装されていますか?
Adaptor、STLに実装されたIteratorなど、いくつかの設計パターンがあります。 それは、STLがOOの概念で実装されているということですか? OOとC ++のテンプレートパーツの関係は何ですか? オブジェクト指向を正当化する仮想メンバー関数がテンプレートと矛盾することを知りましたが、これは正しいですか?

7
呼び出されていない関数を見つけるにはどうすればよいですか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、 Software Engineering Stack Exchangeのトピックとなるようにします。 3年前休業。 定義されているが使用されていない関数があるように見えるいくつかのC / C ++コードを見ています。これは、コードをトレースして確認するのにかなり退屈なプロセスです。私はいくつかの調査を行ったが、このタイプの分析を行うことができるツールはたくさんある。 このコードが実際に使用されていないことを確認するための最良のツールまたは代替の方法に関する経験やヒントを誰かと共有できますか?

3
ストアドプロシージャがデータベースから行を削除していることを確認するための単体テストの作成方法
ユニットテストは初めてですが、以下についてサポートが必要です。 ユニットテストの作成方法を学ぶための小さなプロジェクトを作成しました。アプリケーションのいずれかのフォームの機能により、ユーザーがユーザーテーブル(およびマッピングテーブルの他の行)から削除されます。 現在、これをテストするために作成した単体テストは、必要なオブジェクトを設定し、次にデータアクセスメソッドを呼び出すビジネスルールメソッド(ユーザーIDを渡す)を呼び出して、テーブルの行を削除するストアドプロシージャを実行します。 これは、何かが正常に削除されているかどうかをテストする正しい方法ですか?単体テスト/セットアップメソッドは、最初にいくつかのテストデータを挿入する必要がありますか?

1
WPFとフリーコントロールの将来 [閉まっている]
現在のところ、この質問は、Q&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張ディスカッションを誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 私は、一般にリリースしたい個人的なプロジェクトに取り組んでいきます。私はSilverlightを使用しており、XAMLはフルタイムの仕事なので経験があります。 BlendとXAMLでUIを作成するのは楽しいです。私もC#言語の大ファンです。今、LINQなしで何ができるかわかりません。 とにかく、私の個人的なプロジェクトでWPFを使用することを検討していました。Web上の多くのコントロールはアイテムの支払いであるようです。かなりの数の無料コントロールがあることがわかった唯一の場所は、codeplex上のWPF拡張フレームワークです。 財務アプリケーションを作成したいのですが、トランザクションデータを入力できる強力なデータグリッドタイプのコントロールが必要です。私はそのようなコントロールを無料でネットで見つけられませんでした。Microsoft製品用の無料のコミュニティライブラリ/コントロールがあまりないようです。 それで、WPFが私にとって正しい道なのかと思っていました。Windows 8でのWPFの使用に関する情報が見つかりませんでした。このテクノロジに対するMicrosoftの計画は知りません。 WPFの代わりにUIに別のものを使用する方が良いでしょうか?
8 c#  .net  microsoft  wpf  ui 

1
プロジェクトで作業しているのが私だけの場合、どうすれば自分を確認できますか?
私は自分の分野の仕事の合間にあり(ソフトウェア開発とは関係ありません)、最近、会社のいくつかのアプリケーションを作成する一時的な副契約を取得しました。これらの特定のアプリケーションに取り組んでいるのは私だけです。アプリケーションが正常であることを確認するために自分で確認する方法はありますか?私はコードをテストし、エッジケースを考えて、サンプルデータを生成し、ソース管理を使用します。しかし、これらのアプリケーションで作業しているのは私だけなので、簡単に見つけられるバグを見逃してしまうのではないかと心配しています。チーム環境。アプリケーションが完成したら、それでよければ、または締め切りが過ぎると、会社はそれを本番環境で使用する予定です。何かアドバイス?決まり文句を使用するのではなく、今のところ、私は「自分の能力を最大限に発揮するように」働き、それで十分であることを願っています。 ちなみに私は厳格なNDAと機密資料に関する法律の両方に基づいているため、実際にソフトウェア開発に携わった友人とアプリケーションについて話し合うことはありません。(明白でない場合は、私は貿易ではソフトウェア開発者ではありません。情報技術/コンピューターサイエンスの他の側面での私の経験も制限されており、ほとんど手を振るだけです)。

3
実践のための小さなアセンブリ言語プロジェクト[終了]
現在のところ、この質問は、Q&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張ディスカッションを誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 私はx86アーキテクチャ用のアセンブリ言語を学んでいます。しかし、私は自分のスキルをテストできるように、練習問題を見つけることができません。私のスキルを向上させるために、いくつかの練習問題またはいくつかの小さなアセンブリ言語プロジェクトを提案できますか? 前もって感謝します
8 assembly 

2
関数の一部を取り、個々の関数を作成するプロセスをどのように呼び出しますか?
これには専門用語があったことは知っています。それが何だったか思い出せない。 タイトルを明確にする必要がある場合、ここに私が意味します。これが古いコードの場合: Result foobar(Param1,Param2,Param3) { code that does abc code that does xyz code that does asdf more code that does something } そしてそれは次のように変更されます: SomeResult do_xyz(SomeParams) { code that does xyz } Result foobar() { code that does abc do_xyz(args); code that does asdf more code that does something }

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.