ソフトウェア工学

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

1
会社のために取り組んでいるプロジェクトをオープンソース化できるかどうかを雇用主に尋ねる
私は会社で夏の間働いているインターンです。私は温かく迎えられており、マネージャーに多くの印象を与えています(彼がインタビューした他の人たちよりも経験豊富だと思います)。最近、キオスクタイプのアプリケーションを開発しました。このアプリケーションは、4歳の人が記述できるテキスト設定ファイルから簡単なGUIメニューを生成します。 私はこのプロジェクトが大好きで、私の赤ちゃんになりました。しかし、企業の世界では、あなたがあなたの雇用主のために開発するものは何でも...彼らのものになります(または私は聞いたことがあります)。夏以降もこのプロジェクトに取り組み続けたいと思っています。また、オープンソースにしたいと思います。 これをどのように求めますか?コードには会社の秘密はなく、ほとんどの人はオープンソースのソフトウェアを支持しています。

3
学術研究が関係する場合の開発計画
親愛なる仲間のプログラマー、 学術研究が関係する場合、どのように「ソフトウェア計画」を行いますか?そして、副次的に、ソフトウェアを書くことは家を建てるようなものではなく、小説を書くことに似ていると上司にどのように説得しますか? 厄介な詳細は以下のとおりです。 私は、研究室で働く小さな開発チームを担当しています。ある日公開することを目的にソフトウェアの開発を始めました(つまり、それを売ってお金を稼ぐ)。このようなソフトウェアは、とりわけ、少なくとも2つの独立した研究ラインに依存しています。つまり、少なくとも2つの博士号があります。願わくば、いつか私たちが必要とするものを実際に実装してくれる候補者です。 メインソフトウェアは、グラフィックレンダリング、ソフトボディの変形など、開発者が処理できる他のより具体的なリソースにも依存します。 上司から、プロジェクト全体の仕様、要件、血まみれのガントチャートを書くように頼まれました。私は研究部分についての手がかりがなく、そのような研究はソフトウェアの基本であるという事実に直面して、彼は「仮定を立てる」と言った。議論を明確にするために、彼は博士号を持つ教授です。学生は必要な研究を考え出す必要があります。そして、彼は厳密にエンジニアリングのバックグラウンドから来ています。最初にすべてを計画し、仕様を書き留めてから、「最後の部分」であるコードを書き留めます。 私が今していること: 製品の機能を分解しました。事実上、各「機能」は個別の製品です。 各機能は、前の機能の上に構築されています。 機能(A)が機能するプロトタイプを作成すると、チームは次の機能(B)の作業を開始できます。AのQAは完了します(お金が許せば、より多くの人を持ち込むことができます)。 研究に依存する機能は、最後に来る。(その後で、うまくいけば、研究の一部は、完成されたときにはまだ大きな問題です)。 また、数か月後に予定されている「バージョン1.0」の開発にSCRUMを使用するようにチームを設定しました。この期限は、合理的な仮定に基づいて設定できます。必要な機能をすべてリストし、可用性を数え、合理的な見積もりを出しました。 私の質問は次のとおりです。 上司を喜ばせながら、ドアから何かを取り出すにはどうすればよいですか? 私たち-開発者-ができるかどうかの手がかりがないものの仕様を書くにはどうすればいいですか?(一部のタスクに使用するライブラリをまだ決定していません。必要に応じて決定します) まだクライアントも投資家もなく、多くの利益と約束があるのに、どうすればその要件を取得できますか? 世界で平和を得るにはどうすればいいですか? 私の質問の少なくとも1つが答えられると確信しています:) ps:潜在的な投資家がこれを発見すると裏目に出るかもしれないので、私はこれを匿名で書いています。ご理解いただければ幸いです。しかし、私はこの「真実を隠す」という考え方が好きではないと言う必要があります。このプログラムは多くの人に利益をもたらす可能性があり、これについて公然と話すことができない(私の名前と私の評判を付けて)検閲のように感じます。しかし悲しいかな、私はあなたの提案をもっと気にしています。

4
私たちはどれほど守勢すべきですか?
私たちはいくつかのコードでPexを実行しており、いくつかの良い点を示してきました(悪い点はありますが、本番環境に到達する前にそれらを示しています!)。 ただし、Pexの優れた点の1つは、問題の検出を必ずしも停止する必要がないことです。 見つかった1つの領域は、文字列を渡すときに空の文字列をチェックしていなかったことです。 そこで変更しました: if (inputString == null) に if (string.IsNullOrEmpty(inputString)) // *** それは最初の問題を修正しました。しかし、その後、Pexを再度実行すると、次のことが決定されました。 inputString = "\0"; 問題を引き起こしていました。その後 inputString = "\u0001"; 私たちが決定したのは、遭遇// ***した場合にデフォルトを使用でき、他の奇妙な入力によって引き起こされた例外を見て喜んでいるということです(そしてそれを処理します)。 それで十分ですか?

5
コードのレビューを上手にするには?
まず、コードレビュープロセスを固く信じており、常に誰かにコードをレビューしてもらいたいと思っています。私の質問は、他の誰かのためにコードレビューを実行する上で、どうすればより良い仕事をすることができるのかということに本当に集中していますか? コードレビューを実行するには、既存のコードの仕組みとローカル標準の知識が必要であり、どちらも非常によくわかっていると感じています。それでも、私は他の人のために十分なコードレビューを決してしないように感じています。また、特定の人は他の人よりも優れたジョブレビューコードを実行しているようだということを知っているので、優れたコードレビュアーである人のために、あなたはどのようなテクニックを使用していますか?

10
プログラマは生産の手段を持っていますか?
私はしてリスニングに卑屈な国家によってHilare Belloc今朝と中世の農民をしたとして、私は、生産手段を持っているか否かを熟考します。イングランドのオリガルヒによって奴隷にされた後、彼の子孫はそうではなかった。 生産の手段は農奴が座っている耕地であり、法的にではないにせよ、彼を追い出すことは違法であった。 それで、プログラマーは、これまで未知の無料のツールとリソースを提供していたので、私たちは他の労働者とは異なり、生産の手段として労働者の集団として取り戻しましたか?チャンス、ミッドレンジのPC、安定したインターネット接続を考えれば、私たち一人一人が完全に自給自足であり、単なる賃金収入者ではないでしょうか。
11 economics 

3
コード行の寿命をどのように推定できますか?
私は、オープンソースプロジェクトのコードの寿命を分析する方法、つまり特定のコード行がアクティブで使用中の期間を把握しようとしています。 私の現在の考え方は、コードの寿命は最初にコミットされたときに始まり、次のいずれかが発生したときに終わるというものです。 編集または削除され、 ビルドから除外、 ビルド内のコードは、一定期間(1年など)維持されません。 注:「編集」が「死」としてカウントされる理由の明確化として、編集された行は「新しい」世代、またはコード行としてカウントされます。また、これを行う簡単な方法がない限り、系統の寿命、または先祖からの降下の説明はありません。 コードの寿命を決定するものは他にありますか?

4
J2EE、特にJPAの学習を開始する方法[終了]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 8年前に閉鎖されました。 私はのJ2EE一部を学び始めようとしていJavaます。しかし、どこから始めればいいのかわかりません。私はfamilierだCore Javaと主に、私が学びたいJPAとの基本HibernateとSpring Framework。この主な理由は、これらすべてを使用するプロジェクトに取り組んでいるからです。また、ほとんどのコードは一部の上級者によって開発されており、その中にいくつかの修正を加える必要があります。だから基本的に私は彼らのコードを理解する必要があります。 事前に知っておく必要のあることや、どの順序で行かなければならないかなど、誰かが私に一種のロードマップをくれますか?リンク、書籍などの参考資料はありますか?

4
データオブジェクトに依存性注入を使用しますか?
私は依存関係の注入について学んでいるだけで、何かにこだわっています。依存性注入では、コンストラクターを介して依存クラスを送信することをお勧めしますが、これがデータオブジェクトに必要かどうかは疑問です。単体テストはDIの主な利点の1つであるため、データを格納するだけで、プロシージャを単体テストすることはなく、DIを不要な複雑なレイヤーにするデータオブジェクト、または依存関係の表示にも役立ちますデータオブジェクトで? Class DO{ DO(){ DataObject2List = new List<DO2>(); } public string Field1; public string Field2; public List<DO2> DataObject2List; } Class DO2{ public DateTime Date; public double Value; }

7
設計の観点から、ロギングのベストプラクティスは何ですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 6年前に閉鎖されました。 現在作業中のアプリケーションにロギングを追加したい。以前にロギングを追加しましたが、ここでは問題ではありません。 しかし、オブジェクト指向言語の設計の観点から、OOPとパターンに従うロギングのベストプラクティスは何ですか? 注:私は現在C#でこれを行っているので、C#の例は明らかに歓迎されています。また、JavaとRubyの例をご覧ください。 編集:私はlog4netを使用しています。プラグインするのに最適な方法がわからないだけです。

5
Web用のPHPで開発する場合、Linuxにはどのような利点がありますか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 5年前に閉鎖されました。 私は友人と大きなPHPプロジェクトを始めようとしています。PHPを使用するのは初めてで、とても人気があるのでLinuxでの開発を試してみるべきかどうか疑問に思っています。 私はLinuxで過去の経験があり、vimを知っているのでエディターの選択は難しくありません(VS.PHPを見て、変更から私を元に戻しています)。 PHP(または任意のWeb言語)を開発するときにLinuxを使用すると、利点がありますか?

3
オープンソースプロジェクトの価値を見積もるにはどうすればよいですか?
会社のコスト削減目標のメトリックを生成しようとしています。これを行うには、ゼロから構築したり、COTSソリューションを購入したりするのではなく、オープンソースのWebアプリケーションを使用することで実現した節約を見積もります。プロセスの1つのステップは、アプリケーションを自分で開発するのにどれだけの費用がかかるかを見積もることです。残念ながら、完全な推定プロセスを経ずにこれを実行するための非常に簡単な方法に私は困惑しています。 私はソースコードを持っているので、それを書くのに必要な開発者の時間の非常に大まかな見積もりを与えることができるいくつかの経験則があると思うでしょう。残念ながら、トピックに関する私のWeb検索では、ほとんどの場合、コード行が生産性や品質の良い指標ではないという記事や意見が出されます。 これまでの私の最善の解決策は、開発者が1日に書き込むことができる行数を選択し、そこから開発者の時間数を計算することです。その方法を使用する場合、開発者の生産性の主張を裏付けるいくつかの(できれば研究に基づく)証拠を持ちたいです。 私が行っていることの1つは、最終的なメトリックを生成するために必要なのは、開発者の時間またはプロジェクトのコストの下限のみです。推定値が高ければ高いほど、メトリックは良くなりますが、数値を大きくするよりも推定手法の方が攻撃しにくいでしょう。 オープンソースプロジェクトの価値を推定するより良い方法はありますか?

5
MVCを使用する場合
PHPとMySQLバックエンドでサイトを構築しています。しかし、私は現在、どのタイプのフレームワークも使用していません。Model View Controllerを使用する必要がありますか?

2
Oracleディレクトリの名前が/ u01 / u02などであるのはなぜですか?[閉まっている]
閉じた。この質問には、詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善したいですか?詳細を追加し、この投稿を編集して問題を明確にします。 4年前に閉鎖されました。 私は数年前からOracle RDBMSを使用してきましたが、今日、n回インストールした後、なぜ/ u01、/ u02などにインストールするのでしょうか? もちろん、他の場所にインストールすることもできますが、何らかの理由で、この規則はどこでも使用されており、たとえば/ optに深刻なOracleのインストールを見たことはありません。 見逃した歴史の教訓は?
11 oracle  unix 

1
同じソースコードを2つの別々のオープンソースプロジェクトに貢献する方法は?
2つの類似したオープンソースプロジェクトAとBがあり、どちらもApache Software License 2.0の下でライセンスされているとします。 両方のプロジェクトの改善に貢献したいと思います(どちらがより適切に管理されているかわからないため、両方で改善が見られるようにしたいと思います)。 この改善を簡単な方法で両方のプロジェクトに貢献できる方法はありますか?(1つの明らかなアプローチは、Apache 2.0の下でライセンスされたオープンソースプロジェクトCを開始することですが、それはさまざまな理由で頭痛の種です;私は自分でプロジェクトを維持したくありません)

4
PHPでオブジェクト指向の方法でデータを渡すにはどうすればよいですか?
MVCフレームワーク(CodeIgniterなど)で作業しているときでも、オブジェクトではなくネストされた配列を渡すことに定期的に頼っています。 これは、オブジェクト指向についての私の理解にうまく従いません。たとえば、コードをJavaに移植する場合、そのような配列(またはベクターなど)を渡すことを夢見ていません。 これがデータを処理する適切な方法かどうか疑問に思っていました。PHPで配列がこのように渡される理由、またはオブジェクトが使用されない理由はありますか?データを渡す最良の方法は何ですか?

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