Software Engineering: Slide Set 07: Software Maintenance
The document discusses business process reengineering and software reengineering. It describes the steps of business process reengineering as identifying business goals, processes, evaluating existing processes, specifying and designing redesigned processes, prototyping, and refining and implementing the redesigned process. For software reengineering, it outlines analyzing existing software to select candidates, restructuring documentation, using reverse engineering to analyze code, restructuring code and data, and then forward engineering to redesign the software architecture using modern concepts.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
55 views12 pages
Software Engineering: Slide Set 07: Software Maintenance
The document discusses business process reengineering and software reengineering. It describes the steps of business process reengineering as identifying business goals, processes, evaluating existing processes, specifying and designing redesigned processes, prototyping, and refining and implementing the redesigned process. For software reengineering, it outlines analyzing existing software to select candidates, restructuring documentation, using reverse engineering to analyze code, restructuring code and data, and then forward engineering to redesign the software architecture using modern concepts.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12
SOFTWARE ENGINEERING
Slide Set 07: Software Maintenance
Reengineering Business Process Reengineering • Business definition. Business goals are identified within the context of four key drivers: cost reduction, time reduction, quality improvement, and personnel development and empowerment. • Process identification. Processes that are critical to achieving the goals defined in the business definition are identified. • Process evaluation. The existing process is thoroughly analyzed and measured. • Process specification and design. Based on information obtained during the first three BPR activities, use-cases are prepared for each process that is to be redesigned are prepared for each process that is to be redesigned. • Prototyping. A redesigned business process must be prototyped before it is fully integrated into the business. • Refinement and instantiation. Based on feedback from the prototype, the business process is refined and then instantiated within a business system. Business Process Reengineering
Figure 8.1: Business Process Reengineering
Software re-Engineering
Figure 8.2: Software Re-engineering
Software re-Engineering Inventory Analysis : Establish a list of criteria, e.g., • Name of the application • Year it was originally created • Number of substantive changes made to it • Total effort applied to make these changes • Date of last substantive change • Effort applied to make the last change • System(s) in which it resides • Applications to which it interfaces, ... • Analyze and prioritize to select candidates for reengineering Document Restructuring • Weak documentation is the trademark of many legacy systems. • Creating documentation is far too time consuming. If the system works, we’ll live with what we have. In some cases, this is the correct approach. • Documentation must be updated, but we have limited resources. We’ll use a “document when touched” approach. It may not be necessary to fully re-document an application. • The system is business critical and must be fully re-documented. Even in this case, an intelligent approach is to pare documentation to an essential minimum. Reverse Engineering
Figure 8.3: Reverse Engineering
Code Restructuring • Source code is analyzed using a restructuring tool. • Poorly design code segments are redesigned •Violations of structured programming constructs are noted and code is then restructured (this can be done automatically) •The resultant restructured code is reviewed and tested to ensure that no anomalies have been introduced •Internal code documentation is updated. Data Restructuring • Unlike code restructuring, which occurs at a relatively low level of abstraction, data structuring is a full-scale reengineering activity • In most cases, data restructuring begins with a reverse engineering activity. • Current data architecture is dissected and necessary data models are defined. • Data objects and attributes are identified, and existing data structures are reviewed for quality. • When data structure is weak (e.g., flat files are currently implemented, when a relational approach would greatly simplify processing), the data are reengineered. • • Because data architecture has a strong influence on program architecture and the algorithms that populate it, changes to the data will invariably result in either architectural or code-level changes. Forward Engineering • The cost to maintain one line of source code may be 20 to 40 times the cost of initial development of that line. • 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. • CASE tools for reengineering will automate some parts of the job. • A complete software configuration (documents, programs and data) will exist upon completion of preventive maintenance.