Business Rule Identification and Extraction through Netron HotRod

How do you migrate from a legacy COBOL system to a modern architecture and ensure that your existing business functionality will still work?

For years you have relied on COBOL as your application development language –– and for batch processing huge amounts of data, it’s hard to beat. But now, your customers are demanding better access to their accounts; your operational units need real-time updates to their data; your supply channel partners insist on closer integration with their systems –– and it seems that just about everything needs integration with the Web.

While COBOL is still efficient at data processing, the language has become much less strategic to the future, because it has lagged in its support for the Internet, layered application architectures, distributed systems and code reuse. By comparison, modern language environments offer ready-to-use class libraries and application objects for Internet, data and Web Service access.

For these and other strategic reasons you have decided it’s time to convert your system to a modern development and deployment platform that will serve your business for the next decade. But can you afford to re-analyze, rebuild and rewrite everything from scratch? Converting to an object-oriented paradigm will require you to morph your business rules into a new class-based object architecture. The challenge in the conversion is getting the correct design requirements. The best definition of the existing requirements is in the current system, and you need to find them quickly. The most compelling reason to reuse your existing business logic is to accelerate the time to market for the replacement system. The next most compelling reason is to reduce risk –– by ensuring your requirements are complete.

The fact that your current system contains millions of lines of COBOL code compounds the problem. The presence of cloned logic further complicates the matter. You need something that can:

• quickly identify business rules in large COBOL systems
• associate the rules with the filmy porno related data;
• isolate this information into a component design with an interface;
• identify and help eliminate redundancies in the rules
• provide a means to document the rule and extract it from the old system
Netron HotRod™ is the most advanced solution for identifying business logic, isolating and documenting the code that supports the business functionality, and wrapping it in an interface that can be extracted and used to create the business objects in the new architecture.

System Migration

Netron delivers legacy system migration solutions while reducing the risk, time, and costs associated with business-critical projects. With over 20 years experience in helping customers build adaptable, dependable solutions, Netron has the know-how and insight to migrate your system.
Since 1981, Netron has been helping customers in some of the most demanding industries deliver solutions to their most challenging application development problems.
Over the years, we have learned a great deal about building great software, managing the development lifecycle effectively, and delivering applications in a fraction of the schedule considered typical in the industry. Systems built using our tools, methodology and expertise are supporting millions of users in enterprises large and small.

Netron understands that today’s needs can change tomorrow. By transitioning your systems to .NET or J2EE, Netron consultants can help your business manage change and be ready for the future with a modern platform that was made to handle the needs of business today.
So if your business objectives require you to migrate your legacy systems to a new environment, large or small, Netron can deliver exceptional value. If you’re looking to revitalize and evaluate your legacy system to cut maintenance costs and improve system adaptability, our industry-leading products can help you. With expertise in legacy and modern platforms and a proven track record in understanding and adapting systems, you can be sure that Netron can deliver quality solutions, on time and on budget.
For over 20 years, Netron has been a leader in helping enterprises keep pace in competitive industries by having business-critical systems that adapt easily to change. Let Netron help your business migrate from Cobol to J2EE or .NET so that your systems can keep pace with your business.

Netron consultants can help your company leverage existing legacy assets in re-targeting your systems to newer, more suitable technology. Basing a new system on an old system reduces risk, costs, and time-to-market, and eliminates potential gaps between what your business needs from its systems and what a package or rewrite can provide. Using Netron’s System Migration Process (SMP) and propietary tool suites, Netron consultants will provide an adaptable, maintainable new system while preserving the business logic, usability, and data of the old system.

Our consultants provide insight and technical expertise for each stage of the migration process to ensure that you are completely satisfied with the end result. A Netron consultant can recommend the right target languages, operating system, and database technologies for your business. Our consultants can manage the migration project and re-architect both the system and the data model for the selected platform and relational database technology, respectively.

Netron’s tools bring automation to speed the process, eliminate errors, and lower the costs of the migration project.

Our two most important tools enable a fast, robust migration of your system’s business rules and data:
• Netron HotRod™ detects and extracts business logic from Cobol programs quickly and completely, separating the rules from the code. This allows us to quickly evaluate the system and ensure that the migrated system supports the same business operations as the original.
• Netron’s Data Migration Framework helps our consultants manage and accelerate the data migration and data conversion processes to a relational model.
Netron’s System Migration Process incorporates the skills of our consultants, our tools, and strong engineering practices to rejuvenate your system and prepare your business for managing future change.

Using HotRod to separate the business logic from the code, and the Netron Data Migration Framework to remodel your databases, Netron consultants can give you the same system re-architected to take full advantage of the appropriate platform. The Netron Reporting Solution will allow your people to easily examine the data they want in a readable, tabular format from a Word or PDF document, without making the investment of time or money into other reporting technologies.

We can recommend the right class of .NET or J2EE solution for your business and work with you to ensure that the end result suits your needs. Your system will be re-architected to meet usage demands, ranging from lightweight, low-volume solutions for fewer users or heavyweight solutions for enterprise-wide applications. The solution will be scalable so that it can adapt to future needs.

Why testing?

Verifying that all requirements are analyzed correctly

Many serious software failures are often the result of wrong, missing or incomplete requirements formulated at the requirement analysis stage. Testing, therefore, verifies that requirements are relevant, coherent, traceable, complete and testable. This is the reason why testing really begins at the outset of a project during the requirements specification phase, prior to the generation of a single line of code.

Verifying that all requirements are implemented correctly

Adequate testing ensures that software operates as expected, providing correct user response and works as per requirement specification. Comprehensive Testing reduces the risk in the marketplace, minimizes system downtime, and increases the confidence in systems for customers and department staff. The key to software testing is trying to find the myriad of failure modes.
Any software application should be examined, tested and analyzed for risk of failure as per the requirement before it is launched into the market and used by the customer.

Identifying defects and ensuring they are addressed before software deployment

It is important to identify the defects at an early stage in the software engineering lifecycle otherwise it could pose a big problem at the time of deployment of the software application. If these defects are identified early and addressed properly it will reduce the cost of development to the extent of 10x as compared to a point when it gets identified after the deployment. The other major factor associated with this problem, not measurable in absolute terms but of more significance to the organization is losing the confidence of the customer and the resulting embarrassment.

Case study

– Simulation model of shipping system with multiple stockpiles around South East Australia, including ship scheduling.
– 20% production increase at Western Australian gold mine.
led benchmarking team to identify major improvement opportunities for a bulk handling wharf, including implementation planning.
simulation of a wharf operation to evaluate the impact of reducing the number of berths on ship delays.
– assisted a client to document business processes using IDEF0 methodology.
led client team to review service level and technology for an auxiliary site service.
– led client teams developing Performance Measures for an Australian wide distribution project.
– assisted a Tasmanian client with shipping contract negotiations.
developed first level benchmarks for a distribution project and designed second level benchmarking procedures.
– led consultant team to assist a Western Australian client renegotiate their 45 MW electricity contract. Prepared business analysis and negotiating case. – Prepared Negotiations Summary Document and presentation materials for meetings.
– Provided strategic advice and assisted with negotiations.
part of team reporting on the redevelopment of the North Hobart oval.
– Produced project evaluation section.

Our services

Training

We offer courses in refactoring, design patterns, white box and black box testing. We offer customized courses that focus on the customer needs.

Refactoring training
Refactoring requires a thorough understanding of the programming language being used. So, during our course we will uncover some of the language pitfalls developers should try to avoid. We will also look at several possible ways to design a system. Finally we will give an overview of the common refactorings, always relating them back to the design. We have an optional course in exception handling.

Design patterns training
Design patterns will give developers a better insight in how to design software. Our course will focus on the most useful design patterns, starting with the simple ones.

White box testing training
This course will show how to gradually build up confidence in your software product by means of white box testing. We teach how to balance costs of late discovery of bugs against costs of white box testing. Early testing can prevent bugs from growing exponentially during development, but it consumes resources! We explain the various white box techniques (unit testing, integration testing, code inspections, …) and we give some rules for how and when to deploy them. We offer specialized courses concerning white box test tools (white box stress testing, class testing).

Black box testing training
Some of the concepts that will be explained in this course are: Business driven thinking, building test cases, making your test process measurable, practical usage of test requirement hierarchies, test strategies (boundary checking, equivalence partitioning), test automation, test implementation, test attitudes.

Outsourcing
Outsourcing frees your in-house resources to concentrate on your core business, saving you time and resources. Using QualityVision’s staff allows you to keep your engineers and management deployed on your development projects, while ensuring high quality testing for your products.

QualityVision outsources test engineers. We can outsource black box and white box testers.

Black box testers are trained in business driven thinking, test strategies and test tools. They can help making your test process measurable.

White box testers are skilled developers who are experts in writing automated tests. Together with your developers they ensure the quality of the code. They can help you in getting your test effort balanced. They know when and how to do unit and integration testing; stress and performance testing.

Test Lab
The test lab from QualityVision is able to test any software or hardware on any platform.

Why choose QualityVision test lab facilities?
Using our test lab facilities has a lot of advantages:

You do not need to invest in expensive hardware and software designed for testing.
You do not need to hire testers that you have to train and to provide with testing tools, office space, and other resources.
Trained professional testers can speed up the testing phase and still meet your time to market deadlines.
You can benefit from our expert know-how to get your own test lab structured.

How does the test lab work?
A Quality Vision consultant will visit you to get the necessary information. A test plan will be written with the following content:

Scope: What kind of tests are needed: portability testing, installation testing, manual reviews, functional testing, performance testing, usability testing, …. What kind of requirements or specifiations need to be tested?
Test bed and test strategies: environmental conditions, test data conditions, test techniques, stop criteria.
Planning: Depending on the scope, non-scope, resources a detailed milestone plan will be written.
Dependencies and constraints: Not only will the dependencies and constraints be documented but evasive solutions will be documented as well.
Writing a test plan and gathering product information normally takes one week. We try to be as flexible and adaptive as possible. All test cases are documented according to the needs of the client. We report bugs by any error report system of choice.

Software testing

It is impossible to test a program completely.

What does it “testing a program completely” mean? Ideally, it means that at the end of the test process, the program will have been tested against all possible eventualities, and that there should not remain any errors in program functionality. All existing problems would have been resolved during the testing process.

In reality, this cannot happen. There are simply too many variables. For example:
• It is not possible to verify the reaction of any program to every combination of input information.
• It is not possible to verify every possible sequence of program workflow.
• It is not possible to reveal all design errors.
• The correctness of a program cannot be always be proved logically.

Then why should programs be tested?

Since it can never be said that a program works perfectly, why should it be tested?
A program should be tested to find the errors in it that can be addressed and solved, increasing efficiency in program functionality and confidence in program usage results.

Small or large, all program errors cost you money and time. Our job is to search for and eliminate errors for you.

Testing improves the quality and performance of any program.

When the majority of errors in a program are found and corrected, the quality of program output is improved, and so is your bottom line. This is the real purpose of testing.

We can participate in testing of program product in any development stage of the project:

Design

• preparation for the testing automation
• development of reception tests
• stability of acquisitions analysis
• initial testing plan development

Realization of base functions

• beginning of nonformal testing
• beginning of the formal core product testing
• first nonformal estimations of tasks, resources, time and budget.

Almost alpha

• determination of testing purposes and tasks, time, resources and budget necessary; creation of prototype testing plan
• risk evaluation for the tested project
• fulfillment of basic testing.

Alpha

• testing all program blocks
• testing under real operating conditions
• nonformal testing of the specific program blocks
• planning and the fulfillment of the detailed tests of the selected program blocks
• test plan revision
• analysis of testing manual and testing according to it
• discussion of specification shortcomings
• estimate amount of remaining errors
• beginning of testing for the hardware compatability
• addition of regression tests.
• the beginning of the automation of testing.

Pre-beta

• testing program for compliance to the requirements for the stability and the completeness of Beta-version.

Beta

• final test plan approval
• the continuation of fulfillment and the deepening of test plan and automation of testing
• rapid repeated testing of the corrected program blocks
• complete cycle of hardware testing
• publication of the formal testing results
• the last analysis of user interface, its preparation for the freezing
• Beta- testing out of the company.

Freezing user interface

• regression testing
• test plan fulfillment
• extended hardware testing

Preparation for the final testing

• regression testing with all possible versions of program environment
• complete cycle of tests according to the plan for the last version of program
• hardware testing
• testing the corrections of old errors
• system reliability evaluation

Last test for integrity

• reliability evaluation during the first day of operation
• real mode testing
• test plan and errors analysis
• testing the first releases

Release

• continuous testing during entire production period
• testing finished product
Examples of the tests, which we can make during the functional and system testing:

Collation with the specification

The correspondence of the developed program to each word of specification is checked.

Correctness

Testing how correct program makes necessary calculations and produces reports.

Laboratory tests

Hiring several feature users and watching their work with product. Actually Beta-testing is done in an attempt to obtain the same result, but with Beta-testing it is not possible to watch the process, Beta-testing it is much less effective than laboratory tests.

Extreme values

Testing program reaction to the extreme values input.

Productivity

Measuring time elapsed for different tasks, especially those, which clients will use most frequently.

Switching the modes

Testing how correctly program is switching from one mode to another. It is especially important for multitasking systems.

Real mode operation

We work with the program in the same regime as real users would work. The shortcomings, which were missed during the formal testing or they were considered insignificant, in the real work can prove to be very serious.

Load tests

Testing program reaction to extreme operating conditions:

• testing to the maximum volume of the input information
• testing program reaction to an increased activity
• analysis of resources requirements

Multi-user and multitask work

It is checked how product works with the parallel accomplishment of several objectives and how actions of several users are coordinated.

Working/treatment of errors

Testing program reaction to the improper, nonstandard or not predicted actions of users.

Protection

It is checked to see how complicated is it for an unauthorized user to obtain access to the system.

Compatability and format conversion

Testing ability of two products to work with the same data files or ability of successful co-existence in the computer operating memory.

Hardware configurations

Testing program operation on the computers with diverse configurations.

Installation and maintenance

Testing program installation, how simple and convenient is it a video porno and how long does it take on the average to complete the installation.