Improving the Quality of Requirements with Refactoring

  • Ricardo Ramos UFPE
  • Eduardo K. Piveta UFRGS
  • Jaelson Castro UFPE
  • João Araújo UNL
  • Ana Moreira UNL
  • Pedro Guerreiro UNL
  • Marcelo S. Pimenta UFRGS
  • R. Tom Price UFRGS


Requirements specification can often exhibit some shortcomings, regarding contents and organization of its partial specification elements. Sometimes, modularization is deficient, with modules dealing with too much information, or the same functionality being specified in different modules. Left unchecked, these inadequacies will propagate themselves to the subsequent phases of the software development and cause problems during maintenance. We have been able to identify a collection of typical deficiencies in the specification of structured documents and we propose a collection of refactorings that minimize or remove them. Doing this early in the development process increases requirements modularity and understandability. A case study is conducted to illustrate the use of these refactoring practices on two existing requirement documents.
Palavras-chave: Refactoring, Quality of Requirements, Improvement


Alexander, I.F., Stevens, R.: (2002) “Writing Better Requirements”, Pearson Education Limited.

Boehm, B., Sullivan, K.: (2000) “Software economics: a roadmap”, in: ICSE – Future of SE Track. 319–343.

Clements, P., Northrop, L.: (2001) “Software Product Lines”, Addison Wesley Professional.

Cockburn, A.: (2000) “Writing Effective Use Cases”, Addison Wesley.

Dijkstra, E.W.: (1992) “On the role of scientific thought (EWD 447)”, in: Selected Writings on Computing: A Personal Perspective. Springer-Verlag.

Duran, A., Cortes, A.R., Corchuelo, R., Toro, M.: (2002) “Supporting requirements verification using xslt”, in: Requirements Engineering Conference, Essen, Germany.

Elssamadisy, A., Schalliol, G.: (2002) “Recognizing and responding to bad smells in extreme programming”, in: Proceedings of the 24th International conference on Software Engineering, May 19-25, 2002, Orlando, Florida, USA.

Fenton, N.E., Pfleeger, S.L.: (1997) “Software Metrics: A Rigorous and Practical Approach”, PWS Publishing Company.

Finkelstein, A., and Sommerville, I.: (1996) “The Viewpoints FAQ”, in: BCS/IEE Software Engineering Journal, Vol. 11(1).

Firesmith, D.: (2007) “Common Requirements Problems, Their Negative Consequences, and Industry Best Practices to Help Solve Them”, in Journal of Object Technology, vol. 6, no. 1, January-February 2007, pp. 17-33.

Fowler, M., Beck, K., Brant, J., Opdyke, W., Roberts, D.: (2000) “Refactoring: improving the design of existing code”, in: Object Technology Series. Addison-Wesley.

Jacobson, I., Griss, M., Jonsson, P.: (1997) “Software Reuse: Architecture, Process, and Organization for Business Success”, in: Addison Wesley.

Jacobson, I.: (2003) “Use cases and aspects - Working seamlessly together”, In: Journal of Object Technology 2(4).

Jacobson, I., Ng, P.W.: (2005) “Aspect-Oriented Software Development with Use Cases”, Addison-Wesley.

Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.M., Irwin, J.: (1997) “Aspect-oriented programming”, in: Aksit, M., Matsuoka, S., eds.: 11th Europeen Conf. Object-Oriented Programming. Volume 1241 of LNCS., Springer Verlag 220–242.

Lamsweerde, A. Van.: (2001) “Goal-Oriented Requirements Engineering: A Guided Tour”, in: 5th International Symposium. on Requirements Engineering. August, Toronto – Canada.

Li, L.: (1999) “A semi-automatic approach to translating use cases to sequence diagrams”, in: TOOLS ’99: Proceedings of the Technology of Object-Oriented Languages and Systems, Washington, DC, USA, IEEE Computer Society 184.

Opdyke, W.F.: (1992) “Refactoring object-oriented frameworks”, PhD thesis, University of Illinois at Urbana-Champaign.

Overgaard, G., Palmkvist, K.: (2004) “Use Cases Patterns and Blueprints”, Addison Wesley Professional.

Pressman, R.: (2005) “Software Engineering: A Practitioner’s Approach”, McGraw-Hill.

Ramos, R.A., Araújo, J., Castro, J., Moreira, A., Alencar, F., Silva, C.: (2006) “Uma abordagem de instanciação de métricas para medir documentos de requisitos orientados a aspectos”, in: 3o Brazilian Workshop on Aspect Oriented Software Development - WASP2006. Florianopolis, Brazil.

Ramos, R. A.; Araújo, J. ; Moreira, A. ; Castro, J. ; Alencar, F. and Penteado, R.: (2007a) “Um Padrão para Requisitos Duplicados”, in: 6th Latin American Conference on Pattern Languages of Programming (SugarLoafPlop’2007), Porto de Galinhas, Recife, Pernambuco , Brazil. (to appear)

Ramos, R. A. ; Alencar, F. ; Araújo, J. ; Moreira, A. ; Castro, J. and Penteado, R.: (2007b) “i* with Aspects: Evaluating Understandability”, in: Workshop on Requirements Engineering, 2007, Toronto, Canada. (to appear)

Rashid, A., Moreira, A., Araújo, J.: (2003) “Modularisation and composition of aspectual requirements”, in: Aksit, M., ed.: Proc. 2nd Int’ Conf. on Aspect-Oriented Software Development (AOSD-2003), ACM Press.

Rui, K., Ren, S., Butler, G.: (2003) “Refactoring use case models: A case study”, in: International Conference on Enterprise Information Systems. April, Angers – France.

Schneider, G., Winters, J.P.: (1998) “Applying Use Cases: A Practical Guide”, in: Addison Wesley - Object Technology Series.

Soares, S., Laureano, E., Borba, P.: (2002) “Implementing distribution and persistence aspects with AspectJ”, in: Proceedings of the 17th ACM conference on Object oriented programming, systems, languages, and applications, ACM Press 174–190.

Sommerville, I., P., S.: (1997) “Requirements Engineering: A good practice guide”, John Wiley and Sons LTD.

Sommerville, I.: (2004) “Software Engineering”, 7th edition. Pearson Education.

Wohlin, C., Runeson, P., H ̈ost, M., Regnell, B., Wessl ́en, A.: (2000) “Experimentation in Software Engineering: an Introduction”, Kluwer Academic Publishers.

Wiegers, K. E.: (2003) “Software Requirements”, Microsoft Press, Second Edition.

Xu, J., Yu, W., Rui, K., Butler, G.: (2004) “Use case refactoring: a tool and a case study”, in: Software Engineering Conference, 2004. 11th Asia-Pacific. 484–491.

Yu, W., Li, J., Butler, G.: (2004) “Refactoring use case models on episodes”, in: Automated Software Engineering, 2004. Proceedings 19th International Conference on 328–335.
Como Citar

Selecione um Formato
RAMOS, Ricardo; PIVETA, Eduardo K.; CASTRO, Jaelson; ARAÚJO, João; MOREIRA, Ana; GUERREIRO, Pedro; PIMENTA, Marcelo S.; PRICE, R. Tom. Improving the Quality of Requirements with Refactoring. In: SIMPÓSIO BRASILEIRO DE QUALIDADE DE SOFTWARE (SBQS), 6. , 2007, Porto de Galinhas. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2007 . p. 141-155. DOI: