ソフトウェア工学

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

1
製品品質のコードの特徴または機能は何ですか?
フリーランスプロジェクト(webアプリ)のコードを配信するのはこれが初めてです。また、コードの配布の経験があまりないため、プログラムを展開する準備ができているかどうかを判断するのに苦労しています。 私の理解では、本番レベルのコードには次の特性が必要です。 フォールトトレランス:キャッチされない例外を乗り切る能力 データの冗長性:ユーザーデータを失うことはありません スケーラビリティ:追加の負荷を処理するためにアプリを書き直す必要はありません テストカバレッジ:テストされた「まともな」量のコード これらの特性には、プログラム自体に固有のものもあれば、環境に関連するものもあります(複数のクラスターを使用しているかどうか)。ただし、環境に依存する特性でさえ、プログラムの設計方法に影響を与えます。 私の質問は次のとおりです。本番用コードを本番用ではないコードと大きく異なる他の特徴は何ですか? 質問の範囲を減らすために、ウェブアプリのみに焦点を当ててください。 編集:私は自分の状況に固有の特性を尋ねることで、範囲を絞り込もうとします。私はフリーランサーとして、VPSの購入から構成、コードの記述、デプロイまで、すべてを担当していました。プロジェクトとそのセットアップは十分に文書化されていますが、お客様はそれを維持することができません。アプリは複雑ではありませんが、多くの外部コンポーネントに依存しているため、これらのコンポーネントが変更/消失した場合、実際に壊れる傾向があります。目標は、顧客の介入なしで可能な限り長く続くことができるサービスをセットアップすることです。

1
AndroidのバンドルAPIがリストではなくArrayListを受け入れる理由
私はAndroidを使い始めActivityたばかりで、状態をバンドルに保存するチュートリアルを行っているときに、より一般的なListインターフェースを受け入れる代わりに、Bundleputメソッドが期待していることに気付きましたArrayLists。 例: Bundle.putCharSequenceArrayList(key, value) Bundle.putIntegerArrayList(key, value) Bundle.putParcelableArrayList(key, value) Bundle.putStringArrayList(key, value) 私たちのほとんどは、オブジェクトがインターフェイスによって参照される必要があることを示唆している効果的なJavaの項目52に精通しているので、このAPI決定の背後にある理由は何だったのかと思います。 あるArrayListおそらくアンドロイドの優先リストの実装?

4
スクラムはマルチプロジェクト環境に適していますか?
私は近い将来に職場を動かす予定です。彼らは私のスクラムの経験とそれが彼らのビジネスにどのように関係するかについて非常に興味があると思います。私はそれが彼らの環境で機能するかどうかを理解しようとしています。 私の現在の仕事場には、2つの製品/ 2つのバックログ/ 2つの別々のチームがあります。これらのバックログは、明らかに、私たちが開発するプラットフォームにビジネスが最も必要と考えていることに基づいて優先順位が付けられています。しかし、私が移動する場所には、外出先で多くのプロジェクトが同時にあり(2/3の担当者がそれぞれ作業している)、少量の作業が入り、毎日修正され、すべての顧客の成果物を想像しますほぼ同じくらい重要です。 それで、誰かが同じような環境でスクラムの経験を持っているのではないかと思いますが、実際に機能した例は何ですか?何がうまくいかなかったのですか?スクラムがこの状況で機能するためには、どのような考慮事項が必要ですか? どのようにうまく機能するかわからないいくつかの側面があります: チームのメンバーはプロジェクト全体で作業するため、分解するとスクラムチーム全体で作業する可能性があると思います。 おそらく頻繁に変更され、独自のタイムスケールを持つ非常に多くの可動部品の優先順位をどのように扱いますか? 複数のプロジェクトに取り組むスクラムチームがある場合(その多くは1 Devのみを必要とします)、スタンドアップのコンテキストをどのように理解しますか?
8 scrum 

5
飛行機の重量を尋ねる意図は何ですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 4年前休業。 ロックされています。質問はトピックから外れていますが、歴史的に重要であるため、この質問とその回答はロックされています。現在、新しい回答や相互作用を受け入れていません。 私はインタビューで「飛行機の重量をどのように見つけますか?」 私は可能な限りの方法で答えようとしましたが、正しい答えを出すことができませんでした(グーグル検索の後で正しい答えを見つけました) 面接での選択は、このような質問によってどの程度決まりますか。 これが私のアプローチでした:1.平面の測定が与えられた場合、体積を計算し、密度を掛け、燃料重量と他の自重を考慮します。2.水の中に飛行機を置いて、何とかして水がどれだけ変位したかを測定できる場合は、水変位法を使用します。 しかし、グーグル検索を使用して発見された正しいアプローチは船に配置し、船体の水位をマークし、飛行機を外すと船が上に上がるというものでした。そして、マークされた船体が水位に達するまで、船に重量をかけ始めます。
8 interview 

4
遺伝的アルゴリズムで整数をビットにマッピングする必要がありますか?
私が読んだことから、遺伝的アルゴリズムは通常(常に?)ビットの染色体に適用されます。したがって、整数値をとる関数の最大化に問題がある場合、最初に整数がビットとしてエンコードされます。 このマッピングは必要ですか?整数の染色体を取り、クロスオーバーと突然変異を直接適用できるようです。したがって、35個の整数入力を受け取る関数がある場合は、35xBビット(Bは整数のエンコードに必要なビット数)ではなく、これらの整数に遺伝演算子を適用できます。これが行われない理由はありますか? 問題はより粗く定義されているため(つまり、ビットを使用しない場合は、より短い染色体で問題を定義できるため)、アルゴリズムは影響を受ける可能性がありますが、より良い答えがあるかどうか知りたいです。

3
パラメータとして渡される型のUML表現
プログラムのUML図を描きたい。クラスにBarneyは、Yabadaba(Doo d)タイプのパラメータを取るメソッドがありますDoo。 どのように私は、そのクラスを表しますDooクラスで使用されているBarney私のUMLダイアグラムに?

1
ソフトウェア設計仕様の一般的な形式は何ですか?
私が書いたソフトウェアを詳細に文書化しようとしています。SASは高レベルであり、APIをカバーしていません。オンラインでSDSの例をいくつか見つけましたが、形式に傾向は見られません。 ソフトウェア設計仕様を作成するための一般的なガイドラインがあるかどうか、または最良のアプローチは何ですか?


1
再配布されたファイルへの署名
Windows 8アプリストア用のデスクトップアプリケーションを送信するには、アプリケーションに関連付けられているドライバーまたは.exeにデジタル署名する必要があります。しかし、私が提出しようとしたアプリケーションには、他社のソフトウェアの再配布であるいくつかのファイルが含まれており、これらのいくつかは署名されていません。私の申請はこれらの理由で拒否されました。申請書を提出できるように他の会社の仕事に署名することは合法的(または倫理的)ですか?何らかの形での虚偽表示と考えられるかもしれませんが、よくわかりません。
8 legal  ethics 

3
C ++ Web開発:ミニマリストのスタートを望む[終了]
休業。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善してみませんか?詳細を追加し、この投稿を編集して問題を明確にしてください。 6年前休業。 現在、コンピュータサイエンスの学位を取得しており、自分のWebサーバーライブラリを構築したいと考えています。問題?私がWebサイトとのやり取りで行ったすべての検索は、情報の送受信の基本を説明する代わりに、「他の人が作成したこのライブラリを使用する」ことを示しています。 私は多くを求めているわけではありません-Webページに1つの英数字を入力し、ボタンを押して、その標準の1バイトの情報を非標準の助けなしにC ++プログラムに送信したいのです。図書館。
8 c++  web  server 

2
採用市場、パフォーマンス、保守性に基づいてアプリを構築するための言語を選択する[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 6年前休業。 Rubyですべて実行される特定の本番用アプリ用にHaskellコンポーネントの構築を開始するかどうかの選択に直面しています。 私はいくつかの理由でHaskellに傾いています。主に速度(コンパイルされたHaskellは4〜8倍速い)、透明性の向上(Haskell型システムによる)、安全なリファクタリング(型システム)です。Haskellでいくつかのオープンソースおよびプロダクションプログラムをすでに書いており、それを非常に楽しんで書いています。 実現可能性は問題ではありません。Haskell Snap WebフレームワークとPostgreSQL.Simpleなどのデータベースライブラリをいじってみましたが、RailsアプリとさまざまなバックエンドプログラムをHaskellで書き換えることが可能であることに満足しています。 本当の問題は、開発チームの規模を拡大する必要がある場合にプログラマーを採用すること、または最終的にはプログラミングの責任を完全に引き継ぐことです。Rubyでは、Haskellよりもプログラマを見つける方がはるかに簡単です。その一方で、Haskellコミュニティは成長しているようで、DSLとしてアプローチする場合(Ruby on Railsのように)、Haskellプログラムの一部を変更するようにプログラマーをトレーニングすることはそれほど難しくありません。Haskell型システムは、動的Rubyよりもはるかに安全なコラボレーションを約束するようです。 ポールグラハムは、エッセイ「ビーティングザアベレージ」(http://www.paulgraham.com/avg.html)で、優れた言語を使用することが決定的な利点になり得ると主張しています。しかし、プログラマーをチームに追加しやすくするために、優れた言語を使用するのをやめるのはいつ適切でしょうか。

3
特定の値のセットの実装と、高度なチェックを備えたある種の汎用セットの使用
現在、JavaScriptのセット実装に取り​​組んでいます。これは、JavaまたはC#から知られているジェネリックをシミュレートする必要があります。その可変バージョン(設定値の追加/削除が可能)と不変バージョンが必要です。 私のコンストラクターの署名は次のようになります。 new GenericSet( 'number', [ 10, 20, 30 ] ); 、 // mutable set of mixed values (allows to add further values via "add") new MutableGenericSet( '*', [ 'foo', 42, {}, /./ ] ); または // DataValues.prototype.equals will be used by the set for determining equality. new GenericSet( { …

2
「全代理」をサポートする正規のソースはありますか?
バックグラウンド 「すべて-PK-必須被サロゲート」のアプローチは、中には存在しないコッドのリレーショナル・モデルまたは任意のSQL標準(ANSI、ISOまたは他)。 正規の本もこの制限を回避しているようです。 Oracle独自のデータディクショナリ方式では、一部のテーブルでは自然キーを使用し、他のテーブルでは代理キーを使用します。これらの人々はRDBMSの設計について1つか2つ知っている必要があるので、これについて触れます。 PPDM(Professional Petroleum Data Management Association)は、同じ標準的な本が推奨する次のことを推奨しています。 次の場合は、代理キーを主キーとして使用します。 自然キーやビジネスキーはありません 自然キーまたはビジネスキーが不適切(頻繁に変更) レコードを挿入する時点では、自然キーまたはビジネスキーの値は不明です。 複数列の自然キー(通常はいくつかのFK)が3列を超えるため、結合が冗長になります。 また、自然なキーは不変である必要があると述べている正規のソースを見つけていません。私が見つけたのは、それらが非常にエスタブルである必要があるということです。 これらの人々はRDBMSの設計についてもある程度知っている必要があるため、PPDMについて触れます。 「全代理」アプローチの起源は、いくつかのORMフレームワークからの推奨に由来するようです。 このアプローチでは、多くのビジネス分析を行う必要がなく、SQLコードの保守性と読みやすさを犠牲にして、迅速なデータベースモデリングが可能になるのは事実です。すべてのテーブルを結合する必要があるなどの日常的なタスクを犠牲にして、将来発生する可能性のあるものや発生しない可能性があるもの(自然なPKが変更されたため、RDBMSカスケード更新機能を使用する必要があります)クエリを実行し、データベース間でデータをインポートするためのコードを記述する必要があります。それ以外の点では非常に順調な手順です(PK衝突を回避する必要があり、事前にステージ/同等テーブルを作成する必要があるため)。 他の議論は、整数に基づくインデックスはより高速ですが、それはベンチマークでサポートされなければならないということです。明らかに、長く変化するvarcharはPKには適していません。しかし、短い固定長のvarcharに基づくインデックスは、整数とほぼ同じくらい高速です。 質問 -「all-PK-must-be-surrogates」アプローチをサポートする正規のソースはありますか? -Coddのリレーショナルモデルは新しいリレーショナルモデルに置き換えられましたか?

4
GUIをコマンドラインアプリに追加するためのいくつかの標準的な設計方法は何ですか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 6年前休業。 単純なCLIで実行される組み込みLinux Cアプリケーションがあります。現在、コマンドラインプログラムと同じ機能を実行するGUIを作成する必要があります。私は熟練したGUIデザイナーではなく、私の経験が深く埋め込まれたCコーディングである場合は大多数です。 私の最初の考えは、qtcreatorを使用してGUIを作成することですが、私が反省しているいくつかの問題があります。 今後は、CLプログラムとGUIプログラムの両方を維持したいと思います。できれば、どちらのモードでも起動できるまったく同じ実行可能ファイルにすることもできます。これが悪い考えでない限り? 私のコードはこれまでのところCにあり、qtはネイティブでc ++です GUIでボタンを押すと、CLIから呼び出すのと同じ関数を呼び出す直接相関関係が欲しい これをクリーンかつ効率的に行うにはどうすればよいですか?これを簡単にする他の技術やライブラリはありますか?もっと良いものがあればqtを使う必要はありません。
8 c  gui  embedded-systems  qt 

5
部門内のすべてのチームに統一されたスクラムアプローチを適用する
私が働いている場所では、最近、スクラムを使用してアジャイル開発を切り替えました。典型的な高まる苦痛を経験しましたが、今のところうまくいくように見えるアプローチに達しました(長期的にうまくいくかどうかは別の質問です!)。 明らかに、部門管理者はスクラムへの移行が機能していることに満足しています。しかし、彼らは私にとっては間違っていると感じることを始めています。 経営陣はチームを観察し、彼らにとって何が有効かを確認し、それを部門全体に処方します。のようなもの: 「完了」の定義 ストーリーポイントに使用できるストーリーポイント値(たとえば、1、2、3、5、13などが、スプリント中に使用された唯一の値であるため、fib。シーケンスから8を省略) ストーリーポイント値1を「UIラベルの更新」に調整する必要があることをチームに伝え、上限を20に制限する (すべてのプロジェクトにクライアントがいるわけではなく、すべての開発者がUIの経験があるわけではありません) ストーリーポイントの推定値100を使用して「このストーリーは後で分割する」ことをチームに伝える 無限のストーリーポイントの推定値を使用して、「これは壮大です」または「詳細情報が必要」を意味することをチームに伝える 私は彼らが役に立とうとしていることを理解していますが、上記のすべてがスクラムチーム固有のものではないのですか?つまり、あるプロジェクトの個人のグループで機能するものは、別のプロジェクトの別のグループでは意味をなさない場合があります。 非常に規範的で堅固なアジャイルアプローチに移行しているのではないかと心配しています。私はこれを考えることで正当化されますか、それとも私は過剰反応していますか? 編集する 明確にするために...「管理」と「マネージャー」によって私は製品の所有者を意味しません。私は、スクラムチーム外の、ソフトウェア部門内のマネージャーを意味します。

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