プロジェクト | コンテンツ |
---|---|
この作品は、コースに属し | 春2020コンピュータソフトウェア工学研究所(ロジャー・レン建) |
どこの仕事でこの要件 | 個人ブログのジョブ |
このコースでの私の目標です | システム・ソフトウェア・エンジニアリング、実際には個人的な開発へのアクセス |
仕事具体的な側面は、私は目標を達成するのを助けます | 読書を通して新しい知識を学習し、質問をし、反映 |
クイックルックは、完全なリストは、あなたが教科書まだ理解していない、あなたの個人ブログに掲載5-10の質問に、。
質問1
どのように独自の機能モジュールは、内部モジュールが他のモジュールに影響を与えません変更、できるだけ具体的として責任を定義することができますが、また、モジュールの品質が安定し、定量化可能な保証を得ることができますか?ユニットテストは非常に効果的なソリューションです。
- 2.1ユニットテスト
それはユニットテストに来るとき、あなたは私がグループで使用されるコース自動評価機を考えてみましょうする必要があります。それは自動評価機に来るとき、私は悲劇的な時に2年生の学期OOを考える必要があります。私が90以上のスコアへの平等なアクセスについてです自動評価機を書きます、と言うことができます。自動評価機書き込み多くの人々、少数の書き込みユニットテストがあるんですか?
私には、ユニットテストは、様々な書類、時間がかかりますが、自動評価機のデータのみを、簡単なシェルステートメントを達成することができ、大きなバッチバグテスト範囲で長い時間がかかることがなくて、独自の分岐構造を通じてカバーに必要条件分岐問題の限られた様々な。だからユニットテストは、実際には必要ではなく、自動査定評価機の暴力を使用する必要があることを示しているのでしょうか?あるいは、ユニットテストを補足し、評価は、大面積に基づく暴力をカバー?
質問2
ペア・プログラミング・モード、側プログラマ、等しく、相補開発によって一対のサイドで。彼らは、マウスでの作業、同じキーボードを使用して、表示面と、コンピュータの前に並んで座っていました。
ペアプログラミングでは、プログラムのすべての面での見直しと品質のやり取りに任意の時点で存在しているように、1というハイレベルのすべての面でのプログラマーの1組に依存します。
--4.5.2なぜペアプログラミング
ペアプログラミングは、多かれ少なかれ教室で、この機会を持っていた、そして、私のために、貧しい人々よりも、ほぼすべての経験を言わなければならないしています。
実際にコードを書くの過程で、我々は考えるかもしれない、と私は共同書いたとの個人的な側面を持つことができる場合、私は非常に良いことだ、確かに書き込みコードますので、バグを共同発見しました。次いで、これを述べたように、ビューの最初の段階点です。
しかし、実際には、しばしば規格外の2思考の人は継続することができない、または誰かが大きすぎる兄であるので、他の缶が唯一のコールを再生したり、二人は料理、最終的には両方の吊り枝している場合。これは、ビューのポイントで2番目の段落の単語を確認します。
だから、今、私たちは「小さな黄色いアヒルのデバッグ」の法則を持っていることを、なぜ私たちは、仲間は我々のコードの問題を指摘する必要がありますか?セイは、おそらく少しも独断が、ペアは本当に必要なプログラミング?大規模なエンジニアリングチームは、自ら完成させることができる小型の手順を実行する必要があり、ペアプログラミングはやや冗長なようです。複数の単語を言った二段落に従って何、プログラムの長所と短所は、その1のすべての面で高いレベルのプログラマに依存します。まあ、組み合わせに応じて、我々は次のような状況があります。
兄、兄の鶏料理、鶏料理鶏料理とギャング。
最初の組み合わせは、おそらく、より適切なペアプログラミングは、しかし二人は、多くの場合、同じ2つの機能を引き渡す最終的には規格外、または首長との意見があるので、スタイルは完全に異なるコードがあるかどうか、それは「私は、自分自身を負担する」を意味します?
第二の組み合わせが強すぎ、不注意鶏皿に水を率い、しばしば彼らの能力の首長がされて、彼は「結び目私自身、」それはありますか?
第三の組み合わせは、彼らはいくつかの側面には、2つ一緒に鶏肉料理、鶏料理のために作られたので、それは非常に責任がある場合、あなたはまた、良い仕事をペアにすることができ、欠陥を持っているが、2人の場合ありもっと「DDL戦闘機グループ」に「DDL兵士」からではない、それをミックスしたいですか。
だから私の意見では、結び目は、プログラミングのために必要ないないようですか?
質問3
何度もユーザーがソフトウェアのチームが需要を導くために、ユーザーのために、自分自身を置く必要があり、その正確なニーズを知っていない、または完全な要件を表現する必要はありません。
--8.1ソフトウェア要件
最近、私はこの問題が発生しました。
ヘルプ他人にコードを書くプロセスでは、他の当事者は明らかに彼らのニーズを表現する、あるいは直接、いくつかの可能な需要を提案するために私に尋ねた、と私は私の中で、最初のコードが、また、いくつかの新たな需要を書き終えた後することはできません要件の変化に応じて、彼らは何度も、以前のもののニーズの以前のバージョンにフォールバックした後。
実際の市場では、当事者がそれについて考えることがプログラマにでも直接均等気まぐれ、またはかどうか?だから、このタイプのユーザーのために、どのように我々は最終的にそれに対処すべきか?コードについては、私はあなたのコードを整理する方法なので、この絶えず変化するニーズでは、我々のコードの作家や擁護者としてではなく、一般的な問題の途中で焦点に、本の中で参照してください?
質問4
私たちは、チームは、人々が自分の害を減らす可能性がある、スローダウンするように注意していない事をやりたいです。
--11.5.2デイリービルド
これは風水のRuカップ年生の気持ちを思い出させます。
私はより多くの午前または却下の理由は、ここのチームは、すべての時間は自分のA型の人の影響のチームは、あまりにも、また風水のRuカップ、数学的モデリングすべての要件を完了するようだということです。私は時々自分自身を振り返り、なぜ「タスクチームは、」最後に、私はそれの「個人的な使命」となっていますか?私が行うには、強力な能力を持っているので?私はそうは思いません。
「気に。」ので、
Exchange Onlineの、我々は最終的には自分のチームメイトを知っていることはありません読み取りまたはないリターンに戻って見ていない、おそらくこれは「シュレーディンガーのチームメイト」それではありません。
私がお聞きしたいので、グループが演技を控えるようなっている、あるいはもう少し軽蔑のチームメイトとして、その豚を言うために、ケース内に一時的に変更する方法がない場合は、それを引き起こしているかのチームに彼らの損失を低減するためにすべきですか?次に、どのようにする場合、それを「チームを飛んで男を」減らすには?
質問5
私は単にバージョンをマージし、チェックインした場合、それは失敗をコンパイルTFSにつながる可能性があります。しかし、私は、ステップ2と3を繰り返すことが同等であるさまざまなテストを、合併、ローカルコンパイル後、品質を確保し、実行するために注文した場合。私はもう一度(繰り返し手順4)を提出することでチェックすると、競合の新しいバージョンが発生する可能性があります。このようにサイクルは、無限に結果......
--11.5.4気性の正義は間違っています
だけでなく、卒業後、私たちは問題のコードを維持するためにチームに直面する必要があるが、このソフトウェア工学コースで、我々はまた、コードを維持するための共通の問題に直面する必要があります。
一緒に生徒の前に覚えていると、大規模なコードを維持し、gitのは、あなたの頭を使用することを耐えることができなかったことができます。
しかし、また、多くの場合、プログラマの仕事で聞いたコードを維持し、あなたの上に最初に変更した場合は、倉庫に提出し、時間との戦いに必要な、そして他の人が再提出し、数回の合計を繰り返し、対応するバージョンことを確認するために修正する必要があります低速の人々は、すべて私の同僚を変更することが何度も何度も変更した後に待機する必要が変更します。別の変更は、問題の最後に出現するが、合併の時に互換性がない可能性があるため、異なるサーバー上の自分のコードがしばしば有用である、変化にとてもたくさんの悩みをしたいを再構築する必要があります。したがって、このバージョンの不整合のために、よりよい解決策はありますか?
質問6
ソフトウェア・カレッジの学生は、ゼリーYishanのインターンシップでは、彼はスーパーを尋ねた:なぜソースコード管理を必要としますか?私は、コードの詳細だけでなく、過去にQQのパスを使用するために、他の人に、冷却書き込み。なぜ古いコードを見て?私の最新のコードは、最高品質、最高品質のコードは十分にありますか?
--11.6実際のソースコード管理
私たちは、多かれ少なかれ、この問題が発生します。
最初のコードのフレームワークの完成で、我々はまた、可能な限り様々な機能のパッケージ化、低カップリング、非常に良いと思います。しかし、長い時間のための新たな需要ショックの下で、我々は必然的にますますので、元の美しいコードが劇的に変化した後に、ある臨界点に、コードを書き換える肥大化となります。単純には、おそらく何千行ものコードを再建することで解決することができますが、プロジェクトに、多くの場合、数万人、数百人のコードの量の何千ものは、リファクタリングは明らかに非現実的です。
しかし、私が言った本の最初の部分に応じて、我々はオーバー解析によって引き起こされる問題に多くの思考を与えるべきではありませんが、ニーズを総合的に分析することなく、その後、より深刻な問題につながるのだろうか?インクリメンタルタスクの場合、ポイントのコードを維持することに注意を払う、それがどこにあるのでしょうか?コードは、その美観を確保するために再構成されるかどうかに特定の閾値の後に?
そして、これは、我々は、コードの外観のためにあきらめるなら、私は、考えるもたらし、その後、ちょうど増分増分(私も多くの企業がこのようなタスクは、このような方法で、ちょうどフランケンシュタインのようなコードで扱うことを信じて)、新しいです新鮮な血液を吸収するために資するものであれば新兵、コードの可読性が悪く、?そして、本はまた、新入社員が会社のコードがあまりにも醜いと感じるという話を述べ、彼らは、彼の同僚は言った、これは新しい従業員リファクタリングバージョンのコードで再構築していきます。問題なコードの膨張、貧しい読みやすくするため、我々は他の方法を再構築していないかどうかに加えて?それのその機能性と可読性を維持するために、よりエレガントな方法でかどうか?
質問7
近年では、私たちの社会全体が創造的な才能、革新的な学校、革新的な企業、革新都市、メディア上の革新的、社会的及びその他の用語の完全な、非常に革新に興味があるようです。
--16.1イノベーションの神話
普通の人のために、比較的剛性の教育図書を受け入れた後、その革新的な力を失っているようです。
単語革新、唯一のユニークなものの最愛のかどうか?
自分のために言えば、学生の協力のプロセスを、私は時折、自分の見解を提唱し、製品にヒットしているが、両方を拒否されました。ことでは言ったので、それは創造性、それの私の欠如を意味するのでしょうか?私は角度のうちだと思うように私をリードし、バイアスの問題点を考えるおそらく方法は現実的ではないが、我々はそれを育成する方法、効果的な技術革新をしたいですか?どのような側面から考えてすべきか?
いつ、どこで、誰が - 「ソフトウェア」および「ソフトウェアエンジニアリングは、」これらの単語の表示方法であるのだろうか?
ソフトウェア
1953年8月、リチャードR.Carhartはランドのメモの研究で初めてこの言葉をソフトウェアを書きました
1958年、ジョン・ワイルダーテューキーは、ソフトウェアという用語は、最初の論文レコードに掲載されましたある「コンクリート数学の教育」と題する論文を発表し
ソフトウェア工学
1950年代には、MITの講義で、ダグラス・T・ロスは、すでに正式にこの用語命名マーガレット・ハミルトン、後に、この用語と呼ばれます。
人間の顔「ソフトウェアの危機」による1960年代では、長期的なソフトウェアエンジニアリング1968年から1969年にはNATOが主催する会議を提案しました。
[エクストラクレジット]:我々は、すべてあなたが面白いトリビアや物語をどう思うか尋ねるためのソフトウェアおよびソフトウェア・エンジニアリング、ソフトウェアエンジニアリングの開発プロセスの起源を知っていますか?
レナマップ
図レナは、有名なデジタル画像処理の図は、多くの場合、それは次の機能が含まれているので、テストとして使用されています。
図の詳細は、様々な画像処理アルゴリズムを試験ウェルにシェーディングやテクスチャ、領域を平滑化、混合適度。
レナは、画像処理業界の研究者(主に男性)のために、美しいマップが効果的に研究を行うためにそれらを引き付けることができる、美しさです。
テスト画像が実話であるとして、しかし、実際には、それが採用されました:
1973年6月、アシスタント南カリフォルニア大学で信号を処理する画像の研究所の教授と彼の大学院生の一つは、デジタル写真、および退屈「退屈」の写真のために手持ちの山にそれらを見つけるための学術会議のために意図しています。実際、彼らはいくつかの明るいスポットながら、顔写真である必要があります。そして、誰かが研究室に入って、「プレイボーイ」誌で手にあった、物語は起こった......と結果だけで元の画像を引っ張って、ラボ機器やテストのその時の写真、レナの画像に限定する必要があります肩のために。
現在人気のあるソースのバージョン管理ソフトウェアとプロジェクト管理ソフトウェアに関するインターネット調査、あなたは、どのような利点と欠点が何でありますか?
名前 | ユーザー数 |
---|---|
Assembla | わからない |
バディ | わからない |
CloudForge | わからない |
ジート | わからない |
OW2コンソーシアム | わからない |
ロゼッタコード | わからない |
ONLY | わからない |
GitHubの | 3100万 |
Bitbucket | 5,000,000 |
発射台 | 3965288 |
SourceForgeの | 3,700,000 |
GitLab | 10万 |
GNUサバンナ | 93346 |
OSDN | 54826 |
Ourproject.org | 6353 |
長所と短所
名前 | 利点 | 短所 |
---|---|---|
マイクロソフトTFS | アジャイル、MSF、CMMI他のプロジェクト、プロセス管理、プロセス改善のためのサポート。あなたは、ガントチャートよりも便利、小さなチームのために、タスクのバージョン、プロジェクトの進捗状況を一目を要求することができます。 | チームを適用することができ、ソースコード管理この部分であるそれらのほとんど本物の非常に中小企業の数は、これが唯一の非常に小さな部分は、TFS機能を占めています。 |
ギット | サーバとあまりにも素晴らしいことではないでしょうデータの量に世論の圧力;個々の分散開発、強調のために適した、高速、柔軟、オフラインで作業し、簡単に二人の開発者の間で矛盾を解決することができます。 | サイクルを学ぶことは比較的長いです;奇なる思考、貧しいセキュリティコード、ライブラリ全体のクローンダウン、開発者は、すべてのコードとバージョン情報完全に開くことができたら。 |
活発 | 簡単に使いやすい、学ぶために、良いパッケージ | パフォーマンスの低下、クロスプラットフォーム、枝管理が柔軟ではありません。わずかに悪化サポートコミュニティ |
GitHubの | GitのリポジトリGitHubのは、ウェブに基づいてサービスを提供し、あなたはGitのソースコード管理機能、またはその特性を使用することができます。GitのリポジトリGitHubのは、ウェブに基づいてサービスを提供し、あなたはGitのソースコード管理機能、またはその特性を使用することができます。 | 創造的なプロセスとレコードの創造的なアイデアをキャプチャするための最適なツールではないかもしれません。この特殊機能についてLayerVaultアナログ、または他の同様のツールを選択することができます。以前、我々はすでに強調してきたGithubのは、コードを追跡するための理想的ですが、それは最高のデザイン・トラッキング・ツールではありません。コードまたはのために設計された製品のセットに映像コンテンツが、それはまだのように滑らかではないようです。 |
Bitbucket | 使いやすい、無料、中国人のためのサポート | 遅い、ソースコードが閉じられています |
Tracの | 非常に柔軟で任意の制御およびSVN統合することができ | 機能は非常に強力ではありません。 |
Bugzillaの | 無料、サポート中国語版 | クイック検索結果が正確ではありません。欠陥のみを管理します。 |
アップルはXCode | 高速でコンパイルし、各操作は非常に迅速かつ簡単です。自動的に任意のコードを記述することなく、アンドゥ、リドゥとセーブ機能を提供します。 | プラグインの更新されたバージョンの後失敗することがあります。 |