用例模板描述表单如下
表3.2 用例模板描述
用例名称:多媒体信息管理
参与者:系统管理员
事件流:
管理员登录界面开始直接进入后台管理
选择目录管理,对媒体信息的管理
单击资源审核,对上传的未审核电影进行审核。
3.单击个人信息中心,查看个人的上传信息和修改个人信息
4.单击用户/权限管理,查看和修改用户信息
5.单击数据统计,可以对资源,访问人数,下载次数进行直方图或者圆饼图的统计
可选路径:
未知异常,由系统捕获后提示用户。
用例名称: 多媒体信息管理
参与者:普通用户
事件流:
从用户打开首页时用例开始
在首页选择电影,单击,得到电影的详细信息,点击在线观看或者下载,系统会进行相应的操作
登录上的用户单击上传直接进入上传页面,把资料详细填写完整进行资料的上传
3. 单击信息修改中心进行个人信息的修改
4. 单击修改用户密码进行个人密码的修改
5. 单击上传记录可以查看上传的信息
可选路径:
单击媒体下载出现异常
其他未知异常,由系统捕获后提示用户。
第4章 系统概要设计
在软件需求分析阶段,已经搞清楚了软件“做什么”的问题,并把这些需求通过规格说明书描述了出来,这也是目标系统的逻辑模型。进入了设计阶段,要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型,即着手实现软件的需求,并将设计的结果反映在“设计规格说明书”文档中,所以软件设计是一个把软件需求转换为软件表示的过程,最初这种表示只是描述了软件的总的体系结构,称为软件概要设计或结构设计。
概要设计有多种方法。在早期有模块化方法、功能分解方法;在60年代后期提出了面向数据流和面向数据结构的设计方法;近年来又提出面向对象的设计方法等。
本系统采用面向对象的JAVA软件开发。
4.1系统总体构架
系统按功能划分了三个层次结构,采用MVC设计。
(1)顶层。服务器数据层。
所有的数据存储在服务器数据库中,严格、科学地建立数据库结构,保证数据的完整性,约束性和高效性,高效率为客户端提供数据。
客户端与数据库之间是通过存储过程进行通信的,基本所有的操作都通过存储过程来完成。使用存储过程保证了数据存储的高效性和完整性。关于数据库的设计会在后面的章节作详细介绍。
(2)中间层。业务逻辑层
业务逻辑层把用户所有的需求都设计成功能模块,用JAVA完成各个功能模块的具体实现。
(3)底层。用户界面层。
用户界面层为用户提供简洁,直观,方便的操作界面,并把从中间层传递过来的数据以一定形式展现给用户。
用户不必管所有的数据是如何处理,如何传递,只需按系统提示及基本操作方法进行操作即可。
系统结构层次图如下:
图4.1 系统层次结构图
4.2 系统模块设计
根据系统需求分析模型,可以得到以下系统功能模块功能描述:
多媒体资源的分类目录管理;
资源的上传、下载、浏览、点播;
各种资源的多侧面、多视角的综合统计;
基于媒体属性的多种排序方式;
基于关键字的快速数据检索、
灵活安全的用户、角色、权限管理;
系统日志监控、数据库维护及相关的信息安全等功能;
系统并提供各类资源的浏览、点播、管理规划等应用的基础支撑环境。
4.3 面向对象的程序设计
系统开发是基于面向对象的JAVA技术进行开发。根据前面需求分析的模型,可建立以下类与接口,以实现系统各模块的功能。
4.3.1 多媒体资源展示
该功能模块适于用户依托媒体资源分类目录树分支、逐层浏览相应媒体类别下的多媒体资源;适于用户对多媒体资源粗泛式的索求,是用户常用功能之一。
设计要求
操作权限:各级用户按相应权限操作,只可获取相应级别下的多媒体资源。
多媒体资源排列:全部资源按目录树分支分层排列;对下包含,即当前文件夹所包含的各级子文件夹中的全部资源一同排列显示;同类资源按其多媒体资源编号倒排,即最新资源排列显示在最前面。
自动统计:记录用户下载次数、浏览次数等。
功能按钮
在线观看:可播放视频资源。
批量打包下载:可按权限批量下载所选中的多媒体资源。
单个下载:可按权限下载资源。
4.3.2 检索
本系统为用户设计提供多种检索模式。适于用户自定义查询条件,用以检索相应密级下的多媒体资源;适于用户对资源有较明确的索求,即满足用户“找既定目标”的需要。这些检索模式分为:单项条件检索、复合条件检索、参照关系检索、同义词检索,是用户常用功能之一。
设计要求
检索范围:依托目录树对下包含,范围含盖当前文件夹及其子文件夹中的全部相关资源文件。
资源排序:全部资源按其媒体代码顺排;同类资源按其流水号倒排,即最新资源排列显示在最上面。
日志管理:由系统自动记录操作情况。
自动统计:记录用户下载次数等。
功能按钮
预览:可按卡片方式显示资源著录信息,含有图片还原(或点播、试听)等功能。
点播:可播放视频、多媒体课件等资源。
批量下载:可按权限批量下载所选中的多媒体资源。
下载:可按权限下载资源。
4.3.3 统计
该功能模块可分别以直方图、圆饼图图表方式,直观量化地显示多媒体资料库中的资源分布、所占比例、访问人数、下载次数、资源来源情况等统计数据。为用户把握资源整体情况服务,为系统综合管理提供参考依据。
4.3.4 上传
用户可通过该功能模块将自己发现的新的多媒体资源上传,提供给总库。
设计要求
操作权限:上传由二级以上用户操作。上传资源可分为已著录和未著录两种:已著录:各大单位上传的资源必须是著录过的。未著录:个体用户上传的资源可以不著录,仅选择媒体类型即可,流水号由系统生成,其它著录项可在资源审核时由上级补充著录。著录方式:以卡片方式著录有关信息。上传方式:资源既可以单件上传。
功能按钮上传:将资源上传给总库。
4.3.5 数据管理
数据管理由目录管理、资源采集、资源审核、信息发布、数据更新、数据清除等模块组成。
(1)目录管理
该模块用于创建、删除、修改和调整资源目录架构,是组织多媒体资源的基础。
设计要求:
操作权限:目录管理由系统管理员操作。
日志管理:由系统自动记录操作情况。
功能按钮
目录创建:在当前目录项下新建子目录,子目录名必填,且不能冲突。目录删除:删除当前空目录(即该目录下无文件和子目录),删除前应提示操作者二次确认。目录修改:修改当前目录名称,新改目录名必填,且不能冲突,修改时应提示操作者二次确认。目录调整:移动(拖动)当前目录位置,其下属子目录及其资源文件应一同移动(拖动),避免遗漏,调整时应提示操作者二次确认。
(2)资源审核
设计要求
操作权限:资源审核由系统管理员操作。显示资源:可将下级上传的资源逐一显示。
日志管理:由系统自动记录操作情况。
功能按钮
删除:剔除已有或无用的多媒体资源,删除前应提示操作者二次确认。修改:补录当前资源的著录信息,特别是必著项不能为空;更正错情等。修改时应提示操作者二次确认。重复性资源可提示,不能入库。自检:提取并显示未录必著项的记录,以供修改。确认:删改结果入库。取消:放弃删改结果。
(3)数据更库
该功能模块用于在某一类型的资源主、辅表之间批量调整数据。目的是为了:优化主表资源,增强其新鲜度;扩充辅表资源,增大其包容量。从而有效地提高系统的浏览和检索速率。
设计要求
操作权限:数据备份由系统超级管理员操作。差集存储:凡移入辅表的数据,必须从主表删除;反之同理。时限驱动:根据更库周期的约定值(如:以录入日期超过两年为时限),自动提取逾期的资源以供筛选和更库。留库锁定:当某一资源被标有留库锁定标记时,该记录即不参与更库。日志管理:由系统自动记录操作情况。
(4)数据清除
该模块能实现批量删除符合既定条件的数据。对于删除数据的条件可以通过多媒体资源数据的各种字段进行组合。对于数据所属媒体类型也可以自由选择,可以单选也可以多选或全选。能够实现不但删除数据库记录级的数据,也能删除服务器端相应的多媒体资源数据。
设计要求
操作权限:数据备份由系统超级管理员操作。提示要求:数据恢复前必须提示操作者二次确认,以保障数据库安全。日志管理:由系统自动记录操作情况。
4.3.7 系统管理
系统管理由代码维护、系统设置、权限管理、日志管理等功能模块组成。
(1)权限管理模块
该模块用于录入、删除、修改、审核、设定用户权限。
设计思想: 操作权限共分为2个级别:系统管理员:可操作系统全部功能,注册用户:登陆,上传,下载,观看影片,发表评论,登陆用户的个人信息修改。
详细设计
操作权限:权限管理由系统管理员操作。
(2)日志管理
设计思想:操作权限:日志管理由系统管理员操作。显示方式:列表显示全部日志信息。
实现的功能
删除:删除当前日志信息,删除前应提示操作者二次确认。清除:按条件批量删除日志信息,清除前应提示操作者二次确认。对系统操作情况实施监控的日志信息包括:浏览,检索,统计,目录管理,资源采集,资源审核,信息发布,数据备份,数据恢复,数据更库,代码维护,近义词表维护,系统设置,权限管理等。
第5章 数据库设计
5.1 数据库概念
数据库[15]种数据模型组织起来并存放二级存储器中的数据集合。这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改和检索由统一软件进行管理和控制。从发展的历史看,数据库是数据管理的高级阶段,它是由文件管理系统发展起来的。
严格地说,数据库是“按照数据结构来组织、存储和管理数据的仓库”。在经济管理的日常工作中,常常需要把某些相关的数据放进这样“仓库”,并根据管理的需要进行相应的处理。例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。有了这个"数据仓库"我们就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等等。这些工作如果都能在计算机上自动进行,那我们的人事管理就可以达到极高的水平。此外,在财务管理、仓库管理、生产管理中也需要建立众多的这种"数据库",使其可以利用计算机实现财务、仓库、生产的自动化管理。
J.Martin给数据库下了一个比较完整的定义:数据库是存储在一起的相关数据的集合,这些数据是结构化的,无有害的或不必要的冗余,并为多种应用服务;数据的存储独立于使用它的程序;对数据库插入新数据,修改和检索原有数据均能按一种公用的和可控制的方式进行。当某个系统中存在结构上完全分开的若干个数据库时,则该系统包含一个“数据库集合”。
5.2 关系模型
关系数据模型[10]作的特点和功能要求,但不对DBMS[16]出具体的语法要求。对关系数据库的操作是高度非过程化的,用户不需要指出特殊的存取路径,路径的选择由DBMS的优化机制来完成。Codd在70年代初期的范文论述了范式理论和衡量关系系统的12条标准,用数学理论奠定了关系数据库的基础。Codd博士也以其对关系数据库的卓越贡献获得了1983年ACM图灵奖。
关系数据模型是以集合论中的关系概念为基础发展起来的。关系模型中无论是实体还是实体间的联系均由单一的结构类型——关系来表示。在实际的关系数据库中的关系也称表。一个关系数据库就是由若干个表组成。关系模式是对关系的描述。
关系实际上就是关系模式在某一时刻的状态或内容。也就是说,关系模式是型,关系是它的值。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。但在实际当中,常常把关系模式和关系统称为关系,读者可以从上下文中加以区别。
5.3 数据库模型及结构设计
根据用户需求,可以列出以下数据表结构:
用户表:用户ID,多媒体ID,用户名,真实姓名,籍贯ID,职位ID,角色ID,用户密码,用户邮箱,注册时间,最近登录时间,用户状态,用户积分。
媒体表:媒体ID,用户ID,目录ID,密级ID,媒体标题,媒体扩展名,媒体关键字,媒体大小,媒体描叙,上传时间,下载次数,浏览次数,是否审核,评论ID。
职位表:职位ID,职位名称。
目录表:目录ID,父目录ID,目录名称,目录描述。
日志表:日志ID,用户ID,操作内容,操作时间。
省份表:省份ID,省份名称。
权限表:权限ID,权限名称,权限描述。
新闻表:新闻ID,新闻内容,发布时间,用户ID
权限角色相关表:ID,权限ID,角色ID
密级表:密级ID,密集名称,密集描述。
角色表:角色ID,角色名称,角色描述。
言论表:言论ID,言论内容,用户ID,言论时间。
5.4 数据库功能设计——存储过程
本系统为规范数据,增强数据完整和安全性,并给客户端提供最佳的数据存取方案,所有的数据操作都通过存储过程进行。
5.4.1 存储过程
SQL语句执行的时候要先编译,然后执行。存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。
(1)存储过程介绍
存储过程是由流控制和SQL语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,应用程序使用时只要调用即可。在ORACLE中,若干个有联系的过程可以组合在一起构成程序包。
存储过程是利用SQL Server所提供的Tranact-SQL语言所编写的程序。Tranact-SQL语言是SQL Server提供专为设计数据库应用程序的语言,它是应用程序和SQL Server数据库间的主要程序式设计界面。它好比Oracle数据库系统中的Pro-SQL和Informix的数据库系统能够中的Informix- 4GL语言一样。
(2)使用存储过程有以下的优点:
存储过程的能力大大增强了SQL语言的功能和灵活性。存储过程可以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的 运算。
可保证数据的安全性和完整性。
通过存储过程可以使没有权限的用户在控制之下间接地存取数据库,从而保证数据的安全。
通过存储过程可以使相关的动作在一起发生,从而可以维护数据库的完整性。
在运行存储过程前,数据库已对其进行了语法和句法分析,并给出了优化执行方案。这种已经编译好的过程可极大地改善SQL语句的性能。由于执行SQL语句的大部分工作已经完成,所以存储过程能以极快的速度执行。
可以降低网络的通信量。
使体现企业规则的运算程序放入数据库服务器中,以便集中控制。
当企业规则发生变化时在服务器中改变存储过程即可,无须修改任何应用程序。企业规则的特点是要经常变化,如果把体现企业规则的运算程序放入应用程序中,则当企业规则发生变化时,就需要修改应用程序工作量非常之大(修改、发行和安装应用程序)。如果把体现企业规则的运算放入存储过程中,则当企业规则发生变化时,只要修改存储过程就可以了,应用程序无须任何变化。
5.4.2 系统存储过程规范及设计
系统所有存储过程设计遵循一定规范。
(1)命名规范
系统存储过程都分为“pro_XXX”系列,pro是表示数据库的存储过程,后面用下划线分隔,后面跟随的是操作内容。这种命名形式很容易识别与理解。
(2)输出规范
对于系统存储过程的输出规范是,不需要的数据(行或列)绝不输出,需要输入的数据,一行(一列)都不能少。这样即保证了数据的简洁性,又保证了数据的完整性。
(3)输入规范
对于系统存储过程参数的输入,能方便用户操作的都已经设置了最常用的默认值,很多存储过程都不需要输入任何参数就能得到想要的结果。
(4)以下是系统参数默认值设计规范:
默认为getdate()(当前时间),所有的时间以服务器时间为准。
第6章 系统详细设计
详细设计[7]的主要任务是设计每个模块的实现算法、所需的局部数据结构。详细设计的目标有两个:实现模块功能的算法要逻辑上正确和算法描述要简明易懂。
主要任务:
1.为每个模块确定采用的算法,选择某种适当的工具表达算法的过程,写出模块的详细过程性描述;
2.确定每一模块使用的数据结构;
3.确定模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其它模块的接口,以及模块输入数据、输出数据及局部数据的全部细节。在详细设计结束时,应该把上述结果写入详细设计说明书,并且通过复审形成正式文档。交付给下一阶段(编码阶段)的工作依据。
4.要为每一个模块设计出一组测试用例,以便在编码阶段对模块代码(即程序)进行预定的测试,模块的测试用例是软件测试计划的重要组成部分,通常应包括输入数据,期望输出等内容。
6.1 系统全局流程模
下面将结合概要设计中的各个模块,采用数据流程图(Flow Charts)来更具体地实现系统所有功能。
图6.1系统全局流程图
下面将会分解出各个模块的操作流程图。
6.2 登录系统
系统正常登录后,就可以进行查看积分,上传电影等一系列的操作,如果没有账号就可以通过注册一个用户。
以下是用户登录界面。
图 6.2 系统登录窗体
图 6.3 系统注册窗体
登录是一个比较复杂的过程,在用户登录时需要验证用户名并获取用户各项信息,要防止SQL注入,然后还需要进行MD5密码加密,验证完之后还要在本地用户登录日志数据库中记录员工登录信息,并且进入用户信息中心,在此目录中生成用户数据文件,再接着还需要将当前登录用户信息存储在特定的对象中,然后在服务器记录用户登录日志。整个都是一系列连贯而复杂的过程。
登录时还提供网络测试/配置功能,如果登录出现故障可以测试网络或重新配置服务器连接信息。注册的时候要验证,防止表单重复验证。
6.3 首页界面
图6.4主程序界面
主程序界面中集成了几乎所有的操作,用户按业务类型在菜单栏里选择操作。
另外,不同级别的用户只能进行相应的操作,该用户不能进行的操作将会不显示,显示为不可操作状态,或者在操作时会提示权限不够,这也是保障系统安全的一种重要方式。
其次,在界面设计上使用了大量的图标和插件flash和real,并且前台界面主要采用的风格为迅雷看看里css,让人感觉清新自然,给人赏心悦目很轻松的感觉这是考虑到用户整日面对的是电脑,故特意在本系统的动感上进行了设计,加入了flash;系统整个界面漂亮美观,功能齐全,满足用户需求。
6.4 普通用户登录信息管理
在本节的详细设计中,只介绍普通用户信息管理,因为普通用户管理相对简单,而且操作简单,使用统一的方式进行操作,所以无论是用户界面还是程序代码操作都非常简单,这样也在很大程度上增加了系统的简洁性和方便性。
以下是普通用户登录后界面,可以查看登录用户的全部信息:
图6.5 用户信息中心
该界面包含了登录用户信息的操作,而且在窗口顶部可以进行其他的操作。
下面是进行密码修改:
图6.6用户密码修改
有时候用户信息会发生变化,为了方便用户修改,该用户登录信息的修改:
网络多媒体资源管理信息系统的开发(二)相关范文