经产观察
IT资讯
IT产业动态
业界
网站运营
站长资讯
互联网
国际互联网新闻
国内互联网新闻
通信行业
通信设备
通信运营商
消费电子
数码
家电
通信设备

通讯录管理系统设计报告

作者:habao 来源: 日期:2018-4-27 11:49:41 人气:

  通讯录管理系统设计报告_计算机软件及应用_IT/计算机_专业资料。本报告集设计到编码测试等整个过程,比较完整。

  淮南师范学院 计算机与信息工程系 《软件工程》课程设计 通讯录管理系统项目软件工程报告 专业班级:计算机科学与技术 08(1)班 项目组号:六 组 组 长:闫丙锋 员:闫丙锋、沈超、周世睿 指导老师:孙淮宁 2011 年 6 月 20 日 1 总目录 项目安排…………………………………………………………1 可行性分析………………………………………………………2 需求分析…………………………………………………………7 结构设计…………………………………………………………21 编码………………………………………………………………33 测试………………………………………………………………42 项目总结…………………………………………………………55 2 通讯录管理系统项目软件工程分工安排 1、需求分析 负责人:沈超 参与人:沈超、闫丙锋 2、软件设计 负责人:周世睿 参与人:周世睿、闫丙锋 3、编码工作 负责人:闫丙锋 参与人:闫丙锋 4、测试工作 负责人:闫丙锋 参与人:闫丙锋 1 通讯录管理系统项目软件可行性分 析报告 负 责 人:闫丙锋 参 与 人:沈超、闫丙锋 审 核 人:周世睿 2 可行性分析目录 1.1 引言???????????????????????????????4 1.1.1 背景??????????????????????????????4 1.1.2 项目概述…………………………………………………………………………4 1.1.3 文档概述????????????????????????????5 1.2 可行性分析的前提…………………………………………………………………5 1.2.1 项目要求????????????????????????????5 1.2.2 项目目标????????????????????????????5 1.2.3 目的、条件、假定和限????????????????????5 1.3 可选的方案…………………………………………………………………………5 1.4 经济可行性…………………………………………………………………………5 1.5 技术可行性…………………………………………………………………………6 1.6 法律可行性…………………………………………………………………………6 1.7 用户可行性…………………………………………………………………………6 1.8 结论………………………………………………………………………………?6 2011 年 6 月 2 日 3 第 1 章 可行性分析 §1.1 引言 计算机已经升入到日常工作和生活的方方面面,已经成为我们学习和工作的得力助手, 隔行隔夜的人们都在使用计算机完成许许多多的工作。 然而, 虽然现在时间上的各种软件测 出不穷, 但它们依然不能满足用户的各种特殊需要, 人们还得不得不开发适合自己特殊需要 的软件。 通讯录管理系统是各种单位部门或家庭不可缺少的不分, 它可以很方便的帮助单位 中的工作人员管理各自的联系人。 通过市场调查, 此类小型软件在各种公司的需求比较大, 而且很多家庭也有此类需求各种联 系人也不断增多,如,同事,家人,朋友和同学等,很大一部分人仍在使用普通的纸质 通讯录来记录这些联系人的信息,这种方式存在如下缺陷。 ◆ 存储信息量少,查找不方便; ◆ 信息容易丢失,但不能存放纸质无法存储的东西; ◆ 安全性不高,没有隐私性可言。 为了解决上述缺陷,满足部分人的使用需求,开发出单机版的通讯录软件。 此通讯录管理 系统具有手工所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密 性好、寿命长、成本低等。这些优点极大地提高学生管理的效率。 §1.1.1 背景 本系统是在联系人成爆炸性增长的前提下,企业单位或家庭对联系人信息管理的自动 化、及时化、与准确化的要求日益剧烈的背景下提出的,本系统是通讯录管理系统,实现多 个用户共享一个软件,管理各自的联系人的管理功能。 系统名称:通讯录管理系统; 项目组织者:闫丙锋、沈超、周世睿; 产品所有权:通讯录管理系统开发小组; 任务详细信息: ① 任务提出人:闫丙锋; ② 项目组长:闫丙锋; 需求分析员:沈超; 结构设计师:周世睿; 编码:闫丙锋; 测试:闫丙锋; ③ 用户:使用该软件具有用户的人员(非法用户可先注册) ; §1.1.2 项目概述 综合考虑各种企业单位、家庭、组织和信息化发展的过程中出现的各种情况,结合自己 的需求。通讯录管理系统实施后,应能够达到以下目标: ⒈ 通讯录管理信息化,可随时管理联系人的各种信息; ⒉ 提供快速、准确查找联系人的信息; ⒊ 界面有好美观,操作简单易行,查询灵活方便; 4 ⒋ 用户更快速的查看相关联系人的信息; ⒌ 系统方便可靠,有较高的安全性,满足实用性,性进行的要求。 §1.1.3 文档概述 该软件项目可行性研究报告也是对通讯录管理系统的全面考虑, 是项目分析员进行进一步工作的前提, 是软件开发人员正确成功的开发项目的前提与基础此 研究报告可以使用开发软体尽可能早的估计研究课题的可行性, 可以在定义阶段较早的认识 到系统方案的缺陷,就可以节省时间和精力,也可以节省资金,并且避免了许多专业方面的 困难,及早地预见项目的可行性,在可行的前提下寻找到最优解决方案。 §1.2 可行性分析的前提 §1.2.1 项目要求 本软件的功能和要求是解决企业单位部门、 家庭等组织对联系人的管理的问题, 为进一 步完善单位里的工作人员岁各自的联系人的管理, 实现联系人信息的管理和处理, 具体实现 用户(用户、非法用户)用户信息管理、联系人信息的管理。用户信息管理包括:用户 名、密码。联系人信息管理包括:用户的联系方式,住址,邮箱,生日等。软件的整体设计 过程必须通过生产能力的提高, 人员工作效率的提高等等是软件开发陈本最小化, 实现 软件质量的前提下的资金投入最小化。 §1.2.2 项目的目标 开发此通讯录管理系统软件, 使工作人员进行自己联系人的管理, 方便用户查询联系人, 使用户从混乱的联系人记录解放出来, 从而提高了工作效率, 具体的目标将在需求人系中给 出,这里不再赘述。 §1.2.3 目的、条件、假定和 ⑴ 开发方面条件: 硬件:没人一台 Intel Pentium 4 以上的计算机 软件:Word、Visio、Myeclipes6.0.1、Windows XP、SQL Server2000; ⑵ 开发时间:开发的整个过程在三周内完成; ⑶ 经费问题:经费少,适合学生开发的简单系统。 §1.3 可选的方案 由于系统过于简单,所以开发小组没有提供其他的方案,只有一种方案。 §1.4 经济可行性 §1.4.1 开发投资 对该系统的开发过程中需要的硬件投资: 具备开发的计算机 3 台 (团体 3 名) , 开发过程中的工作。 5 对该系统的开发过程中需要的软件投资:Word、Visio、Myeclipes6.0.1、Windows XP、SQL Server2000 等。 §1.4.2 效益估计 如果系统运行的好的话,至少可以使联系人的管理效率提高 10 倍以上。因为本系统不 仅可以面无繁杂的手工操作, 避免了效率低、保密性差等缺点,大大提高了对联系人管理 的自动化、正确性等。 §1.4.4 投资风险 该系统开发人员少,投资小,技术含量高,但它却可以带来了无形的不可估量的效益, 而且该系统的开发是基于有形的企业单位或部门家庭等,故其投资风险低。 §1.5 技术可行性 根据该系统的目标来衡量的技术是否具备,一般可从硬件的性能要求、条件、操作 人员水平和数量等方面去考虑和分析。 考虑到系统实施的可行性,在软件方面选择了如今较流行的 Myeclipes6.0.1 来进行开发管理 平台的设计,使用 SQL Server2000 数据库存储数据。 在硬件方面, 则选择空间较大, 只要是 Pentium Ⅳ系列及以上的计算机, 内存在 512MB 以上, 硬盘在 20GB,都可以满足系统的开发需要。当然,硬件的配置越高,系统的开发与运行会 更流畅,考虑到如今的家用电脑硬件的整体配置水平,系统在硬件方面是可行的。 在软件方面,由于 Myeclipes6.0.1 和 SQL Server2000 都是两个非常成熟的开发工具,无论在 安全性、可用性、可靠性方面都毫无置疑,因此软件方面是可行的。 §1.6 法律可行性 所有软件都使用正版,所有技术资料都有提出放保管,该系统的开发和研制,将不会侵 犯他人、集体和国家的利益,不会违法国家政策和法律,在法律上是可行的。 §1.7 用户可行性 使用本软件的用户要求有一定计算机基础的人员, 系统管理员要求有计算机的专业知识 的人员来担当,最好经过专业培训。 §1.8 结论 综上所述,通过可行性分析,此通讯录管理系统可以实现。 6 通讯录管理系统项目软件需求分析 报告 负 责 人:沈超 参 与 人:沈超、闫丙锋 功能模型:沈超 数据模型:沈超 行为模型:沈超 数据词典:沈超、闫丙锋 审 核 人:周世睿 2011 年 6 月 3 日 7 需求分析目录 概述??????????????????????????????????9 1.1 引言????????????????????????????????9 1.2 编写目的??????????????????????????????9 1.3.项目背景??????????????????????????????10 1.4 定义????????????????????????????????10 2.1 目标????????????????????????????????10 2.2 运行……………………………………………………………………………?10 2.3 条件与?????????????????????????????10 3.1DFD 图????????????????????????????????10 3.2 数据描述(数据字典)?????????????????????????17 4.功能描述???????????????????????????????19 5.运行需求???????????????????????????????26 6.需求分析总结?????????????????????????????26 8 第 2 章 需求分析 ◆ 项目概述 通讯录管理系统需求 项目名称 代码量 软件过程模型 通讯录管理系统 偏少 原型模型 工作量 项目难度 项目类型 每天工作 3 小时,持续 3 个 星期 一般 学生作业项目 项目简介 本通讯录信息管理系统用计算机管理电子通讯录的一种计算机应用 技术的创新,在计算机还未普及之前通讯管理都是由联系人采用名片,笔 录手工记帐的方式来操作的.现在一般的通讯录管理都是采用计算机作 为工具的实用的计算机通讯录管理程序来帮助人们进行更有效的通讯 录信息管理。通讯录管理系统是典型的信息管理系统,其开发主要包括 后台数据库的建立和以及前端应用程序的开发两个方面。 要求应用 程序功能完备,易使用等特点。 实现通讯录管理系统的基本功能,可以实现电话用户的查询、电话 号码的查询、电话号码所在地的查询、电话号码的添加及删除等功能, 以方便人们的记录和通讯。 面向对象的编程技术、结构化编程技术 Myeclipse,WindowXP 操作系统,Microsoft SQL Server 2000 使用 java 面向对象高级程序设计语言实现了通讯录管理系统的基本功 能,项目规模适中,强调基础。 项目目的 涉及主要技术 编程 技术重点 数据库连接 JDBC,接口的实现,以及数据的处理 §1.1 引言 以工程的方法来设计项目中的各个功能模块,解决遇到的问题。 软件工程设计原则: ①选取合适的开发模型②选取合适的设计方法③选取高质量的工程支持 ④重视软件工程的管理。 §1.2 编写目的 在完成了针对通讯录管理系统的前期调查,同时与多位软件使用者进行了全面深入地探 讨和分析的基础上,提出了这份软件需求规格说明书。 此需求规格说明书对《通讯录管理系统》软件做了通讯录管理系统的用户需求分析,明 确所要开发的软件应具有的功能、 性能与界面, 使系统分析人员及软件开发人员能清楚地了 解用户的需求, 并在此基础上进一步提出概要设计说明书和完成后续设计与开发工作。 本说 明书的预期读者为客户、 业务或需求分析人员、 测试人员、 用户文档编写者、 项目管理人员。 本说明书是整个软件开发的依据, 它对以后阶段的工作起指导作用。 本文也是项目完成后系 9 统验收的依据。 §1.3 项目背景 本通讯录信息管理系统用计算机管理电子通讯录的一种计算机应用技术的创新,在计算 机还未普及之前通讯管理都是由联系人采用名片,手工记帐的方式来操作的.现在一般的 通讯录管理都是采用计算机作为工具的实用的计算机通讯录管理程序来帮助人们进行更有 效的通讯录信息管理。通讯录管理系统是典型的信息管理系统,要求应用程序功能完备,易使 用等特点。 §1.4 定义 需求: 用户解决问题或达到目标所需的条件或功能; 系统或系统部件要满足合同、 标准, 规范或其它正式文档所需具有的条件或权能。 §2.1 目标 实现通讯录管理系统的基本功能。 辅助功能:用户的登录、新建、密码修改以及删除功能; 系统主要功能:②联系人和类别的查询、添加、删除等功能,以方便人们的记录和通讯。 §2.2 运行 §2.2.1 服务端 A. 操作系统:Windows xp 以及 microsoft server2000 §2.2.2 客户端 A. Windows 95/98/me/Xp/2000/2003, Unix, Linux,Vista,Mac OS 各版 §2.3 条件与 本通讯录信息管理系统用计算机管理电子通讯录的一种计算机应用技术的创新,在计算 机还未普及之前通讯管理都是由联系人采用名片,手工记帐的方式来操作的.现在一般的 通讯录管理都是采用计算机作为工具的实用的计算机通讯录管理程序来帮助人们进行更有 效的通讯录信息管理。通讯录管理系统是典型的信息管理系统(mis),要求应用程序功能完备, 易使用等特点。 §3.1 DFD 图 0 层图: 10 用户名,密码 返回用户主界面 联系人基本信息(添加,且添加新类别) 联系人添加成功提示 联系人新信息(修改,添加新类别) 修改联系人成功提示 联系人查询条件 联系人查询结果 删除联系人或类别条件) 删除成功提示 新用户,密码(注册) 通讯录管理系统 注册成功提示信息 用户 类别查询条件(类别名) 查询类别结果 用户名,密码(修改密码) 修改密码成功提示信息 用户名,密码(删除用户) 用户删除成功提示信息 返回出错信息 非用 户 出错信息 顶层图 1 层图 登陆结果 用户名,密码 用户名,密码 修改结果 6.用户登陆 查询结果 查询条件 7.修改用户密 码 2.查看联系 人 添个结果信息 新联系人基本信息 用户名,密码 删除结果 登陆结果 用户名,密码 用户名,密码 新密码 修改结果 用户名 此用户联系人 查询条件 用户信息文件 新联系人基本信息 1.添加联系 人 用户名 用户名,密码 8.删除用户 联系人信息 文件 联系人新信息 修改联系人结果 联系人编号 添加联系人结果 新类别名 类别名 类别添加结果 类别核查结果 用户信息文件 删除结果 用户名 联系人新信息 用户类别信息 文件 用户名 新用户名,密码 用户名 注册用户结果 3.修改联系 人 修改结果 删除结果信息 类别名 类别核查结果 类别添加结果 新类别名 4.删除联 系人或类 别 删出条件 删除结果信息 类别名 删除结果 用户类别信 息文件 查询结果 类别名 9.注册新用户 用户类别信息 文件 5.查看类别 类别名 查询结果 注册用户结果 新用户名,密码 1层图 2 层图 11 联系人基本信息 联系人存在信息 类别信息(联系人不存在) 1.2核查类别 1.1核查联系人 用户名,密码 用户名 核查结果 类别名 核查结果 用户信息文件 (联系人不存在)联系人基本信息 添加结果 用户名 联系人信息文 件 类别信息(类别不存在) 用户类别信息 文件 联系人基本信息(包括用户名) 类别添加结果 1.3添加联系人 1.4添加新类别 添加成功信息 添加结果 用户名 类别信息 用户信息文件 姓名,性别,关系 联系人信息 2.1查询处理 用户名 联系人信息 用户名,姓名,性别,关系 联系人信息文 件 用户信息文件 12 联系人新信息 联系人不存在 类别名 类别(联系人存在) 核查结果 用户类别信息 文件 3.1核查联系人 3.2核查类别 类别信息 核查结果 联系人编号,用户名 用户名 类别信息(类别不存在) 联系人信息 文件 联系人新信息 用户信息文件 3.4添加新类别 用户名 添加成功信息 用户名 联系人新信息(包括用户名) 修改结果 3.3修改联系人 处理 用户信息文件 修改结果 出错信息提示 联系人编号或类别 4.1核查处理 核查结果 用户名 用户名,类编名 用户名,联系人编号 核查结果 用户信息文件 用户名,联系人编号或类别名 联系人信息文 件 用户类别信息 文件 用户名,联系人编号 用户名,类别名 删除结果 删除结果 4.2删除联系人 或类别 删除结果 13 类别名 类别信息 5.1查询处理 类别信息 用户名,类别名 用户名 用户类别信息 文件 用户信息文件 用户名,密码 出错信息 6.1核查 用户名,密码 核查结果 允许登陆信息 用户信息文件 6.2登陆处理 用户界面 14 用户名,密码 出错信息 7.1核查 用户名,密码 核查结果 允许修改,用户名 用户信息文件 用户名,新密码 7.2修改用户处 理 新密码 修改结果 修改结果 用户名,密码不正确 用户名,密码 8.1核查 用户名,密码 核查结果 用户名,密码 用户信息文件 用户名,密码 8.2删除用户处 理 删除结果 删除结果 15 此用户已存在 新用户名,密码 9.1核查 新用户名 核查结果 新用户名,密码 用户信息文件 新用户名,密码 9.2注册用户处 理 注册用户结果 注册用户结果 DFD 总图: 姓名,性别,关系 联系人信息 联系人基本信息 联系人存在信息 2.1查询 处理 用户名,姓名,性别,关系 用户名 联系人信息 联系人信 息文件 类别信息(类别不存在) (联系人不存在)联系人基本信息 类别添加结果 用户名 添加结果 联系人基本信息(包括用户名) 1.4添加 新类别 1.3添加 联系人 添加成功信息 添加结果 类别信息 联系人编号或类别 4.1核查 处理 用户名 用户信息 文件 用户名 用户名,联系人编号或类别名 联系人新信息 联系人不存在 3.1核查 联系人 类别(联系人存在) 3.2核查 类别 类别名 核查结果 类别信息(类别不存在) 用户类别 信息文件 删除结果 7.1核查 允许修改,用户名 用户名,联系人编号 用户名,类别名 删除结果 4.2删除 联系人 或类别 删除结果 用户名,密码 用户名,新密码 核查结果 修改结果 用户信息 文件 用户类别 信息文件 用户信息 文件 用户名 核查结果 用户名,类编名 用户名,密码 类别信息 用户名 用户名,类别名 允许登陆信息 核查结果 用户名,密码不正确 用户名,密码 9.1核查 新用户名 核查结果 用户信息 文件 新用户名,密码 用户名,联系人编号 出错信息提示 核查结果 类别名 5.1查询 处理 6.1核查 类别信息 用户类别 信息文件 出错信息 用户名,密码 1.1核查 联系人 用户名 用户信息 文件 类别信息(联系人不存在) 1.2核查 类别 类别名 核查结果 用户名,密码 核查结果 联系人信 息文件 此用户已存在 新用户名,密码 6.2登陆 处理 8.1核查 用户名,密码 核查结果 核查结果 联系人编号,用户名 联系人新信息 联系人信 息文件 3.4添加 新类别 添加成功信息 用户名 用户名 修改结果 用户信息 文件 用户名,密码 用户名,密码 删除结果 新用户名,密码 注册用户结果 9.2注册 用户处 理 类别信息 7.2修改 用户处 理 8.2删除 用户处 理 注册用户结果 联系人新信息(包括用户名) 修改结果 3.3修改 联系人 处理 出错信息 用户名,密码 新密码 修改结果 注册用户结果 16 §3.2 数据描述 数据字典: 1. 输入数据:鼠标按钮的单击、菜单的命令、查询条件和查询关键字、相关信息更改、统 计条件、受限操作所需密码记录等。 2. 输出数据:查询关键字确定的数据库记录的子集 、统计结果、信息的录入、修改结果 (成功或失败)等。 3. 内部数据:操作所产生的中间数据和查询操作建立的索引。 4. 数据库描述:本软件采用个关系型数据库。采用的数据库管理系统是 SQLServer2000. 5. 数据流条目如下: 5.1)名称:用户名和密码。 简述:用户登陆的凭证,用户管理联系人要用到用户名。 定义:用户名和密码=用户名+用户密码。 来源:用户。 去向:6.1 核查,7.1 核查,8.1 核查,联系人或类别的添加,查看,修改,删除(用 到用户名) ; 5.2)返回用户的主界面=用户的个人操作界面; 5.3)名称:联系人基本信息。 简述:组成联系人的各种信息,用户可以管理; 定义:联系人基本信息=联系人编号+联系人姓名+联系人性别+出生日期+住址+电话+ 邮箱+类编+用户名; 来源:用户。 去向:1.1核查联系人,1.2核查类别; 5.4)定义:联系人新信息。 简述:用户修改联系人时,修改过的信息。 定义:联系人新信息=联系人编号+联系人姓名+联系人性别+出生日期+住址+电话+邮 箱+类编+用户名。 来源:用户。 去向:3.1核查联系人,3.2核查类别; 5.5)名称:联系人查询条件。 简述:用户用来查询联系人的条件。 定义:联系人查询条件=[[联系人性别+用户名],[联系人姓名+用户名],[类别+用户 名],[ 联系人性别+联系人姓名+用户名],[ 联系人性别+类别+用户名],[ 联系人 姓名+类别+用户名],[ 联系人性别+联系人姓名+类别] +用户名]。 来源:用户。 去向:2.1 查询处理; 5.6)名称:联系人查询结果。 简述:用户输入条件,从数书库中查询的联系人条目。 定义: 联系人查询结果={联系人编号+联系人姓名+联系人性别+出生日期+住址+电话+ 邮箱+类编+用户名}。 来源:2.1 查询处理; 5.7)名称:删除联系人条件。 简述:用户要删除某个联系人是输入的条件。 定义:删除联系人条件= 联系人编号+用户名; 17 来源:用户。 去向:4.1 核查处理; 5.8)名称:删除用户类别条件。 简述:用户删除类别时输入的条件。 定义:删除用户类别条件=用户类别名+用户名; 来源:用户。 去向:4.1 4.1核查处理,4.2删除联系人或类别; 5.9)名称:类别查询条件。 简述:查询类别时的条件。 定义:类别查询条件=用户类别名+用户名。 来源:用户。 去向:5.1查询处理; 5.10)名称:查询类别结果。 简述:用户查询类别的结果。 定义:查询类别结果={类别名+用户名+备注}。 来源:5.1查询处理。 去向:用户; 5.10)名称:新用户密码。 简述:用户修改密码时,输入的新密码。 定义:新用户密码=新用户名+密码。 来源:用户。 去向:7.1核查,7.2修改用户处理; 6.文件条目如下: 6.1)名称:用户信息文件。 简述:记录用户信息的文件。 文件组成:{用户名+密码}。 写文件的加工:9.2注册用户处理,7.2修改用户处理。 读文件的加工:6.1核查,6.2登陆处理,7.1核查,8.1核查,9.1核查。 使用权限:用户和非用户; 6.2)名称:联系人信息文件。 简述:记录联系人基本信息的文件。 文件组成: {联系人编号+联系人姓名+性别+出生日期+住址+电话+邮箱+关系+用户名}。 写文件的加工:1.3添加联系人,3.3修改联系人处理,4.2删除联系人或类别。 读文件的加工:1.1核查联系人,2.1查询处理,3.1核查联系人,4.1核查处理,4.2删除联系 人或类别。 使用权限:用户; 6.3)名称:用户类别信息文件。 简述:记录用户联系人类别的文件。 文件组成:{类别名+用户名+备注}。 写文件的加工:1.4添加新类别,3.4添加新类别,4.2删除联系人或类别, 18 读文件的加工:1.2核查类别3.2核查类别4.1核查处理4.2删除联系人或类别5.1类别查询处理 使用权限:用户; 7.加工条目如下: 7.1)1.1核查联系人1.2核查类别1.3添加联系人1.4添加新类别; 7.2)2.1查询处理; 7.3)3.1核查联系人3.2核查类3.3修改联系人处理3.4添加新类别; 7.4)4.1核查处理4.2删除联系人或类别; 7.5)5.1查询处理; 7.6)6.1核查6.2登陆处理; 7.7)7.1核查7.2修改用户处理; 7.8)8.1核查8.2删除用户处理; 7.9)9.1核查9.2注册用户处理。 8.源或宿如下: 8.1)名称:用户。 简要描述:用户即是源又是宿。 输入数据流:提供用户名和密码,联系人基本信息,类别基本信息,查询条件,删除条件和 错误信息等。 输出数据流:联系人基本信息,类别基本信息和错误信息等; 8.2)名称:非用户。 简要描述:可以注册。 输入数据流:新用户名和密码。 输出数据流:注册结果信息等。 9.别名条目如下: 9.1)别名:查询用户条件。 类型:数据流。 基本名:联系人姓名+性别+关系; 9.2)别名:查询类别条件。 类型:数据流。 基本名:类别名。 §4 功能描述 用户分为两种角色(权限) :①非用户:新建用户名和密码;②用户:登录,修改用户 密码以及删除用户。 对于用户,为了方便用户使用本软件,用户必须新建帐户,在后来的使用中用户可以修 改密码,用户可以将自己删除;登陆后便进入用户个人的主界面,对联系人进行管理。 19 对联系人进行以下管理如下: 1. 查询联系人:①按姓名、性别和类别进行查询(可组合查询)②无条件查询,即 全部联系人查询 ③查询类别,按类别名查询; 2. 修改联系人:需要知道联系人编号,然后重新填写联系人信息,幷提交; 3. 添加联系人:用户将自己的联系人信息添加到数据库(里面嵌套了添加类别) ; 4. 删除联系人或类别:用户可以将对自己无用的联系人或类别删除; 整个软件将以图形界面的形式来帮助用户管理联系人,因此用户可方便地与系统进行交互。 §5 运行需求 586 以上 PC 机,安装运行均可运行此软件。 §6 需求分析总结 通过需求分析,充分的阐述了该系统的各项功能以及用户的需求,根据需求的具体要求,构 造出需求规格说明书,进而绘制出系统的 DFD 图,幷经过不断的修改,最终完成系统的需 求。通过系统需求分析,我对需求分析的步骤,方法有了更进一步的理解,这将对我以后有 重要的影响。 20 通讯录管理系统项目软件结构设计 报告 负 责 人:周世睿 参 与 人:周世睿、闫丙锋 总体结构:周世睿 内部结构:周世睿、闫丙锋 数据结构:周世睿 借 接 口: 界 面:周世睿、闫丙锋 审 核 人:沈超 2011 年 6 月 9 日 21 结构设计目录 1.1 简要概述???????????????????????????????23 1.2 用户?????????????????????????????????23 1.3 联系人的管理?????????????????????????????23 1.3.添加联系人??????????????????????????????23 1.3.2 查看联系人?????????????????????????????23 1.3.3 修改联系人?????????????????????????????23 1.3.4 删除联系人……………………………………………………………………………23 1.3.5 查看类别??????????????????????????????23 1.3.6 帮助????????????????????????????????23 2.系统功能 H 图和逻辑结构设计???????????????????????23 2.1 系统功能 H 图?????????????????????????????23 2.2 逻辑结构设计?????????????????????????????24 3.系统总体结构??????????????????????????????26 3.1 概述?????????????????????????????????26 3.2 用户?????????????????????????????????26 3.3 联系人????????????????????????????????26 3.4 结构的具体设计(系统总体结构图)???????????????????27 3.5 内部模块结构?????????????????????????????28 3.6 界面设计???????????????????????????????30 4.详细说明书???????????????????????????????31 5.体会????????????????????????????????32 22 第 3 章 概要设计 §1.1 简要概述 本系统具有多种功能:①用户管理(为了方便用户而设计) ②联系人管理(系统的主 要功能) ;通过本系统,用户可以很方便的注册和管理自己的联系人,其中可供用户和非用 户使用,即用户可以登陆,修改自己的密码,将自己从数据库中删除(注意:删除用户的同 时,也将级联的删除了用户的所有联系人的一切信息) ,而非用户可以根据自己的需要注册 自己的帐户,注册成功之后,非用户即变成了用户,可以登陆自己的主界面来管理自己的联 系人。系统具体的功能如下。 §1.2 用户 用户分为两种:①非法用户:新建用户名和密码即注册新用户;②用户:登录系统, 修改用户密码以及删除用户。 §1.3 联系人的管理 1.3.1.添加联系人:填写联系人基本信息(注意联系人编号,姓名,类别不可为空,注意, 若用户添加了一个新的类别,则类别的备注也不可为空) 。 1.3.2.查询联系人信息: ①查询联系人操作是本系统所有其他联系人操作的必备操作 查询条件有联系人姓名,性别,类别,可任意组合查询; ②在查询中不输入任何条件即可查询所有联系人信息, 输入类 别可以查询该类别的联系人信息, 输入性别, 则查询相应联系 人的信息。 1.3.3.修改联系人:修改联系人的功能与添加联系人的功能大同小异,但是要注意的是,当 用户要修改某个联系人的信息是, 必须知道此联系人的编号 (即此联系 人已经存在用户的通讯录中) ,联系人编号可通过“查询联系人信息模 块”来得到,同样,若改变了此联系人的类别,则注意类别是否是一个 新的类别。 1.3.4.删除联系人:用户可以通过它来删除所要删除的联系人信息,只需要提供次联系人的 编号即可,删除联系人中同时有删除联系人类别的功能,提供类别名即 可。 1.3.5.查看类别:用户可以提供类别名来查看类别的信息。 1.3.6.帮助:主要是为新注册的用户提供软件功能上的帮助,帮助新用户了解软件的主要功 能,如何使用等。 §2.系统功能 H 图和逻辑结构设计 §2.1 系统功能 H 图 23 通讯录管理 系统 用户 非用户 用户 登陆 删除 用户 修改 密码 添加 联系 人 (类 别) 查看 联系 人信 息 修改 联系 人信 息 (或 添加 类 别) 查看 类别 信息 注册 系统功能H图 §2.2 逻辑结构设计 用户表(Userss) 字段 username password 类别表(Leibie) 字段 lname username beizhu 数据类型 varchar varchar text 长度 50 50 备注 类别名 所属用户名 类别备注 char 数据类型 varchar 50 12 长度 用户名 密码 备注 联系人表(Relationmans) 字段 rname birthday address 数据类型 varchar char char text 24 长度 50 10 16 备注 联系人姓名 性别 出生日期 住址 telephone youxiang username lname char varchar varchar varchar 16 50 50 50 电话 邮箱 所属用户名 所属类别名 表的建立: use pubs create table Userss(username varchar(50) primary key, password char(12) not null ) go create table Leibie( lname varchar(50), username varchar(50), beizhu text, primary key(lname,username), foreign key (username) references Userss(username) on delete cascade ) go create table Relationmans(id char(4), rname varchar(50), char(10), birthday char(16), address text, telephone char(16), youxiang varchar(50), username varchar(50), lname varchar(50) not null, primary key (id,username), foreign key (username) references Userss(username) on delete cascade, foreign key (lname) references Leibie(lname) ) go 25 §3.系统总体结构 §3.1 概述 在需求分析的基础上和考虑实际用户的要求来设计系统结构;从需求分析,可知系统有 两个子系统:①用户管理子系统 ②联系人管理子系统。 §3.2 用户 3.2.1.分析 DFD 图,可知对于用户,系统分为四个小功能:用户登陆,注册新用户,用户 修改自己的密码,以及用户将自己的帐户删除。 3.2.2.数据流向 输入流:①用户名和密码 ②新用户名和密码 ③用户名和新密码 输出流:无 3.2.3.用户登陆,注册新用户,用户修改密码,用户删除自己帐户,需要核对检查。例如: 用户登陆时,要将用户的用户名和密码作为条件在数据库中检索,若结果为空则说明 不是的用户,给出出错提示,若结果不为空则登陆用户系统主界面;注册用户时, 同样将输入的用户名和密码作为条件在数据库中检索,若结果不为空,则给出出错提 示 (此用户名已经错在) 要求重新输入, , 其中需要用户重新输入密码, 以防用户输错, 导致用户本人忘记;删除用户和更改用户密码是,同样要进行核查,在这里就不再赘 述。 3.2.4. 注意: 用户登陆时, 用户名数据流将进系人管理模块, 以便用户自己操作联系人, 否则会出错。 §3.3 联系人 3.3.1.分析 DFD 图,可知对于联系人,系统分为七个功能:首页,添加联系人,查看联系 人,修改联系人,删除联系人,查看类别,帮助。 3.3.2.数据流向 输入流:①新联系人基本信息 ②联系人查询条件 ③联系人新信息 ④联系人编号或类别名 ⑤类别名 输出流:①添加结果 26 ②查询联系人结果 ③修改结果 ④删除结果 ⑤查询类别结果 ⑥核查出出错信息 3.3.3.添加联系人,查看联系人,修改联系人,删除联系人或类别,查看类别,这些操作均 需要核查。具体怎么核查,同用户管理子系统,这里不在赘述。 §3.4 结构的具体设计 3.4.1 确定系统的输入输出 输入输出分为物理输入,逻辑输入,物理输出,逻辑输出; ① 物理输入:系统输入端的数据流; ② 逻辑输入:变换中心的输入数据流; ③ 物理输出:系统输出端的数据流; ④ 逻辑输出:变换中心的输出数据流。 ⑴ 确定逻辑输入 根据 DFD,从物理输入端开始,一步步向系统的中间移动,可找到离物理输出端最远的, 但仍可被看作系统输入的哪个(或那些)数据流,就是逻辑输入。 ⑵ 确定逻辑输出 根据 DFD,从物理输出端开始,一步步向系统的中间移动,可找到离物理输出端最远的, 但仍可被看做系统输出的那个(或那些)数据流,就是逻辑输出。 ⑶ 确定变换中心 确定了所有的逻辑输入和逻辑输出后,位于逻辑输入和逻辑输出之间的部分就死变换中心。 根据以上原则,可得到如下系统总体结构图: 27 通讯录管理系统 1,2,3,4,5,6,7,8 7,8 1,2,3,4,5,6 输入控制2 发送控制 输出控制2 1 2 1,2,3,4,5,6,7,8 3 4 5 6 1,2,3,4,5,6 1 1 2,16 3,16 4,16 5,16 6,16 添加 联系 人 查看 联系 人 修改 联系 人 删除 联系 人或 类别 14 查看 用户 类别 打印 联系 人信 息核 查的 出错 信息 打印 联系 人信 息核 查的 出错 信息 7 8 输入 用户 名或 密码 输入 联系 人信 息 输入 联系 人名 称,性 别,关 系 输入 联系 人新 信息 输入 联系 人编 号或 类别 名 输入 用户 类别 名 核查 输入 信息 16 注册 用 户, 修 改, 删除 10 打印 登陆 结果 信息 打印 用户 修改 等操 作结 果信 息 打印 添加 结果 信息 打印 查询 结果1 打印 删除 结果 信息 用户 登陆 9 11 12 13 15 打印 修改 结果 信息 打印 查询 结果2 1.用户名,密码 2.联系人信息 3.联系人姓名,性别,关系 4.联系人新信息 5.联系人编号或类别名 6.用户类别名 7.用户信息核查的出错信息 8. 联系人信 息核查的出错信息 9.登陆结果信息 10.打印用户修改等操作 结果信息 11.添加结果信息 12.查询结果1 13.删除结果信息 14.修改结果信息 15.查询结果2。 §3.5 内部模块结构(详细设计) 内部模块结构,仅列出三个,分别是:登陆模块内部结构,添加模块内部结构,查看模块内 部结构。 用户登陆模块的设计(PAD 图) : 28 username=“用 户输入” password=”用 户输入” Sql=”” 置flag为 lse 得到数据库连 接con 关闭rs 由con得到一 个statement 由 statementd 关闭stat 得到结果集rs 关闭con rs.next() 返回flag spwd=rs.ge tString(1) 验证密码spwd 关闭rs 登陆失败 rs.close() flag 关闭stat 关闭con 等待事件发生 登陆成功,进入 系 统 返回flag 添加联系人模块的设计(PAD 图) 29 等待事件发生 为联系人部分信息 赋初值 判断 e.getActionCommand ()==女“ 提交失败 置为女 为sql重新赋 值 判断 e.getActionCommand ()==男“ 置为男 提示 联系人的编号,姓 名,关系,不能为 空 update( sql)0 联系人的编号,姓名,关 系为空 为sql重新赋 值 提交失败 将用户名传给username 联系人已经存 在 备注为空 为sql重新赋值 isExist(sql) 提交失败 提交成功 备注不能为空 update( sql)0 为sql重新赋值 判断e.getSource()== 添加按钮 isExist(sql) 等待事件发生 为sql重新赋值 判断e.getSource()== 取消按钮 update(sql)0 清空文本框 打印添加成功 !! 等待事件发生 查看联系人模块的设计(PAD 图) 为rname赋初值 为lname赋初值 等待事件发生 Sql置空 判断 e.getActionComma nd()==女 为username赋初 值 置为女 判断 e.getActionComma nd()==男 置为男 等待事件发生 e.getSource()== 取消按钮 e.getSource()== 查看按钮 清空文本框 姓名,性别,关系均为空时 sql=select * from Relationmans where username=+username+ 性别,关系均为空时 sql=select * from Relationmans where username=+username+ and rname=+rname+ 姓名,关系均为空时 sql=select * from Relationmans where username=+username+ and =++ 得到数据库连接 con 姓名,性别, 关系 姓名,性别均为空时 sql=select * from Relationmans where username=+username+ and lname=+lname+ sql=select * from Relationmans where username=+username+ and rname=+rname+ and =++ sql=select * from Relationmans where username=+username+ and rname=+rname+ and lname=+lname+ sql=select * from Relationmans where username=+username+ and =++ and lname=+lname+ sql=select * from Relationmans where username=+username+ and rname=+rname+ and =++ and lname=+lname+ 由con得到一个 statement 关系为空时 性别为空时 由statementd得 到结果集rs 姓名为空时 姓名,性别,关系均不为空时 While rs.next()!=-1 将结果输出 等待事件发生 §3.6 界面设计 30 根据系统的需要,以及方便用户与系统之间的交互,设计界面(见项目总报告—界面设 计) 。 用户登陆界面: 用户登陆 用户名 密码 登陆 注册 修改密码 删除用户 系统主界面 **的通讯录系统 首页 添加联系人 查看联系人 修改联系人 删除联系人 查看类别 帮助 欢迎进入通讯录管理系统 时间: §4.详细设计说明书 31 联系人管理模块是通讯录管理系统的核心,本报告主要研究的是对联系人具体如何管 理,如何实现需求分析阶段对系统功能的要求,本根据 DFD 图来设计系统的结构,研究数据 的流向等。 §5.体会 通过结构设计, 将系统的结构描述出来, 从中可以看出数据的流向, 数据都有哪些处理, 例如输入控制等; 结构设计对于软件编码的实施也非常重要, 因为好的系统结构决定着功能 实现的方式,进而影响到用户与系统交互的方式等,在这里就不再赘述。 32 通讯录管理系统项目软件编码工作 报告 负 责 人:闫丙锋 参 与 人:闫丙锋 主控模块:闫丙锋 子控模块:闫丙锋 原子模块:闫丙锋 审 核 人:沈超、周世睿 2011 年 6 月 10 日 33 编码目录 1. 简述????????????????????????????35 2. 开发??????????????????????????35 3. 关键模块的实现……………………………………………………………35 3.1 关键代码的实现???????????????????????35 4.外部接口???????????????????????????37 5.内部接口???????????????????????????37 6.软件界面???????????????????????????38 6.1 用户登陆界面????????????????????????38 6.2 用户主界面?????????????????????????38 6.3 联系人添加界面???????????????????????38 6.4 联系人查询界面???????????????????????39 7.小结?????????????????????????????40 34 第 4 章 编码 §1.简述 我们采用 Java 面向对象编程语言来实现客户端软件,以及软件与后台数据库的连接, 包括各功能模块的编写和用户界面的实现,用 JDBC 来完成数据库的连接。 §2.开发 Window XP 操作系统,Myeclipes6.0.1,Mycrosoft SQL Server 2000。 §3.关键模块的实现 3.1 关键代码 ◆用户登陆的实现: String user=jtf.getText().trim(); String pwd=String.valueOf(jpf.getPassword()); String sql=;//声明SQL语句 if(e.getSource()==jtf) {//事件源为文本框 切换输入焦点到密码框 jpf.requestFocus(); } else if(e.getSource()==jbArray[0]e.getSource()==jpf) {//判断用户名和密码是否匹配 查询数据库 if(DButil_ybf.check(user,pwd)) {//登陆成功 JOptionPane.showMessageDialog(this,登陆成功); MainFrame_ybf mf=new MainFrame_ybf(jtf.getText()); //登陆进主窗体 this.dispose();//登陆窗体 return; } else {//登陆失败 jlArray[2].setText(对不起,非法的用户名和密码!!!); this.clear();//清空输入窗口 } } ◆ 添加联系人的实现: if(e.getActionCommand()==男){ =男; } else if(e.getActionCommand()==女){ =女; } 35 if(e.getSource()==jbArray[0]){ if(id.equals()rname.equals()lname.equals()) {//如果联系人的编号或姓名或关系为空 jlArray[10].setText(联系人的编号,姓名,关系,不能为 空!!!); } else { String username=MainFrame_ybf.st; sql=select * from Relationmans where id=+id+ and username=+username+; if(DButil_ybf.isExist(sql)) {//联系人已经存在 jlArray[10].setText(对不起,联系人已经存 在!!!); this.clear();//清空输入文本框 } else{ sql=select * from Leibie where lname=+lname+ and username=+username+; if(DButil_ybf.isExist(sql)){ sql=insert into Relationmans values(+id+,+rname+,++,+birthday+,+add ress+,+telephone+,+youxiang+,+username+,+ln ame+); if(DButil_ybf.update(sql)0) {//添加成功 jlArray[10].setText(恭喜您!!!添加联系 人成功,请注意查看); } else { jlArray[10].setText(提交失败!!!); } } else{ if(beizhu.equals()) {//备注为空 jlArray[10].setText(对不起,备注不能为空!!!); } else { sql=insert into Leibie 36 values(+lname+,+username+,+beizhu+); if(DButil_ybf.update(sql)0){ sql=sql=insert into Relationmans values(+id+,+rname+,++,+birthday+,+ad dress+,+telephone+,+youxiang+,+username+,+ lname+); if(DButil_ybf.update(sql)0) {//添加成功 jlArray[10].setText(恭喜您!!!添加 联系人成功,请注意查看); } else { jlArray[10].setText(提交失败!!!); } } else { jlArray[10].setText(提交失败!!!); } } } } } } 本软件主界面的实现采用简单的选项卡方式,方便用户的操作,由于篇幅问题,仅 给出以上几个关键功能模块的实现。 §4.外部接口 外部结构接供用户输入信息以及系统将数据呈现出的接口,方便用户操作。 §5.内部接口 内部接口即前端软件与后台数据库之间进行的数据输入输出,用户将信息 或命令提交,系统自动完成剩下的任务。 37 §6.软件界面(部分) 6.1 用户登陆界面 6.2 用户主界面 6.3 联系人添加界面 38 6.4 联系人查询界面 39 §7. 小结 本系统采用 Java 面向对象高级编程语言实现,通过对系统结构的研究,实现了每个工程 模块。通过编码,我学到了很多,例如,事件处理机制,排错的方法,布局管理器的使用, 各种组件的使用方法,具体的功能实现等。 40 通讯录管理系统项目软件系统测试 报告 负 责 人:闫丙锋 参 与 人:闫丙锋 单元测试:闫丙锋 组装测试:闫丙锋 确认测试:闫丙锋 审 核 人:沈超、周世睿 2011 年 6 月 13 日 41 测试目录 1.测试的目的???????????????????????????????43 2.测试的内容???????????????????????????????43 3.单元测试????????????????????????????????43 3.1 测试的目的???????????????????????????????43 3.2 测试方法????????????????????????????????43 3.3 单元测试的内容?????????????????????????????43 3.4 登陆模块的测试?????????????????????????????43 3.4.1 基本径测试?????????????????????????????44 3.5 查看联系人测试?????????????????????????????48 3.5.1 基本径测试?????????????????????????????48 4.集成测试?????????????????????????????????52 4.1 测试目的????????????????????????????????52 4.2 测试方式????????????????????????????????52 4.3 增量集成测试??????????????????????????????52 5.确认测试?????????????????????????????????53 5.1 定义??????????????????????????????????53 5.2 测试方法????????????????????????????????53 5.3 测试过程????????????????????????????????53 6.系统测试?????????????????????????????????53 6.1 测试方法????????????????????????????????53 6.2 测试的内容和步骤????????????????????????????53 7.参考文献?????????????????????????????????54 8.测试总结?????????????????????????????????54 42 第 5 章 测试 §1. 测试的目的 通过测试,找到至今仍未发现的错误,进行修正,及早的发现错误,以免以后不必 要的改正和费用,选择测试方法,完成测试用例的设计。 §2.测试内容与要求 白盒法测试(语句覆盖、条件覆盖、径覆盖,基本径测试),黑盒法测试(等 价类划分、边界值分析),软件测试说明书;根据需要选择部分测试方法包括白盒 测试与黑盒测试方法对本软件进行必要的测试。 §3. 单元测试 3.1 测试的目的 找出每个单独模块中至今尚未发现的错误,幷改正错误。 3.2 测试方法 采用传统的白盒测试法(基本径测试)。 3.3 单元测试内容 测试系统的所有模块,具体测试每个模块的接口,局部数据结构,边界条件,独 立径和错误处理径。 注释:报告中只列出了两个模块的测试,其他模块在编码阶段均已测试。 3.4 登陆模块的测试 开始 登陆模块程序流程 触发事件 T e.getSource()== jbArray[0] T F user.equals() F e.getSource()== jbArray[1] pwd1.equals() F F T pwd2.equals() F this.clear() T T pwd1.equals(pwd 2) T T F F jlArray[4].set Text(请填写完整 资料!!!) sql=select username from Userss where username=+u ser+ jlArray[4].set Text(请确认密码 !!!在提交) DButil_ybf.isEx ist(sql) T this.clear() F jlArray[4].set Text(对不起,用 户名已存在!!!) DButil_ybf.upda te(sql)0 T F this.clear() jlArray[4].set Text(恭喜您!! !注册成功,请登 陆) 返回 43 1 2 对应的流图 4 5 6 3 12 7 8 11 9 13 14 10 15 16 17 18 3.4.1.基本径测试 测试过程中遍历所有的径 ◆驱动模块: public static void main(String []args) { new Registered_ybf();//创建登陆窗体 } 44 开始 new Registered _ybf() 触发事件 T 定义 user,pwd1 pwd2,sql 从文本框获取 user,pwd1 pwd2,sql值 F 事件处理 处理结果 结束 驱动模块图 ◆桩模块-1 public static int update(String sql)//更新数据库 { int count=0;//声明返回值 try { con=DButil_ybf.getConnection();//得到数据库连接 stat=con.createStatement();//创建语句对象 count=stat.executeUpdate(sql);//执行更新 } catch(Exception e) { 45 e.printStackTrace(); count=-1;//更新失败返回值为-1 } finally{DButil_ybf.closeCon();}//关闭数据库连接 return count;//返回结果 } ◆桩模块-2 public static boolean isExist(String sql)//某条记录是否存在 { boolean flag=lse;//设置返回值 try { con=DButil_ybf.getConnection();//得到数据库连接 stat=con.createStatement();//创建语句对象 rs=stat.executeQuery(sql);//执行查询 if(rs.next()) { flag=true;//存在,设置返回值为true } } catch(Exception e) { e.printStackTrace(); flag=lse;//发生任何异常,置返回结果为lse } finally{DButil_ybf.closeCon();}//关闭数据库连接 return flag;//返回结果 } 46 开始 开始 传入参数sql 传入参数sql boolean flag=lse int count=0 con=DButil _ybf.getCo nnection() con=DButil _ybf.getCo nnection() stat=con.c reateState ment() stat=con.c reateState ment() rs=stat.ex ecuteQuery (sql) rs=stat.ex ecuteQuery (sql) rs.next() F 出现异常 T T flag=true flag=lse count=-1 F DButil_ybf .closeCon( ) DButil_ybf .closeCon( ) return flag return count 桩模块-1 桩模块-2 47 ◆测试用例: NO 径 用例 输入数据 用户名 1 2 3 4 5 6 7 1-2-4-5-6-1213-18 1-2-4-5-6-7-1 4-18 1-2-4-5-6-7-8 -9-10-11-7-18 1-2-4-5-6-7-8 -9-15-16-18 1-2-3-18 1-2-4-12-13-1 8 1-2-4-5-12-13 -18 闫丙锋 闫丙锋 闫丙锋 闫丙锋 闫丙锋 Null 闫丙锋 密码 875986 875986 875986 689578 689578 Null Null 确认密 码 Null 689578 875986 689578 689578 Null null 无 请确认密码 再提交 恭喜你,注册 成功 对不起,用户 已存在 清空文本框 请填写完整 资料 请填写完整 资料 无 请确认密 码再提交 恭喜你,注 册成功 对不起,用 户已存在 清空文本 框 请填写完 整资料 请填写完 整资料 系统出错 注册失败 注册成功 注册失败 取消注册 注册失败 注册失败 理论结果 实际结果 备注 测试结果: 进行测试时,注册失败,不管怎么输入都没有反应,经过排查,修改了事件处理机制,最终 将错决。 3.5查看联系人模块 3.5.1.基本径测试 ◆驱动模块 public static void main(String []args) { new MainFrame_ybf(通讯录系统).setVisible(true);//创建登陆窗体 } 注释:类 MainFrame_ybf内容量大,在这里本没有给出。 48 开始 事件触发 T e.getActionComm and()==男 F T e.getActionComm and()==女 F =男 T e.getSource()== jbArray[0] T =女 F 事件处理 F e.getSource()== jbArray[1] T this.clear() F 返回 查看联系人模块设计图 49 1 2 3 8 4 9 6 5 7 10 对应的流图 50 开始 new MainFrame_ybf(通 讯录系统).setVisib le(true) 触发事件 T 定义 rname,lnam e,username ,sql 从文本框获取 user,pwd1 pwd2,sql值 F 事件处理 处理结果 结束 桩模块流程图 51 ◆测试用例: NO 径 输入数据 姓名 1 2 3 4 1-2-3-4-6-10 1-2-8-10 1-2-3-9-10 1-2-3-4-5-7-10 男 女 性别 关系 有 有 有 清空文本 框 有 有 有 清空文本 框 查询成功 查询成功 查询成功 查询失败 用例 理论结果 实际结果 备注 §4. 集成测试 经过单元测试(报告中仅列出了部分模块测试)完成后,每个模块都能的工 作,将登陆模块,添加联系人模块集成到系统中,已测试;现在将查询模块集成到系 统中进行测试。 4.1 测试目的 必要性: 进行集成测试的必要性, 因为每个模块都能的工作, 但是放到一起时, 往往就不能正常工作地工作。主要原因 :数据可能在通过接口时丢失;一 个模块可能对另一个模块产生非故意的,有害的影响(即副作用);当子 功能连接到一起时可能不能达到期望的主功能;在单个模块中可以接受的 不精确性,在连起来构可能跨达到无法接受的程度;全局数据结构可能也 存在问题。 此次测试目的:将查询模块添加到系统中,测试幷发现其中的错误。 4.2 测试的方式 集成测试的方式有两种, 非增量集成测试和增量集成测试, 增量集成测试又可分为 自顶向下集成测试和自底向上集成测试;本次测试采用增量集成测试方法。 4.3 增量集成测试 ◆由于驱动模块内容繁杂,在这不宜给出,桩模块与以上的单元测试一样。 ◆测试用例 添加模块的用例: NO 测试用例 输入数据 编号 姓名 性别 生日 住址 电线 闫3 女 朋友 以上通过三个用例用添加模块添加三个联系人的信息。 理论 结果 成功 成功 成功 实际 结果 成功 成功 成功 备注 52 查询模块的用例: (查询以上联系人信息的用例) 测试用例 NO 输入条件 姓名 1 2 3 4 5 6 7 8 闫1 女 闫4 闫1 男 女 同学 朋友 性别 类别 理论结果 所有联系人 无 一条记录 一条记录 一条记录 无 记录 无 备注 实际结果 所有联系人 无 一条记录 一条记录 一条记录 无 记录 无 出错, 有其他用 户的联系人 无此人 查询成功 查询成功 查询成功 无此类别 查询成功 无此人 测试结果: 进行第一次测试时,出现了错误,即用户查询自己的联系人信息时,将其他用户 的联系人信息查了出来,这是一个严重的错误,经过仔细的排查,发现程序中关 于用户名的传递出了问题,修改过后进行了第2,3。。。。次测试,无误。 §5. 确认测试 5.1 定义:确认测试是以软件需求规约为依据,以发现软件与需求不一致的错误 根据需求规格说明书进行测试,找出错误,幷进行修改,主要是检查软件是否实 现了规约的、全部功能要求,文档资料是否完整,正确,合理,其他的需求 等; 确认测试的结果可分为以下两类: ① 满足需求规约要求的功能和性能特性,用户可以接受。 ② 发现与需求规约有偏差,此时需要列出问题清单。 5.2 测试方法:a测试,b测试。 5.3 测试过程:嵌套在前面测试中,根据需求规约进行了测试,在此没有列出测试的具体步 骤和内容。 §6.系统测试 6.1 测试方法 几种常用的系统测试方法:① 恢复测试 ② 安全测试 ③ 压力测试 ④ 性能测试。 6.2 测试的内容和步骤 各功能模块集成后进行确认测试,模块之间无影响,且可完成预定功能。 软件没有问题,则这个软件经过确认测试后就可以交付使用了,我们将系统测试贯穿于 使用过程中,在使用中找出那些隐密性强的错误。 53 §7. 参考文献 软件工程 《大学出版社》 §8. 测试总结 通过本次测试,我们找到了错误,幷加以修改,测试成功,在测试过程中,我们进 行了单元测试,集成测试即组装测试, 确认测试,等,其中单元测试我采用了白盒测试 (白箱测试)和黑盒测试(黑箱测试) ,对没一个模块,单独设计驱动程序,桩模块程序 等进行测试,经过测试,找出了每一个模块的缺陷和错误。经过单元测试后,进行了系 统的集成测试,确认测试。我从中学到了很多新的知识,对测试的方法,测试的本质有 了进一步的理解。 第6章 项目总结 这次课程设计是对我们进入大学以来学习软件工程这门课程结果的一次大检验。 自己动 手,团队合作的方式,发现和解决问题。收获还是不小的,我们对软件工程这门课有了更深 入的理解,同时了解开发软件的一般过程,所采用的方法,遇到问题时如何解决等。通过这 次课程设计,同时也检验了我们编码的能力,对语言学习的一大检验。编码时,我们采用了 Java 面向对象编程语言来完成项目,通过类与对象来完成需求规格说明书中的软件功能。 在此次项目开发过程中,我们发现需求分析的重要性,它是软件开发成功的关键,虽然 需求分析阶段我们遇到了一些小问题,但通过小组方式的讨论,终于达成一致的意见。结构 设计对于软件编码的实施也非常重要, 因为好的系统结构决定着功能实现的方式, 进而影响 到用户与系统交互的方式; 测试是找出至今仍未发现的错误和缺陷, 是检验一款软件优劣甚 至成败的最重要的方式,通过测试,我们找到了一些错误,通过讨论,我们解决了这些小的 错误。避免了以后带来不必要的麻烦。 虽然本系统属于小的应用系统,但是,我们严格按照软件工程一般的方法,一步一步完 成它,一步一步去实现它,可是由于能力和时间有限,本系统可能仍然存在没有被发现的错 误。总之,从中我们学到了很多知识,我个人认为这次实践对于我们从事软件方面的开发有 很大的帮助。我一向都认为,只有亲身去经历,才能获得真实的体会,这些体会是用买 不到的。 最后我谨代表本小组全体组员感谢孙淮宁老师的亲切指导, 我们会努力, 我们虽然做的 不是最好,但我们争取做到了更好。 54 55