Seminarsonly.Com

>>

 

Are you interested in this topic.Then mail to us immediately to get the full report.

email :- contactv2@gmail.com

 

Custom Search
 

 

 

 

 

 

 

 

 
Refactoring

 

Definition

Producing software is a very complex process that takes a considerable time to evolve. To help with development there are a number of software lifecycle models which aid to manage this process.A model breaks down the problem into smaller more manageable parts that are individually _ developed iteratively until all the requirements are met.

However using such models do not take into consideration some reality factors that have direct influence on developing software. These factors are, the requirements changing to accommodate clients' needs, new functionality arises, pressures of meeting deadlines and the evolution of developers changing have an over all effect on the whole quality of the system design. These are some of the problems that relate to maintaining software. Software maintenance is described formally as "the process of modifying a software system or component after delivery to correct faults, improve performance or other attributes, or adapt to a changed environment".

Software maintenance can take up to 50% of the overall development costs of producing software. Boehm carried out a study in 1975 on a project being developed and concluded that it cost $30 per line of code during development which increased to $4,000 per line for maintenance costs.

One of the main attributes to these high costs is poorly designed code, which makes it difficult for developers to understand the system even before considering implementing new code. Understanding a system requires the "Software engineer to extract high-level information from low
level code". These high level abstractions use approximations to produce abstract models of the underlying system. These models will produce a limited level of under-standing of the system through information that has been lost in using the approximations to produce these models.

This makes the design of code an increasingly important part of the overall development I of software. Refactoring "is the process of changing a software system in such a way that it does not alter the external behavior of the code yet improves its internal structure" Refactoring can have a direct influence on reducing the cost of software maintenance through changing the internal structure of the code to increase the design which helps the present and future developers evolve and understand the system. The aim of this report is to outline the importance of refactoring through a comprehensive literature review and also identifying possible research questions, which could be considered for future work.

Refactoring is relatively a new area of research and so is not well defined. There are a vast number of definitions for refactoring, most of them are mentioned below. This list is quite large to correlate to the many different areas which refactoring covers.

Refactoring (noun): a change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior. Refactoring (verb): to restructure software by applying a series of Refactoring without changing its observable behavior. Refactoring is the process of taking an object design and rearranging it in various ways to make the design more flexible and/or reusable. There are several reasons you might want to do this, efficiency and maintainability being probably the most important.

To ref actor programming code is to rewrite the code, to "clean it up" Refactoring is the moving of units of functionality from one place to another in your program.


Refactoring has as a primary objective, getting each piece of functionality to exist in exactly one place in the software Refactoring is the process of taking an object design and rearranging it in various ways to make the design more flexible and/or reusable. There are several reasons you might want to do this, efficiency and maintainability being probably the most important.

You may also like this : Autonomic Computing, Wearable Computers , Voice Portals, Tamper Resistance, CGI Programming, DRM Software Radio, Firewalls, Handheld Computers, Modems and ISDN, Optical Free Space Communication, Planar Separators, Wireless Internet, DVD Technology, MPEG-4 Facial Animation, Internet Telephony Policy in INDIA , PON Topologies, Smart Cards , Surround Systems , TCPA / Palladium, Trustworthy Computing , Sense-Response Applications, Optical Computer, Graph Separators , Extended Mark Up Language, Cellular Communications, Virtual Instrumentation, Voice Quality, Cable Modems, Dynamic Memory Allocation , Optical Mouse , Generic Framing Procedure , Dynamic Cache Management Technique , Ethernet Passive Optical Network, Synchronous Optical Networking, Development of the Internet, Design and Analysis of Algoritms , Infinite Dimensional Vector Space, Instant Messaging, Optical Fibre Cable, GSM, Ambiophonics, Palladium , Computer Viruses, Third Generation, Object Oriented Concepts, Night Vision Technology , TCP/ IP, Dynamic Synchronous Transfer Mode, Integrated Voice and Data, Java Servlets, Computer Seminars Reports and PPT

Tags : Computer Science Research Topics for Undergraduates and Postgraduate, Computer Science Research Paper Ideas, Computer Science Seminar Topics with Abstract, Computer Science Senior Seminar Project Ideas, Computer Science Research Topics (CSE), Technical Research Topics Computer Science (CSE), Computer Science Research Ideas, Computer Security Research Topics, Computer Seminars in the Philippines, Computer Seminars 2009|2010|2011|2012, Computer Seminar India, Computer Training Seminars, Computer Seminar Topics PDF, Computer Seminar Topics with Abstract, Computer Seminar Topics List, Seminar Topics for Diploma Students, Seminar Topics for Diploma in Computer Engineering, Diploma Seminar Topics, Seminar Topics for MCA

<<back


copyright © 2006 V2 Computers E-mail :- contactv2@gmail.com