Delivery Models
Project Management
Reusable Frameworks
Software Development
JB Software’s Reusable Frameworks for Rapid Application Development and Deployment
JB Software’s Object-Oriented Application Frameworks are a promising technology for reifying proven software designs and implementations in order to reduce the cost and improve the quality of software. Our frameworks are reusable, semi-complete applications that can be specialized to produce custom applications. In contrast to earlier reuse techniques that are based on class libraries, frameworks are targeted for particular business units (such as data processing or mobile communications) and application domains (such as user interfaces or real-time avionics). Frameworks like MacApp, ET++, Interviews, ACE, Microsoft's MFC and DCOM, RMI, and CORBA play an increasingly important role in contemporary software development.The primary benefits of our Object Oriented application frameworks stem from the modularity, reusability, extensibility, and inversion of control they provide to developers, as described below:
Frameworks enhance modularity by encapsulating volatile implementation details behind stable interfaces. Framework modularity helps to improve software quality by localizing the impact of design and implementation changes. This localization reduces the effort required to understand and maintain existing software.

The stable interfaces provided by our frameworks, enhance reusability by defining generic components that can be reapplied to create new applications. Our Framework reusability leverages the domain knowledge and prior effort of experienced developers in order to avoid re-creating and re-validating common solutions to recurring application requirements and software design challenges. Reuse of framework components can yield substantial improvements in programmer productivity, as well as enhance the quality, performance, reliability and interoperability of software.
Our framework enhances the extensibility by providing explicit hook methods that allow applications to extend its stable interfaces. Hook methods systematically decouple the stable interfaces and behaviors of an application domain from the variations required by instantiations of an application in a particular context. Framework extensibility is essential to ensure timely customization of new application services and features.

Inversion of control
Our run-time architecture of a framework is characterized by an inversion of control. This architecture enables canonical application processing steps to be customized by event handler objects that are invoked via the framework's reactive dispatching mechanism. When events occur, the framework's dispatcher reacts by invoking hook methods on pre-registered handler objects, which perform application-specific processing on the events. Inversion of control allows the framework to determine which set of application-specific methods to invoke in response to external events such as window messages arriving from end-users or packets arriving on communication ports.