Skip to main content
Log in

Supporting agile software development through active documentation

  • Original Research
  • Published:
Requirements Engineering Aims and scope Submit manuscript

Abstract

Agile development processes are adaptive rather than predictive. Therefore, agile processes emphasize operational system code rather than its documentation. To overcome the absence of comprehensive documentation artifacts, agile methods require constant interaction between the system stakeholders. Ironically, however, some traditional documentation artifacts come to support this kind of interaction. In this study, we examine the relationship between software and documentation. We develop an approach that enables incorporating domain documentation to agile development, while keeping the processes adaptive. We also provide a system design that actively uses domain knowledge documentation. These ideas have been applied through the implementation and use of agile documentation support components.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3

Similar content being viewed by others

Notes

  1. Therefore, organizations which apply distributed development practices tend to change agile methods to follow the distributed characteristic of their organization [7].

References

  1. Abbot RJ (1987) Knowledge abstraction. Commun ACM 30(8):664–671

    Article  Google Scholar 

  2. Abrahamsson P, Salo O, Rankainen J, Warsta J (2002) Agile software development methods—review and analysis. VTT Electronics

  3. Abrahamsson P, Warsta J, Siponen MT, Ronkainen J (2003) New directions on agile methods: a comparative analysis. In: Proceedings of the 25th international conference on software engineering 2003, Portland, Oregon, pp 244–254

  4. Agerfalk PJ, Fitzgerald B (2006) Flexible and distributed software processes: old petunias in new bowls? Commun ACM 49(10):27–34

    Article  Google Scholar 

  5. Alford MW, Lawson, JT (1979) Software requirements engineering methodology RADC-TR-79-168, U.S. Air Force Rome Air Development Center, Griffiss AFB, NY (DDC-AD-A073132)

  6. Anton A (1996) Goal-based requirements analysis. In: Proceedings of the second IEEE international conference on requirements engineering (ICRE’96), Colorado Springs, USA, pp 136–144

  7. Balasubramaniam R, Cao L, Mohan K, Xu P (2006) How can distributed software development be agile? Commun ACM 49(10):41–46

    Article  Google Scholar 

  8. Barker J, Palmer G (2004) Beginning C# objects: from concepts to code. Apress, Berkeley, CA

    Google Scholar 

  9. Bennett K, Cornelius B, Munro M, Robson D (1991) Software maintenance. In: McDermid JA (ed) Software engineer’s reference book. Butterworlh-Heinemann, Oxford

    Google Scholar 

  10. Booch G (1987) Software engineering with ADA. Benjamin-Cummings, Redwood City

    MATH  Google Scholar 

  11. Castro J, Kolp M, Mylopoulos J (2002) Towards requirements-driven information systems engineering: the Tropos project. Inf Syst 27(6):365–379

    Article  MATH  Google Scholar 

  12. Chen PP (1976) The entity-relationship model—toward a unified view of data. ACM Trans Database Syst 1(1):9–36

    Article  Google Scholar 

  13. Chen X, Jin Z, Yi L (2007) An ontology of problem frames for guiding problem frame specification. In: Proceedings of the 2nd international conference on knowledge science, engineering and management (KSEM 2007), Melbourne, Australia, pp 384–395

  14. Chung L, Nixon B, Yu E, Mylopoulos J (2000) Non-functional requirements in software engineering. Kluwer, Dordrecht

    MATH  Google Scholar 

  15. Clarke S, Harrison W, Ossher H, Tarr P (1999) Subject-oriented design: towards improved alignment of requirements, design and code. In: Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications (OOPSLA ‘99), Denver, Colorado, United States, pp 325–337

  16. Coad P, Yourdon E (1991) Object-oriented analysis. Yourdon, Upper Saddle River

    Google Scholar 

  17. Cockburn A (2002) Agile software development. Addison Wesley, Boston

    Google Scholar 

  18. Dardenne A, Lamsweerde A, Fickas S (1993) Goal-directed requirements acquisition. Sci Comput Program 20:3–50

    Article  MATH  Google Scholar 

  19. Davis AM (1988) A taxonomy for the early stages of the software development life cycle. J Softw Syst 8(4):297–311

    Article  Google Scholar 

  20. Devedzik V (2002) Understanding ontological engineering. Commun ACM 45(4):136–144

    Article  Google Scholar 

  21. Dubois E, Hagelstein J, Lahou E, Rifaut A, Williams F (1986) A knowledge representation language for requirements engineering. Proc IEEE 74(10):1431–1444 (special issue on knowledge representation)

    Article  Google Scholar 

  22. Fowler M (2003) The new methodology. http://www.martinfowler.com/articles/newMethodology.html

  23. Fox MS, Barbeceanu M, Gruninger M (1995) An organization ontology for enterprise modelling: preliminary concepts for linking structure and behaviour. Comput Ind 29:123–134

    Article  Google Scholar 

  24. Grady JO (2006) Systems requirements analysis. Academic Press, London

    Google Scholar 

  25. Halpin T (1998) Object role modeling (ORM/NIAM). In: Bernus P, Mertins K, Schmidt G (eds) Handbook of architectures of information systems. Springer, Berlin, pp 81–101

    Chapter  Google Scholar 

  26. Hall JG, Rapanotti L, Jackson M (2005) Problem frame semantics for software development. J Softw Syst Model 4(2):189–198

    Article  Google Scholar 

  27. Harel D (1987) Statecharts: a visual formalism for complex systems. Sci Comput Program 8:231–274

    Article  MathSciNet  MATH  Google Scholar 

  28. Hay DC (2003) Requirements analysis: from business views to architecture. Prentice Hall, Upper Saddle River

    Google Scholar 

  29. Henderson-Sellers B, Edwards JM (1990) Object oriented systems life cycle. Commun ACM 33(9):142–159

    Article  Google Scholar 

  30. Herbsleb JD, Atkins DL, Boyer DG, Handel M, Finholt TA (2002) Introducing instant messaging and chat into the workplace. In: Proceedings of the ACM conference on computer-human interaction, Minneapolis, pp 171–178

  31. Herbsleb JD, Mockus A (2003) An empirical study of speed and communication in globally distributed software development. IEEE Trans Softw Eng 29(6):481–494

    Article  Google Scholar 

  32. Hermann K (1999) Difficulties in the transition from OO analysis to design. IEEE Softw 16(5):94–102

    Article  Google Scholar 

  33. Highsmith J, Cockburn A (2001) Agile software development: the business of innovation. Computer 34(9):120–122

    Article  Google Scholar 

  34. Jackson MA (2001) Problem frames: analyzing and structuring software development problems. Addison-Wesley, Boston

    Google Scholar 

  35. Jacobson I (1995) A confused world of OOA and OOD. J Object Orient Program 8(5):15–20

    Google Scholar 

  36. Kavakli E (2002) Goal oriented requirements engineering: a unifying framework. Requir Eng J 6(4):237–251

    Article  MATH  Google Scholar 

  37. Kavakli E, Loucopoulos P (2003) goal driven requirements engineering: evaluation of current methods. In: Proceedings of the 8th CAiSE/IFIP8.1 workshop on evaluation of modeling methods in systems analysis and design (EMMSAD 2003), Velden

  38. Kovitz B (2003) Hidden skills that support phased and agile requirements engineering. Requir Eng 8(2):135–141

    Article  Google Scholar 

  39. Korkala M, Abrhamsson P, Kyllonen P (2006) A case study on the impact of customer communication on defects in agile software development. In: Proceedings of AGILE 2006, Washington, DC, pp 76–88

  40. Laitinen K (1992) Document classification for software quality systems. ACM SIGSOFT Softw Eng Notes 17(4):32–39

    Article  Google Scholar 

  41. Laitinen K (1996) Estimating understandability of software documents. ACM SIGSOFT Softw Eng Notes 21(4):81–92

    Article  Google Scholar 

  42. Lamsweerde A (2000) Requirements engineering in the year 2000: a research perspective. In: Proceedings of the 2000 international conference on software engineering, Limerick, Ireland, pp 5–19

  43. Lamsweerde A (2001) Goal-oriented requirements engineering: a guided tour. In: Proceedings of the 5th IEEE international symposium on requirements engineering, Toronto, pp 249–262

  44. Liu L, Yu E (2001) From requirements to architectural design—using goals and scenarios. In: From software requirements to architectures workshop (STRAW 2001), Toronto, pp 22–30

  45. Loucopoulos P, Kavakli V (1997) Enterprise knowledge management and conceptual modelling. In: Workshop on conceptual modeling: current issues and future directions. Springer, Los Angeles, pp 45–79

  46. Mylopoulos J (1992) Conceptual modeling and Telos. In: Locoupoulos P, Zicari R (eds) Conceptual modeling databases and CASE. Wiley, New York, pp 49–68

    Google Scholar 

  47. Mylopoulos J, Borgida A, Yu E (1997) Representing software engineering knowledge. Autom Softw Eng 4(3):291–317

    Article  Google Scholar 

  48. Nakajo T, Kume H (1991) A case history analysis of software error cause-effect relationships. Trans Softw Eng 17(8):830–838

    Article  Google Scholar 

  49. Nawrocki J, Jasiński M, Walter B, Wojciechowski A (2002) Extreme programming modified: embrace requirements engineering practices. In: 10th anniversary joint IEEE international requirements engineering conference (RE’02), 303 pp

  50. Nuseibeh B, Easterbrook S (2000) Requirements engineering: a roadmap. In: Proceedings of the conference on the future of software engineering (ICSE 2000) Limerick, Ireland, pp 35–46

  51. Paetch F, Eberlin A, Maurer F (2003) Requirements engineering and agile software development. In: Proceedings of the twelfth IEEE international workshops on enabling technologies infrastructure for collaborative enterprises (WETICE’03), Linz, pp 308–313

  52. Parnas D (2006) Agile methods and GSD: the wrong solution to an old but real problem. In: Agerfalk PJ, Fitzgerald B (eds) Flexible and distributed software processes: old petunias in new bowls? Commun ACM 49(10): 27–34

  53. Petri CA (1962) Kommunikation mit automaten. PhD dissertation, University of Bonn

  54. Petterson J (1977) Petri nets. ACM Comput Surv 9(3):223–252

    Article  Google Scholar 

  55. Reeves WJ (1992) What is software design? C++ J 2(2)

  56. Rolland C, Prakash N (2000) From conceptual modeling to requirements engineering. Ann Softw Eng 10:151–176

    Article  MATH  Google Scholar 

  57. Rumbaugh J, Blaha M, Premerlani W, Eddy F, Lorensen W (1991) Object-oriented modeling and design. Prentice-Hall, Upper Saddle River

    Google Scholar 

  58. Shlaer S, Mellor SJ (1992) Object lifecycles: modeling the world in states. Yourdon Press, Upper Saddle River

    Google Scholar 

  59. Sommerville I (1989) Software engineering. Addison-Wesley, Wokingham

    MATH  Google Scholar 

  60. The Agile Manifesto (2001) Manifesto for agile software development. http://www.agilemanifesto.org

  61. Turner JA (1987) Understanding the elements of system design. In: Boland RJ, Hirschheim RA (eds) Critical issues in information systems research. Wiley, New York, pp 97–111

    Google Scholar 

  62. Uschold M, King M, Moralee S, Zorgios Y (1998) The enterprise ontology. Knowl Eng Rev 13(1):31–89

    Article  Google Scholar 

  63. Welsh J, Han J (1994) Software documents: concepts and tools. Softw Concepts Tools 15(1):12–25

    Google Scholar 

  64. Yu E (1997) Towards modelling and reasoning support for early-phase requirements engineering. In: Proceeding of the third IEEE international symposium on requirements engineering, Annapolis, pp 226

  65. Yu E (2001) Agent-oriented modelling: software versus the world. In: Agent-oriented software engineering AOSE-2001 workshop proceedings, pp 206–225

  66. Yu E, Mylopoulos J (1994) Understanding “why” in software process modelling, analysis, and design. In: Proceedings of the 16th international conference on software engineering, Sorrento, Italy, pp 159–168

  67. Zachman JA (1987) A framework for information systems architecture. IBM Syst J 26(3):276–292

    Article  Google Scholar 

  68. Zave P, Jackson M (1997) Four dark corners of requirements engineering. ACM Trans Softw Eng Methodol 6(1):1–30

    Article  Google Scholar 

Download references

Acknowledgments

The authors thank Yair Wand and Andrew Burton-Jones of UBC for their helpful comments.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Hillel Rubin.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Rubin, E., Rubin, H. Supporting agile software development through active documentation. Requirements Eng 16, 117–132 (2011). https://doi.org/10.1007/s00766-010-0113-9

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00766-010-0113-9

Keywords

Navigation