ソフトウェア工学

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

2
Microsoftのエンタープライズライブラリ(EntLib)を使用するのはいつが適切ですか?
エンタープライズライブラリを使用するタイミングと使用しないタイミングが正確にわかりません。そのため、まったく学習できません。学習を始めるのには十分な理由があると感じています。おそらくいつかそれを使うつもりです。 EntLibを使用する必要がある場合はありますか? いつ使用しないのですか?
10 microsoft 

10
lo-fi(非インタラクティブ)UIプロトタイプを作成するにはどうすればよいですか?
現在、いくつかの基本的なプロトタイプを一緒に投入する作業に取り組んでおり、一部は要件を収集し、一部は最終的なUIを設計しています。 現時点では、ポストイットノートを使用して画面を構築しようとしています。黄色のノートは情報、ピンクはアクション(ボタンまたはメニュー)です。情報を簡単に移動、削除、追加できるという考えです。しかし、私はもっと効率的な方法があると確信しています。 開発者が非インタラクティブなUIプロトタイプを効率的に作成するための推奨される方法は何ですか? なぜ? ペン、紙、付箋紙のバージョンをいくつか試しましたが、それらはリードバルーンのように下がりました(おそらく私の描画スキル)。最終的に私はBalsamiqを使用しましたが、これは今のところほとんどのユーザーに好まれており、プロトタイプであることがわかります。悲しいかな、一部の人々は、最初にいくつかのlo-fiプロトタイプを介してアプリケーションが何をすべきかを理解し、何かにコミットする前に「画面上で何かを見たい」という考えにまだ問題を抱えています。

5
カンバンでWIP制限を指定する方法
典型的なかんばんボードを考えてみましょう: 入力、分析、開発準備、開発、構築準備、テスト、リリース準備 各列のWIP制限を指定するにはどうすればよいですか?どんな式?
10 kanban 

10
誰かがWeb開発に仮想マシンを使用していますか、そしてその理由は?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 6年前休業。 仮想マシンをWeb開発に使用したい開発者が何人かいます。これを行う他の人はいますか?ある場合、なぜそれを行うのですか?仮想化されていない環境ではなく、VMで開発する場合の長所/短所はありますか? VMでは処理が遅いと思います。

2
DVCSにコミットされていない変更の非合理的な恐怖症がすべてあるように見えるのはなぜですか?
SVNのバックグラウンドから来て、DVCSシステムでの作業に慣れるのが最も難しいのは、時限爆弾のように、コミットされていない変更をすべての人がどのように考えるかということです。 Mercurialでは、変更をフェッチしようとして、作業コピーにコミットされていない変更がある場合は、フープをジャンプして、入ってくる変更だけをマージする必要があります。ブランチを切り替えてみますか?それはあなたにすべてを棚上げすることを強いるでしょう、そしてあなたは反対側ですぐにそれをすべて棚から外さなければなりません。(SVNはこれらのシナリオのいずれでも問題ありません。) Gitもほぼ同じです。私はプロジェクトで別の開発者と並んで作業しており、彼のコミットの1つを私のフォークにチェリーピックしようとしました。私の作業コピーのコミットされていない変更が、彼のコミットで変更されたファイルとは完全に異なるファイルにあるため、許可されませんでした。 マージオプションすらありません。どうやら最初に変更を隠しておく必要があります! 人がそのような極端な注意を払って完全に無害なものを扱うとしたら、私はそれを「恐怖症」と呼びます。それは精神障害と見なされるべき非合理的な恐怖です。しかし、GitとMercurialはインテリジェントで合理的な開発者の2つの異なるチームによって設計されたので、私が知らないことを彼らが知っているのかどうか疑問に思う必要があります。 コミットされていない変更に対するこの姿勢を正当化する技術的な理由はありますか?もしそうなら、なぜ問題の問題はDVCSにのみ存在するように見えるのですか?

2
リポジトリパターンを使用したTDD
私の新しいプロジェクトでは、TDDを試すことにしました。そして、最初に問題が発生しました。アプリケーションで最初にしたいことは、データソースからデータを読み取る機能を提供することです。この目的のために、私はリポジトリパターンを使用したいと思います。そしていま: テストがリポジトリー・インターフェースの実際の実装を対象としている場合、私はデータベースにアクセスできるクラスをテストしますが、それは避けなければならないことを知っています。 テストがレポジトリパターンの実際の実装ではない場合、私はうまくテストします...ただ模擬します。これらの単体テストでテストされる製品コードはありません。 私はこれを2日から考えていますが、それでも適切な解決策を見つけることはできません。私は何をすべきですか?

5
コンパイラー作成者は実際にマシンコードを「理解」する必要がありますか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 6年前休業。 ちょっと変わった質問かもしれません。 C ++コンパイラ(またはVM以外の言語)を書く人:生の機械語を読み書きできる必要がありますか?それはどのように機能しますか? 編集:私は特に、他のプログラミング言語ではなく、マシンコードにコンパイルするコンパイラについて言及しています。

3
オープンソースソフトウェアライセンスをルートに保持する必要があるのはなぜですか?
ほぼすべてのオープンソースソフトウェアライセンスは、ユーザーが保護しているプロジェクトのルートに完全なライセンスを含めることを要求します(または少なくとも弁護士が要求することを推奨します)。 私が話したある弁護士は、これはCD時代の遺産であり、宝石のケースに完全なライセンスを含めることが必要だったと示唆しています。 しかし、今日、私たちはクラウド時代に生きています。たとえば、完全なライセンスを自分のWebサイトでホストし、そのライセンスのタイトル+ URLをソースファイルのヘッダーに含めることができないのはなぜですか? おまけ:確立されたライセンスをそのままルートに保持する必要があると一般的に合意している場合、FSFのOSIがURLで参照できるライセンスを承認していないのはなぜですか。

5
REST APIの概念
REST APIの設計について3つの質問があります。誰かに光を当ててもらいたいと思っています。私は何時間も執拗に検索しましたが、私の質問に対する答えがどこにも見つかりませんでした(たぶん、何を検索すればいいのか分かりませんか?)。 質問1 私の最初の質問は、アクション/ RPCに関するものです。しばらくREST APIを開発していて、コレクションやリソースの観点から物事を考えることに慣れています。しかし、私はパラダイムが適用されないように見えるいくつかのケースに遭遇し、これをRESTパラダイムと調整する方法があるかどうか疑問に思っています。 具体的には、リソースを変更するとメールが生成される場合があります。ただし、後で、ユーザーは以前に送信された電子メールを再送信することを具体的に示すことができます。電子メールを再送信しても、リソースは変更されません。状態は変更されません。発生する必要があるのは単にアクションです。アクションは特定のリソースタイプに関連付けられています。 ある種のアクション呼び出しをリソースURI(例:)と混合することは適切/collection/123?action=resendEmailですか?アクションを指定してそれにリソースIDを渡す方がよいでしょうか(例:)/collection/resendEmail?id=123?これはそれについて取り組むのに間違った方法ですか?従来(少なくともHTTPでは)実行されるアクションはリクエストメソッド(GET、POST、PUT、DELETE)ですが、これらは実際にはリソースを使用したカスタムアクションを許可していません。 質問2 URLのクエリ文字列部分を使用して、コレクションをクエリするときに返されるリソースのセットをフィルター処理します(例:)/collection?someField=someval。次に、APIコントローラー内で、そのフィールドと値とどのような比較を行うかを決定します。これは実際には機能しないことがわかりました。APIユーザーが実行する比較のタイプを指定できる方法が必要です。 私がこれまでに作ってみた最高のアイデアは、APIのユーザーはフィールド名(例えばへの付属物として、それを指定することができるようにすることです/collection?someField:gte=somevalどこでリソースを返す必要があることを示すために- someField何でも(> =)以上に等しいsomevalです。これは良いアイデアですか?悪いアイデアですか?そうであれば、なぜですか?指定されたフィールドと値で実行する比較のタイプをユーザーが指定できるようにするより良い方法はありますか? 質問3 s /person/123/dogsを取得するようなURIがよく見られます。最終的に私はそのようなURIを作成することで、実際には特定のIDでフィルターされたコレクションにアクセスしているだけだと考えているので、私は一般にそのようなものを避けました。これはと同等です。REST URIが2つ以上のレベル()になる正当な理由はありますか?persondogsdogsperson/dogs?person=123/collection/resource_id
10 api  rest 

3
コンパイラの作成コンパイラ-使用方法と機能に関する洞察
これは、言語設計で使用される概念をフレームワークの形で抽象化することを目的とした抽象化プロジェクトへの姉妹プロジェクトに焦点を当てた一連の質問の一部です。姉妹プロジェクトはOILexerと呼ばれ、一致時にコードインジェクションを使用せずに、文法ファイルからパーサーを構築することを目的としています。 構造タイピングに関連するこれらの質問に関連する他のいくつかのページは、ここに表示され、使いやすさはここにあります。フレームワークに関する問い合わせに関連するメタトピックと投稿する適切な場所は、こちらにあります。 特定の文法から解析ツリーの抽出を開始するところまで来ています。その後、DFAを使用して順方向パスを識別する再帰的降下パーサーが続きます(ANTLR 4のLL(*)と同様)。私はそれを開いて洞察を得るだろうと考えました。 パーサーコンパイラでは、どのような機能が理想的ですか? これまでのところ、実装されているものの簡単な概要です: テンプレート 特定の時点で何が有効であるかを把握しながら、予測を先読みします。 ルール内のリテラルを取得し、それらがどのトークンからのものであるかを解決するルール「非文字化」。 非決定的オートマトン 確定的オートマトン トークン認識のためのシンプルな字句状態マシン トークンの自動化方法: スキャン-コメントに役立ちます:Comment:= "/ *" Scan( "* /"); 減算-識別子に便利です:識別子:= Subtract(IdentifierBody、Keywords); 識別子がキーワードを受け入れないようにします。 エンコード-ベースN遷移のシリーズXカウントとしてオートメーションをエンコードします。 UnicodeEscape:= "\\ u" BaseEncode(IdentifierCharNoEscape、16、4); 16進数の4遷移を使用して、Unicodeを16進数でエスケープします。これとの違い:[0-9A-Fa-f] {4}は、Encodeを使用した結果の自動化で、許可される16進値のセットをIdentifierCharNoEscapeのスコープに制限します。したがって、\ u005cを指定すると、エンコードバージョンは値を受け入れません。このようなことには重大な注意事項があります。控えめに使用してください。結果として生じる自動化は非常に複雑になる可能性があります。 実装されていないのはCST生成です。これを機能させるには、適切なコンテキストを引き継ぐように決定論的自動化を調整する必要があります。 興味のある方のために、T *y♯プロジェクトの元のフォームをかなり印刷したものをアップロードしました。各ファイルは他のすべてのファイルにリンクする必要があります。それらに従うために個別のルールでリンクを開始しましたが、時間がかかりすぎました(自動化の方が簡単だったでしょう)。 さらにコンテキストが必要な場合は、それに応じて投稿してください。 編集5-14-2013:特定の言語でステートマシンのGraphVizグラフを作成するコードを書きました。 これがAssemblyPartのGraphVizダイグラフです。言語の説明でリンクされているメンバーは、そのルールのダイグラフを含む相対フォルダーにrulename.txtを持っている必要があります。例を投稿してから一部の言語の説明が変更されました。これは、文法に関することを簡略化するためです。これが興味深いgraphviz画像です。

2
個人としてApp Storeにリリースする方法
iOSアプリを作成しましたが、それをApp Storeにリリースしたいと思います。私は個人なので、会社だけでリリースされるのではなく、私だけです。 自分の名前で無料アプリをリリースするのは一般的ですか?もしそうなら、提出するのに適切な著作権情報は何でしょうか?
10 ios  appstore 

7
ビューでのセキュリティ条件文の使用はMVCの違反ですか?
多くの場合、ユーザーに表示されるもの(Webページなど)は、部分的にセキュリティチェックに基づいています。私は通常、ユーザーレベルのACLセキュリティをシステムのビジネスロジックの一部と見なしています。ビューがセキュリティを明示的にチェックして条件付きでUI要素を表示する場合、ビジネスロジックを含むことでMVCに違反していますか?

4
機械学習を使用してソーラーアレイのミラーを目指していますか?
私は、次のEnergy Innovationsの設計と同様に、いくつかの独立したミラーが太陽光を集光する太陽光コレクタについて考えています。 この太陽電池アレイの組み立てには欠陥があるため、次の仮定(またはその欠如)を進めています。 ソフトウェアは各ミラーの「位置」を知っていますが、この位置が実際の世界や他のミラーとどのように関連しているかはわかりません。これは、ミラーのキャリブレーションが不十分であるか、1つのミラーに影響を与えるが他のミラーには影響を与えない可能性のあるその他の環境要因を説明します。 ミラーが一方向に10ユニット移動し、次に反対方向に10ユニット移動すると、最初に開始した位置に戻ります。 機械学習を使用してミラーを正しく配置し、コレクターに光の焦点を合わせたいと思います。私はこれを最適化問題としてアプローチし、ミラーの位置を最適化してコレクター内の熱と出力を最大化することを期待しています。 問題は、ノイズの多い高次元空間で小さなターゲットを見つけることです(各ミラーが2つの回転軸を持っていると考えます)。私が予想する問題のいくつかは次のとおりです。 曇りの日、完璧なミラーの配置に遭遇しても、その時期は曇っている可能性があります ノイズの多いセンサーデータ 太陽は移動するターゲットであり、パスに沿って移動し、毎日別のパスをたどります-いつでも太陽の正確な位置を計算できますが、その位置がミラーとどのように関連しているかはわかりません 私の質問は太陽電池アレイではなく、この「ノイズの多い高次元空間の小さなターゲット」の問題に役立つ可能性のある機械学習手法です。ソーラーアレイについては、この質問の触媒であり、良い例であると述べました。 ノイズの多い高次元空間でこのような小さなターゲットを見つけることができる機械学習技術はどれですか。 編集: いくつかの追加の考え: はい、現実の世界で太陽の位置を計算できますが、ミラーの位置が現実の世界とどのように関係しているかはわかりません(何らかの方法で学習した場合を除きます)。太陽の方位角が220度、太陽の仰角が60度で、鏡が(-20、42)の位置にあることがわかります。教えてください、その鏡は太陽に正しく位置合わせされていますか?分からない 非常に高度な熱測定があり、「この熱レベルでは、2つのミラーが正しく位置合わせされている必要がある」ことがわかっているとしましょう。問題は、2つ以上のミラー(25個以上)が正しく位置合わせされていることです。 私が検討した1つの解決策は、太陽の方位角と仰角を入力として受け取り、各ミラーの2つの軸に対応する各ミラーの2つの値を持つ大きな配列を出力するニューラルネットワークを使用して、正しい「アライメント関数」を近似することでした。しかし、どのトレーニング方法が最適かわかりません。 より多くの考え: ミラーにはソフトウェアがアクセスできる座標系がありますが、ソフトウェアはこの座標系が現実の世界とどのように関連しているかを知りません。ミラーが(4、42)の位置にあるとします。どういう意味ですか?私にはわかりませんし、ソフトウェアもわかりません。しかし、ミラーを移動してから(4、42)に戻すと、ミラーが以前と同じ位置になることは知っています。さらに、2つのミラーが(4、42)の位置にあっても、現実の世界では反対方向を向いている場合があります。 はい、多くの高品質センサーがあれば、問題は簡単に解決できます。Energy Innovationsは、私が知る限り、廃業しています。おそらく、彼らがたくさんの本当に素晴らしいセンサーを使用していて、人々が「私はソーラーパネルを買うだけで、安くなっている」と言ったためでしょう。 システム内の唯一のセンサーは、コレクターヘッドにあります。

7
PHPで最も信頼性の高いセッションストレージは何ですか:Memcache、データベースまたはファイル?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 4年前休業。 PHPセッションを処理するための最良かつ最も安全な方法は何ですか。セッションを保存する最良の方法は次のとおりです。 データベース(信頼性は高いが、ボトルネックが高く、速度が遅い、データベース使用率の高いWebサイトには適さない)? Memcache(超高速ですが、より多くのセキュリティ問題が分散し、サーバーの再起動時にデータが失われる可能性、およびキャッシュがいっぱいになるとデータが失われる可能性があります)? ファイル(デフォルトのオプション、ファイルI / Oからの読み取りと書き込み、セキュリティの低下などから遅いと思います)。 どの方法が最適ですか?これらのアプローチのそれぞれの問題点と良い点は何ですか?
10 php  session 

5
非常に大きなアプリケーションをテストする方法
私は非常に大きいPHPアプリを持っています。通常、2〜3人の開発者がフルタイムで取り組んでおり、変更を加えてバグ(咳機能)を作成するところまで来ています。ソフトウェアは言うまでもなく複雑ではありません。多くのことが起こっているだけです(35〜コントローラー、同じモデルなど)。 注意していても、このビューを変更すると(要素のIDを微調整)、特別な条件(片足でログアウトしている)で発生するajaxクエリが壊れるのは簡単です。 ユニットテストは最初に思い浮かぶものですが、別のアプリで試してみたので、それらを忘れたり、テストを記述してからテストを実行したりすることに多くの時間を費やすことは簡単です。ライブ配信する前にコードがチェックされるステージング環境があります。 多分パートタイムのQ / Aの人が必要ですか? 誰もが何か提案/考えを持っています。

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