Java软件开发

时间:2022-06-05 12:23:10

Java软件开发

摘要:本文简要介绍了Java软件开发中抽象数据转换的算法类型,程序设计方法,软件开发生命周期、软件开发各阶段的测试以及Java的安全性。

关键词:Java;数据结构;算法;程序设计;测试

中图分类号:TP312 文献标识码:A文章编号:1007-9599(2012)02-0000-02

Java Software Development

Chen Bin

(Hangzhou Normal University,Qianjiang College,Hangzhou310000,China)

Abstract:This paper briefly describes the type of abstract data conversion algorithms in Java software development,programming methodology,software development life cycle,software development phase of the test,and Java security.

Keywords:Java;Data structures;Algorithm;Programming;Test

一、Java数据结构和算法类型

(一)Java数据结构

线性表,链表,哈希表是Java常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。线性表是最基本、最简单、也是最常用的一种数据结构,它的数据元素是一对一的,逻辑结构较简单,便于实现和操作。链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的,相比于线性表顺序结构,链表比较方便插入和删除操作,熟悉了链表结构对Java的描述也就轻而易举了。哈希表也叫散列表,是根据关键码值(Key value)而直接进行访问的数据结构。

(二)算法类型

为实现抽象数据类型的有效转换,需要利用合适的设计策略对它们进行分析,当前最常见的算法有贪婪算法、分治算法、回溯算法。

1.贪婪算法

贪婪算法的原理是所有过程都选择最容易的,它首先考虑的是当前每个步骤的最有利性,没有进行过多的考虑对于将来的影响,贪婪算法虽然比较简易,但往往不能够达到目的。如:从一个城市到另外一个城市,在每个分岔口都选择最容易走的路,如果两个城市间的路程都是由所有最容易走的路组成,那么贪婪算法是一个正确的选择,但如果两个城市之间不能够通过这些最容易走的路到达时,贪婪算法就没有起到原先的目的。

2.分治算法

分治算法的原理是将整个大问题分类为若干个小问题,然后对这些小问题进行单个的解决,使所有小问题的处理结果合成对整个大问题的解决方案,使用这种算法的前提规则是各个小问题的类型需要与大问题相一致。

3.回溯算法

回溯算法实质上就是一种试错法,在数据转换过程中如果存在多种可供选择方法时,随机挑选一种方法进行解决问题,当该种选择无法解决问题时再选择另外一种,以此类推。该种方法不适用于选择性比较多的问题,过于繁杂。

虽然当前实现抽象数据转换的算法类型有很多种,但不是每一种方法都适用,判断某种方法是否适用的主要依据是使用时的简单性,清晰性,时间和空间上的效率性等。

二、程序设计方法

(一)过程式程序设计

过程式程序设计方法就是将整个软件系统分解成多个子层次结构,这些子层次结构由多个子程序组成。它的规则是各个下层子系统为上层子系统提供服务,同时也要为同级的其他子系统提供服务,以此类推,进行逐个解决整个大问题的小方向问题。过程式程序结构的缺点是每个过程的相互依赖性过大,在有一部分出现问题时会涉及到其他的部分,不容易检测出错误,在实际操作中难以维护,容易产生意外的难题。

(二)函数式程序设计

函数式程序设计方法和过程式设计方法的相似之处是同样是将整个软件系统分解为多个子程序,但它的运作过程与过程式设计方法不同,它的各个子程序间是分层工作的,子程序之间不需要相互作用。由此,当面对大型的程序设计时,由于各子程序之间相互的联系和依赖性不强,有利于日常维护和错误检测。

(三)面对对象程序设计

面对对象程序设计方法的原理是将整个软件系统分解成一系列相互通信的对象,对这些对象都包含数据及数据操作方法,而且各个对象之间能够很好的隐藏数据,做到保密性,进而避免产生不必要的失误。而且各个对象的相互作用及影响都不大,在设计和维护中都比较容易进行,当出现内部失误时可以及时的查到问题所在。

面向对象程序在运行时,是各个对象之间相互发送信息,然后各个对象通过自身的执行方法进行响应,在操作运行过程中,各个对象不仅需要包含数据还需要数据操作的方法,发送消息的对象称作客户端,接受消息的对象称作服务器。在发送消息的过程中,客户端对象不需要了解服务器的具体内部细节,只需要对其发送特定的消息就行。

在计算机系统的世界里,是不允许程序中存在任何差错的,计算机能够精确的执行程序中各个任务,细微的错误都有可能造成巨大的灾难,所以程序设计方法的运用是至关重要的。在Java语言和其他语言对字符的描述不同,Java基本的char类型和的是十六位的无符号整数,为使Java能够支持特定语言的字符串显示,在Java的程序设计中需采用不同的程序设计方法相互辅助,当前使用最普遍的程序设计方法就是过程式程序设计,函数式程序设计和面对对象程序设计。

三、软件开发生命周期

软件开发过程一般包括用户需求、分析、设计、实现、集成、维护。

(一)用户需求。软件开发的前提是程序员需要确定用户的需求是什么,即需要明白用户对软件开发的期望是什么。

(二)分析。在分析阶段,程序员需要将各个系统的操作进行精确的描述,让用户能够清晰的了解到整个系统的过程与结果,必要时需要开发出系统原型,易于用户理解,让用户去确认是否与其期望相一致。

(三)设计。在设计阶段,需要确定每个类的变量和方法,在执行Java程序时,计算机必须保存所有用到的类的执行代码和制定的对象。当对象出现时,java会自动跟踪并对对象进行判断,判断其是否被引用。

(四)实现。根据分析和设计的结果进行编写程序,进而完成系统的实现。

(五)集成。把分散的各个部分集合到整个软件中。

(六)维护。在程序的使用年限里,需要进行定期的变更,进而实现程序更好地应用。

Java开发的生命周期与传统的生命周期有些不同,它不是在应用程序开发的时候创建对象,而是在程序的运行过程中根据需求进行建立的,在Java语言的开发中,刚开始的时候无法确定对象及生命周期时间等问题,它存在自身的动态机制,但它最大的缺陷就是会影响到应用程序的执行效率,这需要采取相应的措施进行优化。

四、测试

测试在软件开发的各个阶段都是必需的,而并不单单存在于编码阶段。对程序进行测试时,判断的依据是程序的友好性,健壮性及可靠性等因素。

(一)测试数据的设计:

1.随机测试

随机测试是对程序进行各个测试,直到程序崩溃,确定可用程序,这种方法效率不高。

2.黑箱测试

黑箱测试不是把全部的程序进行测试,而是把整体的程序进行分类,然后有组织的选择输入的数据,这种方法在实际的操作中比较简易,但是在数据比较大的情况下很容易造成忽视一些数据。

3.白箱测试

白箱测试是指在测试中尽量对程序中的所有数据都进行测试,这个测试方法因为需要对程序中的所有代码进行查看,所以这个测试方法运行比较困难,指适用于对小数据程序的测试,当前最好的测试方法是将白箱测试和黑箱测试进行结合。

(二)编码阶段的测试

在编码阶段需要对三个时刻进行数据测试:

1.单元测试

根据目标类型编写一个实例化对象,然后对该对象发送消息,对其进行彻底的测试。

2.集成测试

当把所有的类都单独测试完毕后,然后确认他们是否能够在一起正常工作,在分别单次向测试环境中添加一个类,发现出错的根本来源,使测试达到最完善的程度。

3.验收测试

验收测试也是系统完成后的最后一关测试,需要通过该测试确认系统的功能是否能够在实际环境中运行。

(三)分析和设计阶段的测试

在分析阶段的测试是对分析工作的复查,将所有现实存在的因素都考虑在内,测试是否满足用户的要求。设计阶段的测试是不断的验证是否按照了分析阶段的结论进行工作,是否是根据客户的要求。

(四)代码测试

在测试代码时可采用预排法,虽然比较浪费时间,但是能够有效的发现缺陷获得高质量的软件。

五、Java的安全性

由于Java是面向对象的程序设计语言,信息流的安全性控制需要得到重视,Java虽然利用封装和隐藏机制,在一定程度上保证了信息的安全性,但是仍然不能保证信息流的保密性,可通过以下方法对Java的安全性进行改进,首先对Java中的主要语言成分进行改造,对package语句、类声明语句、变量成员声明及方法声明语句等进行修改。Java平台提供的原始安全模式是沙箱模型,对用户的访问权限进行限制,它由字节码检测器、类装载器和安全管理器三部分组成,它的原理是只信息本地代码,可以完全访问沙箱内的重要信息,对于下载的远程代码,只能访问沙箱内的有限资源。Java平台通过使用认证器查看类文件句法的正确性,防止病毒的侵犯。但由于Java是可以从网络上下载运行的,这造成了Java面对很多不安全的因素,如一些恶意程序对Java用户进行攻击,Java虚拟机提供的安全管理器和Java类文件认证器担任了防卫本地用户被攻击的任务。

小结:

Java是当前计算机软件开发中不可缺少的一种程序设计语言,很多软件开发工作者对Java进行了多方面的研究与探讨,本文只是通过一些小的方面对Java进行了浅显的概述。

参考文献:

[1]王宏,曹家庆,黄斌,陈琪.基于Java的数据结构算法演示系统[J].南昌航空工业学院学报(自然科学版),2006,2

[2]曹爱增,张慧芬,段春笋,张忠杰.JAVA程序设计方法研究[J].山东轻工业学院学报,2004,1

[3]张雪萍,鲍丹,王家耀.Java多线程测试策略及测试方法探讨[J].计算机应用研究,2006,11

[4]艾丽蓉,赵庆兰,刘西洋等.面向Java语言的进化测试中分支依赖图的构建[J].计算机科学.2006,7

[5]麻孜宁,伊浩,李祥.Java多线程并发系统中的安全性与公平性[J].计算机技术与发展,2006,2

上一篇:基于MVC的在线酒店预订系统概要设计 下一篇:114商品预定管理系统的设计和实现