LEXOS 2017: BUILDING RELIABLE SOFTWARE IN PYTHON
*
Cheng Zhang, Weiqi Feng, Emma Steffens, Alvaro de Landaluce, Scott Kleinman,
Mark D. LeBlanc
Department of Computer Science
Wheaton College
Norton, Massachusetts 02766
508-286-3970
{zhang_cheng, feng_weiqi, steffens_emma, delandaluce_alvaro,
mleblanc}@wheatoncollege.edu, scott.kleinman@csun.edu
ABSTRACT
Refactoring software is challenging, but necessary to ensure software
correctness and extensibility. We present a plan that blends automated tools
and human reviews when refactoring the back-end of a web-based application.
The Lexos software, developed by the NEH-funded Lexomics Project,
provides a simple, web-based workflow for text processing, statistical analysis,
and visualization of results when exploring digitized texts. The development
of Lexos spans six years and includes over fifty undergraduate developers,
many who assumed leadership roles in architectural design and systems
engineering over three software releases. This paper shares our current
refactoring effort on the Python backend to produce Lexos v3.2, an effort that
includes a transition from Python v2.7 to Python v3.6. Good software
engineering practices guide the effort, including the use of type hinting, a
Model-View-Control pattern, PEP 8 code and PEP 257 documentation styles,
unit testing, and continuous integration.
1. INTRODUCTION
Refactoring software is hard and there are many reasons not to refactor [21]. We
present our software group's plan and actions when we decided it was necessary to
refactor the back-end of our web-based application to ensure the code's future integrity
and extendibility.
___________________________________________
*
Copyright © 2018 by the Consortium for Computing Sciences in Colleges. Permission to copy
without fee all or part of this material is granted provided that the copies are not made or
distributed for direct commercial advantage, the CCSC copyright notice and the title of the
publication and its date appear, and notice is given that copying is by permission of the
Consortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires a
fee and/or specific permission.
124