Fork仓库的Github仓库地址:https://github.com/zio-1/PairProgramming.git
一起讨论:
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) |
---|---|---|
Planning | 计划 | 30 |
Estimate | 估计这个任务需要多少时间 | 20 |
Development | 开发 | 300 |
Analysis | 需求分析 (包括学习新技术) | 70 |
Design Spec | 生成设计文档 | 20 |
Design Review | 设计复审 (和同事审核设计文档) | 10 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 20 |
Design | 具体设计 | 50 |
Coding | 具体编码 | 300 |
Code Review | 代码复审 | 60 |
Test | 测试(自我测试,修改代码,提交修改) | 200 |
Reporting | 报告 | 100 |
Test Report | 测试报告 | 60 |
Size Measurement | 计算工作量 | 10 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 30 |
合计 | 1110 |
一、计算模块接口的设计与实现过程
1、窗体设计
这个项目由数据库和C#语言共同组成,通过学生数据库和编写的随机点名程序来实现对学生的点名工作,并且新增了不重复点名和显示学生人数的功能。窗体由学生信息窗体、点名系统、加载进度条和学生人数条组成。
2、代码设计
编码规则有:
文件名称(File Name): 此文件的名称;
PasalCasing:标识符的第一个单词的字母大写;
camelCasing:标识符的第一个单词的字母小写。
对同一项目的不同命名空间中的类,命名避免重复。避免引用时的冲突和混淆;
以上在代码设计中均有具体体现,并且找出了自己的错误之处,但是由于改动的时候可能会有力所不及,因此有些命名方式可能还是有些许问题。
二、代码复审
代码规范:C#编写规范
我和室友在完成项目的过程中分工合作,各自完成了一部分,问题还是不大的,但是在单元测试中我们思考了测试的可能性,因为其实这个程序能直接有返回值测试的部分很少,因此我们按照网上查阅的方法和询问的方式知道了该怎么做,还有在修改界面的过程中进我们所能让界面看起来比较美观一些。
三、单元测试
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using DaoLayer;
namespace 单元测试
{
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
int num = new DaoLayer.StudentDAO().getStudentRecordsNums();
Assert.Equals(num,84);
}
}
}
四、代码展示
![QQ图片20190930153517](G:\软件工程\个人作业3\QQ图片20190930153517.png)using System;
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 stuList=new List();
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 |
附加功能
记录学生的人数,并且防止重复点名情况的发生,让点名系统不是绝对的随机,而是在同一次使用内点到谁就在之后的点名中去除点到过的同学。
项目总结
这次作业学习到了更多的东西,不仅是课本上有的,还有课本上没有的老师没有教过的,在遇到困难到去百度去请教摸索的过程中学习到了最有用的东西。这也让我对以后代码方面的编写更有信心了。这次两个人合作的方式也让我感受到了团队的力量,不仅仅是分工合作,还有更多的是自己对于项目的理解的表达,这也是这次作业的巨大收获之一。