Modernizing SCOBOL Programs Part 2: Re-engineering using Blu Age

In Part 1 of this blog series, we discussed the benefits of modernizing SCOBOL requesters, and the challenge of handling programs with extensive business logic..
In this Part 2 installment, we will talk about how to approach these business logic embedded programs via re-engineering and the benefits of using a tool like Blu Age.
Re-engineering using framework

Re-engineering is a better approach to application modernization. Instead of selectively rewriting certain portions of the business logic to fit into a random mix of components (e.g. HTML, Java and JavaScript, etc.), re-engineering advocates redesigning the application from the ground up. By re-engineering, we mean applying a combination of human insight and automation power to migrating business logic (e.g. calculations, business rules)
to a modern technology framework.

Re-engineering wheels

A properly re-engineered application carries many benefits, including:

  • Maintainability
    Creation of code based on the new design blueprint using modern development methodology ensures there are readily available resources and tools for it to be maintained easily.
  • High performance
    Test tools are readily available in Open Source or commercial market to measure and tune applications designed with modern framework.
  • Adaptability
    Once an application has been modernized, there is a good chance that its functions will continue to evolve. Adopting a proper design framework will ensure that the new application will continue to adapt to new requirements and can be enhanced easily.

But the challenge remains the same by taking the re engineering approach: You still need to migrate the business logic in the original programs to the new code. This is where a tool like Blu Age can facilitate the process.

Introducing Blu Age – A Powerful MDA Tool

Firstly, as the saying goes:“There is no free lunch.” If you are looking for a magical “EASY” button, Blu Age is not it. Blu Age is not an automatic translator. It does not make the end product magically for you by your clicking a button. But it is a tool that can help you get the job done more easily and more quickly.

Blu Age is a tool that:

  • Helps you analyze your program source with built-in visual tools and annotation features
  • Enables you to define reusable code patterns to automate intelligent code segment identifications and conversions
  • Extracts the business logic from your code
  • Assists you in transforming the business logic to new code in Java or .NET

Re-engineering

What is Blu Age?

Blu Age is a commercial software re-engineering and modernization tool suite that follows the Model-Driven Architecture (MDA) approach to generating program code from Unified Modeling Language (UML2) diagrams. MDA is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models. It a standard that was launched by the Object Management Group (OMG) in 2001. Blu Age provides all of the re-engineering capabilities discussed earlier, and more. All of Blu Age’s power is based on generating and approving human-readable models that Blu Age then converts into modern code.

Re-engineering

In short, you use UML diagrams to design your application in Blu Age, and it generates the application for the targeted framework according to your specifications .

Blu Age Components
Blu Age is a tool suite built on Eclipse and contains modules that address different components of the modernization process.

Re-engineering

Blu Age Reverse Modeling (BRM)
  • It automates the process of reading your original code (e.g. SCOBOL source) and identifying the interesting and necessary business logic that it will then convert into the diagrams of your model.
  • As you interact with BRM, it identifies and extracts business rules, calculations, and business logic into Unified Modeling Language (UML2) models, ready for you to review and approve.
  • Once approved, your models feed Blu Age’s Forward Engineering (BFE) with accurate business logic functional specifications.
Blu Age Forward Engineering (BFE)
  • Blu Age then applies its code-generation capabilities to automatically transform your models into complete, modern, high-quality application code in Java or .Net.
Blue Age Delivery (BDE)
  • This ensures the quality of the code delivered by BFE. BDE operates in a modern continuous integration and testing environment that is consistent with the today’s best software engineering practices

Blu Age re-engineering approach is different from both rewriting and translating. Rewriting is a laborious set of tasks, the success of which depends of learning ad properly applying new computer languages and new software engineering techniques. Blu Age lets you focus on ensuring the right business logic is transferred from your SCOBOL program to the new target platform.

Blu Age also differs markedly form automated translators. Automated translator converts the SCOBOL program wholesale, leaving you to read through unfamiliar modern code to determine whether the translation appears successful.

Blu Age puts you in the driver’s seat to determine the steps in mapping over the business logic, while relieving you of the burden of coding in a new unfamiliar language, or trying to make sense of automatically translated code.

So, how does Blu Age methodology work? Read about it in our next blog:

Modernizing SCOBOL Programs Part 3: Blu Age Methodology

moreinfo_icon

Feedback please

Do you find this tutorial blog helpful? Let us know what you think, and how we can make it even better. Don’t forget, you can subscribe to our blogs (top right-hand corner of the home page) to get automatic email notification when a new blog is available.

Phil LyPhil Ly is the president and founder of TIC Software, a New York-based company specializing in software and services that integrate NonStop with the latest technologies, including Web Services, .NET and Java. Prior to founding TIC in 1983, Phil worked for Tandem Computer in technical support and software development.

Proactive Measure to Alert Application Issues

dashboard_gauges

Drivers rely on their dashboard gauges, warning lights and alarms to keep them apprised of any potential issues – so shouldn’t the same theory apply for monitoring
your important business applications? Being forewarned at the first sign of trouble puts one in the best position to address the problem before further issues arise.
Like this guy who neglected to monitor his dashboard:

broken_car

It’s important to not only be warned of an application error – but also to be informed as soon as possible so corrective action may be taken in as timely a manner as possible. Paying attention to important information that the applications are writing to the logs is critical. Continue reading

Java SE8 is here!


Java SE 8 lands with Lambda expressions making coding easier for multi-core processors

Lets developers treat functions as method arguments or code as data. By Lee Bell

SOFTWARE VENDOR Oracle has released its Java Platform Standard Edition 8, Java SE 8, as well as the latest Java SE
Development Kit, JDK 8. The release of the updated Java software has been anticipated for some time, but was delayed by Oracle as it worked on making the software more secure and some additional features.

Oracle said that Java SE 8 delivers “enhanced developer productivity and significant application performance increases” through reduced boilerplate code, improved collections and annotations, simpler parallel programming models and better use of multi-core processors in more efficient ways.

One of Java SE 8’s biggest new features is support for Lambda expressions, a new language feature in Java borrowed from LISP that lets developers treat functions as method arguments or code as data. Lambda expressions also allow users to express instances of single-method interfaces, referred to as functional interfaces, more efficiently.

IDC analyst Al Hilwa said that Lambda support in Java SE 8 makes it an important milestone for the language and platform because it will make it easier for developers to write code for multicore processors, but he also noted other Java 8 features that mark significant language improvements.

“There are a variety of interesting things in [Java] SE 8, like the Streams API focused on parallel processing large data sets, Project Nashorn’s faster Javascript engine, and of course implementing Lambda expressions,” Hilwa added.

“These are significant changes to the language that will have a long-term impact as we shift into a highly parallel world populated with multi-core devices and big data. To see the team do this while simultaneously investing heavily in securing the platform in the face of escalating malware attacks everywhere is a huge achievement.”

Among the list of new features are a new Date/Time API, Type Annotations, and a set of Compact Profiles, which allow Java SE 8 implementations to be scaled down more easily.

Modernizing SCOBOL Programs Part 1: The Challenge

Part 1: The Challenge

Why Modernize?

The pace of application modernization initiatives on NonStop has accelerated in the past several years, as more users and organizations have started to consider the importance of NonStop’s strategic values. The objectives of application modernization are to reduce risk, reduce costs, and to increase agility. These objectives align with the priorities of all organizations’ IT management.

Migrating Existing Legacy Programs 

Most discussions on application modernization focus on how to develop new applications on NonStop using new technology, such as Java, SOAP, open source frameworks such as SASH. Yet, one of the most common problems faced by IT management is not about the development of new programs, but rather with the challenge of how to migrate existing legacy programs containing complex business logic to a  new programming platform.SCOBOL2

This blog series focuses on this last topic and uses SCOBOL as an example. We show how it is possible to extract business logic from a legacy SCOBOL program and incorporate it in a modern version of the program using a software engineering tool called Blu Age.

The Challenge – Embedded Business Logic

Business LogicSCOBOL was originally designed for handling the UI, and the recommended best practice was to avoid business logic in SCOBOL programs. In reality, developers commonly exploit SCOBOL’s capabilities by putting business logic in their programs. These business logic routines may range from something simple like checking input fields for certain values, to extensive logic that cross-references multiple screen fields. With all this embedded logic, the SCOBOL programs become very function-rich and work beautifully in the native Pathway environment. However, when the time comes to migrate the program to a new environment such as a web browser, embedded logic becomes an obstacle in the migration effort. In the browser and application server environment, you will need to understand where the business logic is in the existing program, and how to replicate this business logic in the new program.

Dealing with programs with business logic

Let’s say that you have SCOBOL programs with business logic that you want to transform into to a web graphical user interface (GUI) application. Here are some of your available options in handling the embedded business logic:

Rewriting

programming teamOne instinctive approach would be: “Let’s rewrite the business logic into a modern equivalent.” While that sounds straightforward, the skill sets required to faithfully reproduce the business logic embedded in the legacy UI in a modern form are considerable.

Here are some of the challenges:

  1. There is usually no adequate documentation of the existing code. The only thing available is the source code.
  2. That means someone needs to understand how to read SCOBOL code, and someone else with expertise in the new programming environment to assist in the migration.
  3. SCOBOL programming expertise doesn’t necessarily translate to a clear understanding of the business logic in someone else’s code. In most organizations, chances are that the original coder is no longer available.  In some cases, this could be further complicated by the fact that the program had been modified by multiple developers over the years.
  4. Finally, you must verify that all the functions are rewritten correctly.

CautionCaution: Rewriting by hand sounds easier than it really is.

Language Translator

translateUsing an automated language translator is another approach to modernizing legacy programs with business logic. A language translator is a program that can read in a SCOBOL program source and output a program in a target computer language like Java or C#, along with all the other technology pieces needed to provide equivalent functionality to the SCOBOL program.

The HP Pathway/iTS product is an example of this kind of translator product. It reads in the SCOBOL source, and generates equivalent Java applet code that will run in the web browser and communicate with the Pathway TCP. There are other commercially available COBOL translator products and services in the market that work similarly on different COBOL variants on different platforms.PathwayiTS

While this sounds good in theory, the result usually falls far short from ideal.

  • This translator would face all the challenges of human “rewriter” without the human’s intelligence. A translator is a black box to its users, and “tuning” by vendor experts is required to produce a successful translation. SCOBOL programming style changes (e.g. two different programmers’ coding styles) may befuddle the translator, requiring expert vendor intervention to keep things moving.
  • Most translators can deliver only somewhere between 50%-70% success rate at best, and the result varies depending on the complexity of the original program. The rest requires additional manual tweaking by an expert of the tool and could take a fair amount of time.
  • Experience with program translators shows they can be brittle. Even if the translated program is functional, most likely the generated source code cannot be maintained manually by a developer.
  • Translated code usually does not perform well, as the vendor of the translator tool focuses more on delivering an output that functions correctly, without regard to performance

CautionCaution: Translators sound great but have severe practical limitations.

So, what would be a better approach? Read about it in our next blog:

Modernizing SCOBOL Programs Part 2:  Re-engineering using Blu Age

moreinfo_icon

Feedback please

Do you find this tutorial blog helpful? Let us know what you think, and how we can make it even better. Don’t forget, you can subscribe to our blogs (top right-hand corner of the home page) to get automatic email notification when a new blog is available.

Phil LyPhil Ly is the president and founder of TIC Software, a New York-based company specializing in software and services that integrate NonStop with the latest technologies, including Web Services, .NET and Java. Prior to founding TIC in 1983, Phil worked for Tandem Computer in technical support and software development.

Application Rationalization

Application Rationalization 101

imagescaojxf86

Application Rationalization is a managed process that reviews and evaluates applications in the IT Application Portfolio on a rational basis, to determine which should be preserved and enhanced, redeveloped and re-platformed, replaced with alternative solutions, or simply retired.

The goal of application rationalization is two fold.

  1. To Identify candidate applications for modernization action that might include enhancing, transforming or migrating to newer technology platforms, replacing with new solutions available as COTS or Cloud offerings, or simply retiring with no replacement.
  2. To initiate action based on the rationalization plan, and begin the modernization effort.

What follows is a brief discussion of application rationalization, beginning with scoping, and following through to taking action on the rationalization plan.

Scoping

To begin the rationalization process, you and TIC Software develop an action plan to decide on the scope of the application rationalization effort, considering such drivers as:
imagescafujf1s

  • Which business unit generates the highest IT costs?
  • What class of technology generates highest support costs, (e.g. NonStop)?
  • Which Line of Business (LOB) was most recently acquired and is now least integrated with the balance of the portfolio?

Then, we capture the following information, used to scope the Application Rationalization effort:

  • A count of applications to be reviewed,
  • The quantity and availability of supporting application documentation and support records
  • The report and presentation process that will follow from the rationalization effort (high-level, high-impact supported by detail roll-up

We will be grading applications on their cost, and the value they deliver, both now and in the future. Therefore we will need your agreement on how forward-looking we should be.

Rationalizing

imagescafbx311

The key drivers for the rationalization are typically

  • Enabling a “do more with less” attitude by identifying IT portfolio bloat and reducing it, thereby freeing funds
  • Bring transparency to IT by portraying IT spend in a meaningful (e.g. business and value-oriented) way, and
  • Establishing business ownership of IT assets (applications, data) through the Application Rationalization effort

To understand cost and value, we will gather and evaluate information within the scope of the effort. Here are some examples of what we would examine…

  • Where is your organization or individual business unit, if that is our scope going as a business
  • What are the desired principles of IT’s operation to support client’s business direction
  • What is the history and projection of annual support, license, and enhancement costs (people and technology) by application, considering direct costs first, and indirect from client’s rational basis of overhead allocation
  • What do Business and Technical Stakeholders think about the application suites under review, compiled through interviews and completed surveys

Understanding

whereis-resized-600The Application Rationalization process gives insight into the value that applications deliver and the costs and risks associated with that delivery. Delivered value can be understood as profits derived from business functions directly supported by application suites under review. However, there is a deeper meaning to delivered value, having to do with key strategic alignments, discussed following.

Alignment between Business Processes and Applications

Proper alignment means that the time and effort you spend running your business is devoted to productive work, not work-around. Misalignment means extra work such:

  • Is each business process is supported by multiple applications? This gives insight into redundant user interfaces among applications, identifies the use of application integration, and also identifies the number of applications that must be modified when the business process changes.
  • Are business activities are supported by a single application?
  • Are critical business processes/activities supported by different applications than the noncritical business processes/activities? This helps to identify less critical applications that might be replaced or retired
  • Does each application’s functionality support at least one business process activity? Applications that play no role in supporting the business should disappear

Alignment between Business Processes and their Data

Business and Data alignment means that business people have the information they need – accurate information, with the right level of detail, and on time. Misalignments make it difficult to get information that is relevant for the business.

We perform a technology and business process review to answer questions such as…

  • Is every data attributes used by at least by one business process?
  • Are all data entities meaningful to their business users?
  • Is the organization using standard, off the shelf applications for generating ad-hoc reports, inquiries, and graphs, or are custom-written applications doing this work?
  • How well is data lineage (origin, and update path) of data entities tracked?
  • Are business people responsible for overseeing the quality and relevance of data content?
  • Does the organization use an Information Architecture with published principles and rules? If so, which data entities are in compliance, and which are not?

Alignment between Applications and Data

Application and Data alignment means that IT experts expend coding effort coding business functions and logic, rather than on data repair, conflation, and extra transformation. We perform a technology and business process review to answer questions such as…

  • Is data entity managed by only one application? This means that entities are identified, created and reused by a single application, simplifying information management
  • Are data entities created with null values present, or with plugged values, when real values are not available?
  • Are there vocabulary and semantics organization standards so data from one business entity can be easily shared with others?
  • Do standards exist for data interchange formats across the organization? Are they used, or ignored?

Acting

imagesca431vbc

Our application rationalization offering brings focus on the business value delivered by client application suites vs. the cost and risk associated with that value delivery.

No matter how complete the go-forward plan, or how compelling the analysis for modernization, retirement, or replacement of applications, clients will only derive real benefit by putting the rationalization plan into action. Successful implementation of a rationalization plan will require buy-in from all in-scope business and technology stakeholders. Therefore, selecting the right initial application suite, engaging stakeholders, and selecting the right modernization partner, are all crucial to success.


moreinfo_icon
To learn more about TIC, Application Rationalization, Modernization with BluAge, and what it means for your NonStop environment, schedule a conversation by emailing us to TIC Sales .

Feedback please

Do you find this tutorial blog helpful? Let us know what you think, and how we can make it even better. Don’t forget, you can subscribe to our blogs (top right-hand corner of this page) to get automatic email notification when a new blog is available.

stu_selip-resized-600Stuart Selip owns and operates Principal Consulting, LLC, an IT Strategy consulting firm that is a business partner of TIC Software. Prior, as the Chief Executive Officer of Luxoft’s Consulting Strategies unit, he managed delivery of IT Strategy consulting to Fortune 500/Global 2000 firms in the Financial Services, Insurance, and Media industries.

Know Your OSS Logs Part 2 – Java Servlet and NS/JSP Logs

jsp-resized-600 logwatch-monitor-183 java_tomcat-logo-600

In my previous article (Know your OSS Logs Part 1), I discussed the importance of monitoring iTP Web Server logs. If you are running Java servlet or JSP applications with iTP Web Server on NonStop, it becomes even more imperative that you monitor their logs. Why? Because they are your only conduit into what’s happening in the execution environment. Is the application running correctly? Was there an environment issue? Did the application abend? All these and other useful information are kept in the logs.

In this article, I want to share with you some basic information on Java, Servlet and JSP logs. Again, all this information is already available in the HP documentation, and so I am going to give you the “Cliff Notes ” version here:

What to monitor?

servlet.out stdout. This is the default location for Servlet to write out APPLICATION messages. So, if there is any issue encountered by the applications, , e.g. Pathsend failures, or datafile security errors, etc., the messages are usually reported in this file.
servlet.err stderr. This is the location for Servlet to report errors encountered by the servlet.
JSP rollover logs
Logs related to the Servlet/JSP processing, and may contain many, many entries, which include the servlet container’s activities and status. This is a particularly difficult log to sift through, as there can be so much information in there. These logs are configured to “rollover” (create a new one) based on certain criteria, such as date or size.

servlet.out sample entry

$PM:inquiry-class failed with a server exception.
An error has occurred with the link to the server.; TS/MP error 904; File system error 201; serverclass name: $PM.inquiry-class

Note: The above entry shows that the application has failed on a Pathsend and logged this message

JSP rollover log sample entry

An error occurred at line: 36 in the jsp file: /aceviI.jsp
DataConversion cannot be resolved
33: // prepare the byte arrays
34: if (messageIn == null || messageIn.length() == 0) messageIn = ” “;
35: byte[] messageInBytes = new byte[messageIn.length()];
36: DataConversion.JavaStrToCobolStr(messageInBytes, messageIn, 0, messageIn.length(), “UTF8”);
37: byte[] messageOutBytes = new byte[maxReplyLength];

Note: The above entry shows that the application has encountered a run time environment error due to missing code.

Why monitor?

Monitoring these logs allows you to check the health of the Java Servlet or NS/JSP applications and to detect errors as soon as they occur.

  • Did your Servlet just abort?
  • Did your NS/JSP just encountered a Pathsend error?
  • What NS/JSP pages are being accessed?
  • How can you quickly find the ERROR in your logs, among all those INFO and WARNING entires?
  • Which line of code in your Java Servlet has a problem?

Where are the logs?

The locations of these log files are specified in the server configuration file, and they usually reside in <NSJSP_HOME>/logs where <NSJSP_HOME> is /usr/tandem/webserver/servlet_jsp/ or /usr/tandem/webserver/servlets/

serlvet.out /usr/tandem/webserver/servlets/logs/servlet.out
servlet.err /usr/tandem/webserver/servlets/logs/servlet.err
JSP logs /usr/tandem/webserver/servlets/logs/servlets.2012-08-02.log (rollover by date)

Who should look at them?

The Operation team members are the people that monitor these log files as it allows them to check the health of the system. However,the log entries are very important to Developers during development or QA phases as well, as the logs will help them quickly pinpoint the locations of code issues.

If there are errors, then Development may be contacted to look at them.

servlet.out Operation, Development
servlet.err Development
JSP logs Administrator, Development

How to review the logs?

If you do it manually, it can be quite a daunting task to look through all the different entries to identify what you are looking for. While you could use cat, tail and vi to review them, realistically, you would be better off downloading your files to your desktop computer and using a desktop tool to sift through the file. But the best way is to automate with LogWatch.

automate

Automate with LogWatch!

Instead of having to manually view these files in OSS directly, you can automate by using TIC LogWatch to:

      • Look for ERROR entries in the servlet logs
      • Look for any “thrown exception” messages
      • Extract the key information from the error messages and raise an alert email or EMS message to notify Operations or Development
      • Clone a copy of the entries to a Guardian file
      • All these and more can be done automatically with LogWatch

moreinfo_icon

Feedback please

Do you find this tutorial blog helpful? Let us know what you think, and how we can make it even better. Don’t forget, you can subscribe to our blogs (top right-hand corner of this page) to get automatic email notification when a new blog is available.

Phil LyPhil Ly is the president and founder of TIC Software, a New York-based company specializing in software and services that integrate NonStop with the latest technologies, including Web Services, .NET and Java.
Prior to founding TIC in 1983, Phil worked for Tandem Computer in technical support and software development.

Stuart Selip’s Closer Look at: Software Modeling

Have you ever considered modeling?

notmodeling

No, we’re not suggesting you strut down the fashion runway or try to get that little ship to fit inside the bottle.  We are talking about modeling software-intensive systems using Unified Modeling Language (UML2).

Before we talk about modeling software, let’s look at a more familiar kind of model, a blueprint for a home. A home is a complex set of elements like rooms, stairways, entranceways, windows, electrical services, and plumbing that must work together to form a useful, safe, and enjoyable living environment.

Over time, the architecture profession has evolved a set of standard drawing types that capture the organization, placement, and interaction of these building block elements. Three examples of blueprint drawings show an external view, floor plan, and electrical services of a home.

homemodeling

Long ago, it took years of drafting apprenticeship to create such plans. Today, it still takes training and skill to do the architecture, but architects use powerful computer-aided design (CAD) tools to render these plans and make them useful. In fact, if you purchase a factory-built home, the design models used to generate these drawings also drive the automated production process of the home.

Modeling business applications using UML2 is much the same as the modern building architecture process. As an IT architect, you still must know how users will interact with your system, and how available and reliable it must be. The architect must estimate the system’s transaction capacity, screens, controllers, data entities needed, and service behavior.

However, this is little different than the home’s architect knowing know how the home buyer will use the home (e.g. daily living, weekend cabin, summer shore), the home’s expected living capacity (e.g. number of bedrooms and bathrooms, size of kitchen, finished basement, separate apartment), and its necessary electrical, heating, cooling, and plumbing capacities.

To create business application systems UML2 models let you express meaning about the structure and behavior of software by drawing diagrams. If you construct the right models in the right way, and have the right Model-Driven Architecture (MDA) tools, you can turn your models directly into executable code. This is no different from a CAD model driving the production process of a factory-built home. To learn more about MDA, see our blog post on Model-Driven Architecture.

Which are the right models?

pim

The right models are Clear and transparent. The models that are understandable to business stakeholders and technologists are usually Platform-Independent Models (PIM).  The PIM exactly captures the user interaction, behavior, and structure of your software solution without all the technical details that obscure business meaning. Remember that the architecture drawings of your home had to be clear and transparent, or the builders would have had real problems creating the structures and services.

Tthe PIM is not just a great communication tool. The PIM has First Class IT Asset Value. Remember that with the right MDA tool support, you can transform your PIM directly into executable software.  We do exactly that with our BluAge MDA tool suite (www.bluage.com). We transform PIMs directly into your desired target technologies, like Java or .Net.   This means your PIM is a first class IT asset that has value and life beyond any particular technical implementation. It becomes the “Single Source of Truth” for your software. Homeowners who have home renovation done without the benefit of a set of architectural drawings learn quickly that renovation turns from engineering into guessing and hoping.

Beyond communication and IT Assets, the PIM is about process efficiency and effectiveness. Drawing models is much faster than writing system design documents, and so is reading the model diagrams.  Transforming models directly into code is much faster and more reliable than error-prone hand coding. This is especially true if you have not yet established mastery of the target technology platform. Whether the domain is home building or application software, when the power of modeling and automated production is applied, the result is high-quality output, built on time and in budget.

When our BluAge tool suite transforms models, it is using the latest frameworks and techniques appropriate to the target architecture you select. The faster your PIM turns into code, the faster it can be tested and approved, or scheduled for PIM review and enhancement.

So, we’ve given you three good reasons to do some modeling.

  • Clarity and Transparency – Your business stakeholders will understand your software design intentions much more easily and thoroughly, when compared to reading requirements or trying to understand code
  • Asset Value – You will have a first class IT asset that documents your software in a language-independent way, and that transcends any particular implementation technology
  • Efficiency and Effectiveness – Authoring models is faster than writing functional and technical specifications, and reading and checking models is faster than reading weighty documents.  Transforming models into code is much faster than hand coding and rapid transition to testing means efficient and effective approval, or feedback.

NonStop, MDA, and Modeling

TIC Software, using the MDA tool suite from our business partner BluAge (www.bluage.com) , and focused modeling techniques tailored to BluAge,  is helping customers build NonStop Java applications quickly. Sorry, but we don’t build houses.

Here are some modeling specifics, at a glance.

  • BluAge only requires three of more than one dozen UML2 diagram types.
  • Each diagram type delivers a specific view of your system’s structure and behavior.
  • The rich set of UML2 Stereotypes and Tags helps you clarify your model’s meaning.
  • A set of intuitive “Modeling Wizards” multiplies your modeling efficiency
  • BluAge’s model checker quickly finds model “syntax” errors, when you don’t use wizards.

Instead of building every conceivable UML2 diagram, confusing your stakeholders, and wasting valuable time, we speed things up by building the models that your users will understand, and that BluAge can turn directly into executable code. The generated code is tested, and approved, or the model is changed and the code regenerated, as necessary.  There is no extra diagramming and no hand coding!

We said that the Platform Independent Model (PIM) avoids technical implementation details.  Modelers focus on building business logic rather than dealing with technical matters like which Java frameworks to use.  Today, our generated code uses popular Java frameworks like “Hibernate” and “Spring”, also recommended by HP.   Of course, as the Java world marches on, BluAge will march with it, using the best technical frameworks then available.

takeaway_icon

Take Away

Our modeling approach focuses on creating the right model diagrams that will result in generating the right software solution for you.  Building the right models enables business stakeholders and technical staff to participate together, in the modeling process.  Modeling focuses on business rules, calculations, and process flows, while code generation handles “application burden” with frameworks.

Our BluAge MDA tool suite immediately generates those business models into executable solutions so business stakeholders can validate them, or make changes.  The bottom line is protected by delivering value on time, and avoiding disaster.

Whether you are interested in brand-new development, or want to re-engineer your existing COBOL applications into Java, TIC, and our modeling with BluAge, will make things happen more quickly, with higher quality, and lower solution lifecycle cost.

Are you ready to learn more about TIC, MDA and NonStop?  Send us an e-mail Schedule a conversation by emailing us at TIC Sales.

Feedback please

Do you find this tutorial blog helpful? Let us know what you think, and how we can make it even better. Don’t forget, you can subscribe to our blogs (top right-hand corner of this page) to get automatic email notification when a new blog is available.

stu_selip-resized-600Stuart Selip owns and operates Principal Consulting, LLC, an IT Strategy consulting firm that is a business partner of TIC Software. Prior, as the Chief Executive Officer of Luxoft’s Consulting Strategies unit, he managed delivery of IT Strategy consulting to Fortune 500/Global 2000 firms in the Financial Services, Insurance, and Media industries.

 

Stuart Selip’s Closer Look at: Minimizing Development Risks

Want to minimize development risks? Adopt the right methodology!

risk_dice mda_left_new2-resized-600

In this column, I would like to discuss how the right methodology can minimize risks and accelerate the development process.

Development Risks

book_iconSteve McConnell, author of the classic book on development “Rapid Development: Taming Wild Software Schedules” attributes insufficient risk management as one of “classic mistakes” in development projects. He wrote:
“…Failure to manage risks is one of the most common classic mistakes.” And “… if you don’t actively manage risks, only one thing has to go wrong to change your project from a rapid-development project to a slow-development one..”

A software development methodology that fits your project can reduce your risk of software delivery failure. So, which risks need reducing?

  1. Implementation Risks – You deliver late, over budget, missing features, with low quality
  2. Impact Risks – The many benefits of modernization you promised have failed to materialize
  3. Strategic Risks– It’s tomorrow in the marketplace but you’re modernizing yesterday’s solution

If you have been programming on a legacy system, then chances are you already know of or are using a classic methodology – the “Waterfall” methodology.

Waterfall

waterfall_icon

This methodology has been around for more than half a century and remains popular. Waterfall processes begin with gathering requirements, and continue with requirements analysis, solution design, software development, and finally solution testing, before delivery to stakeholders.

Waterfall can deliver good results in software delivery when four key conditions are met:

  1. All requirements must be known before software development begins
  2. All stakeholders must agree on all requirements
  3. All requirements must remain unchanged during the delivery and adoption cycle
  4. The underlying solution architecture must already exist, and be well understood

When familiar stakeholders request small projects that make incremental changes to an existing software solution, the requirements of Waterfall are met. In other words, Waterfall properly supports the familiar work of legacy solution maintenance, like adding to, or modifying existing screens, reports, or calculations.

Modernizing NonStop applications or building new solutions in a new technology mix will put all of these conditions into question. Say you want to follow HP’s advice to NonStop users modernizing NonStop applications by using modern tools, object-oriented programming models, and technologies. Such a modernization initiative should be based on a modern model.

Waterfall is not a modern programming model! A modern programming model focuses on delivering software quickly, so stakeholders can judge whether it is correct and useful. Getting rapid feedback means learning and improving early in the modernization effort, rather than discovering a huge compound failure at the project’s end. Testing happens at the end of the Waterfall process. By then it is too late to avoid catastrophe.

New technologies are different than your current underlying solution architecture. For Example, Java is an object-oriented language and COBOL is not. The entire approach to problem analysis and solution design is different. Data flow diagrams and functional decomposition are not going to help you uncover the right classes and assign attributes and operations to them. Concepts like classes and operations don’t even exist in COBOL, and Waterfall won’t help you with this dilemma.

Here is the Good news – TIC Software can help you! Now you can benefit from rapid application development with modern tools, programming models and technologies. We make this possible with Model-Driven Architecture (MDA) and a methodology that gives great results.

NonStop, MDA, and Methodology

mda_flowchart

TIC Software (http://www.ticsoftware.com), using the MDA tool suite from our business partner BluAge (www.bluage.com) , and a pragmatic development methodology tailored to MDA, is helping customers build NonStop Java applications quickly.

Here is our methodology, at a glance.

  • We take an iterative approach to software development, focusing on exposing and eliminating software delivery risk.
  • Working with you and your team, we identify critical core application functionality early in the development cycle.
  • We build standards-based UML models to reflect the core functionality, generate code, and deliver solutions that your stakeholders can review quickly
  • Changes can be incorporated into the model, which is then regenerated instantly
  • Instead of trying to document every single requirement, providing a complete requirements analysis, and committing to a full design specification before a single line of code has been written, we short-circuit the whole process.

This approach quickly converges on the right result. At the end of the iteration, we collectively review and learn from our recent experience. Each subsequent iteration benefits from that cumulative learning.

The code we generate leverages popular Java frameworks like “Hibernate” and “Spring”, which are some of the tools recommended by HP. This means we are free to focus on building business logic and solving business problems for you, rather than wrestling with technical “application burden” issues like middle-tier object management and data persistence. You gain access to popular but complex frameworks so they deliver results instead of creating delay and frustration. As the Java world evolves and new frameworks and techniques appear, the BluAge MDA tool will evolve in parallel, making the “new” accessible and available with no disruption.download-free-ebook

For a deeper discussion of our straightforward approach to building great software with MDA, click here

Take Away

takeaway_iconOur Iterative software development approach with MDA exposes software delivery risks early, avoiding project catastrophes. Building graphical models of software enables business stakeholders and technical staff to participate, together, in modeling. Modeling focuses on business rules, calculations, and process flows, while code generation handles “application burden” with frameworks. MDA immediately generates those business models into executable solutions so business stakeholders can validate them, or make changes. The bottom line is protected by delivering value on time, and avoiding disaster.

Whether you are interested in brand-new development, or want to re-engineer your existing COBOL applications into Java, TIC and MDA will make things happen more quickly, with higher quality, and lower solution lifecycle cost.

Are you ready to learn more about TIC, MDA and NonStop? Schedule a conversation by emailing us at TIC Sales.

We also recommend to read:Model Driven Architecture Blog

Feedback please

Do you find this tutorial blog helpful? Let us know what you think, and how we can make it even better. Don’t forget, you can subscribe to our blogs (top right-hand corner of this page) to get automatic email notification when a new blog is available.

stu_selip-resized-600Stuart Selip owns and operates Principal Consulting, LLC, an IT Strategy consulting firm that is a business partner of TIC Software. Prior, as the Chief Executive Officer of Luxoft’s Consulting Strategies unit, he managed delivery of IT Strategy consulting to Fortune 500/Global 2000 firms in the Financial Services, Insurance, and Media industries.

 

Stuart Selip’s Closer Look at: Standards

Who cares about standards? YOU should!

standards_icon

mda_left_new2-resized-600

Why?

Standardized products and services are valuable because they:

  • Provide consistent quality
  • Minimize learning curve
  • Support compatibility
  • Promote Portability

Rather than asking why we need standards, we might usefully ask ourselves what the world would be like without standards. What would it be like
to have to relearn how to operate a new car, a new phone or a new computer every time? Not very productive, for sure!

Likewise, one can reap benefits from IT standards in software engineering technologies. Like the Model-Driven Architecture (MDA), for example.
MDA proposed by the Object Management Group (OMG) defines an approach to information systems specification that separates the specification
from the implementation.

In this article, I will describe a success story of how a standards-based Model Driven Architecture (MDA) approach to building software allows a
large, complex software system to be delivered in a tight time frame, with high quality
.

casestudy_iconIt is a project that took place in 2005 and 2006, in the state of Ohio. The Statewide Automated Child Welfare Information System (SACWIS) project had an aggressive delivery completion time line of 18 months. The selected System Integration (SI) vendor opted to use a MDA tool to facilitate the development process.

The system was delivered in Java, while many of the development team members had little or no previous experience with that language,
its supporting technologies, or the iterative software development lifecycle approach used to drive the project.

The results were:

  • The MDA tool multiplied the productivity of the developers making 10 day delivery iterations possible by generating all of the “drudge” code while developers focused on delivering “exciting” stuff like business rules and process flows
  • Users and stakeholders gained confidence in the 10 day process, and gave rapid feedback to developers, avoiding late-term “surprises”
  • Despite a project-long 56% delivery team turnover, the architectural rigor of the MDA tool, and the high-quality UML models meant the project delivered on time, and with “right” scope

read-case-study

NonStop and MDA

TIC Logo ba_logo

Good news! Now you can benefit from rapid application development for NonStop using MDA!

TIC Software (www.ticsoftware.com), using the MDA tool suite from our business partner BluAge (www.bluage.com) , is helping customers build NonStop Java applications quickly.

Our UML models are used to generate code that leverages popular Java frameworks like “Hibernate” and “Spring”. This means we are free to focus on building business logic and solving business problems for you, rather than wrestling with technical “application burden” issues like middle-tier object management and data persistence. You gain access to popular but complex frameworks so they deliver results instead of creating delay and frustration. As the Java world evolves and new frameworks and techniques appear, the BluAge MDA tool will evolve in parallel, making the “new” accessible and available with no disruption.
takeaway_iconWhat’s the take-away? MDA, Agile, and Iterative software development are all standards-based, and in the hands of a committed team, provided a synergism that delivered complex mission-critical software for the State of Ohio on time, and with high quality.
Whether you are interested in brand-new development, or want to re-engineer your existing COBOL applications into Java, TIC and MDA will make things happen more quickly, with higher quality, and lower solution lifecycle cost.

Are you ready to learn more about TIC, MDA and NonStop? Schedule a conversation by emailing us at TIC Sales.

Feedback please

Do you find this tutorial blog helpful? Let us know what you think, and how we can make it even better. Don’t forget, you can subscribe to our blogs (top right-hand corner of this page) to get automatic email notification when a new blog is available.

stu_selip-resized-600Stuart Selip owns and operates Principal Consulting, LLC, an IT Strategy consulting firm that is a business partner of TIC Software. Prior, as the Chief Executive Officer of Luxoft’s Consulting Strategies unit, he managed delivery of IT Strategy consulting to Fortune 500/Global 2000 firms in the Financial Services, Insurance, and Media industries.