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.
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.
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.
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
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
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.
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