ABSTRACT
Software product release often sacrifices quality concerns and produces messy code to reach the market quickly. At some point, the software becomes difficult to maintain, and reengineering is an available option to improve software quality. By finding a way to improve our software product quality effectively, we explore the available software reengineering methods that match the business needs. This paper presents our case, a product development improvement effort in a very small software organization with limited resources and a tight development schedule. Our research shows that with careful software redesigning and implementing XP practices, supported by a well-crafted software manifesto, we can ensure software code quality improvement is achieved efficiently.
Supplemental Material
Available for Download
Presentation slides
- R. C. Martin, Clean architecture: a craftsman's guide to software structure and design. Boston, MA: Prentice Hall, 2018.Google Scholar
- J. Singh, K. Singh, and J. Singh, “Reengineering framework for open source software using decision tree approach,” Int. J. Electr. Comput. Eng., vol. 9, no. 3, pp. 2041–2048, 2019, doi: 10.11591/ijece.v9i3.pp2041-2048.Google Scholar
- J. Singh, K. S. Dhindsa, and J. Singh, “Performing Reengineering using Scrum Agile Framework,” in Indo - Taiwan 2nd International Conference on Computing, Analytics and Networks, Indo-Taiwan ICAN 2020 - Proceedings, Feb. 2020, pp. 33–35, doi: 10.1109/Indo-TaiwanICAN48429.2020.9181328.Google ScholarCross Ref
- S. Mancuso, The Software Craftsman: Professionalism, Pragmatism, Pride. Prentice Hall, 2014.Google Scholar
- R. C. Martin, Clean Agile: Back to Basics. Pearson Education, 2019.Google Scholar
- SonarQube, “A New Day Dawns for Code Quality and Security.” [Online]. Available: https://www.sonarqube.org/features/clean-as-you-code/.Google Scholar
- M. Majthoub, M. H. Qutqut, and Y. Odeh, “Software Re-engineering: An Overview,” in 2018 8th International Conference on Computer Science and Information Technology (CSIT), Jul. 2018, pp. 266–270, doi: 10.1109/CSIT.2018.8486173.Google ScholarCross Ref
- J. Singh, K. Singh, and J. Singh, “Reengineering framework to enhance the performance of existing software,” Int. J. Adv. Comput. Sci. Appl., vol. 10, no. 5, pp. 536–543, 2019, doi: 10.14569/ijacsa.2019.0100570.Google Scholar
- A. Sahoo, D. Kung, and S. Gupta, “An agile methodology for reengineering object-oriented software,” in Proceedings of the International Conference on Software Engineering and Knowledge Engineering, SEKE, 2016, vol. 2016-Janua, pp. 638–643, doi: 10.18293/SEKE2016-227.Google ScholarCross Ref
- F. Anwer, S. Aftab, S. Muhammad, and U. Waheed, “Comparative Analysis of Two Popular Agile Process Models: Extreme Programming and Scrum,” Int. J. Comput. Sci. Telecommun., vol. 8, pp. 1–7, 2017.Google Scholar
- K. Haryono, “The extreme programming approach for financial management system on local government,” in Proceedings 2015 International Conference on Science and Technology, TICST 2015, 2015, pp. 29–34, doi: 10.1109/TICST.2015.7369335.Google ScholarCross Ref
- L. De Lauretis, “From Monolithic Architecture to Microservices Architecture,” in 2019 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW), Oct. 2019, pp. 93–96, doi: 10.1109/ISSREW.2019.00050.Google ScholarCross Ref
- M. Abdellatif , “A taxonomy of service identification approaches for legacy software systems modernization,” J. Syst. Softw., vol. 173, p. 110868, Mar. 2021, doi: 10.1016/j.jss.2020.110868.Google ScholarCross Ref
- S. Mauluddin and R. Sidik, “Reverse Engineering in Student Mark Recapitulation Application,” {IOP} Conf. Ser. Mater. Sci. Eng., vol. 662, p. 22097, Nov. 2019, doi: 10.1088/1757-899x/662/2/022097.Google ScholarCross Ref
- M. Cohn, User Stories Applied: For Agile Software Development. USA: Addison Wesley Longman Publishing Co., Inc., 2004.Google ScholarDigital Library
Recommendations
Towards an Anatomy of Software Craftsmanship
Context: The concept of software craftsmanship has early roots in computing, and in 2009, the Manifesto for Software Craftsmanship was formulated as a reaction to how the Agile methods were practiced and taught. But software craftsmanship has seldom been ...
Software quality and assurance in waterfall model and XP: a comparative study
Dealing with an increasingly volatile organizational environment is a serious challenge for managers of any software development. Traditional formal software development methodologies can be characterized as reflecting linear, sequential processes, and ...
Victor R. Basili's Contributions to Software Quality
On 16 May 2005, the worldwide software engineering community honored Victor R. Basili of the University of Maryland and Fraunhofer Center for Experimental Software Engineering, Maryland, for his achievements in empirical software engineering. The ...
Comments