Reengineering

Views:
 
Category: Entertainment
     
 

Presentation Description

No description available.

Comments

Presentation Transcript

Re-engineering and Reuse of Software : 

Re-engineering and Reuse of Software By Alex Kirzhner

Agenda : 

Agenda Introduction Historical Information Re-engineering Software Reuse Component-based engineering Examples of reuse projects Non technical information Additional info and reference

Problems : 

Problems Unused ideas Unused tools Abundant or out of date projects Development cost Maintenance cost

Solution : 

Solution Re-engineering The process of examining and altering an existing system to reconstitute it in a new form. May include reverse engineering (analyzing a system and producing a representation at a higher level of abstraction, such as design from code), forward engineering (using software products derived from an existing system, together with new requirements, to produce a new system), and translation (transforming source code from one language to another or from one version of a language to another). Software Reuse The principle of using a software component in multiple applications, for example by deriving application-specific object classes from general-purpose object classes, or using existing class libraries or frameworks for common application functions. Reuse is one of the goals of object technology.

Historical background : 

Historical background Code reuse started with the first line of code. High-level languages introduce component and packages reuse, reengineering and reverse engineering. Reuse as a concept was introduced by McIlroy in 1968. Reverse engineering and re-engineering as a concepts were introduced in 1980’s

Re-engineering : 

Re-engineering Formal transformation – popular in Europe Mainly used for forward and backward engineering. Reverse engineering assist in understating of components. Informal transformation – popular in US Pattern matching methods – use reverse engineering.

Software Reuse : 

Software Reuse Need component repository (i.e. component library) that easy to search Better knowledge about application (domain analysis) Each component need to have: clear specification (parameters, method name), description author name and contact info, modification history Reuse components need to be as generic as possible.

Component-based engineering : 

Component-based engineering Main goals: decrease development time decrease development cost maintain high quality It can be achieved by component reuse “Components are binary, independently deployable building blocks, that can be composed by third party” [2]

Package based software development : 

Package based software development Source code components – standardized build interface and configuration interface Source tree composition – combining components into directory hierarchy Development and deployment modes Release management for deployed components Combined development during development mode Use of multiple SCM systems

Concepts of Source tree composition : 

Concepts of Source tree composition Build Interface – make component build interface standardized (this makes software building easier) Configuration interface – make configuration interface standardized Component dependencies – both dependency and variability parameters need to be present in configuration interface Build order – first build all components that a component depends on. Component configuration – multiple configuration parameters may exist for single component (makes component more generic) Source code packages – done to get away from SCM dependency and allows to maintain multiple versions of the same component Package definitions – contain main information about a component

Concepts of Source tree composition : 

Concepts of Source tree composition

Projects : 

Projects REBOOT (Reuse Based on Object-Oriented Techniques) - develops, evaluates and disseminates advanced methodologiesfor reuse-driven and object-oriented software development REDO – assist software engineers in the maintenance, restructuring and validation of large software systems and their transportation between different environments. (On of the Esprit projects) ITHACA-2 – assist in development of an integrated application support system based on the object-oriented programming approach. DRACO.NET - monitors your source code repository, automatically rebuilds your project when changes are detected and then emails you the build result along with a list of changes since the last build.

Non technical issues : 

Non technical issues Personnel Not everyone likes to reuse code written by someone else Buy vs. in-house development Reusable components take time from main project Economics Payoff for components reuse will occur in the long run (various metrics are used) see [3] Software reuse through sale of packages Legal Re-engineering is illegal

Measures for Reuse Success : 

Measures for Reuse Success Reuse Benefit – operational benefit of reuse (development effort and cost, time-to market, maintenance effort) Strategic Impact – same as reuse benefit but on organizational level Software Quality – measure error rate

Additional Information : 

Additional Information Conferences: The International Conference on Software Engineering The Symposium on Software Reusability The European Reuse Workshop

Additional Information (cont.) : 

Additional Information (cont.) Subscription Groups: Software Reuse Factors Reusable Software Components Resources IEEE Software Reuse Group Software Productivity Consortium members

References : 

References “The Re-engineering and Reuse of Software” Patrick A.V. Hall and Lingzi Jin. (Software Engineering Vol 1 p.355) “Package-Based Software Development” Merijn de Jonge, Proceeding of the 29th EUROMICRO Conference (EUROMICRO’03) “Analytical and Empirical Evaluation of Software Reuse Metrics” Prem Devanbu, Proceeding of the 18th International Conference on Software Engineering (ICSE’96) p. 189 “Strategies for Software Reuse: A Principal Component Analysis of Reuse Practices” Marcus A. Rothenberger, IEEE Transaction on Software Engineering, Vol. 29 No. 9, September 2003 p.825

Questions : 

Questions

authorStream Live Help