Entry Title

Automating software development

Submitted by:

Britesoft Corporation

Contact Name:

Jaya Sinnathamby

Phone:

703-880-1618

E-mail:

jaya@britesoftcorp.com

Address:

2525 Trophy Lane

Reston, VA 20191

Logo:

 


Product / Component Name & Brief Description:

Provide the Tool's name and a brief description (50 words maximum).

 

BriteWorks automates software development of enterprise-class applications. Small teams build systems 20 times faster than conventional means. All without any coding. Development is a combination of modeling via visual editors and configuration of many inbuilt features such as security, audit and localization. Changes can be made on the fly.

 


Operating Environment:

Describe the computer operating system, technical environment, system resource requirements, ancillary software if applicable) , etc.

 

Any OS that supports a modern Java Virtual Machine (JVM) – Windows, Unix, Linux, I-Series, Z-Series, etc.

A Web Server such as Tomcat.

An application server is not required, though it works with JBOSS and other J2EE app servers.

CPU 2MHz, 1 GB RAM, minimum.

 


Product/Component Detailed Description:

Provide a detailed description of your Extraordinary Tool (400 words max).  Explain how it helps to create performance-centered systems and what is unique about the tool.

 

BriteWorks implements model-driven development (MDD) by providing you with a generic shell-application that can be configured to suit your specific business requirements. It shifts the focus away from the underlying technology to the business functionality and application domain.

 

Unlike other MDD approaches, BriteWorks does not generate code, nor does it require you to do any coding. Systems are executable instantly, so users become active participants throughout the development cycle.

 

BriteWorks also includes many non-functional requirements that are essential for enterprise-class applications such as authentication/authorization, audit, query/reporting and internationalization/localization.

 

We have already seen the huge success of ERP applications that essentially provided an information model that could be ‘customized’ to the needs of many large businesses that considered themselves to be unique. 

 

We have extended that philosophy, taking advantage of the advances in patterns, languages, tools, frameworks and SOA. We go beyond ‘customization’ that required knowledge of implementation details.

 

The new paradigm is ‘configuration’.

 

By focusing on a class of applications that are data-centric and transaction oriented, we have developed a platform that can be configured to satisfy the needs of a very large class of business applications for distributed deployment. Visual editors guide you through the configuration process, shielding you from the underlying technology.

 

BriteWorks applications are built on the foundation of modeling behavior on the top of the domain model. Application development in BriteWorks is a 3-step process: 1) Model the data and business objects 2) Define the events and actions 3) Deploy.

 

Step 1 - Introduce the domain model, in the form of the data model and business objects. BriteWorks has a very powerful data management facility that supports interaction with any JDBC RDBMS simultaneously and it provides a unified view of heterogeneous data sources without the developer having to concern himself with SQL. Web services are also handled naturally as another data source shielding the designer from its complexities.

 

Step 2 - The IDE provides a canvas for the developer to declare the business rules, design the menus and windows, and define the transaction flow using drag and drop. Most business ‘data processing’ systems are defined within BriteWorks without resorting to any handcrafted coding at all. But the system can be extended easily via ‘plug-ins’.

 

Step 3 – Deploy. Modeled system is executable instantly. 

 

Because partial designs can be executed immediately without any programming effort, models become an instrument for thinking about and exploring requirements. Prototyping becomes the norm and the prototypes are always robust enough to be turned into production systems that evolve as requirements are better understood and needs better defined.

 

Users are not pressured into committing to any particular approach, but can sit alongside designers to explore a variety of interaction opportunities. Menus and interfaces can be tailored and honed to support specific business cases/rules and to specific roles. Application design becomes fluid and the fear of becoming locked into a rigid, inflexible system gives way to highly pliable systems that can be easily adapted or changed completely to ever-changing needs.

 


Product use:

List/describe who uses the tool and for what purpose.  Include how long your tool has been available for general use (400 words max).

 

BriteWorks has been available since October 2004 and has been in general availability since January 2005.wh

 

Conventionally, designers design things, engineers engineer things and builders build things. BriteWorks collapses these phases by following a descriptive rather than a prescriptive approach. A single model provides a cohesive entity, so nothing is lost in translation. BriteWorks is typically used by business analysts and developers familiar with data modeling. Power users and domain experts can be trained within a week to use it to develop sophisticated applications.

 

BriteWorks is a full-fledged development platform that can be used to create a variety of business applications limited only by creativity and imagination. Its ease of use and simplicity now empowers you to develop applications that are more complex than those that you would not have dared create before. Here are some examples:

 

i. New applications from scratch

ii. Modernizing legacy applications with a new Web and/or client/server  interface

iii. Extending functionality of legacy applications non-invasively

iv. Composite applications – integrating fragmented user-interfaces into a unified interface

v. Integrating disparate information silos

vi. Consuming web services in an SOA environment

 

Many capabilities that are desirable, but considered to be a luxury are automatically available to BriteWorks applications:

 

·         Security – seven levels of security, the most appealing of which is row / data level security

·         Auditing – logging of any change (user definable) made to the application data by end users

·         Internationalization – Automatic, context sensitive (i.e. left-to-right and right-to-left) runtime change in language.  Includes double-byte. You can even create your own language if you so wish.

·         Import/Export – facilities to define import and export formats, the invocation of import and export as well as a log of all such activities.  Here, you can actually define almost any format, including those that have headers, details, trailers and associate with your database.  You can import from Excel or CSV files.

·         Local Caching – ability to ‘download’ part of the data you require, work offline (without network or internet connection) and then connect and synchronize your changes. This is useful for reducing bandwidth usage and avoids the need to go to the server for every action.  Locally, the data will be stored in an embedded database to avoid tampering with the data.

·         User Options – various preferences for end users, including setting default values for any window field, creating their own menus, look and feel etc.

.

 

 

 


What difference does this tool make?

What difference does your tool/product/component make with respect to supporting performance; i.e. why should we care about it (300 words max)?

 

Some of you maybe familiar with the concept of Model-View-Controller (MVC). Simply put, this is a best practice for decoupling the user interface from the data model. Data models are typically very stable, but business processes change. Even as this separation of concerns is hugely beneficial, handcrafting such solutions is not only tedious and laborious, but also complex and error-prone. Scripting languages are all the rage now, because they make interactivity more accessible, but they are still of the same mold. Factor in the needs of specific user groups and roles, the proliferation of new technologies in the form of displays and mobile devices, and you begin to see that handcrafted solutions simply do not scale.

 

BriteWorks provides a higher level of abstraction, as MVC is architected into the system at its foundation. The use of ‘business objects’ gives you the ability to reuse abstractions across many different views without having to be an expert in ‘patterns’ and or re-factoring code for re-usability.

 

With this approach, you can provide different groups of users task-specific interfaces that enhance their productivity. Users can also tailor the interface to their specific needs without compromising security. When business rules change, changes can be made centrally to the business objects and all processes that are impacted by the change will automatically inherit the changes, without having to manually code them.

 

Think of it as providing ‘wizards’ without having to handcraft them.

 


What else makes this tool extraordinary?

Describe anything else that contributes to this being an extraordinary entry (200 words max). Delivery timescales, ease of implementation, support cost reduction, etc.

 

BriteWorks brings an order of magnitude improvement in development productivity. BriteSoft has undertaken several projects using BriteWorks where our prototypes were deemed by the customer to be 80% of the solution, even as the competition was working on sizing the project!

 

The productivity gains achieved using BriteWorks are perhaps most easily understood when comparing the lines of code and time taken to complete the reference blueprint of the Java PetStore published by Sun. Whereas it took over 14,000 LOC in Java for the J2EE implementation and over 4,000 LOC in VB for the .Net implementation it took just 14 LOC in BriteWorks. Whereas the J2EE implementation and the .Net implementation were team efforts that took months and weeks, a junior developer took a mere 4 days using BriteWorks.

 

Maintenance is simplified, as it is done at the model level and at higher level of abstraction. The BriteWorks approach is descriptive rather than prescriptive and as such changes are highly centralized without the ripple effect of unintended consequences.

 

Perhaps the most compelling aspect of BriteWorks is the ability to toggle between execution and design mode instantly. Users experience instant gratification, though an unintended consequence is that users become more demanding!