ソフトウェア工学

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

11
情報技術は本当に工学的ですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 旅行中、私は私の近くに座っていた数学者に会いました。議論の中で、彼は次のように述べました。「... ITのエンジニアリングやプログラミングではない」真のエンジニアリングとは、アーキテクチャとは何か、電気と機械とは何かということです。 それは私に考えさせられ、私は困惑しました。私の脳のパーセントも同意しました。なぜなら、インド陸軍では、Engineering CorpsにComputer Engineeringのような主題はないからです。彼らはプログラミングをエンジニアリングとは考えていません。これは数年前に聞いたことであり、インド陸軍が今何を考えているのか分かりません。 あなたの意見は?

4
自動コードジェネレーター[終了]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 5年前に閉鎖されました。 私の同僚の1人は、自動コードジェネレーターを使用するのが好きです。自動コードジェネレーターは、文書化が不十分で保守が非常に難しい大量のコードを作成します。 コードジェネレーターを使用するコストは、作成までの時間を短縮するために、メンテナンスの手間をかける価値がありますか?

13
最高の無料UMLオーサリングツール[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 8年前に閉鎖されました。 ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け付けていません。 どのような無料のUMLオーサリングツールを使用していますか?他のツールよりも優れている理由は何ですか?
13 tools  uml 

7
クラスのドキュメントヘッダーに何を含める必要がありますか
エンティティ、ビジネスロジック、およびデータアクセスクラスの有益なクラスドキュメント形式を探しています。 ここから次の2つの形式が見つかりました フォーマット1 ///----------------------------------------------------------------- /// Namespace: <Class Namespace> /// Class: <Class Name> /// Description: <Description> /// Author: <Author> Date: <DateTime> /// Notes: <Notes> /// Revision History: /// Name: Date: Description: ///----------------------------------------------------------------- フォーマット2 // =============================== // AUTHOR : // CREATE DATE : // PURPOSE : // SPECIAL NOTES: // =============================== // …

13
学生/インターンプログラマーを維持する方法は?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 私たちの部署には小さなチームがあり、通常1〜3人の学生/インターンを雇用しています。私たちが抱えている問題は保持です。私たちは、チームの一員として、ただの夏季以外の期間も留まる学生を雇いたいと思っています。問題は、最後に雇った4人の学生ですが、前もって彼らと話し合った結果、全員が希望するよりも早く去ってしまったことです。 関係はすべて良好に終了し、学生は大学内でティーチングアシスタントまたは研究職に就くか、より大きくより良いものに進みました。これはすべて理解可能であり、私たちは彼らにとって最善のことをするために彼らに対してそれを保持しません。 しかし、学部在学中に2年間学部で働いたため、卒業時にフルタイムで迎えられたので、私の見解は異なります。 どうすれば生徒を保持できますか?必要なハードウェアや必要なハードウェアを提供し、(理由の範囲内で)適切と思われる解決策を提供します。全体として、このタイプの学生プログラマーの仕事はとても柔軟で素晴らしいです。 考え?
13 hiring 

4
チームのかんばんの品質属性を追跡するにはどうすればよいですか?
私のチームは、日々の進行状況を追跡するためにかんばんシステムを使用しており、機能(ユーザーストーリーとしてキャプチャ)の進行状況を理解するために非常にうまく機能しています。最近までうまく機能していた機能を開発するにつれて、システム設計の出現をほぼ許可しました。過去2週間で、パフォーマンスと変更可能性の品質属性に特に関連するアーキテクチャのトレードオフについていくつかの議論がありました。 私が思うに、機能を実装してシステムを設計するときに、アーキテクチャについて暗黙的に決定を下しますが、既知の品質属性要件に関してはそれらの決定を考慮していません。これらの重要な設計上の決定がどのように行われているのかを追跡/キャプチャ/視覚的に表現できれば、チームメンバーが実装中にシステムのアーキテクチャにさらなる緊張を生じさせないようになります。そしてもちろん、より複雑なものに、私たちのボード上の機能はありません、排他的、機能的で、時には建築の複雑さを隠します! チームのかんばんの品質属性(またはその他のアーキテクチャに関連する決定)の進捗を視覚的に追跡するにはどうすればよいですか?

4
MySQLを本当にマスターするには?
PHPを使用しているのと同じ時間、mysqlを使用しています。ただし、PHPには10倍の自信があります。または他のプログラミング言語。しかし、私は本当にSQLを本当に把握しているようには見えません。つまり、選択、更新、挿入、削除、結合などを行うことができますが、より複雑なものになると失われます。より複雑なselect文の書き方、インデックスの適切な使用方法、使用するエンジンなど。 何らかの理由でmysqlのドキュメントを理解するのは難しいが、phpのドキュメントは理解しやすいと感じています。 多分私の頭脳は、プログラミングがそれ以来、SQLを混乱させるような方法で配線されていると思い始めています。知りません。ほとんどの人は、Regexが非常に混乱していると考えていますが、私にとっては、SQLステートメントを作成する方法よりも科学的に理にかなっています。誤解しないでください、私はSQLが嫌いではありません。本当に気に入っています。もっとよく理解したいだけです。 MySQLを本当にマスターするための最良/最速の方法は何ですか? 私が「マスター」と言うとき、私は教祖のグルを意味するのではなく、私が助けを必要とせずに私自身で私が尋ねる質問のほとんどを理解するのに十分賢いことを意味します。
13 mysql 

3
ベータテスターを獲得する最良の方法は何ですか?
商用およびオープンソースの両方で、パブリックリリースのために近日中にいくつかのプロジェクトを準備しています。プロジェクトはすべてダウンロード可能であり、Webアプリではありません。私はそれらに単独で取り組んでおり、ベータ期間中にフィードバックを得たいと思っていますが、現在は大勢の視聴者はいません(市場は大規模ですが)。ベータ版に参加する最良の方法は何ですか?ソフトウェアテストに特化した既存のサイトやコミュニティで、連絡できるものはありますか?この時点で、コードに飛び込むことを恐れず、セキュリティバグ、論理エラーなどの発見に役立つテクニカルテスターを特に探しています。 編集:Invite Shareに似たウェブサイトまたはコミュニティを探しています。Invite Share自体は完璧ですが、ベータ版の送信方法に関する公開情報はないようです。 報奨金の説明: ベータの実行に関するJoelの記事は役に立ちますが、技術的またはユーザーを問わず、ベータテストに利用できる既存のコミュニティはないのでしょうか。独学で唯一の開発者である私には、テストに適切なアプローチとなる技術的な連絡先は多くありません。数か月前にエリア51にベータテストサイトを提案しましたが、埋もれてしまったか、あまり関心がなかったか、StackExchangeに適していないかのようです。既存のテストコミュニティ、InviteShareなどのサイト、またはテスターを獲得する他の方法を知っている場合は、共有してください。
13 beta 

4
命令型プログラマーに宣言型プログラミングを教えようとするとき、いくつかの良い習慣は何ですか?
私は自分の会社でF#のトレーニングを少し行うことを申し出ましたが、彼らは興味を示しているようでした。彼らは通常、プログラミングにあまり情熱を傾けないVB6およびC#プログラマーです。そうは言っても、機能的なことを考えると正しいコードを書く方が簡単だと思うので、彼らは間違いなく何らかの利益を得るはずです。 誰も私がこれにどのようにアプローチするべきかについていくつかのアドバイスを提供できますか? アイデア 構文に集中するのではなく、代わりにこの言語とそれが促進するイディオムをどのように使用できるかに集中してください。 命令的な方法で書くのは苦痛だが、宣言的な方法で書くとエレガントなコードに変換される例を試してみてください。

3
初心者のカーネルハッカーにとって、興味深いがそれほど難しくないプロジェクトは何ですか?
オペレーティングシステムのコースを受講した後、Linuxカーネルの知識を拡大し、大きなシステムでの作業を練習することに興味があります。私の手で試すことができる、興味深いがそれほど難しくないプロジェクトは何ですか? 編集:私がカーネルで何をしたかについての少しの背景。 新しいスケジューリングポリシーを実装しました ユーザースレッドと対応するミューテックスライブラリの実装(実際にはカーネルハッキングではなく、カーネル関連の理論が含まれていました)
13 linux  kernel 

10
どのようなプログラミング/ソフトウェアサブカルチャーが存在しますか?それらの定義は何ですか?あなたはどちらに属しますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 8年前に閉鎖されました。 外の世界にとっては、プログラマー、コンピューターサイエンティスト、ソフトウェアエンジニア、開発者はみな同じように見えるかもしれませんが、それは生計のためにソフトウェアを作成する人々の場合とは程遠いものです。単一のプログラマーの能力と知識は、そのツール(OS、言語、そしてはい、好みのエディター)と同様に非常に広範囲に及ぶ可能性があり、その多様性は、ソフトウェアで多くのサブカルチャーを生み出します-Stack Overflowやこのサイトを積極的に使用するプログラマーのように、しない多くの人に対して。 他の人から、彼らが出会った、属している、賞賛している、嫌いな、または作成したソフトウェアサブカルチャーを聞いてみたいです。手始めに、私は遭遇しました: マイクロソフト主導の企業と開発者:スタック全体はワシントン州レドモンドにあります。電子メールはOutlookは電子メールです。WebはIEおよびIISです。VB、.net、Visual Studioなどの複数のバージョンでいっぱいのMS Developer Networkサブスクリプションの大きなバインダーがあります。シェル/コマンドラインでの作業を避けます。オープンソースなどの大騒ぎがどういうものなのか見ないでください。MS中心の企業は9〜5であり、非常に企業的である傾向があります(ソフトウェア担当者ではなく、ビジネスマネージャーが主導します)。最近(MS以外のツールが広く利用可能になったため)、これはハッカー文化のアンチテーゼです。 昔ながらのCSの人々:LispとUnixを非常によく知っていることがよくあります。時には、彼らは半人気のLisp自体、またはシステムユーティリティを書いたかもしれません。あるとしても、「ソフトウェアエンジニアリング」に関するものはほとんどありません。また、それらに感銘を受けることもありません。参照、履歴、およびLisp、C、Prolog、Smalltalkなどのプログラミング言語の高レベルの意味を理解します。80年代と90年代のAIの結果について苦いことがあります。Emacsユーザーになりがちです。目を点滅させることなく、複数行のシェルコマンドを入力できます。彼らのアドバイスは不可解なこともありますが、一度理解すれば金が含まれます。 新しい学校のWeb開発者:コンピューターやビデオゲームで遊んでいたが、実際にプログラミングを始めたのは90年代後半または00年代前半でした。1〜1.5のスクリプト/動的言語で快適。CやRuby / Perl / Python以外の言語は不必要/魔法だと思います。最初はHTMLをプログラミングと見なしていた可能性があります。Macを手に入れて、それについて熱狂的/非合理的になりがちです。構築する以上のフレームワークを使用します。多くの場合、NoSQLやRuby On Railsに過度に熱心です。 New-school CS:統計、ベイジアンモデル、および推論に関する多くのトレーニング。「AI」とは言わず、「機械学習」と言います。LispよりもJavaの方が多いですが、Haskellのエキスパートプログラマでもあります。各分野の専門家(Google、財務/クオンツ)による現実世界での大きな成功を目にすることで、多くの場合、自信が持てます。しかし、ビッグデータとそのような分散処理は、実際に世界を変えています。 上記の例は、完全、正確、直交、または客観的なものではありません。:)私が個人的に見たものであり、より広範な質問の議論と概要を刺激するために提供したもの。反対意見をお気軽に!
13 culture  social 

6
プロジェクトにどのライセンスを選択する必要がありますか?
ワードプレス(プロのワードプレス)に関する本を読んでいるときに、製品が提供されていることも指定する必要があることを学びました。 ...保証なし; 商品性または特定の目的への適合性の暗黙の保証なしで また、GNU GPLを推奨しています。ライセンスの書き方または1を選択するにはどうすればよいですか? ところで、MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE実際にはどういう意味ですか?保証なしでは十分ではありませんか?
13 licensing 

6
プロジェクトのソフトウェアプロセスをどのように作成しますか?
ここで他の質問で書いたように、現在取り組んでいるプロジェクトにはソフトウェアプロセスがありません。意味することに何の(ハードコピー要件や仕様を含む)のドキュメント、無ソースコントロール、無バグデータベース(たぶん)、「固定」されているバグや新しいコードは、同じ時間、および正式なテスターで追加されていない-私たちは失敗するだろうジョエルテストひどく、面白くないです。 昨日、私のマネージャーは、これらの欠点を修正し始める方法についての文書を書くように私に頼みました。ここで6か月間、私は単なるインターンです。私は学校に戻るために11月に感謝祭の周りを離れます。ただし、このプロジェクトを正しい方向に進めることはできると思いますが、どこから始めればよいのかわかりません。私は現在、CiteSeerとWikipediaを使用して、ソフトウェアプロセスを説明し、それらを実装するいくつかの論文を見つけようと試みていますが、アドバイス、個人的な経験、またはブログ、論文、wiki記事などへのリンクは大歓迎です。

2
クリーンアーキテクチャ:ビューモデルとは
彼の本「Clean Architecture」で、叔父ボブは、プレゼンターが受け取ったデータを「表示モデル」と呼ぶものに入れるべきだと言っています。 これは、Model-View-ViewModel(MVVM)設計パターンの「ViewModel」と同じものですか、それとも単純なデータ転送オブジェクト(DTO)ですか? 単純なDTO ではない場合、ビューにどのように関連しますか?ビューは、オブザーバー関係を通じて更新されますか? 私の推測では、彼の本の第23章でロバート・マーティンは次のように述べているため、MVVMのViewModelに似ていると思います。 [The Presenter's]ジョブは、アプリケーションからデータを受け取り、プレゼンテーション用にフォーマットして、Viewがデータを画面に簡単に移動できるようにすることです。たとえば、アプリケーションでフィールドに日付を表​​示する場合、プレゼンターにDateオブジェクトを渡します。プレゼンターは、そのデータを適切な文字列にフォーマットし、Viewモデルと呼ばれる単純なデータ構造に配置します。Viewモデルでは、データを見つけることができます。 これは、たとえばDTOの場合のように、単に関数引数として受け取るのではなく、Viewが何らかの方法でViewModelに接続されていることを意味します。 あなたは、画像を見れば、プレゼンターはビューモデルを使用しますが、ので、私はこれを考えるもう一つの理由はありませんビューを。一方、プレゼンターは出力境界と出力データDTOの両方を使用します。 DTOでもMVVMのViewModelでもない場合は、それが何であるかを詳しく説明してください。

2
glibcがGCCとは別に維持されるのはなぜですか?
GCCはCコンパイラです。GlibcはCライブラリです。しかし、コンパイラーとC実装として一緒にバンドルされた標準ライブラリーは絶対に必要ではないでしょうか? 例えば、CライブラリのようなABIおよびコンパイラの特定のものが含まれ<limits.h>、<stdint.h>、、などをどのコンパイラとAPIの間で異なります。また、「メイン関数を呼び出す方法」などの詳細もコンパイラに依存しますが、実際にはそれらの詳細はlibc.soLinuxシステムで提供されます。たとえば、int8バイトを使用するなど、別のABIで動作するようにコンパイラを変更すると、Cライブラリは機能しなくなり<limits.h>ます。
13 c  gcc 

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