\documentclass[11pt,twoside]{article}\makeatletter

\IfFileExists{xcolor.sty}%
  {\RequirePackage{xcolor}}%
  {\RequirePackage{color}}
\usepackage{colortbl}
\usepackage{wrapfig}
\usepackage{ifxetex}
\ifxetex
  \usepackage{fontspec}
  \usepackage{xunicode}
  \catcode`⃥=\active \def⃥{\textbackslash}
  \catcode`❴=\active \def❴{\{}
  \catcode`❵=\active \def❵{\}}
  \def\textJapanese{\fontspec{Noto Sans CJK JP}}
  \def\textChinese{\fontspec{Noto Sans CJK SC}}
  \def\textKorean{\fontspec{Noto Sans CJK KR}}
  \setmonofont{DejaVu Sans Mono}
  
\else
  \IfFileExists{utf8x.def}%
   {\usepackage[utf8x]{inputenc}
      \PrerenderUnicode{–}
    }%
   {\usepackage[utf8]{inputenc}}
  \usepackage[english]{babel}
  \usepackage[T1]{fontenc}
  \usepackage{float}
  \usepackage[]{ucs}
  \uc@dclc{8421}{default}{\textbackslash }
  \uc@dclc{10100}{default}{\{}
  \uc@dclc{10101}{default}{\}}
  \uc@dclc{8491}{default}{\AA{}}
  \uc@dclc{8239}{default}{\,}
  \uc@dclc{20154}{default}{ }
  \uc@dclc{10148}{default}{>}
  \def\textschwa{\rotatebox{-90}{e}}
  \def\textJapanese{}
  \def\textChinese{}
  \IfFileExists{tipa.sty}{\usepackage{tipa}}{}
\fi
\def\exampleFont{\ttfamily\small}
\DeclareTextSymbol{\textpi}{OML}{25}
\usepackage{relsize}
\RequirePackage{array}
\def\@testpach{\@chclass
 \ifnum \@lastchclass=6 \@ne \@chnum \@ne \else
  \ifnum \@lastchclass=7 5 \else
   \ifnum \@lastchclass=8 \tw@ \else
    \ifnum \@lastchclass=9 \thr@@
   \else \z@
   \ifnum \@lastchclass = 10 \else
   \edef\@nextchar{\expandafter\string\@nextchar}%
   \@chnum
   \if \@nextchar c\z@ \else
    \if \@nextchar l\@ne \else
     \if \@nextchar r\tw@ \else
   \z@ \@chclass
   \if\@nextchar |\@ne \else
    \if \@nextchar !6 \else
     \if \@nextchar @7 \else
      \if \@nextchar (8 \else
       \if \@nextchar )9 \else
  10
  \@chnum
  \if \@nextchar m\thr@@\else
   \if \@nextchar p4 \else
    \if \@nextchar b5 \else
   \z@ \@chclass \z@ \@preamerr \z@ \fi \fi \fi \fi
   \fi \fi  \fi  \fi  \fi  \fi  \fi \fi \fi \fi \fi \fi}
\gdef\arraybackslash{\let\\=\@arraycr}
\def\@textsubscript#1{{\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}}
\def\Panel#1#2#3#4{\multicolumn{#3}{){\columncolor{#2}}#4}{#1}}
\def\abbr{}
\def\corr{}
\def\expan{}
\def\gap{}
\def\orig{}
\def\reg{}
\def\ref{}
\def\sic{}
\def\persName{}\def\name{}
\def\placeName{}
\def\orgName{}
\def\textcal#1{{\fontspec{Lucida Calligraphy}#1}}
\def\textgothic#1{{\fontspec{Lucida Blackletter}#1}}
\def\textlarge#1{{\large #1}}
\def\textoverbar#1{\ensuremath{\overline{#1}}}
\def\textquoted#1{‘#1’}
\def\textsmall#1{{\small #1}}
\def\textsubscript#1{\@textsubscript{\selectfont#1}}
\def\textxi{\ensuremath{\xi}}
\def\titlem{\itshape}
\newenvironment{biblfree}{}{\ifvmode\par\fi }
\newenvironment{bibl}{}{}
\newenvironment{byline}{\vskip6pt\itshape\fontsize{16pt}{18pt}\selectfont}{\par }
\newenvironment{citbibl}{}{\ifvmode\par\fi }
\newenvironment{docAuthor}{\ifvmode\vskip4pt\fontsize{16pt}{18pt}\selectfont\fi\itshape}{\ifvmode\par\fi }
\newenvironment{docDate}{}{\ifvmode\par\fi }
\newenvironment{docImprint}{\vskip 6pt}{\ifvmode\par\fi }
\newenvironment{docTitle}{\vskip6pt\bfseries\fontsize{22pt}{25pt}\selectfont}{\par }
\newenvironment{msHead}{\vskip 6pt}{\par}
\newenvironment{msItem}{\vskip 6pt}{\par}
\newenvironment{rubric}{}{}
\newenvironment{titlePart}{}{\par }

\newcolumntype{L}[1]{){\raggedright\arraybackslash}p{#1}}
\newcolumntype{C}[1]{){\centering\arraybackslash}p{#1}}
\newcolumntype{R}[1]{){\raggedleft\arraybackslash}p{#1}}
\newcolumntype{P}[1]{){\arraybackslash}p{#1}}
\newcolumntype{B}[1]{){\arraybackslash}b{#1}}
\newcolumntype{M}[1]{){\arraybackslash}m{#1}}
\definecolor{label}{gray}{0.75}
\def\unusedattribute#1{\sout{\textcolor{label}{#1}}}
\DeclareRobustCommand*{\xref}{\hyper@normalise\xref@}
\def\xref@#1#2{\hyper@linkurl{#2}{#1}}
\begingroup
\catcode`\_=\active
\gdef_#1{\ensuremath{\sb{\mathrm{#1}}}}
\endgroup
\mathcode`\_=\string"8000
\catcode`\_=12\relax

\usepackage[a4paper,twoside,lmargin=1in,rmargin=1in,tmargin=1in,bmargin=1in,marginparwidth=0.75in]{geometry}
\usepackage{framed}

\definecolor{shadecolor}{gray}{0.95}
\usepackage{longtable}
\usepackage[normalem]{ulem}
\usepackage{fancyvrb}
\usepackage{fancyhdr}
\usepackage{graphicx}
\usepackage{marginnote}

\renewcommand{\@cite}[1]{#1}


\renewcommand*{\marginfont}{\itshape\footnotesize}

\def\Gin@extensions{.pdf,.png,.jpg,.mps,.tif}

  \pagestyle{fancy}

\usepackage[pdftitle={Cost Model for Reengineering an Object Oriented Software System},
 pdfauthor={}]{hyperref}
\hyperbaseurl{}

	 \paperwidth210mm
	 \paperheight297mm
              
\def\@pnumwidth{1.55em}
\def\@tocrmarg {2.55em}
\def\@dotsep{4.5}
\setcounter{tocdepth}{3}
\clubpenalty=8000
\emergencystretch 3em
\hbadness=4000
\hyphenpenalty=400
\pretolerance=750
\tolerance=2000
\vbadness=4000
\widowpenalty=10000

\renewcommand\section{\@startsection {section}{1}{\z@}%
     {-1.75ex \@plus -0.5ex \@minus -.2ex}%
     {0.5ex \@plus .2ex}%
     {\reset@font\Large\bfseries}}
\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
     {-1.75ex\@plus -0.5ex \@minus- .2ex}%
     {0.5ex \@plus .2ex}%
     {\reset@font\Large}}
\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
     {-1.5ex\@plus -0.35ex \@minus -.2ex}%
     {0.5ex \@plus .2ex}%
     {\reset@font\large}}
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
     {-1ex \@plus-0.35ex \@minus -0.2ex}%
     {0.5ex \@plus .2ex}%
     {\reset@font\normalsize}}
\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
     {1.5ex \@plus1ex \@minus .2ex}%
     {-1em}%
     {\reset@font\normalsize\bfseries}}


\def\l@section#1#2{\addpenalty{\@secpenalty} \addvspace{1.0em plus 1pt}
 \@tempdima 1.5em \begingroup
 \parindent \z@ \rightskip \@pnumwidth 
 \parfillskip -\@pnumwidth 
 \bfseries \leavevmode #1\hfil \hbox to\@pnumwidth{\hss #2}\par
 \endgroup}
\def\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}}
\def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}}
\def\l@paragraph{\@dottedtocline{4}{7.0em}{4.1em}}
\def\l@subparagraph{\@dottedtocline{5}{10em}{5em}}
\@ifundefined{c@section}{\newcounter{section}}{}
\@ifundefined{c@chapter}{\newcounter{chapter}}{}
\newif\if@mainmatter 
\@mainmattertrue
\def\chaptername{Chapter}
\def\frontmatter{%
  \pagenumbering{roman}
  \def\thechapter{\@roman\c@chapter}
  \def\theHchapter{\roman{chapter}}
  \def\thesection{\@roman\c@section}
  \def\theHsection{\roman{section}}
  \def\@chapapp{}%
}
\def\mainmatter{%
  \cleardoublepage
  \def\thechapter{\@arabic\c@chapter}
  \setcounter{chapter}{0}
  \setcounter{section}{0}
  \pagenumbering{arabic}
  \setcounter{secnumdepth}{6}
  \def\@chapapp{\chaptername}%
  \def\theHchapter{\arabic{chapter}}
  \def\thesection{\@arabic\c@section}
  \def\theHsection{\arabic{section}}
}
\def\backmatter{%
  \cleardoublepage
  \setcounter{chapter}{0}
  \setcounter{section}{0}
  \setcounter{secnumdepth}{2}
  \def\@chapapp{\appendixname}%
  \def\thechapter{\@Alph\c@chapter}
  \def\theHchapter{\Alph{chapter}}
  \appendix
}
\newenvironment{bibitemlist}[1]{%
   \list{\@biblabel{\@arabic\c@enumiv}}%
       {\settowidth\labelwidth{\@biblabel{#1}}%
        \leftmargin\labelwidth
        \advance\leftmargin\labelsep
        \@openbib@code
        \usecounter{enumiv}%
        \let\p@enumiv\@empty
        \renewcommand\theenumiv{\@arabic\c@enumiv}%
	}%
  \sloppy
  \clubpenalty4000
  \@clubpenalty \clubpenalty
  \widowpenalty4000%
  \sfcode`\.\@m}%
  {\def\@noitemerr
    {\@latex@warning{Empty `bibitemlist' environment}}%
    \endlist}

\def\tableofcontents{\section*{\contentsname}\@starttoc{toc}}
\parskip0pt
\parindent1em
\def\Panel#1#2#3#4{\multicolumn{#3}{){\columncolor{#2}}#4}{#1}}
\newenvironment{reflist}{%
  \begin{raggedright}\begin{list}{}
  {%
   \setlength{\topsep}{0pt}%
   \setlength{\rightmargin}{0.25in}%
   \setlength{\itemsep}{0pt}%
   \setlength{\itemindent}{0pt}%
   \setlength{\parskip}{0pt}%
   \setlength{\parsep}{2pt}%
   \def\makelabel##1{\itshape ##1}}%
  }
  {\end{list}\end{raggedright}}
\newenvironment{sansreflist}{%
  \begin{raggedright}\begin{list}{}
  {%
   \setlength{\topsep}{0pt}%
   \setlength{\rightmargin}{0.25in}%
   \setlength{\itemindent}{0pt}%
   \setlength{\parskip}{0pt}%
   \setlength{\itemsep}{0pt}%
   \setlength{\parsep}{2pt}%
   \def\makelabel##1{\upshape ##1}}%
  }
  {\end{list}\end{raggedright}}
\newenvironment{specHead}[2]%
 {\vspace{20pt}\hrule\vspace{10pt}%
  \phantomsection\label{#1}\markright{#2}%

  \pdfbookmark[2]{#2}{#1}%
  \hspace{-0.75in}{\bfseries\fontsize{16pt}{18pt}\selectfont#2}%
  }{}
      \def\TheFullDate{2011-11-12 (revised: 12 November 2011)}
\def\TheID{\makeatother }
\def\TheDate{2011-11-12}
\title{Cost Model for Reengineering an Object Oriented Software System}
\author{}\makeatletter 
\makeatletter
\newcommand*{\cleartoleftpage}{%
  \clearpage
    \if@twoside
    \ifodd\c@page
      \hbox{}\newpage
      \if@twocolumn
        \hbox{}\newpage
      \fi
    \fi
  \fi
}
\makeatother
\makeatletter
\thispagestyle{empty}
\markright{\@title}\markboth{\@title}{\@author}
\renewcommand\small{\@setfontsize\small{9pt}{11pt}\abovedisplayskip 8.5\p@ plus3\p@ minus4\p@
\belowdisplayskip \abovedisplayskip
\abovedisplayshortskip \z@ plus2\p@
\belowdisplayshortskip 4\p@ plus2\p@ minus2\p@
\def\@listi{\leftmargin\leftmargini
               \topsep 2\p@ plus1\p@ minus1\p@
               \parsep 2\p@ plus\p@ minus\p@
               \itemsep 1pt}
}
\makeatother
\fvset{frame=single,numberblanklines=false,xleftmargin=5mm,xrightmargin=5mm}
\fancyhf{} 
\setlength{\headheight}{14pt}
\fancyhead[LE]{\bfseries\leftmark} 
\fancyhead[RO]{\bfseries\rightmark} 
\fancyfoot[RO]{}
\fancyfoot[CO]{\thepage}
\fancyfoot[LO]{\TheID}
\fancyfoot[LE]{}
\fancyfoot[CE]{\thepage}
\fancyfoot[RE]{\TheID}
\hypersetup{citebordercolor=0.75 0.75 0.75,linkbordercolor=0.75 0.75 0.75,urlbordercolor=0.75 0.75 0.75,bookmarksnumbered=true}
\fancypagestyle{plain}{\fancyhead{}\renewcommand{\headrulewidth}{0pt}}

\date{}
\usepackage{authblk}

\providecommand{\keywords}[1]
{
\footnotesize
  \textbf{\textit{Index terms---}} #1
}

\usepackage{graphicx,xcolor}
\definecolor{GJBlue}{HTML}{273B81}
\definecolor{GJLightBlue}{HTML}{0A9DD9}
\definecolor{GJMediumGrey}{HTML}{6D6E70}
\definecolor{GJLightGrey}{HTML}{929497} 

\renewenvironment{abstract}{%
   \setlength{\parindent}{0pt}\raggedright
   \textcolor{GJMediumGrey}{\rule{\textwidth}{2pt}}
   \vskip16pt
   \textcolor{GJBlue}{\large\bfseries\abstractname\space}
}{%   
   \vskip8pt
   \textcolor{GJMediumGrey}{\rule{\textwidth}{2pt}}
   \vskip16pt
}

\usepackage[absolute,overlay]{textpos}

\makeatother 
      \usepackage{lineno}
      \linenumbers
      
\begin{document}

             \author[1]{Bakhshsish Singh  Gill}

             \affil[1]{  Kurukshetra University}

\renewcommand\Authands{ and }

\date{\small \em Received: 3 October 2011 Accepted: 29 October 2011 Published: 12 November 2011}

\maketitle


\begin{abstract}
        


The cost of reengineering of object-oriented software is often significantly less than the cost of developing new software. Object oriented software systems are more reusable. Reengineering of software systems rather than developing new software will save precious time and resources. Reengineering reduces the cost of maintenance by increasing the software quality and reducing complexity.To justify reengineering, the cost of reengineering software must be estimated and compared with the cost of new software. The cost of reengineering depends upon many factors but major factors are the portion of the software (number of objects) to be reengineered and complexity (interrelationship between objects) of the software. In this paper efforts are done to present a reengineering cost estimation model. On the basis of this model, software managers can take a decision whether to maintain, reengineer or retire the software.

\end{abstract}


\keywords{Objects, reengineering, complexity, fine object, faulty object.}

\begin{textblock*}{18cm}(1cm,1cm) % {block width} (coords) 
\textcolor{GJBlue}{\LARGE Global Journals \LaTeX\ JournalKaleidoscope\texttrademark}
\end{textblock*}

\begin{textblock*}{18cm}(1.4cm,1.5cm) % {block width} (coords) 
\textcolor{GJBlue}{\footnotesize \\ Artificial Intelligence formulated this projection for compatibility purposes from the original article published at Global Journals. However, this technology is currently in beta. \emph{Therefore, kindly ignore odd layouts, missed formulae, text, tables, or figures.}}
\end{textblock*}


\let\tabcellsep& 	 	 		 
\section[{INTRODUCTION}]{INTRODUCTION}\par
he ability to accurately estimate the time and cost of reengineering software is the key factor for successful of reengineering project. Cost estimation is needed before reengineering is initiated. The primary objective is to enable the client and software engineer to perform a cost benefit analysis. The estimate can be in terms of person-month (PM), which can be translated into actual rupees cost. Cost estimation is not easy task; many factors in estimation are not quantifiable. Also reengineering area is young and needs much maturity and improvement. Quality of software design matters in the process of estimation. Easiness in software understanding, maintenance and reengineering depends upon the decomposition of system.\par
In successive generation of languages decomposition is supported differently. The advancement in the software technology, from machine language to assembly to procedural to object-oriented languages, helps programmers to estimate time and efforts for software development. Object -oriented technology is more helpful in measuring reengineering cost as it uses objects and not algorithms as its fundamental building blocks. In this context, object is not object of some object oriented language but it is a conceptual module than can be plugged in and plugged out from the software system. Reengineering identifies reusable components (objects) and analyzes the changes that would be needed to regenerate them for reuse within new software architecture. The use of a repeatable, clearly defined and well understood software objects, has make reengineering more effective and reduced the cost of reengineering. 
\section[{II.}]{II.}\par
WHAT IS AN OBJECT? I thought of an object in the context of objectoriented technology as independent component that can be pulled out and plugged in the software system. Object is taken as a private, separable independent module of software. If we pull out an object from a software system, it is working system without much affecting the whole system except the job done by that particular object. As in the other physical systems, a component is plugged out, repaired and plugged in the system again. Additional screws, nuts and bolts are required for this purpose. We must develop a universal language of such type. We must have a set of additional instructions as nuts and bolts to plug-out and plug-in the objects in the whole system. Following figure shows an object which is an independent unit of software that can be interfaced with the software system. Fig.  {\ref 1} The object oriented approach attempts to manage the complexity inherent in the real world problems by abstracting out knowledge and T encapsulating it \hyperref[b4]{[1]}. Object is an instance of a class and has an identity and stores attribute values  {\ref [2]}.\par
Here in this piece of work, Object is seen at a higher level of abstraction and is taken as independent module or unit that can be plugged in or plugged out of the software system. As software ages some objects become faulty (new term coined). Faulty objects are indentified and modified. Faulty object is that which hang without responding or if responding to some operation, its response is incorrect. Candidate software system is disbanded; all objects of the system are separated. Faulty objects are identified and collected for reengineering. Old design of the software is examined (Reverse Engineering).\par
Then redesigning of the structure of the system to improve the quality of software system is done (transformation of the architecture). According to new quality and modern design objects are integrated (Forward Engineering).\par
Following is the example of object oriented software system with eight objects like real world objects. Circles are objects and lines represent communications to send messages between objects. The object in the system is characterized with three properties Identity, State and Behavior. Identity distinguishes it from others, state is the data stored in it and behavior describes the methods by which the objects can be used. Abstraction is good tool for reengineering object oriented design as it helps in reducing complexity. Large systems are complex having more objects as each additional object increases the complexity of the system  {\ref [3]}. 
\section[{III. NEED FOR REENGINEERING}]{III. NEED FOR REENGINEERING}\par
Software maintenance starts after delivery of the software to correct faults, to improve performance and other attributes of the software. Maintenance plays an important role in the life cycle of a software system. Maintenance is the last stage of the software life cycle. After the product has been released, the maintenance phase keeps the software up to date with environment changes and user requirements changes. With recurring maintenance, complexity increases and software quality decreases. As the software is maintained, errors are introduced. Many studies have shown that each time an attempt is made to decrease the failure rate of a system, the failure rate got worse. On average, more than one error is introduced for every repaired error. In this way maintenance cost goes on increasing with time. Software maintenance can account for 60 to 80 percent of the total life cycle of software product. More than 90 \% of the total cost of software goes to maintenance and evolution of the software product  {\ref [4]}.\par
After a certain period, there is a crucial point when it is difficult to maintain the system or maintenance cost is too much high. Maintenance problems are a driving force behind re-engineering. Reengineering is the only way to avoid development cost. But what is the cost of reengineering software? If we do not know how can we go for reengineering? If the cost of reengineering is known then it can be compared with the cost of the new system.\par
In the following figure, maintenance cost is raising high from red point D onward. At this time we think of reengineering or retiring the software because maintenance cost increases rapidly. System can be maintained well if this situation does not arise. . Fig.  {\ref 3} : Decision point D Now software managers are worried for making decision for reengineering at point D. Name D is given as it is a decision point for the software managers. If we retire the system then we have to bear the cost of new software and naturally it will be high cost.\par
At this time, the cost model will help the software managers to compare the quoted cost of new software with cost of reengineering. Certainly reengineering will attract the software managers. Reengineering can not be escaped. Reengineering is the only way to utilize the resources fully and the problem of backlog of software will also be solved.\par
IV. 
\section[{REENGINEERING COST MODEL}]{REENGINEERING COST MODEL}\par
Object-oriented paradigm has changed the scene for reengineering. Object-oriented software system is all about objects. Object-Oriented software system is being more reusable and hence more suitable for reengineering. Reengineering of software systems rather than developing new software will save precious time of skilled engineers and legacy resources. Reengineering reduces the cost of maintenance and to escape the new software development. Maintenance cost increases as software ages. Maintenance problems are a driving force behind reengineering. To justify reengineering, the cost of reengineering software must be calculated and it should be less than the cost of purchasing new software with a great difference. The cost of reengineering depends upon many factors but major factors are the portion of the software (number of objects) to be reengineered and complexity (interrelationship between objects) of the software. Cost model will help organizations whether to reengineering the software system or to buy new software. This is a major decision faced by the software managers. In this paper efforts are done to present a cost model for reengineering legacy object oriented software system.\par
To calculate the cost of reengineering the following factors are taken into consideration.\par
1. Number of objects to be reengineered. 
\section[{Size of the object (Number of attributes)}]{Size of the object (Number of attributes)}\par
Each object has its own attributes, but attributes are taken into consideration according to requirement specification and business process. For example attributes of object employee are name, employee identification code, address, mobile phone, landline phone, age, height, color, basic pay, grade pay and many more. If software is required for payroll of the employee, the attributes like height, age, color etc is not required. Number of attributes depends upon the size of the problem.\par
Reengineering cost depends upon the number of objects to be reengineered. It means reengineering cost of an object is to be calculated to calculate the reengineering cost for the software system. The candidate object is called faulty object. On average half of the objects could be candidate objects. Following is the figure of software system with some 7 faulty objects. This system can be maintained as faulty objects are less than half. Fig.  {\ref 4} : Application System with faulty objects Application software system (in figure  {\ref 3}) can be maintained by modifying the faulty objects and need not reengineering. Number of faulty objects increases with the age of software. System is candidate for reengineering when the faulty objects number reaches to half. These faulty objects can be reengineered and can be plugged to enhance the functionality of the application. 
\section[{V. REENGINEERING COST OF THE CANDIDATE OBJECT}]{V. REENGINEERING COST OF THE CANDIDATE OBJECT}\par
Traditional software measurement techniques are not satisfactory for measuring productivity and predicting efforts for object oriented software systems. The Source Lines of Code (SLOC) metric and the Function Point metric both were for programming environment putting the data and procedures separate. In object oriented paradigm data and procedures are combined. In object oriented approach the role of UML is supreme. It was designed to provide a standard for software modeling languages. It is a graphical notation for object-oriented analysis and design. UML provides a framework for describing a set of models that capture the functional and structural semantics of any complex information system. UML constructs in object oriented software can be used for estimation of resources like efforts \& cost etc. While calculating the efforts of reengineering it is important to include information about communication between objects and reuse through inheritance in the size of the object (Lines of code) as well. An object is small piece of source code that can be maintained or reengineered.\par
Common and simple approach for measuring efforts for developing small software with single variable is as under Efforts = a*(SIZE)b where a and b are constants determined by regression analysis applied to historical data \hyperref[b8]{[5]}. SIZE is a variable and the value of this variable depends upon the size of the object. The SIZE is the number of lines of code. This model is for the structured software systems. This model measures the efforts for developing software from scratch. Reengineering the legacy software object will take the efforts to half.\par
Efforts for reengineering small piece of source code as an object can be calibrated as under\par
Efforts == [a*(number of attributes)b] / 2 where a, b are constants and can be determined from historical data(from past experience) of reengineered software systems. If we denote number of attributes of an object involved in computations by A, then the above model will be as under This model estimates the total efforts for reengineering an object, a small piece of code that can be plugged in with the object oriented application. Cost of reengineering all the faulty objects will be estimated by adding all above such Ei's. Let us suppose there are n faulty objects then cost of reengineering of all the objects will be E 1 +E 2 +E 3 +???.E n . 
\section[{VI. REENGINEERING COST OF SOFTWARE SYSTEM}]{VI. REENGINEERING COST OF SOFTWARE SYSTEM}\par
In the beginning, behavior of Legacy software system (Object-Oriented) is examined. The system is disbanded; objects are identified and separated for reengineering. Cost model for reengineering an object is presented above as efforts for reengineering an object O 1 will be E 1 . With this model, reengineering cost of all the faulty objects is calculated separately. Let us suppose our candidate system is with n faulty objects say O 1 , O 2 , O 3 ,?????..O n Reengineering cost of all the n objects will be added and is equal to E 1 +E 2 +E 3 +???.E n . Now all the objects are fine and we need to integrate them into a system. At this stage software architecture will also be changed (improved). There will be additional efforts (cost) for identifying the faulty objects, transformation of the architecture and integrating them into the new design. We denote it by C n ; the constant is to be determined after verifying the results by empirical data available from the past reengineered systems. Then the total efforts for reengineering the object oriented software system will be as under E = E 1 +E 2 +E 3 +???.E n . + C n E is total 
\section[{RESULTS AND CONCLUSIONS}]{RESULTS AND CONCLUSIONS}\par
In this piece of work cost model for reengineering object oriented software system is presented which will be valuable to both the community's software managers and software engineers.  
\section[{FUTURE WORK}]{FUTURE WORK}\par
In this paper, software system is viewed as system of real world objects. Object is seen as packed separable module that can be plugged in and plugged out of the software system. System is disbanded (split up/break up) and faulty objects are identified for reengineering. These objects are renovated and arranged as to improve the design structure, packed to work as a system. On this concept reengineering cost model is calibrated.\par
The future work is to test it for suitability to fit in on the basis of analysis of past data. The constants 'a' 'b' and 'Cn' are unknown and to be determined. These constants can be found out from the past experience by collecting empirical data from reengineered objectoriented software projects. Near about 50-80 projects can be judged to fit this model. With suitable values of above constants in discussion, the reengineering cost model for object oriented software systems is ready. This model will facilitate both the communities the software engineers and the software managers.\begin{figure}[htbp]
\noindent\textbf{2}\includegraphics[]{image-2.png}
\caption{\label{fig_0}Fig. 2 :}\end{figure}
 \begin{figure}[htbp]
\noindent\textbf{}\includegraphics[]{image-3.png}
\caption{\label{fig_1}}\end{figure}
 \begin{figure}[htbp]
\noindent\textbf{}\includegraphics[]{image-4.png}
\caption{\label{fig_2}}\end{figure}
 \begin{figure}[htbp]
\noindent\textbf{} \par 
\begin{longtable}{P{0.85\textwidth}}
Cost = E*R\\
VII.\end{longtable} \par
 
\caption{\label{tab_0}}\end{figure}
 			\footnote{© 2011 Global Journals Inc. (US) Global Journal of Computer Science and Technology Volume XI Issue XX Version I 37 2011 December} 			\footnote{© 2011 Global Journals Inc. (US) Global Journal of Computer Science and Technology Volume XI Issue XX Version I 38 2011 December} 			\footnote{© 2011 Global Journals Inc. (US) Global Journal of Computer Science and Technology Volume XI Issue XX Version I} 			\footnote{December} 			\footnote{© 2011 Global Journals Inc. (US)} 		 		\backmatter  			  				\begin{bibitemlist}{1}
\bibitem[Wilkerson and Wiener ()]{b0}\label{b0} 	 		\textit{Designing Object-Oriented Software},  		 			R W Wilkerson 		,  		 			B Wiener 		,  		 			L 		.  		2007. New Delhi: Prentice-Hall of India. p. 5.  	 
\bibitem[Erlikh (2000)]{b3}\label{b3} 	 		\textit{Leveraging legacy system dollars for E-business". (IEEE) IT Pro},  		 			L Erlikh 		.  		 \url{http://users.jyu.fi/\textasciitilde koskinen/smcosts.htmBOOKS}  		2000. May/June 2000. p. .  	 	 (Down loaded on 24-02-2011 from the site) 
\bibitem[Booch ()]{b7}\label{b7} 	 		\textit{Object-Oriented Analysis and Design with Applications},  		 			Grady Booch 		.  		2003. Singapore: Pearson Education.  	 
\bibitem[Halladay and Wiebel]{b2}\label{b2} 	 		\textit{Object-Oriented Software Engineering},  		 			S Halladay 		,  		 			M Wiebel 		.  		BPB Publications, New Delhi. P. 35.  	 
\bibitem[Bruegge and Allen]{b1}\label{b1} 	 		\textit{Object-Oriented Software Engineering Using UML, Patterns, and Java},  		 			Bernd Bruegge 		,  		 			Dutoit Allen 		,  		 			H 		.  		Singapore: Pearson Education. p. 724.  	 
\bibitem[Singh ()]{b10}\label{b10} 	 		 			Nasib Singh 		,  		 			Gil 		.  		 \url{http://journals.ecs.soton.ac.uk/java/tutorial/java/objects/object.htmldated1/8/2011}  		\textit{Software Engineering: software reliability, Testing and Quality Assurance},  				 (New Delhi)  		2002. Khanna Book Publishing Co.(P) Ltd.  	 
\bibitem[Pressman ()]{b6}\label{b6} 	 		\textit{Software engineering},  		 			Roger S Pressman 		.  		1992. New York: McGraw-Hill.  	 	 (3rd ed.) 
\bibitem[Ian Sommerville ()]{b8}\label{b8} 	 		\textit{Software Engineering},  		 			Ian Sommerville 		.  		1994. Singapore: Addison-Wesley Publishing Company.  	 
\bibitem[Aggarwal and Singh ()]{b9}\label{b9} 	 		‘Software engineering’.  		 			K K Aggarwal 		,  		 			Yogesh Singh 		.  	 	 		\textit{New age International (P) Ltd., Publishers},  				 (New Delhi)  		2002.  	 
\bibitem[Arnold]{b5}\label{b5} 	 		\textit{Software Reengineering},  		 			Robert S Arnold 		.  		Los Alamitos,California: IEEE Computer Society Press.  	 
\bibitem[Valenti ()]{b4}\label{b4} 	 		\textit{Successful Software Reengineering},  		 			Sal Valenti 		.  		2002. Hershey.  	 	 (IRM Press, 1331 E., Chocolate Avenue) 
\end{bibitemlist}
 			 		 	 
\end{document}
