ソフトウェア工学

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

6
いつ抽象コードを記述し、いつ具体化するのか?
私はおもちゃのプロジェクトとして小さなツールに取り組んでおり、2つのディレクトリの違いを示し、どのファイル/ディレクトリが追加、削除、変更されたかなどを示しています。 私はこれらの変更を、それがファイルであるかディレクトリであるかを区別せずに、単に「ChangeItem」オブジェクトとして表現しようとしていました。しかし、それらをツリーに表示する方法、子供の親が誰であるかを知る方法など、多くの問題が発生しました。また、非常に直感的ではありませんでした。 次に、ディレクトリの変更とファイルの変更の間で変更を分割します。これにより、コーディングが非常に簡単になり、何が起こっているのかを理解することが容易になりました。これで、ディレクトリ内のすべてのファイルを選択するなど、はるかに簡単になりました。 私の質問は、抽象化を使用するか、コードでより具体的にするかをどのようにして知ることができるかです。抽象化が多すぎるか少なすぎるかをどのように判断できますか?

4
ソースコードを公開サイトに投稿した場合、自動的にオープンソースになりますか、それとも自分の権利は保持されますか?
これは奇妙な質問ですが、ここに理由があります: JavaScriptアプリケーション、またはPerl / Python / PHP cliスクリプトを作成すると、誰でもソースコードを見ることができます。たとえばgithubなどのパブリックホスティングサイトでコードをホストすることもできます。それは同じです:誰でもコードを見ることができます。 しかし、それによって私のコードはオープンソースになりますか?

3
C ++で.netアプリをプログラミングすることをお勧めしますか
私が理解できることから、C#は.NETアプリをコーディングする際の事実上の言語です。C ++で.NETアプリ(ASP.NET、WinPhone 7、GUIなど)をプログラミングすることをお勧めしますか?この道を進むことを選択した場合の落とし穴と欠点は何ですか? 共有いただきありがとうございます。

8
テストを行うプログラマ
プログラマーが帽子をかぶって、お互いの作業をテストするのがどれほど典型的なことかと思います。チームが、タスクの形式化からリリースへの移行に「責任を共有する」アプローチを取りたいと仮定します- プログラマーが機能を記述しない限り、ソフトウェアテストとして作業することをお勧めしますか? これは頻繁に起こりますか? プログラマが自分の作業をどの程度「テスト」できるか? TDDと単体テストを使用しても、開発プロセスでソフトウェアテスト装置がまだ必要ではありませんか?

3
JavaのStringクラスがより効率的なindexOf()を実装しないのはなぜですか?
スタックオーバーフローに関する以下の質問の後に /programming/5564610/fast-alernative-for-stringindexofstring-str なぜjava(少なくとも6つ)がより効率的な実装を使用しないのかと疑問に思いましたか? コードは次のとおりです。 java.lang.String#indexOf(String str) 1762 static int indexOf(char[] source, int sourceOffset, int sourceCount, 1763 char[] target, int targetOffset, int targetCount, 1764 int fromIndex) { 1765 if (fromIndex >= sourceCount) { 1766 return (targetCount == 0 ? sourceCount : -1); 1767 } 1768 if (fromIndex < 0) { 1769 …

11
複数のプログラマーと連携するためのベストプラクティス
ほとんどのプログラマーは、それが実行不可能な場合でも、プロジェクトで一人で作業することを好むと思います。プログラミングプロジェクト以外でも、私は一人で作業することを好みます。他の開発者と作業するとき、私は通常それを見つけます 書式や規則(変数名やメソッド名など)が気に入らない 彼らが書いたコードがどのように機能するかについて私はよく理解していません。 彼らが書いたものを実装するためのより良いまたはより効率的な方法があると思います 4〜5人のプログラマーがいるプロジェクトで、これらの問題や他の同様のチームの問題を克服するための最良の方法は何ですか?

2
さまざまなTimeZonesを処理する最良の方法は何ですか?
私は、世界中から多くの異なるユーザーが更新を行うWebアプリケーションに取り組んでいます。タイムゾーンを処理する最善の方法は何でしょうか?理想的には、イベントが発生すると、すべてのユーザーが現地時間を使用してそれを表示します。 サーバーのOS時刻をGMT、物理的な場所の時刻、または開発場所の時刻に設定する必要がありますか? アプリケーションロジック(PHP)とデータベース(MySQL)は、データをGMTまたは現地時間(ユーザーの現地時間)として保存するように設定する必要がありますか? 業界標準、または私が見ていなかった単純で明白なソリューションさえありますか?
9 php  mysql 


5
優れた機能仕様を作成する方法
すぐに小さなサイドプロジェクトを開始しますが、今回はプログラミングの前によく行う小さなUMLドメインモデルとケース図だけではなく、完全な機能仕様を作成することを考えました。私がそれに追加する必要があるものを私に勧めることができる機能仕様を書いた経験がある人はいますか?どのように準備を始めるのが最善でしょうか?ここで、より関連性があると思うトピックを書き留めます。 目的 機能の概要 コンテキスト図 重要なプロジェクト成功要因 スコープ(イン&アウト) 仮定 アクター(データソース、システムアクター) ユースケース図 プロセスフロー図 アクティビティ図 セキュリティ要件 性能要件 特別な要件 ビジネスルール ドメインモデル(データモデル) フローシナリオ(成功、代替…) タイムスケジュール(タスク管理) ゴール システム要求 予想経費 それらのトピックについてどう思いますか?他に何か追加しましょうか?または何かを削除しますか? ひとつひとつの回答に乗りましたが、有益な情報をありがとうございます。 私はこのサイドプロジェクトを会社のために行っています。彼らは私から一定のコミュニケーションの流れを見ており、私が彼らに提供するリソースを管理する必要があるので、私がすべてのことを行う理由を説明する必要があります。これは私の最初の機能仕様になります。私が言ったように、私はそれが大きくて役に立たないだけでなく、役に立つことを望んでいます。これはやらなければならないことだと思いますが、私や私のチームにとってもっと役立つ方法でやりたいです。マネージャーがいないのは悪いことなので、管理タスクにも注意が必要です... アジャイルプログラミングに関しては、これはアジャイルアプローチと100%互換性があると思います。私は自分自身をアジャイルプログラマです。正直に言って、誰かがすでに私のために考えているときは、自信がつきました。私はまだジュニアですが、以前は他のプロジェクトでタペストリーのWeb開発者として働いていました。 私は滝のアプローチをしていることに同意しません。開発が始まるときにプロジェクトをより簡単にするいくつかの境界を定義しようとしているだけだと思います。

5
私は、既存の完全に文書化されていないソフトウェア製品の文書化作業を主導する任務を負っています。どのようなリソースが役立つのですか?
私はテクノロジー企業のソフトウェア開発者です。私が取り組んでいる製品の文書化作業を主導する任務を負っています。目標は開発者の内部でドキュメントを作成することであり、プロジェクトはビジネス側に波及し、そこで要件のドキュメントがカバーされます。 このプロジェクトは挑戦的です。具体的には、次のような製品を扱っています。-少なくとも6年間、長い間使用されています。-あちこちにある古くて小さな断片を除いて、ドキュメントの形式はありません。-コード内にコメントがありますが、それらは技術的であり、包括的な技術的な動作を伝えません(技術的な側面でも)。-ドキュメントがほとんどないか、まったくないため、多くの場合、不必要に複雑になっています。 また、このプロジェクトに取り組む時間はあまりありません。 私は正式な文書やライティングの背景、トレーニング、または経験がありません。私は執筆やオフィス内でのコミュニケーション能力を発揮したため、このプロジェクトに割り当てられたのかもしれません。 このプロジェクトの準備と対処に役立つリソースに関するアドバイスや推奨事項を教えてください。マイルストーンを含む計画の設計を思い付き、ベストプラクティス、タスクの委任、テンプレート、バイインなどについて学ぶために、本/ウェブサイト/フォーラム/その他への参照を探しています。 私は特に、既存の、文書化されていないプロジェクトに優れた文書を導入することをターゲットにしたり、特別な言及をしたりするリソースに期待しています。

4
これは(もともと)どこにありますか?:「ソフトウェアのライフタイムコストの80%はメンテナンスに費やされます」[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 4年前休業。 Sun Javaコーディング規約ドキュメント(ここ:http : //www.oracle.com/technetwork/java/codeconv-138413.html)には、次のように記載されています。 「ソフトウェアのライフタイムコストの80%はメンテナンスに費やされる」 この統計の出所を知っている人はいますか?アサーションを疑うことはありませんが、私は帰属なしで統計を作成することもできます。他のステートメントの基礎として使用し始める前に、これがどこから来たのかを知りたいのです。

4
TOGAFなどのメリットは?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 5年前休業。 私はウェブサイトの宣伝文を読み、申し立てられている利点に感銘を受けることができますが、TOGAF(または他の)アーキテクチャフレームワークをフォローしている人や誰とも働いていません。 私たちの組織は、現在かなりシャンボリックな設計および開発モデルから、現代​​の構造化されたプロセスに近づくものへの移行に専念することを宣言しています。 TOGAFのようなものは、世界クラスのエンタープライズ開発環境(!)を達成するのに役立つと言われていますが、ここで誰もが、卸売りの採用がもたらす実際のメリットを理解していません。同じを達成するために必要な痛み。 TOGAFまたはそれに類似した組織でのレスリングコントロールの使用経験はありますか?フレームワークを使用することで何かメリットがあると思いますか? 編集:説明のために、TOGAFは「オープングループアーキテクチャフレームワーク」であり、エンタープライズアーキテクチャを開発するための詳細な方法とツールセットです。参照:http : //www.opengroup.org/architecture/togaf8-doc/arch/

3
ソフトウェアアーキテクチャのスキルを向上させる方法[終了]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 6年前休業。 ソフトウェアアーキテクチャのスキルを向上させる最良の方法は何ですか?私たちは大学でデザインパターンを教えられましたが、シンプルでわかりやすい例を含む本がたくさんありますが、それらを除いて、どうすれば優れた建築を学ぶことができますか?つまり、どのようにして優れた建築家に進化するのでしょうか。前提条件は何ですか?

3
マイクロソフトが現在のUIのようなUIを構築するためにUXフレームワークをリリースしないのはなぜですか?
.NETフレームワークでプログラミングの学習を始めたとき、UIテクノロジとしてWinFormsを使用することから始めました。このオフィス2000と同じように「クラシック」メニューを使用しています。Office2007 がリリースされて数年後、リボンが誕生しました。 さらに数年後、Office 2010がリリースされ、ステージなどの新機能も追加されまし た。数日前Office 15のプレビュー版がリリースされ、より豪華な新機能が追加されました: これは大きな進歩であるIMOですが、開発者がそのようなUIを構築できるようにしないのはなぜですか?.NETを見ると、まだリボンを作成する方法がありません。拡張性の高いWPFを使用しても、事前に作成されたコントロールはありません。したがって、コミュニティはこれらすべての「機能」を作成するためにいくつかのプロジェクトを開始しました。今日、マイクロソフトはWinFormsとWPFのリボンをリリースしましたが、それはまだコアフレームワークの一部ではありません(4.5のものでもありません)。しかし、私が知る限り、これは.NETに限定されていませんか?今日、アンマネージアプリケーションがこれらのリボンUIを作成するためのAPIはまだありません。 ドイツでは、すべてが自分のスタイルに合うように、無料のUXトレーニングを提供しています。http://j.mp/NZGgH9 マイクロソフトが開発者にクールなものを提供しないのはなぜですか?彼らは彼らのアプリケーションがユニークであることを望みますか?

6
一般的なWebフォームで使用するパターンはどれですか?
単純なASP.NET Webフォームアプリケーションを作成しています。抽象化を実現し、管理性と理解性を向上させる設計パターンを実装することにより、コードを改善したいと考えています。 どのパターンが推奨されますか?サンプルアプリケーションへのリンクも提供してください。

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