プロジェクト | コンテンツ |
---|---|
コースクラスのブログのリンク | https://www.cnblogs.com/nwnu-daizh/ |
運用要件へのリンク | https://www.cnblogs.com/nwnu-daizh/p/12416880.html |
私のコース学習目標 | ソフトウェア開発のペアプログラミングの経験、共同開発プログラムを統合するには、オペレーティングgitnubの練習方法 |
この仕事は私がどのような分野でのカリキュラムの目標を達成する助け | (2)大腸プログラミングの利点を経験する;(3)個人的なプロジェクト管理ソフトウェア開発プロセス(1)は、操作のGithubパブリッシングソフトウェアプロジェクトの方法を習得します。 |
学生ID - 彼女の名前をクマ | 張燕-201771010142 |
ブログでは、他のジョブリンク結び目 | https://www.cnblogs.com/YRQY/p/12573484.html |
Githubのリポジトリプロジェクトリンクアドレス |
1、実験目的と要件
これらのソフトウェアの開発協力における(1)の経験、練習ペアプログラミング(ペアプログラミング)。
(2)運転制御Githubの共同開発プログラムの方法。
2、実験及びステップ
タスク1:読書 - 「法の近代的なソフトウェアエンジニアリング建設の」章3-4コンテンツ、スタイルのコードの仕様、コードの設計仕様、コードレビュー、ペアプログラミングの概念を理解し、習得します。
タスク2:次のように二つは二つの遊離ペア、大腸向こう側「ソフトウェア工学実験の2つの個々のイベント、」プロジェクトの結果は、特定の要件を評価するためには、以下のとおりです。
(1)ボーエンジョブが読み、コメントするプロジェクトは、コメントのハイライトは次のとおり関係欄「の対象」でボーエン構造、ブログのコンテンツ、ブログの構造やPSP、PSP「プログラム時間が完了し必要」と「実用的な完了を時間は「コメントエリアをブログ上のコメントにコンテンツを公開するために、二つの理由の分析とデータの違いを探るために必要。
(2)を参照して、読んで、テストコードを実行し、ローカルマシンに大腸他のソースプロジェクトをクローン「現代のソフトウェア工学 - 法の構築」4.4.3項コンパニオンプロジェクトコードレビューチェックリストとレコードが。
コードレビューチェックリスト | ||
重要なポイント | コンテンツ | 結果 |
パート1の概要 | 1、コードの要件と仕様、それに沿って? | コードは本を実装するために必要な機能運用タスクを満たしています |
図2は、コードのデザインはよく考え抜かれていますか? | いいえ、一部の機能はまだ考慮されていない、何も完璧ではありません | |
3、コードはそれを維持するのは簡単ですか! | 維持することは比較的容易 | |
4、コード実行の各ラインとは、それを調べますか? | これは、それらのほとんど大部分が調べたということです | |
設計仕様2 | 1、ヘッダファイルと定義ファイルの名前は合理的ですか? | 合理的 |
2、かどうかを一般的にモードを使用し、既知のデザインパターンやアイテムに準拠するように設計されましたか? | はい、もっと身近なので、操作がより簡単に。 | |
図3は、特定のプラットフォームに依存して何のコードは、それが(例えばWin64のにWin32のように)移植の将来に影響を与えるかどうか、ありませんか? | いいえ、任意のプラットフォームをすることができ、移植には影響しません | |
4、未使用のコードをクリアすることはできないがありますか? | はい、完了いくつかの未確認があります | |
コード仕様3 | 標準部品とスタイル、それに合わせてコードを修正しますか? | アコード、すべての改訂標準コードに従い、 |
特定のコード部分4 | 1、エラー処理はありませんか?外部関数呼び出しの場合、戻り値や例外処理をチェック! | エラーの異常は処理されず、発見されました |
図2に示すように、無限ループが発生することがないサイクルが存在しませんか? | それは可能です、あなたは抽出を繰り返すことができます | |
3、リソースリーク(メモリ、ファイル、様々なGUIリソース、データベースアクセス接続など)が発生することがあり?それは、最適化することは可能ですか? | それは、可能なリソースリークが、暗号化され、最適化の余地があるかもしれないです | |
5パフォーマンス | 1、どのようにコードの有効性?最悪のケースは何ですか? | あなたが必要な機能タスクの本を達成することができ、最悪の事態はおそらくプログラムを実行することはできませんです |
図2に示すように、コードの特定のサイクル、明らかな部分があり、最適化 | そこにいくつかのことが、現在の技術では制限され、明確に記述することができないはずです | |
3、システムおよびネットワークの通話時間のうちか?どのように対処するには? | 、タイムアウトが発生していないものがあれば、あなたが空きメモリにアンチウイルスソフトウェアを使用することができ、ディスククリーン-C | |
6可読性 | どのようにコードの可読性に?そこに十分なコメントますか? | 私たちは、注釈付きのコード部分を読むために喜んでいます |
7テスト容易性 | コードのニーズを更新したり、新しいユニットテストを作成する場合は? | 私は時間がないという非常に必要だと思います |
(2)クローンは:コードは、現地カウンターパートにダウンロードされる
(3)新しいブランチを作成するには、変更がメインブランチに新しいブランチをマージするために提出されます
(4)push/pull request
(5)Merge pull request
任务3:西北师范大学疫情防控系统
-
3.1PSP
PSP | 任务内容 | 计划共完成需要的时间(min) | 实际完成需要的时间(min) |
---|---|---|---|
Planning | 计划 | 15 | 15 |
Estimate | 估计这个任务需要多少时间,并规划大致工作步骤 | 20 | 25 |
Development | 开发 | 600 | 800 |
Analysis | 需求分析 (包括学习新技术) | 30 | 60 |
Design Spec | 生成设计文档 | 10 | 15 |
Design Review | 设计复审 (和同事审核设计文档) | 20 | 30 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 10 | 20 |
Design | 具体设计 | 60 | 80 |
Coding | 具体编码 | 300 | 350 |
Code Review | 代码复审 | 30 | 25 |
Test | 测试(自我测试,修改代码,提交修改) | 25 | 20 |
Reporting | 报告 | 30 | 40 |
Test Report | 测试报告 | 10 | 20 |
Size Measurement | 计算工作量 | 9 | 14 |
Postmortem & Process Improvement Plan | 事后总结 ,并提出过程改进计划 | 10 | 20 |
-
3.2需求分析及功能实现
(1)可采集全校各类师生员工疫情信息;
(2)各二级部门疫情防控工作负责人可查看本部门人员疫情汇总,并提供高级查询功能进行多属性组合查询和可视化统计功能;
(3)学校防控办指定负责人登录《西北师范大学疫情防控信息统计》子系统,可浏览所有人员填报汇总数据清单,利用【高级查询】可进行数据组合筛选,系统以图形化方式展示各学院已填报和未填报学生统计情况和关键疫情数据统计情况,可【导出】查询列表的EXCEL文件;
(4)人机交互界面要求GUI界面(WEB页面、APP页面都可);
(5)附加分功能:定时填报提醒;
-
3.3 软件设计说明
本次系统总共分为五个包,这些包按功能分可划分为如下几部分,每个包所包含的类又大不相同,可谓分工明确,如下所示:
(1)实用程序包(java.util) ,因为在系统做了个小日历,所以用日期(Data)类和日历(Calendar)类来产生和获取日期及时间,以及异常类;
(2)语言包(java.lang),该包提供了此次编程的基础类,主要含有与语言相关的类,有math类、system类(有标准输出/输入);
(3)图形用户接口包(java.swing),由于本次系统是人机交互界面GUI界面,所以包含了各种swing组件的类;(4)mapper,mapper是对象持久化映射层,一般会继承ibatis或者mybatis,开发dao及其实现类;
(5)controller,controller是控制层,service服务类,定义学生类和管理员类;
(6)GetConnection类用于连接数据库,login类用于登录界面,权限设置等
-
3.4 程序运行截图
(1)登录界面
(2)管理员登录,查看所有人员汇总,高级查询
(3)高级查询,筛选,统计图
(4)GUI界面
(5)定时提醒功能
-
3.5 关键代码
´´´
public String DefaultLoginPage(){
return "/login";
}
@RequestMapping("/adminLogin")
public String adminLoginPage(){
return "/adminLogin";
}
/**
* 主页面
* @return
*/
@RequestMapping("/page/index")
public String indexPage(){
return "/index";
}
@RequestMapping("/page/AdminIndex")
public String adminIndexPage(){
return "/AdminIndex";
}
/**
* 默认主页
* @return
*/
@RequestMapping("/page/homepage")
public String homepage(){
return "/homepage";
}
@RequestMapping("/page/adminhomepage")
public String studenthomepage(){
return "/adminhomepage";
}
/**
* 分类管理页面
* @return
*/
@RequestMapping("/page/addStudent")
public String classifyPage(){
return "/addStudent";
}
@RequestMapping("/page/epidemic/student/all")
public String selAllByStudent(){
return "/studentRecord";
}
@RequestMapping("/page/AllRecord")
public String selAll(){
return "/AllRecord";
}
/**
* 音频文字管理页面
* @return
*/
@RequestMapping("/page/adminpassword")
public String audioPage(){
return "/adminpassword";
}
@RequestMapping("/page/password")
public String passwordPage(){
return "/password";}}´´´
3、结对编程交流过程
因为不确定partner是否有事,所以将通讯改为文字交流,图片交流等……