タグ付けされた質問 「engineering」

ソフトウェアエンジニアリング(SE)は、ソフトウェアの設計、開発、運用、保守への体系的で、統制の取れた、定量化可能なアプローチの適用と、これらのアプローチの研究です。つまり、ソフトウェアへのエンジニアリングの適用です。

14
プログラミングで、デフォルトの日付形式がYYYYMMDDであり、他の形式ではない技術的な理由はありますか?
エンジニアリングの理由はありますか?RDBMSの場合、「YEAR」は「MONTH」よりも具体的であるため、パフォーマンスと関係があるのではないかと思っていました。たとえば、2000年は1年しかありませんが、毎年「1月」これにより、年ごとに何かを簡単にフィルタリング/ソートできるようになります。そのため、年が最初になります。 しかし、それが本当に意味をなすかどうかはわかりません...何か理由はありますか?

9
プログラミングにおけるメモリ管理は無関係な関心事になっていますか?
背景 私は、昔から行ったことのない古い(しかし素晴らしい)サイトであるAlioth Language Shootout(http://benchmarksgame.alioth.debian.org/)を再訪しました。 私は数年前にC / C ++でプログラミングを開始しましたが、それ以来、関与しているプロジェクトの言語の制約のため、ほぼJavaのみで作業を続けてきました。リソース使用量の点でC / C ++に反しました。 実行時間は最悪で、JavaはC / C ++よりも4倍も遅いを実行すると、まだ比較的良好であったが、平均の周りの(または以下)2倍に。Java自体の実装の性質により、これは驚くことではなく、パフォーマンス時間は実際に私が予想したものよりも短かったです。 実際のレンガはメモリ割り当てでした-最悪の場合、Javaが割り当てられました: Cの52倍ものメモリ C ++の25倍以上。 メモリの52倍...絶対に厄介ですよね?... またはそれは?現在、メモリは比較的安価です。 質問: 作業メモリに厳しい制限があるターゲットプラットフォーム(つまり、組み込みシステムなど)に関して話さない場合、今日汎用言語を選択する際にメモリ使用量を考慮する必要がありますか? 第一言語としてScalaへの移行を検討しているからです。私はそれの機能面が非常に好きですが、私が見ることができることから、それはJavaよりもメモリの点でさらに高価です。ただし、メモリは年々速く、安く、豊富になっているようです(少なくとも4GBのDDR3 RAMを持たない消費者のラップトップを見つけることはますます困難になっているようです)。より読みやすいソリューションを迅速に構築できる(おそらく実装上高価な)高レベル言語機能と比較して無関係ですか?

3
ソフトウェアエンジニアは認定プロフェッショナルエンジニア(PE)になることができますか?
ソフトウェアエンジニアが認定されたプロフェッショナルエンジニアまたはPEになり得るかどうかは誰にもわかりませんか?私は、機械、電気、または土木技師の仲間が試験を受けてPEになったことを知っています。そのような試験はソフトウェアエンジニアリングに存在しますか?

2
顧客から受け取った非構造化要件を管理および推定する方法
プロジェクトの入札段階では、多くの場合、潜在的な顧客からソフトウェアシステムの要件をさまざまなソース[メール、ワードドキュメント、Excel]から非常に非構造化された形式で受け取ります。通常、彼らが抱えるビジネス上の問題に対するこれらの「提案された解決策」を考え出すのは、顧客側からの「製品開発」担当者の集まりです。彼らはビジネス分野の専門家ですが、多くの場合、彼らは正しい解決策を持っていません。 これにより 同じ要件の複数のバージョン 2つの要件を1つに混ぜる 後の要件のいくつかのバージョンでは、一緒に結合された要件が再び分離され、それぞれが新しい追加の一部を取ります 開発を開始する前に、このような要件をどのように処理し、適切なユースケースに分類しますか?特定の要件の履歴を追跡するために、最初に考案されてから適切なユースケースに結晶化するまで、どのツールを使用できますか?このような方法で受け取った要件に対する作業の見積もりは、要件を正しく理解し、それに対する作業を正しく見積もるのを間違えてしまうという悪夢です。 私たちがプロジェクトに勝った後、顧客は自分の要件をさらに考え、適切にそれを明確にすることができました。この場合に発生することは、一部の機能が削除され、一部が機能強化され、一部がまったく新しい方向に進むことです。これは基本的に、プロジェクトに勝つ前に行われた作業項目の見積もりの​​一部を無効にする可能性があります。特定の要件のツリーを構築できるシステムがあるかどうか、および各ブランチがどのように異なる推定値をもたらすかを知りたいと思います。 このアクティビティをより管理しやすくするためのヒント、ツール、トリックはありますか?要件管理や労力の見積もりよりも経験豊富な人から洞察を得ようとしています。

3
ソフトウェア工学とコンピューターサイエンスは別々の専攻ですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 4年前に閉鎖されました。 何十年もの間、ソフトウェア開発者になるために受け入れられた学位は「Compter Science」でした。その学位が本当にソフトウェアを開発する準備をしているかどうかについて、すでにいくつかの質問 があり ました。 過去8年ほどで、いくつかの学校はプログラミングの複数の異なる専攻を提供し始めました。私の学校のカリキュラムを使用する: コンピューターサイエンス。最初の1年はイントロプログラミングコースから始まり、その後、理論的なコンピューターサイエンス、アルゴリズム、およびOSの一部に焦点を当てます。ほとんどのクラスには、ソロまたはペアで行われるいくつかの小規模なプロジェクトと宿題が含まれます。 同じイントロプログラミングコースから始まるソフトウェアエンジニアリングは、いくつかのクラスの理論を実行し、ソフトウェア開発プラクティス(テスト、プロセス方法論、ソフトウェアメトリック、要件収集)およびソフトウェア設計(分散システム設計、情報システム設計)に進みます、リアルタイム/組み込み設計、サブシステム設計など) 学校によってその方法は異なります。したがって、上記は私がよく知っている実世界の例にすぎません。私が尋ねるのは、プログラミングに明確な専攻が必要なのでしょうか?

1
誰かがVモデルプロセスを説明できますか?なぜウォーターフォールモデルと異なるのですか?
Vモデルは、滝の下半分が上に曲がってVを形成しているウォーターフォールモデルに過ぎないようです。新しいものを追加する方法がわかりません。 図から、私もフローを理解していません。すべての方向を指す矢印があり、最初に来るものを理解できません。Vを左上から下の中央まで、続いて右上まで戻ってきますか?または、アイテムが低くなる前にすべてを高くしてVを下に進めますか? インターネットには、このモデルの十分な説明がありません。誰かがそれを本当のStackExchange形式で説明できたら素晴らしいでしょう:)

3
REST APIのバージョン管理。各APIには独自のバージョンがあります
URLのREST APIのバージョンを指定することは非常に一般的です。具体的には、パスの先頭、つまり次のようなものです。 POST /api/v1/accounts GET /api/v1/accounts/details ただし、バージョンが各APIに関連付けられているデザインは見ていません。つまり、各APIのバージョンを個別に管理します。すなわち: POST /api/accounts/v2 GET /api/accounts/details/v3 このアプローチを使用すると、破壊的な変更が必要なときに特定のAPIのAPIバージョンをインクリメントします。API全体のバージョンをインクリメントする必要はありません。 一般的なスタイルの代わりにこのスタイルを使用することの欠点は何ですか?

2
誰かがCSDP認定を行っていますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 ソフトウェアエンジニアとしての知識と市場価値を高める可能性のある認定を探していました。IEEEの認定ソフトウェア開発プロフェッショナル(CSDP)が私の注目を集めました。ネット上でユーザーエクスペリエンスを探したところ、実質的なものは見つかりませんでした。あまり人気がないようです。そして、私の組織内の誰もそれをやった友人のサークルを聞いたことはありません。 コミュニティメンバーから、この認定資格を取得した人や、同じ認定資格を取得した経験があるかどうかを知りたいと思います。知識の面で認定は有用でしたか。それはあなたの履歴書に重さを加えましたか?
15 engineering  csdp 

3
テスト中の開発者とは何ですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 私は最近、Test in Developerの職に就くために会社に入れたいリクルーターと話していました。彼は本質的に、新しいプログラミング手法を試したり、ソフトウェアのバグや改良点をテストしたり、標準的な期限を気にする必要がないような立場にしたようです。あなたの仕事で非常に創造的になります。 しかし、その説明は私にはまだあいまいでした。私は何年もの間Web開発者であり、ほとんどがPHPで働いています。それで、私は、コミュニティの他の人々がこれらのポジションが通常伴うものについてもっと知っているかどうか知りたかったです。 私はこれがこのフォーラムにふさわしい主題ではないかもしれないことを知っていますが、Stack Exchangeで見つけることができる最適なものでした。 。 私はそれをグーグルで試しましたが、そこには多くの情報がありません。では、テスト中の開発者とは正確には何ですか?

7
エンジニアでなくても「ソフトウェアエンジニア」の仕事に応募できますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 5年前に閉鎖されました。 私は、「エンジニア」または「エンジニアリング」という言葉の使用が法律で厳密に規制されている国から来ました。つまり、エンジニアリングの学位を取得し、エンジニアの専門家協会に参加してタイトルを使用するには試験に合格する必要があります。世界的に業界で使用されている「ソフトウェアエンジニア」という用語について少し混乱しています。 ソフトウェアエンジニアに関するウィキペディアのページと、用語の使用に関するページのリンクされたセクションを読み、詳細な議論を提供します。しかし、私の質問はなんとなく具体的​​です。 私が工学の学位を持っていないことを知っている(まだ、機能的で適切に設計されたソフトウェアを生産していると思うのが好きです!) ?工学の学位を取得していないことを何らかの形で強調する必要がありますか?

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

2
オブジェクト指向設計で何をする必要があるかを実際に調べる方法は?
最初の免責事項:この質問がこのウェブサイトに適合するかどうかはわかりませんが、私だけでなく、初心者である他の人にとっても関連する質問であることに変わりはありません。ここに収まるように質問を改善できる場合は、intコメントを指摘してください。それが合わない場合は、私にも知らせてください。可能であれば、これに関する良いフォーラムが見つからなかったので、これについて議論できる場所を教えてください。 私はPHPを勉強した2009年にプログラミングを学びました。2012年の後半に、C#と.NETに移行しました。とにかく、コーディングは問題ではなく、アルゴリズムを書き留めることは私の問題ではありません。私の実際の問題は、要件を達成するために何をコーディングする必要があるか、どこでコーディングする必要があるかを知ることです。 Web上で利用できるそこにほとんどのコースは対処方法ここでは私のポイントではないなど、いくつかのAPIセットを使用する方法、特定の言語でコードを書く方法を- 。 ここ数年、オブジェクト指向の分析と設計、設計パターン、ドメイン駆動設計など、たくさんのことを読みました。たとえば、SOLIDの原則、ドメインエキスパートの関与の必要性、ユビキタス言語の開発など、DDDの主要なアイデアのいくつかを理解しています。少なくとも理にかなった理論的背景があると思います。 しかし、それが練習になると、私は災害だと感じます。しばらく前に、私はすでに他の誰かによって開発されていた金融システムの開発を続ける必要がありました。それは、C#とWinFormsで開発されたそのような「古いシステム」です。実際のドメインの複雑さ、多くのビジネスルールなどを含むプロジェクトを選んだのは初めてでした。 ほとんどの場合、要件を受け取ったとき、「一体どうやってこれを行うことができるのか」と思います。-どうすればよいのかを理解するために、要件の作業を開始する方法すらわからない。私が信じている主な混乱は、私がコーディングしなければならないもの、クラス、インターフェース、そして各ロジックがどこに行くのか、各クラスがどのクラスにあるべきなのかです。問題は、どこから始めればいいかわからないことです。 ほとんどの場合、非常に多くの考えでいくつかのアイデアになりますが、私のアイデアが正しいかどうかを判断する方法がわかりません。 推奨されたソフトウェアアーキテクチャとオブジェクト指向に関する多くのことを読んだと言ったので、これは理論の欠如ではないと思いますが、実際には何をしなければならないかを特定するのにはあまり役立ちませんでした。 それでは、どうすればオブジェクト指向設計を実際に 行うことができますか?私が学びたいのは、与えられた要件は、何をすべきか、各コードがどこに属しているかを見つけるプロセスでそれらに取り組む方法を知っていることです。自分の考えが正しいかどうかを判断する方法を学ぶにはどうすればよいですか? ここで答えとしてこれを完全に説明することは不可能だと思います。しかし、私が探しているのは、サイトのスタイルに応じて、単に概要を示し、アイデアを拡大し、これらのことを実際に学習するために使用できる参照(書籍、オンラインコースなど)を示す回答です。

6
ソフトウェアエンジニアリングが正式な職業になるには、何を変える必要がありますか?
他の職業(会計、法律、医学など)とは異なり、ソフトウェアエンジニアリングの職業全体の認定はありません。 専門性と経験の証明を目的とする多くの技術と方法論に固有の認定をよく知っていますが、一般に受け入れられている専門的な基準を設定する(そして法的に評価する権限を持つ)公的なソフトウェアエンジニアリング学会/統治機関はありません。 私はソフトウェアが動的な獣であることを理解しています-それは芸術でもあり科学でもありますが、ソフトウェアエンジニアリングが正式な職業になる可能性があるのか​​と思っています。 これを実現するには何を変更する必要がありますか? (誰かがこのトピックの正式な研究を知っているなら、参考文献を大いに歓迎します) 更新 ソフトウェアエンジニアリングの現在の認定レベルに関して、以下に挙げた多くの良い点に同意します。また、一部の国ではソフトウェアエンジニアリングを職業として扱い、他の国ではそうではないことも非常に興味深いと感じています。 しかし、「正式な職業」という用語を取り巻くシュラウドと、それがソフトウェアエンジニアリングにどのように適用されるかについては、多少のシュラウドがあるようです。ソフトウェアエンジニアリングの重要な問題-そしてそれが本格的な職業ではない主な理由-は、認定ソフトウェアエンジニアである場合、たとえば-エレベーター用に書いたソフトウェアが誤動作して人を殺すためだと思う正式な専門機関の認定やメンバーシップが取り消されることはありません。 確かに、あなたの会社は何百万人も訴えられるかもしれませんし、あなたは個人的にあなたの仕事を失い、悪い評価を得るかもしれませんが、一般的に言えば、あなたは個人的にはその会社に雇用された結果として有限責任のシールドによって保護されています。言い換えれば、私の知る限り、巨大な詰め込みを行った後、取引を公式に禁止する義務がある法的評価/執行はありません(他の正式な専門職やその統治社会とは異なります) 。 私は、ソフトウェアエンジニアリング-現状では-能力主義であり、正式な職業である必要はなく、これは変更すべきでない良いことであるという事実に触れた答えがとても気に入りました。同時に、ミッションクリティカルなソフトウェアのソフトウェアエンジニアとその他の/クリティカルでないソフトウェアの開発者を明確に区別する必要があると思います。 ミッションクリティカルなソフトウェアに取り組んでいる、またはこれまでに取り組んだことのある人に、個人的な責任はありますか?確かに、ソフトウェアエンジニアが費用のかかるミスを犯した場合、正式な影響が必要ですか?

1
ソースコードのコメントがソフトウェアの品質、保守性、開発者の生産性に及ぼす影響に関する実証的な研究はありますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 6年前に閉鎖されました。 私はソースコードにコメントし、ソフトウェア製品を文書化することを提唱しています。私の個人的な経験と観察から、厳密にコメントされているソースコードに取り組んでいると、ソフトウェアの成長や保守が必要になったときにさまざまな方法で役立ったことがわかります。 しかし、コメントすることは最終的に価値がない、またはその価値には疑問があると言う別のキャンプがあります。コメントなしのコーディングの支持者は次のように主張しています。 コードの一部が適切に記述されている場合、それは自明であり、したがってコメントする必要はありません コードが自明でない場合は、コメントを必要としないように、リファクタリングして自明にする テストスイートはライブドキュメントです 時間が経つにつれて、コードとコメントが同期しなくなり、別の頭痛の種になります アジャイルは、ドキュメントの山よりも作業コードの方が重要だと言っているので、コメントを書くことは安全に無視できます。 私にとってこれは単なる教義です。繰り返しになりますが、私の個人的な観察では、賢明で経験豊富な開発者のチームによって作成されたソフトウェアは、最終的に自明ではないかなりの量のコードになります。 繰り返しますが、Java API、Cocoa API、Android APIなどは、高品質のドキュメントを作成して維持したい場合にそれが可能であることを示しています。 これらすべてを言ったが、個人的な信念に基づいたドキュメントの長所と短所およびソースコードへのコメントについての会話は、通常うまく終了せず、満足のいく結論につながらない。 そのため、ソフトウェアドキュメントの影響、特にソースコードのコメント、品質と保守性、およびチームの生産性への影響に関する学術論文と実証研究を探しています。 そのような記事につまずいたことがありますか、もしあればその結果はどうでしたか?

4
どんよりした非技術的なマネージャーを寄せ付けずに、良い仕事を提供するにはどうすればいいでしょうか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 7年前に閉鎖されました。 この質問は主観的と見なされ(警告を受けた)、閉じられますが、これに関するいくつかの良いアドバイス/経験が必要なので、私はそれを危険にさらします。 私は次のように読んで「約」のページ霧クリークソフトウェア、という会社ジョエル・スポルスキが設立され、の最高経営責任者(CEO)であるが。 2000年に、フォグ・クリークの創設者であるジョエル・スポルスキーとマイケル・プライアーは、プログラマーがきちんとした労働条件を持っていて、仕事をする機会を得るのに苦労していました。道。すべてのハイテク企業は、優れたプログラマーを望んでいると主張しましたが、彼らはお金を口に入れませんでした。 それは物理的な環境から始まりました(数十個のキュービクルが騒々しい暗い部屋に詰め込まれ、電話で叫ぶ営業員が開発者が集中することを不可能にします)。しかし、それはそれよりもずっと深くなりました。変更を恐れるマネージャーは、新しいアイデアを隔離すべき奇妙なウイルスとして扱いました。ナポレオンの複雑なジュニアマネージャーは、物事を正確に自分のやり方で行うか、解雇されると主張しました。誰もが自分のキュービクルに映画のポスターをテープで貼り付けたとき、企業の家具警察は苦痛にwrりました。混乱はso延していたので、たとえアイデアが良かったとしても、それらから製品を作ることは不可能だったでしょう。経験の浅い管理者は、ヒットアンドラン管理を実践し、フィアットの過激な結果を見るために固執せずに物事を正確に行う方法について厳しい命令を出しました。 そして最悪なことに、担当のMBAタイプは、コーディングはサポート機能であり、基本的には型の洗練された形式であると考えていました。 今日の大規模なソフトウェア会社のほとんどについての率直な真実!残念ながら、すべての開発者がJoel Spolskyのようにgutsy(またはlucky言うことができますか?)だから私の質問は: そのようなマネージャーと仕事をし、彼らを寄せ付けず、それでも素晴らしい仕事を提供する最善の方法は?

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