Environments
What environments does EZ Source support?
Answer: Currently, EZ Source supports COBOL 1, COBOL 2, MVS COBOL, Fujitsu AIM COBOL as languages, used in the CICS environment, with VSAM, IMS/DB and DB/2 as databases, BMS or MFS mapping and JCL. Using the integrated EZ Source decision mechanism, several other dialects of COBOL such as AS/400 COBOL, WANG, or Micro Focus can be used.
What hardware and software do I need in order to use EZ Source?
Answer: In order to use the EZ Source product, you need Windows NT/2000/XP/2003 operating system with at least 256 MB of memory and 30 MB of free disk space. In order to view the repository, you need Microsoft's Access database, or MS SQL Server.
What kind of databases can I use for my repository?
Answer: The current version of EZ Source uses Microsoft Access and MS SQL Server database for its repository.
Does the product support languages other than COBOL?
Answer: EZ Source current version supports COBOL. In addition, the support for COBOL includes embedded CICS IMS/DB, VSAM, JCL and SQL. Additional languages may be considered in the future.

Using EZ Source - General
What kinds of function does EZ Source provide?
Answer: The EZ Source product gives its users an application portfolio management, understanding and analysis capabilities. The analysis produces a wealth of information, which can be viewed and manipulated using the product: A repository, residing in a standard relational database, holds all of the information gathered from the application. EZ Source provides:
- Graphs describing the control flow of the application, program and command levels.
- Reports describing relationships between different entities of the application (an entity can be a program, screen, paragraph, record, table, variable and so on).
- Tree views describing hierarchical relationships in the application.
- Code analysis capabilities, using pattern matching and redundant analysis, and business rules identification.
How is EZ Source used?
Answer: As the EZ Source product provides understanding and analysis capabilities, the product gives its users the capability to closely examine COBOL applications. As such, it can be used in various situations where software understanding and analysis is needed. First, it eases application maintenance tasks. It can also be used for impact analysis. Another major use for EZ Source is when confronted with a need for large scale changes in the application, such as re-engineering, web enabling, moving to new environments and so on. The first step in every big change is to understand the application you are going to change. In large applications, the code was usually written by a large number of people over a long period, and not all of these people are still available for conducting the changes. In such cases, it is vital to get a clear and detailed picture of the application, and that picture is very hard to achieve by only looking at the source, whilst using a tool like EZ Source is a perfect solut ion.
Can I generate additional reports, apart from the default ones?
Answer: Of course! One of the main reasons for providing the generated repository on a standard relational database is extending the user's capability to generate specific and custom reports. After performing the analysis process and generating the Repository, you can use any tool provided by the database or by third party vendors to generate the reports. Examples for such reports can be found in the sample application, supplied with EZ Source. In order to generate more reports, you can either use the integrated Report Wizard or refer to the documentation of the repository, also supplied with the EZ Source installation.
How can I handle elements in the application's programs that are not supported by the EZ Source product?
Answer: Application elements that are not supported by the EZ Source product are listed during the Build process in EZ Source's output pane. The EZ Source Build process has been designed to ignore unsupported or missing elements and produce analysis results of the application without them. Nevertheless, some of these elements may cause an error that will disturb the analysis phase. In such cases, you can use the EZ Source Decisions mechanism, which enables you to bypass the unsupported elements, without changing the original source code. By adding a decision that replaces the specific lines with blank signs or remarks, EZ Source skips the unsupported statements, while the source stays untouched. In addition, you can apply a decision to several programs or to the whole project. When a new version of a program is included in the project, the decisions that were previously attached to that program still apply. To learn more about the Decisions mechanism please refer to the EZ Source documentation.
Can I use EZ Source for documentation?
Answer: Yes. This is one of the benefits EZ Source provides. EZ Source can be used for documentation is several ways:
- You can print the flow graphs in order to document the flow of an application or a specific program.
- You can export graphs to Microsoft Visio.
- You can generate reports from the repository database and print them as documentation.
For example, generate a report that documents calls between a program and other programs, usage of tables in programs, etc.
- Use the browsing information that was collected during the Build phase, and that is presented in the graphs, combined with the information presented in the Tree Views, and use them as online documentation or guides for those working with the application.
What are the advantages of reusing over rewriting?
Answer: Indeed, one of the possibilities of renovating legacy systems is simply rewriting them. However, the lengthiness and high costs of such an operation may render it irrelevant to an organization's business needs. Renovation of legacy systems should allow the organization to keep its competitive edge and even leverage it. The organization's business rules, where most of the business logic is kept, and hence the competitive advantages, should be kept intact. Rewriting these parts of the system only lengthens the process and endangers their integrity. Using tools and methods to reuse these parts in the legacy system eliminates the possibility of "reinventing the wheel".
How do you handle the reengineering of an entire legacy application?
Answer: Usually reengineering of a large legacy application is not done in one step. Instead, a more efficient way of working would be to divide the system into clusters, and advance the reengineering process step by step a cluster at a time. The division of the application into clusters can be done in several ways, depending on the nature of the application. For example, dividing the application into clusters that connect to each other through sharing common data, or creating clusters following online and batch divisions. If clustering is efficient then testing and deployment of different parts of the application can be done independently.
Can I use the reengineering process only for a part of the legacy application?
Answer: Yes. In some cases it makes sense to keep parts of the legacy application in the original environment and not reengineer them. For example, in some applications it is recommended to leave the batch part of the application as it is, with the original transaction processes, while transforming the online part into a service-oriented architecture (SOA). In other cases it is reasonable to leave the data in the original database (DB/2, for example) and reengineer the application to access this data.

Using EZ Source - Specifics
Where can I see information about data files that are used by the application?
Answer: Information about files can be found:
- Through the Files Tree View, which is found in the Files tab. Here you will find a list of the files used by the applications of each project, the commands that reference each file, where they are used in the application and the exact location of each command in the sources.
- Through the internal relationships graph, where each file that is used by a program is indicated by a gray rectangle. A line is drawn between the file and each paragraph that uses the file. A line going into the file means data updates/written into the file, while lines going out of the file mean data retrieved from it. By using the "View Source" option on the pop-up menu (invoked by a right click of the mouse), you can go to the relevant line in the source.
- Looking at the additional information in the repository (please refer to the EZ Source documentation, the Repository Structure appendix).
Where can I see information about screens used by the application?
Answer: Information about screens can be found:
- In the BMS Tree View, which is found in the BMS folder. On this tree view you will see the map sets that are used in the applications of each project, the screens that belong to each map set, and the source of each of the screens themselves. Formatted screens can also be viewed by using the right-click context menu.
- Through the Cross-Application flow graph, and in the internal relationships graph, where each map is indicated by a red rectangle. A line is drawn between the map and each paragraph/program that uses this map. The ingoing and outgoing lines indicate information streaming in and out of each screen. By using the "View Source" option in the context menu, you can go to the relevant line in the source.
- Additional information regarding screens and map sets can be found in the repository (please refer to the EZ Source documentation, the repository Structure appendix).
Where can I see information about tables used by the application?
Answer: Information about tables can be found:
- By looking at the tree view found in the Tables folder. In this tree view you will find the tables that are used by the applications in each project. Moreover, you will see in this tree view the command references to each table with the exact location of each command in the application.
- In the Program Interrelations flow graph. Each table used in the program is marked by a purple rectangle in the graph, and arrows are drawn between each table and the relevant paragraphs. An arrow going into a rectangle means data updated/ inserted into the table, while arrows going out of the table mean data retrieved from the table. By using the "View Source" option on the context menu (invoked by a right click on the rectangle), you may go to the relevant line in the source.
- To reach additional information regarding tables examine the repository database (please refer to the EZ Source documentation, the repository Structure appendix).
What do I need to do if part of the programs in the application was changed?
Answer: In order to update the analysis results, you need to overwrite the older version of the program with the newer version. We recommend physically replacing the older program file with the newer one. In order to find its location on the disk go to the Workspace folder, right-click the specific program name and choose the Properties option from the context menu. The Properties window will show the exact path of the file. Once the program file is replaced on the disk, perform a Build process for that Program (again, by right clicking the program name and choosing Build from the context menu). The same process described here also applies to changes in screen maps, copybooks, etc.
The flow graph I see is too crowded. What can I do?
Answer: In some applications, the flow graphs are especially complicated, crowded with hundreds of arrows. To simplify this view, we have created several filtering options for the graph entities. In the Cross-Application flow graph you can filter all of the rectangles by selecting and deselecting the buttons on the top of the graph legend. Once a specific entity type is filtered out all of the associated arrows disappear from the graph as well. Another filtering method, which can be done both on the application level and the program level flow graphs, handles the selection of arrows shown. In order to filter the arrows right-click the white background of the graph. Select the desired option from the context menu that appears. Arrows filtering can also be done by right clicking a specific rectangle in the graph, and selecting or deselecting the desired option (Incoming or Outgoing). These capabilities, combined with the Zoom options, enable you to concentrate on a specific part of the application and view only the relevant information.

Object Mining
What is Object Mining?
Answer: Object Mining (or business rules identification) is the process of excavating objects from legacy code. In the new millennium, the business environment requires quick adaptation to new technologies and the ability to maintain competitive advantages. Many of these advantages are kept in the organization's business rules. These rules can be extracted and reused in a new technological environment such as object-oriented development. Since methodology and implementation of object-oriented programming does not exist in most legacy environments, Object Mining supplies the "bridge" from procedural programming in the legacy world towards object-oriented system implementation.
Can I use EZ Source for Object Mining process?
Answer: Yes. The analysis phase has an important role in the overall process of Object Mining. When you analyze an application, you create a repository, holding relevant information about the application. This repository, with capabilities of EZ Source can be used later to perform Object Mining analysis, which includes searching for candidates to create objects. The slicing capabilities, which can be used for the process Object Mining, can hook up to an existing repository, thus saving analysis time and effort.
What capabilities are needed to perform an Object Mining project?
Answer: The Object Mining process, as mentioned before, involves transformation of an organization's business rules from legacy environment to a new object-oriented environment. Therefore, these projects require capabilities in two areas: first, knowledge of the old legacy application. This knowledge should include an acquaintance with both the technological characteristics and business rules that are relevant to the organization. The second area of knowledge needed for an Object Mining project is acquaintance with the target environment of the process, e.g., knowledge in object-oriented programming. Usually, such capabilities are formed by a combination of several experts from the organization itself and/or from system integration companies. Knowledge of the legacy application environment can be enhanced with the aid of an analysis process, which precedes the object extraction.
How do I mine objects in my legacy environment?
Answer: The automated process of mining objects, as performed by the EZ Source product is done in two phases:
1. The first phase involves a process of finding candidates for objects in the legacy application. Since an object is comprised of data and logic, our target is to find logic and data in the legacy application that can serve as candidates. These can reside in several places inside a program or in several programs and copybooks throughout the entire application. The process of finding the candidates is done by using the analysis capabilities of the EZ Source product, and by generating queries to the application repository that was created in the analysis process.
2. Once an object candidate is identified, the second phase of the process begins - identifying all of the code lines that belong to the object candidate by using a slicing algorithm. The marked lines can then be browsed to aid in the understanding of the object candidate. Finally the marked lines can be extracted to a separate source file. The decision process and the actual identification and extraction of the object candidate are all done using the EZ Source.
What parts of a legacy application are relevant for Object Mining?
Answer: In general, roughly dividing an application into three parts - data, output and logic - Object Mining is most relevant to the logic layer of the legacy application. Although part of the mining process extracts logic that is related to data access or the application's output mechanism, it is not necessary to conduct mining on these layers of the application. It is also important to note that I/O-bound applications have a lower potential of reusability and objects extraction than those that use fewer I/O processes and more logic.
EZ Source is a trademark of EZ Legacy Ltd.
