Software modernization

Software modernization

Software Modernization is the process of understanding and evolving existing software assets. [cite book| author=Object management Group| title=Why do we need standards for the modernization of existing systems| url= http://www.kdmanalytics.com/kdm/ADM_whitepaper.pdf|Object Management Group|date=July 15, 2003] This can mean moving off of a legacy hardware platform, replacing a system with a package, or leveraging existing legacy business rules to re-architecture it to a new environment all together. It is important to separate the process of modernization from modernization itself. One can modernize a Cobol system and still remain in Cobol.

There is a vast amount of highly functional, operational software with 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, the language it is written in, and how long it has been in production. [cite book| author=William Ulrich| title=Legacy Systems: Transformation Strategies| url= http://www.amazon.com/Legacy-Systems-Transformation-William-Ulrich/dp/013044927X|date=June 15, 2002]

An existing system often resists evolution for reasons not exclusively related to its functionality, for instance:

* it cannot be understood or maintained cost-effectively
* it cannot interoperate
* it is dependent on undesired technologies or architectures.

Modernization scenarios

Typical software modernization scenarios include:

* Software improvement
* Modifications
* Interoperability
* Refactoring
* Restructuring
* Reuse
* Porting
* Migration
* Translation
* Integration
* Service-oriented architecture deployment
* Business rule mining

Modernization can enhance the value of an existing system by improving it to address changing business requirements which existing IT practices cannot cope with.

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" the existing software system. In order to understand the existing system one must understand:

* individual statements and variables("program level")
* 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.

Architecture-Driven Modernization

Modernization, within the context of the ADM initiative of the Object Management Group [ [http://adm.omg.org/ OMG ADM website] ] , 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, 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.

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 [ [http://www.kdmanalytics.com/kdm KDM Portal] )] .

Automated Migration

Also known as, source-to-source migrations, automated migration looks to leverage tooling to highly automate a language translation. Tools can parse one language and translate that to another language. Most commercially available tools will also do some level of code improvement like dead code elimination or light re factoring. The core essence of the code base does not change it's programming paradigm, however. For example, COBOL to Java using automated migration will yield largely procedural Java, albeit with classes and methods. This is highly automated, and gives a one to one functional equivalence from the source system.

Platform Migration

External links

* [http://adm.omg.org OMG Architecture-Driven Modernization Task Force website]
* [http://www.systemtransformation.com/ System Transformation Portal]
* [http://www.kdmanalytics.com/kdm Knowledge Discovery Metamodel Portal]
* [http://www.mainframemigration.org Mainframe Migration Alliance Microsoft]
* [http://www.oracle.com/goto/oma Oracle Modernization Alliance]

References


Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Look at other dictionaries:

  • Software mining — is a promising application of knowledge discovery in the area of software modernization which involves understanding existing software artifacts. This process is related to a concept of reverse engineering. Usually the knowledge obtained from… …   Wikipedia

  • Software migration — Legacy Transformation, or legacy modernization, refers to the rewriting or porting of a legacy system to a modern computer programming language, software libraries, protocols, or hardware platform. Sometimes referred to as software migration,… …   Wikipedia

  • Software development process — Activities and steps Requirements Specification …   Wikipedia

  • Software AG — Infobox Company company name = Software AG company type = Public (Frankfurt Stock Exchange: SOW) company foundation = 1969 location = Darmstadt, Germany key people = Karl Heinz Streibich, CEO David Broadbent Mark Edwards Dr. Peter Kuerpick Arnd… …   Wikipedia

  • Architecture Driven Modernization — is the name of the initiative of the Object Management Group (see [http://adm.omg.org/ OMG ADM Task Force website] ) related to extending the modeling approach to the existing software systems. Existing (or legacy ) software has been one of… …   Wikipedia

  • DMS Software Reengineering Toolkit — Developer(s) Semantic Designs Website semanticdesigns.com/Products/DMS/DMSToolkit.html The DMS Software Reengineering Toolkit[1] is a proprietary set of program transformation tools available for automating custom source program analysis,… …   Wikipedia

  • Reengineering (software) — The reengineering of software was described by Chikofsky and Cross in their 1990 paper [Chikofsky, E. and Cross, J., 1990. Reverse Engineering and Design Recovery: A Taxonomy. IEEE Software, 7(1):13 18.] , as The examination and alteration of a… …   Wikipedia

  • Object Management Group — Formation 1989 Headquarters Needham, Massachusetts Website …   Wikipedia

  • Knowledge Discovery Metamodel — (KDM) is publicly available specification from the Object Management Group (OMG). KDM is a common intermediate representation for existing software systems and their operating environments, that defines common metadata required for deep semantic… …   Wikipedia

  • Knowledge discovery — is a concept of the field of computer science that describes the process of automatically searching large volumes of data for patterns that can be considered knowledge about the data. It is often described as deriving knowledge from the input… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”