软件技术前沿技术报告

上传人:小*** 文档编号:108059774 上传时间:2022-06-15 格式:DOCX 页数:17 大小:40.15KB
返回 下载 相关 举报
软件技术前沿技术报告_第1页
第1页 / 共17页
软件技术前沿技术报告_第2页
第2页 / 共17页
软件技术前沿技术报告_第3页
第3页 / 共17页
点击查看更多>>
资源描述
摘要本学期我学习了技术前沿这门课程,收获很多,给我们讲课的讲师是微店的高级工程师,他们对软件前沿技术有很深的造诣和理解,再此感谢微店讲师对我们细心的授课,感谢郭老师不辞辛苦的为我们负责。以下是我个人对这门课程所学到知识的理解。文章起初阐述了前沿技术这门课程的体系结构及授课内容,然后分别阐述了java语言程序设计基础,需求分析、系统分析的重要性,SpringMVC框架+Mybatis数据库技术,以及分布式技术,并在最后一章进行了总结。关键字:分布式;前沿技术;MySQL;java目录第一章 java语言程序设计11.1java语法基础:11.关键字12.标示符13.常量14.变量15.数据类型16.运算符号27.语句38.函数49.数组410.对象和类411. 封装,继承,多态5第二章 需求分析、系统分析62.1需求分析62.2 系统分析8第三章 SpringMVC+mybatis技术103.1 SpringMVC框架103.2 mybatis数据库10第四章 分布式12第五章 总结14第一章 java语言程序设计我们刚开始学习的是java基础、高级。我简单总结一些java的基础知识:1.1 java语法基础:1.关键字其实就是某种语言赋予了特殊含义的单词。保留字:其实就是还没有赋予特殊含义,但是准备日后要使用过的单词。2.标示符其实就是在程序中自定义的名词。比如类名,变量名,函数名。包含 0-9、a-z、$、_ ; 注意: 1),数字不可以开头。 2),不可以使用关键字。3.常量是在程序中的不会变化的数据。4.变量其实就是内存中的一个存储空间,用于存储常量数据。变量的作用域: 作用域从变量定义的位置开始,到该变量所在的那对大括号结束;生命周期: 变量从定义的位置开始就在内存中活了; 变量到达它所在的作用域的时候就在内存中消失了;5.数据类型 1):基本数据类型:byte、short、int、long、float、double、char、boolean 2):引用数据类型: 数组、类、接口。级别从低到高为:byte,char,short(这三个平级)-int-float-long-double自动类型转换:从低级别到高级别,系统自动转的;强制类型转换:什么情况下使用?把一个高级别的数赋给一个别该数的级别低的变量;6.运算符号 1)、算术运算符。 + - * / % %:任何整数模2不是0就是1,所以只要改变被模数就可以实现开关运算。 +:连接符。 +,- 2)、赋值运算符。 = += -= *= /= %= 3)、比较运算符。 特点:该运算符的特点是:运算完的结果,要么是true,要么是false。 4)、逻辑运算符。 & | ! & | 逻辑运算符除了 ! 外都是用于连接两个boolean类型表达式。 &: 只有两边都为true结果是true。否则就是false。 |:只要两边都为false结果是false,否则就是true :异或:和或有点不一样。 两边结果一样,就为false。 两边结果不一样,就为true. & 和 &区别: & :无论左边结果是什么,右边都参与运算。&:短路与,如果左边为false,那么右边不参数与运算| 和| 区别:|:两边都运|:短路或,如果左边为true,那么右边不参与运算。 5)、位运算符:用于操作二进制位的运算符。 & | (无符号右移)7.语句 If switch do while while for 这些语句什么时候用? 1)、当判断固定个数的值的时候,可以使用if,也可以使用switch。 但是建议使用switch,效率相对较高switch(变量) case 值:要执行的语句;break; default:要执行的语句; 工作原理:用小括号中的变量的值依次和case后面的值进行对比,和哪个case后面的值相同了就执行哪个case后面的语句,如果没有相同的则执行default后面的语句:break是可以省略的,如果省略了就一直执行到遇到break为止;:switch 后面的小括号中的变量应该是byte,char,short,int四种类型中的一种;:default可以写在switch结构中的任意位置;如果将default语句放在了第一行,则不管expression与case中的value是否匹配,程序会从default开始执行直到第一个break出现。 2)、当判断数据范围,获取判断运算结果boolean类型时,需要使用if。 3)、当某些语句需要执行很多次时,就用循环结构。 while和for可以进行互换。 区别在于:如果需要定义变量控制循环次数。建议使用for。因为for循环完毕,变量在内存中释放。break:作用于switch ,和循环语句,用于跳出,或者称为结束。break语句单独存在时,下面不要定义其他语句,因为执行不到,编译会失败。当循环嵌套时,break只跳出当前所在循环。要跳出嵌套中的外部循环,只要给循环起名字即可,这个名字称之为标号。continue:只作用于循环结构,继续循环用的。作用:结束本次循环,继续下次循环。该语句单独存在时,下面不可以定义语句,执行不到。8.函数为了提高代码的复用性,可以将其定义成一个单独的功能,该功能的体现就是java中的函数。函数就是体现之一。java中的函数的定义格式:修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数1,) 执行语句 return 返回值; 当函数没有具体的返回值时,返回的返回值类型用void关键字表示。如果函数的返回值类型是void时,return语句可以省略不写的,系统会帮你自动加上。return的作用:结束函数。结束功能。9.数组用于存储同一类型数据的一个容器。好处:可以对该容器中的数据进行编号,从0开始。数组用于封装数据,就是一个具体的实体。如何在java中表现一个数组呢?两种表现形式。1)、元素类型 变量名 = new 元素类型元素的个数;2)、元素类型 变量名 = 元素1,元素2.;元素类型 变量名 = new 元素类型元素1,元素2.;10.对象和类所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念。类是具备某些共同特征的实体的集合,它是一种抽象的概念,用程序设计的语言来说,类是一种抽象的数据类型,它是对所具有相同特征实体的抽象。类与对象的关系:类是对象的集合,对象是类的实例;对象是通过new className产生的,用来调用类的方法;类的构造方法 。11. 封装,继承,多态封装,继承,多态,这是JAVA面向对象编程的三大特性了。1。封装:是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是类的特征之一,应该很好理解,像一些私有的,别的类不可以访问了啊,都有访问权限的,比较安全了。2。继承:指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。继承有三种方式,实现继承、接口继承和可视继承。3。多态:简单的说就是,允许将子类类型的指针赋值给父类类型的指针。实现多态,有二种方式,方法覆盖,方法重载。15第二章 需求分析、系统分析在完成项目之前要学会需求分析、系统分析。2.1需求分析软件需求的定义:(1)用户解决问题或达到目标所需的条件或能力。(2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力。(3)一种反映上面(1)或(2)所描述的条件或权能的文档说明。 实通俗的讲,“需求”就是用户的需要,它包括用户要解决的问题、达到的目标、以及实现这些目标所需要的条件,它是一个程序或系统开发工作的说明,表现形式一般为文档形式。需求工程的定义:需求分析的过程,也叫做需求工程和需求阶段,它包括了需求开发和需求管理两个部分。需求开发是指从情况收集、分析和评价到编写文档、评审等一系列产生需求的活动,分为四个阶段:情况获取、分析、制订规格说明和评审。这四个阶段不一定是遵循线性顺序的,他们的活动是相互独立和反复的。需求管理是软件项目开发过程中控制和维持需求约定的活动,它包括:变更控制、版本控制、需求跟踪、需求状态跟踪等工作。需求开发与管理的一些方法:(1)绘制关联图:绘制系统关联图是用于定义系统与系统外部实体间的界限和接口的简单模型。(2)可行性分析:在允许的成本、性能要求下,分析每项需求实施的可行性,提出需求实现相关风险,包括与其它需求的冲突,对外界因素的依赖和技术障碍。(4)系统原型:当用户自身对有的需求不十分清楚时,我们可以建立一个系统原型,用户通过评价原型更好地理解所要解决的问题。(5)图形分析模型:绘制图形分析模型是编制软件需求规格说明重要手段。它们能帮助分析人员理清数据、业务模式、工作流程以及他们之间的关系,找出遗漏、冗余和不一致的需求。这样的模型包括数据流图、实体关系图、状态变换图、对话框图、对象类及交互作用图。(6)数据字典:数据字典是对系统用到的所有数据项和结构的定义,以确保开发人员使用统一的数据定义。在需求阶段,数据字典至少应定义客户数据项,确保客户与开发小组是使用一致的定义和术语。需求管理的方法主要包括以下一些方面:1)确定需求变更控制过程。制定一个选择、分析和决策需求变更的过程,所有的需求变更都需遵循此过程。2)进行需求变更影响分析。评估每项需求变更,以确定它对项目计划安排和其它需求的影响,明确与变更相关的任务并评估完成这些任务需要的工作量。通过这些分析将有助于需求变更控制部门做出更好的决策。3)建立需求基准版本和需求控制版本文档。确定需求基准,这是项目各方对需求达成一致认识时刻的一个快照,之后的需求变更遵循变更控制过程即可。每个版本的需求规格说明都必须是独立说明,以避免将底稿和基准或新旧版本相混淆。4)维护需求变更的历史记录。将需求变更情况写成文档,记录变更日期、原因、负责人、版本号等内容,及时通知到项目开发所涉及的人员。为了尽量减少困惑、冲突、误传,应指定专人来负责更新需求。5)跟踪每项需求的状态。可以把每一项需求的状态属性(如已推荐的,已通过的,已实施的,或已验证的)保存在数据库中,这样可以在任何时候得到每个状态类的需求数量。6)衡量需求稳定性。可以定期把需求数量和需求变更(添加、修改、删除)数量进行比较。过多的需求变更是一个报警信号,意味着问题并未真正弄清楚。4.需求分析评价标准(1)清晰:目前大多数的需求分析采用的仍然是自然语言,自然语言对需求分析最大的弊病就是它的二义性,所以开发人员需要对需求分析中采用的语言做某些限制。例如尽量采用主语动作的简单表达方式。需求分析中的描述一定要简单,千万不要采用疑问句、修饰这些复杂的表达方式。 除了语言的二义性之外,注意不要使用行话,就是计算机术语。需求分析最重要的是和用户沟通,可是用户多半不是计算机的专业人士,如果在需求分析中使用了行话,就会造成用户理解上的困难。(2)完整:需求的完整性是非常重要的,如果有遗漏需求,则不得不返工,在软件开发过程中,最糟糕的事情莫过于在软件开发接近完成时发现遗漏了一项需求。但实际情况是,需求的遗漏是常发生的事情,这不仅仅是开发人员的问题,更多发生在用户那里。要做到需求的完整性是很艰难的一件事情,它涉及到需求分析过程的各个方面,贯穿整个过程,从最初的需求计划制定到最后的需求评审。(3)一致:一致性是指用户需求必须和业务需求一致,功能需求必须和用户需求一致。在需求过程中,开发人员需要把一致性关系进行细化,比如用户需求不能超出预前指定的范围。严格的遵守不同层次间的一致性关系,就可以保证最后开发出来的软件系统不会偏离最初的实现目标。(4)可测试:一个项目的测试从什么时候开始呢?有人说是从编码完成后开始,有人说是编码的时候同时进行单元测试,编码完成后进行系统测试,这些结论都不完全正确。实际上,测试是从需求分析过程就开始了,因为需求是测试计划的输入和参照。这就要求需求分析是可测试的,只有系统的所有需求都是可以被测试的,才能够保证软件始终围绕着用户的需要,保证软件系统是成功的。2.2 系统分析系统分析的具体步骤包括:限定问题、确定目标、调查研究收集数据、提出备选方案和评价标准、备选方案评估和提出最可行方案. 1、 限定问题所谓问题,是现实情况与计划目标或理想状态之间的差距.系统分析的核心内容有两个:其一是进行“诊断”,即找出问题是及其原因;其二是“开处方”,即提出解决问题的最可行方案.所谓限定问题,就是要明确问题的本质或特性、问题存在范围和影响程度、问题产生的时间和环境、问题的症状和原因等.限定问题是系统分析中关键的一步,因为如果“诊断”出错,以后开的“处方”就不可能对症下药.在限定问题时,要注意区别症状和问题,探讨问题原因不能先入为主,同时要判别哪些是局部问题,哪些是整体问题,问题的最后确定应该在调查研究之后. 2、确定目标系统分析目标应该根据客户的要求和对需要解决问题的理解加以确定,如有可能应尽量通过指标表示,以便进行定量分析.对不能定量描述的目标也应该尽量用文字说明清楚,以便进行定性分析和评价系统分析的成效. 3、调查研究,收集数据调查研究和收集数据应该围绕问题起因进行,一方面要验证有限定问题阶段形成的假设,另一方面要探讨产生问题的根本原因,为下一步提出解决问题的备选方案做准备. 调查研究常用的有四种方式,即阅读文件资料、访谈、观察和调查. 收集的数据和信息包括事实(facts)、见解(opinions)和态度(attitudes).要对数据和信息去伪存真,交叉核实,保证真实性和准确性.4、提出备选方案和评价标准通过深入调查研究,使真正有待解决的问题得以最终确定,使产生问题的主要原因得到明确,在此基础上就可以有针对性地提出解决问题的备选方案.备选方案是解决问题和达到咨询目标可供选择的建议或设计,应提出两种以上的备选方案,以便提供进一步评估和筛选.为了对备选方案进行评估,要根据问题的性质和客户具备的条件.提出约束条件或评价标准,供下一步应用. 5、备选方案评估根据上述约束条件或评价标准,对解决问题备选方案进行评估,评估应该是综合性的,不仅要考虑技术因素,也要考虑社会经济等因素,评估小组的成员应该有一定代表性,除咨询项目组成员外,也要吸收客户组织的代表参加.根据评估结果确定最可行方案. 6、提交最可行方案最可行方案并不一定是最佳方案,它是在约束条件之内,根据评价标准筛选出的最现实可行的方案.如果客户满意,则系统分析达到目标.如果客户不满意,则要与客户协商调整约束条件或评价标准,甚至重新限定的问题,开始新一轮系统分析,直到客户满意为止.第三章 SpringMVC+mybatis技术3.1 SpringMVC框架1. 原理 Spring MVC按植物分类学属于Martin Flower企业应用模式里的静态配置型Front Controler,使用DispatchServlet截获所有*.do的请求,按照xml文件的配置,调用对应的Command对象的 handleRequest(request,response)函数,同时进行依赖对象的注入。Controller层,就是实现handleRequest(request,response)函数的普通JavaBean。2. 优势Spring MVC与struts相比的优势:一:Controller有着从松到紧的类层次结构,用户可以选择实现只有一个HandleRequest()函数的接口,也可以使用它有很多回调函数的SimpleFormController类。二:不需要Form Bean,也不需要Tapestry那所谓面向对象的页面对象。三:不需要强XML配置文件。3.化简3.1. 直接implement Controller,实现handleRequest()函数3.2.每个Controler负责一组相关的action一个Controler负责多个action的,一个Controler一个action就像一个function一个类一样无聊。用URL参数如msg=insert把一组相关action交给一个Controler控制。3.3.xml宣告式编程的取舍 3.2 mybatis数据库 MyBatis 是一个可以自定义SQL、存储过程和高级映射的持久层框架。MyBatis 摒除了大部分的JDBC代码、手工设置参数和结果集重获。MyBatis 只使用简单的XML 和注解来配置和映射基本数据类型、Map 接口和POJO 到数据库记录。相对Hibernate和Apache OJB等“一站式”ORM解决方案而言,Mybatis 是一种“半自动化”的ORM实现。配置数据库:1.搭建Spring环境2.建立MySql数据库3.搭建MyBatis环境3.1创建实体类3.2创建数据访问接口3.3创建SQL映射语句文件3.4创建MyBatis的mapper配置文件3.5修改Spring 的配置文件4.测试StudentMapper第四章 分布式在课程中,我们学习了分布式架构,本章主要讲解的学习分布式的心得体会。分布式数据库系统通常使用较小的计算机系统,每台计算机可单独放在一个地方,每台计算机中都可能有DBMS的一份完整拷贝副本,或者部分拷贝副本,并具有自己局部的数据库,位于不同地点的许多计算机通过网络互相连接,共同组成一个完整的、全局的逻辑上集中、物理上分布的大型数据库。分布式数据库是指利用高速计算机网络将物理上分散的多个数据存储单元连接起来组成一个逻辑上统一的数据库。分布式数据库的基本思想是将原来集中式数据库中的数据分散存储到多个通过网络连接的数据存储节点上,以获取更大的存储容量和更高的并发访问量。近年来,随着数据量的高速增长,分布式数据库技术也得到了快速的发展,传统的关系型数据库开始从集中式模型向分布式架构发展,基于关系型的分布式数据库在保留了传统数据库的数据模型和基本特征下,从集中式存储走向分布式存储,从集中式计算走向分布式计算。首先,降低了数据传送代价,因为大多数的对数据库的访问操作都是针对局部数据库的,而不是对其他位置的数据库访问;其次,系统的可靠性提高了很多,因为当网络出现故障时,仍然允许对局部数据库的操作,而且一个位置的故障不影响其他位置的处理工作,只有当访问出现故障位置的数据时,在某种程度上才受影响;第三,便于系统的扩充,增加一个新的局部数据库,或在某个位置扩充一台适当的小型计算机,都很容易实现。然而有些功能要付出更高的代价。例如,为了调配在几个位置上的活动,事务管理的性能比在中心数据库时花费更高,而且甚至抵消许多其他的优点。分布式软件系统(Distributed Software Systems)是支持分布式处理的软件系统,是在由通信网络互联的多处理机体系结构上执行任务的系统。它包括分布式操作系统、分布式程序设计语言及其编译(解释)系统、分布式文件系统和分布式数据库系统等。分布式操作系统负责管理分布式处理系统资源和控制分布式程序运行。它和集中式操作系统的区别在于资源管理、进程通信和系统结构等方面。 分布式程序设计语言用于编写运行于分布式计算机系统上的分布式程序。一个分布式程序由若干个可以独立执行的程序模块组成,它们分布于一个分布式处理系统的多台计算机上被同时执行。它与集中式的程序设计语言相比有三个特点:分布性、通信性和稳健性。 分布式文件系统具有执行远程文件存取的能力,并以透明方式对分布在网络上的文件进行管理和存取。 分布式数据库系统由分布于多个计算机结点上的若干个数据库系统组成,它提供有效的存取手段来操纵这些结点上的子数据库。分布式数据库在使用上可视为一个完整的数据库,而实际上它是分布在地理分散的各个结点上。当然,分布在各个结点上的子数据库在逻辑上是相关的。分布式系统架构简单的说是运行在多个处理器上的软件构架设计。1.分布式系统是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。2.网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。内聚性是指每一个数据库分布节点高度自治,有本地的数据库管理系统。3.架构,又名软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。架构描述语言(ADL)用于描述软件的体系架构。第五章 总结首先,我非常感谢微店的讲师以及郭老师,老师对待工作的认真,对待学生的和蔼,都让我受益匪,我从中学到了很多前沿技术的知识。在此衷心的感谢老师对我的指导和帮助!在学习的过程中中,我内心深深地体会到这次实践课题为我们提供了与众不同的学习方法和学习机会,让我们从传统的被动授学转变为主动求学;从死记硬背的模式中脱离出来,转变为在实践中学习,增强了领悟、创新和推断的能力;掌握自学的方法,形成工程理论整体模式,使工作、学习、生活都步入系统化流程;思考方式成熟,逻辑性规范、明确。 数据库设计是一个很关键的步骤,表与表之间清晰的关系,表内部的主码设计的好坏,数据的累加数据项的添加等都是不容忽视的问题。有些可能在理论上不需要的字段,但实际应用中往往把它添上去。接下来是程序设计。根据先前的经验和用户的需求,搭好一个整体的框架。一处的修改引起另一处甚至更多处的变动。 二、 提高软件的内聚性,如果一个软件的模块只实现一个功能,那么该模块具有高内聚性。高内聚性的软件更容易维护和改进。 判断一个模块是否有高的内聚性,看一看你是否能够用一个简单的句子描述它的功能就行了。如果你用了一段话或者你需要使用类似“和”、“或”等连词,则说明你需要将该模块细化。系统测试其实和系统设计基本是同步的,在其中得到的体会、心得在前面已经提到,这里就不重复了。最后感谢在这过程中给我们提供指导的老师和提供帮助的同学,在我处于困惑时为我指点迷津,答疑解惑。
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!