In this second example, we will take a nuts-and-bolts approach to exam preparation and code more examples of the major pieces. If you are unfamiliar with one or two of the major areas touched by the assignment------Swing development, say, or RMI implementation------these examples can help accelerate your own practice work. We will also take a closer look at the administrative and scoring details of the exam. To do this, we downloaded our own assignment and wrote a solution, so that we could match our discussion to the degree of difficulty we saw.
The Java 2 Developerrsquo;s Exam, as exams of this type go, is not overly complex or subtle. The focus is competence in applying programming, design, and integration skills over a broad range of libraries and problem domains. The power of object-oriented design, of course, is that breaking a job into self-contained pieces is easy. The question lies in effective partitioning of the overall goal, but this is already answered by the assignment requirements. Some elements in the assignment code require fixing, but they are plainly disclosed in the exam notes------no hidden surprises. The top-level objectives are straightforward, and although there are one or two obstacles to extending the code that may appear novel to some candidates, they require less time in thinking than implementation to solve.
Rather than parallel the examrsquo;s major requirements by a survey of techniques, as we did in the previous scenario (Chapters 15 through 18), now we will build the major elements of a client-server application of our own, from the ground up. As in the previous example, we will leave some integration details as user exercises. The examrsquo;s starter code is simple, so we will leave the previous examplersquo;s discussion as a sufficient review of the problems that can arise. The download assignment we received asked us to clear up some deprecated methods; we also had to add a synchronized modifier to one method and delete another. So we are not concerned with putting land mines in sample code for you to sniff out. Write correct code to begin with, and yoursquo;ll have less to remember about code thatrsquo;s not quite right.
In this example, wersquo;ll generate requirements for a technical-support sevice request, or “trouble-ticket, ”system. Wersquo;ll write much of the application in a manner typical to simple prototyping, by:
- Specifying the data we need to store.
- Building a graphic interface to model its use.
- Writing code to serve the data.
- Allowing the client to communicate to a remote server.
In the spirit of code reuse, we will also look for ways to abstract a general design from our effort. We want to create a solution that not only fulfills the requirements at hand, but also helps us to see the larger problem domain and write solution for it. Many initial design efforts begin this way, by inferring the general from the specific. Once you do things this way several times, yoursquo;ll gain the experience necessary to start thinking about domains first and specifics second, otherwise known as program architecture.
We have chosen not to detail the code assignment particulars, even though wersquo;ve seen them; we would be poor instructors (our first job) if we just gave answers to tests. Ultimately, we do want you to learn, by means of this assignment, how to work through a simple instance and see the more general problem set. If you can achieve that, completing the assignment will be a question of how well you understand the choices you make in execution, not merely correct operation. And if you are clear and consistent in your execution, you will have met the goal of the exam itself-----to test your development skills, rather than your programming skills.
Having said that, the exam download fee is $250, prepaid. Wersquo;d prefer it if you didnrsquo;t spend the money only to find out the exam is too much for you (or perhaps not as complicated as you hoped). So before jumping into the second example, we review below some assignment notes from the download we received.
More on Exam Requirements
Unlike the 1.1 Developerrsquo;s Exam, the Java 2 assignment download does not include a test harness. Each submission is tested by an examiner for correct operation and meeting minimum requirements. Then the source code is reviewed for clarity, form, and design, and marked against criteria that are weighted according to their importance. Because there is no longer a mechanical test, delivering an assignment the examiner can easily use and test will have greater impact on the final score than before. Readable, easy-to-find documentation is the candidate has more flexibility in choosing how to do it.
One point that was not clear in the previous exam was whether the provided code could be directly modified. In the Java 2 administration, the candidate may expressly modify the existing code, not simply add to it or subclass it. The exam requires the candidate to return both original and modified source code files in the submission.
The point system for grading the assignment breaks down into these categories and weights:
Category |
Points |
General Considerations |
72 |
Server Design |
37 |
User Interface |
20 |
Documentation |
10 |
Data Conversion Program |
10 |
Object-Oriented Design |
6 |
Total |
155 |
Elements important to the server design category include adding a record-locking scheme and enhancing the search capability. Developing the user interface accounts for about 13 percent of the total
剩余内容已隐藏,支付完成后下载完整资料
在第二个例子中,我们将采取螺母和螺栓的方法来准备测试,并编码更多的例子的主要作品。如果你对任务所涉及的一个或两个领域不熟悉,比如说Swing开发,或者RMI实现这些例子可以帮助加速你自己的实践工作。我们还将仔细查看考试的行政和评分细节。要做到这一点,我们下载了自己的任务,并写了一个解决方案,使我们能够匹配我们的讨论,我们看到的困难程度。
Java2开发者的测试,因为这种类型的测试,是不是过于复杂或微妙的。重点是在应用程序,设计和集成能力,在广泛的范围内的库和问题域的能力。当然,面向对象设计的力量在于将工作分解成独立的部分是容易的。问题在于有效分区的总体目标,但这已经回答了分配要求。分配代码中的某些元素需要修复,但它们显然是在测试笔记中披露的--没有隐藏的惊喜。顶层目标是直接的,虽然有一个或两个障碍延伸的代码,可能会出现一些候选人的小说,他们需要更少的时间在思考比实现解决。
而不是平行的测试的主要要求,通过调查的技术,因为我们在以前的情况下(第15章至第18章),现在我们将建设的主要元素的客户端-服务器应用程序我们自己的,从地面。在前面的例子中,我们将保留一些集成细节作为用户练习。测试的起始代码很简单,所以我们将把前面的示例讨论作为对可能出现的问题的充分回顾。我们收到了要求我们整理一些过时的方法下载任务;我们还必须添加一个相应的修改方法并删除另一个。因此,我们不关心把地雷样本代码,你嗅出。开始写正确的代码,你将不太记得代码不太正确。
在这个例子中,我们将生成一个技术支持服务要求的要求,或“问题票”制度。我们将以一种典型的简单原型来编写应用程序:
1、指定我们需要存储的数据。
2、建立图形界面来模拟其使用。
3、写代码服务数据。
4、允许客户端与远程服务器通信。
在代码重用的精神,我们也将寻找方法来抽象一般的设计,从我们的努力。我们要创建一个解决方案,不仅满足手头的要求,而且还可以帮助我们看到更大的问题域,并为它编写解决方案。许多最初的设计工作开始这种方式,通过推断一般从具体。一旦你这样做几次,你将获得必要的经验,开始思考域第一和细节第二,否则称为程序架构。
我们没有选择详细的代码分配细节,即使我们已经看到他们,我们将是可怜的导师(我们的第一份工作),如果我们只是回答测试。最后,我们希望你通过这个任务学习如何通过一个简单的实例来处理更一般的问题集。如果你能做到这一点,完成任务将是一个问题,你如何理解你在执行中作出的选择,而不仅仅是正确的操作。如果你在你的执行中是清晰和一致的,你将达到测试本身的目标---测试你的开发技能,而不是你的编程技能。
话虽如此,考试下载费是250美元,预付。如果你不花这笔钱,我们会发现测试对你来说太贵了(或者可能不像你想象的那么复杂)。因此,在进入第二个例子之前,我们先回顾一下我们收到的下载任务的一些注意事项。
关于更多的测试要求:
不像1.1开发者测试,java 2任务下载不包括试验线束。每个提交测试由检查员正确的操作和满足最低要求。然后审查源代码的清晰度,形式和设计,并针对标准的加权根据其重要性。因为不再有机械测试,提供一个任务考官可以很容易地使用和测试将有更大的影响比以前的 最后得分。易读的,易于发现的文件是候选人有更多的灵活性,在选择如何做。
在上一次测试中不清楚的一点是,所提供的代码是否可以直接修改。在java 2管理,考生可以明确修改现有的代码,不是简单地增加它或它的子类。考试要求考生提交原件和修改后的源代码文件提交。
评分系统分为这些类别和权重:
类别 |
分数 |
一般考虑 |
72 |
服务器的设计 |
37 |
用户界面 |
20 |
文件 |
10 |
数据转换程序 |
10 |
面向对象设计 |
6 |
总分 |
155 |
服务器设计类别的重要元素包括添加记录锁定方案和提高搜索能力。开发用户界面占总点数的百分之13左右。如果你是新的秋千,但是,你会花更多的书在这一块比点值建议。你可以做一些非常好的东西与秋千,但做他们迅速没有经验是另一回事。数据转换任务要求您使用分隔的ASCII文件数据并将其转换为应用程序可用的二进制文件格式。提交失败,如果没有提供此工具。
一般考虑得到约一半的总重量和重叠一些与其他类别。它们包括以下元素,它们的加权形式为5到20分:
- 易于使用提交的任务,包括文档。(15分)
- 一致和逻辑问题解决。(20分)
- 坚持JavaSoft的编码标准。(15分)
- 5.代码清楚,易于维护。(7分)
- 应用一致的方式处理异常。(10分)
- 使用JDK类库中的一个有限的目的写新的青睐。(5分)
主要强制性要求如下:
一、提交必须包含一个自述文件,该文件记录程序是如何启动的。平地机不能调整或编辑JAR的内容,以便程序执行。
二、提交必须作为一个JAR文件发送,但可能包含多个JAR文件。
三、程序必须能够运行在任何java 2平台。Sun的参考平台引擎是预期的测试平台。
该程序可以要求命令行参数,但参数本身仅限于:
服务器的主机或DNS名称;
应用程序的服务器端口号;
任何数据文件的名称(s);
java.rmi.server.codebase属性值;
安全管理政策(如果有的话)。
注:
记住检查员不是在寻找“最佳”编程选择。没有理想的选择,他们正在寻找。检查员的工作是评估每个候选人完成任务的方法是多么清晰和一致。
任务:建立故障票系统
假设我们已经与几家创业公司合作,他们似乎都有一个共同的需要:这些公司没有一个系统的解决内部技术支持问题的过程。为了获得支持,工作人员必须调用一个工程师,其主要作用是发展,外部客户支持,或监控生产系统。换言之,解决不直接影响客户满意度的问题往往是争夺已经紧张的资源的问题。
因此,保持对这些问题的反应,通常是由政治而不是技术优先。反应的焦点,一旦安排,是迅速恢复个人的生产能力;没有轨道的时间是必需的或使用多少。跟踪技术支持被视为简单的另一个次要任务。
由于没有正式的记录问题,任务,或决议,更不用说集中的方式来输入,修改,或查看这样的记录-雇用额外的工程师,以满足技术支持的需求是很难证明(除了在一个持续的危机)。要建立和维持一个高效的运作,这些公司的资源管理人员必须找到一种方法:
1.与技术专家配合以提高周转时间。
2.将广泛报道的症状与他们的来源联系起来,从而减少重复的努力。
3.优先排序突出问题优先分配资源给最重要的人。
4.允许分布式记录进入数据库,依靠每个人的责任来报告问题。
然而,大多数初创企业负担不起,也不希望内部使用复杂的故障票系统。该组织的人员配备迅速变化,以及各种项目的所有权。可用的少数补救措施之一是分发系统的责任和利益。启动组也更倾向于使用工具,需要很少的学习,实现特定的目标,并提出了一些要求。他们更可能使用工具,如果他们能迅速适应他们的需要。
我们想原型麻烦票系统将工作在我们所有的客户现有的系统,我们可以更好的确定修改的需求,而且可以提高无明显的改写。我们不想通过简单地增加灵活性(即复杂性)来限制我们自己的快速上市目标--我们只是希望我们的代码能够满足未来的需求。
我们的解决方案需要一个简单的客户端-服务器结构。当然,服务器本身必须允许并发用户连接,可以容纳对特定数据的搜索,当然,也可以防止并发写入同一记录。我们还希望保持客户端-服务器连接方案通用,原因有二。一:为所有客户维护一个单独的通信模型,以便对数据集的更改不会更改连接客户端和服务器的代码。我们必须从数据传输模型中提取数据。二:为了集中。我们知道初创公司想外包或合同技术支持时,他们可以。如果我们打开使用我们的客户端作为监视器的可能性,我们将能够添加功能,让我们管理这些数据库中的几个,无论他们的个人架构,从一个位置。如果我们的客户喜欢这个工具并且使用它,他们需要的下一件事是技术支持,而不是从他们的业务重点中拿走。我们已经知道他们如何看待他们的数据,在寻求其他的咨询机会的一个关键优势。
在调查了这些公司的利益,我们决定一个简单的,广义的数据计划为我们的原型,描述在下表:
字段数据类型
字段 |
数据类型 |
记录编号 |
整数 |
报告人 |
字符串 |
地点 |
字符串 |
报告时间 |
字符串(数据) |
工程师 |
字符串 |
类别 |
字符串 |
投诉 |
字符串 |
状态 |
字符串 |
我们将使用基本的数据类型,并开始与内部分隔的ASCII文件,以帮助建模图形客户端界面。一旦设置了逻辑元素,ASCII数据可以转换成适合我们服务器代码的格式。现在,我们将遵循这个形式:
recnum |报告|位置|时间|工程包括| |原告|状态
示例记录将在文件中看起来像这样:
001 |塞耶斯|巢穴| 03 / 28 / 00 10:21 |麦汁|网络| T-1是|封闭
002 | Padula | EDI | 04 / 01 / 00 13:30 | Markson |办公室|没有饼干|待定
003 |猎人|巢穴| 04 / 03 / 00 10:15 |棕色|服务器|备份失败的|封闭
004 |克莱默| MPT | 04 / 09 / 00和|拉米雷斯|工作站| U-10下来| in-pro
005 | Lewis | BRM | 04 / 11 / 00 21:48 |未分配的|数据库锁表| |开放
006 | Gant | SFO | 04 / 15 / 00 14:15 |未分配的|办公室|大声抱怨|临界
GUI开发
我们的图形界面的核心自然会表------个JTable,就是因为我们使用Swing组件。为描述显示器面向客户的缘故,我们也会包括在原型的树形结构,如图19.1所示。这个实验将给我们一个机会:
考虑用于查看多个数据库的另一个图形模型。
将操作连接到树节点用作“存储过程”。
帮助我们考虑GUI开发时的可选布局。
所有的Swing组件继承形式java.awt.container。这意味着它可能包含其他组件内部的任何组件,而不只是刺痛的对象足够的动机看过去AWT组件。这一特性之所以出现在脑海中,是因为迄今为止描述的一些数据字段如位置、工程师或状态可能具有固定的或受限的值列表。图形客户端可以简化数据输入和验证,在这些情况下,通过显示选择列表,而不是文本字段。此外,如果我们可以得到的数据方案进行这些信息,那么我们可以调整图形表,不仅反映了头和字段长度,但也最适合的组件显示它。Swing的建立是为了满足这些需求,所以我们将利用这个机会学习如何在构建客户端代码的时候。
视觉方面,或视图是很容易代表,但我们字面上只是划伤表面的代码,我们需要。我们将想把更多的想法到模型中,或者我们希望包含我们的数据的方式。一个JTable模型为TableModel接口实现定义。如果我们想要开发比默认表格模型类提供了一个简单的------矢量的矢量------我们可以指定自己的tablecolumnmodels更多的能力。简而言之,即使在确定实际数据之前,也可以在客户端开发大量的工作。如果我们练习一点预见和模块化设计的重点,我们能够处理的数据结构更实质性的变化没有改变我们的GUI代码的基本设计。
数据库/服务器开发
我们的后端的项目主要是为网络上的数据;我们将在设计水平上开始讨论,使用java的远程方法调用(RMI)的API。我们还可以使用对象序列化来开发一个用于在客户机和服务器之间进行交互的协议--考试允许这两种方法--但是使用RMI将给我们一个讨论接口的理由,一个最喜欢的话题。我们没有更
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[479864],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。