Table of Contents
Advances in Software Engineering
Volume 2014 (2014), Article ID 124701, 14 pages
http://dx.doi.org/10.1155/2014/124701
Research Article

Recovering Software Design from Interviews Using the NFR Approach: An Experience Report

1Department of Computer Science, University of Texas at Tyler, Tyler, TX 75799, USA
2Information Directorate, Air Force Research Lab, Rome, NY 13441, USA

Received 30 June 2013; Revised 11 January 2014; Accepted 19 January 2014; Published 17 April 2014

Academic Editor: Gerardo Canfora

Copyright © 2014 Nary Subramanian et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

Linked References

  1. E. J. Byrne, “Software reverse engineering: a case study,” Software: Practice and Experience, vol. 21, no. 12, pp. 1349–1364, 1991. View at Publisher · View at Google Scholar
  2. E. J. Chikofsky and J. H. Cross, “Reverse engineering and design recovery: a taxonomy,” IEEE Software, vol. 7, no. 1, pp. 13–17, 1990. View at Publisher · View at Google Scholar · View at Scopus
  3. D. E. Wilkening and K. Littlejohn, “Legacy software reengineering technology,” in Proceedings of the 15th AIAA/IEEE Digital Avionics Systems Conference, pp. 25–30, October 1996. View at Scopus
  4. H. A. Muller, J. H. Jahnke, D. B. Smith, M. A. Storey, S. R. Tilley, and K. Wong, “Reverse engineering: a roadmap,” in Proceedings of the Conference on the Future of Software Engineering, pp. 47–60, 2000.
  5. R. K. Keller, R. Schauer, S. Robitaille, and P. Page, “Pattern-based reverse-engineering of design components,” in Proceedings of the 21st International Conference on Software Engineering, pp. 226–235, May 1999. View at Scopus
  6. T. J. Biggerstaff, “Design recovery for maintenance and reuse,” Computer, vol. 22, no. 7, pp. 36–49, 1989. View at Publisher · View at Google Scholar · View at Scopus
  7. G. Canfora and M. Di Penta, “New frontiers of reverse engineering,” in Proceedings of the Future of Software Engineering Conference (FoSE '07), pp. 326–341, May 2007. View at Publisher · View at Google Scholar · View at Scopus
  8. V. T. Combs, R. G. Hillman, M. T. Muccio, and R. W. McKeel, “Joint battlespace infosphere: information management within a C2 enterprise,” in Proceedings of the 10th International Command and Control Research and Technology Symposium, 2005.
  9. L. Chung, B. A. Nixon, E. Yu, and J. Mylopoulos, Non-Functional Requirements in Software Engineering, Kluwer Academic Publishers, Boston, Mass, USA, 2000.
  10. A. Vemulapalli and N. Subramanian, “Evaluating consistency between BPEL specifications and functional requirements of complex computing Systems using the NFR approach,” in Proceedings of the 4th International Systems Conference (SysCon '10), pp. 153–158, April 2010. View at Publisher · View at Google Scholar · View at Scopus
  11. L. Chung and N. Subramanian, “Adaptable architecture generation for embedded systems,” Journal of Systems and Software, vol. 71, no. 3, pp. 271–295, 2004. View at Publisher · View at Google Scholar · View at Scopus
  12. L. Chung and N. Subramanian, “Process-oriented metrics for software architecture adaptability,” in Proceedings of the 5th IEEE International Symposium on Requirements Engineering, pp. 310–311, August 2001. View at Scopus
  13. N. Subramanian and L. Chung, “Software architecture adaptability: an NFR approach,” in Proceedings of the 4th International Workshop on Principles of Software Evolution (IWPSE '01), pp. 52–61, September 2001. View at Scopus
  14. N. Subramanian, S. Drager, and W. McKeever, “Designing trustworthy software systems using the NFR approach,” in Emerging Trends in ICT Security, B. Akhgar and H. Arabnia, Eds., pp. 203–225, Elsevier, 2014. View at Google Scholar
  15. N. Subramanian and L. Chung, “Representing and reasoning about agreements ... more agreeably,” Lus Gentium Journal, vol. 12, pp. 205–258, 2006. View at Google Scholar
  16. M. Shaw and D. Garlan, Software Architecture: Perspectives on an Emerging Discipline, Prentice Hall, 1996.
  17. L. Bass, P. Clements, and R. Kazman, Software Architecture in Practice, Addison-Wesley, Boston, Mass, USA, 2003.
  18. P. Eeles and P. Cripps, The Process of Software Architecting, Addison-Wesley, New Jersey, NJ, USA, 2010.
  19. H. A. Muller, M. A. Orgun, S. R. Tilley, and J. S. Uhi, “A reverse engineering approach to subsystem structure identification,” Journal of Software Maintenance, vol. 5, no. 4, pp. 181–204, 1993. View at Google Scholar
  20. Y. Yu, Y. Wang, J. Mylopoulos, S. Liaskos, A. Lapouchnian, and J. C. S. Do Prado Leite, “Reverse engineering goal models from legacy code,” in Proceedings of the 13th IEEE International Conference on Requirements Engineering (RE '05), pp. 363–372, September 2005. View at Scopus
  21. P. Tonella and A. Potrich, Reverse Engineering of Object Oriented Code, Springer, New York, NY, USA, 2005.
  22. M. Lanza and S. Ducasse, “Polymetric views: a lightweight visual approach to reverse engineering,” IEEE Transactions on Software Engineering, vol. 29, no. 9, pp. 782–795, 2003. View at Publisher · View at Google Scholar · View at Scopus
  23. T. Systä, K. Koskimies, and H. Müller, “Shimba: an environment for reverse engineering Java software systems,” Software, vol. 31, no. 4, pp. 371–394, 2001. View at Publisher · View at Google Scholar · View at Scopus
  24. M. Salah, S. Mancoridis, G. Antoniol, and M. Di Penta, “Towards employing use-cases and dynamic analysis to comprehend mozilla,” in Proceedings of the 21st IEEE International Conference on Software Maintenance (ICSM '05), pp. 639–642, September 2005. View at Publisher · View at Google Scholar · View at Scopus
  25. B. S. Mitchell and S. Mancoridis, “On the automatic modularization of software systems using the bunch tool,” IEEE Transactions on Software Engineering, vol. 32, no. 3, pp. 193–208, 2006. View at Publisher · View at Google Scholar · View at Scopus
  26. G. Scanniello, A. D’Amico, C. D’Amico, and T. D’Amico, “Architectural layer recovery for software system understanding and evolution,” Software: Practice and Experience, vol. 40, no. 10, pp. 897–916, 2010. View at Publisher · View at Google Scholar
  27. R. Fiutem, P. Tonella, G. Antoniol, and E. Merlo, “Cliche-based environment to support architectural reverse engineering,” in Proceedings of the IEEE Conference on Software Maintenance (ICSM '96), pp. 319–328, November 1996. View at Scopus
  28. P. Tonella, G. Antoniol, R. Fiutem, and F. Calzolari, “Reverse engineering 4. 7 million lines of code,” Software, vol. 30, no. 2, pp. 129–150, 2000. View at Google Scholar
  29. W. W. Cohen, “Recovering software specifications with inductive logic programming,” in Proceedings of the 12th National Conference on Artificial Intelligence, pp. 142–148, August 1994. View at Scopus
  30. P. Dugerdil, “A reengineering process based on the unified process,” in Proceedings of the 22nd IEEE International Conference on Software Maintenance (ICSM '06), pp. 330–333, September 2006. View at Publisher · View at Google Scholar · View at Scopus
  31. A. Cimitile, A. De Lucia, G. A. Di Lucca, and A. R. Fasolino, “Identifying objects in legacy systems using design metrics,” Journal of Systems and Software, vol. 44, no. 3, pp. 199–211, 1999. View at Google Scholar · View at Scopus
  32. G. A. D. Lucca, A. R. Fasolino, F. Pace, P. Tramontana, and U. de Carlini, “WARE: a tool for the reverse engineering of web applications,” in Proceedings of the 6th European Conference on Software Maintenance and Reengineering, pp. 241–250, 2002.
  33. N. Subramanian, S. Drager, and W. McKeever, “Engineering a trustworthy software system using the NFR approach,” in Proceedings of the Systems and Software Technology Conference, Salt Lake City, Utah, April 2012.
  34. L. Chung, S. Supakkul, N. Subramanian et al., “Goal-oriented software architecting,” in Relating Software Requirements and Software Architectures, pp. 91–110, Springer, 2011. View at Google Scholar
  35. D. Gross and E. Yu, “From non-functional requirements to design through patterns,” Requirements Engineering, vol. 6, no. 1, pp. 18–36, 2001. View at Google Scholar · View at Scopus
  36. M. Siff and T. Reps, “Identifying modules via concept analysis,” IEEE Transactions on Software Engineering, vol. 25, no. 6, pp. 749–768, 1999. View at Publisher · View at Google Scholar · View at Scopus
  37. “Unified Modeling Language (UML),” http://www.uml.org/.
  38. D. C. Schmidt, “Middleware for real-time and embedded systems,” Communications of the ACM, vol. 45, no. 6, pp. 43–48, 2002. View at Google Scholar · View at Scopus
  39. T. Erl, SOA Design Patterns, Prentice Hall, New Jersey, NJ, USA, 2009.
  40. D. Sprott and L. Wilkes, “Understanding Service-Oriented Architecture,” 2004, http://msdn.microsoft.com/en-us/library/aa480021.aspx.
  41. M. Elkstein, “Learn REST: A Tutorial,” http://rest.elkstein.org/.
  42. “SpringSource,” http://spring.io/.
  43. C. Hsu - and B. A. Sandford, “The Delphi technique: making sense of consensus,” Journal of Practical Assessment, Research, and Evaluation, vol. 12, no. 10, 2007. View at Google Scholar
  44. “StarUML,” http://staruml.sourceforge.net/en/modules.php.