Showing posts with label application platform. Show all posts
Showing posts with label application platform. Show all posts

Wednesday, January 18, 2012

The Problem of Analysis and Identification in Software Change Management




Studies in the field of Software Change Management have helped IT managers to identify a number of problem areas in software development. Problems related to software change management tend to occur in five areas: analysis and identification related problems, communication issues, decision-making challenges, effectiveness roadblocks, traceability issues and problems with tools. If we examine each of these we can see a number of important issues that frequently crop-up, especially within third-generation languages (3GL).

Today, I’d like to focus on a high-level review of analysis and identification related problems in software change management. How can we identify and analyze problems in our software to best understand and realize where we have errors that require correction. More importantly, how can we change our approach to application development in a way that reduces the impact and likelihood of errors?

Analysis and identification problems can be seen in several areas. First of all, problems with analysis and identification are driven by concurrent and parallel development approaches. The problems occur because with concurrent efforts it becomes more difficult to determine root causes of program errors. This is exacerbated by the fact that standalone testing does not find the problems leading to the error conditions. Solutions can be found by reducing the number of developers, engaging in  more frequent cycles (such as with agile development or SCRUM), testing without compiling and ultimately by delegating more basic functions to an application platform in a post-3GL approach.

Another factor driving analysis and identification problems is code optimization. For one thing, optimized code, especially optimized C, C# and C++ code is very difficult to understand. In addition, with optimized code, object oriented development tends to create a ripple effect that is not apparent in typical source. Code optimization issues can be avoided by leveraging pre-optimized code, i.e., avoiding heavy 3GL development projects with more advanced development platforms.

A third factor leading to analysis and identification problems comes from the use of shared software components. Here we see impacts across the code base and ripple effects. These can be avoided through better pre-planning, wise use of inheritance principles and by leveraging a platform rather than resorting to line-by-line coding.

The need for high reliability makes the problem of analysis and identification of the impact of software changes particularly important. It is difficult to predict the impact of changes and at times corrective actions may seem difficult or impossible. Avoid this sense of being overwhelmed by engaging in iterative development and testing. Make use of an application platform to better overcome challenges in the analysis and identification of software change management problems. 

Thursday, October 13, 2011

A Smarter Way to Do Asynchronous Programming


The cover of MSDN Magazine this month carries the main headline: “Asynchronous programming.” Inside you will find three articles about these new proposed features that will make it easier to write code that will help to create efficiencies in Visual Studio applications for asynchronous programming.

The entire article is about how it will be possible in the future to write code that does what the Magic application platform has been doing automatically for its programmers for more than 10 years. Visual Basic and C# don’t have these capabilities yet, but they will in the future the articles proclaim, but it will still require the developer to add special code and the creators of these languages are so far away from a solution that they are using the magazine to solicit feedback on the idea. Wow.

I think it is easy for those of us familiar with uniPaaS seamless efficiency through multithreaded concurrent architecture to forget that other developers must tell their programs how to handle concurrency of task execution. I remember being very impressed with the initial analogy used to explain the Magic engine and the Magic broker: the example used was that of a restaurant with many waiters and a short order cook or cooks who were working on many meals in parallel, breaking down the meal preparation into discrete steps and jumping back and forth between tasks. 

At Magic Software, we talk a lot about how our advantage is a metadata driven architecture, but when you read the articles in this month’s MSDN Magazine it crystallizes some of the low-level nonsense that other developers put up with every single day without realizing that it Is a complete waste of time for them to be creating business applications in those languages (and don’t get me wrong, Java is no better). The sad thing for these developers is that they have to add lots of instructions to their code to tell the program how to process tasks concurrently. Really, in 2011 programmer drones are paid six figure salaries and still writing the same code concepts over and over again? 

Thankfully, there is a smarter way to do asynchronous programming and achieve highly efficient applications without giving it a second thought. That approach is found in Magic Software’s uniPaaS application platform. Even after Microsoft finishes its "enhancements" to C# and Visual Basic (tough luck if you're using a different Microsoft language) you will still have to manually add "await" instructions to your code. And since there was no thought put into forward-migration and everyone handled concurrency differently, you will have to manually strip out all the old concurrency code. Yuck! The three articles were nice, very enlightening as to the tedium on the other side of the fence, but as for me: here’s three cheers for uniPaaS!

To see a sample business application running in Magic Software's uniPaaS application platform see the RIA demo here. To read more about Magic Software's smarter application platform, see the information on the company website.

Wednesday, September 7, 2011

Welcome to the Magic Application Platform Blog


Welcome to the New Magic Application Platform blog. 
Today, June 11, 2012, Magic launched a rebranding that reflects changes in the company and major developments in its product offering. Magic has experienced significant organic and inorganic growth in the size of its business. New customers and new business units are creating a new Magic that is becoming a formidable force in the IT industry. At the same time, Magic's core application and integration platforms are becoming smarter, more open and more future-proof than ever before. 
As trends like enterprise mobility, integrated IT services, Big Data and cloud computing become key to business strategy at all levels, the Magic application platform and the Magic integration platform have entered center stage as business solutions based on advanced technology. 
What was once called uniPaaS, is now the Magic xpa Application Platform. The emphasis is on the word "Magic." For years Magic's customers have referred to both the company and the application platform as "Magic." This makes sense. It fits the new identity of the company as it enters its fourth decade. The Magic of uniPaaS blog will remain available on the former site but all new Magic programming and IT articles will appear here. Followers of the Magic xpi Integration Platform can continue to find new articles and educational material on the Integrate My JDE blog which covers all aspects of the Magic integration platform.
It is refreshing to see Magic embrace a new identity that returns it to its roots. The company is offering this statement of its brand position: Magic accelerates business performance with smarter, future-proof technology and close customer collaboration. This echoes themes that you've seen in my blogs for several months now.  
As always, I welcome your input and comments on the Magic Application Platform.
Disclaimer: Magic (R) is a registered trademark of Magic Software Enterprises, Ltd. All references to Magic(R),  Magic(R) xpa Application Platform, Magic xpi Integration Platform, Magic University, and other marks both existing now and those that may exist in the future are hereby acknowledged and recognized by reference. All articles appearing on this site are the personal opinion of the author(s) and do not officially represent Magic Software Enterprises, Ltd. or any of its subsidiaries, affiliates or business partners.