ソフトウェア工学

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

7
PythonはUIの開発に適していますか?もしそうなら、wxPythonまたはTkinter?
Pythonを使用したデスクトップアプリケーションの開発を楽しみにしています。私は初心者であり、Pythonに関する十分な専門知識がありません。私もJavaプログラマーです。Swingを使用してUIを作成した経験はありますが、Swingで開発されたアプリは非常に遅いことがわかります。これが、ブラウザ/ゲームのようにC / C ++で主要な実装の多くが行われる理由の1つかもしれません。 C ++でUIを開発する方が良いかもしれませんが、C / C ++よりも高レベルのプログラミング言語を選択することを好みます。そこで、Python自体はネイティブにC / C ++で構築されているため、Java Swingよりも優れたパフォーマンスを発揮すると想定してPythonを選択しました。 だから、UIを開発するためにPythonがJava Swingよりも優れているというこの仮定を進めることができますか?または、UIを開発するためにPythonよりも優れた言語を提案しますか?Pythonを使用する場合、TkinterまたはwxPythonを使用すべきツールキットとその理由は何ですか?

3
現在のページネーション実装の設計に関する質問
asp.net mvcのページネーションの実装を具体的に確認しましたが、実装にはあまり効率的でないものがあると本当に感じています。 すべての実装の最初に、以下のようなページネーション値を使用します。 public ActionResult MostPopulars(int pageIndex,int pageSize) { } 私が間違っていると感じることは、pageIndexとpageSizeが完全にPaginationクラスのメンバーでなければならないことです。そうでなければ、この方法は非常に機能的な方法に見えます。また、アプリケーションの階層で不要なパラメーターパスを簡素化します。 2番目は、以下のインターフェイスを使用することです。 public interface IPagedList<T> : IList<T> { int PageCount { get; } int TotalItemCount { get; } int PageIndex { get; } int PageNumber { get; } int PageSize { get; } bool HasPreviousPage { get; } bool HasNextPage …

7
なぜ学校はデバッガをカバーしないのですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 SO に関するさらに別の宿題の質問の後。大部分の学生は、デバッガーとは何か、またはデバッガーの使い方を知らないようです。デバッガの使用方法を知ることは、他のプログラミングの基礎とほぼ同じくらい重要だと思います。 問題はデバッグするべきではなく、プログラミングの基礎と一緒に最新のデバッグツールを使用する方法を教えますか?そうでない場合、なぜそうではない。

8
どのようにしてマネージャーにアジャイルを理解させるのですか?
反復的な開発を理解していないシニアディレクターに問題があります(アジャイルの方がずっと少ないです)。彼は、コードの行が書かれる前に、ソフトウェア設計仕様(SDS)が完全であることを主張します。彼にとって完了とは、すべての機能の詳細がそこにあることを意味します。また、元Cobolプログラマーである彼は、「モジュール」とフローチャートを見たいと考えています。これは大声で叫ぶためのJava Webアプリです! とにかく、コーディングを開始する前にSDSを100%完全にする必要はないことを示すために、彼を優しく指す簡単な場所を見つけようとしています。助言がありますか? ありがとう!

2
あいまいなプログラムのダイクストラの例
あいさつ。ダイクストラは、一見単純なコードの数行でさえ、絶望的にあいまいになる可能性があると書いています。私の命を救うために今は見つけられない少なくとも1つの作品で、彼はこのあいまいさを示すための小さなプログラム例を提供しました。誰かが彼がこれらの例の1つを含む彼の論文に私を指すことができますか?
12 ambiguity 

10
チームを率いて、私は圧倒されていますか?
私は非常に奇妙な位置にいるように見えます。私は特定のプロジェクトの役職で「チームリード」を務めています。役職はソフトウェアエンジニアです。私のチームには4人の開発者がいて、そのうちの1人は別のプロジェクトで同様の役割を果たしていますが、現在は私のものが優先されているので、彼は私のものに取り組んでいます。また、2人のテスターがいます。そのうちの1人はマネージャーです。チームの別のメンバーは、完全に無関係な部門の一部である「顧客担当者」です。また、私は私のすぐ上にいるマネージャーを持っています。私のチームの一部であるテストのマネージャーの上にもいると思います。 私は自分の役割が正確に数回ある理由を明確にしようとしました。権限がある場合でも、どこから始めてどこで終わるかを把握するのは困難でした。私が現在取り組んでいる答えは、私がチームの「技術的なリーダー」であるということです。これは、製品コード自体に関係するアーキテクチャ、設計、およびプロセス/コーディング標準に関する技術的な決定について、私の権限を持っていることを意味するようです。 今日、何かが起こり、私がチームのメンバーの1人に委任したコードの結果が、Scrum Show-It-All-Offミーティングで会社の他のメンバーに示されました。顧客の代表者が披露します。今日私は本当に異議を唱えたことを披露し、何が起こったかについて発言したいかどうか誰も私に尋ねたことがありませんでした。要するに、ユーザーが次の方法でレポートに値を表示する機能を提供するために(「doc」単位、設計単位、丸めではなく丸め)、各順列のアクセスフィールドを提供しました。したがって、値は、丸められたドキュメント単位、丸められたデザイン単位、丸められていないドキュメント単位、丸められていないデザイン単位になります。ユーザーが処理したい各レコードには多くの値があり、各レコードはこの方法で並べ替えられます。 本当に嫌いです。 これを示した人々は、レポートに使用するAPIがExcelへのデータのエクスポートなどの処理と同じであることを確認したいと考えています。残念ながら、今、私たちは本当に、本当に悪いと思う方向にこの勢いを獲得しています。 次回の会議で少し動揺しましたが、これを行った2人に「なぜこの決定に関与しなかったのですか?」と尋ねました。これは今後も発生し続ける問題であり、私が率いるチームに参加して、私が参加したいかどうかを尋ねるのは難しいようです。時々私はしないで、彼らが思いついたものは何でもいいと思う。他の回は。人々が私に尋ねない限り、私の意見を必要とする何かが起こっていることを知ることさえ難しく、彼らは私にその機会を与えません。 残念なことに、私の権限は、「次回、私と話をせずに外出して自分でこのようなことをするとき、あなたは懲らしめられます」と人々に伝えることにまでは及びません。それは「PR」の問題であり、私の権限の範囲内ではないことは明らかです。私は他の誰かが喜んでいる場合、私はその種のがらくたに対処する必要はありませんので、実際には私で結構です。 しかし、今日、私のマネージャーは皆の前で(そういうことをするのも部分的には私のせいだと思う)、私はすべての決定に関与することはできず、委任する必要があると言った。 もちろん私は正しいと思う....私はいつもそうだ。私がBSだと思うことは言いません。この問題についてアプローチして、もっと良いアイデアがあるかどうかを尋ねるべきだったと思う。これは、実際には新しい機能の最初の段階であるため、現在提供する1つの値を決定することであり、必要に応じて将来さらにアクセスを提供するためのオプションについて議論することです。現在の実装を承認したり推奨したりすることは一度もなかったし、それが日の目を見るとは思わなかった。 問題は、私は不合理な人ですか? 私たち二人はそれについて話し、私たち二人とも「ボールを落とした」ことに同意し、私たちは同じページにいるようです。月曜日の朝...チームで私の役割が明確になるようにしようとしています。そうすれば、デザインやタスクの変更が必要になる時期を判断することができます。私は提案を受け、同意するか、もっと深く見る必要があると判断します。それから、彼らが私に来ることができることを彼らが知っていることを確認するために私が取り組むことができるいくつかの他のビットがあります。

5
機能要件と非機能要件を区別する必要があるのはなぜですか?
この2つの違いを理解していますが、同僚から、要件を機能的または非機能的(または移行的)としてラベル付けすることの利点について疑問に思います。なぜそうするのですか?彼は、あるプロジェクトの要件のリストを2日間調べたが、最終結果は「すべてをやる」という命令で別のビジネスエンティティにドキュメントを提出することだったため、彼が言ったことを費やしました。 私が恐れているのは、要件が1つのドキュメントにまとめられていることです。実用的な用語でメリットを説明しようとしましたが、売れませんでした。機能している要件と機能していない要件を文書化する利点を販売するにはどうすればよいですか。

5
関数型プログラミングはまったく違うのですか、それとも実際にはもっと難しいのですか?
関数型プログラミングはまったく違うのですか、それとも実際にはもっと難しいのですか? プログラミングをまったく学んだことがなく、関数型プログラミングを教えられた人のことを言ってください。vsプログラミングをまったく学んだことがなく、命令型プログラミングを教えられた人。彼はどちらが厳しいでしょうか?または同じ? 私の質問:今の問題は入力をキャメルケースにすることだと言って、 そのようにqwe_asd_zxc_rty_fgh_vbnなるqweAsdZxcRtyFghVbn 手順は次のとおりです。 に沿って分割する _ 最初の項目をスキップして配列をループします エントリごとに最初の文字を大文字にします 結果を結合する 機能的な方法は次のとおりです。 _返品が見つからない場合input input最初に沿ってカットします_(取得するqweおよびasd_zxc_rty_gfh_cvb) の最初の文字を大文字にし、headそれを連結しますf(tail) あなたが持っている場合は[OK]を機能的なバックグラウンドをと手続きプログラミングにおける豊富な経験を持って、私はお願いしたいと思います:それは、手続きの方法を見つけ出すにお時間がかかりますか、それは機能的な方法を把握するためにあなたのために長い時間がかかりますか? あなたが持っている場合は、手続き-背景をが、機能、プログラミングで長年の経験を持って、私は同じ質問をしたいと思います:それは、手続きの方法を見つけ出すにお時間がかかりますか、それは、機能を把握するために、あなたのために時間がかかります仕方?

5
バックエンドは良いが、フロントエンドは悪い
Web開発を開始したいのですが、PHPを学んでいます。 Java、Python、およびC ++の 経験があります。この経験により、Web開発のバックエンド側が得意になりました。 しかし、私はデザインとグラフィックスがひどいです。 ウェブサイトを始めたいです。 あなたは私が何を提案するのですか? あなたの提案がグラフィックスをより良くすることである場合、何が良い方法でしょうか? また、デザインやグラフィックスに使用しているものを知りたいのですが、そのための良い学習スポットは何ですか?

3
ソフトウェアローカリゼーションのための翻訳をどのように処理しますか?
私がこれまでに書いたソフトウェアのほとんどは、英語を話す顧客向けに作成されていますが、最近では、より広範な言語のUIのローカライズが望まれるプロジェクトに取り組んでいます。 私は、他のプログラミングショップがどのように翻訳を取得するのか興味があります。悪名高いオンライン翻訳エンジンを使用していますか? 採用担当の翻訳者がいることは知っていますが、インターフェイスをローカライズするために十数人の翻訳者を探して契約しなければなりませんか?幅広い言語でこれを行うことに特化したサービスはありますか? おそらくAmazonのMechanical Turkのようなものを使用することは選択肢になりますが、そのサイトで利用可能な従業員がどれほど多様であるかはわかりません。私はあまり想像しないでしょう。

5
自分でハッキングできるものをリリースする必要がありますか?
プログラムの作成者であるあなたは、おそらくセキュリティの脆弱性と潜在的なハッキングを知っている誰よりも優れた立場にいるでしょう。作成したシステムの脆弱性を知っている場合、リリース前にセキュリティを強化する兆候を追加する必要がありますか、それともケースごとに評価してセキュリティギャップの重大度を判断する必要がありますか?
12 security  release 

4
個人の使い捨てプロジェクトをホストする場合、1つのサービスとプロジェクト構造が際立っていますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 4年前に閉鎖されました。 私は、Google Code、SourceForge、BitBucket、およびGitHubを見ています。彼らは大きなプレーヤーのようです。今、私はまだそれらが提供するすべての機能を分解していませんが、私が書くさまざまなコードを置く場所を本当に探しています(プロジェクトオイラーの私のソリューション、コードゴルフ/プログラミングパズルスタック交換など)を中央の場所で行います。 それで、私の最初の質問はこうです:このような状況では、あるサービスが他のサービスの中で際立っているのでしょうか? サービスを選択したら、コードの配布方法を選択する必要があります。リポジトリとプロジェクトを設定するためのオプションがいくつかあります。単一のリポジトリに任意の数のプロジェクトを保持できます。たとえば、Project Eulerのさまざまなソリューションすべてに対して、「Tom OwensのProject Euler Solutions」リポジトリを作成できます。私のさまざまなCode Kataソリューションなどに。または、そのようなものを言語ごとに分類することもできます(あるリポジトリのPythonのProject Eulerソリューション、別のリポジトリのJavaのPEソリューション、および3番目のリポジトリのCode Kata C ++ソリューションを使用)。 2番目の質問:特にリポジトリの作成方法に関して、オープンにすることを選択したコードサンプルを共有する方法を決定するための制限または規則はありますか?私の考えでは、これはあなたが選択したサービスによって決定されるかもしれない(コミュニティの慣習に基づいて)。

5
なぜWindows Forms / Swingフレームワークは、コンポジションよりも継承を好むのですか?
今日、私の教授は、SWTの哲学は作曲によって独自のコントロールを作成することの1つであるが、Swingは継承を支持しているようだと奇妙に感じたとコメントしました。 私は両方のフレームワークとはほとんど接触していませんが、C#のWindowsフォームで覚えていることから、通常はSwingと同様にコントロールを拡張しています。 一般に、人々は継承よりも合成を好む傾向があるため、Swing / Windows Formsの人々はなぜ継承ではなく合成を好まなかったのですか?
12 c#  java  swing  forms 

5
Webアプリケーションの認証/セキュリティのベストプラクティス(任意のプラットフォーム)
今日、マネージャーから質問がありました。特に、一般的なユーザー名とパスワードのログインフィールドの「パスワードを記憶」する多くの一般的なブラウザーの性質に関して、Webフォームアプリケーションの認証に適したデザインとは何ですか。 受け入れられると思う答えを見つけるのに苦労しています。ソニーの恥ずかしいセキュリティ上の欠陥に照らして、人々に保存されているデータの感度は低くても、私は本当に注意したいです。社会保障番号や住所すら保存していませんが、電話番号、メールアドレス、訪問者の写真を保存しています。 彼は、ユーザーが単純にパブリック端末でパスワードを記憶でき、誰かがこの端末にジャンプして、不正な方法でデータの表示または変更を開始できることを心配しています。ただし、少なくともWindowsワークステーションでは、ブラウザーがWindowsユーザーアカウント間で「パスワードを記憶する」ことはありません。 これを超えて、サーバー側で一方向パスワード暗号化を実装しています(暗号化されたパスワードをデータベースに保存し、ユーザーが指定したパスワードをサーバーで暗号化し、データベースの暗号化された文字列と比較します)。SSL暗号化を組み込む直接的な計画はありませんが、これはまだオプションです。 このアプローチには重大なセキュリティ上の欠陥がありますか?より良い提案はありますか?

1
PyPyはどれくらい成熟していますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 5年前に閉鎖されました。 開発者の意見を読む以外の方法でPyPyの成熟度を判断しようとしています。したがって、PyPyを使用した有名なミッションクリティカルなプロジェクトについて聞いてみたいと思います。成熟度の他のすべての指標は問題ないようです。私のメインプロジェクトでそれを利用することに決める前に、私はちょうどこれを逃しています。
12 python 

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