プロジェクト | コンテンツ |
---|---|
クラスのブログ | https://edu.cnblogs.com/campus/xbsf/nwnu2020SE |
ジョブリンク | https://www.cnblogs.com/nwnu-daizh/p/12521474.html |
学習目標 | ソフトウェア工学の知識と応用を理解し、習得 |
ジョブズゴール | ソフトウェア開発協力、練習ペアプログラミングの経験 |
姉妹提携パートナー | 李ソングゆう-201 771 030 110 |
この実験のブログのリンクの反対側に結び目 | https://www.cnblogs.com/Unicorn-snow/p/12573679.html |
Githubのリポジトリのリンク | https://github.com/Unicorn-snow/EIS |
タスク1:読書 - 「法の近代的なソフトウェアエンジニアリング建設の」章3-4コンテンツ、スタイルのコードの仕様、コードの設計仕様、コードレビュー、ペアプログラミングの概念を理解し、習得します。
1.仕様スタイルコード:
原理:シンプルな、読みやすい、明確な。
①インデント:好ましくは4つのスペース、
②線幅:100文字として定義することができる。
③括弧:括弧巧妙な、複雑な計算括弧を利用するために、
④分岐:注意を払うに複数のステートメントが配置されていませんライン;
⑤名前:不要な変更を避けるために、注意を払うに簡潔な時間を命名;
⑥下線:下線範囲セマンティック注釈や変数については、変数名を分離;
⑦ケース:異なる単語が複雑なフレーズを区別します。
⑧注:なぜそう何をすべきか、通訳。
2.コードの設計仕様は:
>コードの設計仕様の形式だけでなく、下痢帳プログラムの問題ですが、また、のような密接に関連しているコンテンツや、特定のプログラミング言語が多いプログラムの設計、モジュール間の関係、デザインパターンなど、のすべての側面を(必要C、C ++。Javaの、C #)。
3.コードレビュー:
>コードを見て、正しくコード仕様の枠組みの中で問題を解決します。コードレビューは、可能な改善のために見て、コードエラー、論理エラーや算術演算エラーを特定して解決しようとする、潜在的なエラーや回帰エラーを識別するために努力する必要があるかどうか、エラーコードを識別するために、開発者間同士、お互いに「教育」でありますので、実用的な知識及び依存アプリケーションに精通しながら、より多くのメンバーは、プロジェクトの各部分のコードに精通している経験を、教えます。
4.ペアプログラミング:
>ペアプログラミングは、段階的なプロセスは、効率的なペアプログラミングは一日に行うことができないからです。ペアプログラミング相互学習、相互の宿泊漸進的なプロセス。開発者は、この新しい開発モデルに適応するための時間を必要としています。まず、ペアプログラミングは、単一よりも効率的な開発する可能性がありますが、品質を開発するために、学習段階、ペアプログラミングチームを過ごした後、現像時間は、通常は一人で2人以上の有意な改善を開発しています。
タスク2:次のように二つは二つの遊離ペア、大腸向こう側「ソフトウェア工学実験の2つの個々のイベント、」プロジェクトの結果は、特定の要件を評価するためには、以下のとおりです。
- 他のブログのリンクを結び目。
- 他のGitHubプロジェクトの倉庫のリンクを結び、
(1)プロジェクトボーエンジョブを読み、コメントし、コメントのハイライトは、次のとおり関係欄「の対象」でボーエン構造、ブログのコンテンツ、ブログの構造およびPSPを、PSP「プログラムは、合計の必要性を完了しました実際の時間は、2つのデータの原因を探るために「ギャップ分析を完了するのに必要な時間「とは、」ブログのコメント欄にコメント内容をかけて放出されます。
(2)を参照して、読んで、テストコードを実行し、ローカルマシンに大腸他のソースプロジェクトをクローン「現代のソフトウェア工学 - 法の構築」4.4.3項コンパニオンプロジェクトコードレビューチェックリストとレコードが。
(3)フォーク、クローン、プッシュ、プルリクエスト、マージプル要求他の操作の倉庫利用githubの変更を協力して、ソースの個人的なコンパニオンプロジェクトにしようとする審査の結果に基づいて。
タスク3:私たちの教師と学生との組み合わせ2ペアプログラミングモード、日々の流行報告システムの経験、私たちの学校の伝染病の予防とコントロールの仕事のニーズに沿った情報システムの設計と開発
1.需要分析:
2019年12月の終わり、中国武漢は、予防と管理の一連の措置をとるために、流行の広がりを抑制する効果的にウイルスの伝達を遮断し、中央政府の指導の下、すべてのレベルで政府部門のために肺炎の流行に感染した小説コロナ(2019-nCoV)が行われます。 2020年以来、1月Riを武漢の10時23分「閉鎖都市」で、31個の省や自治体も厳格な規制措置を実施している、救助作業や武漢、湖北省に参加する医療チームを送信する省や都市は、全国;国での展開を動員する他の省から武漢保証用品、マスク、防護服、医薬品やその他の緊急に必要な医療資源武漢をサポートするために、できるだけ早く生産能力を再開するために、全国の医療物資の生産資格を企業に案内し、監督する;疾患の予防と管理のための資金の監督特別な財政配分人々の日常生活。
中国のインターネット企業が社会的流行の予防と管理のガバナンスに重要な役割を果たしていることを言及する価値があります。テンセントは、例えば、流行の制御に応じて約ダースに製品を開発する必要があります。発熱と患者間の相互交差感染を減らすために流行のオンライン照会機能は、インターネット博士翔Zaixian照会を通じて自宅で患者に重要な役割を持っている場合は、ウイルスや感染症の伝播のリスクを低減し、公共のための噂スマッシュは、流行に向けて合理的な態度を取ります大きな意義の開発。武漢旅行はまた、武漢トラフィック制御の実装において重要な役割を果たしている通勤医療スタッフを、提供するために特別チームを設置降下します。また、ストローククエリツールと診断された新しい肺炎患者は、ユーザーが唯一の公共交通機関や旅行で自分の時間を入力する必要があり、あなたは感染が先に自己隔離と治療の仕事の、相手を診断されたかどうかを確認することができます。流行の予防とコントロールでは、中国のインターネット企業だけではなく、社会的責任の面で成長し、ますます成熟になってきています。
効果的な予防と管理機構に関連した流行の取得、統計情報、調査、学校は流行のスタッフが毎日報告するシステムを報告教職員/学生の流行を開発し、学生の流行は、毎日毎日、流行の二部門を報告しました集計表、4つの統計報告伝染病の予防と制御サブシステム。私たちの学校の基本的な状況を達成するために人員、地域や情報収集活動やトラックの健康のすべてのカテゴリ。教師と生徒は、私たちの学校のホール零細企業の通信サービスを介してシステムにアクセスするテレマティクスを報告します。
仕事は、我々は、彼らが学んだことを活用する絶好の機会を持っている、流行の顔は、大学生として、私たちは、流行の報告システムを作り、プロの利点を活用していきます彼らのささやかな、便利に貢献するために私たちの実践と理論を与えることです流行の予防と管理組織は、関連する情報、統計や調査を収集し、およびエクスポートExcelのテーブルを介して、視覚効果やフィルタ情報を達成するために。
2.ソフトウェア設計の説明:
(1)機能的なデザイン
①学校職員と学生の種類は、疾患情報を収集することができる。
②ログインが異なる生徒と教師の種類だけでなく、管理者の身元を達成することができるようにする。
③担当流行の予防と管理者の学校は大学を参照するには流行のスタッフの概要、
④高度なクエリを提供する責任伝染病の予防とコントロールの人物の学校が多属性検索や統計クエリ結果の可視化機能を組み合わせています。
⑤学校のシステムログインの担当指定された人の予防と管理は、要約データを報告するすべての人のリストを閲覧することができます;
⑥予防と管理室公式学校は] [高度なクエリを利用することができます[グラフィカルに大学生が統計や流行のキーデータの統計情報を報告し、非報告されている表示、およびクエリのリストをエクスポートするには、システムをスクリーニングデータの組み合わせであってもよいですエクスポート] Excelファイル、
⑦GUIインターフェースと相互作用する。
⑧追加のサブ機能:セクションを思い出させるために定期的な報告。
(2)全体的な設計:
(3)データベース設計:
3.ソフトウェアおよびコア機能コード示します:
//使用poi扩展库,将输入的Jtable对象写入HSSFWork对象中,然后输出
public class JtableDownload {
JTable table;
FileOutputStream fos;
JFileChooser jfc = new JFileChooser();
public static boolean flag;
public JtableDownload(JTable table) {
this.table = table;
jfc.setSelectedFile(new File(""));
int result= jfc.showSaveDialog(null);
File file = jfc.getSelectedFile();
try {
if (result == JFileChooser.APPROVE_OPTION) {
this.fos = new FileOutputStream(file + ".xls");
flag=true;
} else {
flag=false;
JOptionPane.showMessageDialog(null,"您取消了下载!");
}
} catch (FileNotFoundException ex) {
JOptionPane.showMessageDialog(null, "已存在文件名相同的文件,要替换请先关闭!");
}
}
public void export() {
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet hs = wb.createSheet();
TableModel tm = table.getModel();
int row = tm.getRowCount();
System.out.println(row);
int cloumn = tm.getColumnCount();
System.out.println(cloumn);
String te = table.getColumnName(0);
System.out.println(te);
//样式设计
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HorizontalAlignment.CENTER); // 居中
HSSFFont font = wb.createFont();
font.setFontHeightInPoints((short) 11);
style.setFont(font);
for (int j = 0; j < cloumn; j++) {
hs.setColumnWidth( j, (1 * 4000)); //设置列宽
}
//写入HSSF对象
for (int i = 0; i < row + 1; i++) {
HSSFRow hr = hs.createRow(i);
for (int j = 0; j < cloumn; j++) {
if (i == 0) {
String value = table.getColumnName(j);
System.out.println(value);
HSSFCell hc = hr.createCell(j);
hc.setCellStyle(style);
hc.setCellValue(value);
}
else {
if (tm.getValueAt(i - 1, j) != null) {
String value = tm.getValueAt(i - 1, j).toString();
HSSFRichTextString srts = new HSSFRichTextString(value);
HSSFCell hc = hr.createCell((short) j);
hc.setCellStyle(style);
if (value.equals("") || value == null) {
hc.setCellValue(new HSSFRichTextString(""));
} else {
hc.setCellValue(srts);
}
}
}
}
}
try {
wb.write(fos);
fos.close();
JOptionPane.showMessageDialog(null,"下载完成");
} catch (IOException ex) {
}
}
}
4.プログラムを実行:
(1)ログインパート:
(2)流行の報告セクション:
(3)2つの部門長のクエリ部分:
情報の大学を見るだけでログインした後、教養学部のアカウントの担当者は明らかに
①状況の可視化:
②高度な検索
(4)学校関係者のクエリ部分:
あなたのログインがすべての情報を表示することができたら、アカウントは、学校の担当者に属していることは明らかである
すべての情報を表示することができますログイン後は、アカウントは、学校の担当者に属していることは明らかである
①高度なクエリ結果:
ページと(3)は行きますしたがって、繰り返さない
②視覚的な状況を:
学校関係者は、大学の統計を表示することが可能なコンピュータサイエンスの例を報告しに切り替えされ、統計
③Excelの輸出状況:
[名前を付けて保存]ダイアログボックスに「エクスポート」ボタンをクリックするとポップアップし
、ポップアップダイアログボックスの成功の後
、ファイルを検索しますそして、オープンし、データが正常にインポートました
ペアリング手順:
①実験的なコード仕様の仕様参照コードのペア完全な議論。
②ダウンロードおよびその他の前提の同意の下でのGithubリポジトリ操作を使用してソースコードを修正協力して、お互いのコード、他のパーティーをお読みください。
③議論し、PSP予定時間を記入してください。
実験的なミッション要求の1つの分析によって、④1は、この共同プロジェクトは、分析および全体的な設計を必要とします。
他の監視やリマインダーのコード上で実施した一方、⑤ビルド李ソング勅責任のフレームワークとGUIインタフェース部で、私は、エクスポート機能やExcel、スワップ処理をリードする場所の追加機能を実現率い達成するための機能を提供しますさまざまなアイデアは、その後、コード読み取りとともに、出現するバグの時に、より良い実装を選択のみで符号化効率よりも高い論理エラーを見つけます。
⑥プロジェクトの完了後、2人の共同声明は、冗長を簡素化するために、コードの仕様に応じて見直しました。
⑦PSP実際の時間を埋めます。
⑧レポート文書を書く、教訓を学びました。
チャット交換不便を入力して、我々はGithubのと電話交換、共有コードを使用することにしました。だから私は、上記の二つのスクリーンショットを添付しました
6.PSPショー:
PSP2.1 | 概要 | 必要な時間を完了するための計画(分) | 完了するために必要な実際の時間(分) |
---|---|---|---|
プランニング | 計画 | 10 | 10 |
・見積り | これは、タスクが複数必要であると推定 少しの時間と計画一般的 な作業手順 |
10 | 10 |
開発 | 開発 | 1260 | 1200 |
分析·· | (学習などのニーズ分析 の新技術を) |
60 | 40 |
・デザインスペック | 設計ドキュメントの生成 | 30 | 30 |
・デザインレビュー | デザインレビュー(監査や学生 コア設計文書) |
60 | 30 |
・コーディング標準 | (現在のコード仕様 の適切な仕様開発の開発) |
10 | 20 |
・ 設計 | 具体的な設計 | 40 | 30 |
・コーディング | 具体的なコーディング | 1000年 | 1000年 |
・コードレビュー | コードレビュー | 30 | 30 |
・テスト | 検査(セルフテスト、 コードを変更し、変更を提出) |
30 | 20 |
報告 | レポート | 50 | 40 |
・・ 試験報告書 | テストレポート | 20 | 10 |
・サイズ測定 | コンピューティングワークロード | 10 | 10 |
・死後& プロセス改善計画 |
後知恵、と提案した プロセス改善計画を |
20 | 20 |
7.概要:このペアプログラミングの練習では、私は深くプログラミングを取るの利点を感謝しています。オンライン学習、ツイニング・プロセスの不便、しかし一方で我々はまた、様々なツールのGithubや他のプラットフォームのアプリケーションをマスターしています。一方、個々のソフトウェアの開発と比較して、接合パートナーがよりできるだけ早く私をやる気ソフトウェア開発を行うために、そして進歩は開発中のタイムコードを完了するために、私を促してきたがあります。結び目にもかかわらず、早期の進展のために非常に遅いですが、このペアは、最終的なプログラミングのため、ソフトウェア開発プロセスでは、私たちは、お互いに、相互牽制から学び、より多くの時間とエネルギーを投資上のソフトウェア開発で私を聞かせて、だけでなく、より多くの知識を学ぶために結果は、より良い、私は学習の男だ結果よりになります。もちろん、私はチームメイトを飛ぶことが最も感謝しているべきです。