Monday, April 1, 2019
Reengineering and Code Migration Strategies
Reengineering and Code Migration StrategiesGENERALThe most central quality of softw atomic number 18 course of study product product reengineering is to improve or transformation of an existing software brass so that it smoke be understood, controlled and user-friendly. parcel is employ to replace amply software maintenance cost of the legacy dodgings. So software reengineering is more(prenominal) than beneficial for recovering and reusing existing software assets, putting high software maintenance costs under control. It also establishes a paper for prospective software evolution. in that location are round(prenominal) software reengineering process such as reverse engineering, re-documentation, restructuring, character reference cypher interlingual rendition and forward reengineering. So we employ software reengineering through writer edict rendering process.For doing software reengineering through start edict rebirth there are several conversion mach ines, these peckers used to translate a calculate compose in peerless verbiage to another language. We clear-cut to exchange software positive in C++ language into burnt umber language because coffee berry more suitable for internet, more reliable, platform independent etc. there are various source rule translation dicks such as discernible software closure In, Ephedra novo softs C2J++, C2J and so on. We used tangible software ancestor Inc tool to convert a source cypher written in C++ language into chocolate programming language. It has been found that coffee based source work out is much better than C++. There are several reason for that such as less instruction execution time as healthful less complexity.The essence of software reengineering is to utilise the existing enactment of legacy dodge because the original expense of growing the logic and the component of the software should not be wasted. In this oratory software reengineering through source code translation is used. The experimental results are better. As explanation in coffee tree language specification, java is link up to C and C++ notwithstanding there are some important and noticeable divagations that pose some puzzles in a migration from C++ to burnt umber. The biggest difference is that C++ is not a complete object oriented language as that of java.Java is the platform independent programming language subject matter it does not need specific platform for run.So it is very(prenominal) hard problem to translate a C++ code into a java code because there is no both specific tool that spate convert a give C++ code into java code without any manual die hard because both the syntax and semantics is need to convert. We also used to change the paradigm which is necessary to move from C++ to java.KEY POINTS OF REENGINEERINGDuring our oratory work we take a shit concluded the pursuit key points of software reengineeringThe accusatory of reengineering is to impro ve the bodily structure of the system to make it easier to understand and to maintain.Source code translation is the automated conversion of the program written in one language to another language.Reverse engineering is the process of extract the system design and identification from its source code.Program modularization include regeneration to assembly connected items.Data reengineering may be necessary because of the inconsistent selective information management.CODE MIGRATION STRATEGIES C++ TO JAVAIn this chapter we will discuss active various efforts which are used by us during analysis of C++ to java conversion using veridical Software Solution Inc convertor. To substantiate material Software Solution Inc approach shot, we conclude several case studies by selecting typical C++ source code for migration in java language. We also analyzed that readability of java language developed manually is very easy than original C++ code save readability of java converted code by this tool is not perfect because its fund of Code (LOC) is too large in likeness to original C++ source code as well as manually java converted code. During the conversion from C++ source code into java code, we wrote a lot of C++ programs in last chapter. We wrote various instances of C++ programs as a regression test suite to test aspects of transliteration. To validate the appropriateness of real program, we chose a stand-alone monopoly Air-ticket software package.We choose C++ to Java migration because we know that java language become an accepted standard for vast range of development needs now-a-days. Software as well as web developer found it necessary to convert the applications they have written in older programming language such as C++ to Java. There are various language conversion tools like palpable Software Solution Inc, C2J++, Ephedra etc. Novosofts C2J++ converts a given(p) C++ code to its equivalent java classes temporary hookup other given tool converts any g iven C++ source code into java code. With the servicing of these tools it is possible to convert any C ++ code into java code and this conversion with the help of these tools is not very difficult. If any software developer uses these tools whence he/she can save both time as well as resources. He/she can get a project through rapid and without retaining someone to rewrite an application, which is the last option, if the reengineering cost is too large. We can also choose to rewrite or to redevelop if the number of the awry(p) components (objects) is more than 50%. A tangible software effect Inc converter translates a C++ code to a java code or java classes.The amount of time it squanders to translate the given C++ source code into java code depends on numbers of factors including your hardware as well as size of the original C++ source code. pass judgment conversion is not directly proportional to Line of Code (LOC) used to develop C++ code exclusively it depends on the nat ure of C++ program. For the large applications we expect that the conversion time of Tangible software solution Inc tool is round two minutes.Now we will discuss somewhat the conversion of various type of C++ program into java and what type of difficulties have came during conversion with the help of Tangible software solution Inc conversion tool.We will also discuss these criteria with the help of some case studies base on C++ to java conversion as followsPROGRAM building IMPROVEMENTWhenever we decided to reengineer given software instead of maintenance, we have the following improvement in the structure of this softwareMaintenance moves to corrupt the structure of a program. It becomes difficult and difficult to understand.Program may be axiomatically restructured to eliminate unconditional branches.The conditions may be cleared to make them more comprehensible.The conditions may be simplified as followsComplex condition given by following expressionIf not ( AB and (CF)))And th e simplified condition may be expressed asIf ( A = D or E F) DIFFERENCE BETWEEN C++ JAVAThe major difference amidst C++ and Java is the hardware platform for which these programming languages are compiled. C++ programs are usually compiled to the native machine language of a computer, art object Java programs are compiled by the Java Virtual Machine (JVM), a virtual hardware platform running on top of a concrete hardware platform.The JVM scores all type conversions and storage accesses for their safety and trade protection and imposes conservative restrictions on these operations.All C and C++ compilers implement a stage of compilation known as the preprocessor. The preprocessor basically performs an intelligentsearch and replace on identifiers that have been declared using the define ortypedef directives.Java does not have a preprocessor. Constant entropy members are used in place of the define directive and class definitions are used in lieu of the typedef directive, howeve r there is no substitute for macros, which canbe useful. The Java approach to defining constants and namingtypes of data structures is probably conceptually simpler for the programmer.Java will bounds check arrays toprevent this from happening, of course with alittle extra runtime cost.QUALITY OF GENERATED CODEWhenever we convert a C++ source code to a java code with the help of Tangible software solution Inc converter or manually then we discipline that the quality of generated code improved definitely. We also analyzed the converted code with respect to its readability and performance of newly converted code. However Tangible software solution Inc tool is unable to convert the whole given software developed in the C++ language into java code at a time but it is suitable to convert a given C++ code to equivalent java classes and later on doing some manual work on these converted java classes with the help of Tangible software solution Inc conversion tool, we can found the resulta nt java code. We also analyzed that this code is more maintainable in comparison to given original C++ source code. The most important skylark of java language is that it is totally platform independent language while C++ language does not have this feature. If any software/program code is platform independent it means it can run on any system having different in operation(p) system that is if any java code is developed using window operating system then it can also run on different systems having different operating systems such like Linux as well as UNIX operating system easily.There are following main factors which are improved after conversionReadabilityConformance and integrationPerformanceReadabilityIf we take out a subjective point of view then code generated by Ephedra conversion tool having less manual work in comparison to its competitor for large scale automated translation of source code by Tangible software solution Inc, but main problem related to Ephedra is its avai lability. Ephedra is not undefendable source code so mainly is not used for academics. in the lead using this tool we have to need its license so we decided to do our work with Tangible software solution Inc conversion tool which is open source software. However we converted our project developed in C++ language into java language with the help of this tool but actually we have not been able to gather any final exam result without some manual work on this generated code.Conformance and desegregationTo integrate the large volume of the source code written in C++ into the java program is the primary goal of Ephedra but it is very difficult with the help of Tangible software solution Inc because Tangible software solution Inc translator storage management scheme is contrasting with that regular java programs. The main reason is that Tangible software solution Inc does not use regular java data types and classes. So the generated code does not provide the interface with manually wri tten java source code. On the other hand Ephedra uses the regular java data types and classes. So, the generated code provides the interface with manually written java source code.We should have remembered that arrays and the pointers are the part of interfaces to the generated code. So, the software reengineers should have a basic familiarity of Ephedra but a deep knowledge is not required if he/ she dies not work with it. A software engineer can also add the required functionality after reviewing the source code to interpret that the desired effects are achieved.PerformanceThe performance of a tool also depends on the pointer chromosome mapping scheme used as explained above. The code converted using the first mapping scheme was about 5 times slower than the original C++ code for stand out algorithm and about 10 times slower for Sugiyama algorithm. With the help of our translation code we conclude that the experiments on the second mapping scheme produced code that run about 3 0% faster than code produced with the first mapping scheme.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment