Pub Date : 2002-10-03DOI: 10.1109/ICSM.2002.1167761
C. Seaman
In examining software maintenance processes for improvement opportunities, an obvious choice is information flow. Obtaining accurate, up-to-date, and useful information about a system being maintained is a major task. It is also a difficult task because the sources of this information are often limited, inaccessible, or unknown. Clearly this impacts maintenance productivity-simply because of the time it takes to find and use the appropriate information sources-as well as the quality of system changes, which depends on the quality of the system information available. This paper describes the results of a survey study that aims to discover the information gathering strategies that software maintainers employ. The survey was completed by 45 software professionals in two different organizations with varying degrees of experience in maintenance. Their responses, on the surface, simply show that maintainers overwhelmingly rely on source code, which is not surprising. However, a deeper analysis of the responses show that other sources of information, in particular human sources, some types of CASE support, and lessons learned recorded from previous projects are at least as valuable than source code under some conditions. The results of this ongoing survey study are meant to determine a set of hypotheses about information gathering strategies, which will then be empirically evaluated in future studies.
{"title":"The information gathering strategies of software maintainers","authors":"C. Seaman","doi":"10.1109/ICSM.2002.1167761","DOIUrl":"https://doi.org/10.1109/ICSM.2002.1167761","url":null,"abstract":"In examining software maintenance processes for improvement opportunities, an obvious choice is information flow. Obtaining accurate, up-to-date, and useful information about a system being maintained is a major task. It is also a difficult task because the sources of this information are often limited, inaccessible, or unknown. Clearly this impacts maintenance productivity-simply because of the time it takes to find and use the appropriate information sources-as well as the quality of system changes, which depends on the quality of the system information available. This paper describes the results of a survey study that aims to discover the information gathering strategies that software maintainers employ. The survey was completed by 45 software professionals in two different organizations with varying degrees of experience in maintenance. Their responses, on the surface, simply show that maintainers overwhelmingly rely on source code, which is not surprising. However, a deeper analysis of the responses show that other sources of information, in particular human sources, some types of CASE support, and lessons learned recorded from previous projects are at least as valuable than source code under some conditions. The results of this ongoing survey study are meant to determine a set of hypotheses about information gathering strategies, which will then be empirically evaluated in future studies.","PeriodicalId":385190,"journal":{"name":"International Conference on Software Maintenance, 2002. Proceedings.","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2002-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124802989","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2002-10-03DOI: 10.1109/ICSM.2002.1167829
A. Orso, Anup B. Rao, M. J. Harrold
During maintenance, systems are updated to correct faults, improve functionality, and adapt the software to changes in its execution environment. The typical software update process consists of stopping the system to be updated, performing the update of the code, and restarting the system. For systems such as banking and telecommunication software, however the cost of downtime can be prohibitive. The situation is even worse for systems such as air-traffic controllers and life-support software, for which a shut-down is in general not an option. In those cases, the use of some form of on-the-fly program modification is required. In this paper, we present a new technique for dynamic updating of Java software. Our technique is based oil the use of proxy classes and requires no support from the runtime system. The technique allows for updating a running Java program by substituting, adding, and deleting classes. We also present DUSC (dynamic updating through swapping of classes), a tool that we developed and that implements our technique. Finally, we describe an empirical study that we performed to validate the technique of a real Java subject. The results of the study show that our technique can be effectively applied to Java software with only little overhead in both execution time and program size.
{"title":"A technique for dynamic updating of Java software","authors":"A. Orso, Anup B. Rao, M. J. Harrold","doi":"10.1109/ICSM.2002.1167829","DOIUrl":"https://doi.org/10.1109/ICSM.2002.1167829","url":null,"abstract":"During maintenance, systems are updated to correct faults, improve functionality, and adapt the software to changes in its execution environment. The typical software update process consists of stopping the system to be updated, performing the update of the code, and restarting the system. For systems such as banking and telecommunication software, however the cost of downtime can be prohibitive. The situation is even worse for systems such as air-traffic controllers and life-support software, for which a shut-down is in general not an option. In those cases, the use of some form of on-the-fly program modification is required. In this paper, we present a new technique for dynamic updating of Java software. Our technique is based oil the use of proxy classes and requires no support from the runtime system. The technique allows for updating a running Java program by substituting, adding, and deleting classes. We also present DUSC (dynamic updating through swapping of classes), a tool that we developed and that implements our technique. Finally, we describe an empirical study that we performed to validate the technique of a real Java subject. The results of the study show that our technique can be effectively applied to Java software with only little overhead in both execution time and program size.","PeriodicalId":385190,"journal":{"name":"International Conference on Software Maintenance, 2002. Proceedings.","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2002-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123554593","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2002-10-03DOI: 10.1109/ICSM.2002.1167743
Árpád Beszédes, Csaba Faragó, Z. Szabó, J. Csirik, T. Gyimóthy
Owing to their relative simplicity and wide range of applications, static slices are specifically proposed for software maintenance and program understanding. Unfortunately, in many cases static slices are overly conservative and therefore too large to supply useful information to the software maintainer. Dynamic slicing methods can produce more precise results, but only for one test case. In this paper we introduce the concept of union slices (the union of dynamic slices for many test cases) and suggest using a combination of static and union slices. This way the size of program parts that need to be investigated can be reduced by concentrating on the most important parts first. We performed a series of experiments with our experimental implementation on three medium size C programs. Our initial results suggest that union slices are in most cases far smaller than static slices, and that the growth rate of union slices (by adding more test cases) significantly declines after several representative executions of the program.
{"title":"Union slices for program maintenance","authors":"Árpád Beszédes, Csaba Faragó, Z. Szabó, J. Csirik, T. Gyimóthy","doi":"10.1109/ICSM.2002.1167743","DOIUrl":"https://doi.org/10.1109/ICSM.2002.1167743","url":null,"abstract":"Owing to their relative simplicity and wide range of applications, static slices are specifically proposed for software maintenance and program understanding. Unfortunately, in many cases static slices are overly conservative and therefore too large to supply useful information to the software maintainer. Dynamic slicing methods can produce more precise results, but only for one test case. In this paper we introduce the concept of union slices (the union of dynamic slices for many test cases) and suggest using a combination of static and union slices. This way the size of program parts that need to be investigated can be reduced by concentrating on the most important parts first. We performed a series of experiments with our experimental implementation on three medium size C programs. Our initial results suggest that union slices are in most cases far smaller than static slices, and that the growth rate of union slices (by adding more test cases) significantly declines after several representative executions of the program.","PeriodicalId":385190,"journal":{"name":"International Conference on Software Maintenance, 2002. Proceedings.","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2002-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114919826","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2002-10-03DOI: 10.1109/ICSM.2002.1167830
Michael Friedrich, G. Nusser, W. Küchlin
We introduce the use of mobile agents for maintaining distributed heterogeneous systems with respect to monitoring and configuration. Code mobility can ensure the maintainability even for small and/or partially connected devices and scalability for highly distributed systems. Our approach leads to a system which allows to describe the jobs to perform in an abstract way. This is supported by a generalization of system parameters as well as the use of a rule-based decision system to describe the behavior of a mobile agent and its tasks. Application scenarios deploying our approach are illustrated showing the integration of different systems from PCs to embedded devices and even fieldbus nodes. Finally, differences to other approaches are discussed.
{"title":"Maintenance of distributed systems with mobile agents","authors":"Michael Friedrich, G. Nusser, W. Küchlin","doi":"10.1109/ICSM.2002.1167830","DOIUrl":"https://doi.org/10.1109/ICSM.2002.1167830","url":null,"abstract":"We introduce the use of mobile agents for maintaining distributed heterogeneous systems with respect to monitoring and configuration. Code mobility can ensure the maintainability even for small and/or partially connected devices and scalability for highly distributed systems. Our approach leads to a system which allows to describe the jobs to perform in an abstract way. This is supported by a generalization of system parameters as well as the use of a rule-based decision system to describe the behavior of a mobile agent and its tasks. Application scenarios deploying our approach are illustrated showing the integration of different systems from PCs to embedded devices and even fieldbus nodes. Finally, differences to other approaches are discussed.","PeriodicalId":385190,"journal":{"name":"International Conference on Software Maintenance, 2002. Proceedings.","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2002-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129922250","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2002-10-03DOI: 10.1109/ICSM.2002.1167814
Ying Zou, K. Kontogiannis
It has become evident that the benefits of object orientation warrant the design and development of reengineering methods that aim to migrate legacy procedural systems to modern object oriented platforms. However, most research efforts in this direction focus mostly on the extraction of an object model from the legacy procedural code without taking into account quality requirements for the target migrant system. This paper presents a reengineering workbench that allows for quality requirements of the target system to be modeled as soft-goals and software transformations to be applied selectively towards achieving specific quality requirements for the target system. In this context, the migration process is denoted by a sequence of transformations that alter the state of the system being reengineered. A Markov model approach and the Viterbi algorithm are used to identify the optimal sequence of transformations that can be applied at any given state of the migration process. For the evaluation of the proposed workbench, a migration experiment of gnu AVL tree libraries is presented.
{"title":"Migration to object oriented platforms: a state transformation approach","authors":"Ying Zou, K. Kontogiannis","doi":"10.1109/ICSM.2002.1167814","DOIUrl":"https://doi.org/10.1109/ICSM.2002.1167814","url":null,"abstract":"It has become evident that the benefits of object orientation warrant the design and development of reengineering methods that aim to migrate legacy procedural systems to modern object oriented platforms. However, most research efforts in this direction focus mostly on the extraction of an object model from the legacy procedural code without taking into account quality requirements for the target migrant system. This paper presents a reengineering workbench that allows for quality requirements of the target system to be modeled as soft-goals and software transformations to be applied selectively towards achieving specific quality requirements for the target system. In this context, the migration process is denoted by a sequence of transformations that alter the state of the system being reengineered. A Markov model approach and the Viterbi algorithm are used to identify the optimal sequence of transformations that can be applied at any given state of the migration process. For the evaluation of the proposed workbench, a migration experiment of gnu AVL tree libraries is presented.","PeriodicalId":385190,"journal":{"name":"International Conference on Software Maintenance, 2002. Proceedings.","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2002-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128782865","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2002-10-03DOI: 10.1109/ICSM.2002.1167782
H. Sneed
The purpose of the work presented here is to convert the design documentation of procedural application systems into an object-oriented design for the purpose of populating an object-oriented repository. The prerequisite is to have a single design representation-the object model as specified in the OMG Unified Modeling Language. That entails transforming procedural programs into class hierarchies as described in this paper. The technique used is an adaptation of the dominance tree approach described in previous papers from Burd and Munro combined with the precedence graphs proposed by Horwitz and Reps.
{"title":"Transforming procedural program structures to object-oriented class structures for the purpose of populating a common software repository","authors":"H. Sneed","doi":"10.1109/ICSM.2002.1167782","DOIUrl":"https://doi.org/10.1109/ICSM.2002.1167782","url":null,"abstract":"The purpose of the work presented here is to convert the design documentation of procedural application systems into an object-oriented design for the purpose of populating an object-oriented repository. The prerequisite is to have a single design representation-the object model as specified in the OMG Unified Modeling Language. That entails transforming procedural programs into class hierarchies as described in this paper. The technique used is an adaptation of the dominance tree approach described in previous papers from Burd and Munro combined with the precedence graphs proposed by Horwitz and Reps.","PeriodicalId":385190,"journal":{"name":"International Conference on Software Maintenance, 2002. Proceedings.","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2002-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128656995","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2002-10-03DOI: 10.1109/ICSM.2002.1167801
V. Rajlich, Prashant Gosavi
Incremental changes add new functionality and properties to software. They are the core of software evolution, maintenance, iterative development, agile development, and similar software processes. This paper presents a technique for unanticipated incremental software change and a case study. The technique uses programming concepts as the foundation, and contains steps of concept location, actualization, incorporation, and change propagation. The case study presents an unanticipated change in the open source software "Drawlets".
{"title":"A case study of unanticipated incremental change","authors":"V. Rajlich, Prashant Gosavi","doi":"10.1109/ICSM.2002.1167801","DOIUrl":"https://doi.org/10.1109/ICSM.2002.1167801","url":null,"abstract":"Incremental changes add new functionality and properties to software. They are the core of software evolution, maintenance, iterative development, agile development, and similar software processes. This paper presents a technique for unanticipated incremental software change and a case study. The technique uses programming concepts as the foundation, and contains steps of concept location, actualization, incorporation, and change propagation. The case study presents an unanticipated change in the open source software \"Drawlets\".","PeriodicalId":385190,"journal":{"name":"International Conference on Software Maintenance, 2002. Proceedings.","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2002-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124219125","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2002-10-03DOI: 10.1109/ICSM.2002.1167750
J. Munson
Software systems change dramatically as they go through their various stages of development. From the first build of each such system to the last build the differences may be so great as to obscure the fact that it is still the same system. Developers commonly make this mistake when they talk about the system that they are developing. It might be referred to as the "File Management System" or whatever name seems to describe the software. This seems to imply that there is but one File Management System. The fact that is obscured when we talk about the File Management System is that today's build of the File Management System is probably vastly different in composition and in functionality from the original first-born File Management System of the first system build. We would like to be able to quantify the differences in the system from its first build, through all builds to the current one. Then and only then will it be possible to know how these systems have changed. The focus of my recent research in software maintenance has been in the area of measurement of software evolution. This research has led to some interesting empirical results that have direct implications for Lehman's eight laws of software evolution. Not all aspects of these eight laws of software evolution lend themselves to direct measurement. In particular the First Law suggests that a system must be continually adapted. This law is driven by forces outside of the software development arena that are very difficult to quantify. The third law is very similar from a measurement perspective. Self regulation is again a property that is attributable to outside forces. The 8th law is confined to the feedback systems nature of the processes controlling software evolution. This, again, is outside the purview of direct measurement. The remaining five laws do lend themselves to direct measurement from the products of software evolution. The main problem with measuring evolving software is that software systems have multiple attribute domains that are changing simultaneously. The size of a program changes. The data structures of that program change. The control complexity changes. In essence, measuring the software evolution process is a multivariate problem. The measurement of an evolving software system through the shifting sands of time is not an easy task. Perhaps one of the most difficult issues relates to the establishment of a baseline against which the evolving systems may be compared. When a number of successive system builds are to be measured, we will choose one of the systems as a baseline system. All others will be measured in relation to the chosen system. Sometimes it will be useful to select the initial system build for this baseline. If we select this system, then the measurements on all other systems will be taken in relation to the initial system configuration. Within this context, laws 4, 5, and 6 lend themselves directly to measurement directly from a baseline system. D
{"title":"Implications of software measurement to Lehman's eight laws","authors":"J. Munson","doi":"10.1109/ICSM.2002.1167750","DOIUrl":"https://doi.org/10.1109/ICSM.2002.1167750","url":null,"abstract":"Software systems change dramatically as they go through their various stages of development. From the first build of each such system to the last build the differences may be so great as to obscure the fact that it is still the same system. Developers commonly make this mistake when they talk about the system that they are developing. It might be referred to as the \"File Management System\" or whatever name seems to describe the software. This seems to imply that there is but one File Management System. The fact that is obscured when we talk about the File Management System is that today's build of the File Management System is probably vastly different in composition and in functionality from the original first-born File Management System of the first system build. We would like to be able to quantify the differences in the system from its first build, through all builds to the current one. Then and only then will it be possible to know how these systems have changed. The focus of my recent research in software maintenance has been in the area of measurement of software evolution. This research has led to some interesting empirical results that have direct implications for Lehman's eight laws of software evolution. Not all aspects of these eight laws of software evolution lend themselves to direct measurement. In particular the First Law suggests that a system must be continually adapted. This law is driven by forces outside of the software development arena that are very difficult to quantify. The third law is very similar from a measurement perspective. Self regulation is again a property that is attributable to outside forces. The 8th law is confined to the feedback systems nature of the processes controlling software evolution. This, again, is outside the purview of direct measurement. The remaining five laws do lend themselves to direct measurement from the products of software evolution. The main problem with measuring evolving software is that software systems have multiple attribute domains that are changing simultaneously. The size of a program changes. The data structures of that program change. The control complexity changes. In essence, measuring the software evolution process is a multivariate problem. The measurement of an evolving software system through the shifting sands of time is not an easy task. Perhaps one of the most difficult issues relates to the establishment of a baseline against which the evolving systems may be compared. When a number of successive system builds are to be measured, we will choose one of the systems as a baseline system. All others will be measured in relation to the chosen system. Sometimes it will be useful to select the initial system build for this baseline. If we select this system, then the measurements on all other systems will be taken in relation to the initial system configuration. Within this context, laws 4, 5, and 6 lend themselves directly to measurement directly from a baseline system. D","PeriodicalId":385190,"journal":{"name":"International Conference on Software Maintenance, 2002. Proceedings.","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2002-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132134889","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2002-10-03DOI: 10.1109/ICSM.2002.1167752
J. F. Ramil
Empirical support for the laws of software evolution cannot be rigorously tested as long as they are stated in natural language [1, 2]. Let’s consider the laws that directly relate to measurable phenomena (law 1 to 7) the eighth law “feedback system” is for the moment excluded of this discussion. Let’s assume that sufficient empirical data is available. One approach that has been used to assess the empirical support for the first seven laws uses quantitative models that are consistent with the laws. One fits such models to the empirical data and assesses the magnitude of the residuals. If these are small, the law will be supported by the data. If not, the law will remain unsupported. To illustrate this approach, let’s consider the 6th law “continuing growth”, which states that “the functional capability of E-type systems must be continually increased to maintain user satisfaction over the system lifetime”. Possible formal models of the law include the following: S(i) = a.i+b Eq. 1 S(i) = S(i-1)+e/[S(i-1)] Eq. 2 S(t) = t Eq. 3 where S represents the size of a system measured, for example, in number of modules, t is the age of the system, and i is the release sequence number. a, b, g, and e are parameters suitably chosen to minimise the fitting error. Eqs. 1-3 provide models of system growth. In fact, Eq. 1 replicates the linear growth pattern of OS 360 (rsn 1-19). Eqs. 2 and 3 replicate within segments the growth of systems studied in FEAST [3, 4]. However, Eqs. 1-3 imply additional detail than that in the statement of the 6 law. Each model prescribes a particular type of growth trajectory. The law prescribes none. For this reason none of the models in isolation will be sufficient if used with the sole purpose of testing the 6th law. Data suggesting a trajectory, different than that of Eqs. 1-3, as for example in [5], is still supportive of the law. Models such as those of Eqs. 1-3 in isolation are not proper tests. A workaround to this problem uses a formalism that considers the phenomenon at a higher level of abstraction than that implied by conventional quantitative modelling, such as qualitative differential equations (QDE) [6]. For example, the 6th law can be expressed in QDE form as: dS/dt = M(t) Eq. 4 M represents any monotonically increasing function. A simple test based on Eq. 4 evaluates S(t) – S(t-1) over the whole data set and checks whether they are greater than zero. If so, the data supports the law. Since a superimposed ripple have been observed in growth patterns [1], data smoothing techniques may have to be applied before the test. However, the fuller potential of the qualitative simulation techniques becomes apparent if one considers that the laws are interrelated. The combined action of the forces implied by the laws may lead to more complex behaviours than monotonic increase or decrease. In order to address this, one can write several QDEs formalising several “measurable” laws. The resulting system of QDEs can be simulated [6,
{"title":"Laws of software evolution and their empirical support","authors":"J. F. Ramil","doi":"10.1109/ICSM.2002.1167752","DOIUrl":"https://doi.org/10.1109/ICSM.2002.1167752","url":null,"abstract":"Empirical support for the laws of software evolution cannot be rigorously tested as long as they are stated in natural language [1, 2]. Let’s consider the laws that directly relate to measurable phenomena (law 1 to 7) the eighth law “feedback system” is for the moment excluded of this discussion. Let’s assume that sufficient empirical data is available. One approach that has been used to assess the empirical support for the first seven laws uses quantitative models that are consistent with the laws. One fits such models to the empirical data and assesses the magnitude of the residuals. If these are small, the law will be supported by the data. If not, the law will remain unsupported. To illustrate this approach, let’s consider the 6th law “continuing growth”, which states that “the functional capability of E-type systems must be continually increased to maintain user satisfaction over the system lifetime”. Possible formal models of the law include the following: S(i) = a.i+b Eq. 1 S(i) = S(i-1)+e/[S(i-1)] Eq. 2 S(t) = t Eq. 3 where S represents the size of a system measured, for example, in number of modules, t is the age of the system, and i is the release sequence number. a, b, g, and e are parameters suitably chosen to minimise the fitting error. Eqs. 1-3 provide models of system growth. In fact, Eq. 1 replicates the linear growth pattern of OS 360 (rsn 1-19). Eqs. 2 and 3 replicate within segments the growth of systems studied in FEAST [3, 4]. However, Eqs. 1-3 imply additional detail than that in the statement of the 6 law. Each model prescribes a particular type of growth trajectory. The law prescribes none. For this reason none of the models in isolation will be sufficient if used with the sole purpose of testing the 6th law. Data suggesting a trajectory, different than that of Eqs. 1-3, as for example in [5], is still supportive of the law. Models such as those of Eqs. 1-3 in isolation are not proper tests. A workaround to this problem uses a formalism that considers the phenomenon at a higher level of abstraction than that implied by conventional quantitative modelling, such as qualitative differential equations (QDE) [6]. For example, the 6th law can be expressed in QDE form as: dS/dt = M(t) Eq. 4 M represents any monotonically increasing function. A simple test based on Eq. 4 evaluates S(t) – S(t-1) over the whole data set and checks whether they are greater than zero. If so, the data supports the law. Since a superimposed ripple have been observed in growth patterns [1], data smoothing techniques may have to be applied before the test. However, the fuller potential of the qualitative simulation techniques becomes apparent if one considers that the laws are interrelated. The combined action of the forces implied by the laws may lead to more complex behaviours than monotonic increase or decrease. In order to address this, one can write several QDEs formalising several “measurable” laws. The resulting system of QDEs can be simulated [6, ","PeriodicalId":385190,"journal":{"name":"International Conference on Software Maintenance, 2002. Proceedings.","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2002-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129860714","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2002-10-03DOI: 10.1109/ICSM.2002.1167784
P. Tonella, F. Ricca, E. Pianta, Christian Girardi
Current practice of Web site development does not address explicitly the problems related to multilingual sites. The same information, as well as the same navigation paths, page formatting and organization, are expected to be provided by the site independently from the chosen language. This is typically ensured by adopting personal conventions on the way pages are named and on their location in the file system. Updates are then performed manually and consistency depends on the ability of the programmers not to miss any impact of the change. In this paper an extension to XHTML, called MLHTML (MultiLingual XHTML), is proposed as the target representation of a restructuring process aimed at producing a maintainable and consistent multilingual Web site. MLHTML centralizes the language dependent variants of a page in a single representation, where shared parts are not duplicated Existing sites can be migrated to MLHTML by means of the algorithms described in this paper. After classifying the pages according to their language, a page alignment technique is exploited to identify corresponding pages and to eliminate inconsistencies. Transformation into MLHTML can then be achieved automatically.
{"title":"Restructuring multilingual web sites","authors":"P. Tonella, F. Ricca, E. Pianta, Christian Girardi","doi":"10.1109/ICSM.2002.1167784","DOIUrl":"https://doi.org/10.1109/ICSM.2002.1167784","url":null,"abstract":"Current practice of Web site development does not address explicitly the problems related to multilingual sites. The same information, as well as the same navigation paths, page formatting and organization, are expected to be provided by the site independently from the chosen language. This is typically ensured by adopting personal conventions on the way pages are named and on their location in the file system. Updates are then performed manually and consistency depends on the ability of the programmers not to miss any impact of the change. In this paper an extension to XHTML, called MLHTML (MultiLingual XHTML), is proposed as the target representation of a restructuring process aimed at producing a maintainable and consistent multilingual Web site. MLHTML centralizes the language dependent variants of a page in a single representation, where shared parts are not duplicated Existing sites can be migrated to MLHTML by means of the algorithms described in this paper. After classifying the pages according to their language, a page alignment technique is exploited to identify corresponding pages and to eliminate inconsistencies. Transformation into MLHTML can then be achieved automatically.","PeriodicalId":385190,"journal":{"name":"International Conference on Software Maintenance, 2002. Proceedings.","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2002-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125499786","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}