TeamConnection for OS/2: More Than a Source Code Library

by Lee R. Perlov

Traditionally, software developers have relied on library systems to store their source code during product development, and little else. However, in today's object-oriented software development environment, much more goes into a product than just source files. Furthermore, with intense pressure to deliver products faster, it is imperative that the tools and output of the rest of the development process (such as design, specification, and packaging) be interconnected to eliminate redundant data entry.

In a traditional "waterfall" development process, requirement documents were created and then specifications, code, and the rest. Each step was separate and, in most cases, only the source code was checked into a library and tracked. Integration usually meant a graphical user interface (GUI) tool that would let you start a build after you had extracted your files. Today s development teams are busy working on multiple releases of software products in parallel. Even more difficult, today's object-oriented tools don't just create files (an example of a coarse-grained object), they also create smaller fine-grained objects such as process, data, and object models.

The entire business team needs to share and manage their work output and other data-related assets (objects) that contribute to a software product. They need a tool that controls how each of these objects change and allows the team's other tools to share this managed data. TeamConnection is such a tool.

TeamConnection's Strengths
TeamConnection for OS/2 provides the following software configuration management and control services: TeamConnection extends traditional software configuration management with extensive support for objects and tool integration such as:
 * A development model that helps increase the maturity of your development process as defined by the Software Engineering Institute (SEI) at Carnegie Mellon University. In other words, a means to make your business and software development processes more reliable, efficient, and repeatable.
 * Extensive problem tracking and change control for both fine-grain and coarse-grain application development objects.
 * The ability to develop parts of a release in parallel and then assist in the integration of these changes.
 * Comprehensive application-build facilities that allow you to distribute your build work load to multiple systems. This is especially true for client/server systems that have different operating systems for the client and the server.
 * The ability to package the applications so that they can be delivered to the end users more quickly and with greater reliability.
 * Backup and recovery facilities that allow backup without interrupting access to your tools and data.
 * An application development information model and repository services that provide the basis for tool integration and information sharing.
 * The capability for the information model to evolve without disruption as tool technology improves.
 * The ability to exchange information with other repositories and encyclopedias in order to preserve any investment you may have in models.

Configuration Management
TeamConnection's configuration management facilities provide the ability to identify, organize, manage, and control access to development information, as well as provide a notification mechanism to facilitate team communications.

TeamConnection also provides a way to assign ownership of the components to the developer, or development team, responsible for managing all the objects related to the component. Access control, through the use of access lists associated with each component, ensures that only the appropriate people can have access.

Version Control
Version control is one of the most basic functions of a software configuration management tool. TeamConnection's version control provides the ability to store versions of an entire application so that the state of the application at a specific time instance can be recreated. The version control supports both serial and parallel development and includes a graphical merge tool for reconciling changes that were done in parallel.

The robust versioning models include the ability to have a logical organization, or mapping, of all managed objects that are related to an application. TeamConnection terminology for this logical organization is a release. A release does not change the physical location of the managed objects. It provides a logical view of the managed objects that must be built, tested, distributed together, in addition to being accessed by other tools.

Each time you start a new development cycle you are able to define a new release, then link common objects from the previous release in order to maintain a history and allow changes in the old and new releases in one action. Of course, you can always return work on a previous release in conjunction with or independently of the new release.

Integrated Object Repository
All business professionals have their own idioms and their own perspectives Information sharing between members of a diverse team must be done in a way that allows multiple tools to access the information in a common form for multiple purposes. TeamConnection integrates an object-based repository with software configuration management functions to provide a managed environment for data-related assets at all levels of business and application information.

With TeamConnection, team members of different disciplines interact with the repository to work with information in a form that makes sense for their task. The repository provides a central point of controlling and translating information by allowing access to the data through the integration of tools. This is vastly more productive than manually sharing different versions of information that were developed independently. A repository provides multiple task-driven views of stored information, as well as inherited services to all the objects that it manages.

Tool integration with the TeamConnection repository provides the ability to decompose the processes of each discipline in a team, analyze them, and transform their managed data-objects into their conceptual, logical, and physical implementations, each with their respective views.

TeamConnection's Information Model
Underlying all of the views (conceptual, logical, storage) are the object and class definitions required to support these views. This set of definitions represents the information model. The TeamConnection repository architecture includes a set of APIs and an open extendable information model so that tools can share data, store their unique data, and use the common software configuration management and repository services available in TeamConnection. This capability allows for an open repository that can be extended through TeamConnection services by both tool vendors and developers of in-house tools.

Specifically, TeamConnection's information meta-meta model provides a common language for representing various tool-specific meta-models. A tool can reuse or extend TeamConnection classes to define a tool model reflecting attributes, relationships, and behaviors of the objects to be created and used.

In order to fully support team development, these services are available to both fine-grain classes (such as an entity or an object) and to coarse-grain classes (such as a COBOL source file). This availability allows tools to share an integrated development approach. The appropriate tools can be made available to each team member, allowing them to share information and see it from a perspective that makes sense to their discipline and task.

The TeamConnection repository allows multiple views of the information model, enabling the reuse of components by integrated tools, each providing a perspective familiar to its user. The ability to transform this data so that it is usable to a variety of users across the software development life cycle provides traceability for these transformations. As a result, the relationship of all of the users work products is managed and preserved.

As the information technology evolves and new tools and technologies are available, it will be necessary to add extensions to the information model. To minimize the effort required to upgrade, TeamConnection provides schema evolution facilities. These facilities allow the information model to be extended without having to recompile existing code. Repository technology provides a robust infrastructure that supports reuse. Reuse strategies have focused on the mechanics of leveraging existing technology components (macros, subroutines, objects, parts), with limited attention on how a reusable construct is located and understood. The meta information and traceability provide the keys to solving these critical issues.

This information model is useful for the business professional, the modeling professional, and the programmer who will implement the software solution in a particular software language. This model also allows multiple language models to be supported; for example, the fourth-generation facilities such as VisualAge Generator, traditional procedural languages such as COBOL, and object-oriented languages such as C++. This lets the programmer pick the right language and associated tools for the job.

Application Build
Build facilities need to automate and optimize the process of building individual components, entire releases, or multiple releases in the LAN environment. With TeamConnection's distributed build, managed components or releases can also be built for the enterprise client/server environment (i.e., for the target platforms that may be different from the server platform used for development).

With TeamConnection, a development team can set up the build structure once and be able to identify the build rules depending on the task at hand. The build rules are associated with the objects being built so there is no need to search for related build steps in a file used by a separate build tool. The software configuration management services rebuild only those components that need to be rebuilt, based on criteria such as date changes. This minimizes the system resources required to accomplish each build reliably.

The TeamConnection software configuration management services also determine which parts of a build need to be built in serial and which can be in parallel; it then parcels out the work to the available machines. Building objects from different technologies, such as procedural and object-oriented languages, through a single rule-based build process reduces integration risks and complexity.

Packaging and Distribution
TeamConnection s packaging and electronic distribution support provide a bridge from development to the production environment. Packaging is the set of steps necessary to distribute applications to users or to machines over a LAN or WAN where they are to be used for supporting the business. A single TeamConnection process can manage all of the steps to prepare a package for electronic distribution.

Unlike conventional build steps, packaging often does not change the content of a release. It simply organizes or packages a release in preparation for distribution. In addition to highly customizable packaging support, application packages need to be able to be distributed electronically across an enterprise. TeamConnection provides this through support for IBM's NetView Distribution Manager/2.

Maintenance
The processes involved in problem tracking and change control provide the ability to manage and control your development process. The ability to track reported problems and design changes and to retain key information about the life cycle of these processes is imperative in a robust management system.

TeamConnection provides the ability to record information about defects (such as problems with existing code, process, and documentation) and features (enhancements to anything you need to track). It also provides a strong set of reporting and inquiry capabilities based on SQL to answer the who, what, when, where, and why of modifications, such as: It is important to be able to take defects and features through a configurable process. As they move through the process, their state changes (e.g., open, design, size, review, working, verify, closed, among others), and team members need to be notified of appropriate actions. TeamConnection's automatic notification can help you run a smooth process and aids in team communications.
 * How many features have been or need to be implemented?
 * How many defects are outstanding?
 * How many features are still in test?
 * Do resources need to be moved to test so we stay on schedule?
 * Where are the code quality problems?

Tool Integration
TeamConnection provides the integrating technology for multiple application development tools to share data in a team environment. The development tools provided by IBM that integrate with TeamConnection include VisualAge Generator Version 2.0, VisualAge for C++ for OS/2, IBM's new workstation-based COBOL products, IBM PL/I for OS/2, and PACBASE C/S.

Other IBM tools already integrated with TeamConnection through the object repository include TeamConnection DataAtlas for OS/2 Version 1.0, a data modeler, designer, and dictionary for managing data-related assets By sharing an information model that is instantiated in TeamConnection, elements and structures defined using DataAtlas can be used and shared by multiple enabled tools. One of these tools, IBM VisualAge Requirements Tool for OS/2 Version 1.0 is available on your DevCon for OS/2 CDs.

Conclusions
The need for a single, integrated development platform such as TeamConnection that provides for the sharing of information between business and technical professionals is clear and should be considered a necessity for supporting the development of key business applications in today s dynamic market environment.