プロジェクト | コンテンツ |
---|---|
コースクラスのブログのリンク | https://edu.cnblogs.com/campus/xbsf/nwnu2020SE |
運用要件へのリンク | https://www.cnblogs.com/nwnu-daizh/p/12521474.html |
コース学習目標 | ソフトウェア開発協力、操作の練習ペアプログラミング方法(ペアプログラミング)、マスターGitHubの共同開発プログラムの経験。 |
この仕事は私がどのような分野での目標を達成するため学習に役立っ | さらに意義とソフトウェアエンジニアリングのプロセスを理解するためのプロジェクト、再び小さなチーム効率の連携部門の経験を姉妹提携することによって。 |
他の学校の数を結び目 - 名前 | 201771010108-ハンブルーム |
ブログでは、他のジョブリンク結び目 | |
Githubのリポジトリプロジェクトリンクアドレス |
結び目の反対側「ソフトウェア工学実験2つの個々のイベントは、」プロジェクトの成果を評価するA.
プロジェクト作業ボーエンの1.1ペアは、読んでコメント
(1)は、他の結び目のブログへのリンクを
(2)は次のようにショットがあるコメント
1.2は読み、それぞれ他のクローニングプロジェクトのソースコードを結び目とテストは、コード、ピアレビュープロジェクトのコードを実行し、記録しました。
(1)は、他のGithubプロジェクトの結び目倉庫リンクを
次のように符号表の(2)の検証です。
概要セクション
(1)コードの要件と仕様を満足しますか。
A:ニーズと仕様を満たすために一部。
(2)は、包括的なコード設計上の考慮事項がある場合は?
回答:非常に包括的ではないが、何度も改訂します。
どのように(3)コードの可読性?
A:理解しやすいです。
簡単に(4)のコードは、それを維持するには?
A:難しいです。
各ラインの実行および(5)のコードは、ハァッ、それを確認しますか?
A:はい、私がチェックしました。
設計仕様書
(1)が知られているデザインパターンやアイテム一般的に使用されるモードに適合するように設計されたかどうか?
A:いいえ
(2)が存在しないハードコードされた、または文字列/数字等が存在?
A:一部があります。
(3)コードは、それが(例えばWin64のにWin32のように)移植の将来に影響を与えるかどうか、特定のプラットフォームに依存していない
回答:いいえ依存性はありませんが、それは影響を与えません。
(4)新しい開発者は、達成するための機能で、既存のライブラリ/ SDK / Frameworkでコードを書くことができますか?せずに呼び出すことができ、このプロジェクトでは、同様の機能があるかどうか、すべてを再実装しますか?
A:あなたが達成することができ、存在しません。
未使用のコードをクリアすることはできない(5)がありますか?(多くの人がソースコード管理は、元の古いコードを保存しているため、将来的には、これは多くのコードを削除することができ、コードを、コメントしているプログラムファイルにつながっている過ごすことになりますで、できるだけ多くのコードとして保存しておきたい。)
Aを:そこにクリアされています。
コードの仕様
(1)それが(詳細な規定は省略)の規格やスタイルに合わせてコードの一部を変更しますか?
A:ラインのコードの一部は、改変に適合していません。
特定のコードセクション
(1)エラー処理が存在しませんか?外部関数呼び出しの場合、戻り値や例外処理をチェック!
A:処理後の情報と議論へのアクセスがして、完全なチェックと契約です。
(2)エラーの伝送パラメータを、文字列の長さのバイトまたは文字(シングル/ダブルバイトであってもよい)の長さは、開始カウントがカウントする0または1を開始するのですか?
A:それはバイト単位で文字列の長さの長さで、エラーを訂正あり、0がカウントされます。
どのように(3)境界条件に扱われますか?どのようにデフォルトのスイッチ文が処理されますか?それは無限ループがループすることは可能ですか?
A:境界線がより適切なページデザイン、双晶のパートナーは唯一のページのデザインを完了し、それがサイクルに関与していない、いくつかの機能が実装されていません。
私たちは本当に会うと思うのと同じ条件を確実にする一切使用アサーション(アサート)は(4)が存在しませんか?
A:いいえ使用。
リソースの(5)の使用は、どこどこ解放するために、適用するのですか?それは、リソースリーク(メモリ、ファイル、様々なGUIリソース、データベースアクセス接続など)を引き起こすことは可能ですか?それは、最適化することは可能ですか?
A:はい、インターネット上にあるリソースリークにつながるものではありません。
データ構造要素が使用されるかどうか(6)?
A:若干の審査の後、それが削除または変更されました。
効果
(1)コードの性能(パフォーマンス)どのように?最悪のケースは何ですか?
A:コードが正しい、プログラムが正常に実行されます。
サイクルの重要な部分がある場合は特に、(2)コードは、(C ++の繰り返しC#StringBuilderの文字列の動作を最適化することができるかどうか、クラスを作成する)を最適化することができますか?
A:そこ部を最適化することができ、その効果が顕著のでそのまま、改変改善されません。
それはシステムやネットワークのタイムアウトをコールするかどうか(3)??どのように対処する
A:いいえ、タイムアウトが解決されていません。
可読性の
コードの読みやすか?そこに十分なコメントますか?
A:コードは非常に複雑で、少し注釈ではなく、後でいくつかの批判的なコメントを補いました。
テスト容易性
、コードの必要性の更新または新しいユニットテストを作成するには?あなたはまた、(例えば、データベース、Webページ、マルチスレッド、など)特定の分野のために開発されたチェックリストを持つことができます。
A:いいえ
- チェックリストテンプレートから引用し「法の構築 - 。現代のソフトウェア工学」
1.3使用githubのフォーク、クローン個々のプロジェクトやコンパニオンのソースコードの修正協力に関するその他の業務の見直しの調査結果によります。
(1)は次のようにプル要求のログデータをマージし、元々フォーク、クローン、プッシュプル要求を倉庫プロジェクトの反対側に結び目。
(2)変性見やすくするためのローカルリポジトリに他の接合Gitのクローンコマンドを使用。
(3)fork関数を使用しては私の個人的な倉庫に転用他の倉庫を負担します。
(4)合成プル要求検査要求の作成者を使用して
(5)使用のマージプルリクエストへの原作者は、私が提出されたコードをマージします。
(6)著者マージ後のログデータ。
II。北西通常の流行の予防と管理統計情報システム開発
2.1要求分析文。
デザインと私たちの学校の要件の流行の予防と管理情報システムのニーズに沿っの開発、それは次のような特徴を持っていること:
-
(1)学校職員と学生のすべての種類は、流行に関する情報を収集することができます。
-
(2)部門のスタッフの流行の予防と管理の仕事を担当する2つの部門の各要約流行を表示し、高度なクエリを提供することができますが、統計関数の多属性検索と可視化を組み合わせています。
-
(3)学校ログインの担当指定された人の予防と制御「北西通常の防疫や統計情報を管理」サブシステム、あなたが集約されたデータを報告するすべての人のリストを閲覧することができ、使用[]高度なクエリデータをグラフィカルに表示するシステムをスクリーニング組み合わせることができます各大学は、統計情報を報告し、非報告学生や流行のキーデータの統計情報を持っている、[エクスポート] EXCELファイルの一覧を照会することができます。
-
(4)ヒューマンマシンインタフェース要件は、GUIインターフェース(ウェブページは、APPのページとすることができます)。
-
(5)追加機能:警報を完了するタイミング。
ビューのポイントを理解するために我々のチームのために、ニーズの分析は、その細心の、実行可能な技術を要求することができる2つの顧客エッジ型の分析があります。第三は、人々のクラスは「すべての」人々の同等ですしながら、全体的な需要によると、私たちはこのプロジェクトは、人々の3種類を必要とし、人々の最初のグループは機能のみを埋めるために持っていることが判明し、第二のクラスは、その範囲を表示するために集約することができます。だから、データベースに、私たちは、二つのテーブルであるテーブル用に設計された役割のすべての種類、テーブル用に設計された流行情報になります。
最初の関数では、すべての学生を必要とすることは流行/教員に関する情報を収集することができます。我々は、具体的に流行についてのいくつかの個人情報を含むフォームに必要事項を記入し、背景に提出するように設計されるべきで、最初のカテゴリとして抽象化されます。変更する必要はありません閲覧に加えて、その他の機能(外を記入する除きます)。
第二の機能では、この流行の流行の予防と管理を担当する2つの部門を必要とすることは人事部の要約を表示することができ、および統計関数の多属性の組み合わせクエリと可視化が可能。この役割は、我々は第二のクラスの抽象化の要求するもので、クラスでは、唯一の概要とデータの可視化を見ることができる他の機能は、そのような人材の役割の概要で、実際の見た目と同等の追加と削除の役割をすることはできませんカバーや他の現象を考慮すると、役割は増加を削除する権限がありません。
第三の機能でグラフィカルに各学校が報告学生や非統計レポートおよび主要統計の流行を持って表示するには、サブシステムのログを記録するために学校関係者を必要とし、あなたが要約データを報告するすべての人のリストを閲覧することができ、データはフィルタクエリを組み合わせることができます場合、クエリの[エクスポート] EXCELファイルリスト。この役割は、ほかに変更して再検索およびその他の機能への追加や削除に第三役、ですが、またテーブルやデータの可視化をエクスポートすることができます。
第4の機能では、インタラクティブなインターフェースは、GUIを必要とし、これは達成することは困難ではない、達成するために、このようなアプリやウェブページとして変化させることができます。
追加機能には、何かに十分な注意が、その可能性は実際には非常に忘れてしまった場合には、様々な形態が、私は、私の視点から、この機能は必要ではないと思うので、この機能は、私の仲間と私は、かなりの数回の議論しました小さな、そして基本的に誰もが携帯電話の最も基本的な機能はアラームにあり、携帯電話を持っている、また、開発者を促進するために、独自の目覚まし時計を設定し、自分自身を思い出させました。そして、私のチームメイトは誰も完璧ではありません、または担当者を思い出させるために、フォームに記入することを選択したと考えられています。私たちはさまざまな方法を考案して、例えば、マイクロチャネルは、定期的に埋めるために毎日思い出したマイクロチャネルのパブリック番号をどうする、人気の通信ソフトウェアとなって、というようにしています。最後に、我々は選択した電子メール警告の方法を使用することで、タイミングが埋めるためにユーザーに通知を送信します。
2.2ソフトウェアの設計仕様。
2.2.1ソフトウェアの背景
2019年12月の終わり、中国武漢は、予防と管理の一連の措置をとるために、流行の広がりを抑制する効果的にウイルスの伝達を遮断し、中央政府の指導の下、すべてのレベルで政府部門のために肺炎の流行に感染した小説コロナ(2019-nCoV)が行われます。 2020年以来、1月Riを武漢の10時23分「閉鎖都市」で、31個の省や自治体も厳格な規制措置を実施している、救助作業や武漢、湖北省に参加する医療チームを送信する省や都市は、全国;国での展開を動員する他の省から武漢保証用品、マスク、防護服、医薬品やその他の緊急に必要な医療資源武漢をサポートするために、できるだけ早く生産能力を再開するために、全国の医療物資の生産資格を企業に案内し、監督する;疾患の予防と管理のための資金の監督特別な財政配分人々の日常生活。
中国のインターネット企業が社会的流行の予防と管理のガバナンスに重要な役割を果たしていることを言及する価値があります。テンセントは、例えば、流行の制御に応じて約ダースに製品を開発する必要があります。発熱と患者間の相互交差感染を減らすために流行のオンライン照会機能は、インターネット博士翔Zaixian照会を通じて自宅で患者に重要な役割を持っている場合は、ウイルスや感染症の伝播のリスクを低減し、公共のための噂スマッシュは、流行に向けて合理的な態度を取ります大きな意義の開発。武漢旅行はまた、武漢トラフィック制御の実装において重要な役割を果たしている通勤医療スタッフを、提供するために特別チームを設置降下します。また、ストローククエリツールと診断された新しい肺炎患者は、ユーザーが唯一の公共交通機関や旅行で自分の時間を入力する必要があり、あなたは感染が先に自己隔離と治療の仕事の、相手を診断されたかどうかを確認することができます。流行の予防とコントロールでは、中国のインターネット企業だけではなく、社会的責任の面で成長し、ますます成熟になってきています。
コレクション、統計と効果的な協力のための防疫や制御メカニズムのトラブルシューティングに役立つ情報が、私たちの学校は、流行のスタッフが毎日報告するシステムを報告教職員/学生の流行を開発している、学生の流行は、毎日毎日、流行の二部門を報告しました集計表、4つの統計報告伝染病の予防と制御サブシステム。私たちの学校の基本的な状況を達成するために人員、地域や情報収集活動やトラックの健康のすべてのカテゴリ。教師と学生が本学の企業マイクロチャネルサービスホールによる情報の遠隔報告のためのシステムにアクセスします。
2.2.2ソフトウェア・アーキテクチャ設計
(1)設計3登録ログイン機能、およびユーザ制限機能の各レベルは、を利用します。
(2)システムは、登録モジュールを有するログイン・モジュール、モジュールを報告し、照会モジュール、エクスポートモジュール、6つの大部分から構成されるモジュールを思い出させます。
(3)インタフェース設計
1)外部インタフェース
ユーザインタフェース:インターフェイスのデザインで、シンプルで、簡単に重要な情報を投影する、原則として動作します。
ソフトウェアおよびハードウェアインタフェース:システムは、主要なハードウェア・インターフェース・デバイスは、PC、マウス、キーボードで、簡単に管理するには、アカウントにシンプルを取って、GUIインターフェイスを備えています。ソフトウェアは、基本的なプラットフォームとして、メイン、Windowsプラットフォームとのインタフェース。
2)独立した各モジュール内の互いの間の関連付けは、様々な部品の接続方法を呼び出すことにより、主として実現しました。
(4)データ構造の設計
構造設計二つのテーブル:ユーザ情報テーブルと流行情報テーブル。
2.2.3ソフトウェアの機能の説明
-
(1)情報は流行を収集することができます。
-
(2)は、2つのロールの各々は、部門のスタッフ流行の概要を表示し、統計関数のマルチ属性クエリと可視化の組み合わせを備え、高度なクエリを提供することができます。
-
(3)3つの役割、あなたが集計されたデータを報告するすべての人のリストを閲覧することができ、使用[]高度なクエリデータは、グラフィカルに大学生が統計や流行のキーデータの統計情報を報告し、非報告されている表示にシステムをスクリーニング組み合わせることができます[エクスポート] EXCELファイルリストを照会することができます。
-
(4)ヒューマンマシンインタフェース要件は、GUIインターフェース(ウェブページは、APPのページとすることができます)。
-
(5)家具リマインダータイマー。
2.3ソフトウェア
ユーザクラス(ユーザー)を定義し、宣言プライベート変数プライベートシリアル番号(ID)、名前(ユーザー名)、パスワード(パスワード)、ユーザタイプ(タイプ)、および各属性のメソッドパッケージ:セットを()、(取得)、性質理由プライベート、直接アクセスしない、例えば、直接外部IDに設けることができない、id値は、のgetId ID値を取得し、SETID方法によって設定してもよいです。
定義情報カテゴリ(ウイルス)は、プライベート変数を学校(大学)、クラス(MyClassの)、日付を報告(STARTDATE)、名前(ユーザ名)、電話(TEL)、県(州)、市(町)、地域(エリアを宣言します)、学生(ischinesestudent)、武漢の学生(iswuhanstudent)、湖北省の学生(ishubeistudent)、14タッチ任意の(is14contact)、武漢(isinwuhan)、湖北(isinhubei)で、学校に戻って、今日(istodayformother)、疑わ(islikevirus)、診断(isconfirmvirus)。
豆クラスJavaBeanクラス、設定クラス構成、DAOクラスのマッパー、サービスサービスグループ、唯一の義務をそれぞれ担当し、各メソッドの完全な計算、プログラムロジックは、クラスが高い可読性を持って、簡単です。インタフェースを設計するとき、それぞれのインターフェースは、コードの冗長性を低減する設計方法の一定の割合を割り当てられました。そして、ハイレベルのモジュールは、低レベルのモジュールに依存しません。
2.4コア機能コード表示
/** * 将数据写入到excel中 */
public static void makeExcel(List<List<String>> result,String[] tittle) {
try {
// 创建一个workbook对应一个excel文件
HSSFWorkbook workbook = new HSSFWorkbook();
// 在workbook中创建一个sheet对应excel中的sheet
HSSFSheet sheet = workbook.createSheet("病例日期表");
// 在sheet表中添加表头第0行,旧版本poi对sheet的行列有限制
HSSFRow row = sheet.createRow(0);
// 创建单元格,设置表头
HSSFCell cell = null;
for (int i = 0; i < tittle.length; i++) {
cell = row.createCell(i);
cell.setCellValue(tittle[i]);
}
// 写入数据
for (int i = 0; i < result.size(); i++) {
List<String> oneData = result.get(i);
HSSFRow row1 = sheet.createRow(i + 1);
//创建单元格设值
for (int j = 0; j < oneData.size(); j++) {
row1.createCell(j).setCellValue(oneData.get(j));
}
}
//将文件保存到指定的位置
FileOutputStream fos = new FileOutputStream("D:\\result.xls");
workbook.write(fos);
System.out.println("写入成功");
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
2.5スクリーンインタフェース機能を実行します。
基本的な機能
- 役割をサインアップ
- 三の着陸の役割
- 学生/教職員のレポート機能
- この流行の流行の予防と管理を担当する2つの部門のそれぞれは、人事部の要約を表示することができ、高度なクエリは、統計関数の多属性検索と可視化を組み合わせています。
- サブシステムログイン学校関係者は、あなたが、使用[]高度なクエリデータをスクリーニング組み合わせることができ、集計データを報告するすべての人のリストを閲覧することができます
- 削除機能
- 機能の追加
- このシステムは、各大学の学生が報告および非統計レポートをし、流行の重要なデータ統計されているのグラフィカルな表示を提供します
- [エクスポート] EXCELファイルの一覧を照会することができます。
(4)ヒューマンマシンインターフェースGUIインターフェース要件
WEBページ
その他の機能
- 定期的な報告を思い出させます
- 時には、スパムとして識別され、それが不快です
プロセスの結び目、QQのスクリーンショットの2.6説明
協力プロジェクト、および彼のチームメイトは、期間中に労働、整然とした、いくつかの論争のうちものの途中、しかし最終的には良好な一致を明確に区分し、いくつかの良好な協力関係を持っていました。
2.7姉妹提携事業PSP。
PSP2.1 | コンテンツ | 必要な時間を完了するための計画(分) | 完了するために必要な実際の時間(分) |
---|---|---|---|
プランニング | 計画 | 30 | 40 |
推計 | これは、タスクは、一般的に作業工程に多くの時間と計画が必要と推定しました | 30 | 40 |
開発 | 開発 | 1100 | 1330 |
分析 | (新しい技術を学ぶ含む)ニーズ分析 | 60 | 180 |
デザインスペック | 設計ドキュメントの生成 | 30 | 30 |
デザインレビュー | デザインレビュー(と同僚が設計文書を見直し) | 60 | 50 |
標準コーディング | コードの仕様(現在の開発のための適切な規範の開発) | 30 | 40 |
設計 | 具体的な設計 | 240 | 200 |
コーディング | 具体的なコーディング | 500 | 600 |
コードレビュー | コードレビュー | 60 | 50 |
テスト | 検査(セルフテスト、コードを変更し、変更を提出) | 120 | 180 |
報告 | レポート | 120 | 180 |
試験報告書 | テストレポート | 40 | 60 |
サイズ測定 | コンピューティングワークロード | 40 | 30 |
死後&プロセス改善計画 | その後まとめ、およびプロセス改善計画 | 40 | 90 |
経験の2.8まとめ
2は、1 + 1> 2 DOの効果をもたらすことができ、本当に働いていますか?この協力を通じてこの問題については、私は一人でそれを行うことは、確かにはるかに優れた効果であるよりも、二人が協力し、同じことが、それぞれ、作ることだと思います。このツイニングを通じて、私はそれが害よりも良いと思い、彼のチームメイトの存在、より目のペアと考え方の異なる方法の同等があり、ビューと方法の問題解決のポイントは多様であることができ、マルチアングルの、例えば、Iと彼のチームメイトそこの間の追加機能の設計のいくつかの論争と議論。自分の欠点のためにも、将来的には、独自のを作るための簡単なアップグレードのための良好なコントラストを反映しています。そして、プロジェクトはまた、厳格であることを複数の人でなければなりません開発し、いくつかの作業も大幅に個々の負担を軽減、分業することができます。欠点のビューが統一されていないということである、と様式化された演技、時間の矛盾などの分布。