韩旭大型软件项目实训报告DOC.docx
《韩旭大型软件项目实训报告DOC.docx》由会员分享,可在线阅读,更多相关《韩旭大型软件项目实训报告DOC.docx(38页珍藏版)》请在冰豆网上搜索。
韩旭大型软件项目实训报告DOC
辽宁工程技术大学
大型软件项目实训报告
教学单位软件学院
专业软件工程
班级
学生姓名
学号
指导教师
一、实训目的
为了将大学和培训中心所学的东西应用到实际开发和项目应用中。
提高自己的专业技能、编码能力、问题解决能力。
了解所做项目某一模块和这一模块跟其他模块的功能、流程。
使用JSP,Spring应用框架和Oracle10g数据库技术进行对国内项目开发,在开发过程中使用SVN进行代码同意管理和统一。
最后通过公司测试库进行测试,最后将项目上线。
完成整个软件项目开发周期,在项目开发各实施阶段严格进行评审,以保证项目质量。
二、实训时间和地点
1.实训时间:
2013年12月9日~2014年1月17日
2.实训地点:
大连华信计算机技术股份有限公司
三、实训单位简介
大连华信计算机技术股份有限公司是一家面向全球客户提供领先的应用软件产品、信息服务及行业解决方案的供应商。
经过多年的发展,大连华信已经成长为一家以软件技术为核心,提供从软件设计、开发、测试、实施到后期的培训、维护服务和业务咨询全面解决方案的提供商。
大连华信的软件技术和信息服务应用于电信、电力、公共、金融、保险、交通、物流、传媒、制造业等多个行业,帮助国内外400多家客户改善工作质量,有效提升客户价值。
作为国内较早进入日本市场的软件企业之一,大连华信在对日软件外包服务业务领域取得了长足的发展,并与众多日本知名企业建立了良好的合作关系。
强大的技术实力、科学的管理机制带来了丰硕的成果。
国内市场,大连华信作为行业解决方案的提供商,在电信、保险、政府、ERP等领域有着丰富的经验,成功案例遍布全国270多个城市。
2002年,在全国软件出口排行榜中,大连华信荣登榜首,2003年,大连华信又凭借软件出口的雄厚实力荣膺“2003年最具竞争力的中国软件企业”称号,2004年入围中国软件产业最大规模前100家企业。
2013年软件开发营业额达到7亿多元人民币,规模达到6000人,是中国最大IT外包商之一。
作为中国软件行业的新领军者,大连华信是国家规划布局内重点软件企业、中国软件产业最大规模前100家企业,技术水平居于国内同行业领先地位,具有国家计算机信息系统集成一级资质,并获得了ISO9001:
2008、CMM5级、ISO27001:
2005、ISO14001:
2004、PIPA(个人信息保护合格证书,与日本的P-MARK互认)等资质认证。
在技术竞争日益激烈的今天,立足国内和日本市场,拓展欧美市场是大连华信国际化的发展战略。
大连华信将继续提高整体核心竞争力,实现可持续增长,
成为国内最优秀的应用系统服务提供商、系统集成服务提供商和软件外包服务提供商。
四、实训内容
4.1实训期间完成的学习任务
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE,JavaEE,JavaME)的总称。
Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学级超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
后来Sun公司被甲骨文公司并购,Java也随之成为甲骨文公司的产品。
Java是一种软件技术是一种由美国SUN计算机公司所研究而成的语言是一种为Internet发展的计算机语言是一种使网页产生生动活泼画面的语言是一种使网页由静态(Static)转变为动态(Dynamic)的语言是一种语言,用以产生「小应用程序」是一种简化的C++语言是一种安全的语言,具有阻绝计算机病毒传输的功能是一种将安全性列为第一优先考虑的语言是一种使用者不需花费很多时间学习的语言是一种突破用户端机器环境和CPU结构的语言是一种写一次,即可在任何机器上执行的语言是有史以来,第一套允使用者将应用程序通过Internet从远端的服务器传输到本地端的机器上并执行。
ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。
比如SilverStream就是基于数据库的一种中间件。
ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产
品;作为分布式数据库它实现了分布式处理功能。
但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。
主要功能特点首先完整的数据管理功能:
数据的大量性、数据的保存的持久性、数据的共享性、数据的可靠性。
完备关系的产品:
信息准则---关系型DBMS的所有信息都应在逻辑上用一种方法,即表中的值显式地表示;保证访问的准则;视图更新准则---只要形成视图的表中的数据变化了,相应的视图中的数据同时变化;数据物理性和逻辑性独立准则。
分布式处理功能:
ORACLE数据库自第5版起就提供了分布式处理能力,到第7版就有比较完善的分布式数据库功能了,一个ORACLE分布式数据库由oraclerdbms、sql*Net、SQL*CONNECT
和其他非ORACLE的关系型产品构成。
JavaWeb,是用Java技术来解决相关web互联网领域的技术总和。
web包括:
web服务器和web客户端两部分。
Java在客户端的应用有javaapplet不过现在使用的很少,Java在服务器端的应用非常的丰富,比如Servlet,JSP和第三方框架等等。
Java技术对Web领域的发展注入了强大的动力。
JavaEE标准,这意味着有很大的市场需求和更多的工作机会,上手快速并且相对容易,有大量可用的组件库。
对覆盖绑定(overridingbinding)、验证(validation)等提供生命周期管理。
与许多表示层技术/框架无缝集成:
JSP/JSTL、Tiles、Velocity、FreeMarker、Excel、XSL、PDF等。
便于测试归功于IoC不需要书写XML配置文件,良好的学习文档。
架构简单易于扩展,标记库很容易利用FreeMarker或者Velocity来定制,基于控制器或者基于页面的导航。
一旦学会它,将极大地提高生产率。
HTML模板对页面设计师非常有利每出一个新版本,都会有大量的创新。
对Java开发者有利,页面和显示绑定紧密。
JavaWeb其实就是一个技术的总和,把Web看成一个容器而已主要使用JavaEE技术来实现.在加上各种中间件(SSH等)JavaWeb其实做什么都可以,你可以通过JavaWeb制作一个软件,一个ERP,一个网页,甚至是一个网络游戏都可以。
没有特定的范畴。
在加上Java的可移植性,现在普遍用于各种ERP,大型交互式网站的开发。
Struts最早是作为ApacheJakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JavaServerPages、Servlet、标签库以及面向对象的技术水准。
Struts这个名字来源于在建
筑和旧式飞机中使用的支持金属架。
这个框架之所以叫"Struts",是为了提醒我们记住那些支撑我们房屋,建筑,桥梁,甚至我们踩高跷时候的基础支撑。
这也是一个解释Struts在开发Web应用程序中所扮演的角色的精彩描述。
当建立一个物理建筑时,建筑工程师使用支柱为建筑的每一层提供支持。
同样,软件工程师使用Struts为业务应用的每一层提供支持。
它的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。
我们仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。
如果想混合使用Servlets和JSP的优点来建立可扩展的应用,Struts是一个不错的选择。
早期Smalltalk程序语言便采用了MVC(Model-View-Controller)模式(Patterns)以增加程序代码弹性,MVC模式将程序代码整理切割为三部分,Model部分是业务与应用领域(Businessdomain)相关逻辑、管理状态之对象,Controller部分接收来自View所输入的资料并与Model部分互动,
是业务流程控制(FlowControl)之处,View部分则负责展现资料、接收使用者输入资料。
在Java应用中,JFC/Swing、AWT、JSP皆是可用作View的技术规格,而JavaBean 与EnterpriseJavaBean规格则可用于Model程序代码,一旦应用程序以MVC模式加以适当的分割,Model部分程序代码可在不同使用者接口外观的应用程序中重复使用。
随着JSP与Servlet技术大量应用于以Web为基础的应用程序,Java开发人员群体认为应以较佳的模式以提升Web应用程序的可维护性与重复使用性。
早期JSP规格书中曾列举两种可行之JSP应用架构,分别为Model1与Model2。
在Model1架构中,JSP直接处理Web浏览器送来的请求(Request),并辅以JavaBean处理应用相关逻辑。
Model1架构单纯编写比较容易,但在Model1中JSP可能同时肩负View与Controller角色,两类程序代码有可能混杂而不易维护。
而Model2中将Servlet纳入架构中扮演前端Controller角色,将Web浏览器送出的请求集中送至Servlet,Servlet可集中管理使用者登入、权限控制、多国语言转换等前置处理,再视需求转向给对应的JSP处理。
Model2中采用了较佳的MVC模式,但增加了编写复杂度。
Spring是一个开源框架,它由RodJohnson创建。
它是为了解决企业应用开发的复杂性而创建的。
Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。
然而,Spring的用途不仅限于服务器端的开发。
从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
轻量——从大小与开销两方面而言Spring都是轻量的。
完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。
并且Spring所需的处理开销也是微不足道的。
此外,Spring是非侵入式的:
典型地,Spring应用中的对象不依赖于Spring的特定类。
控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。
当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。
你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。
面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。
应用对象只实现它们应该做的——完成业务逻辑——仅此而已。
它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。
容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。
然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。
框架——Spring可以将简单的组件配置、组合成为复杂的应用。
在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。
Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。
所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。
它们也为Spring中的各种模块提供了基础支持。
4.2实训期间完成的实践项目
根据整个OSS系统进行OTTTV属性页面的编辑,该页面功能为对数据的添加、修改、删除、查询。
4.2.1需求分析
随着中国加入WTO,人们已经认识到中国网络产业已翻过了历史性的一页,新一代的OSS系统建设在各运营商那里近乎默契的同时启动,标志着电信业正在由第一阶段的"资源竞争"转向到第二阶段的"业务竞争"。
国内外各电信运营商之间的竞争越来越激烈。
有些国内的电信运营企业还有一种传统的观念就是将发展的重点放在电信网络基础设施和网络的运行及管理建设上,以资源优势来应对国外资本和企业的挑战,但是我们认为在电信网络基础设施和资源方面恰恰不是竞争的焦点,竞争的焦点应是电信业务的经营和运行。
目前,中国市场的电信运营还没有完全放开,真正意义上的虚拟电信运营商还未产生,当前中国的OSS市场的需求主要以中国电信,中国移动,中国联通,中国网通,中国铁通等几家大的电信运营商为主,关于OSS的所有市场行为与市场需求都与运营商有关,中国的电信运营商成为整个OSS市场的源头。
由于中国电信市场及电信运营商的特殊情况,单独的OSS产品很难形成单独的行销趋势进入整个市场价值链,它必须集成到系统集成商为电信运营商所提供的解决方案中去。
中国的OSS系统往往由系统集成商采用项目招投标的形式与电信运营商来合作完成……您将在OSS市场参与者价值链中,找到贵公司的位置,发现您的市场机会!
宽带网建设风起云涌,下一代网络建设雾里看花,多业务多网络的融合,电信行业业已拆分,竞争格局已经改变,运营商投资更趋理性,中国加入WTO,对电信企业来说,短期弊大于利,挑战大于机遇,OSS系统建设标准尚未统一。
OSS市场份额虽大,是否有人动了你的奶酪?
OSS在中国刚刚起步,OSS在欧美电信业中已经耳熟能详,您所要的OSS模型是什么样的?
CiscoSystems,NortelNetworks,ADC,AgilentTech等这些你所熟知的全球顶尖企业在OSS全球市场中的表现如何?
成功?
失败?
一切归于你对竞争对手的详尽了解和胜算一步。
纵览全球,定位自己,构筑OSS市场的竞争优势!
据Frost&Sullivan预测,OSS项目市场在今后的几年中,会有一个比较显著的增幅,并保持一个强有力的增长势头,这主要是由于市场业务的需求不确定性使投资持续的增长。
OSS市场的主要问题只有通过更长的时间来解决。
能够易于实施、广泛接受更好的标准将是在未来几年间的市场救星。
进入目前没有明确领导者的市场的新厂商将培育竞争,创造供未来发展的更好的OSS。
我所做的是融入到OSS系统中的一种功能OTTTV。
OTT TV是“OverTheTopTV”的缩写,是指基于开放互联网的视频服务,终端可以是电视机、电脑、机顶盒、PAD、智能手机等等。
意指在网络之上提供服务,强调服务与物理网络的无关性。
通过互联网传输的视频节目,如PPS、UUSEE等平台的内容传输到显示屏幕(包括电视)上。
从消费者的角度出发,OTTTV就是互联网电视,满足消费者的需求,集成互动电视功能的全功能的互联网电视。
OTTTV(Over-The-TopTV),即以Over-The-Top方式服务的互联网电视。
如2010年在市场上推出的AppleTV及GoogleTV即是此种模式。
在国际上,OTTTV指通过公共互联网面向电视传输的IP视频和互联网应用融合的服务。
其接收终端为互联网电视一体机或机顶盒+电视机。
在我国,OTTTV是指通过公共互联网面向电视机传输的由国有广播电视机构提供视频内容的可控可管服务。
接收终端一般为国产互联网电视一体机。
目前,OTTTV主要有两种实现方式:
HTTP渐进下载(HTTPProgressiveDownload,简称HPD)和HTTP自适应流媒体(HTTPAdaptiveStreaming,简称HAS)。
传统的OTTTV一般采用HPD技术。
基于HPD的客户端在开始播放之前仅需等待一段较短的时间用于下载和缓冲媒体文件最前面的一部分数据,之后便可以一边下载一边播放。
HPDOTTTV存在诸多的局限性,例如:
不适合对实时性要求较高的直播节目的传输;初始播放的等待时延一般较长;当网络带宽不稳定时比较容易出现卡屏现象;由于客户端会持续下载视频文件,当用户中途放弃节目观看,会造成已下载文件(消耗带宽)的浪费。
为了克服HPDOTTTV技术的局限性,近年来基于HAS的OTTTV技术逐渐被业界广泛采用和推广。
HASOTTTV采用视频分片和自适应码率(ABR)技术。
在HAS系统中,媒体流分割器将编码器输出的视频流分割为一系列连续的、长度均等的小分片文件,并将它们存储在Web内容分发服务器。
HAS客户端设备可在可用的带宽的基础上,自动向Web服务器请求合适的视频质量(即不同的分辨率和码率)的分片文件,从而给用户最好的视觉体验。
为了便于HAS客户端实现不同码率分片之间的快速、实时切换,HAS视频一般采用较短的分片长度(例如10秒)。
由于HAS系统可向不同屏幕大小的终端提供适合分辨率的视频分片文件,并可在不同网络带宽情况下实现流畅的视频播放,因此HAS被业内认为是未来无所不在的多屏互动视频的核心技术。
4.2.2数据需求分析
通过组长要求得出属性的E-R图:
图4-1OTTTV的E-R图
4.2.3概要设计
4.2.3.1系统功能结构图
整个系统为重庆铁通OSS系统,共有系统管理、销账管理、统计查询、客户服务、产品管理、卡类管理、置业收费、客户管理、施工管理、渠道管理。
图4-2系统功能结构图
我所做的页面功能为OTTTV属性,此页面功能为对OTTTV_DEVICE表进行查询、修改、数据导入、删除。
功能图如下图4.3主要功能结构图
图4.3主要功能结构图
4.2.3.2模块设计
查询功能的流程图如下图
图4.4查询功能流程图
修改功能流程图如下图
图4.5修改功能流程图
删除功能流程如下图
图4.6删除功能流程图
4.2.4详细设计
系统数据库名称为cq_oss,所用到的表为otttv_device。
表4.1otttv_device表
属性
属性类型
是否标识
长度
是否为空
序号
serial
是
32
否
设备广电号
varchar(32)
否
32
否
设备序列号
varchar(32)
否
32
是
设备厂商
varchar(32)
否
32
是
设备型号
varchar(32)
否
32
是
区域
varchar(32)
否
32
是
地市
varchar(32)
否
32
否
创建时间
datetime
否
20
否
订单号\宽带账号
varchar(32)
否
32
是
状态变更时间
datetime
否
10
否
描述
varchar(32)
否
32
否
状态
varchar
(2)
否
2
否
4.2.5系统实现及编码
为了方便调试修改,系统登陆使用的公司通用账号,账号拥有所有修改代码权限。
页面为我所做的OTTTV属性页面,该页面有修改、删除、导出模板、导入数据等功能。
图4.7配置菜单页面图
主要代码:
Javascript部分:
functionreset(){
document.forms[0].SNO.value="";
document.forms[0].NUMBER.value="";
varchkArr=document.getElementsByName('NUMBER1');
varsize=chkArr.length;
for(vari=0;iif(chkArr[i].checked==true)
chkArr[i].checked=false;
}
}
functionquery(){
document.forms[0].operationType.value="query";
document.forms[0].currentPage.value="1";
document.forms[0].submit();
}
functioncreate(){
document.forms[0].operationType.value="create";
document.forms[0].submit();
}
functionedit(){
if(checkedForEDIT()){
document.forms[0].operationType.value="edit";
document.forms[0].submit();
}
}
functiondel(){
if(!
checkSelect("arrayID")){
alert("请先选择记录!
");
return;
}
if(!
statusValidate()){
alert("有效状态的记录不允许删除,请重新选择!
");
return;
}
if(confirm("是否确认删除?
")){
document.forms[0].operationType.value="delete";
document.forms[0].submit();
}
}
functioncheckedForEDIT()
{
varthe_form=document.forms[0];
varselectCount=0;
varobjLen=the_form.length;
varchkArr=document.getElementsByName('arrayID');
varsize=chkArr.length;
for(vari=0;iif(chkArr[i].checked==true&&chkArr[i].id!
="checkall")
selectCount++;
}
if(selectCount==0)
{
alert("