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 估计开发 ...
随机推荐
- Linear Algebra lecture8 note
Compute solution of AX=b (X=Xp+Xn) rank r r=m solutions exist r=n solutions unique example: 若想方程有解 ...
- etcd第一集
网站:https://github.com/coreos/etcd 一些观点:https://yq.aliyun.com/articles/11035 1.etcd是键值存储仓库,配置共享和服务发现2 ...
- css预处理语言的模块化实践
编写css是前端工作中,一项普通而又频繁的劳动,由于css并不是一门语言,所以在程序设计上显得有些简陋.对于小型项目来说,css的量还不至于庞大,问题没有凸显,而如果要开发和持续维护一个较为大型的项目 ...
- winform中设置窗体的默认焦点
winform的窗体中,有时候需要设置默认焦点,有时候需要取消默认焦点. 设置默认焦点,最简单的方法就是设置这个控件的tabIndex,例:textBox1.TabIndex = 0; 也可以在窗体事 ...
- Python多线程、进程入门1
进程是资源的一个集合, 1.一个应用程序,可以有多进程和多线程 2.默认一个程序是单进程单线程 IO操作使用多线程提高并发 计算操作使用多进程提高并发 进程与线程区别 1.线程共享内存空间,进程的内存 ...
- json 与jsonp 特点及区别
简单描述JSON跟JSONP的区别以及实战 什么是JSON? 前面简单说了一下,JSON是一种基于文本的数据交换方式,或者叫做数据描述格式,你是否该选用他首先肯定要关注它所拥有的优点. JSON的优点 ...
- XPath Checker和Firebug安装与使用
一.XPath Checker和Firebug简介 XPath Checker和Firebug是写爬虫过程中提取数据的非常有用的插件工具,直接打开火狐浏览器的菜单就可以下载 二.XPath Check ...
- window下编译并使用google protobuf
参考网址: http://my.oschina.net/chenleijava/blog/261263 http://www.ibm.com/developerworks/cn/linux/l-cn- ...
- Windows系统
1. 更改XP登录界面 怎样启用XP的经典登录界面 第一步:用管理员账号登录系统. 第二步:运行gpedit.msc启动组策略编辑器,找到"计算机配置"--"管理模板&q ...
- ArcGIS Engine中数据的加载 (转)
1.加载Shapefile数据 1 IWorkspaceFactory pWorkspaceFactory; 2 IFeatureWorkspace pFeatureWorkspace; 3 IFea ...