software reengineering seii lecture 27 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Software Reengineering SEII-Lecture 27 PowerPoint Presentation
Download Presentation
Software Reengineering SEII-Lecture 27

Loading in 2 Seconds...

play fullscreen
1 / 21

Software Reengineering SEII-Lecture 27 - PowerPoint PPT Presentation


  • 168 Views
  • Uploaded on

Software Reengineering SEII-Lecture 27. Dr. Muzafar Khan Assistant Professor Department of Computer Science CIIT, Islamabad. Recap. Unified theory of software evolution Reengineering Business process reengineering and software reengineering BPR model

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Software Reengineering SEII-Lecture 27' - sugar


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
software reengineering seii lecture 27

Software ReengineeringSEII-Lecture 27

Dr. Muzafar Khan

Assistant Professor

Department of Computer Science

CIIT, Islamabad.

recap
Recap
  • Unified theory of software evolution
  • Reengineering
    • Business process reengineering and software reengineering
  • BPR model
    • Business definition, process identification, Process evaluation, process specification and design, prototyping, refinement and instantiation
  • Software reengineering process model
    • Inventory analysis, document restructuring, reverse engineering, code restructuring, data restructuring, forward engineering
  • Reverse engineering
restructuring
Restructuring
  • Modification of source code and/or data
  • In general, no modification of all program architecture
  • Focus on design details of individual modules and local data structure
  • If it involves program architecture, it becomes forward engineering
  • Restructuring occurs when the basic architecture is solid
code restructuring
Code Restructuring
  • Better design to perform the same function
  • Different techniques
    • Warnier’s logical simplification techniques
      • Boolean algebra
      • Conversion of “spaghetti-bowl” code into structured program
    • Reengineering tools
      • Resource exchange diagram maps program module and resources
      • Program architecture is restructured to minimize coupling
data restructuring
Data Restructuring
  • Analysis of source code prior to data restructuring
  • Data definitions, file descriptions, I/O, and interface descriptions are evaluated
  • Objective is to extract data related information
  • It is also called data analysis
  • Data redesign
    • Data record standardization
    • Data name rationalization
    • Physical modifications to existing data structures
forward engineering 1 4
Forward Engineering [1/4]
  • Consider an example
    • “spaghetti bowl” code
    • Modules are 2000 statements long
    • Few meaningful comment lines
    • 290,000 statements
    • No other documentation
  • Modification options
    • Continue the ad hoc design
    • Try to understand inner workings of the program
    • Redesign, recode, and test the relevant portions
    • Complete redesign, recode, and test
  • No single “correct” choice
forward engineering 2 4
Forward Engineering [2/4]
  • Do not wait for maintenance request
  • Select a program that
    • Will remain in use for preselected number of years
    • Is currently being used successfully
    • Is likely to undergo major modifications
    • Option 2, 3, and 4 should be applied
  • Why we redevelop
    • The cost to maintain one line of source code may be 20 to 40 times the cost of initial development of that line
forward engineering 3 4
Forward Engineering [3/4]
  • Redesign of the software architecture (program and/or data structure), using modern design concepts, can greatly facilitate future maintenance
  • Because a prototype of the software already exists, development productivity should be much higher than average
  • The user now has experience with the software. Therefore, new requirements and the direction of change can be ascertained with greater ease
  • Automated tools for reengineering will facilitate some parts of the job
  • A complete software configuration (documents, programs, and data) will exist upon completion of preventive maintenance
forward engineering 4 4
Forward Engineering [4/4]
  • Consider a large organization
    • 500-2000 production programs
    • Ranked based on the importance
    • Reviewed for the possible candidates
  • Forward engineering process applies SE principles, concepts, and methods
  • It does not simply re-create a modern equivalent program of an older version
  • If focuses on the use of new user and technology requirements
forward engineering for client server architectures 1 2
Forward Engineering for Client-Server Architectures [1/2]
  • Many mainframe applications are reengineered to accommodate client-server architectures
    • Application functionality migrates to each client computer
    • New GUI interfaces are implemented at the client sites
    • Database functions are allocated to the server
    • Specialized functionality (e.g. compute-intensive analysis) may remain at the server site
    • New communications, security, archiving, and control requirements must be established at both the client and server sites
  • It requires business reengineering, software reengineering, and enterprise network infrastructure
forward engineering for client server architectures 2 2
Forward Engineering for Client-Server Architectures [2/2]
  • It starts with thorough analysis of the business environment
  • Three layers of abstraction can be identified
  • Database layer
  • Business rules layer
  • Client applications layer
forward engineering for object oriented architectures
Forward Engineering for Object-Oriented Architectures
  • Choice of many organizations
  • Some applications remain “as is” but some reengineered
  • Appropriate data, functional, and behavioral models are created by reverse engineering
  • If extended functionality/behavior is required, use cases are also created
  • Class hierarchies, object-relationship models, object-behavior models, and subsystems are defined
  • Component library can be used if exists for that domain
  • Otherwise algorithms and data structures may be reused
economics of reengineering 1 3
Economics of Reengineering [1/3]
  • Reengineering needs resources
  • Resources are limited that may be used for other business purposes
  • Cost-benefit analysis
  • Nine parameters are proposed
  • P1 = current annual maintenance cost for an application
  • P2= current annual operations cost for an application
  • P3= current annual business value of an application
  • P4= predicted annual maintenance cost after reengineering
  • P5= predicted annual operations cost after reengineering
economics of reengineering 2 3
Economics of Reengineering [2/3]
  • P6= predicted annual business value after reengineering
  • P7= estimated reengineering costs
  • P8= estimated reengineering calendar time
  • P9= reengineering risk factor
  • L = expected life of the system
  • Cost associated with continuing maintenance

Cmaint = [P3 – (P1 + P2)] * L

economics of reengineering 3 3
Economics of Reengineering [3/3]
  • Cost associated with reengineering

Creeng = P6 + (P4+ P5) * (L – P8) – (P7 * P9)

  • Overall benefit of reengineering

Cost benefit = Creeng– Cmaint

  • It should be for high-priority applications
  • Highest cost-benefit applications can be targeted
  • Others can be postponed until resources are available
software reuse 1 3
Software Reuse [1/3]
  • Reuse-based software engineering is a strategy
  • Originally, it was started as development strategy
  • Factors
    • Lower software production and maintenance costs
    • Faster delivery of systems
    • Improved software quality
  • Software is a valuable asset for an organization
  • Reuse to increase return on investment
  • Availability of reuse software is also dramatically increased
    • Open source movement
    • Organizations provide reusable components
    • Standards help to develop reusable general services
software reuse 2 3
Software Reuse [2/3]
  • Application system reuse
    • The whole application may be reused
    • Application families with a common architecture
  • Component reuse
    • Subsystems to single objects
    • Example: pattern matching system (text-process system) may be used in a database management system
  • Object and function reuse
    • Component for a single function / an object class
    • Standard libraries
  • Concept reuse
software reuse 3 3
Software Reuse [3/3]
  • Software development processes should be adapted for reuse strategy
  • Requirements refinement stage
  • Design and implementation stages may include explicit activities
  • Software reuse is more effective when planned as an organization-wide reuse program
    • Creation of reusable assets
    • Adaptation of development processes
  • Japanese industry is quite mature in reuse
benefits of software reuse 1 2
Benefits of Software Reuse [1/2]
  • Increased dependability
    • Tested software
    • More reliable
  • Reduced process risk
    • Cost of existing software is already known
    • Margin of error is reduced in cost estimation
  • Effective use of specialists
    • No reinvent the wheel
    • Domain specialist can encapsulate their knowledge
benefits of software reuse 2 2
Benefits of Software Reuse [2/2]
  • Standard compliance
    • User interface standards
    • Fewer mistakes
  • Accelerated development
    • Time to market
    • Speed up system production
summary
Summary
  • Restructuring
    • Code restructuring, data restructuring
  • Forward engineering
    • Client-server architectures, object-oriented architectures
  • Economics of reengineering
    • Cost benefit analysis
  • Software reuse
    • Benefits of reuse