A software requirements specification(SRS)is a detailed description of a software system to be developed.This paper proposes and evaluates a lightweight review approach called value-oriented review(VOR)to detect defec...A software requirements specification(SRS)is a detailed description of a software system to be developed.This paper proposes and evaluates a lightweight review approach called value-oriented review(VOR)to detect defects in SRS.This approach comprises setting core values based on SRS and detecting the defects disturbing the core values.To evaluate the effectiveness of the proposed approach,we conducted a controlled experiment to investigate whether reviewers could identify and record the core values based on SRS and find defects disturbing the core values.Results of the evaluation with 56 software engineers showed that 91%of the reviewers identified appropriate core values and 82%of the reviewers detected defects based on the identified core values.Furthermore,the average number of defects detected using the proposed approach was slightly smaller than that detected using perspective-based reading(PBR);however,PBR requires defining review scenarios before attempting to detect any defects.The results also demonstrated that the proposed approach helped reviewers detect the omission defects,which are more difficult to detect from SRS than defects because of ambiguity or incorrect requirements.展开更多
The standard software development life cycle heavily depends on requirements elicited from stakeholders. Based on those requirements, software development is planned and managed from its inception phase to closure. Du...The standard software development life cycle heavily depends on requirements elicited from stakeholders. Based on those requirements, software development is planned and managed from its inception phase to closure. Due to time and resource constraints, it is imperative to identify the high-priority requirements that need to be considered first during the software development process. Moreover, existing prioritization frameworks lack a store of historical data useful for selecting the most suitable prioritization technique of any similar project domain. In this paper, we propose a framework for prioritization of software requirements, called Re Pizer, to be used in conjunction with a selected prioritization technique to rank software requirements based on defined criteria such as implementation cost. ReP izer assists requirements engineers in a decision-making process by retrieving historical data from a requirements repository. Re Pizer also provides a panoramic view of the entire project to ensure the judicious use of software development resources. We compared the performance of Re Pizer in terms of expected accuracy and ease of use while separately adopting two different prioritization techniques, planning game(PG) and analytical hierarchy process(AHP). The results showed that Re Pizer performed better when used in conjunction with the PG technique.展开更多
Nowadays,software requirements are still mainly analyzed manually,which has many drawbacks(such as a large amount of labor consumption,inefficiency,and even inaccuracy of the results).The problems are even worse in do...Nowadays,software requirements are still mainly analyzed manually,which has many drawbacks(such as a large amount of labor consumption,inefficiency,and even inaccuracy of the results).The problems are even worse in domain analysis scenarios because a large number of requirements from many users need to be analyzed.In this sense,automatic analysis of software requirements can bring benefits to software companies.For this purpose,we proposed an approach to automatically analyze software requirement specifications(SRSs) and extract the semantic information.In this approach,a machine learning and ontology based semantic role labeling(SRL) method was used.First of all,some common verbs were calculated from SRS documents in the E-commerce domain,and then semantic frames were designed for those verbs.Based on the frames,sentences from SRSs were selected and labeled manually,and the labeled sentences were used as training examples in the machine learning stage.Besides the training examples labeled with semantic roles,external ontology knowledge was used to relieve the data sparsity problem and obtain reliable results.Based on the Sem Cor and Word Net corpus,the senses of nouns and verbs were identified in a sequential manner through the K-nearest neighbor approach.Then the senses of the verbs were used to identify the frame types.After that,we trained the SRL labeling classifier with the maximum entropy method,in which we added some new features based on word sense,such as the hypernyms and hyponyms of the word senses in the ontology.Experimental results show that this new approach for automatic functional requirements analysis is effective.展开更多
The quality of the software product is a crucial factor that contributes to its success. Therefore, it is important to specify the right software quality requirements that will establish the basis for desired quality ...The quality of the software product is a crucial factor that contributes to its success. Therefore, it is important to specify the right software quality requirements that will establish the basis for desired quality of the final system/software product. There are several known methodologies/ processes that support the specification of the system/software functional requirements starting from the user needs to finally obtain the system requirements that the developers can implement through their development process. System/software quality requirements are interdependent with functional requirements, which means that the system/software quality requirements are meant to be specified in parallel with the latter. The ISO/IEC 25000 [1] SQuaRE series of standards include the standard ISO/IEC 25030—Software engineering—Software Quality Requirements and Evaluation—Quality requirements [2], which has as main goal to help specify software quality requirements. As to date, this standard does not offer clear and concise steps that a software quality engineer could follow in order to specify them. This article presents modifications recommended for ISO/IEC 25030 standard, with, among the others, a new requirements definition process that allows for specifying the system/software quality requirements taking into account the existing published system and software quality model ISO/IEC 25010 [3] as well as all the stake- holders of the project.展开更多
Most software systems have different stakeholders with a variety of concerns.The process of collecting requirements from a large number of stakeholders is vital but challenging.We propose an efficient,automatic approa...Most software systems have different stakeholders with a variety of concerns.The process of collecting requirements from a large number of stakeholders is vital but challenging.We propose an efficient,automatic approach to collecting requirements from different stakeholders’responses to a specific question.We use natural language processing techniques to get the stakeholder response that represents most other stakeholders’responses.This study improves existing practices in three ways:Firstly,it reduces the human effort needed to collect the requirements;secondly,it reduces the time required to carry out this task with a large number of stakeholders;thirdly,it underlines the importance of using of data mining techniques in various software engineering steps.Our approach uses tokenization,stop word removal,and word lemmatization to create a list of frequently accruing words.It then creates a similarity matrix to calculate the score value for each response and selects the answer with the highest score.Our experiments show that using this approach significantly reduces the time and effort needed to collect requirements and does so with a sufficient degree of accuracy.展开更多
Considerable research has demonstrated how effective requirements engineering is critical for the success of software projects.Requirements engineering has been established and recognized as one of the most important ...Considerable research has demonstrated how effective requirements engineering is critical for the success of software projects.Requirements engineering has been established and recognized as one of the most important aspects of software engineering as of late.It is noteworthy to mention that requirement consistency is a critical factor in project success,and conflicts in requirements lead to waste of cost,time,and effort.A considerable number of research studies have shown the risks and problems caused by working with requirements that are in conflict with other requirements.These risks include running overtime or over budget,which may lead to project failure.At the very least,it would result in the extra expended effort.Various studies have also stated that failure in managing requirement conflicts is one of the main reasons for unsuccessful software projects due to high cost and insufficient time.Many prior research studies have proposed manual techniques to detect conflicts,whereas other research recommends automated approaches based on human analysis.Moreover,there are different resolutions for conflicting requirements.Our previous work proposed a scheme for dealing with this problem using a novel intelligent method to detect conflicts and resolve them.A rule-based system was proposed to identify conflicts in requirements,and a genetic algorithm(GA)was used to resolve conflicts.The objective of this work is to assess and evaluate the implementation of the method of minimizing the number of conflicts in the requirements.The methodology implemented comprises two different stages.The first stage,detecting conflicts using a rule-based system,demonstrated a correct result with 100% accuracy.The evaluation of using the GA to resolve and reduce conflicts in the second stage also displayed a good result and achieved the desired goal as well as the main objective of the research.展开更多
In large software development projects, there is always a need for refactoring and optimization of the design. Usually software designs are represented using UML diagrams (e.g., class diagrams). A software engineering...In large software development projects, there is always a need for refactoring and optimization of the design. Usually software designs are represented using UML diagrams (e.g., class diagrams). A software engineering team may create multiple versions of class diagrams satisfying some external constraints. In some cases, subdiagrams of the developed diagrams can be selected and combined into one diagram. It is difficult to perform this task manually since the manual process is very time consuming, is prone to human errors, and is not manageable for large projects. In this paper, we present algorithmic support for automating the generation of composing diagrams, where the composed diagram satisfies a given collection of external constraints and is optimal with respect to a given objective function. The composition of diagrams is based on the colimit operation from category theory. The developed approach was verified experimentally by generating random external constraints (expressed in SPARQL and OWL), generating random class diagrams using these external constraints, generating composed diagrams that satisfy these external constraints and computing class diagram metrics for each composed diagram.展开更多
基金This study was supported by the 2020 TSUBAME project of Tokyo Institute of Technology(Grant No.20D10597).
文摘A software requirements specification(SRS)is a detailed description of a software system to be developed.This paper proposes and evaluates a lightweight review approach called value-oriented review(VOR)to detect defects in SRS.This approach comprises setting core values based on SRS and detecting the defects disturbing the core values.To evaluate the effectiveness of the proposed approach,we conducted a controlled experiment to investigate whether reviewers could identify and record the core values based on SRS and find defects disturbing the core values.Results of the evaluation with 56 software engineers showed that 91%of the reviewers identified appropriate core values and 82%of the reviewers detected defects based on the identified core values.Furthermore,the average number of defects detected using the proposed approach was slightly smaller than that detected using perspective-based reading(PBR);however,PBR requires defining review scenarios before attempting to detect any defects.The results also demonstrated that the proposed approach helped reviewers detect the omission defects,which are more difficult to detect from SRS than defects because of ambiguity or incorrect requirements.
基金Project supported by the Ministry of Education,Malaysia(No UM.C/625/1/HIR/MOHE/FCSIT/13)the Bright Sparks Program of University of Malaya,Malaysia(No.BSP-151(3)11)
文摘The standard software development life cycle heavily depends on requirements elicited from stakeholders. Based on those requirements, software development is planned and managed from its inception phase to closure. Due to time and resource constraints, it is imperative to identify the high-priority requirements that need to be considered first during the software development process. Moreover, existing prioritization frameworks lack a store of historical data useful for selecting the most suitable prioritization technique of any similar project domain. In this paper, we propose a framework for prioritization of software requirements, called Re Pizer, to be used in conjunction with a selected prioritization technique to rank software requirements based on defined criteria such as implementation cost. ReP izer assists requirements engineers in a decision-making process by retrieving historical data from a requirements repository. Re Pizer also provides a panoramic view of the entire project to ensure the judicious use of software development resources. We compared the performance of Re Pizer in terms of expected accuracy and ease of use while separately adopting two different prioritization techniques, planning game(PG) and analytical hierarchy process(AHP). The results showed that Re Pizer performed better when used in conjunction with the PG technique.
基金the National Natural Science Foundation of China(No.61375053)
文摘Nowadays,software requirements are still mainly analyzed manually,which has many drawbacks(such as a large amount of labor consumption,inefficiency,and even inaccuracy of the results).The problems are even worse in domain analysis scenarios because a large number of requirements from many users need to be analyzed.In this sense,automatic analysis of software requirements can bring benefits to software companies.For this purpose,we proposed an approach to automatically analyze software requirement specifications(SRSs) and extract the semantic information.In this approach,a machine learning and ontology based semantic role labeling(SRL) method was used.First of all,some common verbs were calculated from SRS documents in the E-commerce domain,and then semantic frames were designed for those verbs.Based on the frames,sentences from SRSs were selected and labeled manually,and the labeled sentences were used as training examples in the machine learning stage.Besides the training examples labeled with semantic roles,external ontology knowledge was used to relieve the data sparsity problem and obtain reliable results.Based on the Sem Cor and Word Net corpus,the senses of nouns and verbs were identified in a sequential manner through the K-nearest neighbor approach.Then the senses of the verbs were used to identify the frame types.After that,we trained the SRL labeling classifier with the maximum entropy method,in which we added some new features based on word sense,such as the hypernyms and hyponyms of the word senses in the ontology.Experimental results show that this new approach for automatic functional requirements analysis is effective.
文摘The quality of the software product is a crucial factor that contributes to its success. Therefore, it is important to specify the right software quality requirements that will establish the basis for desired quality of the final system/software product. There are several known methodologies/ processes that support the specification of the system/software functional requirements starting from the user needs to finally obtain the system requirements that the developers can implement through their development process. System/software quality requirements are interdependent with functional requirements, which means that the system/software quality requirements are meant to be specified in parallel with the latter. The ISO/IEC 25000 [1] SQuaRE series of standards include the standard ISO/IEC 25030—Software engineering—Software Quality Requirements and Evaluation—Quality requirements [2], which has as main goal to help specify software quality requirements. As to date, this standard does not offer clear and concise steps that a software quality engineer could follow in order to specify them. This article presents modifications recommended for ISO/IEC 25030 standard, with, among the others, a new requirements definition process that allows for specifying the system/software quality requirements taking into account the existing published system and software quality model ISO/IEC 25010 [3] as well as all the stake- holders of the project.
文摘Most software systems have different stakeholders with a variety of concerns.The process of collecting requirements from a large number of stakeholders is vital but challenging.We propose an efficient,automatic approach to collecting requirements from different stakeholders’responses to a specific question.We use natural language processing techniques to get the stakeholder response that represents most other stakeholders’responses.This study improves existing practices in three ways:Firstly,it reduces the human effort needed to collect the requirements;secondly,it reduces the time required to carry out this task with a large number of stakeholders;thirdly,it underlines the importance of using of data mining techniques in various software engineering steps.Our approach uses tokenization,stop word removal,and word lemmatization to create a list of frequently accruing words.It then creates a similarity matrix to calculate the score value for each response and selects the answer with the highest score.Our experiments show that using this approach significantly reduces the time and effort needed to collect requirements and does so with a sufficient degree of accuracy.
文摘Considerable research has demonstrated how effective requirements engineering is critical for the success of software projects.Requirements engineering has been established and recognized as one of the most important aspects of software engineering as of late.It is noteworthy to mention that requirement consistency is a critical factor in project success,and conflicts in requirements lead to waste of cost,time,and effort.A considerable number of research studies have shown the risks and problems caused by working with requirements that are in conflict with other requirements.These risks include running overtime or over budget,which may lead to project failure.At the very least,it would result in the extra expended effort.Various studies have also stated that failure in managing requirement conflicts is one of the main reasons for unsuccessful software projects due to high cost and insufficient time.Many prior research studies have proposed manual techniques to detect conflicts,whereas other research recommends automated approaches based on human analysis.Moreover,there are different resolutions for conflicting requirements.Our previous work proposed a scheme for dealing with this problem using a novel intelligent method to detect conflicts and resolve them.A rule-based system was proposed to identify conflicts in requirements,and a genetic algorithm(GA)was used to resolve conflicts.The objective of this work is to assess and evaluate the implementation of the method of minimizing the number of conflicts in the requirements.The methodology implemented comprises two different stages.The first stage,detecting conflicts using a rule-based system,demonstrated a correct result with 100% accuracy.The evaluation of using the GA to resolve and reduce conflicts in the second stage also displayed a good result and achieved the desired goal as well as the main objective of the research.
文摘In large software development projects, there is always a need for refactoring and optimization of the design. Usually software designs are represented using UML diagrams (e.g., class diagrams). A software engineering team may create multiple versions of class diagrams satisfying some external constraints. In some cases, subdiagrams of the developed diagrams can be selected and combined into one diagram. It is difficult to perform this task manually since the manual process is very time consuming, is prone to human errors, and is not manageable for large projects. In this paper, we present algorithmic support for automating the generation of composing diagrams, where the composed diagram satisfies a given collection of external constraints and is optimal with respect to a given objective function. The composition of diagrams is based on the colimit operation from category theory. The developed approach was verified experimentally by generating random external constraints (expressed in SPARQL and OWL), generating random class diagrams using these external constraints, generating composed diagrams that satisfy these external constraints and computing class diagram metrics for each composed diagram.