CO7206 System Reengineering 4.2 Software Reengineering

2y ago
35 Views
6 Downloads
450.38 KB
40 Pages
Last View : 28d ago
Last Download : 3m ago
Upload by : Hayden Brunner
Transcription

CO7206System Reengineering4.2 Software ReengineeringMost slides are Slides by Ian Sommerville Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 1

ObjectiveszzzTo explain why software re-engineering is a costeffective option for system evolutionTo describe the activities involved in the softwarere-engineering processTo distinguish between software and data reengineering and to explain the problems of datare-engineering Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 2

Software re-engineeringzReorganising and modifying existing softwaresystems to make them more maintainablez"the examination of a subject system toreconstitute it in a new form and thesubsequent implementation of the new form.[ElliotChikofsky and JamesCross, Reverse Engineering and DesignRecovery: A Taxonomy, IEEE Software 7(1):13-17, 1990.] Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 3

Topics coveredzzzzzSource code translationReverse engineeringProgram structure improvementProgram modularisationData re-engineering Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 4

System re-engineeringzzzRe-structuring or re-writing part or all of alegacy system without changing itsfunctionalityApplicable where some but not all sub-systemsof a larger system require frequentmaintenanceRe-engineering involves adding effort to makethem easier to maintain. The system may be restructured and re-documented Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 5

When to re-engineerzzzzWhen system changes are mostly confined topart of the system then re-engineer that partWhen hardware or software support becomesobsoleteWhen new ways of accessing are needed, but itsfunctionality remainsWhen tool support is are available Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 6

Re-engineering advantageszReduced risk zThere is a high risk in new software development. There may bedevelopment problems, staffing problems and specificationproblemsReduced cost The cost of re-engineering is often significantly less than thecosts of developing new software Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 7

Business process re-engineeringzzzConcerned with re-designing business processesto make them more responsive and more efficientOften reliant on the introduction of new computersystems to support the revised processesMay force software re-engineering as the legacysystems are designed to support existingprocesses Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 8

Forward engineering and re-engineeringSystemspecificationDesign andimplementationNewsystemUnderstanding andtransformationRe-engineeredsystemForward engineeringExistingsoftware systemSoftware re-engineering Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 9

Forward engineering and re-engineering“Forward engineering is the traditionalprocess of moving from high-levelabstractions and logical, implementationindependent designs to the physicalimplementation of a system."[ElliotChikofsky and JamesCross, Reverse Engineering and Design Recovery: ATaxonomy, IEEE Software 7(1):13-17, 1990.] Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 10

The re-engineering sedprogramOriginal dataReverseengineeringProgrammodularisationSource provementStructuredprogram Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28ReengineereddataSlide 11

Re-engineering cost factorszzzzThe quality of the software to be re-engineeredThe tool support available for re-engineeringThe extent of the data conversion which isrequiredThe availability of expert staff for re-engineering Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 12

Re-engineering approachesAutomated programrestructuringAutomated sourcecode conversionProgram and datarestructuringAutomated restructuringwith manual changesRestructuring plusarchitectural changesIncreased cost Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 13

Source code translationzzInvolves converting the code from one language(or language version) to another e.g. FORTRANto CMay be necessary because of: zHardware platform updateStaff skill shortagesOrganisational policy changesOnly realistic if an automatic translator isavailable Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 14

The program translation processSystem to nslate codeManuallytranslate codeSoftware Engineering, 6th edition. Chapter 28Slide 15System to bere-engineeredIdentify sourcecode differences Ian Sommerville 2000Design translatorinstructions

Reverse engineeringzzzzAnalysing software with a view to understandingits design and specificationMay be part of a re-engineering process but mayalso be used to re-specify a system for reimplementationBuilds a program data base and generatesinformation from thisProgram understanding tools (browsers, crossreference generators, etc.) may be used in thisprocess Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 16

Reverse engineeringz“Reverse engineering is the process ofanalyzing a subject system with two goals inmind:(1) to identify the system's components and theirinterrelationships; and,(2) to create representations of the system in anotherform or at a higher level of abstraction."[ElliotChikofsky and JamesCross, Reverse Engineering and DesignRecovery: A Taxonomy, IEEE Software 7(1):13-17, 1990.] Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 17

The reverse engineering processProgram storeSystem to bere-engineeredDocumentgenerationManualannotation Ian Sommerville 2000Data stucturediagramsTraceabilitymatricesSoftware Engineering, 6th edition. Chapter 28Slide 18

Reverse engineeringzzz“Design recovery is a subset of reverseengineering in which domain knowledge,external information, and deduction or fuzzyreasoning are added to the observations of thesubject system."The objective of design recovery is to identifymeaningful higher-level abstractions beyondthose obtained directly by examining thesystem itself.[ElliotChikofsky and JamesCross, Reverse Engineering and DesignRecovery: A Taxonomy, IEEE Software 7(1):13-17, 1990.] Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 19

Reverse engineeringzReverse engineering often precedes reengineering but is sometimesworthwhile in its own right The design and specification of a system maybe reverse engineered so that they can be aninput to the requirements specificationprocess for the system’s replacement The design and specification may be reverseengineered to support program maintenanceand reengineering Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 20

Program structure improvementzzzMaintenance tends to corrupt the structure of aprogram. It becomes harder and harder tounderstandThe program may be automatically restructured toremove unconditional branchesConditions may be simplified to make them morereadable Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 21

Program Restructuringz“Restructuring is a transformation fromone form of representation to another at thesame relative level of abstraction." The newrepresentation is meant to preserve thesemantics and external behaviour of theoriginal.[ElliotChikofsky and JamesCross, Reverse Engineering and DesignRecovery: A Taxonomy, IEEE Software 7(1):13-17, 1990.] Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 22

Spaghetti logicStart:Get (Time-on, Time-off, Time, Setting, Temp, Switch)if Switch off goto offif Switch on goto ongoto Cntrldoff: if Heating-status on goto Sw-offgoto loopon: if Heating-status off goto Sw-ongoto loopCntrld: if Time Time-on goto onif Time Time-off goto offif Time Time-on goto Startif Time Time-off goto Startif Temp Setting then goto offif Temp Setting then goto onSw-off: Heating-status : offgoto SwitchSw-on: Heating-status : onSwitch: Switch-heatingloop:goto Start Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 23

Structured control logicloop-- The Get statement finds values for the given variables from the system’s-- environment.Get (Time-on, Time-off, Time, Setting, Temp, Switch) ;case Switch ofwhen On if Heating-status off thenSwitch-heating ; Heating-status : on ;end if ;when Off if Heating-status on thenSwitch-heating ; Heating-status : off ;end if;when Controlled if Time Time-on and Time Time-off thenif Temp Setting and Heating-status on thenSwitch-heating; Heating-status off;elsif Temp Setting and Heating-status off thenSwitch-heating; Heating-status : on ;end if;end if ;end case ;end loop ; Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 24

Another Spaghetti logicSTART:GOTO MAMMALSDOG:WALK THE DOGGOTO CATMAMMALS:GOTO DOGFISH:FEED THE FISHCOVER THE BIRDGOTO FROGCAT:PUT OUT THE CATGOTO FISH-AND-FOWLFISH-AND-FOWL:GOTO FISHFROG:SING TO THE FROGEXIT. Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 25

Another structuredcontrol logicSTART:CALL FUNCTIONCALL FUNCTIONCALL FUNCTIONCALL FUNCTIONCALL FUNCTIONEXIT.DOGCATFISHBIRDFROGDOG:WALK THE DOGRETURNCAT:PUT OUT THE CATRETURNFISH:FEED THE FISHRETURNBIRD:COVER BIRD CAGERETURNFROG:SING TO THE FROGRETURN Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 26

Condition simplification-- Complex conditionif not (A B and (C D or not ( E F) ) ).-- Simplified conditionif (A B and (C D or E F). Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 27

Automatic program restructuringProgram to berestructuredRestructuredprogramAnalyser andgraph builderProgramgeneratorGraphrepresentation Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 28

Restructuring problemszProblems with re-structuring are: zzLoss of commentsLoss of documentationHeavy computational demandsRestructuring doesn’t help with poormodularisation where related components aredispersed throughout the codeThe understandability of data-driven programsmay not be improved by re-structuring Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 29

Program modularisationzzThe process of re-organising a program so thatrelated program parts are collected together in asingle moduleUsually a manual process that is carried out byprogram inspection and re-organisation Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 30

Data re-engineeringzzzInvolves analysing and reorganising thedata structures (and sometimes the datavalues) in a programMay be part of the process of migratingfrom a file-based system to a DBMS-basedsystem or changing from one DBMS toanotherObjective is to create a managed dataenvironment Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 31

Approaches to data re-engineeringApproachDescriptionData cleanupThe data records and values are analysed to improve their quality.Duplicates are removed, redundant information is deleted and a consistentformat applied to all records. This should not normally require anyassociated program changes.In this case, the data and associated programs are re-engineered to removelimits on the data processing. This may require changes to programs toincrease field lengths, modify upper limits on the tables, etc. The data itselfmay then have to be rewritten and cleaned up to reflect the programchanges.In this case, data is moved into the control of a modern databasemanagement system. The data may be stored in separate files or may bemanaged by an older type of DBMS.Data extensionData migration Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 32

Data problemszzzEnd-users want data on their desktop machinesrather than in a file system. They need to be ableto download this data from a DBMSSystems may have to process much more datathan was originally intended by their designersRedundant data may be stored in different formatsin different places in the system Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 33

Program 1File 1Program 2File 2Program 4Program 3File 3File 4Program 5Program 6File 5File 6Program 7BecomesProgram 3Program 4Program 5Program 6Program 7Program 2Program 1DatabasemanagementsystemdescribesLogical andphysicaldata modelsDatamigration

Data problemszData naming problems zField length problems zzThe same item may be assigned different lengths in differentprogramsRecord organisation problems zNames may be hard to understand. The same data may havedifferent names in different programsRecords representing the same entity may be organiseddifferently in different programsHard-coded literalsNo data dictionary Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 35

Data value inconsistenciesData inconsistencyInconsistent defaultvaluesInconsistent unitsInconsistent Inconsistent handlingof negative values Ian Sommerville 2000DescriptionDifferent programs assign different default values to the same logical dataitems. This causes problems for programs other than those that created thedata. The problem is compounded when missing values are assigned adefault value that is valid. The missing data cannot then be discovered.The same information is represented in different units in differentprograms. For example, in the US or the UK, weight data may berepresented in pounds in older programs but in kilograms in more recentsystems. A major problem of this type has arisen in Europe with theintroduction of a single European currency. Legacy systems have beenwritten to deal with national currency units and data has to be converted toeuros.Different programs apply different data validation rules. Data written byone program may be rejected by another. This is a particular problem forarchival data which may not have been updated in line with changes todata validation rules.Programs assume some meaning in the way items are represented. Forexample, some programs may assume that upper-case text means anaddress. Programs may use different conventions and may therefore rejectdata which is semantically valid.Some programs reject negative values for entities which must always bepositive. Others, however, may accept these as negative values or fail torecognise them as negative and convert them to a positive value.Software Engineering, 6th edition. Chapter 28Slide 36

Data conversionzzData re-engineering may involve changing thedata structure organisation without changing thedata valuesData value conversion is very expensive. Specialpurpose programs have to be written to carry outthe conversion Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 37

The data re-engineering processDataanalysisProgram to be re-engineeredEntity namemodificationLiteralreplacementData definitionre-orderingDataanalysisStage 1Datare-formattingDefault valueconversionValidation rulemodificationStage 2Change summary tables Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28DataconversionStage 3ModifieddataSlide 38

Key pointszzzThe objective of re-engineering is to improve thesystem structure to make it easier to understandand maintainThe re-engineering process involves source codetranslation, reverse engineering, programstructure improvement, program modularisationand data re-engineeringSource code translation is the automaticconversion of of program in one language toanother Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 39

Key pointszzzzReverse engineering is the process of deriving thesystem design and specification from its sourcecodeProgram structure improvement replacesunstructured control constructs with while loopsand simple conditionalsProgram modularisation involves reorganisationto group related itemsData re-engineering may be necessary because ofinconsistent data management Ian Sommerville 2000Software Engineering, 6th edition. Chapter 28Slide 40

Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28 Slide 19 Reverse engineering z “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 s

Related Documents:

JITFOILS.PPT (13) Business Reengineering Impact to Supplier Base 0 5,000 10,000 15,000 20,000 25,000 TI GM DEC Allied Signal Xerox Motorola Ford Motor Before Reengineering After Reengineering Source: Wall Street Journal JITFOILS.PPT (14) Partnership Model Fewer Suppliers Cl

improvement in work processes & outputs over an open-ended period of time. Reengineering, also known as business process redesign or process innovation, refers to discrete initiatives that are intended to achieve radically redesigned and improved work processes in a bounded time frame. (Davenport)

kinds of books out there, when reengineering is still a common event. But I’m at least glad to see that while there aren’t many books in this vein, this book is an example of how good they are. Martin Fowler, Thought Works, Inc. vii

BSC Balanced Score Card . BPR Business Process Reengineering . . Process Reengineering (BPR), Balanced S- core card (BSC) based performance management systems, and various participatory planning and management efforts. . equitable and quality healthcare : 6 . Strengthening Human Resources for Health (HRH): Year Three Work plan :

into the reengineering work through information control structure of Bionic Assembly System (BAS) concept brings a number of advantages. In the comparison to the classical control structures this solution promises improvement of system performances and increase of system robustness. Introduction of a cloud helps to organize

Business Process Re-Engineering Scott Peterein, USCG SDM ‘14. 2 Presentation Outline USCG Financial Management (FM) Business Process Reengineering (BPR) Thesis Research Focus Application of STPA & SafetyHAT Hazard Mitigation . System Dynamics modeling used to quantify negative system impacts. 17 Causal Factors (examples .

reengineering and information technology environment modelling [12]. The main goal of the automobile company in this proposed business process is to supply auto parts within the country, where several activities such as: product claimer, company system, company head office,

Electromagnetics and Applications - MIT OpenCourseWare . Preface - ix -