Itrustは、コースプロジェクトとしてチームで他の7人とともに変更および拡張された医療Webシステムとデータベースです。包括的なユニットとセレンテストを特徴とし、コードカバレッジが約90%です。
コミットメッセージの初期化でマークされたファイルは、プロジェクトの開始時に含まれており、チームによって変更されませんでした。
開発はスケジュールに従って完全に進行し、ユースケースで指定されました。ペアで開発し、極端なプログラミング方法論を実践しました。開発タイムラインは3つの反復に分割されました。すべての反復は、開発リーダー、QAリーダー、および計画リーダーの3つのリーダーシップの役割を繰り返しました。 4つの2つのサブチームに分割され、2つのペアに分割されます。
最初の2回の反復では、割り当てられたユースケースを実装することでしたが、3回目の反復では、独自のUCを作成および実装しました。
In Iteration 1は、Branch UC41_1のUC41 SendremindersでSAMとペアとして働いていました。 sendreminders.jsp、sendreminderaction.java、およびgetupproneapptsメソッドをapptdao.javaに作成して、特定の日数以内の今後の予定のリストをクエリして返信しました。 JSPが入力が正しい形式であるかどうかを判断し、その場合はアクションクラスを呼び出し、DAOを呼び出してDBを照会する標準条約に続いています。 2番目のペア(JordiとAidan)は、UC41 Reminders Outboxの残りの部分に取り組みました。私たちはグループとして会って、コードをUC41にレビューしてマージしましたが、UC41が完全に完了した後にのみ、チームの他のチームとマスターに融合しました。
WebRoot/auth/admin/sendReminders.jsp (+)src/edu/ncsu/csc/itrust/action/SendReminderAction.java (+)src/edu/ncsu/csc/itrust/dao/mysql/ApptDAO.java (*)test/edu/ncsu/csc/itrust/unit/action/SendReminderActionTest.java (+)test/edu/ncsu/csc/itrust/unit/dao/appointment/ApptDAOTest.java (*)test/edu/ncsu/csc/itrust/selenium/SendReminderTest.java (+) In Iteration 2では、UC14リクエストBiosurveillanceでSeanとペアとして働いていました。私たちのペアは、diagnosesdaoクエリを使用したrequestbiosurveillanceaction.javaおよび流行検出アルゴリズムに取り組んでいました。
一方、2番目のペア(NicholasとXiaorui)は、RequestBioSurveIllance.jspでUIを作成しました。今回は、ブランチUC14_1からUC14にマージ要求を開くことにより、より良い手順に従いました。チームの他のメンバーはレビューを投稿し、合併前に小さな問題を修正しました。このプロセスは、UC14からマスターへのマージリクエストで繰り返されました。また、他のマージリクエストについてレビューしてコメントしました。
第3コードの臭いを反復1から修正し、反復の品質保証リーダーでもありました2。私は、クラスが少なくとも80%のカバレッジを確保するために、ペアやその他の完全にコミットされた2つのコードカバレッジを定期的にチェックしました。 commit 6e881bdaのaddprereregisteredpatienttest.javaのカバレッジが低すぎる別のペアのテストを修正しました。デモの前に、requestbiosurveillance.jspで重要なバグをキャッチし、testdatagenerator.javaのmain()にパラメーターを追加して、dbに流行データをロードしました。未処理の場合、両方の問題により、UC14がデモすることができなくなりました。
src/edu/ncsu/csc/itrust/action/RequestBiosurveillanceAction.java (+)WebRoot/auth/hcp/requestBiosurveillance.jsp (*)test/edu/ncsu/csc/itrust/unit/action/RequestBiosurveillanceActionTest.java (+)test/edu/ncsu/csc/itrust/unit/dao/patient/AddPreRegisteredPatientTest.java (*)test/edu/ncsu/csc/itrust/unit/datagenerators/TestDataGenerator.java (*) In Iteration 3は、Branch T4_own_2のUCown_2ヒートマップでペアとして働いていました。 vieweeklyschedule.jspとweeklyscheduleAction.javaを作成しました。特定の週と1日の予定数のヒートマップを表示し、1日の1時間でより多くの予定を示す赤の色合いが暗いことを示しています。 Googleチャートなどで満足のいくヒートマップテンプレートを見つけることができなかったため、JSPテーブルと特定の週にすべての予定を見つけるアルゴリズムを使用して独自のものを作成し、日中は2D配列に1時間ごとに並べ替え、JSPテーブルで使用する2Dヒートガップカラーアレイをマップします。 T4_own_2からMasterに直接マージリクエストを行いました。これは、Ucownを2つの完全に独立したユースケースに分割するためです。レビューとマイナーな修正の後にマージされました。繰り返しますが、私はパートナーとの他のマージリクエストについてレビューしてコメントしました。
私はもはや反復の品質保証リーダーではありませんでした3私はまだItrustプロジェクト全体のテスト結果に細心の注意を払い、AddprereregisteredPatientTest.javaおよびtestDatagenerator.javaのUC92バグを修正しました。
WebRoot/auth/admin/viewWeeklySchedule.jsp (+)src/edu/ncsu/csc/itrust/action/WeeklyScheduleAction.java (+)test/edu/ncsu/csc/itrust/unit/action/WeeklyScheduleActionTest.java (+)test/edu/ncsu/csc/itrust/unit/dao/patient/AddPreRegisteredPatientTest.java (*)test/edu/ncsu/csc/itrust/unit/datagenerators/TestDataGenerator.java (*)test/edu/ncsu/csc/itrust/selenium/viewWeeklyScheduleTest.java (+)