ソフトウェア工学

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


3
非機能要件と品質属性の違いは何ですか?
機能以外の要件と品質属性の違いを理解しようとしています。それらは同じものですか? ISO9126規格には一連の品質属性があります。 各システムは一連の機能要件によって定義されており、この要件にはすべて1つ以上の品質属性が関連付けられていることを知っています。たとえば、システムのログイン機能を記述する要件があるとします。その要件にセキュリティとパフォーマンスの属性を関連付けることができます。 システムが応答するのに1秒以上かかることはないと言うなら、私は制約について話している。 では、非機能要件の概念はどこから始まるのでしょうか?それらはユーザーによって定義されていますか?どうすれば識別できますか?

8
リターンのない複雑なポイント。あなたはそれを何と呼びますか?
ソフトウェア開発者としての私の主な仕事の1つは、複雑さを管理することです。 ただし、一部のプロジェクトでは、複雑さのレベルが非常に高くなり、ある種の「リターンなし」ポイントに達する瞬間があります。この瞬間を過ぎると、すべてを最初から書き直す必要がある場合よりも短い時間でプロジェクトを許容できるレベルの複雑さに戻すことはできません。 この特定の瞬間にはプログラマーの方言で名前がありますか(ゴルウィンのトロールの法則に似たもの)? -編集- はっきりしない場合は申し訳ありません。この「瞬間」には正式な名前があるとは思いませんし、重大な指標でもありません。私はxkcdの「バルマーピーク」の精神で何かを考えていました。

1
「平坦化」とはどういう意味ですか?
私が木を持っていた場合、直感的に「平らにする」ことを意味します ツリー内のすべてのアイテムのリストを取得し、左から右に移動しますか? リンクされたリストがある場合、直感的に「フラット化」されます これから始まるすべてのアイテムのリストを取得する たとえば、リンクリストは、その内部例外を集約する例外で構成されます。例外のシーケンスを返すことを期待して、例外「flattenInnerExceptions」のメソッドに名前を付けるのは公平でしょうか?最初に最も外側の例外、最も内側の例外-最後に?
13 naming 

6
より自律的で自給自足のプログラマになるにはどうすればよいですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 4年前に閉鎖されました。 優れた開発者であることを妨げている最大の要因は、他者に依存していることです。私はすべてを壊し、みんなを引き留めることの結果を恐れているので、あまりにも多くの質問をしているように感じます。だから、私はあまりにも多くの質問をすることによって過度に用心しているので、基本的には十分な質問の後に答えを得ます。私はそれが悪いことを認識しましたが、それを止めたいです。その一部は、単にコードを知らないことがあるということです(これは、私が一度も作業したことのないブランチであるか、まったく新しい製品であるかのどちらかです)。はじめに、これらの種類の質問は、一般的なパターンや言語に関するものではありません。通常、私の質問は、会社でのコードの実行方法と、エコシステムでの作業方法に関するものです。あらゆる段階で助けが必要だと感じることなく、仕様を取得し、仕様を順守できるようにしたいと考えています。これは正常ですか?あなたはこれを経験しましたか?もしそうなら、どのように乗り越えましたか?

9
プログラマ向けの純粋数学と応用数学[非公開]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 数学はいつも私のものでした。というのも、私は常にこの主題を簡単だと思ってきたからです。しかし、コンピューターサイエンスは私の2番目の愛です。選択肢があれば、数学を専攻することを好みます。数学の学士号で通常入学する唯一のキャリアはまったく魅力的ではないので、ソフトウェア開発者としての日々を過ごすことは非常に満足しています。 私の質問はこれです:将来のプログラマーはどの数学の分野からより多くの利益を得るでしょうか?応用数学か純粋数学か? 私は自分自身を教えることを楽しんでおり、優れたプログラマーになる方法を自分で教えることができると確信していますが、私はまだCSで未成年者になることを計画しています!

7
また、タスクを完了した後、コードを忘れていますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 私は新しいプログラマーであり、上級プログラマー(実世界での経験があるプログラマー)に聞きたいです。 私は自分の仕事をし、コーディングした後、私のプロジェクトは完了しますが、正直に言って、コード、クラス、フレームワークの名前とそのプロパティを覚えていません。 時々私はこれを作ったのか自分自身を疑いますか? これはすべてのプログラマーにとって普通ですか、それともコードとクラス/プロパティ名を思い出せない最も愚かなプログラマーですか? 編集: 多くのプログラマーがここで私を間違っていると思います。フレームワークの名前、クラスの名前、プロパティ名を忘れたと言いましたが、もう一度作業を始めると、自分のコードを思い出し始めます。私の質問は、構文やクラス/プロパティなどの名前を覚えていますか?

5
遺伝的プログラミング[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 5年前に閉鎖されました。 私は最近Redditを閲覧していて、「JavaScript遺伝的アルゴリズム」の例へのリンクを投稿しました。私は遺伝的アルゴリズムとプログラミングの概念に本当に魅了されてきましたが、いくつかのグーグルを使った後でも、少し混乱したままです。どのように機能しますか? ボキャブラリーの用語は他の何よりも私を混乱させていると思います。簡単な例と説明をいただければ幸いです。遺伝的プログラミングの概念と、それを自分のプロジェクトにどのように実装できるか、そしてその理由は?

2
Staticは悪いですが、Factoryパターンはどうですか?
私はTDDプロジェクトに参加しているので、この種の開発に関係する優れた慣行に可能な限りこだわります。それらの1つは、静的およびグローバルを可能な限り回避することです。 私はこの問題に直面しています。「オプション」(追加の「マイクロ記事」)をリンクできるオブジェクト「記事」があります。 私はすべてが非常に切り離されているため、基本的にオブジェクトごとに1つのクエリを作成する必要があるため、非生産的であるか、あまり多くのクエリを生成しない良いアプローチを持つ方法を理解することはできません。 私の実際の観点から、3つのオプションがあります。 1)記事内のビルド: class Article { //[...] public function getArrOption(){ //Build an array of Options instance. //return an array of Options. } } プロ:まっすぐ進む 定数:保守性:articleオブジェクトには、Optionオブジェクトの構築ロジックが含まれるようになりました。これはおそらくコードの重複につながります。 2)optionFactoryを使用する class Article { //[...] public function getArrOption(){ return OptionFactory::buildFromArticleId($this->getId()); } } プロ:ロジックの構築はArticleクラスの外にありません Const:「静的なモックは難しい」というルールを破り、Articleクラスのテストを難しくしています。 3)すべてのロジックを分離します。 //Build the array of Option instance in a …
13 php  tdd  static-access 

6
コーディングを開始する前に、ソフトウェア製品をどれだけ適切に定義する必要がありますか?
実際にコーディングを開始する前に、人々がソフトウェア製品をどれだけよく定義し、それが彼らにとってどれだけうまく機能しているかを知りたいと思いましたか?ユースケースの定義、リスクの分析、クラス図の描画などに言及しています。 最終製品が将来のリスクを回避できるようになるための十分なアイデアを持っていることは良いアイデアであることを知っていますが、適応するのが難しいほど製品を明確に定義しないことも重要です変化する。 他のより具体的な質問はおそらく次のとおりです。 通常、プロジェクトの時間の何パーセントが、開発前の計画段階で費やされますか? コーディングを開始する前に満たそうとする特定の測定可能な基準はありますか、それとももっと直感的なものですか? コーディングを開始する前にすべてのクラスの図を作成しますか、それとも物事が変化することを期待して、最初から動的なデザインを作成しようとしていますか? 喜んで共有したい経験があれば最高です!

6
SCRUMは、チームメンバーが共有されている環境をどのように管理しますか?
まあ、質問はそれ自身を言いました。私の職場ではそのようなケースが起こりますが、多くのアジャイルの本は同じ職場で働き、仕事のペースを速くするために現在のプロジェクトに集中することを促進しています。 たぶん、私はそのトピックについて知らされていないかもしれませんが、それほど厳密ではないかもしれませんが、そのような場合にアジャイルが提案することを知りたいと思ったのはそのためです。 誰か?

7
プログラマーがハイパースレッディングをオフにしたい理由は何ですか?
私の会社は新しいコンピューターを購入して、古い2GB Windows XPマシンを置き換えました。私のチームの誰かが、ハイパースレッディングが無効になっていることに気付き、再起動して電源を入れるように全員に指示しました。ハイパースレッディングが無効になっているマシンでプログラミングすることには利点がありますか?
13 hardware 

4
PHPのマジックメソッドのコンテキストでの `trigger_error`と` throw Exception`
私はtrigger_error、魔法のメソッドのコンテキストでの正しい使用法(もしあれば)について同僚と議論しています。まず、この1つの場合を除いて、それtrigger_errorは避けるべきだと思います。 1つのメソッドを持つクラスがあるとします foo() class A { public function foo() { echo 'bar'; } } まったく同じインターフェースを提供したいが、すべてのメソッド呼び出しをキャッチするためにマジックメソッドを使用するとします class B { public function __call($method, $args) { switch (strtolower($method)) { case 'foo': echo 'bar'; break; } } } $a = new A; $b = new B; $a->foo(); //bar $b->foo(); //bar 両方のクラスの応答方法は同じですfoo()が、無効なメソッドを呼び出す場合は異なります。 $a->doesntexist(); //Error $b->doesntexist(); …


7
データベースを使用するのが適切かどうかを判断する最良の方法は何ですか?
PHPとMySQLを使用したWeb開発でプログラミングのキャリアを始めました。ほとんどの動的データといくつかの設定/パラメータデータの保存にdbを使用することに慣れました。多くのデータがある場合もあれば、テーブルのエントリが少ない場合もあります。私にはこれは自然なことのように思えましたが、私が知っている限りでは、これは多かれ少なかれWeb開発で受け入れられるアプローチです。(間違っている場合は修正してください...) 私は現在デスクトップアプリケーションを掘り下げており、私の本来の傾向は、dbを再び使用して、アプリケーションの使用を通じて生成される多くの情報を保存することです。 ただし、私が知る限り、dbを頻繁に使用するアプリケーション(使用しているアプリケーション)は表示されません。 [編集:これは、多くのアプリケーションがプログラム自体に埋め込まれた軽量のデータベースを使用するという点で誤った仮定であると指摘されています。] この理由は何ですか?どの時点でdbを使用するのが適切ですか?この問題に関する基準はありますか?また、dbを使用してデスクトップアプリケーションを開発しない理由は何ですか?

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