Laura Semini - Academia.edu (original) (raw)
Papers by Laura Semini
Journal of Systems and Software
The feature interaction problem has been recognized as a general problem of software engineering,... more The feature interaction problem has been recognized as a general problem of software engineering, whenever one wants to reap the advantages of incremental development. In this context, a feature is a unit of change to be integrated in a new version of the system under development, and the problem is that new features may interact with others in unexpected ways. We introduce a common abstract model, to be built during early requirement analysis in a feature oriented development. The model is common, since all the features share it, and is an abstraction of the behavioural model retaining only what is needed to characterize the features with respect to their possible interactions. The basic constituents are the abstract resources that the features access in their operations, the access mode (read or write), and the reason of each access. Given the model, the interactions between the features are automatically detected, and the goal oriented characterization of the features provides th...
The feature interaction problem has been recognized as a general problem of software engineering,... more The feature interaction problem has been recognized as a general problem of software engineering, whenever one wants to reap the advantages of incremental development. In this context, a feature is a unit of change to be integrated in a new version of the system under development, and the problem is that new features may interact with the others in unexpected ways. We introduce a common abstract model, to be built during early requirement analysis in a feature oriented development. The model is common, since all the features share it, and is an abstraction of the behavioural model retaining only what is needed to characterize each feature with respect to their possible interactions. The basic constituents are the abstract resources that the features access in their operations, the access mode (read or write), and the reason of each access. Given the model, the interactions between the features are automatically detected, and the goal oriented characterization of the features provide...
Logic, Computation and Rigorous Methods, 2021
We consider two of the best practices of software development, namely, the distributed proxy patt... more We consider two of the best practices of software development, namely, the distributed proxy pattern and the documentation of the software architecture in multiple complementary views, and present a process to integrate them and generate the structure of the software design, organized in multiple views, too. The intent is to facilitate the achievement of the quality objectives of separation of concerns, portability, and modifiability that a good design should possess. The process alternates steps in which the views are enriched with containers for model elements, which are inserted in following steps. Hence, the title of the paper.
This paper describes a research activity aiming at extracting variability information from ambigu... more This paper describes a research activity aiming at extracting variability information from ambiguities and vagueness of generic requirement documents, written in Natural Language. The proposed activity continues a research stream focusing on techniques to extract variability information from requirement documents. Here, we study the introduction of a process able to distinguish structural from functional variability, both in the extracted variability model and in the derived lower-level requirements. The problem is stated with reference to an example, a solution proposal is sketched together with related research questions, and a validation path is envisaged.
Formal methods are increasingly used to validate the design of software and hardware components o... more Formal methods are increasingly used to validate the design of software and hardware components of safety critical systems. We describe here a case study where a formal verification method was applied in practice. As a case study we have considered a safe interaction policy between communicating objects, the Multiple Levels of Integrity policy. This policy can be seen as a communication protocol that guarantees the integrity of sensible data. Formal specification is given using a process algebra, and validation is done following a model checking approach. EMAIL:: gnesi@iei.pi.cnr.it
The feature interaction problem has been recognized as a general problem of software engineering.... more The feature interaction problem has been recognized as a general problem of software engineering. The problem appears when a combination of features interacts generating a conflict, exhibiting a behaviour that is unexpected for the features considered in isolation, possibly resulting in some critical safety violation. Verification of absence of critical feature interactions has been the subject of several studies. In this paper, we focus on functional interactions and we address the problem of the 3-way feature interactions, i.e. interactions that occur only when three features are all included in the system, but not when only two of them are. In this setting, we define a widely applicable definition framework, within which we show that a 3 (or greater)-way interaction is always caused by a 2-way interaction, i.e. that pairwise sampling is complete, hence reducing to quadratic the complexity of automatic detection of incorrect interaction.
Proceedings of the 25th ACM International Systems and Software Product Line Conference - Volume B, 2021
In previous work, we have shown that ambiguity detection in requirements can also be used as a wa... more In previous work, we have shown that ambiguity detection in requirements can also be used as a way to capture latent aspects of variability. Natural Language Processing (NLP) tools have been used for a lexical analysis aimed at ambiguity indicators detection, and we have studied the necessary adaptations to those tools for pointing at potential variability, essentially by adding specific dictionaries for variability. We have identified also some syntactic rules able to detect potential variability, such as disjunction between nouns or pairs of indicators in a subordinate proposition. This paper describes a new prototype NLP tool, based on the spaCy library, specifically designed to detect variability. The prototype is shown to preserve the same recall exhibited by previously used lexical tools, with a higher precision.
Integrating Research and Practice in Software Engineering, 2019
Natural language (NL) requirements documents are often ambiguous, and this is considered as a sou... more Natural language (NL) requirements documents are often ambiguous, and this is considered as a source of problems in the later interpretation of requirements. Ambiguity detection tools have been developed with the objective of improving the quality of requirement documents. However, defects as vagueness, optionality, weakness and multiplicity at requirements level can in some cases give an indication of possible variability, either in design and in implementation choices or configurability decisions. Variability information is actually the seed of the software engineering development practice aiming at building families of related systems, known as software product lines. Building on the results of previous analyses conducted on large and real word requirement documents, with QuARS NL analysis tool, we provide here a classification of the forms of ambiguity that indicate variation points, and we illustrate the practical aspects of the approach by means of a simple running example. To provide a more complete description of a line of software products, it is necessary to extrapolate, in addition to variability, also the common elements. To this end we propose here to take advantage of the capabilities of the REGICE tool to extract and cluster the glossary terms from the requirement documents. In summary, we introduce the combined application of two different NL processing tools to extract features and variability and use them to model a software product line.
Proceedings of the Eleventh International Workshop on Variability Modelling of Software-intensive Systems, 2017
Software requirements are generally expressed in Natural Language. NL is intrinsically ambiguous,... more Software requirements are generally expressed in Natural Language. NL is intrinsically ambiguous, and this is seen as a possible source of problems in the later interpretation of requirements. However, ambiguity or under-specification at requirements level can in some cases give an indication of possible variability, either in design choice, in implementation choices or configurability. Taking into account the results of previous analyses conducted on different requirements documents with NL analysis tools, we attempt a first classification of the forms of ambiguity that indicate variation points, and we indicate an approach to achieve automated support to variability elicitation. CCS Concepts •Software and its engineering → Requirements analysis; Software product lines;
Proceedings of the 12th International Workshop on Variability Modelling of Software-Intensive Systems, 2018
Natural language (NL) requirements documents can be a precious source to identify variability inf... more Natural language (NL) requirements documents can be a precious source to identify variability information. This information can be later used to define feature models from which different systems can be instantiated. In this paper, we are interested in validating the approach we have recently proposed to extract variability issues from the ambiguity defects found in NL requirement documents. To this end, we single out ambiguities using an available NL analysis tool, QuARS, and we classify the ambiguities returned by the tool by distinguishing among false positives, real ambiguities, and variation points. We consider three medium sized requirement documents from different domains, namely, train control, social web, home automation. We report in this paper the results of the assessment. Although the validation set is not so large, the results obtained are quite uniform and permit to draw some interesting conclusions. Starting from the results obtained, we can foresee the tailoring of a NL analysis tool for extracting variability from NL requirement documents.
Journal of Logical and Algebraic Methods in Programming, 2017
Bike-sharing systems (BSS) are a means of smart transportation with the benefit of a positive imp... more Bike-sharing systems (BSS) are a means of smart transportation with the benefit of a positive impact on urban mobility. To improve the satisfaction of a user of a BSS, it is useful to inform her/him on the status of the stations at run time, and indeed most of the current systems provide the information in terms of number of bicycles parked in each docking stations by means of services available via web. However, when the departure station is empty, the user could also be happy to know how the situation will evolve and, in particular, if a bike is going to arrive (and vice versa when the arrival station is full). To fulfill this expectation, we envisage services able to make a prediction and infer if there is in use a bike that could be, with high probability, returned at the station where she/he is waiting. The goal of this paper is hence to analyze the feasibility of these services. To this end, we put forward the idea of using Machine Learning methodologies, proposing and comparing different solutions.
Lecture Notes in Computer Science, 2017
The feature interaction problem has been recognized as a general problem of software engineering.... more The feature interaction problem has been recognized as a general problem of software engineering. The problem appears when a combination of features interacts generating a conflict, exhibiting a behaviour that is unexpected for the features considered in isolation, possibly resulting in some critical safety violation. Verification of absence of critical feature interactions has been the subject of several studies. In this paper, we focus on functional interactions and we address the problem of the 3-way feature interactions, i.e. interactions that occur only when three features are all included in the system, but not when only two of them are. In this setting, we define a widely applicable definition framework, within which we show that a 3 (or greater)-way interaction is always caused by a 2-way interaction, i.e. that pairwise sampling is complete, hence reducing to quadratic the complexity of automatic detection of incorrect interaction.
Lecture Notes in Computer Science, 2016
A smart transportation system can be seen as an aggregate of transportation opportunities and ser... more A smart transportation system can be seen as an aggregate of transportation opportunities and services, accompanied by advanced management services that make the access to the system easier for the user. In this paper, we exploit the product line paradigm to address the variability of an exemplary smart transportation system: a bike-sharing system. Improving the satisfaction of a user of a bike-sharing system includes providing information at runtime on the filling degree of the docking stations in the near future. To fulfill this expectation, a prediction service is needed to infer the probability that at a certain time of the day a user will return a bike to or take one from a station. In earlier studies, several possible advanced smart predictive services were identified. The choice of which services to offer to users by the managers of a bike-sharing system is influenced by minimizing the costs while maximizing customer satisfaction. To aid the managers, we modeled a family of smart bike-sharing services, after which an attributed feature model was used to augment the model with quantitative attributes related to cost and customer satisfaction, allowing for a multi-objective optimization by dedicated tools. We observe that the performance of the smart prediction services, and therefore of the related customer satisfaction, is highly dependent on the amount of collected historical data on which the predictive analysis is based. Therefore the result of the optimization also depends on this factor, which evolves over time.
International Conference on Feature Interactions in Software and Communication Systems, 2009
Policies are convenient means to modify system behaviour at run-time. Nowadays, policies are crea... more Policies are convenient means to modify system behaviour at run-time. Nowadays, policies are created in great numbers by different actors, ranging from system administrators to lay-users. However, this situation may lead naturally to inconsistencies, a problem that has been recognized and termed policy conflict. The adoption of a widely-used notation, with good tool support, to express the policies, can not only support the detection, but also help all the involved actors in understanding and resolving the conflicts. In this respect, a natural candidate is UML due to its current wide use in the industrial practice. In this paper we show how to model check policies expressed in UML to verify whether they are free of conflicts: we define a correspondence between APPEL policies and UML state machines and use UMC as a model checker. We validate the approach with examples taken from the literature.
Journal of Systems and Software
The feature interaction problem has been recognized as a general problem of software engineering,... more The feature interaction problem has been recognized as a general problem of software engineering, whenever one wants to reap the advantages of incremental development. In this context, a feature is a unit of change to be integrated in a new version of the system under development, and the problem is that new features may interact with others in unexpected ways. We introduce a common abstract model, to be built during early requirement analysis in a feature oriented development. The model is common, since all the features share it, and is an abstraction of the behavioural model retaining only what is needed to characterize the features with respect to their possible interactions. The basic constituents are the abstract resources that the features access in their operations, the access mode (read or write), and the reason of each access. Given the model, the interactions between the features are automatically detected, and the goal oriented characterization of the features provides th...
The feature interaction problem has been recognized as a general problem of software engineering,... more The feature interaction problem has been recognized as a general problem of software engineering, whenever one wants to reap the advantages of incremental development. In this context, a feature is a unit of change to be integrated in a new version of the system under development, and the problem is that new features may interact with the others in unexpected ways. We introduce a common abstract model, to be built during early requirement analysis in a feature oriented development. The model is common, since all the features share it, and is an abstraction of the behavioural model retaining only what is needed to characterize each feature with respect to their possible interactions. The basic constituents are the abstract resources that the features access in their operations, the access mode (read or write), and the reason of each access. Given the model, the interactions between the features are automatically detected, and the goal oriented characterization of the features provide...
Logic, Computation and Rigorous Methods, 2021
We consider two of the best practices of software development, namely, the distributed proxy patt... more We consider two of the best practices of software development, namely, the distributed proxy pattern and the documentation of the software architecture in multiple complementary views, and present a process to integrate them and generate the structure of the software design, organized in multiple views, too. The intent is to facilitate the achievement of the quality objectives of separation of concerns, portability, and modifiability that a good design should possess. The process alternates steps in which the views are enriched with containers for model elements, which are inserted in following steps. Hence, the title of the paper.
This paper describes a research activity aiming at extracting variability information from ambigu... more This paper describes a research activity aiming at extracting variability information from ambiguities and vagueness of generic requirement documents, written in Natural Language. The proposed activity continues a research stream focusing on techniques to extract variability information from requirement documents. Here, we study the introduction of a process able to distinguish structural from functional variability, both in the extracted variability model and in the derived lower-level requirements. The problem is stated with reference to an example, a solution proposal is sketched together with related research questions, and a validation path is envisaged.
Formal methods are increasingly used to validate the design of software and hardware components o... more Formal methods are increasingly used to validate the design of software and hardware components of safety critical systems. We describe here a case study where a formal verification method was applied in practice. As a case study we have considered a safe interaction policy between communicating objects, the Multiple Levels of Integrity policy. This policy can be seen as a communication protocol that guarantees the integrity of sensible data. Formal specification is given using a process algebra, and validation is done following a model checking approach. EMAIL:: gnesi@iei.pi.cnr.it
The feature interaction problem has been recognized as a general problem of software engineering.... more The feature interaction problem has been recognized as a general problem of software engineering. The problem appears when a combination of features interacts generating a conflict, exhibiting a behaviour that is unexpected for the features considered in isolation, possibly resulting in some critical safety violation. Verification of absence of critical feature interactions has been the subject of several studies. In this paper, we focus on functional interactions and we address the problem of the 3-way feature interactions, i.e. interactions that occur only when three features are all included in the system, but not when only two of them are. In this setting, we define a widely applicable definition framework, within which we show that a 3 (or greater)-way interaction is always caused by a 2-way interaction, i.e. that pairwise sampling is complete, hence reducing to quadratic the complexity of automatic detection of incorrect interaction.
Proceedings of the 25th ACM International Systems and Software Product Line Conference - Volume B, 2021
In previous work, we have shown that ambiguity detection in requirements can also be used as a wa... more In previous work, we have shown that ambiguity detection in requirements can also be used as a way to capture latent aspects of variability. Natural Language Processing (NLP) tools have been used for a lexical analysis aimed at ambiguity indicators detection, and we have studied the necessary adaptations to those tools for pointing at potential variability, essentially by adding specific dictionaries for variability. We have identified also some syntactic rules able to detect potential variability, such as disjunction between nouns or pairs of indicators in a subordinate proposition. This paper describes a new prototype NLP tool, based on the spaCy library, specifically designed to detect variability. The prototype is shown to preserve the same recall exhibited by previously used lexical tools, with a higher precision.
Integrating Research and Practice in Software Engineering, 2019
Natural language (NL) requirements documents are often ambiguous, and this is considered as a sou... more Natural language (NL) requirements documents are often ambiguous, and this is considered as a source of problems in the later interpretation of requirements. Ambiguity detection tools have been developed with the objective of improving the quality of requirement documents. However, defects as vagueness, optionality, weakness and multiplicity at requirements level can in some cases give an indication of possible variability, either in design and in implementation choices or configurability decisions. Variability information is actually the seed of the software engineering development practice aiming at building families of related systems, known as software product lines. Building on the results of previous analyses conducted on large and real word requirement documents, with QuARS NL analysis tool, we provide here a classification of the forms of ambiguity that indicate variation points, and we illustrate the practical aspects of the approach by means of a simple running example. To provide a more complete description of a line of software products, it is necessary to extrapolate, in addition to variability, also the common elements. To this end we propose here to take advantage of the capabilities of the REGICE tool to extract and cluster the glossary terms from the requirement documents. In summary, we introduce the combined application of two different NL processing tools to extract features and variability and use them to model a software product line.
Proceedings of the Eleventh International Workshop on Variability Modelling of Software-intensive Systems, 2017
Software requirements are generally expressed in Natural Language. NL is intrinsically ambiguous,... more Software requirements are generally expressed in Natural Language. NL is intrinsically ambiguous, and this is seen as a possible source of problems in the later interpretation of requirements. However, ambiguity or under-specification at requirements level can in some cases give an indication of possible variability, either in design choice, in implementation choices or configurability. Taking into account the results of previous analyses conducted on different requirements documents with NL analysis tools, we attempt a first classification of the forms of ambiguity that indicate variation points, and we indicate an approach to achieve automated support to variability elicitation. CCS Concepts •Software and its engineering → Requirements analysis; Software product lines;
Proceedings of the 12th International Workshop on Variability Modelling of Software-Intensive Systems, 2018
Natural language (NL) requirements documents can be a precious source to identify variability inf... more Natural language (NL) requirements documents can be a precious source to identify variability information. This information can be later used to define feature models from which different systems can be instantiated. In this paper, we are interested in validating the approach we have recently proposed to extract variability issues from the ambiguity defects found in NL requirement documents. To this end, we single out ambiguities using an available NL analysis tool, QuARS, and we classify the ambiguities returned by the tool by distinguishing among false positives, real ambiguities, and variation points. We consider three medium sized requirement documents from different domains, namely, train control, social web, home automation. We report in this paper the results of the assessment. Although the validation set is not so large, the results obtained are quite uniform and permit to draw some interesting conclusions. Starting from the results obtained, we can foresee the tailoring of a NL analysis tool for extracting variability from NL requirement documents.
Journal of Logical and Algebraic Methods in Programming, 2017
Bike-sharing systems (BSS) are a means of smart transportation with the benefit of a positive imp... more Bike-sharing systems (BSS) are a means of smart transportation with the benefit of a positive impact on urban mobility. To improve the satisfaction of a user of a BSS, it is useful to inform her/him on the status of the stations at run time, and indeed most of the current systems provide the information in terms of number of bicycles parked in each docking stations by means of services available via web. However, when the departure station is empty, the user could also be happy to know how the situation will evolve and, in particular, if a bike is going to arrive (and vice versa when the arrival station is full). To fulfill this expectation, we envisage services able to make a prediction and infer if there is in use a bike that could be, with high probability, returned at the station where she/he is waiting. The goal of this paper is hence to analyze the feasibility of these services. To this end, we put forward the idea of using Machine Learning methodologies, proposing and comparing different solutions.
Lecture Notes in Computer Science, 2017
The feature interaction problem has been recognized as a general problem of software engineering.... more The feature interaction problem has been recognized as a general problem of software engineering. The problem appears when a combination of features interacts generating a conflict, exhibiting a behaviour that is unexpected for the features considered in isolation, possibly resulting in some critical safety violation. Verification of absence of critical feature interactions has been the subject of several studies. In this paper, we focus on functional interactions and we address the problem of the 3-way feature interactions, i.e. interactions that occur only when three features are all included in the system, but not when only two of them are. In this setting, we define a widely applicable definition framework, within which we show that a 3 (or greater)-way interaction is always caused by a 2-way interaction, i.e. that pairwise sampling is complete, hence reducing to quadratic the complexity of automatic detection of incorrect interaction.
Lecture Notes in Computer Science, 2016
A smart transportation system can be seen as an aggregate of transportation opportunities and ser... more A smart transportation system can be seen as an aggregate of transportation opportunities and services, accompanied by advanced management services that make the access to the system easier for the user. In this paper, we exploit the product line paradigm to address the variability of an exemplary smart transportation system: a bike-sharing system. Improving the satisfaction of a user of a bike-sharing system includes providing information at runtime on the filling degree of the docking stations in the near future. To fulfill this expectation, a prediction service is needed to infer the probability that at a certain time of the day a user will return a bike to or take one from a station. In earlier studies, several possible advanced smart predictive services were identified. The choice of which services to offer to users by the managers of a bike-sharing system is influenced by minimizing the costs while maximizing customer satisfaction. To aid the managers, we modeled a family of smart bike-sharing services, after which an attributed feature model was used to augment the model with quantitative attributes related to cost and customer satisfaction, allowing for a multi-objective optimization by dedicated tools. We observe that the performance of the smart prediction services, and therefore of the related customer satisfaction, is highly dependent on the amount of collected historical data on which the predictive analysis is based. Therefore the result of the optimization also depends on this factor, which evolves over time.
International Conference on Feature Interactions in Software and Communication Systems, 2009
Policies are convenient means to modify system behaviour at run-time. Nowadays, policies are crea... more Policies are convenient means to modify system behaviour at run-time. Nowadays, policies are created in great numbers by different actors, ranging from system administrators to lay-users. However, this situation may lead naturally to inconsistencies, a problem that has been recognized and termed policy conflict. The adoption of a widely-used notation, with good tool support, to express the policies, can not only support the detection, but also help all the involved actors in understanding and resolving the conflicts. In this respect, a natural candidate is UML due to its current wide use in the industrial practice. In this paper we show how to model check policies expressed in UML to verify whether they are free of conflicts: we define a correspondence between APPEL policies and UML state machines and use UMC as a model checker. We validate the approach with examples taken from the literature.