GitHubのリポジトリフォーク倉庫住所:https://github.com/zio-1/PairProgramming.git
運用要件リンクします。https://edu.cnblogs.com/campus/xnsy/GeographicInformationScience/homework/8658
PSP2.1 | パーソナルソフトウェアプロセス段階 | 推定時間がかかる(分) |
---|---|---|
プランニング | 計画 | 30 |
推計 | このタスクが必要とどのくらいの時間を見積もります | 20 |
開発 | 開発 | 300 |
分析 | (新しい技術を学ぶ含む)ニーズ分析 | 70 |
デザインスペック | 設計ドキュメントの生成 | 20 |
デザインレビュー | デザインレビュー(と同僚が設計文書を見直し) | 10 |
標準コーディング | コードの仕様(現在の開発のための適切な規範の開発) | 20 |
設計 | 具体的な設計 | 50 |
コーディング | 具体的なコーディング | 300 |
コードレビュー | コードレビュー | 60 |
テスト | 検査(セルフテスト、コードを変更し、変更を提出) | 200 |
報告 | レポート | 100 |
試験報告書 | テストレポート | 60 |
サイズ測定 | コンピューティングのワークロード | 10 |
死後&プロセス改善計画 | その後まとめ、およびプロセス改善計画 | 30 |
トータル | 1110 |
計算モジュールインタフェースの設計と実装
1、フォームデザイナ
プロジェクトは、学生のデータベースプログラミングとランダム点呼による学生のための点呼作業を達成するために構成データベースおよびC#言語で構成され、繰り返し、学生の数が表示されていないロールコールを追加しました。学生情報フォームによって、フォーム、プログレスバーや学生のストリップの数をロードし、システムを命名。
2、コード設計
符号化規則は以下のとおりです。
ファイル名(ファイル名):このファイルの名前。
PasalCasing:最初の単語識別子総額;
camelCasing形式:最初の単語識別子の小文字。
重複を避けるために、名前の同じプロジェクト内の異なる名前空間のクラスは、。紛争や混乱の言及は避けてください。
それは、コードの設計に具現し、自分のミスを見つけたが、期限の変化に強い未満とすることができるので、いくつかは、まだ少し問題に名前を付けることもされての上。
第二に、コードレビュー
コード仕様:C#は書か仕様
議論:
私のルームメイトと労働のプロジェクト部門を完了中から見ては、それぞれが問題の一部を完了したかどうかが、ユニットテストでは、我々は実際には、この手順では、値のテストを返すことができるので、直接の一部であり、テストの可能性を考えます以下、私たちが行う方法を知っている、と我々はインターフェイスを変更するプロセスでインタフェースに聞かせては法に従い、オンラインアクセスのいくつかを、より美しく見える、道を尋ねました。
第三に、ユニットテスト
システムを使用しました。
Microsoft.VisualStudio.TestTools.UnitTestingを使用しました。
DaoLayerを使用して、名前空間单元测试{ [TestClassを] publicクラスUnitTest1 { [のtestMethod] 公共ボイドTestMethod1() { int型NUM =新しいDaoLayer.StudentDAO()getStudentRecordsNums()。 Assert.Equals(NUM、84)。 } } }
第四に、コード・ショー
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DaoLayer;
using Entity;
using System.Threading;
namespace WinformControlUse
{
public partial class FrmStudent : Form
{
List<Student> stuList=new List<Student>();
public FrmStudent()
{
InitializeComponent();
}
void iniControl()
{
btnStart.Visible = false;
btnStop.Visible = false;
btnLoadStu.Enabled = true;
}
void setControlVisible()
{
btnStart.Visible = true;
btnStop.Visible = true;
btnLoadStu.Visible = false;
}
private void btnLoadStu_Click(object sender, EventArgs e)
{
//获取学生数据源
StudentDAO stuDao = new StudentDAO();
stuList=stuDao.getAllStudents();
//进度条设置
int stuCounts = stuList.Count;//及时学生人数
progressName.Maximum = stuCounts;
//构造数据源
DataTable dt = new DataTable();
dt.Columns.Add("stuID", Type.GetType("System.String"));
dt.Columns.Add("stuName", Type.GetType("System.String"));
//数据加载以进度条方式展现
foreach (Student stu in stuList)
{
dt.Rows.Add(stu.Id,stu.Name);
progressName.Value += 1;//一个学生,进度条加1;
//Thread.Sleep(500);
}
dgvStuList.DataSource = dt;
setControlVisible();
this.stunum.Text = "学生人数:" + stuDao.getStudentRecordsNums();
}
private void FrmStudent_Load(object sender, EventArgs e)
{
iniControl();
}
private void timerCallName_Tick(object sender, EventArgs e)
{
Random ra = new Random();
int i = ra.Next(stuList.Count);
lblName.Text = stuList[i].Name;
}
private void btnStart_Click(object sender, EventArgs e)
{
timerCallName.Start();
}
private void btnStop_Click(object sender, EventArgs e)
{
timerCallName.Stop();
}
private void label2_Click(object sender, EventArgs e)
{
}
private void label2_Click_1(object sender, EventArgs e)
{
}
}
}
psp表格
PSP2.1 | Personal Software Process Stages | 实际耗时(分钟) |
---|---|---|
Planning | 计划 | 30 |
Estimate | 估计这个任务需要多少时间 | 20 |
Development | 开发 | 200 |
Analysis | 需求分析 | 30 |
Design Spec | 生成设计文档 | 20 |
Design Review | 设计复审 | 10 |
Coding Standard | 代码规范 | 20 |
Design | 具体设计 | 50 |
Coding | 具体编码 | 300 |
Code Review | 代码复审 | 60 |
Test | 测试 | 100 |
Reporting | 报告 | 100 |
Test Report | 测试报告 | 10 |
Size Measurement | 计算工作量 | 10 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 30 |
合计 | 940 |
附加功能
记录学生的人数,并且防止重复点名情况的发生,让点名系统不是绝对的随机,更节油效率。
项目总结
在这次项目中知道了许多代码编写方面的知识,对编码规范有了一个初步的了解,因此我也更加了解软件工程这门课了,而且我也发现在项目中团队是很重要的,两个人的确能强很多,不仅仅是分工合作,还有更多的是自己对于项目的理解的表达,这是一个人所体会不到的。困难可能很多,但是我觉得只要一起解决就没什么解决不了的,也不会出现死磕的情况。