Abstract
The ideal outcome when responding to changes in the functional requirements of a system is that we can quickly determine (1) where to make the change, (2) how the change affects the architecture of the existing system, (3) which components of the system are affected by the change, and (4) what behavioral changes will need to be made to the components (and their interfaces) that are affected by the change of requirements. If these facts are known, the impact of the change is entirely understood and therefore manageable. Moreover, a system is likely to undergo multiple changes over the course of its service life, so there is also a need to make a comprehensive record of these changes thus preserving the integrity of the system and potentially extending its service life. To this worthy end, a traceability model using Behavior Trees as a formal notation to represent functional requirements is proposed. This will address the issues cited above, revealing change impacts on different types of design constructs (documents) caused by the changes to the requirements. The proposed model introduces the concept of evolutionary design documents that record the change history of the designs. From these documents, any version of a design document as well as the difference between any two versions can be reviewed, thus affording the desirable condition of full traceability. An important advantage of this model is that the major part of the procedure to generate these evolutionary design documents can be supported by automated tools making the method accessible for use in large-scale software and systems development projects.
Similar content being viewed by others
Notes
A disjoint union is a modified union operation which indexes the elements according to their origin sets.
A function \(f\): X \(\rightarrow \) Y is surjective if and only if for every \(y\) in the codomain \(Y\) there is at least one \(x\) in the domain \(X\) such that \(f(x) = y\).
References
Abi-Antoun M, Aldrich J et al (2006) Differencing and merging of architectural views. In: Proceedings of the 21st IEEE/ACM international conference on automated software engineering, pp 47–58
Alanen M, Porres I (2003) Difference and union of models. TUCS technical report no 527, Turku Centre for Computer Science
Bass L, Clements P, Kazman R (1998) Software architecture in practice. ISBN: 0201199300. Addison Wesley Longman, Inc., New York
Behavior engineering web site, Behavior Engineering. http://www.beworld.org
Bennett K, Rajlich V (2000) Software maintenance and evolution: a roadmap. In: Finkelstein A (ed) The future of software engineering. ACM Press, New York
Bohner SA, Arnold RS (1996) Software change impact analysis. IEEE Computer society Press Los Alamitos. ISBN 0818673842
Bouquet F, Jaffuel E, Legeard B, Peureux F, Utting M (2005) Requirements traceability in automated test generation application to smart card software validation. In: Proceedings of the 1\(^{st}\) international workshop on advances in model-based testing, pp 1–7
Bratthall L, Johansson E, Regnell B (2000) Is a design rationale vital when predicting change impact? A controlled experiment on software architecture evolution. In: PROFES 2000—second international conference on product focused software process improvement, Oulo, Finland, pp 126–139
Chapin N, Hale JE, Khan KM, Ramil TW (2001) Types of software evolution and software maintenance. J Softw Maint Evol Res Pract 13:3–30
Colvin R, Hayes IJ (2007) A semantics for behavior trees. ACCS technical report, no. ACCS-TR-07-01, ARC Centre for complex systems
Conklin J (1987) Hypertext: an introduction and survey. Computer, 17–41
Cooper L, Chung L (2005) Managing change in OTS-aware requirements engineering approach. ICSE-MPEC’05, pp 1–4
Dromey RG (2003) From requirements to design: formalising the key steps (Invited Keynote Address). In: IEEE international conference on software engineering and formal methods, SEFM’2003, Brisbane, pp 2–11
Dromey RG, Powell D (2005) Early requirements defects detection. TickIT, International, 4Q05, pp 3–13
Dromey RG (2006) Formalizing the transition from requirements to design. In: Liu Z, He J (eds) Mathematical frameworks for component software, models for analysis and synthesis, Chap 6. World Scientific, Singapore, pp 173–206. ISBN 981-270-017-X
Dromey RG (2006) Scaleable formalization of imperfect knowledge. In: 1st Asian working conference on verified software (AWCVS’06), Macau, pp 21–33
Dromey RG (2014) Engineering large-scale systems—mitigating the pivotal risks. IEEE Softw (submitted)
Förtsch S, Westfechtel B (2007) Differencing and merging of software diagrams - state of the art and challenges. In: Proc. second intl. conf. software and data technologies (ICSOFT 2007), vol SE, Barcelona, Spain, 22–25 July 2007. INSTICC Press, Barcelona
Gallagher KD, Lyle JR (1991) Using program slicing in software maintenance. IEEE Trans Softw Eng V17(8):751–761
Garg PK, Scacchi W (1990) A hypertext system to manage software life-cycle documents. IEEE Softw 7(3):90–98
Gonzalez-Perez C, Henderson-Sellers B, Dromey G (2005) A metamodel for the behavior trees modelling technique. In: Third international conference on information technology and applications, ICITA 05:35–39
Grunske L, Lindsay P, Yatapanage N, Winter K (2005) An automated failure mode and effect analysis based on high-level design specification with behavior trees. In: The fifth international conference on integrated formal, methods (IFM’05), pp 129–149
Grunske L, Geiger L, Lawley M (2005) A graphical specification of model transformations with triple graph grammars. In: First European conference model driven architecture - foundations and applications, ECMDA-FA 2005, Nuremberg, Germany, 7–10 November 2005. Lecture notes in computer science, vol 3748, pp 284–298
Grunske L, Winter K, Colvin R (2007) Timed behavior trees and their application to verifying real-time systems. In: Proc. of 18th Australian conference on software engineering (ASWEC 2007), pp 211–222
Harjani DR, Queille JP (1992) A process model for the maintenance of large space systems software. In: Proceedings of conference on software maintenance. IEEE Computer Society Press, Los Alamitos, pp 127–136
Horowitz E, Williamson RC (1986) SODOS: a software documentation support environment—its definition. IEEE Trans Softw Eng SE-12(8):849–859
IEEE (1998) IEEE standard for software maintenance (IEEE Std 1219–1998)
Kitchenham BA, Travassos GH, Mayrhauser Av, Niessink F, Schneidewind NF, Singer J, Takada S, Vehvilainen R, Yang H (1999) Toward an ontology of software maintenance. J Softw Maint 11(6):365–389
Knuth DE (1997) The art of computer programming, fundamental algorithms, vol 1, 3rd edn. Addison Wesley Longman, Reading. ISBN 0201896834
Kolovos DS, Ruscio DD, Pierantonio A, Paige RF (2009) Different models for model matching: an analysis of approaches to support model differencing. In: Proc. 2009 ICSE workshop on comparison and versioning of software models, May 17, 2009. Vancouver, IEEE, USA
Krell BE (1992) Developing with Ada: life cycle methods. Bantam Books, New York
Lehman MM, Ramil J, Wernick P, Perry DE, Turski WM (1997) Metrics and laws of software evolution—the nineties view. In: Proceedings 4th international symposium on software metrics, pp 20–32
Lin K, Chen D, Sun C, Dromey RG (2005) Maintaining constraints in collaborative graphic systems: the CoGSE approach. In: 9th European conference on CSCW, Paris, France, pp 185–204
Lindvall M, Sandahl K (1996) Practical implications of traceability. Softw Pract Exp 26(10):1161–1180
Luckham DC, Kenney JJ, Ausgusin LM, Vera J, Bryan D, Mann W (1995) Specification and analysis of system architecture using rapide. IEEE Trans Softw Eng 21(4):336–355
Mens T (1999) A formal foundation for object-oriented software evolution. PhD. dissertation, Vrije University
Mills HD (1971) Top-down programming in large systems. In: Debugging techniques in large systems. Prentice-Hall, Englewood Cliffs. ISBN 0138221227
Myers T et al (2008) Seamlessly integrating software & hardware modeling for large-scale systems. In: 2nd international workshop on equation-based object-oriented languages and tools. Paphos, Cyprus
Naumovich G, Avrunin GS, Clarke LA, Osterweil LJ (1997) Applying static analysis to software architecture. In: Proceedings of the 6th European, software engineering conference, pp 77– 93
Nejati S, Sabetzadeh M et al (2007) Matching and merging of statecharts specifications. In: 29th international conference on software engineering, pp 54–64
Nuseibeh B, Easterbrook S (2000) Requirement engineering: a roadmap. Finkelstein A (ed) The future of software engineering. ACM Press, New York, pp 1–4
Potts C (1997) Requirements model in context. In: 3rd international symposium on requirements engineering (RE’97), pp 102–104
Rajlich V (1999) Software change and evolution, SOFSEM’99. LNCS 1725:189–202
Royce W (1998) Software project management, a unified framework. Addison Wesley Longman, Inc., Reading. ISBN 0201309580
Saaltink M (1997) The Z/EVES system. In: 19th International conference on the Z formal method (ZUM), vol 1212. LNCS, Reading, pp 72–88
Sabetzadeh M, Easterbrook S (2005) An algebraic framework for merging incomplete and inconsistent views. In: Proceedings of 13th IEEE international conference on requirements engineering, pp 306–318
Schneider S (2001) The B-method—an introduction, Palgrave Editor. ISBN: 033379284X
Selonen P (2007) A review of UML model comparison techniques. In: Proc. 5th Nordic workshop on model driven engineering, 27–29 August 2007, Ronneby, Sweden, pp 37–51 (Research report, U. Göteborg)
Shaw M, DeLine R et al (1995) Abstractions for software architecture and tools to support them. IEEE Trans Softw Eng 21(4):314–335
Shlaer S, Mellor SJ (1985) Structured development for real-time systems, vol 1–3. Yourdon Press, UK
Smith C, Winter K, Hayes I, Dromey RG, Lindsay P, Carrington D (2004) An environment for building a system out of its requirements. In: Proceedings of the 19th IEEE international conference on automated software engineering, pp 398–399
Software case study of the satellite system (original requirement). http://www.beworld.org/BE/resource/casestudy/satellite/scsoreq.pdf
Software change case study site. http://www.beworld.org/BE/resource/casestudy/satellite/
Sommerville I (2011) Software engineering, 9th edn. Addison Wesley, Reading. ISBN:0137053460
Swaina RK et al (2012) Test case design using slicing of UML interaction diagram. In: 2nd international conference on communication, computing & security, vol 6, pp 136–144
Stafford JA, Wolf A (2001) Architecture-level dependence analysis for software systems. Int J Softw Eng Knowl Eng 11(4):431–453
Sun C et al (1998) Achieving convergence, causality-preservation, and intention-preservation in real-time cooperative editing systems. ACM Trans Comput Hum Interact 5(1):63–108
Tracz W (July 1995) DSSA (domain-specific software architecture): pedagogical example. ACM SIGSOFT Softw Eng Notes 20(3):49–62
Tuffley D, Rout T (2009) Applying behavior engineering to process modeling. In: Proceedings of the 1st improving systems and software engineering conference (ISSEC). National Convention Centre, Canberra, 10–12 August 2009
Yau SS, Colofello JS, MacGregor T (1978) Ripple effect analysis of software maintenance, COMPSAC, pp 60–65
Wen L, Dromey RG (2006) Architecture normalization for component-based systems. In: Electronic notes in theoretical computer science, vol 160. Elsevier BV, Radarweg 29, 1043 NX Amsterdam. Netherlands, pp 335–348
Wen L, Dromey RG (2004) From requirements change to design change: a formal path. In: Proceedings of the 2nd IEEE international conference on software engineering and formal, methods, pp 104–113
Wen L, Colvin R et al (2007) Integrare’, a collaborative environment for behavior-oriented design. In: Proceedings of the 4th international conference on cooperative design, visualization and engineering (CDVE)
Wen L, Kirk D, Dromey G (2007) A tool to visualize behavior and design evolution. Foundations of software engineering. In: 9th international workshop on principles of software evolution: in conjunction with the 6th ESEC/FSE joint meeting, pp 114–115
Wen L, Dromey RG (2009) A hierarchical architecture for modeling complex software intensive systems using behavior trees. In: Proceedings of the 9th Asia–Pacific complex systems conference, pp 292–299
Wieringa RJ (1996) Requirements engineering: frameworks for understand. Wiley, New York. ISBN: 0471958840
Winter K (2004) Formalising behavior trees with CSP. In: International conference on integrated formal, methods, IFM’04, pp 148–167
Zafar S, Dromey RG (2005) Integrating safety and security requirements into design of an embedded system. Asia-Pacific, software engineering conference (APSEC’05), pp 629–636
Zhao J, Yang H et al (2002) Change impact analysis to support architectural evolution. J Softw Maint Evol Res Pract 14:317–333
Zhao J (2002) Change impact analysis for aspect-oriented software evolution. In: International workshop on principles of software, evolution, pp 108–112
Acknowledgments
The authors would like to acknowledge the Australian Research Council (ARC) Centre for Complex Systems for its support of this work. The authors would also like to thank Associate Professor Alan Liew for his review of this paper. Special Notice: During the preparation of this paper, the third named author R. Geoff Dromey passed away.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Wen, L., Tuffley, D. & Dromey, R.G. Formalizing the transition from requirements’ change to design change using an evolutionary traceability model. Innovations Syst Softw Eng 10, 181–202 (2014). https://doi.org/10.1007/s11334-014-0230-6
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11334-014-0230-6