Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Analysis of Business-Critical Core Applications

DZone 's Guide to

Analysis of Business-Critical Core Applications

Business-critical: a deep-dive into core application infrastructure.

· Web Dev Zone ·
Free Resource

nucleus-core-red-cell


Striking a balance between cutting costs and optimally supporting a business model is a major challenge for many IT departments. They also need to calculate how to adapt the amount of IT support — based on the needs of the business model — without raising the complexity of their IT infrastructure or allowing application landscapes to grow out of control.

From conducting a comprehensive analysis to establishing key decision parameters, this article covers the journey to a successful core application transformation geared to the needs of a business model.  

You may also like: NCache: Scaling .NET Core Applications for Extreme Performance.

Core Applications in a Changing IT Landscape  

Every large and evolving IT application landscape has extensive business-critical applications that have been developed individually during the span of many years. Their ability to withstand the future must be put to the test. These customized core applications may implement core processes or manage huge streams of financial data at organizations in the public and private sectors. Any failure of these applications would cause colossal financial damage to the company and/or irreparably harm its image.

It is up to IT decision-makers to determine the future of these applications — should they be replaced, re-implemented, or modernized? Errors or insufficient consideration of certain aspects (e.g., complexity, expertise, transparency, governance) during this decision phase will lead to failed projects (“money pits”) or missed deadlines and budgets without adding value to the business or IT.

In order to mitigate risks, maximize potential benefits, and ensure project success, an extensive core application analysis must be incorporated into the decision-making process. The analysis must consider technology and business functionality of the core application as well as the knowledge of all associated stakeholders, such as the business unit, users, programmers, and IT operations.

The ultimate goal is a gradual, transparent, and controllable application transformation that addresses the current and future requirements of a growing digital world without jeopardizing the intrinsic value or operation of existing applications.  

The Need for Comprehensive Analysis

How can a transformation be successful if the dependencies between systems are not clear, modules and elements aren’t transparent, and interfaces are poorly maintained and only minimally documented? How can a transformation take place if you can’t tell which modules and components are used in a business process and how? What knowledge of applications will be lost when staff members soon retire? How do you realistically calculate the value of factors such as cost, time, and risk given these conditions? 

A comprehensive analysis must address these issues in order to establish a solid information base for decisions to be made in order to evolve applications into a future-proof architecture in a controlled way.

Core Application Analysis and Transformation

Core Application Analysis and Transformation

The analysis of an application must involve all relevant organizational entities, such as the business unit and Research and Development. The analysis must encompass the business and IT contexts of the core application, for example, industry-specific methods, business processes, software products, IT infrastructures and IT architectures.

Only a complete analysis of business and IT contexts will enable you to make a thorough evaluation of your core application to make decisions with calculated risks. In addition to application details, the dependencies of system components and systems in development and runtime environments (e.g., programming languages and environments, database systems, middleware, job control) as well as IT infrastructure (e.g., operating systems, hardware, devices) must be transparent.

Static aspects (e.g., application structure, source code, interfaces) as well as dynamic criteria (e.g., runtime behavior) must be considered. All relevant business and IT factors must be documented consistently and in relation to each other. All stakeholders should have access to the results of the analysis to view and to use for collaborative decisions.

Core Application

Core Application

The Complexity of Core Applications

Business-critical applications, whether they are dialog or batch, are highly complex. This is not only reflected in the source code but also in the respective business and database transaction logic. There are also multiple interfaces involved that tightly link internal and external IT systems, servicing a variety of business processes and user groups.

Core applications run primarily on mainframe platforms or highly scalable server platforms and employ technologies such as Natural, COBOL, Adabas, DB2® or VSAM™. Because these systems have been optimized over many years, they achieve a high level of operational quality that is apparent through their fulfillment of rigorous Service-Level Agreements (SLAs).

Total transparency and complete knowledge of these linked applications is at risk due to factors, such as employee retirement and the ensuing generational transition. Up-to-date, consistent documentation of IT implementation and the related business functionality are often not available.

Complexity of Core Applications

Complexity of Core Applications

An Integrated Analysis Platform

In order to document all context-related elements, establish their relationships, and share them with various stakeholders, you need an integrated, collaborative analysis platform. That is where information on business functionality is defined in relation to core applications and overriding elements of the IT portfolio and enterprise architecture.

This gives all stakeholders a comprehensive, consistent, and central knowledge base for inquiries and decisions.

Core Application Analysis

Core application analysis must consider structural (static) and runtime (dynamic) aspects in order to establish the level of complexity and criticality with regard to use of the application.

Integrated Analysis Platform

Integrated Analysis Platform

Static Application Analysis

Business and process logic are implemented by source code and the associated program structures and libraries. However, source code often contains more “spaghetti code” than structure, which makes it difficult to recognize and change the business logic. 

Static Application Analysis

Static Application Analysis

An ideal analysis platform offers these capabilities:

  • Analysis tools for COBOL, IBM® CICS® tables, JCL and Natural source code.
  • Support for 3GL languages and features, such as various programming types like subprograms and copybooks and different product versions.
  • Interface recognition and documentation.
  • Automatic generation of application documentation, structure diagrams (e.g., control flow, decision tables), reports and impact analysis in multiple formats (e.g., Microsoft® Excel®, Microsoft® Word, PDF and HTML)
  • Recognition of databases, database structures, and access types.
  • Complexity metrics (e.g., McCabe, Halstead).
  • Identification of obsolete or redundant source code.
  • Web-based tools for interactive navigation of program structures and dependencies.

Dynamic Analysis of Processes

Dynamic analysis evaluates an application’s runtime transaction load, database access, user interaction, and service calls during normal operation and peak load times. It provides information on the application’s number of users during a specific window in time and the efficiency with which it handles peak loads.

Entire Operations assesses batch job operation and whole batch job networks. The processing statuses of all jobs are examined to detect and report any SLA breaches and better understand dependencies.

Dynamic Analysis of Dialog and Batch Applications

Dynamic Analysis of Dialog and Batch Applications

An ideal analysis platform offers these capabilities for dynamic analysis:

  • Dialog and batch application support.
  • Source code diagnostics when executed (profiling and code coverage).
  • Production status monitoring across distributed and heterogeneous platforms.
  • Detection of critical situations through regular monitoring of system KPIs.
  • Measurement and visualization of completed batch processes and ascertainment of process differences (target vs. actual).
  • Graphical dashboards for fast and easy evaluation.

Analysis of Business Functionality 

The primary purpose of analyzing the core application’s business functionality is to establish the relationship between business and technical elements in order to determine which parts of the application implements which business rules and/or processes. Only these correlations can provide a full picture of the application, allowing a fact-based exchange between employees from business units and the IT department.

The interface between the static analysis tool Natural Engineer and ARIS for business functionality analysis provides knowledge about applications, programs, and relationships in an easy-to-understand fashion for non-technical staff members. It serves as a basis for documentation of business processes and recommendations for improvements and enhancements.

Analysis of Core Application Business Functionality

Analysis of Core Application Business Functionality

Analysis of the IT Portfolio  

The results of the analyses of the core applications and their business functionality will lay the foundation for the overall inventory and analysis of the IT portfolio. The IT portfolio analysis should map out and evaluate business functionality, applications, technologies, strategy, requirements, projects, and their complex relationships to each other with the aim of optimizing the application landscape and aligning it with the business objectives.

The ideal landscape uses an IT portfolio management platform like Software AG’s Alfabet and includes plans for implementation and compliance governance. It is particularly important here to have clear roles and responsibilities when it comes to gathering information, assessing the portfolio and making portfolio-related decisions. IT portfolio-management stakeholders need reliable information about applications and their context. They must also have access to role-specific content, views, functions and workflows. 


Planning and Simulating a Strategic IT Transformation  

The results of an analysis of applications, business functionality and the entire IT portfolio are the starting point for making decisions that will facilitate a reliable evolution plan to transform your current core application architecture into a future-proof, target architecture. An effective analysis allows the relevant departments to continuously monitor and manage the transformation process as needed. Parallel operation of current and target applications during the implementation period means elements of the architecture that are modified or added can be evaluated early on, reducing risks as well as implementation time significantly.

Evolutionary Transformation of Core Applications

Evolutionary Transformation of Core Applications

Your Path to Success  

A successful transformation requires comprehensive, relevant analysis results. The analysis should be executed in three steps:

  1. Analyze core applications taking into account static and dynamic methods for online and batch processing
  2. Analyze business functionality taking into account the results of step one
  3. Analyze the IT portfolio taking into account the results of steps one and two

If necessary, sub-steps can be carried out simultaneously, which can help you arrive at insightful results quickly.

Topics:
natural ,cobol ,analysis ,core application ,web dev

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}