《oa协同办公系统详细设计说明书论文学位论文.doc》由会员分享,可在线阅读,更多相关《oa协同办公系统详细设计说明书论文学位论文.doc(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、协同办公系统详细设计说明书书编写:邵近东 日期:2016-11-1 审核:邵近东日期:2016-11-1批准:邵近东日期:2016-11-1受控状态:是 发布版次:1 日期:2016-11-1编号:q1234变更记录日期版本变更说明作者签字确认系统模块对应章节对应部门负责人签字1引言41.1编写目的41.2背景41.3基线41.4范围41.5定义41.6参考资料42总体设计52.1概述52.1.1功能描述52.2运行环境52.2.1软件环境52.2.2硬件环境52.3开发环境62.3.1服务器软件环境62.3.2服务器硬件环境62.3.3开发机器软件环境62.3.4开发机器硬件环境62.4设计
2、思想72.4.1系统构思72.4.2关键技术与算法72.4.3关键数据结构82.4.4人工处理过程93子系统模块设计93.1工作管理模块93.2在线信息子系统193.2.1模块1203.2.2模块2203.2.3模块3213.2.4模块4213.2.5模块5213.2.6模块6223.2.7模块7223.3公司通讯录子功能263.4个人文件夹管理模块303.5系统管理模块393.6名片夹管理模块453.7个人信息管理模块513.8会议室管理模块573.9会议管理671 引言1.1 编写目的本说明书目的在于详细说明系统各功能的功能及其实现方式,指导程序员进行编码。本说明书的预期读者为:项目经理,
3、系统分析员,系统设计人员,开发工程师,测试经理以及测试设计人员等。1.2 背景待开发软件系统的名称:协同办公系统此软件系统任务提出者: 邵近东此软件系统任务开发者: 邵近东此软件系统任务用户: 邵近东1.3 基线协同办公系统需求分析说明书 v1.01.4 范围系统包括的范围:个人办公、会议管理,系统管理。1.5 定义系统管理员:是指在系统中具有最高权限的员工。他能够改变系统中任意员工的相关信息,如个人信息,通讯录,名片夹,会议室使用记录,在线信息状况等。 员工:是指在系统中拥有普通权限的人员。该人员所能处理的事物有:个人信息的完善,名片夹、文件夹的管理,通讯录的更新,在线信息的提醒,会议室的使
4、用情况的查看等。 经理:是指在系统中拥有较高权限的员工。该人员不仅能处理普通员工所能处理的事物,还能处理如会议室的申请,会议室的管理等事物。 权限管理:是指在系统中用户为了保护自己的隐私,对某些信息项的公开程度加以限制的行为。具体的有:日程安排中读者设置和代办设置,共享名片夹中共享名片夹的设置,个人文件夹中共享文件夹的设置等1.6 参考资料需求分析说明书、概要设计说明书_v1.0.doc、Oracle数据库使用教程、Ora9iSQLRef.chm、Oracle数据库使用帮助文档、CSS中文教程、HTML 开发手册、JAVA高级编程指南、JSP应用开发详解、功能结构图。2 总体设计2.1 概述2
5、.1.1 功能描述 系统分为三个主要流程:1、个人办公 2、会议管理 3、系统管理 个人办公:普通职员登陆到系统后,通过点击个人办公连接,进入个人办公页面。之后可以选择个人信息、日程安排、名片夹、公司通讯录、待办事项、在线信息、个人文件夹进行办公。会议管理:部门领导登陆到系统后选择会议管理,进入会议管理页面。在会议管理页面中可以增、删、改、查会议。其中发起会议需首先预约会议室,然后将输入与会人名单,开会议信息通过邮件发送到每个与会人的信箱里。系统管理:系统管理员登陆到系统后,点击系统管理,进入系统管理页面。可以选择部门管理、角色管理、职员管理、文件夹管理进行系统维护。2.2 运行环境2.2.1
6、 软件环境分类名称版本语种操作系统Microsoft windows 2003中文操作系统的附加功能无数据库平台Oracle10g中文数据库平台补丁无应用平台tomcat6.5英语应用平台补丁无客户端软件无2.2.2 硬件环境服务器最低配置推荐配置应用和数据库服务器Tomcat4.0IBM WebSphere2.3 开发环境2.3.1 服务器软件环境分类名称版本语种操作系统Microsoft windows 2003中文操作系统的附加功能无数据库平台Oracle9.2i中文数据库平台补丁无应用平台应用平台补丁无版本控制系统CVS2.6英文客户端软件无2.3.2 服务器硬件环境服务器最低配置推荐
7、配置应用服务器、数据库服务器、邮件服务器、目录服务器Tomcat4.0IBM WebSphereSQLServer2000Oracle 10g2.3.3 开发机器软件环境分类名称版本语种操作系统Microsoft windows 2003中文操作系统的附加功能无数据库平台Oracle10g中文应用平台开发平台客户端软件2.3.4 开发机器硬件环境分类最低配置推荐配置开发机器2.4 系统功能模块划分根据对客户需求的理解,系统功能划分为如图1所示:图1 系统功能模块划分3 子系统模块设计3.1 日程安排模块模块名称权限管理功能描述为员工提供工作安排维护和查询功能,系统根据设定时间将提示内容发布到该
8、员工的工作安排中。员工可以设置自己的工作安排的读者,以便别人知道自己的安排;也可以将自己的工作安排权限开放给指定的人,以便别人替自己安排工作。此模块包含的功能有:读者设置、代办设置、日历查看。接口与属性用户与接口ManageWork交互进行相关的操作。ManageWork接口中包含的操作有: 代办管理功能:ProxyAdd():添加代办功能。该函数通过与Proxy对象类关联得到操作所需要的数据。其中Proxy类中的属性有:private String sender_id; /将要设置代办的系统用户idprivate String use_id; /将要被设置为代办的系统用户idProxy类中包
9、含的主要方法有:上述各属性的get()、set()方法ManageWork类中的ProxyAdd()方法将通过Proxy类的实例调用相应的get()、set()方法得到或传入数据ProxyAdd()方法中将实例化数据库的对象,完成添加代办的工作。在添加代办之前方法将优先进行加入人员id的检测,若用户已在代办列表中则将提示用户并拒绝重复加入代办。如果欲加入的代办不在该用户的代办列表中则加入该代办,并进行相应的页面跳转,显示该用户所有的代办列表。ProxyDelete():删除代办功能。该函数通过与Proxy对象类关联得到操作所需要的数据。其中Proxy类中的属性有:private String
10、sender_id; /将要设置代办的系统用户idprivate String use_id; /将要被设置为代办的系统用户idProxyDelete()方法中将实例化数据库的对象,完成删除代办的工作。在删除代办之前系统将给出相应删除提示,在用户确认删除后对数据库进行删除操作,并进行相应的页面跳转,显示该用户删除该代办后的所有的代办列表。读者管理功能:ReaderAdd():添加读者功能。该函数通过与Reader对象类关联得到操作所需要的数据。其中Reader类中的属性有:private String icus_user_id; /将要设置读者的系统用户id private String ia
11、ro_role_id; /将要被设置为读者的系统用户idReader类中包含的主要方法有:上述各属性的get()、set()方法ReaderManage类中的ReaderAdd()方法将通过Reader类的实例调用相应的get()、set()方法得到或传入数据ReaderAdd ()方法中将实例化数据库的对象,完成添加读者的工作。在添加读者之前方法将优先进行加入人员id的检测,若用户已在读者列表中则将提示用户并拒绝重复加入读者。由于根据系统规格说明的相关说明,代办的权限大于读者的权限,即代办自动拥有读者的全部权利,因此如果欲加入读者是当前用户的代办则系统同样拒绝加入该读者。如果欲加入的代办不在
12、该用户的读者列表中则加入该读者,并进行相应的页面跳转,显示该用户所有的读者列表。ReaderDelete():删除读者功能。该函数通过与Reader对象类关联得到操作所需要的数据。其中Reader类中的属性有:private String icus_user_id; /将要设置读者的系统用户id private String iaro_role_id; /将要被设置为读者的系统用户id private String icus_user_name; /将要被设置为读者的系统用户的姓名private String icde_department_name;/将要被设置为读者的系统用户所在的部门pr
13、ivate String user_position_name;/将要被设置为读者的系统用户的职位Reader类中包含的主要方法有:上述各属性的get()、set()方法ReaderManage类中的ReaderDelete()方法将通过Reader类的实例调用相应的get()、set()方法得到或传入数据ReaderDelete()方法中将实例化数据库的对象,完成删除读者的工作。在删除读者之前系统将给出相应删除提示,在用户确认删除后对数据库进行删除操作,并进行相应的页面跳转,显示该用户删除该读者后的所有的读者列表。采用日历控件输入时间功能:根据需求规格说明书的要求,系统将提供给用户日历查询功
14、能,以方便其对于工作的管理。在此通过javascript语言实现日历的显示与查询功能。用户可以通过在textbox中输入所需的年份,在下拉列表中选择相应的月份,提交察看所需日期的具体情况。数据结构与算法 判断欲加入代办的存在性:判断欲加入代办是否已在用户的代办列表中主要通过session中存储的登陆用户信息及数据库中表间外键联系,构造sql语句得到相应的结果集。若该查询的结果集为空则说明欲加入代办不在用户的代办列表中,进行加入操作。否则系统给出提示信息。 通过页面加入代办的主要数据结构:根据需求规格说明书的相应要求,用户提出相应的代办操作申请后,系统将给出组织结构图,只有通过组织结构图用户才能
15、进行相应的操作。组织结构图的每个系统用户名的前部都将设有复选框。用户通过勾取所需的用户进行相关的增加或删除操作。系统采用struts架构,页面的复选框属性将作为String型的数组传入系统后台的功能模块层。通过相应的函数确定是否选重的属性。根据该属性关联的icus_user_id系统用户id对相关的数据库表格进行操作。 利用javascript实现日历功能的设计因素:在工作管理的多个模块的需求描述中都明确提到了需要日历的查询和使用功能。但从系统的整体出发,日历的使用范围基本局限于工作管理部分,因此考虑使用javascript减轻系统负担,方便用户使用。模块名称日程维护功能描述为员工提供工作安排
16、维护和查询功能,系统根据设定时间将提示内容发布到该员工的工作安排中。此模块包含的功能有:工作安排、综合查询。接口与属性所有的的操作基于Schedule实体类完成。Schedule类中的属性包括: Private Integer Schedul ,/系统为工作自动分配的ID号 Private userID;/工作执行人的ID号 Private FromID;/工作安排人的 ID号 private String Schedul_bdate; /工作开始日期 private String Schedul_edate; /工作结束日期 private String Schedul_content; /
17、工作内容 private String Schedul_name; /工作名称Schedule类中包含的主要方法有:上述各属性的get()、set()方法工作维护功能:Add_schedule:添加工作功能。该函数通过与对象类关联得到操作所需要的数据。Schedule类中包含的主要方法有:上述各属性的get()、set()方法ScheduleManage类中的ScheduleAdd()方法将通过Schedule类的实例调用相应的get()、set()方法得到或传入数据ScheduleAdd():方法中将实例化数据库的对象,完成添加工作的工作。在添加工作之前进行申请加入操作人员id的检测,若工作
18、执行人为登陆用户本身,或者登陆用户的被执行代办人,则在该用户提交申请后系统自动进行工作冲突的检测。若工作检测后系统返回值为非冲突,则加入该工作,否则系统提示用户相关的信息并拒绝加入工作。Schedule_delete():删除工作功能。该函数通过与Work对象类关联得到操作所需要的数据。ScheduleManage类中的ScheduleDelete()方法将通过Schedule类的实例调用相应的get()、set()方法得到或传入数据Scheduledelete()方法中将实例化数据库的对象,完成删除工作。在删除工作之前方法将优先进行申请删除操作人员id的检测,若工作执行人为登陆用户本身,或者
19、工作的安排人,则系统将给出相应删除提示,在用户确认删除后对数据库进行删除操作,并进行相应的页面跳转,显示该用户删除该工作后的所有的工作列表。ScheduleSearch():包括综合查询的日历查询 查询工作功能。该函数通过与Schedule对象类关联得到操作所需要的数据。ScheduleManage类中的ScheduleSearch()方法将通过Schedule类的实例调用相应的get()、set()方法得到或传入数据ScheduleSearch()方法中将实例化数据库的对象,完成查询工作的工作。根据需求规格说明书的要求:可以通过: 1, 时间查询,根据时间进行查询2, 字查询,根据内容或者标
20、题的关键字查询字段查找相应的工作。从在系统进行工作查询后将通过页面显示工作列表。在用户输入查询条件的情况下进行查询ScheduleEdit():修改工作功能。该函数通过与Schedule对象类关联得到操作所需要的数据。ScheduleManage类中ScheduleEdit()方法将通过Schedule类的实例调用相应的get()、set()方法得到或传入数据ScheduleEdit()方法中将实例化数据库的对象,完成修改工作的工作。在修改工作之前方法将优先进行申请加入操作人员id的检测,若工作执行人为登陆用户本身,或者原工作的安排人且依然则在该用户提交申请后系统自动进行工作冲突的检测。若工作
21、检测后系统返回值为非冲突,则修改该工作,否则系统提示用户相关的信息并拒绝加入工作。数据结构与算法检测工作冲突功能:根据需求规格说明书的要求,系统将提供给用户工作冲突检测功能,以方便其对于工作的管理。检测工作冲突主要侧略为:优先检测工作执行人欲安排的工作与其已有的工作安排的冲突。检测过程中需要三步判断:1.1) 欲安排工作起始日期之间是否有其它的工作安排1.2) 欲安排工作起始日期是否在其它已安排工作之间1.3) 欲安排工作结束日期是否在其他已安排工作之间若有没有冲突则安排工作否则系统给出错误信息。检测人员权限功能:根据系统规格说明书的相关说明,不同权限的用户对于工作安排的操作的权限是不同的,检
22、测的策略为:1 根据session中的信息判断登陆用户是否工作管理相关操作的责任人2 根据读者&代办表中的相关记录判断工作管理相关操作责任人是否具有代办的权限。补充说明 bb模块名称待办事项模块功能描述此模块实现了对待办事项的增加、删除、显示以及所有日程安排清单的按日期排序显示功能。接口与属性类jobOperate:抽象方法sortAccordToTime()/按时间排序输入参数:要排序的代办列表输出参数:无返回值:排序好的代办列表Addjob()输入参数:要插入的待办事项对象的引用工作流输出参数:无返回值:bool类型,插入成功与否deletejob:输入参数:要删除的待办事项的ID 输出参
23、数:无返回值:bool类型,删除成功与否display():/显示待办事项输入参数:无输出参数:要显示的对象列表返回值:bool类型,显示成功与否displayAll():输入参数:无输出参数:要显示的对象列表返回值:bool类型,显示成功与否数据结构与算法对象类job:与数据库中的job表的各个字段相对应序列号 job_id Integer名称 job_name String负责人 person String起始时间 job_btime time结束时间 job_etime time事项内容 jobcontent String事项标题 jobtitle String是否完成 done boo
24、l补充说明工作安排类图:权限设置类图序列图:工作安排维护序列图:3.2 在线信息子系统模块名称在线信息模块功能描述本子系统主要为用户提供留言交流的平台,用户可以发送留言,接收留言,查看留言以及对留言进行查询,回复,删除等操作接口与属性主要由MessageManage类通过操纵Message类实现对留言的管理、接收、发送等。1其中Message类主要属性包括:Int fromID /留言发送者员工号String fromName /留言发送者姓名Int toID /留言接收者员工号String toName /留言接收者姓名String title /留言主题String content /留言
25、内容Date date /留言日期Int messageNumber /留言编号int issent /判断留言是否已经发送int isReaded /判断留言是否已经被阅读int from_delete /判断发送者是否将留言删除int to_delete /判断接收者是否将留言删除主要接口与方法有:对类中每个属性的get()与set()方法2MessageManage属性包括:Boolen isOK /判断对留言的操作是否成功接口与方法包括:saveMessage() /保存留言editMessage() /编辑留言see Message() /查看留言send Message() /发送
26、 留言search Message() /查询留言add Message() / 添加留言delete Message() /删除留言replay Message() /回复留言数据结构与算法数据库语句实现功能。补充说明3.2.1 模块1模块名称发送留言功能描述指利用系统发送短消息。用户点击“发送”后,系统将留言写进数据库,并将int issent改为1。接口与属性MessageManage类通过Message类的get()与set()方法实现对留言的管理。sendMessage()函数实现发送留言功能。输入参数有int toID, String toName ,String title St
27、ring content, Date data。返回值为Boolean isOK.sendMessage()方法将实例化Message对象,通过调用该对象的方法,来获取留言的基本信息,然后实习留言的发送功能。数据结构与算法数据库语句实现功能。补充说明3.2.2 模块2模块名称保存留言功能描述指利用系统保存短消息。用户点击“保存”后,系统将留言写进数据库,并将int issent改为0。接口与属性MessageManage类通过Message类的get()与set()方法实现对留言的管理。saveMessage()函数实现保存留言功能。输入参数有int toID, String toName,
28、int toID, int toName , Date date, String title, String content 。返回值为Boolean ok.saveMessage()方法将实例化数据库对象,然后对留言信息进行验证,验证通过后将其保存在数据库中,返回保存成功的信息。数据结构与算法数据库语句实现功能。补充说明3.2.3 模块3模块名称查找留言功能描述指利用系统查找短消息。用户输入查询条件,点击“查找”后,系统将从数据库中查找,并将结果返回。接口与属性MessageManage类通过Message类的get()与set()方法实现对留言的管理。searchMessage()函数实现
29、查询留言功能。输入参数有String name, int fromID,int toID searchMessage()将实例化数据库对象,通过查询条件对数据库进行查询操作,然后将查询结果以列表的实行返回给用户。数据结构与算法数据库语句实现功能。补充说明3.2.4 模块4模块名称查看留言功能描述指利用系统查看短消息。用户点击某条留言后,系统将具体内容返回,并将boolean isreaded改为true。接口与属性MessageManage类通过Message类的get()与set()方法实现对留言的管理。seeMessage()函数实现查看留言。输入的参数有int messageNumber
30、seeMessage()将实例华数据库对象,通过int messageNumber在数据库中查找信息,将结果返回给用户,进行查看数据结构与算法数据库语句实现功能。补充说明3.2.5 模块5模块名称删除留言功能描述指利用系统删除短消息。用户选定留言后,系统将boolean from_delete或to_delete改为true。接口与属性MessageManage类通过Message类的get()与set()方法实现对留言的管理。deleteMessag()函数实现删除留言功能。输入参数有int messageNumber。返回值为Boolean isOK. deleteMessag()将实例化
31、数据库对象,在验证完用户要删除的留言之后回返回一个确认信息,如果用户确定删除,将删除留言在数据库中的记录。数据结构与算法数据库语句实现功能。补充说明3.2.6 模块6模块名称更改留言功能描述指利用系统更改未发送的短消息。用户选择某条未发送留言,点击详“细信息”后,系统将从数据库取出。再点击“编辑”,对该留言进行编辑接口与属性MessageManage类通过Message类的get()与set()方法实现对留言的管理。editMessage()函数实现编辑留言功能。输入的参数有int toID, String toName, String title, String content editMe
32、ssage()将实例化数据库对象,在获取用户的更改信息之后,返回确认信息,待用户确认更改后,进行数据库的更新操作。数据结构与算法数据库语句实现功能。补充说明3.2.7 模块7模块名称回复留言功能描述指利用系统回复短消息。用户查看某条留言,点击“回复”后,系统将留言引入到写留言中,并将留言的fromID付给新建留言的toID。fromName付给新建留言的toName。接口与属性MessageManage类通过Message类的get()与set()方法实现对留言的管理。replyMessage()函数实现回复留言功能。输入的参数有int toID, String toName replyMes
33、sage()将实例化Message类对象,将收到的信息的发送人ID,Name 作为新的参数写入新的回复留言,之后调用sendMessage()方法发送留言。数据结构与算法数据库语句实现功能。补充说明类图:1.草稿箱时序图未阅留言模块的主要功能是列出系统或其他用户发送给自己d的还没有阅读的短信息。包含的操作有:查询留言、查看留言、回复留言、删除留言。未阅留言时序图3.3 公司通讯录子功能模块名称公司通讯录功能描述为职员提供查询公司所有员工通讯录的功能,系统根据设定的查询条件将查询结果显示给用户中。职员可以将查询的结果导出为excel保存到自己本机选定的地址。此模块包含的功能有:查询通讯录 导出位
34、excel。接口与属性用户与接口UserMange交互进行查询的操作。在本子功能中只用到UserManage接口中包含的查询操作。该子功能包含的功能有:1. 查询公司通讯录getAttribute():获得查询条件。该函数接受从页面传过来的参数作为查询条件,查询所需要的数据。getAttribute()调用UserManage接口的searchUser方法,查找用户要查询的用户通讯录,以列表的方式显示给用户。2. 导出为Excel用户查询出通讯录之后可以点击“导出为Excel”,弹出导出为Excel,用户指定文件导出路径,将表格导出。本功能用到jxl.jar包,具体实现方法为:public b
35、oolean export(String sql,String name,OutputStream os) targetFile+=/abc+.xls; System.out.println(!); content=getContent(sql);/以向量的形式存放所有的记录 /String path=context.getRealPath(targetFile); try Vector inner=null; String value=;/存放在cell中的文本值 int num=0;/存放在cell中的数字值 /OutputStream os=new FileOutputStream(pa
36、th); WritableWorkbook workbook=Workbook.createWorkbook(os);/创建工作薄 WritableSheet worksheet=workbook.createSheet(record,0);/创建第一个工作表,name:工作表名称 Label label=null;/用于写入文本内容到工作表中去 jxl.write.Number nmb=null;/用于写入数值到工作表中去 /开始写入第一行,即标题栏 for(int i=0;ititle.length;i+) label=new Label(i,0,titlei);/参数依次代表列数、行数、
37、内容 worksheet.addCell(label);/写入单元格 /开始写入内容 for(int i=0;icontent.size();i+) inner=(Vector)content.get(i);/获取一条记录 for(int j=0;jinner.size();j+) /一个一个字段的放入excel中去 if(j=1|j=3)/插入的数值 Integer num_=(Integer)inner.get(j); num=num_.intValue(); nmb=new jxl.write.Number(j,i+1,num); worksheet.addCell(nmb); else
38、 value=(String)inner.get(j); label=new Label(j,i+1,value); worksheet.addCell(label); workbook.write(); workbook.close(); catch(Exception e) e.printStackTrace(); return false; return true; public Vector getContent(String sql) rs=dbase.executeQuery(sql); Vector outter=new Vector(); try while(rs.next() Vector inner=new Vector();/用于存放一条记录 String name=rs.getString(NAME);/得到学生姓名 int studId=rs.getInt(ID);/得到学号 String burseType=rs.getString(SEX);/得到奖学金类型 int colleage=rs.getInt(AGE);/得到所在院系 inner.add(name);