
University of South Florida Scholar Commons Graduate Theses and Dissertations Graduate School 2011 Selection and Implementation of Technologies for the Re- Engineering of an Existing Software System Stan William Naspinski University of South Florida, [email protected] Follow this and additional works at: https://scholarcommons.usf.edu/etd Part of the American Studies Commons, and the Computer Sciences Commons Scholar Commons Citation Naspinski, Stan William, "Selection and Implementation of Technologies for the Re-Engineering of an Existing Software System" (2011). Graduate Theses and Dissertations. https://scholarcommons.usf.edu/etd/3260 This Thesis is brought to you for free and open access by the Graduate School at Scholar Commons. It has been accepted for inclusion in Graduate Theses and Dissertations by an authorized administrator of Scholar Commons. For more information, please contact [email protected]. Selection and Implementation of Technologies for the Re-Engineering of an Existing Software System by Stan Naspinski A thesis submitted in partial fulfillment of the requirements for the degree of Master of Science Department of Computer Science and Engineering College of Engineering University of South Florida Major Professor: Jay Ligatti, Ph.D. Dewey Rundus, Ph.D. Yicheng Tu, Ph.D. Date of Approval: October 14, 2011 Keywords: REST, MVC, Legacy Application, Enporion, FLEX, .Net, Web Services Copyright c 2011, Stan Naspinski ACKNOWLEDGEMENTS I would like to thank my Major Professor Jay Ligatti, for guiding me along and keeping me on track throughout the thesis process. I would also like to thank Professor Dewey Rundus for being a great help in preparing me for this opportunity as well as Professor Yicheng Tu for introducing me to the research assistant opportunity that vectored this thesis project. I would also like to acknowledge the University of South Florida as a whole for allowing me the opportunity to work with the Enporion company for my case study. This project has truly made my graduate studies much more fruitful on my end as a student. TABLE OF CONTENTS LIST OF TABLES iii LIST OF FIGURES iv ABSTRACT vi CHAPTER 1 INTRODUCTION 1 1.1 Thesis Organization 3 CHAPTER 2 EXISTING ARCHITECTURE 4 2.1 SkyWay 4 2.1.1 Interoperability 5 2.1.2 Scalability 5 2.1.3 Modularization And Reuse 6 2.1.4 Testability 7 2.1.5 Application State Management 7 2.1.6 Resources 8 2.2 Summary 8 CHAPTER 3 EXPLORING AND IMPLEMENTING NEW SOLUTIONS 10 3.1 Operating System 10 3.2 Data 10 3.2.1 Relational Database Management System 11 3.3 Data Access Layer 12 3.3.1 Language Integrated Query 12 3.3.2 Entity Framework 4 13 3.3.2.1 Methods To Extend EF4 Code 15 3.3.2.2 Additional Data Access 18 3.4 Architecture 20 3.4.1 MVC 21 3.4.1.1 Asp.Net MVC 23 3.5 Intermediate Interface 24 3.5.1 Web Services 24 3.5.1.1 Localization 26 3.5.1.2 Security 27 3.5.2 REST 29 3.6 User Interface 31 3.6.1 FLEX 31 i 3.7 Summary 32 CHAPTER 4 TESTING AND DEPLOYMENT 33 4.1 Deployment 33 4.1.1 Version Control - Subversion 34 4.1.2 CruiseControl 34 4.1.3 NAnt 35 4.2 Testing 36 4.2.1 Unit Testing 37 4.3 Summary 37 CHAPTER 5 RELATED WORK 38 5.1 Alternative Data Storage 38 5.1.1 Extensible Markup Language 38 5.1.2 Non-Relational Databases 39 5.1.3 Other Relation Databases Management Systems 39 5.2 Source Control 40 5.3 Summary 40 CHAPTER 6 CONCLUSIONS 41 LIST OF REFERENCES 43 ii LIST OF TABLES Table 3.1 Time in seconds while running the different methods for extending the generated EF4 classes. 17 iii LIST OF FIGURES Figure 2.1 Example of SkyWay implementation GUI. 7 Figure 3.1 Linq using SQL-like syntax. 13 Figure 3.2 Linq using lambda syntax. 13 Figure 3.3 CPU load while running the different methods for extending the gener- ated EF4 classes. 18 Figure 3.4 Visual representation of the MVC configuration. 22 Figure 3.5 Default folder layout in Visual Studio for a .Net MVC 3 Project - note the separation between Models, Views and Controllers as separate fold- ers themselves. 23 Figure 3.6 An example Model to show how the Razor engine renders Views. 23 Figure 3.7 Using the Model supplied in Figure 3.6 the Razor engine uses “@” sym- bols to indicate code segments; the Razor engine also parses through the code and marks where code starts and stops. 24 Figure 3.8 From request to Web Service output; note that the incoming request is a GET command, and it is retrieving a record, staying within the RESTful design concept. 26 Figure 3.9 Example .resx file in the Visual Studio interface. 27 Figure 3.10 The basic model of how authentication, re-authentication and actions are handled by the web service. 28 Figure 3.11 This is attribute painting of an entire class; the attribute will be applied across the entire Controller, requiring that the user is an administrator; no matter how many methods, pages or services the Controller serves. 29 Figure 3.12 Code for a DELETE action in Ruby on Rails. 30 Figure 3.13 HTML markup output from the code, simulating a DELETE. 30 Figure 3.14 Flow diagram used in planning for the development from data store to web service interaction. 31 iv Figure 4.1 An example of the software life cycle. 33 Figure 4.2 Build section within NAnt, displaying compiler sections (csc), sources, references and localization files (resources). 36 v ABSTRACT A major hurdle for any company to cross is the act of re-engineering software if they wish to stay relevant. With the speed that software and technology advances, it would be ignorant for any product to stagnate. With that comes the inherent difficulties of choosing which of the older technologies to keep (if any) and which newer technologies to employ in the re-engineered solution. Once that is covered, the actual implementation presents its own set of challenges to both the decision makers and developers in the process. This thesis describes a case study, in particular the efforts put forth to re-engineer some specific software. While the software is quite capable, it is becoming more and more out- dated every passing year, not to mention more difficult to maintain, upgrade and alter, providing a perfect example to explore. The focus of this thesis is to discuss what avenues of upgrading and methods of providing comparable or improved services to the end user our team chose and implemented. These include using a relational database with an advanced object-relational mapper in a modern environment to provide a REpresentational State Transfer (REST) web service that will then supply a rich interactive front-end. Taken together, these tools are quite powerful and capable. vi CHAPTER 1 INTRODUCTION Software will inherently become out of date as the world of programming and appli- cations moves faster than almost any other. It then becomes necessary practice for an organization to re-engineer their software on a regular basis, in order to keep their systems and even employees skills relevant. The decision to upgrade is one thing, but the difficulties stemming from this decision are the true challenges. Selection of which technologies to use can be challenging and divisive for a team of planners and engineers. After that comes the implementation, which can bring on challenges of its own, including environmental con- straints, open-source software support and an endless list of others. All of this combines to make a quite complicated process. Choosing which technologies to use is often more than picking the “best” technology available and applying it. It is clear to most in any sort of technology field that at almost no time in a project’s life-cycle is there a single true best option that stands out; it is the art of choosing the best fit not only for your project, but the combination of that project with the abilities, experience and talents of the development group that will be implementing said project. This thesis is based around a case study of Enporion, an E-Procurement company from Tampa, Florida. Enporion currently has a software product that it provides to its customers. This product was developed years ago and has shown the need to be upgraded to a higher level of both service maintainability and back-end technological capability. To do this, they decided to bring in a team of graduate students from the University of South Florida (USF): Matthew Spaulding, Nalin Saigal and myself. Our job was to migrate the old technology and database tables to newer, more powerful and easier to maintain technologies while 1 also incorporating new and more useful features to the suite. All of this was needed while maintaining 100% uptime for the existing customers with a smooth, gradual transition of the existing services to the newly developed one. We were to help evaluate what was provided in the past and how we could translate that into the most versatile and useful setup we could engineer; we needed to take a good product and attempt to make it greater through a deliberate process. In the end we needed to have produced testable, well-documented code that would be easily maintained and modular in nature. We were given a lot of freedom to use what technologies we had our best experiences with and were able to suggest alternative approaches to development with open discussions between the USF group, the CTO James Garcia, and the local technology manager Chris Stimac.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages54 Page
-
File Size-