PSP个人项目耗时记录
估计这个任务需要多少时间:
|
计划 |
估计用时 |
|
估计这个任务需要多少时间 |
500min |
|
开发 |
450min |
|
需求分析 |
120min |
|
生成设计文档 |
20min |
|
设计复审 |
30miin |
|
代码规范 |
10min |
|
具体设计 |
20min |
|
具体编码 |
200min |
|
代码复审 |
50min |
|
测试 |
50min |
|
测试报告 |
20min |
|
计算工作量 |
20min |
|
事后总结并提出改进计划 |
10min |
需求分析:
需求:作为一个记分员,我希望能记录每一场比赛的具体得分,以便于及时显示。
实现记录加分,减分,及时显示加减后分数的界面。
生成设计文档:
运用三层架构,实现软件的基本功能。

设计复审:
自我复审已完成。同事复审暂未完成。
代码规范:
代码风格的原则,简明,易读,无二义性。
缩进:四个空格。
行宽:不超过100字符。
括号:在复杂的条件表达式中,用括号清楚地表示逻辑优先级。
断行与空白的{}行:(加代码)
分行:不要把多个语句放在一行上。
命名:
Camel 驼峰命名法:单词连写 无分割符 每个单词大写首字母
类名和接口名 大写第一个单词首字母
注释:要加入必要的注释。
具体设计:
数据库名:PaiQiu
数据库用于储存队伍得分的具体情况 无需加密

大致界面如下所示:

基本架构方案如下所示:


基本活动图如下:

可能遇到的技术性问题:每一个用户使用的数据库中的表需要在使用该程序的时候自动在后台创建,如何使用VS2010用代码创建指定唯一表名的数据表是一个急需解决的技术性问题。
数据表名必须遵循数据库创建表的表名格式且表名需要让用户易于记忆。
上述技术性问题解决后:用户可以根据自己的队伍名来查找该队伍在数据库中的表数据。
具体编码:
部分代码:
private void button1_Click(object sender, EventArgs e)
{
//单击A队
//调用BLL层
But1BLL bll = new But1BLL();
//判断第一局框里是否为空
if (string.IsNullOrEmpty(diYiJu.Text))
{
//判断是否胜利
if (bll.sheng(diYiJu1.Text, diYiJu2.Text,changNeiBiFen1.Text,changNeiBiFen2.Text))
{
//胜利
MessageBox.Show("第一局"+butAJia.Text);
//加场内比分
changNeiBiFen1.Text = bll.bizhi(changNeiBiFen1.Text, changNeiBiFen2.Text).ToString();
//在第一局文本框中写入某队胜
diYiJu.Text = butAJia.Text;
}
else
{
//没有胜利,给A队加一分
diYiJu1.Text = bll.jia(diYiJu1.Text, diYiJu2.Text).ToString();
//再次判断是否胜利
if (bll.sheng(diYiJu1.Text, diYiJu2.Text, changNeiBiFen1.Text, changNeiBiFen2.Text))
{
MessageBox.Show("第一局" + butAJia.Text);
diYiJu.Text = butAJia.Text;
changNeiBiFen1.Text = bll.bizhi(changNeiBiFen1.Text, changNeiBiFen2.Text).ToString();
}
}
}
单击事件
public class But1DAL
{
//单击button1
//判断是否胜利
public bool sheng(string chang1, string chang2,string fen1,string fen2)
{
if (int.Parse(chang1) >= && int.Parse(chang1)> int.Parse(chang2)+)
{
int a = int.Parse(fen1)+;
string aa = a.ToString();
ShuJuKu.shujuku(chang1, chang2, aa, fen2);
return true;
}
else
{
return false;
}
}
//单击加分
public int jia(string chang1, string chang2)
{
int a = int.Parse(chang1);
a++;
return a;
}
//加比值
public int bizhi(string bi1, string bi2)
{
int a = int.Parse(bi1);
a++;
return a;
}
DAL层
代码复审:已完成
测试:已完成
测试报告:加分减分已经可以正常运行。
计算工作量:
|
计划 |
估计用时 |
实际用时 |
|
估计这个任务需要多少时间 |
500min |
810min |
|
开发 |
450min |
710min |
|
需求分析 |
120min |
60min |
|
生成设计文档 |
20min |
60min |
|
设计复审 |
30miin |
10min |
|
代码规范 |
10min |
60min |
|
具体设计 |
20min |
200min |
|
具体编码 |
200min |
300min |
|
代码复审 |
50min |
20min |
|
测试 |
50min |
100min |
|
测试报告 |
20min |
40min |
|
计算工作量 |
20min |
40min |
|
事后总结并提出改进计划 |
10min |
20min |
事后总结并提出改进计划:
该程序的减分应给出提示框提示是否为确定为某队减分。
PSP个人项目耗时记录的更多相关文章
- PSP个人项目耗时对比记录表:四则运算
Personal Software Process Stages Time(%) 计划 5 •估计这个任务需要多长时间 5 开发 60 •需求分析 5 •生成设计文档 5 ...
- PSP记录个人项目耗时情况
四则运算编程 PSP记录个人项目耗时情况 PSP Personal Software Process Stages Time(%) Planning 计划 7 Estimate 估计这个任务需要多少时 ...
- 王者荣耀交流协会PSP Daily项目Postmortem结果
王者荣耀交流协会PSP Daily项目Postmortem结果 整理:王超 设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? PSP D ...
- Ionic3项目实践记录
Ionic3首次项目实践记录 标签(空格分隔): Angular Ionic Ionic3踩坑 1. 路由懒加载(lazy load) 如果设置了懒加载,就必须全部懒加载(包括TabsPage),否则 ...
- Anytime项目开发记录0
Anytime,中文名:我很忙. 开发者:孤独的猫咪神. 这个项目会持续更新,直到我决定不再维护这个APP. 2014年3月10日:近日有事,暂时断更.希望可以会尽快完事. 2014年3月27日:很抱 ...
- Express+Mongoose(MongoDB)+Vue2全栈微信商城项目全记录(二)
用mogoose搭建restful测试接口 接着上一篇(Express+Mongoose(MongoDB)+Vue2全栈微信商城项目全记录(一))记录,今天单独搭建一个restful测试接口,和项目前 ...
- Unity3D Demo项目开发记录
前言 经过一段时间的学习与实际开发,unity3D也勉强算是强行入门了,正所谓好记性不如烂笔头,更何况本人并非专业从事unity3D开发,会一点C#但也并不熟悉,为了避免后期遗忘,因此特意整理了一个D ...
- PSP记录个人项目耗时
PSP2.1 Personal Software Process Stage Time Planning 计划 90 ·Estimate ·估计这个任务需要多长时间 90 Development 开发 ...
- 作业三:PSP记录个人项目耗时情况
PSP2.1 Personal Software Process Stages Time Planning 计划 20min Estimate 估计开发 ...
随机推荐
- java疑问-继承问题
存在两个类,B 继承 A,C 继承 B,我们能将 B 转换为 C 么?如 C = (C) B:
- PHP文件和目录操作-----复制、移动、重命名、删除文件
PHP通过copy()函数来复制一个文件.用法如下: bool copy(string $source, string $dest) 其中$source是源文件的路径,$dest是目的文件的路径.函数 ...
- C++ 取得系统当前时间
#include <time.h> //* 方法一 time_t tt = time(NULL);//这句返回的只是一个时间cuo tm* t= localtime(&tt); p ...
- .net解决程序集版本冲突的方法
以log4net为例,分为两种情况 1.不同version,相同publicKeyToken 在bin里放较新版本的dll 并在web|app.config的<configuration> ...
- Rails :.nil? , .empty?, .blank? .present? 的区别
.nil? , .empty?, .blank? .present? 的区别 首先这三个都是判空的. 而 .nil? 和 .empty? 是ruby的方法. .blank? 是rails的方法 .ni ...
- jq插件的传值
因插件方式写的少,先慢慢记录. 默认的参数值 jQuery.fn.shadow =function(options){ var defaults = { slices : 5, opacity : 0 ...
- MyBatis与Hibernate的比较
Hibernate 与Mybatis都是流行的持久层开发框架,但Hibernate开发社区相对多热闹些,支持的工具也多,更新也快,当前最高版本4.1.8.而Mybatis相对平静,工具较少,当前最高版 ...
- day26:面向对象进阶:set、get、del反射和内置
三 __setattr__,__delattr__,__getattr__ __开头的都是内置的,不定义系统都会有.如果自己定义的话,就会覆盖系统内置的,执行自定义的部分(是否有完成设置的语法,有的话 ...
- RT-Thread下的串口驱动程序分析【转载】
编写本文稿的目的,在于通过分析stm32平台上的串口中断源码,学习 RTT中如何编写中断处理程序 如何编写RTT设备驱动接口代码 了解串行设备的常见处理机制 先以RTT官方源码中的STM32 BSP包 ...
- hammerJs-v2.0.4详解
一.前言 移动端框架当前还处在初级阶段,但相对于移动端的应用来说已经有很长时间了.虽然暂时还没有PC端开发的需求量大,但移动端的Web必然是一种趋势,在接触移动端脚本的过程中,最开始想到的是juqer ...