Beruflich Dokumente
Kultur Dokumente
Re- Engineering
• Reorganising and modifying existing software
systems to make them more maintainable
• Reengineering is the fundamental rethinking
and redesign of business processes to achieve
dramatic improvements in critical,
contemporary measures of performance, such
as cost, quality, service and speed.
(Hammer & Champy, 1993)
• Re-structuring or re-writing part or all of a
legacy system without changing its
functionality
• Applicable where some but not all sub-systems
of a larger system require frequent
maintenance
• Re-engineering involves adding effort to make
them easier to maintain. The system may be re-
structured and re-documented
• Forward Engineering is different from
reengineering
Why Re-engineering
• Customers
– Demanding
– Sophistication
– Changing Needs
• When system changes are mostly confined to
part of the system then re-engineer that part
• When hardware or software support becomes
obsolete
• When tools to support re-structuring are
available
• Competition
– Local
– Global
Why resistance in re-engineering?
• Complacency
• Political Resistance
• New Developments
more efficient
• Often reliant on the introduction of new
computer systems to support the revised
processes
• May force software re-engineering as the
legacy systems are designed to support
existing processes
Program Modularised Original data
Original
documentation program
program
Reverse
engineering
Data
Source code Program reengineering
translation modularisation
Program
structure
improvement
Structured Reengineered
program data
Reverse Engineering
• Analysing software with a view to understanding
its design and specification
• May be part of a re-engineering process but may
also be used to re-specify a system for re-
implementation
• Builds a program data base and generates
information from this
• Program understanding tools (browsers, cross-
reference generators, etc.) may be used in this
process
Reverse Engineering
• “Reverse engineering” term derived from
hardware development
– the process of discovering of how competitor’s system
worked.
– in software engineering,
• it is the process of discovering how your own system works.
10
Reverse Engineering
11
Reverse Engineering Terminology
• Design recovery
– is a subset of reverse engineering in which domain knowledge,
external information, and deduction or fuzzy reasoning are added to
the observations of the subject system to identify meaningful higher
level abstractions. Design recovery recreates design abstractions from
a combination of code, existing design documentation (if available),
personal experience, and general knowledge about problem and
application domains.
• Redocumentation
– is the creation or revision of a semantically equivalent representation
within the same relative abstraction level.. Redocumentation is the
simplest and oldest form of reverse engineering, and can be
considered to be an unintrusive, weak form of restructuring.
12
Reverse Engineering
• forward and reverse engineering can be
illustrated as:
Specifications Specifications
Design Design
Code Code
Behavior Behavior
Forward Reverse
Engineering Engineering
13
Reverse Engineering
Two distinct phases
1. identify the system’s components and any
dependencies among them
14
Reverse Engineering
17
Reverse Engineering
18
Reverse Engineering
• the software system can be reasoned about in
may different views:
19
Web Engineering
• Web engineering is the application of systematic
and quantifiable approaches (concepts,
methods, techniques, tools) to cost-effective
requirements analysis, design, implementation,
testing, operation, and maintenance of high-
quality Web applications.
• Web engineering is also the scientific discipline
concerned with the study of these approaches
Categories of Web applications
Document Centric
• Static Homepage
• Web-Radio
• Company Web Site
Interactive
• Virtual Exhibition
• News Site
• Travel Planning
Transactional
• Online Banking
• Online Shopping
• Booking System
Workflow-based (Service providers)
• E-Government
• B2B Solution
• Patient Workflow
Collaborativ
Collaborative
• Chatroom
• E-Learning Platform
• Virtual Shared Workspace
Portal-oriented
• Community Portal
• Online Shopping Mall
• Business Portal
Search Application
Web Application Quality Attributes
• Usability
• Functionality
– Searching
– Retrieving
– Navigating
– Browsing
– Domain Oriented Features
– Efficiency