Article Date: 01 Dec 2009
By Nicolas Dangeville
Chief Architect, Rational Team Concert for System z
Rational Software
IBM® VisualAge® Pacbase is over 30 years old and is still critical in developing and maintaining applications used by many large organizations around the world, such as banks and insurance companies. Nicolas Dangeville, Chief Architect of IBM Rational® Team Concert™ for System z®, discusses in this series of articles why Pacbase is so well-respected and how Pacbase continues to evolve (Note 1) as an important element of IBM’s application development-tooling portfolio.
Pacbase Road Map: Part 1 – Pacbase overview
Pacbase is a mainframe development tool that has been part of the IT landscape for more than 30 years now. It is still considered as a strategic development tool by many major mainframe shops. This article, first in a series, focuses on what makes Pacbase special for those organizations, what is the direction for the future of Pacbase, and how this direction will bring value to the Pacbase users by providing modern tools and preserving the key capabilities of Pacbase.
A- The specific value of Pacbase
Pacbase is used by large organizations around the world, such as banks and insurance companies. For many of these companies, Pacbase, epitomized by the productivity and integrated capabilities it provides, has become a critical tool. Many have developed tens of thousands of mainframe applications, which can constitute the business-critical core of the IT systems on which their organizations depend day-in and day-out. What makes Pacbase so special that organizations have committed the care of those critical, long-lived applications to Pacbase over the last 30 years?
Pacbase combines several features that make it reliable and increase user productivity for the development and maintenance of COBOL applications. The key values of Pacbase are in the features of the Pacbase programming model and the Pacbase repository. These features contribute to providing organizations with better control of their IT system in the dimensions of scale (number of applications) and time (long lifespan). In the following article, a closer look is taken at these two main features of Pacbase and how they deliver sustained value to customers who exploit them.
The Pacbase programming model
The Pacbase programming model is centered on development that is based on models, which encourages high reusability and supports functional decomposition.
Note that functional decomposition is defined as the capability to break down complex problems into smaller ones that are easier to define, understand, and maintain.
- The data definition
Pacbase application models are all built on the foundation of a data definition model. To some extent, the data definition model can be seen as a data dictionary, but the abstraction goes beyond defining reusable types. The intent of the data definition model is to capture the concepts that make up the IT system in a form that is understandable by a domain specialist (such as what makes up an insurance policy) and yet is also consumable by those whose main expertise is software development. - Models for mainframe applications
By taking advantage of these data definitions, Pacbase supports several Application Models that are dedicated to capturing the essence of common patterns of mainframe applications. Application Models include the batch model and the online model. These models and their nested objects capture the skeletal control flow and access to data for a given type of IT applications. - Understanding the program and adding specific code
Pacbase-generated applications are structured by applying functional decomposition principles. A program is made up of functions and sub-functions whose purpose is consistent across any generated application of a given pattern.
User-specific code is added through a proprietary language and in the scope of functions or sub-functions (either by enhancing or replacing these functions). This language can be seen as simplified COBOL keywords and additional operators that enforce a more structured programming style than COBOL. These keywords and operators are eventually translated into a sequence of COBOL code. - Reusing common behavior with the macros
Because all Pacbase applications of a given pattern share the same skeleton (such as the layout of functions and sub-functions), you can apply the same user-specific code to many programs. Macros can be used to distribute the code for a given enhancement throughout the code, thereby minimizing complexity through encapsulation while providing a single point of enhancement, modification, and the performance characteristic of inline code.
Macros, which are first-class Pacbase elements, provide a powerful and expressive capability for reusing logic among several programs. Macros can collect pieces of user-specific code that contribute to a given function (such as security and error handling). The code written in a macro includes substitution parameters that are resolved when included in a given program. - Tasks of a Pacbase programmer
The Pacbase programming model is oriented extensively toward promoting reuse. The typical tasks of a Pacbase programmer creating a new program are to find the existing data definitions that apply to the new program, to create a new program model instance, and to define it and its nested objects; then to find and include the macros that implement specific behavior in the organization. Only after these steps can the programmer write task-specific code. This process dramatically reduces the amount of code written by individual programmers, and, perhaps more importantly, enforces consistency across the programs running within the IT system.
The Pacbase repository
For reuse to be achieved by a developer, two elements are necessary. First, as previously mentioned, the programming model provided to the developer needs to offer reusable elements. But this, in and of itself, is not enough in a large-scale environment consisting of hundreds of developers and tens of thousands of programs. A process is needed to drive classification, storage, and management of the artifacts. Powerful search and end-to-end impact analysis tools are also necessary, which is the purpose of the Pacbase repository.
- Storage and version management
The Pacbase repository is a central database that can store, manage, and version Pacbase artifacts (such as data definitions, program model instances, and the user-specific code and macros). The repository also provides classification mechanisms through the definition of hierarchical libraries that store artifacts according to their level of reusability in the whole organization. - Impact analysis and search
The Pacbase repository understands the artifacts that it stores, and therefore can perform multi-criteria search and impact analysis operations. Search can combine both technical and semantic criteria. An example of impact analysis is searching for all programs that reference a certain data element. You can therefore evaluate the impact of a change over all the artifacts in the system. An example of multi-criteria search is finding all the model instances that reference the concept of “Customer” or any of its synonyms. This search answers artifacts that might not be directly related at the model level but contribute to a common concept.
The Pacbase repository enables sharing, reuse, and consistency of the IT system across teams and within an organization.
Benefits of the Pacbase approach
The programming model of Pacbase provides multiple layers of reusability both at the model and code level. The Pacbase repository implements this reuse capability by storing, filing, and tracing artifacts, thereby making them easier to find and reuse. Code generation obviously facilitates the creation of an application. Better productivity and quality are achieved by reusing existing model elements and behaviors. These additional benefits explain why Pacbase usage has become popular when it is introduced into large organizations:
- Maintainability through code generation
Ask 10 developers to develop the same application. You can obtain 10 working applications, but written with 10 different algorithms or styles that make them hard to understand to another developer and perhaps even to each other!
When one application produced by Pacbase is learned and mastered, all the others generated from the same model are implicitly understood. Learning an application that is produced by code-generation is not easy. In that regard, functional decomposition provides a style that is well-suited to code generation and makes its key entry points accessible to the developer. - Predictability
All generated applications are variations on a collection of well-known patterns. The main effort for a developer is to enhance the program with business rules. This effort lets the developer focus on the business logic rather than the structure of the program. After an organization uses the tool for a while, it becomes easier for project managers to estimate:
- The cost of writing a new application
- The skills needed to write a new application
- The effort to test the application (functional tests; performance tests)
This predictability allows for easier planning, and reduces project risk. - Productivity during application maintenance
Maintenance is often 80% of the cost of an application for long-lived applications. Code generation increases the quality of an application and the productivity of the development team. Undoubtedly, user-specific code must be introduced to capture the business rules specific to an application. If the underlying model is not maintained, the benefits of the model-driven approach is lost.
Pacbase provides a practical solution to this theoretical problem in that it captures and manages both the user-specific code and the models, and it does so at the same level in the repository. Therefore, there is no disconnect between the task of updating a model instance and the task of updating the specific code of an application; the developer goes seamlessly from one task to the other. As a result, the critically important properties of productivity and understanding are preserved during maintenance. - Control of the IT system
The repository and its built-in structure provide traceability between all the Pacbase model elements. Reuse of common data and behavior can also be traced. The repository keeps track of the logical references between the model instances; therefore it provides a query mechanism to answer questions such as, “Which programs use a given data element?” Avoiding duplication of concepts and code is key to controlling the growth of the IT system.
Pacbase is an integrated development tool with a broad scope that spans design, development, collaboration, and maintenance. The main value of Pacbase is achieved when dealing with large systems and their maintenance through the inevitable process of change throughout their life span.
B- The evolution of Pacbase
Pacbase in the ecosystem of software development
Despite its intrinsic value, organizations using Pacbase face certain challenges related to their development lifecycle.
Even if popular for implementing the IT system, Pacbase is often not the only solution for mainframe development in a given organization. Most Pacbase customers have a mix of Pacbase and third generation language (3GL) development, such as COBOL and PLI. The processes enforced by Pacbase (such as roles, access control lists, and classification) work only for Pacbase assets and a parallel development infrastructure often has been created and needs to be maintained for traditional 3GL development. The same rule is also true for applications running on other platforms.
Pacbase is an integrated tool that covers a broad scope: development, source and configuration management, administration, and even defect tracking with Development Support Management System (DSMS). Over the years, additional solutions in each of these areas have emerged. The specific structure of Pacbase artifacts, as managed in the repository, makes it difficult to replace one function of Pacbase with an external tool, or to bridge to a new tool. Because of the lack of interoperability between tools and common processes, organizations often build several distinct channels of development (such as Pacbase development, mainframe and 3GL development, and distributed development). In this situation, cross-platform development, which has become the norm, is difficult to achieve.
Content assist, syntax check, and interactive debugging are now the norm for modern development. Today’s Integrated Development Environments (IDEs) provide a platform for such functions that aren’t available to Pacbase users.
However, the key Pacbase concepts, such as the programming model and the repository functions, have proven to continue to be relevant and efficient. Such concepts should be integrated with and applied to modern integrated development environments. This integration and application enhances the experience of Pacbase development by bringing IDE productivity enhancements to model and data definition-based program construction. Non-Pacbase developers are then exposed to the concepts of program models and data definitions that are meant to apply across multiple programs. This integration of Pacbase key concepts with modern development tools is the foundation of the evolution of Pacbase as it is driven by IBM's current Pacbase Convergence plan.
Objectives of the Pacbase convergence plan
The objective of IBM’s current convergence plan is to ensure that the Pacbase customers' development investments are sustainable by providing them a way to maintain their Pacbase applications or to develop new ones. This plan focuses on the customers’ current investment in people and skills, while minimizing the cost of migration to a modern and strategic platform. Moving to the Rational Software Delivery Platform (SDP) offers customers the opportunity to adopt common practices and tools for Pacbase and non-Pacbase application development (and not restricted to mainframe application development).
This plan allows customers to leverage their current investment in people/skills by continuing to offer a pattern-driven development paradigm within a different and more modern tool set that also offers the promise of bringing important Pacbase concepts to traditional development paradigms. The key concepts of Pacbase are to be retained (programming models and repository features), with a broadened scope. Those concepts are expressed on top of a more powerful, and widely adopted platform.
Because the tooling is evolving, a migration must occur. Given the strategic nature and the scale of the Pacbase assets to be migrated, this plan takes into consideration that it is critical to minimize the cost of migration while maintaining the behavioral fidelity of the applications. This plan focuses on minimizing customer impact in two ways:
- Having the goal that the end result produced by the tool after migration (COBOL source) will be identical to what had been produced in Pacbase before the migration. This goal should eliminate, or significantly reduce, the need for retesting existing applications.
- Preserving key values and concepts of Pacbase by continuing to make all elements of the Pacbase programming model available. This means that the model entities (such as Data-element, Segment, Data-Structure, Program and Macros) should have the same properties in the new development environment that they have in the Pacbase environment. Development and application maintenance should involve creation of model instances with specific code. Code editing, source configuration, classification, impact analysis, and multi-criteria search should still be available and rely on the common, modern platforms of the Rational product portfolio.
Main characteristics of the new offering
Combine the best of both worlds
The Rational portfolio covers a wide range of functions that subsume and exceed the functionality provided by the integrated Pacbase environment. These tools provide a level of functionality that fulfills the user expectations for modern IDEs and collaboration tools, and far exceed the scope and capabilities available within Pacbase. The Rational Software Delivery Platform, based on the open source Eclipse platform, is a standard IDE in software development communities. The Collaborative Application Lifecycle Management (CALM) family of products, based on the IBM Jazz™ technology, makes software delivery more collaborative, productive, and transparent. The Jazz platform integrates teams, processes and assets, and provides core extensive capabilities to the Software Delivery Platform products.
Rather than re-implement Pacbase functions from scratch, it is much more sensible for the Pacbase community and the current Rational community to provide a converged offering on the Rational platform.
The new offering is currently planned to be built on a combination of Rational products. This new offering provides a modern environment with extended capabilities to the Pacbase developer. The key functions of Pacbase are preserved. New capabilities and a new level of integration will become available to the Pacbase development channel.
This tooling and the Pacbase key concepts will progressively become available to the non-Pacbase community in an easily consumable environment.
Leveraged Rational products and dedicated extensions
The new offering revolves around the following two products:
- Rational Developer for System z (RDz): provides tools for COBOL development in the SDP. It will be enhanced with new model editors for the Pacbase models. In this new environment, the Pacbase proprietary language will be replaced by COBOL. Dedicated tools will allow developers to enhance the programs from the COBOL editor and maintain the models at the same time. New technology will be designed to ensure that the program source stays consistent when changes are made in models or in COBOL code. Further details are provided in Part 2.
- Rational Team Concert for System z: enables collaboration and common processes for the team. Rational Team Concert for System z will provide the Source and Configuration Management (SCM) in a multi-stream environment that exceeds the versioning capabilities of Pacbase sessions. The generated source will also be managed in the RTCz SCM. With Rational Team Concert for System z, it becomes possible to manage the Pacbase-developed applications, the 3GL-developed applications, and applications developed for other platforms in the same repository. Rational Team Concert for System z provides a solution to bridge the silos that often exist in the development organization between mainframe and distributed teams by using common tools and practices even if the languages and target platforms differ.
A dedicated component, on top of the Rational Team Concert for System z SCM, will provide search and impact analysis among artifacts in the SCM. These capabilities will be available for Pacbase artifacts but also for non-Pacbase artifacts, providing increased integration. Further details are provided in Part 3.
Dedicated migration tools will support the transfer of the existing Pacbase assets to the new solution. Given the scale of an average Pacbase repository, staged migration will be possible with some level of co-existence between the legacy and new repositories. Further details are provided in Part 4.
Summary
In this article the key values of Pacbase were discussed and the direction for the new offering was briefly described. This direction brings value to Pacbase users by providing modern tools and by preserving the key capabilities of Pacbase. These tools also offer an opportunity to integrate the Pacbase application development teams with mainframe or distributed application development teams. This new offering is also a first step to converge the Pacbase community and make proven and successful key concepts from Pacbase available to a wider community of developers.
A series of articles will provide deeper insight into the significant pieces that will be introduced to support Pacbase development in the SDP.
The sequence of the articles will cover the following topics:
- Part 2: how model and code concurrent changes are managed.
- Part 3: how repository features integrate with the SCM of Rational Team Concert for System z.
- Part 4: the principles and staging of a Pacbase migration
Note 1:
The information regarding IBM’s product plans provided herein is intended to outline general product direction and should not be relied on in making a purchasing decision. This information is for informational purposes only and may not be incorporated into any contract. The information is not a commitment, promise, or legal obligation to deliver any material, code or functionality. The development, release, and timing of any features or functionality described for our products remains at our sole discretion.

