收藏 分销(赏)

《基于.NET模拟超市购物结算功能》——PSP设计过程.doc

上传人:鼓*** 文档编号:9902090 上传时间:2025-04-12 格式:DOC 页数:25 大小:1.29MB 下载积分:8 金币
下载 相关 举报
《基于.NET模拟超市购物结算功能》——PSP设计过程.doc_第1页
第1页 / 共25页
《基于.NET模拟超市购物结算功能》——PSP设计过程.doc_第2页
第2页 / 共25页


点击查看更多>>
资源描述
软件过程与管理 大作业 题 目 《基于.NET模拟超市购物结算 功能》——PSP设计过程 院 系 信息工程学院 专 业 班 级 12软件工程本1班 学 生 姓 名 学 号 1242159103 设 计 地 点 教学13(602) 指 导 教 师 起止时间:2015年4月14日至 2015年4月24日 目 录 第一章 项目概述 3 1.项目业务 3 1.1业务流程 3 1.2 需求分析 3 2.项目结构 4 2.1 整体模块流程图 4 2.4付款模块流程图 5 3.数据库的设计 5 3.1用户表的设计 5 3.2商品表的设计 6 3.2注册表的设计 6 第二章 项目PSP设计 6 1.项目模块OST设计 6 2.项目模块FST设计 7 3.项目模块SST设计 8 4.项目模块LST设计 9 第三章 项目PSP度量 10 1. 项目时间度量 10 2.项目缺陷度量 11 3.项目规模估算 11 4.项目计划总结 12 第四章 项目实现与评审 14 1. 项目实现 14 1.1代码实现 14 2. 项目评审 19 2.1 代码评审 19 2.2设计评审 20 第五章 项目展示 20 1.超市结算的首界面 20 2. 登录失败 21 2.1失败情况一 21 2.2失败情况二 21 3.注册模块 22 4.登录成功情况 23 5.付款页面情况 24 第六章 总结 26 第七章 参考文献 26 第一章 项目概述 1.项目业务 1.1业务流程 网上超市购物系统的功能流程:顾客成功登录后就可以进入网上购物系统里进行查看商品信息和选购自己所需物品,若顾客没有账号,可以先到注册页面中注册一个账号后登录系统。顾客在添加商品时,需要添加商品的名称,价格以及数量。系统便对查看库房信息,当货物充足的时候提取货物给用户,然后进行结账交易。顾客也可以删除易购买商品,也可以查询自己易购买的那些商品的详细信息,查询时要指明查询的商品的记录号是多少,还可以指定查询第一个或最后一个购买的商品信息。顾客还可以打印要购买的商品的清单,顾客在付款交易时首先生成一张临时的订单,然后顾客可以选择支付方式,完成付款后,系统会提示顾客购成功。 1.2 需求分析 1)用户可以添加购买一种商品,添加的信息包括商品名称、数量和单价 2)用户可以删除已购买的一种商品 3)用户可以查询已购买的一种商品的详细信息,查询时要指明查询的商品的记录号是多少(商品记录号是按照商品购买次序编的),还可以指定查询第一个或最后一个购买的商品信息。 4)用户可以删除所有已添加到购物车的商品 5)用户可以打印要购买的商品的清单 6)用户可以清空显示信息的窗口 7)用户可以要求结帐,系统会打印出用户购物清单,并给出总价。  2.项目结构 2.1 整体模块流程图 2.4付款模块流程图 3.数据库的设计 3.1用户表的设计 3.2商品表的设计 3.2注册表的设计 第二章 项目PSP设计 1.项目模块OST设计 表1 付款模块的OST 设计人员: 董琪 日期: 2015/4/21 教练: 李恋 语言: C# 场景编号 1 用户目的 场景目的 描述一次商品付款失败的过程 操作来源 步骤 动作 备注信息 用户 1 启动系统 系统 2 要求用户输入品名 检查是否超时 用户 3 输入品名 检查是否超时 系统 4 检验是否品名是否存在 系统 5 要求用户输入数量 检查是否超时 用户 6 输入数量 系统 7 要求用户输入单价 用户 8 输入单价 检查是否超时 系统 9 检验单价是否正确 单价不正确 系统 10 付款失败 2.项目模块FST设计 表2 付款模块的FST 设计人员: 董琪 日期: 2015/4/21 教练: 李恋 语言: C# 类名 Shop 继承关系 属性 声明 描述 Max Time:Integer,Minutes 系统初始化 n:Integer 计算尝试次数 nMax:Integer 最大允许尝试次数 ValidIdSet 一个集合,包含所有合法品名,单价 方法 声明 描述 Void Shop.Start(n:Int) 系统初始化 Boolean Shop.Getnname(nname:String) 获取String类型的品名,如果是合法字符串,则返回true,超时或者非法字符串则返回false Boolean Shop.Checknname(nname:String) Nname是否存在合法用户集中,如果属于则认为合法,反之,不合法 Int Shop.Getnum(num:Int) 获取商品数量,如果是合法字符串,则返回true,超时或者不是合法字符串则返回false Int Shop.GetPrise(Prise:String) 获取商品的价格,如果是合法字符串,则返回true,超时或者不是合法字符串则返回false Int Shop. CheckPrise(Prise:String) Nname是否存在合法用户集中,如果属于则认为合法,反之,不合法 Void Shop.Pay(nname:String,n:Int) 尝试次数超过最大次数时,拒绝用户进行下面操作,反之允许当前用户操作以及付款。 3.项目模块SST设计 表3 付款模块的SST 设计人员: 董琪 日期: 2015/4/21 教练: 李恋 语言: C# 状态名称 描述 Start 付款系统启动 方法/参数 描述 Name 商品的名称 num 商品的数量 Prise 商品的价格 n 名称价格输入错误的次数 nMax 出错的最大上限,超出拒绝付款 Fail 付款结果:成功Fail=0,失败Fail=1 状态/下一个状态 转换条件 动作 Start Start 不存在 Checknname 永真 Get name,n:=0;name and Prise!Valid CheckPrise 不存在 End 不存在 Checknname Start 不存在 Checknname 不存在 CheckPrise Valid name Get prise End 超时 File:=true CheckPrise Start 不存在 Checknname 不存在 CheckPrise 不存在 End Valid name^Valid Prise Fail:=false,pay succsess End N>=nMax^ Timeout Fail:=false,pay fail End End 不存在 4.项目模块LST设计 表4 付款模块的LST 设计人员: 董琪 日期: 2015/4/21 教练: 李恋 语言: C# 参考: n:the error counter,maximun value nMax name:Boolean indicator of name Valid and name !Valid num:int indicator of num Valid and num !Valid Prise: Boolean indicator of pirse Valid and prise !Valid Fial: Boolean indicator of failure condition,end session Pay onto the system Start by iniiallizing the n error counter,set name:=!Valid, num:=!Valid,Prise:=!Valid,and Fail:=false Get name Repeat the main loop until a valid name and num and Prise or Fail Check name for Validity.{ Checkname start} If no name response in Maxtime,set Fail:=true Get num for check null or !null Get Prise and check for validity.{checkPrise start} If no Prise response in Maxtime,set Fail:=true If name !Valid or Prise !Valid,step the n counter If n exceeds nMax,set Fail:=true Until name and Prise Valid or Fail = true Otherwise ,repeat the main loop. If Fail = true cut off pay,otherwise pay success{ End start} 第三章 项目PSP度量 1. 项目时间度量   表5 时间记录日志 学生    董琪       日期    4/14/15         教员    李恋       课程    软件过程与管理      日 期 开始时间 结束时间 中断时间 净时间 活 动 备  注 C U 15/5/1  8:00 8:25   5 20   设计  设计登录模块     15/5/1 8:30  9:00   10  20  设计  设计登陆模块异步处理情况     15/5/2  14:00  15:00    20   40  设计  设计注册模块      15/5/7  12:00 14:00   20   100 编码 实现登录模块  15/5/7 14:10 14:30 20 测试 测试登录模块的功能  15/5/8 13:00 13:50 10 40 修复 修复登录模块的缺陷  15/5/12 17:00 20:00 30 30 编码 实现登录模块的异步处理 15/5/12 20:10 20:35 5 20 测试 测试登录模块异步处理的功能 15/5/13 8:00 8:50 20 30 修复 修复异步处理出现的缺陷  15/5/14 13:00 15:00 10 110 编码 实现注册模块  15/5/14 15:30 16:00 5 25 测试 测试注册模块的功能  15/5/14 16:00 17:20 30 50 修复 修复注册模块的缺陷  15/5/15 14:00 15:00 60 设计 设计付款模块  15/5/16  12:00  14:00   20   100  编码  实现付款模块的功能  15/5/16 14:20 14:55 5 30 测试 测试付款模块的功能 15/5/16 15:00 16:00 10 50 修复 修复付款模块的缺陷 15/5/17 13:00 15:00 30 90 测试 测试所有模块的整体功能  15/5/17  15:00  16:00   10   50  修复  修复完善整个项目的小缺陷     2.项目缺陷度量 表6 缺陷记录日志 学生   董琪           日期   2015-5-7           教员   李恋      程序号   01          日 期 编号 类型 引入阶段 排除阶段 修复时间 相关缺陷 2015-5-8 1 数据 编码 修复 40 在数据库连接出现了问题,导致数据库无法连接 2015-5-13 2 函数 编码 测试 30 异步处理的功能函数没有实现 2015-5-14 3 函数 编码 测试 50 在注册模块中的异步处理没有实现,不能提醒用户已存在 2015-5-16 4 语法 编码 测试 10 在代码中总是少;导致语法出现错误 2015-5-16 5 函数 编码 测试 20 在付款模块中,添加商品信息的函数没有实现 2015-5-16 6 赋值 编码 测试 10 在定义变量时没有初始化变量 2015-5-17 7 接口 编码 修复 30 在登录模块和注册模块的跳转没有实现好 2015-5-17 8 环境 编码 测试 30 测试的时候出现了中断现象 3.项目规模估算                表7: 董琪的程序规模估计 学生   董琪                                日期     15/5/15             教员    李恋                                课程      软件过程与管理     程序 代码行 以前的功能 估计的功能 最小 平均 最大 Loops             4  10 简单While-loop          5  14 中等repeat-until  Repeat-until   7 11  14                Case             2 11  小的Case语句  Case  5 8  11  3 14 大的Case语句                        Data             6 18 小的链表                        Calc.             1 20  小的计算  calculation  10  15  20                估计       22  34  45  4.项目计划总结 表8:PSP项目计划总结表   学生         董琪                      日期           2015/4/21  程序                 001                   程序号#       001                  教师         李恋                     程序设计语言       C#               总结                    计划                    实际                   累计   Minutes/LOC          6.30                    4.93                       5.92              LOC/Hour                 10.47                 12.90                  10.95             Defects/KLOC         96.90                      77.9                      92.53             过程效益 33.3 80.0 40.0 A/FR           程序规模(LOC)  新开发与更改的       67                      77             335              最大规模      85             最小规模      49             开发阶段时间/min       计划            实际            累计           累计百分比   计划                   23                32            120                   6.5       设计             39                  44             195               10.6           编码                166              155               792                   43.1        代码复查              29                34              145                 7.9            编译                24                 8             100                  5.5            测试               62                 39             279                  15.2            后置处理            41                 46              206                  11.2         总计            384                358             1837                   100.0          最大时间           487                         最小时间              281         引入的缺陷      计划         实际         累计        累计百分比     Def/Hour   计划                                                                             设计            1             1            5               16.1              1.54          编码          5        4              25             80.7            1.89           代码复查                                                                         编译                          1             1                3.2                      测试                                                                          总计           6           6                31              100.0                    排除的缺陷      计划         实际         累计        累计百分比     Def/Hour   计划                                                                            设计                                                                            编码                                                                            代码复查        2            4         12               38.7             4.97            编译            3             1           13              41.9              7.80           测试            1            1         6              19.4               1.29         总计          6             5           31               100.0                      第四章 项目实现与评审 1. 项目实现 1.1代码实现 登录模块的代码: 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 System.Data.SqlClient; namespace shop { public partial class Form2 : Form { public Form2() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { String name = this.textBox1.Text; //(this.textBox1.Text为输入用户名的文本框的名字) String pass = this.textBox2.Text;//(这里是输入密码的) String conn = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True";//(使用本地数据库,我的数据库名为XKGL) SqlConnection connection = new SqlConnection(conn); String sql = String.Format("select * from user where name= '{dao}' and pass='{0000}'", name,pass); connection.Open(); SqlCommand command = new SqlCommand(sql, connection); int num = Convert.ToInt32(command.ExecuteScalar()); if (num > 0) { MessageBox.Show("登录成功!"); Form4 form = new Form4(); form.Show(); this.Hide(); } else { MessageBox.Show("用户或密码错误!请重新登陆!"); } connection.Close(); } private void button2_Click(object sender, EventArgs e) { this.Hide(); Form1 yourForm = new Form1(); yourForm.Show(); } } } 付款模块的代码: 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 System.Data.SqlClient; namespace shop { public partial class Form4 : Form { string connStr,insertCmd; public Form4() { InitializeComponent(); } private void Show() { String strConn = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1;Integrated Security=True;User Instance=True"; SqlConnection conn = new SqlConnection(strConn); string selectCmd = "select * from shop"; DataSet myDataSet = new DataSet(); SqlDataAdapter myAdpt = new SqlDataAdapter(selectCmd, conn); myAdpt.Fill(myDataSet, "shop"); textBox1.DataBindings.Add("Text", myDataSet, "shop.Sname"); textBox2.DataBindings.Add("Text", myDataSet, "shop.count"); textBox3.DataBindings.Add("Text", myDataSet, "shop.prise"); dataGridView1.DataSource = myDataSet; dataGridView1.DataMember = "shop"; } private void Form4_Load(object sender, EventArgs e) { Show(); } //添加 private void button1_Click(object sender, EventArgs e) { connStr = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1; Integrated Security=True;User Instance=True"; insertCmd = "Insert Into shop (Sname,count,prise)Values(@t1,@t2,@t3)"; SqlConnection conn; SqlCommand cmd; conn = new SqlConnection(connStr); conn.Open(); cmd = new SqlCommand(insertCmd, conn); cmd.Parameters.Add(new SqlParameter("@t1", SqlDbType.VarChar)); cmd.Parameters.Add(new SqlParameter("@t2", SqlDbType.Int)); cmd.Parameters.Add(new SqlParameter("@t1", SqlDbType.NChar)); cmd.Parameters["@t1"].Value = textBox1.Text; cmd.Parameters["@t1"].Value = textBox2.Text; cmd.Parameters["@t1"].Value = textBox3.Text; cmd.ExecuteNonQuery(); conn.Close(); } //删除 private void button2_Click(object sender, EventArgs e) { string connStr, deleteCmd; connStr = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1; Integrated Security=True;User Instance=True"; deleteCmd = "Delete From shop Where Sname=@t1 "; SqlConnection conn; SqlCommand cmd; conn = new SqlConnection(connStr); conn.Open() } } } 2. 项目评审 2.1 代码评审 表9 代码评审检查表示例 姓名: 董琪  日期: 2015-5-20 教练: 李恋 语言: C# 目的 指导用户有效开展代码评审活动 # # # # 累计 累计% 一般性说明 在完成每个复查步骤之后,将发现的某个类型的缺陷的个数记录在右面的栏目中。如果该步骤没有发现缺陷,就在右面的栏目中打个表示检查无误的交叉符号(X)。在开始复查下一个程序单元之前,要按照检查表完成对程序、类、对象或方法的检查。 建议每次评审只检查一项内容,而不要同时检查多项内容。 每检查完一项,在该项所在行右侧表格中加以标注,如OK表示通过评审,NG表示发现缺陷。 完整性 验证设计的所有功能都已经编码 初始化 检查变量和参数的初始化: l 在程序的开始; l 在函数/过程的入口 OK OK 名字 检查名字的拼写和使用
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服