Abstract
We consider requirements change due to system evolution which results from contextual forces such as the decision to standardise practices across subsidiaries of a company. Our experience with the financial branch of the French Renault group is that eliciting change requirements poses its own specific problems. We propose to model change as a set of gaps between the requirements specification of the current and the future system. Our approach is to define a generic typology of gaps to facilitate a precise definition of change requirements. It adopts a goal oriented requirements specification and shows how to customise the generic gap typology to this specific requirements representation formalism. The paper presents the approach to elicit gaps and illustrates it with the Renault case study.
Similar content being viewed by others
References
Lientz BP, Swanson, EB (1980) Software maintenance management, a study of computer application software in 487 data processing organizations. Addison-Wesley, Reading, MA
Nosek JT, Palvia P (1990) Software maintenance management: changes in the last decade. J Softw Maint 2(3), 157–174
IPSE International Workshop on the Principles of Software Evolution
Breche P (1996) Advanced primitives for changing schemas of object databases. In: Proceedings of the international conference CAiSE'96, Heraklion, Greece. Springer, Berlin Heidelberg New York
Lauteman SE (1997) Schema versions in object-oriented database systems. In: Proceedings of the fifth international conference on database systems for advanced applications, Melbourne, Australia, 1–4 April 1997
Banerjee J, Kim W, Kim H-J, Korth HF (1987) Semantics and implementation of schema evolution in object oriented databases In: Proceedings of the ACM-SIGMOD annual conference, San Francisco, CA, May 1987, pp 311--322
Casati F, Ceri S, Pernici B, Pozzi G (1996) Workflow evolution. In: Proceedings of 15th international conference on conceptual modeling (ER'96), Cottbus, Germany, pp 438–455
Liu C, Orlowska M, Li H (1998) Automating handover in dynamic workflow environments. In: 10th conference on advanced information systems engineering, Pisa, Italy
Sadiq S (2000) Handling dynamic schema change in process models. In: Australian Database Conference, Canberra, Australia
Bandinelli S, Fuggetta A, Ghezzi C (1993) Software process model evolution in the SPADE environment. IEEE Trans Softw Eng 19(12), 1128–1144
Heimann P, Joeris G, Krapp C, Westfechtel B (1996) DYNAMITE: dynamic task nets for software process management. In: Proceedings of the 18th international conference on software engineering (ICSE 18), Berlin, Germany, March 1996, pp 331–341
Si-Said S, Rolland C, Grosz G (1996) MENTOR: a computer aided requirements engineering environment. In: Proceedings of the international conference CAiSE'96. Heraklion, Greece. Springer, Berlin Heidelberg, New York
Lehman MM, Ramil JF, Kahen G (2001) Thoughts on the role of formalisms in studying software evolution. In: Mens T, Wermelinger M (eds) International special session on formal foundations of software evolution, Lisbon, Portugal, March 2001. Co-located with the European conference on software maintenance and reengineering (CSMR 2001)
Jarke M, Pohl K (1993) Establishing visions in context: toward a model of requirements processes. In: Proceedings of the 12th international conference information systems, Orlando, FL
Jackson M (1995) Software requirements and specifications. Addison-Wesley, Reading, MA
von Lansweerde A (2000) Requirements engineering in the year 2000: a research perspective. In: 22nd international conference on software engineering
Dardenne A, von Lansweerde A, Fickas S (1993) Goal directed requirements acquisition. Sci Comput Program 20, 3–50
Jarke M, Pohl K (1994) Requirements engineering in 2001: managing a changing reality. IEEE Softw Eng J November, 257–266
Rolland C, Prakash N (2001) Matching ERP system functionality to customer requirements. In: Proceedings of RE'01, 5th international symposium on requirements engineering, Toronto, Canada, pp 66–75
Rolland C, Prakash N, Benjamen A (1999) A multi-model view of process modelling. Requirements Eng 4: 169–187
Kradolfer M, Geppert A (1999) Dynamic workflow schema evolution based on workflow type versioning and workflow migration. In: Proceedings of the fourth IFCIS international conference on cooperative information systems (CoopIS99). Edinburgh, UK, 2–4 September 1999
Information technology–information resource dictionary system (IRDS) (1990) Framework, ISO/IEC International Standard
Marttiin P (1994) Methodology engineering in CASE shells: design issue and current practice. PhD thesis, Computer science and information systems reports, Technical report TR-4
Grundy JC, Venacle JR (1992) Towards an integrated environment for method engineering. In: Cotterman WW, Senn JA (eds) Challenges and strategies for research in systems development. Wiley, Chichester, pp 45–62
Plihon V, Rolland C (1997) Using a generic approach to support the construction of methods. In: Proceedings of the 8th international conference on database and expert systems applications (DEXA'97), Toulouse, France, 1–7 September 1997
Prakash N (1999) On method statics and dynamics. Inform Syst 24(8), 613–637
Rolland C, Souveyet C., Salinesi C (1998) Guiding goal modelling using scenarios. IEEE Trans Softw Eng (special issue on scenario management) 24(12): 1055–1071
Prat N (1997) Goal formalisation and classification for requirements engineering. In: Proceedings of the third international workshop on requirements engineering: foundations of software quality REFSQ'97, Barcelona, pp 145–156
Easterbrook S. Resolving requirements conflicts with computer-supported negotiation. In: Jirotka M, Goguen J (eds) Requirement engineering: social and technical issues. Academic Press, New York, pp 41–65
Nuseibeh B, Kramer J, Finkelstein A (1994) A framework for expressing the relationships between multiple views in requirements specifications. IEEE Trans Softw Eng 20(10, 760–773
Acknowledgements
Sincere thanks are due to the anonymous reviewers who provided constructive criticism that has made improvements possible.
Author information
Authors and Affiliations
Corresponding author
Appendix: Defining map change operators to specifying map gaps
Appendix: Defining map change operators to specifying map gaps
1.1 Rename
1.1.1 RenameIntention
As any element [Fig. 2] an intention is associated to a string that defines its name. This holds both before and as result of applying the RenameIntention operator to a given intention.
1.1.2 RenameStrategy
As any element, a strategy has a name which is a string. Therefore, renaming a strategy is achieved by changing the string value that defines its name.
1.1.3 RenameSection
Names are given to sections as a means to refer to them more easily. Renaming a section is, therefore, not a very significant gap defined as follows:
RenameSection: Section → String
RenameSection(Se) = Se.name(N) | N ∈ String
1.2 Add
1.2.1 AddIntention
As a result of map invariants (section 3), any map intention is connected to other intentions through strategies. Therefore, when an intention I is added, it must be related by strategies to at least two other intentions of the map (I1 & I2 in the predicate). In order to preserve C2, a strategy St1 must have the added intention I as target intention and an I1 intention as source intention. To preserve C3, another strategy St2 must have the added intention I as its source and I2 as its target. By default I1 and I2 might be Start and Stop, respectively.
1.2.2 AddStrategy
According to the map meta-model, any strategy in a map can only be defined between two intentions: its source intention and its target intention respectively. Therefore, when a strategy is added it must be linked to two existing intentions, one being the source intention and the other being its target intention.
1.2.3 AddSection
In order to preserve the invariant I3 and to conform to the corollary C5 the AddSection operator ensures that the added section (Is, It, St) is connected to the rest of the map. This is achieved by enforcing the existence of (a) the strategy St1 having Is as its target and an intention I1 already existing as its source and (b) the strategy St2 having It as its source and an intention I2 already existing as its target. By default, I1 and I2 may be the Start and Stop intentions, respectively.
1.3 Remove
1.3.1 RemoveIntention
The execution of the RemoveIntention is concerned with the corollaries of map invariants C1, C2 and C3. Preserving them implies that any strategy \({\rm St}_{\rm i}^{\rm s}\) (or) \({\rm St}_{\rm j}^{\rm t} \) having the removed intention I as a source intention (or target intention) must henceforth have another source intention \({\rm I}_{\rm k}^{\rm s} \) (or target intention \({\rm I}_{\rm l}^{\rm t} \)). By default the Start (or Stop) intentions are used.
1.3.2 RemoveStrategy
Let assume that the section (Is, St, It) exists in the As-Is map. In order to preserve C1, C2 or C3 the Remove Strategy operator applied to the strategy St imposes the existence of two sections (Is, St1, I1) and (I2,Stt, It). Is and It remain therefore source intention (or target intention) of sections in the map. By default I1 and I2 can be Start and Stop respectively.
1.3.3 RemoveSection
When a section Se (<Is,It,St>) is removed, its three components (the intentions Is & It and the strategy St) are removed. In order to preserve the map invariants, the Remove Section operation ensures that any strategy \({\rm St}_{\rm i}^{\rm s} \) having Is or It as source intention has in the To-Be map another intention \({\rm I}_{\rm k}^{\rm s} \) (Start by default) as source. The same holds for strategies \({\rm St}_{\rm j}^{\rm t} \) having Is or It as target intention. After the section removal, these strategies must have another target intention \({\rm I}_{\rm l}^{\rm t} \) (Stop by default).
1.4 Merge
1.4.1 MergeStrategy
A strategy St can be considered as the result of merging two strategies St1 and St2 iff these have the same source intention Is and the same target intention It. If this condition is not met, then a different operator must be involved in the gap elicitation. For instance, if three different intentions are involved, the MergeSection operator can be used to elicit the gap.
1.4.2 MergeIntention
When two intentions I1 and I2 are merged, the intention I replaces I1 and I2 in any section having initially I1 or I2 as source intention or target intention.
1.4.3 MergeSection
The merging of two sections Se1 (<Is1, It1, St1>) and Se2 (<Is2, It2, St2>) results in a section Ser (<Isr, Str, Itr>). There are pre-conditions for applying this operator: Is1 must be different from Is2 or It1 must be different from It2. In the resulting situation, Is1 and Is2 are replaced by Isr and It1 and It2 are replaced by Itr in any section having initially Is1, Is2, It1 or It2 as source or target intention.
1.5 Split
1.5.1 SplitStrategy
Splitting a strategy St of a section <Is, It, St>results in two strategies St1 and St2. Defining the sections <Is, It, St1>and <Is, It, St2>.
1.5.2 SplitIntention
The SplitIntention operator permits the replacement of one intention I by two intentions I1 and I2. In order to keep the invariants satisfied, the operator ensures that any strategy \({\rm St}_{\rm j}^{\rm t} \) having the intention I for target in the As-Is map has either I1or I2 as target in the To-Be map. The same holds for strategies \({\rm St}_{\rm i}^{\rm s} \) that initially had I as source intention.
1.5.3 SplitSection
A section Se (<Is, It, St>) can be split into two sections Se1 (<Is1, It1, St1>) and Se2 (<Is2, It2, St2>). This implies as shown by the predicate that
-
any strategy \({\rm St}_{\rm i}^{\rm s} \) having initially Is (or It) as source must have Is1 or Is2 (or It1 or It2) as source in the final situation. Similarly,
-
any strategy \({\rm St}_{\rm j}^{\rm t} \) having initially Is (or It) as target must have Is1 or Is2 (or It1 or It2) as target in the final situation.
1.6 ChangeOrigin
The ChangeOrigin operator execution permits a source intention (or a target intention) I of a strategy St to be replaced by another intention In. When the origin of a strategy is changed, the invariant I3 and the corollaries C1, C2 and C3 may not hold in the To-Be map. This issue is solved by ensuring that there exits in this map, a strategy Stn having I as source (or target depending on the initial link).
1.7 Retype
1.7.1 RetypeStrategy
The gap between a As-Is map and a To-Be map may correspond to the retyping of a As-Is strategy St into a To-Be intention I. In order to satisfy the corollaries C2 and C3, the intention which was source (or target) of St must remain the source intention (or target intention) of at least one strategy in the To-Be map. Furthermore, to preserve C1, the new intention I must not be isolated. A strategy St3 having I as source and another strategy St4 having I as target must exist in the To-Be map.
1.7.2 RetypeIntention
Vice-versa, an As-Is intention I can be retyped into a To-Be strategy St. The predicate of the RetypeIntention operator ensures that any strategy \({\rm St}_{\rm i}^{\rm s} \) having initially I as source (or target) must have another source \({\rm I}_{\rm k}^{\rm s}\) (or target \({\rm I}_{\rm l}^{\rm t} \)) intention. The new strategy St must have a source intention I1 and a target intention I2 as well in the To-Be map.
The Give, Withdraw and Modify operators apply on properties of Intentions (Verb, Target, Parameters) and properties of Sections (Business rules, Pre-condition, Post-condition). Any change of properties maintains the map invariants. Therefore, there is no need for a predicative definition of these operators.
Rights and permissions
About this article
Cite this article
Rolland, C., Salinesi, C. & Etien, A. Eliciting gaps in requirements change. Requirements Eng 9, 1–15 (2004). https://doi.org/10.1007/s00766-003-0168-y
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00766-003-0168-y