The Benefits of CodeFutures FireStorm/DAO
How does FireStorm/DAO cut costs?
CodeFutures' code generation approach cuts costs by providing faster and cheaper application development, higher quality applications, more predictable and consistent results, faster software product development cycle times, faster time to market for commercial application development, reduced project costs, and reduced project risks. CodeFutures approach ensures that the focus of software developers is solving business problems.
FireStorm/DAO provides a direct, measurable return-on-investment by immediately cutting software development costs. Read what CodeFutures' customers have to say.
Cut Costs with Measurable Productivity Gains
"The key to successful software development projects is increasing productivity and removing unnecessary time and cost. Using FireStorm/DAO, our customer saved three months of development effort on a Web Services project by generating the persistence tier for a 500-table legacy database in a matter of minutes. Now that's productivity." Annrai O'Toole, CEO, Cape Clear Software
Generating code by definition is always going to be much faster than hand coding. FireStorm/DAO accelerates development projects by removing the hand-coding part of the typical design, code, and test development cycle. There is no need to change existing development processes. The point in the development cycle when hand coding normally starts is replaced by code generation, which takes a small fraction of the time. As a general guideline, when using FireStorm/DAO with a reasonably large (over 20 tables) database, there is approximately a twenty-fold productivity increase compared with hand coding the Java persistence code.
"Automatically generating code is always going to be much faster than hand coding. Using FireStorm/DAO is about twenty times faster for a database with 20 tables."
Jim Michael, CEO, 10 Squared Corporation
Enhanced Quality Reduces Ongoing Costs
The quality benefits of code generation include:
- Better software design
- Business focus
- Consistent design practices
- Fewer errors
Better Software Design
Using the design templates provided by CodeFutures ensures that developers are automatically producing code that follows the best practices available. The code is error free, well documented, and high performance.
“FireStorm/DAO is a great tool not only for rapidly prototyping, but also for doing production quality code. During code reviews and load testing, we have found that the code generated by FireStorm/DAO performs exceptionally well.” Robert Peck, Lead Architect, Ahold USA
Business Rather Than Technical Focus
Automatic code generation ensures that software developers are more likely to be focused on the business requirements than the more mundane task of coding or the technical problems associated with architecting a Java persistence solution.
“We've found that automatic DAO generation using FireStorm/DAO ensures our developers spend less time on repetitive and mundane coding tasks, so their attention is on the business requirements and software testing. This also translated into better quality code that is uniform and easier to maintain” Chris Knauft, Senior Principle Software Engineer, Cubic Transportations Systems, Inc.
“I've been developing software for more than 10 years and at least 30 percent of that time has been spent writing code in the data access layer. FireStorm/DAO virtually eliminates coding data access, leaving much more time to focus on the business problem at hand.” James Bowling, Senior Software Engineer, SkyCreek Corporation
Consistent Design Practices
FireStorm/DAO provides a consistent approach across multiple projects, multiple development teams, and against multiple types of database product.
“Before we purchased FireStorm/DAO we were writing our DAOs by hand. As a result of this, our code was inconsistent because each developer had a different way of writing his or her code. Now that we use FireStorm/DAO, our data access code is consistent across all applications, this in turn makes it easier to maintain and troubleshoot applications because our developers only have to be familiar with one style of DAO code.” Rodney Distler, Missouri Lottery
"We use several different database products. FireStorm/DAO provides a consistent approach to data persistence across the different databases." Cristopher Daniluk, VP of Technology, DSNet
Fewer Errors Reduces Testing and Debugging Costs
Generated code will always have fewer errors than hand written code, due to the elimination of typos, human error, and so on. There can be as many as 20 or 30 bugs per 1,000 lines of software code (source: Sustainable Computing Consortium), so eliminating bugs in a complex part of an application architecture will always result in reduced testing and debugging time. It also means that testing can focus more on delivering on the business requirements, rather than elimination of technical faults.
Lower Ongoing Maintenance Costs
According to the National Institute of Standards and Technology, developers spend about 80% of development costs on identifying and correcting defects. The code generated by FireStorm/DAO is very easy to understand and therefore easier to maintain. Having large sections of code automatically generated reduces the amount of code that has to be manually documented and maintained. Ongoing maintenance costs are reduced because it is easier to regenerate code than hand code changes when there are new business requirements that require database schema changes.
"FireStorm/DAO has been a huge productivity tool, saving us hundreds of hours on one project alone. However, its true value has been substantially reducing the amount of code our team needs to maintain over the life of the project." Cristopher Daniluk, VP of Technology, DSNet, Inc.
What are the technical benefits of FireStorm/DAO?
No Database Changes Required
FireStorm/DAO does not require any changes to database stored procedures, views, or tables. FireStorm/DAO is not limited to simple single-table operations but can also leverage the power of the relational database by generating Custom DAO classes that make use of complex SQL statements, including table joins. This means that FireStorm/DAO can be used straight away with existing databases, including production databases via a JDBC connection.
For project managers, this reduces the amount of risk in a project that involves live/production databases.
Data Access Objects are a Core J2EE Pattern and provide a sustainable Java persistence architectural strategy regardless of the technology used. In addition, FireStorm/DAO makes it possible to switch between the different persistence technologies by generating code based on the leading technologies (JDBC, JDO, EJB CMP, Hibernate). By insulating the data persistence DAO architecture from the technology choice, application architectures are future-proofed.
FireStorm/DAO makes it easy to establish and maintain internal standards, such as variable naming conventions, and ensures that all developers produce consistent Java persistence.
High Performance Code
CodeFutures has invested a considerable amount of time and effort to ensure that the code generated out-of-the-box by FireStorm/DAO performs exceptionally well. CodeFutures had developed considerable specialist expertise in Java persistence, which means that the default code generated by FireStorm/DAO usually performs better than the hand-written code produced by less specialized developers. In addition, with FireStorm/DAO Architect Edition, it is possible to customize the code generation templates to generate code that is optimized for the specific requirements of a particular application.
The code generated by FireStorm/DAO is fully portable between stand-alone Java and Enterprise Java. The code is also portable between Application Servers (ensuring no lock-in). The generated code conforms to the Data Access Object (DAO) design pattern, which is a Core J2EE Design Pattern. The widespread acceptance of the Core J2EE Design Patterns means that many software developers are familiar with the DAO architecture, which improves also code portability.
The generated source code is well-written, consistent and contains documentation. Most importantly, the generated code is production quality and has been tested in hundreds of deployments worldwide.
FireStorm/DAO does not require proprietary runtime libraries.
Shorter Development Cycles
Application development cycles are shorter using a code generation approach. The design phase of projects is reduced because the data persistence architecture takes much less time. The coding time is reduced to a small fraction of the time required to manually code. The testing time takes less because there are fewer errors, with simple human errors like typos completely eliminated.
A key benefit of short development times is that projects can be completed before business requirements evolve or change.
Accelerated development cycles can also provide competitive advantages through shorter time-to-market for working business applications.
Generated code takes less time to test because it is free of errors such as typos. It is also possible to integrate the output of FireStorm/DAO with automated test systems, for example, using ANT tasks.
Professional Product Packaging
User Friendly Interface
FireStorm/DAO includes an intuitive graphical user interface that ensures a short learning curve and helps makes code generation and regeneration very fast.
The entire approach of FireStorm/DAO is user friendly because it is simple. The generated code provides a one-to-one mapping between Java objects and database tables, which is simpler than using a complex mapping tier.
No Proprietary Runtime Libraries Required
There is no vendor lock-in through proprietary runtime libraries.
Compatible with Existing Development Processes
The existing development processes within an organization do not have to be changed to accomodate FireStorm/DAO. The main effect is that the certain phases of a development project accelerated. FireStorm/DAO can be integrated with existing automated build systems.
Easy Installation and Configuration
FireStorm/DAO is professionally packaged and preconfigured so that developers can download and start working within a few minutes.
Where is FireStorm/DAO used?
There are several scenarios where FireStorm/DAO is ideal:
- FireStorm/DAO makes development projects with changing or evolving business requirements much easier to handle. When database changes are made, the DAO generator can be used to quickly regenerate code.
- FireStorm/DAO is ideal in large organizations with multiple development teams or where there are multiple development projects because it ensures a consistent approach to the common task of database access.
- FireStorm/DAO is useful in organizations with multiple database products (Oracle, MySQL, and so on). A consistent approach can be taken across the range of different databases.
- Automated code generation tools such as FireStorm/DAO are ideal for rapid prototyping and proof-of-concept projects.
- In small development teams with few resources to waste, FireStorm/DAO can save many development, debugging, and testing hours. Saving time is proportionally more important in smaller teams.
- FireStorm/DAO can be used in projects that require very quick results because very little training is required.
- FireStorm/DAO can be used to address certain skill shortages. It is particularly useful for software developers with database skills that may not have sufficient Java experience to write Java persistence code from scratch.