ebook img

Successful Evolution of Software Systems - De Montfort PDF

299 Pages·2002·5.18 MB·English
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Successful Evolution of Software Systems - De Montfort

Successful Evolution of Software Systems For a listing of recent titles in the Artech House Computing Library, turn to the back of this book. Successful Evolution of Software Systems Hongji Yang Martin Ward Artech House Boston * London www.artechhouse.com LibraryofCongressCataloging-in-PublicationData Yang,Hongji. Successfulevolutionofsoftwaresystems/HongjiYang,MartinWard. p. cm.—(ArtechHousecomputinglibrary) Includesbibliographicalreferencesandindex. ISBN1-58053-349-3(alk.paper) 1.Softwarereengineering. 2.Softwaremaintenance. I.Ward,Martin,Dr. II.Title. III.Series. QA76.758.Y365 2003 005.1—dc21 2002038277 BritishLibraryCataloguinginPublicationData Yang,Hongji Successfulevolutionofsoftwaresystems.—(ArtechHousecomputinglibrary) 1.Softwarereengineering I.Title II.Ward,Martin 005.1 ISBN1-58053-349-3 CoverdesignbyYekaterinaRatner q2003ARTECHHOUSE,INC. 685CantonStreet Norwood,MA02062 Allrightsreserved.PrintedandboundintheUnitedStatesofAmerica.Nopartofthisbookmaybereproduced orutilizedinanyformorbyanymeans,electronicormechanical,includingphotocopying,recording,orbyany informationstorageandretrievalsystemwithoutpermissioninwritingfromthepublisher. Alltermsmentionedinthisbookthatareknowntobetrademarksorservicemarkshavebeenappropriately capitalized.ArtechHousecannotattesttotheaccuracyofthisinformation.Useofaterminthisbookshouldnot beregardedasaffectingthevalidityofanytrademarkorservicemark. InternationalStandardBookNumber:1-58053-349-3 LibraryofCongressCatalogCardNumber:2002038277 10 9 8 7 6 5 4 3 2 1 To Xiaodong Zhang and Tianxiu Yang HongjiYang To Kate, Rebecca, and Tom Martin Ward Contents Preface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Acknowledgments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv 1 Constant Software Changes . ............... ........... 1 1.1 Legacy systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Business changes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Software evolution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 Software Engineering and Evolution ........ ........... 5 2.1 Computer system evolution . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 Software engineering. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3 Software quality. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.4 Software everywhere. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.5 Software maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.6 Evolving software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3 Software Reengineering for Evolution....... .......... 23 3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.2 Software reengineering cycle . . . . . . . . . . . . . . . . . . . . . . . . . 24 vii viii Contents 3.3 Taxonomy of software reengineering . . . . . . . . . . . . . . . . . . . 26 3.4 Reverse engineering. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.5 Current state of formal methods in reengineering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.6 Classification of formal methods. . . . . . . . . . . . . . . . . . . . . . . 33 3.6.1 Model-based approach. . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.6.2 Logic-based approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.6.3 Algebraic approach. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.6.4 Process algebra approach. . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.6.5 Net-based approach. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.7 Criteria and results. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.8 Analysis and summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4 WSL and Transformation Theory............. ......... 53 4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.2 Background. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 4.3 Syntax and semantics of the kernel language . . . . . . . . . . . . . 57 4.3.1 Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 4.3.2 The specification statement. . . . . . . . . . . . . . . . . . . . . . . . . 59 4.3.3 States and state transformations. . . . . . . . . . . . . . . . . . . . . 60 4.3.4 Refinement of state transformations. . . . . . . . . . . . . . . . . . . 60 4.3.5 Recursion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 4.3.6 Weakest preconditions. . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 4.3.7 Weakest preconditions of statements . . . . . . . . . . . . . . . . . . 62 4.4 Proving the correctness of a refinement . . . . . . . . . . . . . . . . . 64 4.4.1 Expressing a statement as a specification . . . . . . . . . . . . . . . 66 4.4.2 Some basic transformations . . . . . . . . . . . . . . . . . . . . . . . . 66 4.4.3 Proof rules for implementations . . . . . . . . . . . . . . . . . . . . . 68 4.5 Algorithm derivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 4.6 Extending the kernel language. . . . . . . . . . . . . . . . . . . . . . . . 71 4.7 Example transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 4.7.1 Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 4.7.2 Examples of transformations . . . . . . . . . . . . . . . . . . . . . . . 75 Contents ix 4.7.3 Loops and exits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 4.7.4 Action systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 4.8 Why invent WSL? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 5 The FermaT Evolution Workbench.......... .......... 83 5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 5.2 Previous transformation tools. . . . . . . . . . . . . . . . . . . . . . . . . 84 5.3 Analyzing assembler code. . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 5.4 The FermaT workbench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 5.4.1 The function catalog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 5.4.2 The function call graph. . . . . . . . . . . . . . . . . . . . . . . . . . . 90 5.4.3 The text editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 5.4.4 The program flowchart . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 5.4.5 The data catalog. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 5.4.6 Analysis tools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 5.5 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 References. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 6 An Integrated Evolution Framework ........ ......... 103 6.1 Characteristics of legacy systems. . . . . . . . . . . . . . . . . . . . . . 103 6.1.1 Typical problems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 6.1.2 Structure and data dependency. . . . . . . . . . . . . . . . . . . . . 104 6.2 The expanded evolution approach . . . . . . . . . . . . . . . . . . . . 106 6.2.1 Extending WSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 6.2.2 Architecture of extended WSL (EWSL). . . . . . . . . . . . . . . . 108 6.2.3 Working flow of EWSL . . . . . . . . . . . . . . . . . . . . . . . . . . 109 6.3 EWSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 6.3.1 ITL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 6.3.2 Timed guarded command language (TGCL). . . . . . . . . . . . 112 6.3.3 Object-oriented TAM. . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

Description:
Successful Evolution of Software Systems Hongji Yang Martin Ward Artech House Boston * London www.artechhouse.com
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.