A Pattern for Modeling Rework in Software Development Processes

  • Aaron G. Cass
  • Leon J. Osterweil
  • Alexander Wise
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5543)


It is usual for work completed at one point in a software development process to be revisited, or reworked, at a later point. Such rework is informally understood, but if we hope to support reasoning about, and partial automation of, software development processes, rework be more formally understood. In our experience in designing formalized processes in software development and other domains, we have noticed a recurring process pattern that can be used to model rework quite successfully. This paper presents that pattern, which models rework as procedure invocation in a context that is carefully constructed and managed. We present some scenarios drawn from software engineering in which rework occurs. The paper presents rigorously defined models of these scenarios, and demonstrates the applicability of the pattern in constructing these models.


Software Development Software Engineering Design Element Work Context Software Development Process 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Cass, A.G., Sutton Jr., S.M., Osterweil, L.J.: Formalizing rework in software processes. In: Proc. of the 9th European Workshop on Soft. Proc. Technology, Helsinki, Finland, September 1–2 (2003)Google Scholar
  2. 2.
    Clarke, L.A., Gaitenby, A., Gyllstom, D., Katsh, E., Marzilli, M., Osterweil, L.J., Sondeimer, N.K., Wing, L., Wise, A., Rainey, D.: A process-driven tool to support online dispute resolution. In: Intl. Conf. on Digital Government Research, San Diego, CA. ACM Press, New York (2006)Google Scholar
  3. 3.
    Osterweil, L.J., Wise, A., Clarke, L.A., Ellison, A.M., Hadley, J.L., Boose, E., Foster, D.R.: Process technology to facilitate the conduct of science. In: Li, M., Boehm, B., Osterweil, L.J. (eds.) SPW 2005. LNCS, vol. 3840, pp. 403–415. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  4. 4.
    Osterweil, L.J., Clarke, L.A., Podorozhny, R., Wise, A., Boose, E., Ellison, A.M., Hadley, J.: Experience in using a process language to define scientific workflow and generate dataset provenance. In: Proc. of the 16th ACM SIGSOFT Intl. Symp. on Foundations of Soft. Engineering (FSE16), Atlanta, GA. ACM Press, New York (2008)Google Scholar
  5. 5.
    Christov, S., Chen, B., Avrunin, G.S., Clarke, L.A., Osterweil, L.J., Brown, D., Cassells, L., Metens, W.: Rigorously defining and analyzing medical processes: An experience report. In: Giese, H. (ed.) MoDELS Workshops 2007. LNCS, vol. 5002. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  6. 6.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)zbMATHGoogle Scholar
  7. 7.
    Object Management Group: OMG Unified Modeling Language (OMG UML) Superstructure. Technical Report formal/2007-11-02, Object Management Group, Version 2.1.2 (November 2007)Google Scholar
  8. 8.
    Lerner, B.S., Christov, S., Wise, A., Osterweil, L.J.: Exception handling patterns for processes. Technical Report 08-06, UMass Dept. of Comp. Sci. (March 2008)Google Scholar
  9. 9.
    Clemm, G., Osterweil, L.: A mechanism for environment integration. ACM Trans. on Prog. Lang. and Systems (TOPLAS) 12(1) (1990)Google Scholar
  10. 10.
    Wang, J., Kumar, A.: Exception handling using task deferral in document-driven workflow systems. In: Proc. of the Annual Workshop on Information Technology and Systems (WITS) (2005)Google Scholar
  11. 11.
    Russell, N., van der Aalst, W.M.P., ter Hofstede, A.H.M.: Exception handling patterns in process-aware information systems. Technical report, BPM Center (2006)Google Scholar
  12. 12.
    Haley, T., Ireland, B., Wojtaszek, E., Nash, D., Dion, R.: Raytheon Electronic Systems experience in software process improvement. Technical Report CMU/SEI-95-TR-017, Carnegie-Mellon Software Engineering Institute (November 1995)Google Scholar
  13. 13.
    Butler, K., Lipke, W.: Software process achievement at Tinker Air Force Base. Technical Report CMU/SEI-2000-TR-014, Carnegie-Mellon Software Engineering Institute (September 2000)Google Scholar
  14. 14.
    Ghezzi, C., Jazayeri, M., Mandrioli, D.: Fundamentals of Software Engineering. Prentice Hall, Englewood Cliffs (1991)zbMATHGoogle Scholar
  15. 15.
    Pressman, R.S.: Software Engineering: A Practitioner’s Approach, 4th edn. McGraw-Hill, New York (1997)zbMATHGoogle Scholar
  16. 16.
    Sommerville, I.: Software Engineering, 5th edn. Addison-Wesley, Reading (1996)zbMATHGoogle Scholar
  17. 17.
    Boehm, B.W.: A spiral model of software development and enhancement. IEEE Computer 21(5), 61–72 (1988)CrossRefGoogle Scholar
  18. 18.
    Suzuki, M., Iwai, A., Katayama, T.: A formal model of re-execution in software process. In: Proc. of the 2nd Intl. Conf. on the Soft. Process, Berlin, Germany, pp. 84–99. IEEE Press, Los Alamitos (1993)Google Scholar
  19. 19.
    Wise, A.: Little-JIL 1.0 Language Report. Technical Report 98-24, UMass Dept. of Comp. Sci. (April 1998)Google Scholar
  20. 20.
    Sutton Jr., S.M., Osterweil, L.J.: The design of a next-generation process language. In: Jazayeri, M. (ed.) ESEC 1997 and ESEC-FSE 1997. LNCS, vol. 1301, pp. 142–158. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  21. 21.
    Sutton Jr., S.M., Heimbigner, D., Osterweil, L.J.: APPL/A: A language for software-process programming. ACM Trans. on Soft. Engineering and Methodology (TOSEM) 4(3), 221–286 (1995)CrossRefGoogle Scholar
  22. 22.
    Cohen, D.: AP5 Manual. USC, Info. Sci. Institute (March 1988)Google Scholar
  23. 23.
    Kaiser, G.E., Barghouti, N.S., Sokolsky, M.H.: Experience with process modeling in the marvel software development environment kernel. In: Shriver, B. (ed.) 23rd Annual Hawaii Intl. Conf. on System Sci., Kona HI, vol. II, pp. 131–140 (January 1990)Google Scholar
  24. 24.
    Junkermann, G., Peuschel, B., Schäfer, W., Wolf, S.: MERLIN: Supporting cooperation in software development through a knowledge-based environment. In: Finkelstein, A., Kramer, J., Nuseibeh, B. (eds.) Soft. Process Modelling and Technology, pp. 103–129. Wiley, Chichester (1994)Google Scholar
  25. 25.
    Conradi, R., Hagaseth, M., Larsen, J.O., Nguyên, M.N., Munch, B.P., Westby, P.H., Zhu, W., Jaccheri, M.L., Liu, C.: EPOS: Object-oriented cooperative process modelling. In: Finkelstein, A., Kramer, J., Nuseibeh, B. (eds.) Soft. Process Modelling and Technology, pp. 33–70. Wiley, Chichester (1994)Google Scholar
  26. 26.
    Canals, G., Boudjlida, N., Derniame, J.C., Godart, C., Lonchamp, J.: ALF: A framework for building process-centred software engineering environments. In: Finkelstein, A., Kramer, J., Nuseibeh, B. (eds.) Soft. Process Modelling and Technology, pp. 153–185. Wiley, Chichester (1994)Google Scholar
  27. 27.
    Bandinelli, S., Fuggetta, A., Grigolli, S.: Process modeling in-the-large with SLANG. In: Proc. of the 2nd Intl. Conf. on the Soft. Process, pp. 75–83. IEEE Computer Society Press, Los Alamitos (1993)Google Scholar
  28. 28.
    Deiters, W., Gruhn, V.: Managing software processes in the environment melmac. In: Proc. of the 4th ACM SIGSSOFT/SIGPLAN Symp. on Practical Soft. Dev. Environments, Irvine, CA, pp. 193–205. ACM Press, New York (1990)Google Scholar
  29. 29.
    Casati, F., Ceri, S., Paraboschi, S., Pozzi, G.: Specification and implementation of exceptions in workflow management systems. ACM Trans. on Database Systems (TADS) 24(3), 405–451 (1999)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Aaron G. Cass
    • 1
  • Leon J. Osterweil
    • 2
  • Alexander Wise
    • 2
  1. 1.Department of Computer ScienceUnion CollegeSchenectady
  2. 2.Department of Computer ScienceUniversity of Massachusetts AmherstAmherstUSA

Personalised recommendations