Software modernization

From Wikipedia, the free encyclopedia

Software Modernization is the process of understanding and evolving existing software assets.[1]

There is a vast amount of highly functional, operational software, representing enormous commercial value deployed in organizations around the globe. To be precise, existing systems are defined as any production-enabled software, regardless of the platform it runs on, language it’s written in, or length of time it has been in production. [2]

These entrenched software systems often resist evolution because their strategic value and ability to adapt has diminished through factors not exclusively related to its functionality. Common examples of such factors are a system's inability to be understood or maintained cost-effectively, inability to interoperate or dependence on undesired technologies or architectures.

Contents

[edit] Modernization scenarios

Typical software modernization scenarios include:

Collectively, these activities can be defined as software modernization. Modernization restores the value of existing applications because it extracts and leverages the investment in the intellectual property of entrenched software to deliver new solutions that address changing business requirements. Modernization is used when existing IT practices fail to deliver against business objectives.

[edit] Software Modernization and Knowledge Discovery

Software modernization is closely related to software mining which is a form of knowledge discovery. The key to modernization is understanding of the existing software system. Understanding of software systems may happen at various levels:

  • program level (individual statements and variables)
  • design pattern level
  • call graph level (individual procedures and their relationships)
  • architectural level (subsystems and their interfaces)
  • data level (individual columns and attributes of data stores)
  • application level (key data items and their flow through the applications)
  • business level (domain concepts, business rules and their implementation in code)

Knowledge discovery in software is related to a concept of reverse engineering. Knowledge discovery from existing software systems, also known as software mining is closely related to data mining. Knowledge Discovery from software systems addresses structure, behavior as well as the data processed by the software system. Instead of mining individual data sets, software mining focuses on metadata, such as database schemas. OMG Knowledge Discovery Metamodel provides an integrated representation to capturing application metadata. Another OMG specification, the Common Warehouse Metamodel focuses entirely on mining application metadata.

[edit] Architecture-Driven Modernization

Modernization, within the context of the ADM initiative of the Object Management Group[3], is architecture-driven when there is the need to capture and retool various architectural aspects of existing application environments. This does not preclude source-to-source migrations (where appropriate), but encourages user organizations to consider modernization from an analysis and design based perspective. In doing so, project teams will ensure that obsolete concepts or designs are not propagated into modern languages and platforms. The bottom-line results deliver modernized systems that conform more effectively to current business practices and strategic requirements.

[edit] Knowledge Discovery Metamodel

Usually the knowledge obtained from existing software is presented in the form of models to which specific queries can be made when necessary. An entity relationship is a frequent format of representing knowledge obtained from existing software. Object Management Group (OMG) developed specification Knowledge Discovery Metamodel (KDM) which defines an ontology for the software assets and their relationships for the purpose of performing knowledge discovery of existing code. Company KDM Analytics is maintaining open Portal for the Knowledge Discovery Metamodel [4].

[edit] External links

[edit] References

  1. ^ Object management Group (July 15, 2003). Why do we need standards for the modernization of existing systems. 
  2. ^ William Ulrich (June 15, 2002). Legacy Systems: Transformation Strategies. 
  3. ^ OMG ADM website
  4. ^ KDM Portal)