
San Jose State University SJSU ScholarWorks Master's Theses Master's Theses and Graduate Research Spring 2017 Unified Software Engineering Reuse: A Methodology for Effective Software Reuse Charles Allen Flood San Jose State University Follow this and additional works at: https://scholarworks.sjsu.edu/etd_theses Recommended Citation Flood, Charles Allen, "Unified Software Engineering Reuse: A Methodology for Effective Software Reuse" (2017). Master's Theses. 4796. DOI: https://doi.org/10.31979/etd.dc8u-x65e https://scholarworks.sjsu.edu/etd_theses/4796 This Thesis is brought to you for free and open access by the Master's Theses and Graduate Research at SJSU ScholarWorks. It has been accepted for inclusion in Master's Theses by an authorized administrator of SJSU ScholarWorks. For more information, please contact [email protected]. UNIFIED SOFTWARE ENGINEERING REUSE: A METHODOLOGY FOR EFFECTIVE SOFTWARE REUSE A Thesis Presented to The Faculty of the Department of Computer Engineering San José State University In Partial Fulfillment of the Requirements for the Degree Master of Science by Charles Flood May 2017 © 2017 Charles Flood ALL RIGHTS RESERVED. The Designated Thesis Committee Approves the Thesis Titled UNIFIED SOFTWARE ENGINEERING REUSE: A MEANS OF MAXIMIZING SOFTWARE REUSABILITY by Charles Flood APPROVED FOR THE DEPARTMENT OF COMPUTER ENGINEERING SAN JOSÉ STATE UNIVERSITY May 2017 Mohamed Fayad, Ph.D. Department of Computer Engineering Dan Harkey, MS Department of Computer Engineering Xiao Su, Ph.D. Department of Computer Engineering ABSTRACT UNIFIED SOFTWARE ENGINEERING REUSE: A METHODOLOGY FOR EFFECTIVE SOFTWARE REUSE by Charles Flood Software is a necessity in the modern world, and that need is continuously growing. As expensive as the creation of all this new software is, the maintenance costs are even greater. One solution to this problem is software reuse, whereby already written software can be applied to new problems after some modification, thus reducing the overall input of new code. The goal in traditional software reuse is to produce a piece of software with enough flexibility to be used at least twice. Unfortunately, there are many difficulties in achieving software reuse using modern programming techniques. Even software built specifically for reuse is severely restricted in its utility for new applications. It is easy for new programs to require entirely new logic or new objects. Because of this, they become quickly outdated, and any labor spent creating reusable software is nullified. The solution is a method to vastly increase the reusability of software by concentrating on the base knowledge and overall goals of software rather than the details on a case-by-case basis. Finding patterns in the problem and solution spaces allows unification into a smaller solution set. Instead of each problem receiving its own solution from marginally reusable components, multiple problems are resolved with the same architecture and object set. As an added benefit, this solution will not only vastly improve software reuse, but it will make feasible systems that can construct software architecture on demand and provide the first steps to fully automated software development. ACKNOWLEDGEMENTS For his substantial guidance and sacrificed time in the production of this thesis and all the associated processes, Dr. Fayad has secured my enduring gratitude. v TABLE OF CONTENTS List of Tables ...................................................................................................................... x List of Figures .................................................................................................................... xi List of Abbreviations ....................................................................................................... xiii Chapter 1: Stable Software Reuse Overview ...................................................................... 1 Introduction ..................................................................................................................... 1 Potential Problems and Pitfalls of Existing Software Reuse .......................................... 2 Experience required. ................................................................................................... 3 Finding the right tools. ................................................................................................ 3 Scheduling. .................................................................................................................. 3 Complexity. ................................................................................................................. 4 Probable Solutions .......................................................................................................... 4 Overview of Stability Software Models ......................................................................... 4 Overview of USER ......................................................................................................... 5 Contributions .................................................................................................................. 6 Significance .................................................................................................................... 7 Summary ......................................................................................................................... 7 Chapter 2: A Comparative Study between Existing Software Reuse and USER ............... 8 Introduction ..................................................................................................................... 8 Abstractions and Levels of Abstraction. ......................................................................... 8 Defining Traditional Software Reuse ............................................................................. 8 Existing Software Reuse Types (Building Blocks) ........................................................ 9 Stable Software Reuse .................................................................................................. 10 Stable Software Reuse Types ....................................................................................... 11 Artifacts. .................................................................................................................... 11 Patterns. ..................................................................................................................... 11 Contexts. ................................................................................................................... 12 Documentation. ......................................................................................................... 13 Comparative Study Weighted Criteria .......................................................................... 13 Comparative Study ....................................................................................................... 15 Analysis and Discussion ............................................................................................... 16 Summary ....................................................................................................................... 17 Chapter 3: Software Reuse Knowledge Map .................................................................... 18 Introduction ................................................................................................................... 18 Pitfalls of Traditional Software Reuse .......................................................................... 21 Properties of Software Reuse ........................................................................................ 23 Overview of Software Reuse Knowledge Map (Core Knowledge) ............................. 26 Asset Stable Analysis Pattern ....................................................................................... 27 Requirements. ........................................................................................................... 28 Solution. .................................................................................................................... 29 vi Application. ............................................................................................................... 30 Reuse Stable Analysis Pattern ...................................................................................... 33 Requirements. ........................................................................................................... 33 Solution. .................................................................................................................... 34 Applications. ............................................................................................................. 35 Abstraction Stable Design Pattern ................................................................................ 36 Requirements. ........................................................................................................... 36 Solution. .................................................................................................................... 37 Applications. ............................................................................................................. 38 Context Stable Design Pattern ...................................................................................... 39 Requirements. ........................................................................................................... 39
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages151 Page
-
File Size-