Вы находитесь на странице: 1из 74

A Practical Training Seminar Report On

TRANSLATIONAL TOOL
Submitted in partial fulfillment of requirement for Degree of Bachelor Of Technology in Computer Science & Engineering

2011-12

Submitted To:

Submitted By:

Mr. Dinesh Goyal Head ofDepartment Computer Science & Engineering

Mr. Nishant Roll No-2076 Enrollment No.SGVU081010362

Department Of Computer Science & Engineering

Suresh GyanVihar University


MahalJagatpura,Jaipur
1

TRAINING CERTIFICATE

CERTIFICATE

ACKNOWLEDGEMENT
I express my heartful thanks and sincere gratitude to PrimoVision for providing me an opportunity to achieve my project goals. I consider it my pleasure to thank Mr Rakesh Mishra, CEO, PrimoVision Technology Solutions, Bangalore, for granting me the permission to undertake the project work at his organization. I am extremely grateful to my project guide Mr Kumar Gaurav, Technical Architect, PrimoVision Technology Solutions, Bangalore, for his skilful guidance, constant supervision and timely suggestion which helped me in completing my project successfully within the stipulated time. I would also like to thank all the faculty members of COMPUTER SCIENCE ENGINEERINGdepartment of SURESH GYAN VIHAR UNIVERSITY, who helped me in many aspects of project implementation and provide constant encouragement and guidance. Finally, I thank one and all who helped us in all possible ways towards the successful implementation of this project.

INDEX
PAGE NO.

1. ABOUT ORGANIZATION 2. ABOUT INDUSTRIAL TRAINING


2.1 FUNTIONAL SKILL
2.1.1 COMPUTER SKILL 2.1.2 PROJECT MANAGEMENT 2.1.3 PROCESS EVALUATION ANALYSIS

7-14

15-16

2.2

SOFT SKILLS
2.2.1 2.2.2 2.2.3 2.2.4 INTERPERSONAL SKILLS/PRESENCE TEAMWORKS SKILL COMMUNICATION SKILL SELF-MANAGEMENT

17-18

2.3 2.4

OVERALL EVALUATION19 TOOLS AND TECHNOLOGY USED20


2.4.1 JAVA 2.4.2 JVM 2.4.3 ORACLE25-28

21-22 23-25

3.

ABSTRACT29

4. PROBLEM DEFINITION30-31
4.1 4.2 EXISTING SYSTEM LIMITATIONS FEATURE OF PROPOSED SYSTEM 32-35

4.3

5. SYSTEM ANALYSIS
5.1 5.2 MAIN OBJECTIVE FEASIBILTY ANALYSIS

6. SYSTEM REQUIREMENTS36
6.1 SOFTWARE REQUIREMENT HARDWARE REQUIREMENT

6.2

7. SYSTEM DESIGN37-54
7.1 7.2 7.3 7.4 ENTITY RELATIONSHIP DIAGRAM DATA FLOW DIAGRAM USE-CASE DIAGRAM DATABASE DESIGNS 55-59

8. TESTING
8.1 8.2 8.3 INDEPENDENT UNIT TESTING SYSTEM TESTING TESTING OBJECTIVES SYSTEM SECURITY 60

8.4

9. IMPLEMENTATION 10. 11. 12. 13. SNAP SHOTS CONCLUSION

61-70 71

FUTURE SCOPE OF PROJECT72-73 REFERENCES


6

74

1. ABOUT ORGANISATION
PrimoVision is an information technology consulting and productized software

solutionscompany based out of silicon valley of India, Bangalore. They focus on developing enterprise portals, providing wireless solutions technology consulting and software Research.They follow a methodological approach of identifying their customer business, vision, prioritizing their business needs, identify the right technology and then go ahead with implementing the solution.The emphasis remains on collaboration with clients throughout the lifecycle of the relationship, from the initial requirements gathering phase to ongoing support and maintenance their services are tuned to meet the customer requirements in various geographies and tailored to specific customers need.

Overview
PrimoVision is a leading provider of enterprise portals and wireless solutions for the enterprises. PrimoVision has assisted organizations around the world in automating customer service, improving customer satisfaction and enabling new revenue generating opportunities while reducing operational cost. Depending on the geography and the business domain, PrimoVision also offers customized services to clients. PrimoVision is a privately held company with investments from global venture capital companies. PrimoVision is

headquartered in Bangalore, India with partner offices in Riyadh, US and London.The Quality Assurance (QA) department at PrimoVision provides the framework and ensures that the entire software development process follows the established standards. PrimoVision follows standard frameworks and has developed some of its own sophisticated frameworks to reduce the product and project implementation time and cost. Their frameworks evolve to incorporate the latest of technologies, to perform better and to make systems robust. With the help of these frameworks they are rest assured of spending more time on testing and performance of the application rather than taking time in building an application from scratch.They continuously evaluate products available from the open-source movement and customize them for user's specific needs. Struts, Spring, Hibernate, Tapestry,Castor and Tiles are some of the application frameworks, which they have built their expertise on.

SOFTWARE RESEARCH
y An Offshore Development Centre or ODC is a dedicated development centre, located outside the client's premises, solely engaged in developing, testing and deploying software solutions and applications. The purpose behind an ODC is to take advantages of the technological know-how, cost advantages or the reduced time to market. y PrimoVision will assist in establishing dedicated Offshore Development Centre for its clients. The complete office space, infrastructure and resources will be dedicated to the client projects. The dedicated offshore development centre can be either a separate location or may be housed within the premises of PrimoVision's development centre based on client requirements. Clients can have their own project managers / technical managers managing the projects, if required. The dedicated ODC is particularly advantageous to clients requiring a dedicated team in India because of the various advantages that India offers without the necessity to establish its own facility. y PrimoVision manages it offshore development at its state of the art facility in Bangalore, India. The Offshore development centre (ODC) is strategically located having definite advantages in terms of cost and availability of technical manpower.

Onsite Offshore Development


PrimoVision works on a global services model that is built on two fundamental premises delivering on the SLA (Service Level Agreement) and leveraging cost benefits of offshore service delivery. This model leverages PrimoVision's strong transition process to rapidly take ownership of the application, demonstrate and prove offshore supportability and then transfer support to the offshore location in a controlled and predictable manner. Feedback and review mechanisms built into the model help manage size without compromising service delivery.

Top Five Strategic ReasonsForOutsourcing:


y Improve Business Focus

Outsourcing allows companies to focus on broader business issues while having operational details assumed by an outside expert. For many companies, the single most compelling reason for outsourcing is that several of the minor IT issues are siphoning off huge amounts of resources and attention from management. y Gain Access To World Class Capabilities

By the very nature of their specialization, outsourcing providers bring extensive world- class resources to meeting the needs of their customers. Partnering with an organization with world-class capabilities can offer access to new technology, tools and techniques that the organization may not currently possess; more structured methodologies, procedures and documentation; and a competitive advantage through expanded skills. y Accelerate Reengineering Benefits

Outsourcing is often a by-product of another powerful management tool; business process reengineering. It allows an organization to immediately realize the anticipated benefits of reengineering by having an outside organization one that is already reengineered to worldclass standards/process. y Share Risks

There are tremendous risks associated with the investments an organization makes in information technology. When companies outsource they become more flexible, more dynamic and better able to change themselves to meet changing opportunities. y Redirect its Resources To More Strategic Activities

Every organization has limits on the resources available to it. Outsourcing permits the redirection of resources from non-core activities toward activities that provide a greater return in serving the customer.

Top Five Tactical Reason for Outsourcing


y One Time Applications

Applications that need to be developed or modified for a specified time require high manpower resources at one point of time. For this the organizations need to ramp up/ ramp down in a relatively short notice. This in-turn is expensive. For this outsourcing is the best solution. For e.g. Y2k, Euro, porting from one-platform to another etc. y Reduce or Control Operating Cost

The single most important tactical reason for outsourcing is to reduce or control operating costs. Access to an outside provider's lower cost structure is one of the most compelling shortterm benefits of outsourcing. y Make Capital Funds Available

Outsourcing reduces the need to invest capital funds in non-core business functions. This makes capital funds more available for core areas. Outsourcing can also improve certain financial measurements by eliminating the need to show return on equity from capital investments in non-core areas.

Generate Cash Infusion

Outsourcing can involve the transfer of assets from the customer to the provider. Equipment, facilities, vehicles and licenses used in current operations all have a value and are, in effect, sold to the provider as part of the transaction, resulting in a cash infusion. y Secure Resources Not Available Internally

Companies outsource because they do not have access to the required resources within the organization. For example, if an organization is expanding its operations, especially into a new geography, outsourcing is a viable and important alternative to building the needed capability from the ground up.

10

WIRELESS SOLUTIONS
PrimoVision helps companies enable their core services.They excel in a wide range of

wireless technologies such as J2ME, WAP and Messaging(SMS, MMS, USSD).They have expertise in messaging solutions, m-Commerce solutions and mobile entertainment.They

extend their expertise to provide customized solutions for the corporate and vertical markets.For organizations with existing Internet applications, they can help to quickly

redesign and extend those applications to the wireless environment.For organizations that are looking for ways to leverage the wireless web, their full lifecycle services can help identify opportunities and architect and implement solutions.For organizations that have already identified their wireless applications, we can deliver the technology, skilled development resources, and project managers necessary to build those applications fast by leveraging its onshore/offshore development model.By giving field sales professionals quick, easy access to key sales systems through handheld devices, their hand held solutions increase CRM/SFA adoption. It makes reps more effective on the field and also provides sales management with the call reporting facility, enabling organizations to finally reap the returns on their CRM/SFA investments. Their solutions demonstrate the capability to deliver and maintain the following features that any business organization would never like to compromise with. Accurate Data capture, performed directly at the point or time of activity, improve call management or organization limits, data entry redundancy exporting data to excel sheets saves time in customer request handling,easy report generation for management decision support Cost effective option to laptops/dedicated terminals by utilizing PDA architecture and proliferated capability,easy maintenance and enormous scalability support for major handheld devices no- nonsense user interface with highly optimized data presentation strategies. Enterprise Portals Todays web has evolved into highly dynamic, interactive and personalized information superhighway with the advent of many new web technologies such as portals. Enterprise portal is a framework for integrating information, people and processes across organizational boundaries. Enterprise portals enable your employees and customers to be
11

organized streamlined and connected by aggregating and targeting personalized content through application specific portlets. PrimoVision offers enterprise portal solutions for businesses of all kinds raging from SMEs to large enterprise customers. Your portal could just be a few pages of static content, or it could be a high end application portal including web services. It could be a SAAS centric portal or it could be an integration of several federated portals. PrimoVision offers wide variety of custom portal solutions to help your organization fulfill your growth target.PrimoVisions enterprise portal development services offer state of the art portal development starting from requirement definition to deployment and training. Our R5 approach enables us to closely work with our clients to identify their domain and business specific objectives, streamline project requirements and implement them 100% according to the specific customer requirements.Their portal solutions offerings can be summarized as enterprise portal strategy consulting portal requirements consulting advanced portal architecture and design end-to-end portal implementation web portal programming and legacy integration Third party web services integration Portal administration and maintenance portal platform upgrade and migration Wireless portals platforms such as web logic portal, web We have expertise on the latest portal sphere portal, ORACLEportal and

MICROSOFTsharePoint. We also have developed various portals on leading open source portal platform such as Liferay, uPortal and Joomla.Their vast experience in enterprise portal development includes enterprise Internet/IntranetB2B & B2C ecommerce portals business intelligence and reporting Portals Social networks and community portals user and content management portals request a free consultation for your enterprise portal requirement.

Product Implementation
On many occasions, customers ask for implementation and maintenance of third party products and applications, which PrimoVision takes up on a case to case basis with the support from other business partners. PrimoVision provides product Implementation services of third party products in the areas related to RFID (Radio Frequency Identification), Broad Vision, Basel II, IFRS, Asset Liability Management, Credit Risk and Operational Risk Management and Loan Automation. PrimoVision is uniquely positioned to help customize and implement the best of breed software products / solutions available in the market.Our implementation methodology
12

offers the following benefits. Leverage knowledge of market leading packages from other vendors for better integration and ROI.. Enhances Quality by following the best practices.. Strategic partnerships with software product and vertical solution providers create added value for our clients. High productivity of implementation team due to product and functional knowledge.Rapid scalability of trained resources to reduce implementation time.Reduced cost ofimplementationduetooffshoreleverage.Coverage of multiple geographies and ability to meet local requirements. To provide a good post-implementation support and

maintenance, PrimoVision provides the following services. On call support.Adapting the product to keep up with the changing technological / business environment. Testing and Performance Tuning

Application Development & Migration


We offer customized Application Development Services in a broad range of segments ranging from J2EE technologies to .Net Platform.We leverage our extensive expertise gained from executing numerous demanding projects, proven onsite-offshore development methodology, efficient project management techniques and world-class quality practices to shorten application development timeframes thus enabling our clients to realize significant business benefits. Depending on the project complexity we suggest delivery "models" to our customers.By outsourcing their application development activities to PrimoVision, companies benefit from higher productivity, better quality, lower costs and rapid delivery.In today's economy what businesses needs to have is a competitive edge over its competitors in the form of time, cost and support services offered to their customers. To achieve this, the businesses need to leverage the latest technologies by synchronizing these technologies within their business. Thus the need of Application Migration arises where instead of rewriting the entire set of business rules, we re-use the business logic present in existing applications to migrate to newer platforms. PrimoVision delivers migration projects as turnkey solutions, enabling the cleint to achieve significant operational cost savings while keeping the proven business processes, functionality and data. The new platform is open for further application enhancements. This software rejuvenation process involves Re-documentation to create or revise alternative representations of software at the same level of abstraction, Re-structuring to transform the
13

systems code without changing its behavior, Reverse Engineering to analyze the system to extract information about the behavior and also for Design Recovery and finally Reengineering to reconstitute it in another form.PrimoVision Advantage.Using the latest and the best technologies Significantly lowering project costs, risk of errors and time Completely preserving corporate business knowledge Dramatically reducing dependency on scarce skill sets Immediately solving problematic maintenance issues Enabling end-to-end project control and management Supplying a full audit trail and documentation of all changes Products PrimoVisions product team specializes in research, ideation, conceptual design, prototyping, engineering, & implementation of software products. Our intrinsic passion for innovation enables us to create software products that drive demand in todays IT market.We also take up product development work on behalf of our customers. We deliver it to them as a service, where our development team works with the same passion and dedication to implement these products. The end result is a high quality service and reduced total cost of ownership for our customers.

Solutions
PrimoVision endeavours to provide complete IT solutions to its customers right from the conceptual stages up to the production deployment. Many a times, this means providing services along with software products and applications.Our ranges of services vary from Enterprise Portal development, Wireless solution development, Technology consulting etc.

14

2. ABOUT INDUSTRIAL TRAINING

Throughout the 45 days of my industrial training, I have experience real industrial working condition which developed and improved my functional and soft skills in several aspects.

2.1 FUNTIONAL SKILLS


2.1.1 Computer Skills Undergone training at PRIMO VISION TECHNOLOGY SOLUTIONS PVT. LTD. gives me opportunity to use quite a few of new software. Among them is SUN JAVA, ORACLE. The soft waresarequite exiting, whenever we have to make any project we just use Dream viewer as most of the coding part is done automatically. My typing speeds also have been improved. 2.1.2 Project Management
The application has been developed using J2EE technology. Servlet has been used as controller and JSPs have been used for creating interfaces. Business Layer and Data Layer has been created using Plain Old Java Objects. JDBC has been used for creating database connections.

2.1.3 Process Evaluation Analysis Working under production complex condition, I have able to study the process flow in JAVA and JVM language. I also learned about the planning involving time, capacity, and materials flow and line layout during project.

15

2.2 SOFT SKILLS


2.2.1 Interpersonal Skills/ Presence The training has improved my ability in interacting with others people such as peers and superior. It is fun to deal with this people, especially when they were willing tohelp and explain to me about thing that I didnt understand. Most of the academy teachers are highly qualified and this allowed me to learn the differences between culture and its relative influence on their perception and behavior.

2.2.2 Teamworks Skill Most of the time during the training, I worked with Mr.Kumar Gaurav, Technical
Architect, PrimoVision Technology Solutions, Bangalore and he guided me in every task I

conducted. Some of the task we perform it together. I was able to contribute my ideas and insights in our works. 2.2.3 Communication Skill During the training, I able to improved my communication skill especially my English languages skill both spoken and written. This is because English is the most used language in the company for every day communication and report paperworks and programming. 2.2.4 Self-Management Getting to know what its like to know a programming language and working on a project have tough me how to conduct myself properly in a business environment. I am able to improve my time management, more punctual in work and meeting report deadline. I also learned how to wear appropriate attire to work and manage my appearance well.

16

2.3OVERALL EVALUATION
I judge my 45 days spent at PRIMO VISION PVT. LTD. as being one of the most interesting, productive and instructive experience in my life. Although as a student that majoring in undergraduate, I expect to involve more on PHP programming related work or task, however much of my training time were focusing more on operation and project aspect. However this didnt affect my excitement and focus on the ongoing training period. On the contrary I am happy to have been able to take this valuables opportunity to explore and experience new

dimension of work in the Academy which I never experienced before. During my training I had the practical work experience under professional supervision. Ms. SumitYadav my mentor treated me as his real assistant. I was capable to contribute my ideas and insights in his works. At the same time, he provided me with productive and stimulating learning environment. I try to apply what I have learned in the lecture class at CMC Academy to actual work setting. My English language skills both spoken and written also were developed. I also able to get a

better understanding about the programming in a project. From the task and project given by my supervisor and mentor, I am able to understand programming related aspect in PHP and MySQL. This training has exposed me to the invaluable experience that I can't gain from the lecture hall or classroom. Furthermore, the industrial training is not only the knowledge outside the classroom but it also opens my world view wider.

2.4 TOOLS AND TECHNOLOGY USED


2.4.1 JAVA Java is a programming language originally developed by James Gosling at Sun Microsystems (which is now a subsidiary of Oracle Corporation) and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities. Java applications are typically compiled to bytecode (class file) that can run on any Java Virtual Machine (JVM) regardless of computer architecture. Java is a general-purpose, concurrent, class-based, object-oriented language that is specifically designed to have as few implementation dependencies as possible. It is intended to let application developers "write once, run anywhere". Java is currently one of the most popular programming
17

languages in use, particularly for server-client web applications.The original and reference implementation Java compilers, virtual machines, and class libraries were developed by Sun from 1995. As of May 2007, in compliance with the specifications of the Java Community Process, Sun relicensed most of its Java technologies under the GNU General Public License. Others have also developed alternative implementations of these Sun technologies, such as the GNU Compiler for Java, GNU Classpath, and Dalvik.Duke, the Java mascot.James Gosling, Mike Sheridan, and Patrick Naughton initiated the Java language project in June 1991. Java was originally designed for interactive television, but it was too advanced for the digital cable television industry at the time.The language was initially called Oak after an oak tree that stood outside Gosling's office; it went by the name Green later, and was later renamed Java, from Java coffee, said to be consumed in large quantities by the language's creators. Gosling aimed to implement a virtual machine and a language that had a familiar C/C++ style of notation.Sun Microsystems released the first public implementation as Java 1.0 in 1995. It promised "Write Once, Run Anywhere" (WORA), providing no-cost run-times on popular platforms. Fairly secure and featuring configurable security, it allowed networkand file-access restrictions. Major web browsers soon incorporated the ability to run Java applets within web pages, and Java quickly became popular. With the advent of Java 2 (released initially as J2SE 1.2 in December 19981999), new versions had multiple configurations built for different types of platforms. For example, J2EE targeted enterprise applications and the greatly stripped-down version J2ME for mobile applications (Mobile Java). J2SE designated the Standard Edition. In 2006, for marketing purposes, Sun renamed new J2 versions as Java EE, Java ME, and Java SE, respectively.In 1997, Sun Microsystems approached the ISO/IEC JTC1 standards body and later the Ecma International to formalize Java, but it soon withdrew from the process. Java remains a de facto standard, controlled through the Java Community Process.At one time, Sun made most of its Java implementations available without charge, despite their proprietary software status. Sun generated revenue from Java through the selling of licenses for specialized products such as the Java Enterprise System. Sun distinguishes between its Software Development Kit (SDK) and Runtime Environment (JRE) (a subset of the SDK); the primary distinction involves the JRE's lack of the compiler, utility
18

programs, and header files.On November 13, 2006, Sun released much of Java as open source software under the terms of the GNU General Public License (GPL). On May 8, 2007, Sun finished the process, making all of Java's core code available under free software/open-source distribution terms, aside from a small portion of code to which Sun did not hold the copyright.Sun's vice-president Rich Green has said that Sun's ideal role with regards to Java is as an "evangelist."Following Oracle Corporation's acquisition of Sun Microsystems in 20092010, Oracle has described itself as the "steward of Java technology with a relentless commitment to fostering a community of participation and transparency".There were five primary goals in the creation of the Java language.It should be simple, object-oriented and familiar.It should be robust and secure.It should be architecture-neutral and portable.It should execute with high performance.It should be interpreted, threaded, and dynamic.One characteristic of Java is portability, which means that computer programs written in the Java language must run similarly on any supported hardware/operating-system platform. This is achieved by compiling the Java language code to an intermediate representation called Java bytecode, instead of directly to platform-specific machine code. Java bytecode instructions are analogous to machine code, but are intended to be interpreted by a virtual machine (VM) written specifically for the host hardware. End-users commonly use a Java Runtime Environment (JRE) installed on their own machine for standalone Java applications, or in a Web browser for Java applets.Standardized libraries provide a generic way to access host-specific features such as graphics, threading, and networking.A major benefit of using bytecode is porting. However, the overhead of interpretation means that interpreted programs almost always run more slowly than programs compiled to native executables would. Just-in-Time compilers were introduced from an early stage that compile bytecodes to machine code during runtime.Sun Microsystems officially licenses the Java Standard Edition platform for Linux Mac OS X, and Solaris. In the past Sun licensed Java to Microsoft but the license expired without renewal. Because Windows does not ship with a Java software platform, a network of third-party vendors and licensees develop them for Windows and other operating system/hardware platforms.Sun's trademark license for usage of the Java brand insists that all implementations be "compatible". This resulted in a legal dispute with Microsoft after Sun claimed that the Microsoft implementation did not support RMI
19

or JNI and had added platform-specific features of their own. Sun sued in 1997, and in 2001 won a settlement of US$20 million, as well as a court order enforcing the terms of the license from Sun. As a result, Microsoft no longer ships Java with Windows, and in recent versions of Windows, Internet Explorer cannot support Java applets without a third-party plugin. Sun, and others, have made available free Java run-time systems for those and other versions of Windows.Platform-independent Java is essential to the Java EE strategy, and an even more rigorous validation is required to certify an implementation. This environment enables portable server-side applications, such as Web services, Java Servlets, and Enterprise JavaBeans, as well as with embedded systems based on OSGi, using Embedded Java environments. Through the GlassFish project, Sun is working to create a fully functional, unified open source implementation of the Java EE technologies.Sun also distributes a superset of the JRE called the Java Development Kit (commonly known as the JDK), which includes development tools such as the Java compiler, Javadoc, Jar, and debugger.Programs written in Java have a reputation for being slower and requiring more memory than those written in C. However, Java programs' execution speed improved significantly with the introduction of Just-in-time compilation in 1997/1998 for Java 1.1 the addition of language features supporting better code analysis (such as inner classes, StringBuffer class, optional assertions, etc.), and optimizations in the Java Virtual Machine itself, such as HotSpot becoming the default for Sun's JVM in 2000. Currently, Java 2.0 code had approximately half the performance of C code. However, Java 5.0 has been shown to run at native speeds that sometimes match and occasionally beat the speed of C and C++.Some platforms offer direct hardware support for Java; there are microcontrollers that can run Java in hardware instead of a software JVM, and ARM based processors can have hardware support for executing Java bytecode through its Jazelle option.

20

Automatic memory management


Java uses an automatic garbage collector to manage memory in the object lifecycle. The programmer determines when objects are created, and the Java runtime is responsible for recovering the memory once objects are no longer in use. Once no references to an object remain, the unreachable memory becomes eligible to be freed automatically by the garbage collector. Something similar to a memory leak may still occur if a programmer's code holds a reference to an object that is no longer needed, typically when objects that are no longer needed are stored in containers that are still in use. If methods for a nonexistent object are called, a "null pointer exception" is thrown.One of the ideas behind Java's automatic memory management model is that programmers can be spared the burden of having to perform manual memory management. In some languages, memory for the creation of objects is implicitly allocated on the stack, or explicitly allocated and deallocated from the heap. In the latter case the responsibility of managing memory resides with the programmer. If the program does not deallocate an object, a memory leak occurs. If the program attempts to access or deallocate memory that has already been deallocated, the result is undefined and difficult to predict, and the program is likely to become unstable and/or crash. This can be partially remedied by the use of smart pointers, but these add overhead and complexity. Note that garbage collection does not prevent "logical" memory leaks, i.e. those where the memory is still referenced but never used.Garbage collection may happen at any time. Ideally, it will occur when a program is idle. It is guaranteed to be triggered if there is insufficient free memory on the heap to allocate a new object; this can cause a program to stall momentarily. Explicit memory management is not possible in Java.Java does not support C/C++ style pointer arithmetic, where object addresses and unsigned integers (usually long integers) can be used interchangeably. This allows the garbage collector to relocate referenced objects and ensures type safety and security.As in C++ and some other object-oriented languages, variables of Java's primitive data types are not objects. Values of primitive types are either stored directly in fields (for objects) or on the stack (for methods) rather than on the heap, as commonly true for objects (but see Escape analysis). This was a conscious decision by Java's designers for performance reasons. Because of this, Java was not

21

considered to be a pure object-oriented programming language. However, as of Java 5.0, autoboxing enables programmers to proceed as if primitive types were instances of their wrapper class.Java contains multiple types of garbage collectors. By default, HotSpot uses the Concurrent Mark Sweep collector, also known as the CMS Garbage Collector. However, there are also several other garbage collectors that can be used to manage the Heap. For 90% of applications in Java, the CMS Garbage Collector is good enough.The syntax of Java is largely derived from C++. Unlike C++, which combines the syntax for structured, generic, and object-oriented programming, Java was built almost exclusively as an object-oriented language. All code is written inside a class, and everything is an object, with the exception of the primitive data types (integers, floating-point numbers, boolean values, and characters), which are not classes for performance reasons.Unlike C++, Java does not support operator overloading and multiple inheritance for classes in order to simplify the language and to prevent possible errors and anti-pattern design.Java uses similar commenting methods to C++. There are three different styles of comments: a single line style marked with two slashes (//), a multiple line style opened with /* and closed with */, and the Javadoc commenting style opened with /**and closed with */. The Javadoc style of commenting allows the user to run the Javadoc executable to compile documentation for the program.Source files must be named after the public class they contain, appending the suffix .java, for example, HelloWorldApp.java. It must first be compiled into bytecode, using a Java compiler, producing a file named

HelloWorldApp.class. Only then can it be executed, or 'launched'. The Java source file may only contain one public class but can contain multiple classes with less than public access and any number of public inner classes.A class that is not declared public may be stored in any .java file. The compiler will generate a class file for each class defined in the source file. The name of the class file is the name of the class, with .class appended. For class file generation, anonymous classes are treated as if their name were the concatenation of the name of their enclosing class, a $, and an integer.The keyword public denotes that a method can be called from code in other classes, or that a class may be used by classes outside the class hierarchy. The class hierarchy is related to the name of the directory in which the .java file is located.The keyword static in front of a method indicates a static method, which is associated only with the class and not with any
22

specific instance of that class. Only static methods can be invoked without a reference to an object. Static methods cannot access any class members that are not also static.The keyword void indicates that the main method does not return any value to the caller. If a Java program is to exit with an error code, it must call System.exit() explicitly.The method name "main" is not a keyword in the Java language. It is simply the name of the method the Java launcher calls to pass control to the program. Java classes that run in managed environments such as applets and Enterprise JavaBean do not use or need a main() method. A Java program may contain multiple classes that have main methods, which means that the VM needs to be explicitly told which class to launch from.The main method must accept an array of String objects. By convention, it is referenced as args although any other legal identifier name can be used. Since Java 5, the main method can also use variable arguments, in the form of public static void main(String... args), allowing the main method to be invoked with an arbitrary number of String arguments. The effect of this alternate declaration is semantically identical (the args parameter is still an array of String objects), but allows an alternative syntax for creating and passing the array.The Java launcher launches Java by loading a given class (specified on the command line or as an attribute in a JAR) and starting its public static void main(String[]) method. Stand-alone programs must declare this method explicitly. The String[] args parameter is an array of String objects containing any arguments passed to the class. The parameters to main are often passed by means of a command line.Printing is part of a Java standard library: The System class defines a public static field called out. The out object is an instance of the PrintStream class and provides many methods for printing data to standard out, including println(String) which also appends a new line to the passed string.The string "Hello, world!" is automatically converted to a String object by the compiler. 2.4.2 JAVA VIRTUAL MACHINE A Java Virtual Machine is a piece of software that is implemented on non-virtual hardware and on standard operating systems. A JVM provides an environment in which Java bytecode can be executed, enabling such features as automated exception handling, which provides root-cause debugging information for every software error exception,

23

independent of the source code. A JVM is distributed along with a set of standard class libraries that implement the Java application programming interface . Appropriate APIs bundled together form the Java Runtime Environment.JVMs are available for many hardware and software platforms. The use of the same bytecode for all JVMs on all platforms allows Java to be described as a compile once, run anywhere programming language, as opposed to write once compile anywhere, which describes cross-platform compiled languages. Thus, the JVM is a crucial component of the Java platform.Javabytecode is an intermediate language which is typically compiled from Java, but it can also be compiled from other programming languages. For example, Ada source code can be compiled to Java bytecode and executed on a JVM.Oracle, the owner of Java, produces a JVM, but JVMs using the Java trademark may be developed by other companies as long as they adhere to the JVM specification published by Oracle and to related contractual obligations.Java's execution environment is termed the Java Runtime Environment, or JRE.Programs intended to run on a JVM must be compiled into a standardized portable binary format, which typically comes in the form of .class files. A program may consist of many classes in different files. For easier distribution of large programs, multiple class files may be packaged together in a .jar file (short for Java archive).The Java application launcher, java, offers a standard way of executing Java code. Compare javaw.The JVM runtime executes .class or .jar files, emulating the JVM instruction set by interpreting it, or using a just-in-time compiler (JIT) such as Oracle's HotSpot. JIT compiling, not interpreting, is used in most JVMs today to achieve greater speed. There are also ahead-of-time compilers that enable developers to precompile class files into native code for particular platforms.Like most virtual machines, the Java Virtual Machine has a stack-based architecture akin to a microcontroller/microprocessor. However, the JVM also has low-level support for Java-like classes and methods, which amounts to a highly idiosyncratic memory model and capability-based

architecture.Although the JVM was primarily aimed at running compiled Java programs, many other languages can now run on top of itThe JVM has currently no built-in support for dynamically typed languages: the existing JVM instruction set is statically typed, although the JVM can be used to implement interpreters for dynamic languages. The JVM has a limited support for dynamically modifying existing classes and methods; this
24

currently only works in a debugging environment, where new classes and methods can be added dynamically. Built-in support for dynamic languages is currently planned for Java 7.A basic philosophy of Java is that it is inherently safe from the standpoint that no user program can crash the host machine or otherwise interfere inappropriately with other operations on the host machine, and that it is possible to protect certain methods and data structures belonging to trusted code from access or corruption by untrusted code executing within the same JVM. Furthermore, common programmer errors that often lead to data corruption or unpredictable behavior such as accessing off the end of an array or using an uninitialized pointer are not allowed to occur. Several features of Java combine to provide this safety, including the class model, the garbage-collected heap, and the verifier.The JVM verifies all bytecode before it is executed. This verification consists primarily of three types of checks branches are always to valid locationsData is always initialized and references are always type-safeAccess to private or package private data and methods is rigidly controlled.The first two of these checks take place primarily during the verification step that occurs when a class is loaded and made eligible for use. The third is primarily performed dynamically, when data items or methods of a class are first accessed by another class.The verifier permits only some bytecode sequences in valid programs, e.g. a jump (branch) instruction can only target an instruction within the same method. Furthermore, the verifier ensures that any given instruction operates on a fixed stack location, allowing the JIT compiler to transform stack accesses into fixed register accesses. Because of this, that the JVM is a stack architecture does not imply a speed penalty for emulation on register-based architectures when using a JIT compiler. In the face of the code-verified JVM architecture, it makes no difference to a JIT compiler whether it gets named imaginary registers or imaginary stack positions that must be allocated to the target architecture's registers. In fact, code verification makes the JVM different from a classic stack architecture whose efficient emulation with a JIT compiler is more complicated and typically carried out by a slower interpreter.Code verification also ensures that arbitrary bit patterns cannot get used as an address. Memory protection is achieved without the need for a memory management unit (MMU). Thus, JVM is an efficient way of getting memory protection on simple architectures that lack an MMU. This is analogous to managed code in Microsoft's .NET Common Language Runtime,
25

and conceptually similar to capability architectures such as the Plessey 250, and IBM System/38.The original specification for the bytecode verifier used natural language that was "incomplete or incorrect in some respects. A number of attempts have been made to specify the JVM as a formal system. By doing this, the security of current JVM implementations can more thoroughly be analyzed, and potential security exploits prevented. It will also be possible to optimize the JVM by skipping unnecessary safety checks, if the application being run is proved to be safe.The JVM has instructions for the following groups of tasks load and store arithmetic type conversion object creation and manipulation operand stack management control transfer throwing exceptions monitorbased concurrency.The aim is binary compatibility. Each particular host operating system needs its own implementation of the JVM and runtime. These JVMs interpret the bytecode semantically the same way, but the actual implementation may be different. More complex than just emulating bytecode is compatibly and efficiently implementing the Java core API that must be mapped to each host operating system. 2.4.3 ORACLE The Oracle Database commonly referred to as Oracle RDBMS or simply as Oracle is an object-relational database management system ORDBMS produced and marketed by Oracle Corporation.Larry Ellison and his friends and former co-workers Bob Miner and Ed Oates started the consultancy Software Development Laboratories SDL in 1977. SDL developed the original version of the Oracle software. The name Oracle comes from the code-name of a CIA-funded project Ellison had worked on while previously employed by Ampex.An Oracle database system identified by an alphanumeric system identifier or SID comprises at least one instance of the application, along with data storage. An instance identified persistently by an instantiation number or activation id comprises a set of operating-system processes and memory-structures that interact with the storage. Typical processes include PMON (the process monitor) and SMON (the system monitor).Users of the Oracle databases refer to the server-side memory-structure as the SGA System Global Area. The SGA typically holds cache information such as databuffers, SQL commands, and user information. In addition to storage, the database consists of online redo logs or logs, which hold transactional history. Processes can in

26

turn archive the online redo logs into archive logs offline redo logs, which provide the basis if necessary for data recovery and for some forms of data replication.If the Oracle database administrator has implemented Oracle RAC Real Application Clusters, then multiple instances, usually on different servers, attach to a central storage array. This scenario offers advantages such as better performance, scalability and redundancy. However, support becomes more complex, and many sites do not use RAC. In version 10g, grid computing introduced shared resources where an instance can use for example CPU resources from another node computer in the grid.The Oracle DBMS can store and execute stored procedures and functions within itself. PL/SQL (Oracle Corporation's proprietary procedural extension to SQL), or the object-oriented language Java can invoke such code objects and/or provide the programming structures for writing them.The Oracle RDBMS stores data logically in the form of tablespaces and physically in the form of data files. Tablespaces can contain various types of memory segments, such as Data Segments, Index Segments, etc. Segments in turn comprise one or more extents. Extents comprise groups of contiguous data blocks. Data blocks form the basic units of data storage.There is also a partitioning feature available on newer versions of the database, which allows tables to be partitioned based on different set of keys. Specific partitions can then be easily added or dropped to help manage large data sets.Oracle database management tracks its computer data storage with the help of information stored in the SYSTEM tablespace. The SYSTEM tablespace contains the data dictionaryand often indexes and clusters. A data dictionary consists of a special collection of tables that contains information about all user-objects in the database. Since version 8i, the Oracle RDBMS also supports "locally managed" tablespaces which can store space management information in bitmaps in their own headers rather than in the SYSTEM tablespace as happens with the default dictionary-managed" tablespaces. Version 10g and later introduced the SYSAUX tablespace which contains some of the tables formerly in the SYSTEM tablespace.Each Oracle instance allocates itself an SGA when it starts and deallocates it at shut-down time. The information in the SGA consists of the following elements, each of which has a fixed size, established at instance startup.The redo log buffer: this stores redo entriesa log of changes made to the database. The instance writes redo log buffers to the redo log as quickly and efficiently as possible. The redo log
27

aids in instance recovery in the event of a system failure.The data dictionary comprises a set of tables and views that map the structure of the database.Oracle databases store information here about the logical and physical structure of the database. The data dictionary contains information such as user information, such as user privileges integrity constraints defined for tables in the database names and datatypes of all columns in database tables.The Oracle instance frequently accesses the data dictionary in order to parse SQL statements. The operation of Oracle depends on ready access to the data dictionary: performance bottlenecks in the data dictionary affect all Oracle users. Because of this, database administrators should make sure that the data dictionary cache. has sufficient capacity to cache this data. Without enough memory for the data-dictionary cache, users see a severe performance degradation. Allocating sufficient memory to the shared pool where the data dictionary cache resides precludes these particular performance problems.In the market for relational databases, Oracle Database competes against commercial products such as IBM's DB2 UDB and Microsoft SQL Server. Oracle and IBM tend to battle for the mid-range database market on UNIX and Linux platforms, while Microsoft dominates the mid-range database market on Microsoft Windows platforms.

28

3. ABSTRACT
In todays internet we see a lot of web applications which are internationalized and appear in multiple languages. One of the key challenges for such applications is to manage translations of all the labels which exist in these applications. Whenever, any change occurs in the application, for example a new feature is added or some features are modified, we need to add new labels or modify existing labels. Correspondingly, we need to translate them in all the languages which the application supports. The current mechanism of maintaining the labels, in text file or CSV file and sending them to translators for translation, combining them together and using them in the applications is highly inefficient. This project aims at automating the process of translation and managing the labels with in an application efficiently in order to reduce time and effort during the process of translation.

29

4. PROBLEM DEFINITION
4.1 Overview
This application takes care of internationalization requirements of web-based applications and provides an interface for managing projects, project leaders, translators, contexts and labels for administrators and project leaders and also provides interface for translators to provide translation for entered labels.

4.2 Current Situation


Currently, the label and data translations for internationalization are managed through CSV files. Different CSV files are maintained for different projects. Each of these files contains new, edited and deleted labels. The files are sent to translators, who provide translations in their respective languages. Finally, the translated labels are fed into target applications. Problems faced in the Current way of translationsThe problems faced in the current system are when an application is changed, new labels appear .Then users need to manually identify and send to translators only those labels which have been edited and have not been used in the previous version. Then the changed data should be integrated in the application.Extraction of new or changed labels from data base and file exchange by email causes loss of time.Keeping track of files sent to the translators and retrieving the translated files back from the translators for different projects, then forwarding them to respective application is also a tedious task. translation exists in the current system. No common pool of

4.3 Objectives of the Proposed System


The proposed system replaces the overhead incurred in current way of performing label translations. It will provide a unified translation application to manage the labels appearing in different web applications. The project aims at providing following benefits to the users of the system.Centralized management of application labels and their translations.Categorization of labels on the basis of projects and contexts for their easy identification. Display of only

relevant data to the translators, based on their language and the type of filter criteria.Status reporting for percentage of translated labels, newly added, modified, deleted labels. Manual as well as automated flow of translated labels to target applications.The proposed system offers
30

online access for Translators and Project Leaders. Target audiences of proposed system are any organization who develop internationalized applications and need to manage label translations for their applications.

4.4 Industry Analysis


4.4.1 Project Motivation India being the multilingual country, many web application require application interfaces in multiple regional languages. While implementing many projects and being faced with the challenges of managing translations of the keywords and labels, the company decided to go for a custom developed tool for translation. This formed the motivation for the Translation Tool.

31

5.SYSTEM ANALYSIS
The purpose of requirement analysis phase was to break requirement into atomic units so that it is easier to find out whether all requirements have been implemented into the tool or not. First use cases were obtained to get an overview detail of system functionality and then sequence of operations for each of these functions were broken down into unit requirements.

5.1 Proposed Functionality


Proposed functionality were described in the Translation Tool Proposal, Please refer to the proposal document for the required functionality.

5.2 Use Case Ananlyis


There are four actors in this system y y Administrator Who have access to all functionality of the application Project Leader Who have access to project level functionality to which they are associated to y y Translators Who have access to translation functionality only System Translation Tool application also acts as an actor in terms of displaying user interfaces, providing calculations for report statistics etc.

5.3 FUNCTIONAL REQUIREMENTS: 5.3.1 General Requirements


Translation Tool shall identify three types of roles, Administrator, Project Leader and Translator.Translation Tool shall provide complete access to all system functions to users having the Administrator role.

32

5.3.2 Administrator Operations


5.3.2.1User management Administrator shall be able to Create and Update new user to a project.Administrator shall be able to associate and dissociate a user to a project.Administrator shall be able to specify associated user as Project Leader or Translator.Administrator shall be able to associate one or more languages to a Translator.

5.3.2.2 Project management Administrator shall be able to perform Create, Read, Update and Delete on a translation project.Administrator shall be able to specify a reference language for created

project.Administrator shall be able to associate a project leader to a project.Administrator shall be able to associate one or more translators to a project.Translation Tool shall delete all the data linked to that project, if a project is deleted.

5.3.2.3 Project Leader Operations Project Leader shall be able to perform CREATE, READ and DELETE on a translation language for a project.Translation Tool shall delete all the data linked to a language, if the language is deleted from the project.Project Leader shall be able to change the reference language of a project.

5.3.2.4 Context Management Project Leader shall be able to associate one or more contexts to a project.Project Leader shall be able to perform CREATE & UPDATE on context.Project Leader shall update following

information while creating/editing a context.Project leader shall be able to perform CREATE and UPDATE on context project.Project Leader shall updatefollowing information while creating/editing a context y y Title. Code

33

5.3.2.5 Label Management Project Leader shall be able to perform CREATE, READ, UPDATE and DELETE on label. Translation Tool shall display label data based on following selection criteria: y y Label Context (including all). Label Marking (To be described, To be deleted, Deleted, All)

Translation Tool shall differentiate the display of labels with different markings like, To be described, To be deleted and Deleted.Translation Tool shall display labels in reference language of project.Project Leader shall be able to view following data for a label : y y y y Label Context and code Last modification date Label Usage Context description

Project Leader shall be able to modify following data for a label : y y Label Usage Context Description

Project Leader shall be able to select all the labels marked as to be deleted in one go and change their status to deleted.

5.3.2.6 View Statistics Project Leader shall be able to view statistics of label translation for a particular project with the following information: y y y y y y y Reference Language Total number of labels Number of active labels Number of labels marked to be deleted, deleted, and to be described Number of labels translated Number of labels yet to be translated Percentage of translations for the project
34

Percentage of translations for each language

Project Leader shall be able to view language wise display of label translations.Project Leader shall be able to validate the translations.Translation Tool shall provide the display by branch and context.Translation Tool shall highlight the labels which are not completely translated.

5.3.2.7 Translator Operations


Translatorsshall be able to view label data with the following filter criteria: y y y y Reference Language Translation Language Label Type (New, Edited, New & Edited, All) Label Contexts (Including All)

Translation Tool shall beable to display following data for each label to the translator. y y y y y Context and label code. State of the label (new, edited, and translated). Life cycle of the label (active, to be deleted). Label in the reference language selected by translator. Usage context description

Translation Tool shall highlight the labels having mark to be deleted, if the translator selects all labels to view. Translation Tool shall not display the labels marked as deleted.Translator shall be able to request for a usage context description for a label.

5.4 NON FUNCTIONAL REQUIREMENTS:


Translation tool shall support IE 5.0 and above browser version, for accessing the system.The best resolution to view Translation web pages shall be 1024x768.

35

6. SYSTEM REQUIREMENTS
Translation tool is a java based solution; therefore, it can virtually run on any platform with supported Java Virtual Machines. However for the current project implementation Windows has been utilized . as a platform. Following table provides list of used hardware and software configurations.

HARDWARE AND SOFTWARE REQUIREMENTS FOR APPLICATION SERVER:


y y y y y y y y y y Intel 2.4GHz processor 1 GB RAM, 512KB Cache CD-ROM 80 GB Disk space 17 CRT Monitor Windows XP Professional/ Windows 2000 server Tomcat 6 Internet Explorer 6 Oracle JDBC Driver DB Client/Query Tools for Oracle (TOAD)

HARDWARE AND SOFTWARE SERVER :


y y y y y y y y
y

REQUIREMENTS FOR DATABASE

Intel 2.4GHz processor 1GB RAM, 512KB Cache CD-ROM 80 GB HDD 17 CRT Monitor Windows Server 2003 (Standard / Enterprise edition) Oracle 10g Oracle 10g server DB Client/Query Toolsfor Oracle
36

7.SYSTEM DESIGN

7.1 DESIGN
This section describes detailed design of the system. Analyzed requirements form the basis of design.

7.2 OVERALL ARCHITECTURE


The application implements three-tier architecture with separate layers for UI, Business Logic and Database as shown in the diagram below. All users access the application with thin client using browsers on their personal computers. Request is sent over internet or intranet to application server. Application server get the detail from the database or makes an entry into the database to complete the process.

37

The application follows model view and controller pattern which is a standard architecture for any web application today. The main controller class in this application is TranslateController which is a servlet. The controller receives all the requests and based on functionality it transfersall the requests to business objects which internally make connection to database and generate data objects. These data objects are then passed to JSPs which display them on the User interface.

1 - Request URL

Controller

BO

4 - Load 5 - Redirects Client Machine 7-

3 Interrogates

JSP 6 Display

DO

DBMS

Business Objects These classes provide database access functions mainly for creating records in the database, update existing records in the database and deleting records. All Business objects have been prefixed with Bo .

Data Objects These classes provide object representation of database tables. These classes have been prefixed with Do .There are another types of data objects called Transfer data objects and have been prefixed with TDo . These data objects combine fields of multiple data objects.

38

7.3 DATABASE MODEL


Oracle is being used as a database for this application. Following section describes the database model with entities and their relationship and corresponding table structures.

7.3.1 ER Diagram

39

7.3.2 TABLE DESCRIPTION


7.3.2.1 CONTEXT

Columns Key Column name Domain Data type Number (10,0) Varchar2 (100) Varchar2 (100) Varchar2 (200) Not null Unique Check Default Description

PK CONTEXT_ID

YES NO

Unique context id

CONTEXT_CODE

NO

NO

Code of context

CONTEXT_NAME

NO

NO

Name of context Description context Project id to this belongs of

CONTEXT_DESC

NO

NO

FK PROJECT_ID

Number (10,0)

NO

NO

which context to

RELATIONSHIP Constraint (relationship) name LABEL_CONTEXT_FK (LABEL_CONTEXT_FK) CONTEXT_PROJECT_FK (CONTEXT_PROJECT_FK) Relationship type Parent table Child table Card.

Non-identifying CONTEXT LABEL

1:N

Non-identifying PROJECT

CONTEXT 1:N

40

7.3.3 LABEL

Columns Key Column name Domain Data type Number (10,0) Varchar2 (50) Not null Unique Check Default Description Unique identifier for label Label code Status of the Label, LAB_STATUS Number NO NO whether it is active or not

PK LAB_ID

YES NO

LAB_CODE

NO

NO

LAB_STATUS

Number

NO NO

Status of the Label, whether it is active or not Marking for the label as To be Translated or To be Described Field to indicate whether description is required or not Usage context description of the label Last modified date for the label

LAB_MARK

Number

NO NO

LAB_DEMAND_DESC Number NVarchar2 (500) Timestamp (6)

NO NO

LAB_DESC LAB_LAST_DATE

NO NO NO NO

FK CONTEXT_ID

Number (10,0)

NO NO

Context to which this label belongs to

41

RELATIONSHIP Constraint (relationship) name LABEL_CONTEXT_FK (LABEL_CONTEXT_FK) TRANSLATION_LABEL_FK (TRANSLATION_LABEL_FK) Relationship type Nonidentifying Nonidentifying Parent table Child table Card.

CONTEXT LABEL

1:N

LABEL

TRANSLATION 1:N

Description Table for storing label data

LANGUAGE

Columns Key Column name Domain Data type Number (10,0) Not null YES Unique Check Default Description Unique Identifier Language locale

PK LANG_ID

NO

LANG_LOCALE

Varchar2 (6) NO

NO

42

LANG_LOCALE LANG_NAME

Varchar2 (6) Varchar2 (20)

NO NO

NO NO

Language locale Language Name

Relationships Constraint (relationship) name PROJECT_LANGUAGE_LANGUAGE _FK NonLANGUA PROJECT_LANGUA GE 1:N Relationsh Parent ip type table Child table Car d.

(PROJECT_LANGUAGE_LANGUAG identifying GE E_FK) TRANSLATION_LANGUAGE_FK (TRANSLATION_LANGUAGE_FK) USER_LANGUAGE_LANGUAGE_FK (USER_LANGUAGE_LANGUAGE_F K) NonLANGUA

identifying GE NonLANGUA

TRANSLATION

1:N

identifying GE

USER_LANGUAGE 1:N

Description Table to store language data

43

PROJECT

Columns Key Column name Domain Data type Number (10,0) Varchar2 (100) Varchar2 (250) Date Not null Unique Check Default Description Unique identifier Name of the project Description of the project Project creation date

PK PROJECT_ID

YES NO

PROJECT_NAME

NO

NO

PROJECT_DESC

NO

NO

CREATION_DATE

NO

NO

Relationships Constraint (relationship) name CONTEXT_PROJECT_FK (CONTEXT_PROJECT_FK) PROJECT_LANGUAGE_PROJECT_F K NonPROJEC PROJECT_LANGUA T GE 1:N Relationshi Parent p type Nonidentifying table PROJEC T Child table Card . 1:N

CONTEXT

(PROJECT_LANGUAGE_PROJECT_F identifying K)

PROJECT_USER_PROJECT_FK (PROJECT_USER_PROJECT_FK)

Nonidentifying

PROJECT PROJECT_USER 1:N

44

Description Table to store project data

PROJECT LANGUAGE

Columns Key Column name Domain Data type Not null Unique Check Default Description To indicate if this IS_REFERENCE Number NO NO language is reference language FK PROJECT_ID Number (10,0) Number (10,0) NO NO

FK LANG_ID

NO

NO

Relationships Constraint (relationship) name PROJECT_LANGUAGE_LANGUAGE _FK NonLANGUA PROJECT_LANGUA GE 1:N Relationsh Parent ip type table Child table Car d.

(PROJECT_LANGUAGE_LANGUAG identifying GE E_FK) PROJECT_LANGUAGE_PROJECT_F K NonPROJECT

PROJECT_LANGUA GE

(PROJECT_LANGUAGE_PROJECT_F identifying K)
45

1:N

Description Table to store project and language references

PROJECT_USER

Columns Key Column name FK USER_ID Domain Data type Varchar2 (50) Not null NO Unique NO Check Default

FK

PROJECT_ID

Number (10,0)

NO

NO

Relationships Constraint (relationship) name PROJECT_USER_PROJECT_FK (PROJECT_USER_PROJECT_FK) PROJECT_USER_USER_INFO_FK (PROJECT_USER_USER_INFO_FK) Relationship type Nonidentifying Nonidentifying Parent table Child table Card.

PROJECT

PROJECT_USER 1:N

USER_INFO PROJECT_USER 1:N

Description Table to store project and user references

46

TRANSLATION

Columns Key Column name Domain Data type Number (10,0) NVarchar2 (500) Not null Unique Check Default Description Unique identifier Translation of the label Status of TRA_STATUS Number NO NO the translation FK LANG_ID Number (10,0) Number (10,0) NO NO translation language Translation label Last TRA_LAST_MODIFIED Timestamp (6) NO NO modified data for translation

TRA_ID

YES NO

TRA_UNICODE

NO NO

FK LAB_ID

NO NO

Relationships Constraint (relationship) name TRANSLATION_LABEL_FK (TRANSLATION_LABEL_FK) TRANSLATION_LANGUAGE_FK (TRANSLATION_LANGUAGE_FK) Relationship type Nonidentifying Nonidentifying
47

Parent table Child table

Card.

LABEL

TRANSLATION 1:N

LANGUAGE TRANSLATION 1:N

Description Table to store label translations for different languages

USER_INFO

Columns Key Column name Domain Data type Varchar2 (50) Varchar2 (100) Varchar2 (50) Not null Unique Check Default Description

PK USER_ID

YES NO

user identifier

USER_NAME

NO

NO

Name of the user

PASSWORD

NO

NO

password Type of user

USER_TYPE

Number

NO

NO

1)administrator 2) project leader 3) translator

Relationships Constraint (relationship) name PROJECT_USER_USER_INFO_FK (PROJECT_USER_USER_INFO_FK) Relationshi Parent p type Nonidentifying
48

table USER_INF O

Child table

Card . 1:N

PROJECT_USER

USER_LANGUAGE_USER_INFO_FK (USER_LANGUAGE_USER_INFO_F K)

Nonidentifying

USER_INF USER_LANGUAG O E

1:N

Description Project to store user information

USER LANGUAGE

Columns

Constraint (relationship) name USER_LANGUAGE_LANGUAGE_FK

Relationship type Non-

Parent table Child table

Card.

(USER_LANGUAGE_LANGUAGE_FK) identifying USER_LANGUAGE_USER_INFO_FK Non-

LANGUAGE USER_LANGUAGE 1:N

(USER_LANGUAGE_USER_INFO_FK) identifying Key Column name FK FK USER_ID LANG_ID Domain Data type Varchar2 (50) Number (10,0)

USER_INFO USER_LANGUAGE 1:N Not null NO NO Unique NO NO Check Default

Description Table to store user language association

49

CLASS DIAGRAM
Business Classes

50

Data Classes

51

TransferData classes

52

CLASS DESCRIPTION Business Classes Following table describes all the business Objects in the system Object Name BoIdGenerator BoAnscestor Description Class to Generate next identifier for different data objects Base class for all the Business object classes. Provides method to share database connections during a transaction. BoProject Bo Label BoContext BoUser Class to provide database operations for managing projects Class to provide database operations for managing labels Class to provide database operations for managing contexts Class to provide database operations for managing users and their user types BoProjectUser Class to provide database operations for managing Project user association BoProjectLanguage Class to provide database operations for managing Project language association BoTranslation Class to provide database operations for managing labels and their translations BoUtility Class to provide database operations for managing additional functionality for displaying items in combo boxes BoReportsView BoUserLanguage Class to provide database operations for displaying reports statistics Class to provide database operations for managing User and Language associations

53

Data Classes Following table describes all the data objects in the system Object Name DoProject DoLabel Description Data object for project information Data object for label table representation

DoContext DoUserInfo DoProjectUser DoProjectLanguage DoTranslation DoUserLanguage

Data Object for context data Data Object for user information storage Data Object for Project User association Data Object for Project Language Data Object for Translation Data Object for User Language Association

Transfer Data classes Following table describes all the transfer data objects Object Name TDoContext Description Provides additional fieds such as project name and context name also in the data object for context TDoLabel Provides additional details about context and translation of label along with the label information TDoProject Provides report data to be displyed in view statistics screen

54

8. TESTING

Testing plays a critical role in quality assurance for software .Due to the limitation of the verificationmethod for the previous phases, design and requirement fault also appear in the code. Testing is usedto detect these errors, in addition to the error introduced during coding phase.Testing is a dynamic method for verification and validation, where the system is to be tested is executed and behavior of the system is observed. Due to this testing the failure of the system can beobserved, from which the presence of fault can be deduced. However, separate activities have to beperformed to identify the faults. There are two method of testing: y y Functional Structural

In functional testing, the internal logicof the system under testing is not considered and the test cases are decided from the specification or the requirements. It is often called Black Box Testing. Equivalence class partitioning, boundaryanalysis, and cause effect graphing are examples of methods for selecting test cases for functionaltesting. In structural testing, the test cases are decided entirely on the internal logic of the program or module being tested.As the goal of testing is to detect any errors in the programs different flavor of testing are oftenused. Unit testing are used to test a module or a small collection of modules and the focus is ondetecting coding errors in modules. During integration testing modules are combined into sub-system which are then tested. The goal here is to test the system design. In system testing and acceptancetesting, the entire System is tested. The goal here is to test the requirement themselves. Structuraltesting can be used for unit testing while at higher level mostly functional testing is used.In the project Monthly Materialization Report System we used the unit testing and functionaltesting. System testing is a critical phase in systems implementation. Testing of a system involveshardware device testing and debugging of computer programs and testing information processingprocedures. Testing can be done with test data, which attempts to simulate all possible conditions thatmay arise during processing. The plane for testing are prepared and then implemented.The testing methods adopted in the testing of the system were Independent Unit Testing andSystem Testing

8.1 Independent Unit Test (IUT)


IUT focuses first on the modules, independently of one another, to locate errors. This enablesthe tester to detect errors in coding and logic that are contained within that module alone. Thoseresulting from the interaction between modules are initially avoided.

55

IUT is generally white box oriented which is predicted on the close examination of procedural detail. It exercises all the logical decisions on their true and false side, executes all loops attheir boundaries and within their operational bounds and checks whether the required validations havebeen met. White box testing exercises internal data structure to assure their validity.

8.2 SYSTEM TESTING


Here the system testing involved is the most widely used testing process consists of five stages asshown in the figure. In general, the sequence of testing activities is component testing, integration testingthen user testing. However, as defects are discovered at any one stage, they required program modificationsto correct them and this may require other stages in the testing process to be repeated.

Unit Testing User Testing

Module Testing

Sub System Testing Component Testing

System Testing

Integration Testing

Acceptance Testing

56

Testing is the process of detecting errors. Testing performs a very critical role for quality assuranceand for ensuring the reliability of the software. The results of testing are used later on duringmaintenance also.Testing is vital to the success of the system. System testing makes a logical assumption that if theparts of the system are correct, the goal will be successfully achieved. In adequate testing or non-testing leads to errors that may not appear until months or even years later (Remember the New Yorkthree day power failures due to a misplaced Break statement).This creates two problems: 1. The time lag between the cause and the appearance of the problem. 2. The time interval effect of the system errors on files and the records on the system. A small error can conceivably explode into a much larger problem. Effective testing early in the processtranslates directly into long term cost savings from a reduced number of errors.Another reason for system testing is its utility as a user oriented vehicle before implementation. The bestprogram is worthless if it does not meet the user requirements. Unfortunately, the users demands areoften compromised by efforts to facilitate program or design efficiency in terms of processing time or design efficiency.Thus in this phase we went to test the code we wrote. We needed to know if the code compiled with thedesign or not? Whether the code gave the desired outputs on given inputs. Whether it was ready to beinstalled on the users computer or some more modifications were needed. Through the web applications are characteristically different from there software counterparts but thebasic approach for testing these web applications is quite similar. These basic steps of testing have beenpicked from software engineering practices. The following are the steps, we undertook 1. The content of the Intranet site is reviewed to uncover Content errors. Content Errors covers thetypographical errors, grammatical errors, errors in content consistency, graphical representation andcross referencing errors. 2.The design model of the web application is reviewed to uncover the navigation errors. Use cases,derived as a part of the analysis activity allows a web designer to exercise each usage

57

scenarioagainst the architectural and navigational design. In essence these non-executable tests help touncover the errors in navigation. 3. When web applications are considered the concept of unit changes. Each web page encapsulatescontent navigation links, content and processing elements. It is not always possible to test each of these individually. Thus is the base of the web applications the unit to be considered is the web page.Unlike the testing of the algorithmic details of a module the data that flows across the module interface,page level testing for web applications is driven by content, processing and links encapsulating theweb page. 4. The Assembled web application is tested for overall functionality and content delivery. The varioususer cases are used that test the system for errors and mistakes. 5.The Web application is tested for a variety of environmental settings and is tested for variousconfigurations and upon various platforms. The modules are integrated and integration test are conducted. y Thread based testing is done to monitor the regression tests so that the site does not become very slow is a lot of users are simultaneously logged on. y A controlled and monitored population of end users tests Intranet application, this all comprises of theUser Acceptance Testing Because web application evolves continuously, the testing process is an ongoing activity, conducted byweb support staff in our case the Organizations people who will finally update and manage theapplication.

8.3 TESTING OBJECTIVES


The main objective of testing is to uncover a host of errors, systematically and with minimum effort andtime. Stating formally, we can say, 1.Testing is a process of executing a program with the intent of finding anerror. 2.A successful test is one that uncovers an as yet undiscovered error. 3.A good test case is one that has a high probability of finding error, if itexists.

58

4.The tests are inadequate to detect possibly present errors. 5.The software more or less confirms to the quality and reliable standards.

8.4 SYSTEM SECURITY


There are basically two types of security associated with this system:1.Physical security: -Damage due to natural causes like earth tremor, flooding, water logging, fire hazards,atmospheric or environmental conditions etc.For overcoming these difficulties the replica of the dataare automatically stored at various networks and for environmental conditions Air conditioning environment is created. 2. Data security: -There are basically two problems associated with data security:-1.Data not being available to the authorized person at the time of need.2.Data becoming available to the unauthorized person. To overcome these difficulties the following access facilities has been provided:y Identification: -Unique Ids for the different users have been provided.

Authentication: -System checks the password under the particular user identification. The computer permits thevarious resources to the authorized person.

Authorization: -The access control mechanism to prevent unauthorized logging to the system.

59

9. IMPLEMENTATION

System implementation is the stage when the user has thoroughly tested the system andapproves all the features provided by the system. The various tests are performed and the system isapproved only after all the requirements are met and the user is satisfied.The new system may be totally new; replacing an existing manual or automated system,or it may a major modification to an existing system. In the either case, proper implementation isessential to provide a reliable system to meet organization requirements .successful implementationmay not guarantee improvement in the organization using the new system (that is a design question) ,but improper will prevent it.Implementation is the process of having systems personal check out and put new equipment to use, train users, install the new application and construct any files of data needed tousle it. This phase is less creative than system design. Depending on the size of the organization that will be involve in using the application and the risk involved in its use, system developer may choose to test the operation in only one area of the firm with only one or two persons. Sometimes, they will run both old and new system in parallel way to compare the results. In steel other situations, system developers stop using the old systems one day and start using the new one the next. The implementation of the web based or LAN base network project has some extra steps at the time of implementation. We need to configure the system according the requirement of the software.

60

10. SNAPSHOTS

LOGIN SCREEN:
Provides login interface for the system, user logs in and user session is created after login. User role is identified based on loginid.

61

ADMINISTRATOR SCREEN:
First screen when administrator logs in into the system. He can see all the menu options

PROJECT MANAGEMENT:
Administration can create new projects and manage existing projects through this interface

62

ADD PROJECT:
Screen to create new project

UPDATE PROJECT
Screen to update an existing project

63

DELETE PROJECT
Administrators can select multiple projects using checkboxes and delete all the selected projects, all the information related to selected projects will be deleted including labels and their translations.

USER RIGHTS MANAGEMENT


This screen provides interface for creating, updating and deleting users

ADD NEW USER


Interface to add new user

64

EDIT USER
Screen for updating an existing users, user id cant be modified

DELETE USER
Administrator can select multiple users and they can delete all of them, if user is not associated to any project. If user belongs to a project , it cant be deleted

65

UPDATE PROJECT DETAILS


Using this interface project leaders and administrators can add one or more translation languages to the project. They can also change the reference language of the project.

CONTEXT MANAGEMENT
Interface to Create, read, update and delete context for labels. Context defines the top level menu in the hierarchy. For example in this application administration, Project, translation and report . User can selet projects from combo box and contexts will be listed from that project

66

ADD NEW CONTEXT


Interface to add new context into the system

EDIT CONTEXT
Interface to update an existing context

67

DELETE CONTEXT
Interface to delete one or more contexts for the selected projects.

LABEL MANGEMENT
Interface to manage application labels. Labels can be added for a project and context. Based on selection of project and context labels will be displayed. Administrators and project managers can add, delete, mark a label as deleted or restore a deleted label. If usage description is asked for. They can update the usage description as well.

68

ADD NEW LABELS


Interface to add new labels

VIEW STATISTICS
This interface provides statistics of crrent status of translation for each project, context and Language to give an overview of translation status.

The report can be viewed by any user role.

69

PROJECT LEADER LOGIN


Project Leaders do not have project management and User right management capabilities, therefore, they can see only three menu options.

TRANSLATION
Translation screen can be accessed by translator users only. They can select a reference language for translation and then they can translate it in their own language.

LOGOUT SCREEN
Logout screens, ends the user session and takes him out of the application

70

11. CONCLUSION

This is a well-defined job of our team that has taken six weeks to analyze the situation in which this project will work and the environment of the company that will use this project. It was a good experience for us to work in a company that has a very friendly environment and learningatmosphere. I am very thankful to Mr. Kumar Gaurav who gave a lot of good programming skills andso many company related skills that will help me in the future. I am also thankful to all my friends and team members

71

12.FUTURE SCOPE OF THIS PROJECT


In future this project can be treated as product according to specification and needs of any organization.

Since there are different kinds of languages in this world, so It is required to provide a TRANSLATION TOOLS for the users. It provides a convienent support for the users to access the website.

At present days every organization is using Translation Tool for their proper functioning, so this web based project is all in all important from market aspects.

Furthermore if this project will be uploaded, it can be used as Jobs site and any organization can register their self on the site to carry out their recruitment process making this site as Jobs seeker.

12.1 LIMITATIONS

Since, every system has some limitations so our proposed system is also not untouchable in this regard. Although it includes every kind of features but it cant be used in a huge organization where number of networks are very large, because the data base used in this system is an average one. Also it doesnt have different kind of access feature for different users.

12.2 SOFTWARE SCOPE


y Reusability Reusability is possible as and when we require in this application. We can update it next version. Reusable software reduces design, coding and testing cost by amortizing effort over several designs. Reducing the amount of code also simplifies understanding, which increases the likelihood that the code is correct. We follow up both types of reusability: Sharing of newly written code within a project and reuse of previously written code on projects.
72

new

Extensibility This software is extended in ways that its original developers may not expect. The following principles enhance extensibility like Hide data structure; avoid traversing multiple links or methods. Avoid case statements on object type and distinguish public and private operations.

Robustness Its method is robust if it does not fail even if it receives improper parameters. There are some facilities like Protect against errors, Optimize after the program runs, validating arguments and Avoid predefined limits.

Understandability A method is understandable if someone other than the creator of the method can understand the code (as well as the creator after a time lapse). We use the method, which small and coherent helps to accomplish this.

Cost-effectiveness Its cost is under the budget and make within given time period. It is desirable to aim for a system with a minimum cost subject to the condition that it must satisfy the entire requirement.

73

13. REFERENCES

1. http://www.cmcltd.com/ 2. http://www.w3schools.com/php/default.asp 3. http://en.wikipedia.org/wiki/Php 4. http://www.tizag.com/mysqlTutorial/ 5. http://oreilly.com/catalog/9781565926813 6. http://www.naukri.com/ 7. http://www.monsterindia.com/ 8. (E-book) O'Reilly - HTML guide 3rd Ed 1998

74

Вам также может понравиться