Science Current Events | Science News | Brightsurf.com
 
Email a Friend Send to a friend
Printer Friendly Print Carnegie Mellon develops Java programming tools employing human-centered design techniques

Carnegie Mellon develops Java programming tools employing human-centered design techniques

June 18, 2009

PITTSBURGH-Researchers at Carnegie Mellon University's School of Computer Science have developed two new tools to help computer programmers select from among thousands of options within the application programming interfaces (APIs) that are used to write applications in Java, today's most popular programming language.

The tools - Jadeite (www.cs.cmu.edu/~jadeite) and Apatite (www.cs.cmu.edu/~apatite) - take advantage of human-centered design techniques to significantly reduce the time and guesswork associated with finding the right classes and methods of APIs.




APIs are standardized methods that a Java program uses to ask the computer's operating system or another program to do something, such as opening a file or sending an email. Choosing APIs for accomplishing a given task is at the heart of Java programming, but is not intuitive, said Brad A. Myers, professor of human-computer interaction. With more than 35,000 methods listed in 4,100 classes in the current Javadoc library of APIs - and more being added in every new version - not even the savviest developer can hope to be familiar with them all.

"This is a fundamental problem for all programmers, whether they are novices, professionals or the growing number of end-users who just need to modify a Web page," Myers said. "It's possible to design APIs so that they are easier to use, but that still leaves thousands of existing APIs that are hard to use but essential for Java programming. Jadeite and Apatite help programmers find what they need among those existing APIs."

Jadeite (Java Documentation with Extra Information Tacked-on for Emphasis) improves usability by enhancing the existing Javadoc documentation. For instance, Jadeite displays the names of API classes in font sizes that correspond with how heavily used they are based on Google searches, helping programmers navigate past little-used classes. The commonly used "PrintWriter" is in large, prominent letters, while the lesser used "PrintEvent" is in smaller type.

Jadeite also uses crowd-sourcing to compensate for the fact that an API sometimes doesn't include methods that programmers expect. For instance, the Message and MimeMessage classes don't include a method for sending an email message. So Jadeite allows users to put so-called placeholders for these expected classes and methods within the alphabetical listing of APIs. Users can edit the placeholder to guide programmers to the actual location of the desired method, explain why a desired method is not part of the API, or note that a desired functionality is impossible.

Finding the way to create certain types of objects, such as SSL sockets that enable secure Internet communications, may not be obvious to programmers the first time they encounter these objects. In these cases, Jadeite includes examples of the most popular code used by programmers to create these objects, allowing the user to learn from the examples.

User studies showed that programmers could perform common tasks about three times faster with Jadeite than with the standard Javadoc documentation.

Apatite (Associative Perusal of APIs That Identifies Targets Easily) takes a different approach, allowing programmers to browse APIs by association, seeing which packages, classes and methods tend to go with each other. It also uses statistics about the popularity of each item to provide weighted views of the most relevant items, listing them in larger fonts.

Both Jadeite and Apatite remain research tools, Myers said, but are available for public use. Broader use of the tools will enhance the crowd-sourcing aspects of the tools, while giving the researchers important feedback about how the tools can be improved.

Research by Jeffrey Stylos, who was awarded a Ph.D. in computer science this spring, underlies both Jadeite and Apatite. Besides Myers, research programmer Andrew Faulring and undergraduate computer science student Zizhuang Yang contributed to the development of Jadeite and computer science undergraduate Daniel S. Eisenberg led the implementation of Apatite. Eisenberg's work on Apatite earned first place in the Yahoo! Undergraduate Research Awards competition at Carnegie Mellon this spring.

Carnegie Mellon University



Related Java Programming Current Events and Java Programming News Articles
Software helps military aircraft techncians centralize maintenance
Aircraft technicians these days are as likely to use a laptop as a printed manual and logbook, and to turn to the Internet for the latest job-status reports and technical information.

Academics find that the finger of destiny points their way
Male scientist are good at research because they have the hormone levels of women and long index fingers, a new study says.

Media arts on the Internet
For those who work with digital media, or provide instruction on its use, www.netzspannung.org offers a comprehensive archive - particularly in media arts. The platform has been enhanced with new sections devoted to media arts research and education as well as research tools. --- View the rooms of the Kremlin as they looked 500 years ago. Visit synagogues demolished during the Third Reich. Bring the ruins of antique cities back to life. All of this is possible - at least virtually. These three forays into past cultural heritage are projects that exemplify the link between the arts and research. And all three can be explored in the new media arts research section of netzspannung.org. This com

A turbo compressor for mobile surfers
Despite faster Internet connections, many users still resentfully associate the three letters www with "world wide wait". This is also due to the fact that files are constantly increasing in size. When using wireless terminals with low-resolution displays, such as palmtops or PDAs, it is not in fact necessary to transfer all elements of a Web page, designed for display on large, high-resolution monitors. Although mobile service providers offer solutions to this problem, access is then limited to preselected sites, in the same way as the WAP service.
More Java Programming Current Events and Java Programming News Articles
Effective Java (2nd Edition)

Effective Java (2nd Edition)
by Joshua Bloch (Author)

Raves for the First Edition!

 

“I sure wish I had this book ten years ago. Some might think that I don’t need any Java books, but I need this one.”

–James Gosling, fellow and vice president, Sun Microsystems, Inc.

 

“An excellent book, crammed with good advice on using the Java programming language and object-oriented programming in general.”

–Gilad Bracha, coauthor of The Java™ Language Specification, Third Edition

 

“10/10–anyone aspiring to write good Java code that others will appreciate...

Head First Java, 2nd Edition

Head First Java, 2nd Edition
by Kathy Sierra (Author), Bert Bates (Author), Sierra Kathy (Author), Bates Bert (Author)

Learning a complex new language is no easy task especially when it s an object-oriented computer programming language like Java. You might think the problem is your brain. It seems to have a mind of its own, a mind that doesn't always want to take in the dry, technical stuff you're forced to study.

The fact is your brain craves novelty. It's constantly searching, scanning, waiting for something unusual to happen. After all, that's the way it was built to help you stay alive. It takes all the routine, ordinary, dull stuff and filters it to the background so it won't interfere with your brain's real work--recording things that matter. How does your brain know what matters? It's like the creators of the Head First approach say, suppose you're out for a hike and a tiger jumps in front...

Introduction to Java Programming, Comprehensive Version (7th Edition)

Introduction to Java Programming, Comprehensive Version (7th Edition)
by Y. Daniel Liang (Author)

Groundbreaking fundamentals — first approach enables readers to understand the basics before being introduced to more challenging topics. Liang offers one of the broadest ranges of carefully chosen examples, reinforcing key concepts with objectives lists, introduction and chapter overviews, easy-to-follow examples, chapter summaries, review questions, programming exercises, and interactive self-test. Now uses standard classes only. Offers new chapters on data structures, JSF for visual Web development, and Web services; includes a new standalone chapter on the full GUI library. Uses UML diagrams in every example starting chapter 8. Includes additional notes with diagrams. Comprehensive coverage of Java and programming make this a useful reference for IT...

Beginning Programming with Java For Dummies (For Dummies (Computer/Tech))

Beginning Programming with Java For Dummies (For Dummies (Computer/Tech))
by Barry Burd (Author)

Covering everything from basic Java development concepts to the latest tools and techniques used in Java, this book will put would-be programmers on their way to Java mastery Explores what goes into creating a program, how to put the pieces together, dealing with standard programming challenges, debugging, and making it work Updated for the release of the Java SDK 2.0, with all examples revised to reflect the changes in the technology

Sams Teach Yourself Programming with Java in 24 Hours (4th Edition)

Sams Teach Yourself Programming with Java in 24 Hours (4th Edition)
by Rogers Cadenhead (Author)

If you have been wanting to learn Java, check out the newly revised fourth edition of the best-seller Sams Teach Yourself Programming with Java in 24 Hours. This step-by-step tutorial will teach you how to create simple Java programs and applets. Comprised of 24 one-hour lessons, this new edition focuses on key programming concepts and essential Java basics, has been improved by dozens of reader comments, and is reorganized to better cover the latest developments in Java. The book's coverage of core Java programming topics has also been expanded. A great starting point for learning Java, this book is also a great primer to reading sams Teach Yourself Java in 21 Days.



Effective Java: Programming Language Guide (Java Series)

Effective Java: Programming Language Guide (Java Series)
by Joshua Bloch (Author)

(Pearson Education) Working solutions to programming challenges faced by Java developers on a daily basis, revealing what to do to produce clear, robust and efficient code. Include rules in short essay form, and the author's 'war stories,' giving advice and insights into nuances of the language. Softcover.

Java In A Nutshell, 5th Edition

Java In A Nutshell, 5th Edition
by David Flanagan (Author), Flanagan David (Author)

With more than 700,000 copies sold to date, Java in a Nutshell from O'Reilly is clearly the favorite resource amongst the legion of developers and programmers using Java technology. And now, with the release of the 5.0 version of Java, O'Reilly has given the book that defined the "in a Nutshell" category another impressive tune-up.

In this latest revision, readers will find Java in a Nutshell, 5th Edition, does more than just cover the extensive changes implicit in 5.0, the newest version of Java. It's undergone a complete makeover--in scope, size, and type of coverage--in order to more closely meet the needs of the modern Java programmer.

To wit, Java in a Nutshell, 5th Edition now places less emphasis on coming to Java from C and C++, and adds more discussion on tools...

Java How to Program, 7th Edition

Java How to Program, 7th Edition
by Harvey M. Deitel (Author), Paul J. Deitel (Author)

 

The Deitels' groundbreaking How to Program series offers unparalleled breadth and depth of object-oriented programming concepts and intermediate-level topics for further study. The Seventh Edition has been extensively fine-tuned and is completely up-to-date with Sun Microsystems, Inc.’s latest Java release — Java Standard Edition 6 (“Mustang”) and several Java Enterprise Edition 5 topics. Contains an extensive OOD/UML 2 case study on developing an automated teller machine. Takes a new tools-based approach to Web application development that uses Netbeans 5.5 and Java Studio Creator 2 to create and consume Web Services. Features  new AJAX-enabled, Web applications built with JavaServer Faces (JSF), Java Studio Creator 2 and...

Java For Dummies

Java For Dummies
by Barry Burd (Author)

Start building powerful programs with Java 6—fast!

Get an overview of Java 6 and begin building your own programs

Even if you're new to Java programming—or to programming in general—you can get up and running on this wildly popular language in a hurry. This book makes it easy! From how to install and run Java to understanding classes and objects and juggling values with arrays and collections, you will get up to speed on the new features of Java 6 in no time.

Discover how to Use object-oriented programming Work with the changes in Java 6 and JDK 6 Save time by reusing code Mix Java and Javascript with the new scripting tools Troubleshoot code problems and fix bugs

All on the bonus CD-ROM Custom...

Learning Java

Learning Java
by Patrick Niemeyer (Author), Jonathan Knudsen (Author)

Version 5.0 of the Java 2 Standard Edition SDK is the most important upgrade since Java first appeared a decade ago. With Java 5.0, you'll not only find substantial changes in the platform, but to the language itself-something that developers of Java took five years to complete. The main goal of Java 5.0 is to make it easier for you to develop safe, powerful code, but none of these improvements makes Java any easier to learn, even if you've programmed with Java for years. And that means our bestselling hands-on tutorial takes on even greater significance.

Learning Java is the most widely sought introduction to the programming language that's changed the way we think about computing. Our updated third edition takes an objective, no-nonsense approach to the new features in Java...

© 2009 BrightSurf.com