软件工程详细设计.docx
《软件工程详细设计.docx》由会员分享,可在线阅读,更多相关《软件工程详细设计.docx(13页珍藏版)》请在冰豆网上搜索。
软件工程详细设计
软件工程详细设计
项目名称:
视频网站
指导教师:
组员:
日期:
2015年4月12日
1.1在线视频简介
在线视频,英文简称OnlineVideo,指的是在INTERNET中按照用户的喜好随意的播放视频。
ONLINEVIDEO有很广泛的含义,包含了娱乐、教育、商业等领域的多种应用,如影片点播(MovieOnDemand)、热点新闻点播(Hot-NewsOnDemand)、交互视频游戏(InteractiveVideoGames)和远程教学(LongDistanceLearning)等。
在线视频是一种受用户控制的视频分配业务,它使得用户可以交互的访问远端服务器所存储的丰富节目源。
它的实质是信息的使用者根据自己的需要主动获得多媒体信息。
在线视频与传统电视有本质不同,主要体现在以下两个方面:
首先,在线视频具有交互性,用户可根据个人需求选择视频节目,并指定该节目的起始时间,从这一点来说,在线视频也可以称为交互式在线视频;而传统电视是按事先安排好的程序播放节目,用户在选择和观看节目方面是被动的,只有频道选择权,没有播放控制权,更不能对视频进行交互式操作。
其次,ONLINEVIDEO系统中的信号是数字化的,而传统电视中的信号是模拟的。
1.2市场需求及项目可行性研究
1.2.1市场需求分析
目前具有ONLINEVIDEO功能的网站很多,如国内比较出名的土豆网、优酷网、XX视频等等。
随着流媒体技术和宽带网络的发展,网民对网络信息表达方式要求的提高,视频技术被越来越多的各类网站所采用。
新浪、搜狐等大型综合门户网站大规模采集、发布视频信息,土豆网、优酷网等专业的视频分享网站快速崛起,与此同时,新闻网站对视频技术也越来越重视,对视频技术加大投入并进行开发和使用。
由此可见,中国的视频网站领域正在以跨越式的方式向前推进,此项技术在将来的应用必将俞加广泛,因此开发本系统不论是从专业技术方面来讲,还是市场前景来看都有着深远的意义。
1.2.2项目可行性研究
可行性是指软件所能带来的经济效益与开发设计所需要的投资相比,是否相适宜,同时还要看此软件能否真正给用户带来足够的经济效益,我们开发的这套系统正是考虑系统开发的成本而设计。
本系统的开发在经济上是完全可行的,此软件不需要大量的经费,而且是个人独立设计,可以节省许多费用,同时也可提高个人的实际动手能力;从技术可行性分析,在线视频网站在国外已经运用达十年之久,各项技术已经非常成熟。
综合以上技术特点,为了降低成本,我们采用PC服务器作为视频服务器,而且PC服务器的性能还在不断提高,支持的并发流数也在增加。
为了解决多并发流数,我们采用多台PC服务器以集群的形式,通过控制网关完成服务器之间的协调,提高系统的利用率。
控制网关以及集群服务器技术是我们的技术增值点。
另外,由于采用集群形式,我们不要求PC服务器实现最大流数,可以采用低档PC服务器和IDE硬盘,这样又可以提高单台视频服务器的性能价格比。
经过我们预研和测试,服务器的瓶颈不在CPU,这样可以用低档CPU和主板。
采用IDERAID卡和7200转IDE硬盘的服务器仍可支持三、四十个并发流。
控制网关的技术经过前期的预研也是可行的。
系统的整个方案都是我们自行开发并在通用的软硬件平台上运行,具有较强的灵活性。
2系统开发工具及平台介绍
2.1Browser/Server三层结构
选择合适的系统体系架构是一项影响整个应用系统设计的关键工作。
架构设计主要完成定义和说明包(子系统),以及包与包之间的依赖关系与通信机制。
B/S模式的三层结构是一种简单、成熟,并得到普遍应用的应用程序架构,它将应用程序结构划为分三个相对独立层,包括用户表示层、业务逻辑层和数据访问层。
每一层只实现该相对独立层内的功能,而当任何一层发生变化时,只要保持层间接口关系不变,则其它各层都不会受到影响。
(1).用户表示层
用户表示层也叫用户界面层,封装人机界面的所有表单和组件,是应用系统与系统用户之间的直接接口。
主要用于显示由业务逻辑层动态传送过来的数据信息,结合使用相应的HTML标记和样式表定义来实现;或者提供给用户录入数据信息并通过简单的校验后,经由数据接口传送给业务逻辑层。
(2).业务逻辑层
业务逻辑层主要完成对应用系统相关业务规则和逻辑的封装,在为用户表示层访问提供功能调用的同时,它又通过调用数据访问层所提供的功能来访问数据库。
业务逻辑层主要根据系统设计的需要,通过构建系统的关键对象类,实现系统的大部分逻辑控制功能。
(3).数据访问层
数据访问层只能被业务逻辑层访问,并且系统只通过它访问数据库来获取数据。
当数据访问层根据业务逻辑层的要求与数据库进行交互时,主要完成从数据库中提取数据库记录的查询和插入、修改与删除数据库记录的更新数据功能。
众所周知,数据库访问是动态信息管理应用系统中最频繁、最消耗资源的操作,所以必须优化对数据库的访问策略,以提高系统的性能和可靠性。
B/S模式的三层结构是一种严格的分层定义,它首先将应用系统复杂的开发工作进行划分相对简单的小分块,然后在每一层中只实现系统相应层的功能设计,层间的交互由相邻层对应的功能模块进行调用,信息传递只由接口进行传送。
其三层结构示意图如图1所示:
图1B/S三层结构示意图
2.2ASP.NET技术简介
ASP.NET不仅仅是下一版本的ActiveServerPages(ASP),它是统一的Web开发乎台,用来提供开发人员生成企业级Web应用程序所需的服务。
ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,用于生成更安全、可伸缩和稳定的应用程序。
可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强该ASP应用程序的功能,ASP.NET可以无缝的与HTML编辑器和其他编程工具一起工作。
当创建ASP.NET应用程序时,开发人员可以选择使用Web窗体或XMLWeb服务,或以自己认为合适的方式进行融合。
每个功能都能得到同一结构的支持,能够使用多种身份验证方案,缓存经常使用的数据,或者对应用程序的配置进行自定义。
接受客户端的数据请求:
在用户进行查询时,当用户在客户端浏览器输入请求数据(如查询条件),然后进行提交时,用户的请求数据以HTTP请求字符串形式被发送回Web服务器。
在ASP.NET中,服务器端的Request对象负责处理请求字符串。
处理查询条件:
对于用户的输入的查询条件,通过Request对象处理请求字符串的数据后,可根据得到的数据,综合处理并生成相应的SQL查询字符串。
其方法与常规的定义方法相同。
连接数据库进行数据操作并得到相应记录:
在ASP.NET中,对数据的访问主要是通过ADO.NET对象来实现的。
对ASP.NET访问处理过程主要分为两个步骤:
建立对数据库的连接和通过连接进行数据操作得到记录数据集。
将记录生成结果页面:
DataSet对象作为标准的记录数据集,支持标准的记录处理方法,比如求记录总数、得到记录字段值等.在得到查询记录后,通过这些方法可以将查询结果生成页面。
结果页面的生成与提交:
将查询结果写入结果页面后,Web服务器自动将页面发送回客户端浏览器。
同时,为了释放系统资源,应将创建的DataSet和Connection对象关闭并释放。
2.3C#语言介绍
C#是由Microsoft公司开发的一种新型程序设计语言。
由于它是从C和C++中派生出来的,因此具有C++的功能。
同时,它又像VisualBasic一样简单。
C#代表着程序设计语言演变的一个新阶段,它继承了C++和Java这两种世界上最重要的计算机语言的优点,并且还增加了指代、索引等创新性特点,同时,C#语言利用了.NET作为其强大的平台,使得它在Windows图形用户界面、ASP.NETWeb应用、XMLWebService及ADO.NET数据库等方面有广泛的应用。
程序设计语言C#的特点:
1.与Web的紧密结合
C#程序能方便的与Web程序进行集成。
利用ASP.NET的强大功能,C#能与Web标准,如HTML和XML相结合。
C#还能方便地开发Web服务。
紧密地结合SOAP(SimpleObjectAccessProtocol),使得C#开发大规模深层次的分布式应用成为可能。
2.安全稳定
C#特有的机制是其安全性的保障,同时它去除了C++中易造成错误的指针,增加了自动内存管理等措施,保证了C#程序运行的可靠性。
内存管理中的垃圾收集机制减轻了开发人员对内存管理的负担。
.NET平台提供的垃圾收集器(GarbageCollection,GC)将负责资源的释放与对象撤销时的内存清理工作。
同时,变量的初始化、类型检查、溢出检查等功能也充分保证了C#程序的安全稳定。
3.具有丰富的类库
C#提供了大量的类,以满足网络化、多线程、面向对象系统的需要。
①能用相应的类来实现从低级网络操作到高层网络应用。
②语言包,提供的支持包括字符串处理、多线程处理、异常处理、数学函数处理等,可以用它简单地实现C#程序的运行平台。
③实用程序包,提供的支持包括哈希表、堆栈、可变数组、时间和日期等。
④输入输出包,用统一的“流”模型来实现所有格式的输入与输出,包括文件系统、网络、输入与输出设备等。
⑤图形用户界面的功能强大,不仅能实现Windows窗口应用程序,而且可以实现Web窗体应用。
4.灵活性和兼容性
在简化C++语法的同时,C#并没有推动灵活性。
C#允许与C风格的需要传递指针型参数的应用程序接口进行交互操作,动态链接库的任何入口点都可以在程序中进行访问。
C#遵守.NET的CLS,从而保证了C#组件与其他语言(如VisualBasicVisualC++,Jscript,J#等)的组件间的互操作性。
5.支持多线程
C#中定义了一些用于建立、管理多线程的类和方法,使得开发具有多线程功能的程序变得简单、容易和有效。
2.4SQLserver2005简介
SQLServer2005是Microsoft公司开发的大型关系数据库管理系统,具有强大的关系数据库创建、开发、设计和管理功能。
SQLServer2005将数据库与Internet紧密连接,可以通过Web浏览器显示数据的操作,具有客户机/服务器的结构。
SQLServer2005提供了对分布式事务处理的支持,并对开发工具具有良好的支持,为大型数据库项目提供了企业级解决方案。
SQLServer2005也提供了很多个新特性来节省精力、时间和金钱。
从编程到管理能力,这个版本的SQLServer都优于其他版本的产品,并且它还对SQLServer2000中已经存在的特性进行了加强。
在系统开发中具有很强的优势:
(1).NET框架主机:
使用SQLServer2005,开发人员通过使用相似的语言,例如微软的VisualC#.NET和微软的VisualBasic,将能够创立数据库对象。
开发人员还将能够建立两个新的对象——用户定义的类和集合。
(2)XML技术:
在使用本地网络和互联网的情况下,在不同应用软件之间散步数据的时候,可扩展标记语言(XML)是一个重要的标准。
SQLServer2005将会自身支持存储和查询可扩展标记语言文件。
(3)ADO.NET2.0版本:
从对SQL类的新的支持,到多活动结果集(MARS),SQLServer2005中的ADO.NET将推动数据集的存取和操纵,实现更大的可升级性和灵活性。
(4)增强的安全性:
SQLServer2005中的新安全模式将用户和对象分开,提供fine-grainaccess存取、并允许对数据存取进行更大的控制。
另外,所有系统表格将作为视图得到实施,对数据库系统对象进行了更大程度的控制。
(5)Transact-SQ