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.
Similar content being viewed by others
Notes
Therefore, organizations which apply distributed development practices tend to change agile methods to follow the distributed characteristic of their organization [7].
References
Abbot RJ (1987) Knowledge abstraction. Commun ACM 30(8):664–671
Abrahamsson P, Salo O, Rankainen J, Warsta J (2002) Agile software development methods—review and analysis. VTT Electronics
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
Agerfalk PJ, Fitzgerald B (2006) Flexible and distributed software processes: old petunias in new bowls? Commun ACM 49(10):27–34
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)
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
Balasubramaniam R, Cao L, Mohan K, Xu P (2006) How can distributed software development be agile? Commun ACM 49(10):41–46
Barker J, Palmer G (2004) Beginning C# objects: from concepts to code. Apress, Berkeley, CA
Bennett K, Cornelius B, Munro M, Robson D (1991) Software maintenance. In: McDermid JA (ed) Software engineer’s reference book. Butterworlh-Heinemann, Oxford
Booch G (1987) Software engineering with ADA. Benjamin-Cummings, Redwood City
Castro J, Kolp M, Mylopoulos J (2002) Towards requirements-driven information systems engineering: the Tropos project. Inf Syst 27(6):365–379
Chen PP (1976) The entity-relationship model—toward a unified view of data. ACM Trans Database Syst 1(1):9–36
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
Chung L, Nixon B, Yu E, Mylopoulos J (2000) Non-functional requirements in software engineering. Kluwer, Dordrecht
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
Coad P, Yourdon E (1991) Object-oriented analysis. Yourdon, Upper Saddle River
Cockburn A (2002) Agile software development. Addison Wesley, Boston
Dardenne A, Lamsweerde A, Fickas S (1993) Goal-directed requirements acquisition. Sci Comput Program 20:3–50
Davis AM (1988) A taxonomy for the early stages of the software development life cycle. J Softw Syst 8(4):297–311
Devedzik V (2002) Understanding ontological engineering. Commun ACM 45(4):136–144
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)
Fowler M (2003) The new methodology. http://www.martinfowler.com/articles/newMethodology.html
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
Grady JO (2006) Systems requirements analysis. Academic Press, London
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
Hall JG, Rapanotti L, Jackson M (2005) Problem frame semantics for software development. J Softw Syst Model 4(2):189–198
Harel D (1987) Statecharts: a visual formalism for complex systems. Sci Comput Program 8:231–274
Hay DC (2003) Requirements analysis: from business views to architecture. Prentice Hall, Upper Saddle River
Henderson-Sellers B, Edwards JM (1990) Object oriented systems life cycle. Commun ACM 33(9):142–159
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
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
Hermann K (1999) Difficulties in the transition from OO analysis to design. IEEE Softw 16(5):94–102
Highsmith J, Cockburn A (2001) Agile software development: the business of innovation. Computer 34(9):120–122
Jackson MA (2001) Problem frames: analyzing and structuring software development problems. Addison-Wesley, Boston
Jacobson I (1995) A confused world of OOA and OOD. J Object Orient Program 8(5):15–20
Kavakli E (2002) Goal oriented requirements engineering: a unifying framework. Requir Eng J 6(4):237–251
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
Kovitz B (2003) Hidden skills that support phased and agile requirements engineering. Requir Eng 8(2):135–141
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
Laitinen K (1992) Document classification for software quality systems. ACM SIGSOFT Softw Eng Notes 17(4):32–39
Laitinen K (1996) Estimating understandability of software documents. ACM SIGSOFT Softw Eng Notes 21(4):81–92
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
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
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
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
Mylopoulos J (1992) Conceptual modeling and Telos. In: Locoupoulos P, Zicari R (eds) Conceptual modeling databases and CASE. Wiley, New York, pp 49–68
Mylopoulos J, Borgida A, Yu E (1997) Representing software engineering knowledge. Autom Softw Eng 4(3):291–317
Nakajo T, Kume H (1991) A case history analysis of software error cause-effect relationships. Trans Softw Eng 17(8):830–838
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
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
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
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
Petri CA (1962) Kommunikation mit automaten. PhD dissertation, University of Bonn
Petterson J (1977) Petri nets. ACM Comput Surv 9(3):223–252
Reeves WJ (1992) What is software design? C++ J 2(2)
Rolland C, Prakash N (2000) From conceptual modeling to requirements engineering. Ann Softw Eng 10:151–176
Rumbaugh J, Blaha M, Premerlani W, Eddy F, Lorensen W (1991) Object-oriented modeling and design. Prentice-Hall, Upper Saddle River
Shlaer S, Mellor SJ (1992) Object lifecycles: modeling the world in states. Yourdon Press, Upper Saddle River
Sommerville I (1989) Software engineering. Addison-Wesley, Wokingham
The Agile Manifesto (2001) Manifesto for agile software development. http://www.agilemanifesto.org
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
Uschold M, King M, Moralee S, Zorgios Y (1998) The enterprise ontology. Knowl Eng Rev 13(1):31–89
Welsh J, Han J (1994) Software documents: concepts and tools. Softw Concepts Tools 15(1):12–25
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
Yu E (2001) Agent-oriented modelling: software versus the world. In: Agent-oriented software engineering AOSE-2001 workshop proceedings, pp 206–225
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
Zachman JA (1987) A framework for information systems architecture. IBM Syst J 26(3):276–292
Zave P, Jackson M (1997) Four dark corners of requirements engineering. ACM Trans Softw Eng Methodol 6(1):1–30
Acknowledgments
The authors thank Yair Wand and Andrew Burton-Jones of UBC for their helpful comments.
Author information
Authors and Affiliations
Corresponding author
Rights 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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00766-010-0113-9