Find White Papers
Home About Contact Help
Free Membership Member Login
Search the Library                  Advanced Search

The Benefits of Model-Driven Development

CA Mainframe
By : CA Mainframe
INFORMATION
Published : Apr 03, 2008
Length : 12
Type : Analyst Report
 
Download Now
Save for Later
  Email This Page
Overview :

This paper describes the approaches in MDD, explains how CA Gen fits into the larger picture of application development, and relates customer experiences to underpin the quiet success.

Access this White Paper now to learn how to CA Gen goes one step further!

View All Items By This Company
Browse Related Categories :

Quality Assurance

,

Software Development

 
Model Driven Development (MDD) is the next step of abstraction in writing software applications. In the history of computing, each higher level of abstraction has offered improved productivity and ease-of-writing applications. This has enabled the creation of far more complex applications without increasing the project management work load, or conversely, building like-for-like applications faster, cheaper, and with higher quality, compared with lower-level techniques.
Thus with MDD there is a separation of the model from the code, the user works on a platform independent model, selects the specific target platform, and the tool generates the code. Productivity is raised because the auto-generation takes care of all the plumbing code. There is also only a single language to use in building the model, the auto-generation will take care of SQL database calls, Java or .NET platform specific code, XML, and JavaScript for Web clients etc. This makes it easier to rapidly build applications and avoid the code testing cycle, as code is 100% generated. Naturally, testing still needs to be performed to test the design against the project requirements (and in mature testing environments the requirements are also tested).
CA Gen is the MDD tool from CA that has a long history of successfully delivering applications: many of the early mainframe applications written in CA Gen are now benefiting from this choice of tool as models can remain unchanged and the code re-generated for newer, distributed computing platforms. The out-of-the-box model lifecycle management functionality means that best practice is in-built. For example the instant impact analysis feature ensures that the impact of changes is understood and leads to better model design. CA Gen has an easy-to-use business logic language that developers find robust and quick to pick up.
The strongest case for CA Gen is made when there is a need to build mission-critical applications that will work first time. The development team sizes are small, even for the larger-scale projects, making development more agile and saving on human resource costs. There is benefit to the business in lower lifetime costs, as maintenance costs are relatively modest and CA Gen applications are less likely to fail.
There is a move in IT towards Web-based applications and Service Oriented Architectures (SOAs) and having already assisted numerous customers in making this architecture transition, CA is expanding its commitment to SOA with the next release of CA Gen r8. There is also a transition process in play to move the tooling to the Eclipse platform, with the option of launching Adobe Dreamweaver from the new CA Gen Studio. The CA Gen WebView project (an internal r8 project name) is also promising direct modelling of Rich Internet Applications (RIAs) and Web services.
Application development moves with the needs of business: to deliver faster to market, at lower costs, and on the latest infrastructures. CA Gen is addressing these issues by ensuring that if the user interface is not part of the model then it can integrate with other client-side solutions. Web services are playing a role in this respect and the next release will offer greater options.
CA Gen deserves to be better known and increasing awareness should not be difficult for what is in my opinion a gem of a product. One way to achieve that is through its involvement with the MDD community, as it evolves its standards and tools: CA Gen is a good example of how to do MDD right.
In the many years I have worked in IT I had never heard of CA Gen until CA invited me to be briefed on the product. As I learned more about CA Gen, talking to users, partners, and the CA team behind it, I was quite surprised that I had not heard of the product before given its proven track record in the field. In attempting to understand why, one particular analogy struck me about the application development world: that of an unruly classroom where the teacher’s attention is focused on the misbehaving kids, while the ones that work do so quietly in the background, unnoticed. The ‘bad’ kids of application development are the C/C++ coders who have pointer problems or memory leaks. If a C/C++ application does irrational things then you know a memory location has been over-written, even adding a comment line to the source code will move the memory alignment and cause the problem behaviour to change. Java, Microsoft .NET languages, and other memory-managed languages improve the situation, but the high skill levels and resources needed to create hand-written code lead to the common situation today of software failure write-offs amounting to billions of dollars. This loss to business comprises the cost of dead-on-arrival software, end-users having to work around faults, developers having to re-work faulty code, and the impact to business and its bottom-line due to mission-critical application failure. The well-behaved kid is the code generation tool that works at the model level – it generates rock-solid code that works first time: in my opinion, CA Gen should receive greater attention for these strengths.
The idea of code generation and fourth generation Computer Aided Software Engineering tools has not taken hold in application development beyond niche areas. One exception in successfully delivering on its promise and not suffering from the lock-in and proprietary disadvantages of this type of tool is CA Gen, based originally on a product first launched in 1987 by Texas Instruments, Information Engineering Facility. The tool today has three prime aspects: it is a lifecycle tool, so management of the development lifecycle is out-of-the-box; it is model-driven, so it abstracts development to a higher level than code; and thirdly, a consequence of being model-driven, it is platform independent, so CA Gen can generate 100% Java code, 100% .NET code, and target a variety of platforms, including Windows, UNIX/Linux, and mainframe platforms.
MDD in general also emerged successfully from the fourth generation tool era, to the point where today there is a unity amongst a wide number of modelling experts and tool vendors around the Unified Modelling Language (UML), led by the Object Management Group (OMG) and its Model Driven Architecture (MDA) standard. However, MDD does not always prove popular with hard core developers, as many of them prefer to code rather than build models. It is in the large enterprises with large scale project requirements and certain verticals, such as defence and aerospace, that one is more likely to find modelling activity. Having understood CA Gen’s approach, I offer some insights in this White Paper into what is hindering MDA and what has been successful about CA Gen’s approach to modelling.
The structure of this White Paper is to provide some background on how application development has evolved, describe the approaches in MDD, explain how CA Gen fits into the larger picture of application development, and relate customer experiences to underpin the quiet success I alluded to above. The move within IT in general towards adopting SOA and Web services provides CA Gen with a tremendous opportunity, as the product fits in perfectly with a world of loosely-coupled composite applications, and allows users to mix the latest and trendiest on the front-end to a back-server code of high reliability. I shall expand and elucidate these statements.
The question arises of how CA can generate greater interest and awareness in CA Gen: as a number of people in this research pointed out, when Texas Instruments first launched the product it was hot and trendy, today developers at large want Java and .NET on their CV. There is an answer to this question, and it goes beyond just creating awareness for CA Gen, it addresses the endemic problem of software failure: Frederick Brooks said there was no silver bullet to this issue but my contention is that modelling can elevate abstraction in application development to the next level that mitigates many of the existing problems with manual coding (the misbehaving kids). CA Gen is an example of how this has been successfully done and I shall explain what aspects of the tool give me most reason for optimism about the future of CA Gen.
Search the Library                  Advanced Search
About Us Contact Us List Your Papers Partner With Us Site Map