个人第三次作业:结对编程

Fork仓库的Github仓库地址:https://github.com/zio-1/PairProgramming.git

作业要求链接:https://edu.cnblogs.com/campus/xnsy/GeographicInformationScience/homework/8658

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);
      }
  }
}

四、代码展示

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

附加功能

记录学生的人数,并且防止重复点名情况的发生,让点名系统不是绝对的随机,更节油效率。

项目总结

在这次项目中知道了许多代码编写方面的知识,对编码规范有了一个初步的了解,因此我也更加了解软件工程这门课了,而且我也发现在项目中团队是很重要的,两个人的确能强很多,不仅仅是分工合作,还有更多的是自己对于项目的理解的表达,这是一个人所体会不到的。困难可能很多,但是我觉得只要一起解决就没什么解决不了的,也不会出现死磕的情况。

 

猜你喜欢

转载自www.cnblogs.com/doctorlan/p/11613982.html