Basics and related work
Software configuration management (SCM) is one of the software engineering disciplines concerned with managing the change. While in an earlier presentation (Bersoff, 1984) of the elements of SCM relatively little attention was paid to the question of configuration version control, and the task of building configurations of software systems was not even discussed as such, a few years later there was articulated an understanding (Lehman, 1991) that "once alternative element versions exist, we can configure, i.e. build, a range or family of systems the precise characteristics of which will depend on the subset of elements used". It comes as no surprise that automation has been sought, but it was noted (Plaice, 1993) that what "makes it difficult to build a complete system automatically is the lack of correspondence between versions of different components". These three works all published within less than ten years show the extent of development the discipline of SCM has been experiencing, and the growing emphasis on the area of configuration building. Realising the difficulty in automating it, seeking methods that would provide support is a more realistic objective. Moreover, a way to achieve such objective should involve more information about the system and its components, e.g. knowledge about the relations (i.e., correspondence) between the system's elements, or knowledge about properties of the elements. An important aspect of SCM is that it is concerned with maintaining configurations of evolving software systems (Narayanaswamy, 1987). The ESE system (Ramamoorthy, 1990) is an evolution support environment which provides automated aids to keeping track of relevant information about software projects. This includes also information about software configuration and version control and allows managing configurations according to such informations maintained in a database. A more universal view on software system evolution is reflected in the EPOS system (Jaccheri, 1993). The system maintains a database to store the entire software process model expressed by a schema of classes and meta-classes, and its model entities and relationships. Such model is potentially useful in building configurations, but the EPOS system is concerned more with the overall support to the software process. Another approach to describing the environment evolution is the Prism model of changes (Madhavji, 1992). It uses a so called dependency structure for describing data related to changes and a so called change structure for classifying, recording, and analyzing change-related data. The model thus separates object and meta-levels of changes.
Recently, most of the authors have been making use of the difference between the notions of variants and revisions (Mahler, 1988; Plaice, 1993). Others, on the other hand, did not incorporate handling of versions in their methods (Feldman, 1979; Yau, 1987), still others did but without distinguishing between variants and revisions (Tichy 1986; Oquendo 1989). The notion of a family of components was used in several works (Narayanaswamy, 1987; Kimball, 1991; Vescoukis, 1992) to attribute properties of components, but without a reference to variants and revisions.
Generally, various kinds of graphs are being used to model software systems. A quite natural way to represent software systems is by means of a tree (Rochkind, 1975). It does not, however, allow to describe the more complex aspects of such systems. An acyclic oriented graph is the next more suitable choice (Yau, 1987; Heimbigner, 1988). Tichy (Tichy, 1986) and later Estublier (Estublier, 1992) have presented a model based on A/O graphs. An important aspect stressed also by the latter work is reusability of the created configuration. Recently, Holt (Holt, 1994) described the structure of software systems by so called tube graphs. Such an approach seems to support control of changes of relations among software components during the software system development, especially with respect to requirements on its architecture.
Building software system configurations The task includes two basic activities: managing software system versions, and managing tools. The former takes care for maintaining consistency and completeness of software system configurations consisting of components. Among the first such systems were SCCS and RCS (Rochkind, 1975; Tichy, 1985). The latter involves automatic activation of tools generating derived software components. The classical example is MAKE (Feldman, 1979). The task itself can be characterised by the following input/output description: Input to the process is:
Output is the required configuration. Recently, the system ADELE (Estublier, 1992), and its successor NOMADE (Belkhatir, 1993) have tackled the problem of configuration building most directly. This approach not only makes use of the conceptual distiction between variants and revisions, but defines also the concept of generic configuration as a set of variants, which greatly facilitates - in our view - building of configurations and reusing them as well.
A problem related to building software system configurations is how to select proper versions to be included in the configuration. Being a sort of subproblem to the original one, it is crucial for its success both from the point of view of the efficiency of the building process and also from the point of view of the quality of the configuration beeing built. Version to be selected should satisfy requirements which can be given in one of several ways:
Version control based on an ordering of versions according to how relevant each version appears to be with respect to the configuration version has been presented in (Plaice, 1993).
N. Belkhatir and M. Ahmed-Nacer, "Major issues on PSEE: Process software engineering environments", Computers and Artificial Intelligence, vol. 12, no. 3, pp. 279-298, 1993. K. Berrada, F. Lopez, and R. Minot, "VMCM, a PCTE based version and configuration management system", in Proc. of the 3rd Int. Workshop on Software Configuration Management, J. Feiler, Ed., 1991, pp. 43-52. E.H. Bersoff, "Elements of software configuration management", IEEE Transactions on Software Engineering, vol. SE-10, no. 1, pp. 79-87, 1984. V. Berzins, Luqi, and A. Yehudai, "Using transformations in specification-based prototyping", IEEE Transactions on Software Engineering, vol. 19, no. 5, pp. 436-452, 1993. E.S. Cohen, D.A. Soni, R. Gluecker, W.M. Hasling, R.W. Schwanke, and M.E. Wagner, "Version management in {G}ypsy", in Proc. ACM SIGSOFT'88, P. Hederson, Ed., Boston, 1988, pp. 201-215, ACM Press. J. Estublier, "The {Adele} configuration manager", Tech. Rep., L.G.I., Grenoble, 1992. S.I. Feldman, "MAKE - a program for maintaining computer programs", Software - Practice and Experience, vol. 9, no. 3, pp. 255-265, 1979. D. Heimbigner, "A graph transform model for configuration management environments", in Proc. ACM SIGSOFT'88, P.~Hederson, Ed., Boston, 1988, pp. 216-225, ACM Press. R.C. Holt and S. Mancoridis, "Using tube graphs to model architectural designs of software systems", Tech. Rep., Toronto, 1994, Research report CSRI-304. M.L. Jaccheri and R. Conradi, "Techniques for process model evolution in EPOS", IEEE Transactions on Software Engineering, vol. 19, no. 12, pp. 1145-1156, 1993. M.M. Lehman, "Software engineering, the software process and their support", IEEE Software Engineering Journal, vol. 6, no. 5, pp. 243-258, 1991. Luqi, "A graph model for software evolution", IEEE Transactions on Software Engineering, vol. 16, no. 8, pp. 917-927, 1990. J. Kimball and A. Larson, "Epochs, configuration schema and version cursors in the KBSA framework CCM model", in Proc. of the 3rd Int. Workshop on Software Configuration Management, P.H. Feiler, Ed. ACM SIGSOFT, 1991, pp. 33-42. G.D. Korn and E. Krell, "A new dimension for the unix file system", Software - Practice and Experience, vol. 20 (S1), pp. S1/19 - S1/34, 1990. N.H. Madhavji, "Environment evolution: The Prism model of changes", IEEE Transactions on Software Engineering, vol. 18, no. 5, pp. 380-392, 1992. A. Mahler and A. Lampen, "An integrated toolset for engineering software configurations", In Proc. ACM SIGSOFT'88, P. Hederson, Ed., Boston, 1988, pp. 191-200, ACM Press. D.B. Miller and R.G. Stockton, "An inverted approach to configuration management", in 2nd International Workshop on SCM. 1989, pp. 1-4, ACM Sigsoft. K. Narayanaswamy and W. Scacchi, "Maintaining configurations of evolving software systems", IEEE Transactions on Software Engineering, vol. SE-13, no. 3, pp. 325-334, 1987. F. Oquendo, K. Berrada, F. Gallo, R. Minot, and I. Thomas, "Version management in the PACT integrated software engineering environment", in Proc. European Software Engineering Conference ESEC'89. 1989, pp. 222-242, Springer-Verlag, LNCS 387. D.E. Perry, "Dimensions of consistency in source versions and system compositions", in Proc. of the 3rd Int. Workshop on Software Configuration Management, J. Feiler, Ed., 1991, pp. 29-32. J. Plaice and W.W. Wadge, A new approach to version control, IEEE Transactions on Software Engineering, vol. 19, no. 3, pp. 268-275, 1993. E. Ploedereder and A. Fergany, "The data model of the configuration management assistant", in 2nd International Workshop on SCM}. 1989, pp. 5-14, ACM Sigsoft. C.V. Ramamoorthy, U. Yutaka, A. Prakash, and W.T. Tsai, "The evolution support environment system", IEEE Transactions on Software Engineering, vol. 16, no. 11, pp. 1225-1234, 1990. C. Reichenberger, "Concepts and techniques for software version control", Software - Concepts and Tools, vol. 15, no. 3, pp. 97-104, 1994. M.J. Rochkind, "The source code control system", IEEE Transactions on Software Engineering, vol. SE-1, no. 4, pp. 364-370, 1975. W.F. Tichy, "A data model for programming support environments and its application", in Trends in Information Systems, B. Langefors, A.A. Verrijn-Stuart, and G. Bracchi, Eds. 1986, pp. 219-236, North Holland. W.F. Tichy, "Tools for software configuration management", in Proc. Int. Workshop on Software Version and Configuration Control, Stuttgart, 1988, pp. 1-20. W.F. Tichy, "RCS - a system for version control", Software - Practice and Experience, vol. 15, no. 7, pp. 637-654, 1985. V.C. Vescoukis, J. Psaromiligos, and E. Skordalakis, "PB-VSS: a software version selection system based on logical programming", in Parallel and Distributed Computing in Engineering Systems, S. Tzafestas, P.~Borne, and L. Grandinetti, Eds. 1992, pp. 141-146, North-Holland. S.S. Yau and J.J. Tsai, "Knowledge representation of software component interconnection information for large-scale software modifications", IEEE Transactions on Software Engineering, vol. SE-13, no. 3, pp. 355-361, 1987.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|