LOGO指导教师:李健利副教授专业:软件工程班级:07-622学号:07061302开题人:陈培哲企业电话语音录音管理系统的设计与实现陈述内容系统设计思想1各模块编程思路2软件开发流程与程序实现流程3中期小结与下一阶段工作展望4一、系统设计思想设计思想综述运用面向对象的软件设计思想,采用统一建模语言(UML)进行描述,使用C++面向对象语言,主要依托于VC++6.0开发平台进行开发。核心功能将利用TAPI(TelephonyApplicationProgramInterface)——电话应用程序编程接口技术实现。采用串口通信的方式通过语音Modem来实现电话服务的请求。系统主要分为三个主要模块:基本信息模块、通话管理模块和系统设置模块。开发方法采用增量模型。一、系统设计思想系统功能结构图企业电话录音管理系统基本信息模块通话管理模块系统设置模块客户信息管理员工信息管理产品信息管理电话录音存储去电管理来电管理录音文件路径变更电话记录管理数据备份与恢复系统帮助一、系统设计思想系统业务流程图客户来电显示来电客户信息员工业务忙?接电话需要查询产品信息?查询产品信息电话录音存储否是是产生电话记录否回电?员工去电更改录音文件路径?是否洽谈业务录音文件路径变更是否一、系统设计思想系统用例图一、系统设计思想系统物理数据模型PDM员工信息表用户名密码员工编号员工姓名员工性别员工学历身份证号员工电话员工备注...varchar(10)varchar(20)numeric(8,0)varchar(10)varchar(4)varchar(10)numeric(8,0)numeric(8,0)varchar(50)pk客户信息表客户编号客户名称联系人联系电话Email联系地址客户备注...numeric(8,0)varchar(10)varchar(10)numeric(8,0)varchar(20)varchar(40)varchar(50)pk产品信息表产品编号产品名称产品介绍numeric(8,0)varchar(20)varchar(50)pk电话录音表文件编号文件名称录制时间文件路径...numeric(8,0)varchar(30)datetimevarchar(60)pk拨出电话表拨出记录号文件编号客户编号员工编号产品编号去电时间...numeric(8,0)numeric(8,0)numeric(8,0)numeric(8,0)numeric(8,0)datetimepkfk4fk2fk1fk3接入电话表接入记录号客户编号员工编号产品编号文件编号来电时间...numeric(8,0)numeric(8,0)numeric(8,0)numeric(8,0)numeric(8,0)datetimepkfk4fk3fk1fk2一、系统设计思想WindowsTAPI的体系结构应用程序(通话管理模块)ServiceProvideDriversTSPITAPI32.DLLTAPI各类电信设备(电话、传真)TAPIADDRDLLTAPI应用程序TAPIDLLTAPI服务提供者二、各模块编程思路各模块目标功能简述基本信息模块:可设置客户、员工和产品信息,并对其进行增、删或修改功能。拨出电话时以电话簿的形式显示客户信息。通话管理模块:可执行打电话操作,可进行来电显示和来电接听,接通至挂断期间录音,来电与去电录音分别存储,来电与去电记录分别存储。系统设置模块:可修改录音文件存储的路径,可备份和还原数据库系统数据,可为不熟悉用户提供系统帮助。编程思路概述各模块的开发采用快速原型模型,即先粗糙的做出静态页面,以此与客户探讨需求,待确定需求之后再进行系统地开发。毕业设计期间,我的老师充当了客户的角色,为确定需求提供了很多宝贵的意见。各模块的类设计遵循了MFC应用程序框架的标准。二、各模块的编程思路员工管理模块客户管理模块产品管理模块基本信息模块二、各模块编程思路基本信息模块员工管理(客户、产品管理类似)搜集领域需求,确定哪些员工信息为系统所需且有必要存储到数据库中。将信息转化为员工表的字段,将这些字段分为必填与选填进行存储。职工编号的编码规则:由入职年份确定前四位,由部门编号确定中二位,后二位为顺序编号。根据员工编号可确定用户权限。设计前台交互方式:网格形式呈现,可对表格中的任一行进行增删改查。表单界面的设计:增、改的交互都是通过用户提交表单的模式进行的,除了必须手动输入的字段,表单力求使用户减少手动输入的次数。可通过优化数据表结构、利用级联结构等方式处理。字段验证的设计:必填字段需要检查格式,例如身份证号码、手机号码、电话等。避免用户失误下输入的非法字符引起不必要的bug。编码实现:编写相应的功能函数,连接数据库。实现附加功能:多项查询功能、类似添加功能、Excel导入导出功能。二、各模块的编程思路接电话接电话来电显示接电话通话记录接电话语音录音打电话打电话通话记录打电话语音录音通话管理模块二、各模块编程思路通话管理模块了解领域需求:研究类似通话软件,如Skype、UUCall等网络电话软件。记录人们打电话的习惯。确定打电话界面必备的元素。确定硬件需求:确认测试电话(暂借用软件学院办公电话)已经向电信运行商申请开通了来电显示功能,确定计算机的语音Modem支持来电显示,并安装有驱动程序。设计交互界面,并加入COM和TAPI3.1的支持。编写核心类CTapi类:完成功能为TAPI的初始化、检测modem是否存在,若存在开始此线路的监听、TAPI事件的注册、呼叫给定的号码、应答电话、在modem线路上播放一个指定的声音文件、启动录音。编写CTapiEventNotification类:用于响应TAPI事件,当有TAPI事件发生时,向用户界面发送消息,并在用户界面内处理消息。编码实现对话框程序,主要是MFC规范函数的编写。调试,经过在软件学院办公室电话上的测试,接拨电话及录音功能已经基本实现。二、各模块编程思路1录音文件路径变更2数据备份与还原3系统帮助信息系统设置模块二、各模块编程思路系统设置模块录音文件路径变更设计思路比较简单,让用户指定一个路径,利用该路径生成一个文件夹,然后将之后的录音文件全部保存在此路径下即可。数据备份与还原的设计分为两种情况:首先是资源数据的备份,让用户选择一个比较安全的磁盘文件夹,将系统的资源数据(图片、录音等)复制到该文件夹下。其次是数据库数据的备份,可以使用MySQL的BACKUPTABLE或SELECTINTOOUTFILE转储所有数据到某个外部文件。这些数据可用RESTORETABLE来复原。系统帮助信息:采用帮助文档的形式给出,尽量采用图文结合的方式呈现给用户。一些细节的帮助,可采用气泡工具在用户初次使用本软件时给予适当的提示。三、软件开发流程与程序实现流程测试与交付编码实现概要设计与详细设计需求调研与分析11-14周6-10周4-5周1-3周软件开发流程图三、软件开发流程与程序实现流程通过原型确定需求MFC类建立逻辑进行数据库操作原型界面内部逻辑数据封装各个模块开发流程示意图三、软件开发流程与程序实现流程核心通信模块程序流程图程序入口初始化COM创建并初始化CTAPI类对象请求ITBBasicControl2是否自动应答播放提示音选择地址,检测地址所支持的类型,并进行侦听退出选择录音终端,进行录音释放所有对象,并退出程序有来电是是否否手动应答四、中期小结与下阶段工作展望与指导老师的沟通情况由于毕设主要在实验室进行,所以可随时与老师交流。老师针对需求给予了很大的帮助,也使我对于软件设计的理念上升了一个层次。并且,老师对于人机交互界面提供详尽的讲解,受益无穷。毕业设计内容的变更由于对需求理解的深入,力求将软件做的更加贴近实际需要,更加专业。目前完成的功能超出了任务书的范围。例如对于员工管理模块,我增加了对于员工头像的采集,增加了对于员工信息的多选择性查询功能。针对添加员工信息的方式,我额外设计了类似添加功能,可快速添加类似信息的情况。对于大批量的信息录入,我采取了Excel表格形式的批量导入导出,大大的方便了用户的操作。其他模块各有增添,不一一列举。由于一些功能实现的需要,原计划基于VC++6.0环境开发的系统,部分开发工作将在VS2005上进行。这主要是因为VC6并不支持TAPI3.1的部分函数。另外,为方便验证表单信息,引入了boost库中的正则表达式部分。四、中期小结与下阶段工作展望毕业设计进展情况由于需求的增加和对部分功能的精益求精,目前的进度已经有所滞后,但不超过一周。原计划第十周结束时完成所有代码的编写工作。目前尚有系统设置模块中的一些工作未完成,对于通话管理模块的界面也未经修饰。我会努力的追上计划进度,请各位老师谅解。目前可演示成果的情况可演示的模块为基本信息模块和通讯模块的代码,但未经整合,无法在一起演示。主要是因为一个基于VC++6.0开发,另一个基于VS2005上开发。整合工作目前正在进行中。可运行部分的程序将以截图形式展现出。四、中期小结与下阶段工作展望四、中期小结与下阶段工作展望四、中期小结与下阶段工作展望完成工作量的百分比经过估计,目前完成的工作量,占全部工作量的65%。下阶段工作展望努力赶上进度计划安排,尽快熟悉VS2005的开发环境,整合代码至新的开发环境中。尽快完成编码工作,并用一周时间测试系统,修补程序bug。完善系统的同时,着手准备毕业论文的撰写。LOGO谢谢各位老师!