Search
 
     
   
   
   
 
By
Dr. R. Srinivasan,
CTO, iCMG, Bangalore
   
  Integration is crucial in employing 'COTS' software
 
 


Commercially available off-the-shelf' software from a non-standard developer is not subjected to rigorous tests and certifications and may not be able to integrate with all systems, cautions Dr R Srinivasan

THE next topic that we will see in this series will be on Technology AntiPattern. While it is important for a software development organisation to move along with technology, considerable thought needs to be given to decide whether a new technology is really needed for implementation of the projects on hand. If the answer is yes, the next question is whether the team has the required expertise to absorb the new technology. It is customary that the decision on whether to adopt a new technology is taken by the architect supported for implementation by the designer. If there is a lack of understanding of the new technology, these two will make wrong assumptions both in the architecture as well as in implementation. The people likely to suffer because of this will be the project manager and the team members.

Since the technology is new and the architectural design is not very clear, it is possible that mistakes are committed, both in effort estimation and schedule estimation. The ultimate result will be inordinate delays and there will be chaos in the implementation of the projects. Even if the team manages to carry out the project to a certain level, the question will be whether the software is stable under different operating conditions. All this will occur because of the hope and assumption that the product developed based on the new technology will have a long and good future in terms of business. We will discuss some of the technology antipatterns that occur in the software development scenario.

One of the criteria followed by some organisations is to investigate whether ready-made commercially available components or software is available in the market, so that it could be bought and integrated as part of a project in software development. Of course this idea is good and that is what is the name of the game today. This is called reusability of a well-developed software component leading to the concept of "plug and play". However what really happens is, in order to meet the deadline, we tend to buy readily available software, called as Commercially Available Off-the-shelf (COTS) software. The risk is we may have to face the situation wherein the software could be from a non-standard developer who might not have subjected it to rigorous tests and certifications. Moreover, we should examine whether it can be integrated with our system so that there is no problem in interoperability with other modules. The antipattern that arises due to this is called as the "Battery Not Included". William Brown says, "Unreliable COTS vendors can cause users to struggle with version management of erratically evolving software and the embedded costs of the continued inclusion of these COTS in new applications or products." What we mean by this is that once it is discovered that we may end up with a poorly designed COTS, it may lead us to replace it with more stable COTS software.

Battery Not Included AntiPattern may happen because of one or both types of COTS, classified as "development time" COTS and "embedded run time" COTS. To cite some examples, those at the time of development will include the selection of tools in the programming environment or the present day demand in middleware technology and even selection of code generators. Under the run-time mode, we may end up getting the bridges and gateways needed for integrating with other modules in the system or even the ready-made software packages in the domains of finance and accounting. The problems faced by the developers, due to the selection of a wrong COTS, will be aggravated if the vendor keeps changing the versions very frequently, thereby continuously redoing whatever has been done so far-a situation leading to frustration among the developers. A similar situation may happen due to an embedded COTS, which was procured without completely analysing its capability to integrate it with the rest of the system developed by the project team.

In today's scenario there are a large number of COTS vendors in different areas of applications and tools and it is a competitive market. If the architect of the system is not completely aware of the drawback of the COTS he is suggesting, his architecture based on which the development takes place will be weak and brittle. Experts like Douglas Bennett clarify that strong architectural process has to be followed to match the commercially available off-the-shelf software with the functional and data requirement in a software development project. He suggests in his book, Designing Hard Software: The Essential Tasks, that we have to take care of four important tasks to match the COTS, namely, external requirements, system state, behaviour identification and to decide software system architecture. SEI also gives a set of rules to follow COTS-based- system approach called CBS encompassing Identification, Qualification, Adaptation, Integration and Upgradation of the system employing the proposed COTS.

  ( To be continued)

(The author is Chief Technology Officer, Internet Component Management Group, Bangalore and can be contacted at: r.srinivasan@iCMGworld.com)

 
 
     
Copyright © 2006 iCMG. All rights reserved.
Site Index | Contact Us | Legal & Privacy Policy