The software development process mostly depends on accurately identifying both essential and optional features.Initially,user needs are typically expressed in free-form language,requiring significant time and human re...The software development process mostly depends on accurately identifying both essential and optional features.Initially,user needs are typically expressed in free-form language,requiring significant time and human resources to translate these into clear functional and non-functional requirements.To address this challenge,various machine learning(ML)methods have been explored to automate the understanding of these requirements,aiming to reduce time and human effort.However,existing techniques often struggle with complex instructions and large-scale projects.In our study,we introduce an innovative approach known as the Functional and Non-functional Requirements Classifier(FNRC).By combining the traditional random forest algorithm with the Accuracy Sliding Window(ASW)technique,we develop optimal sub-ensembles that surpass the initial classifier’s accuracy while using fewer trees.Experimental results demonstrate that our FNRC methodology performs robustly across different datasets,achieving a balanced Precision of 75%on the PROMISE dataset and an impressive Recall of 85%on the CCHIT dataset.Both datasets consistently maintain an F-measure around 64%,highlighting FNRC’s ability to effectively balance precision and recall in diverse scenarios.These findings contribute to more accurate and efficient software development processes,increasing the probability of achieving successful project outcomes.展开更多
Requirements elicitation step is of paramount importance in the requirements engineering process. In the distributed environment of so-called inter-company cooperative information system, this step is a thorny issue. ...Requirements elicitation step is of paramount importance in the requirements engineering process. In the distributed environment of so-called inter-company cooperative information system, this step is a thorny issue. To elicit require-ments for an inter-company cooperative information system, we early proposed a methodology called MAMIE (from MAcro to MIcro level requirements Elicitation) with an accompanied tool. In MAMIE methodology, requirements are the result of composing functional and non-functional concerns. Before non-functional concerns composition, it’s primary to identify relationships between them. According to the most existing approaches, a non-functional concern may have a negative, positive or null contribution on the other non-functional concerns. In this paper, we argue that using only these three contributions types is not sufficient to express relationships which may exist between non-functional concerns. Thus, we propose a process which aims to identify non-functional concerns’ relationships and model them using a fuzzy cognitive map. The resulting model is composed of non-functional concerns, relationships between them and the weight of these relationships expressed with linguistics fuzzy values. Using fuzzy cognitive maps to model non-functional concerns relationships allows moving from the conventional modelling toward developing a computer based model. An example from the textile industry is used to illustrate the applicability of our process.展开更多
Practitioners and researchers in the field of software engineering have realized that Non Functional requirement have not received due attention and second grade (or no) treatment has been meted out to Non Functional ...Practitioners and researchers in the field of software engineering have realized that Non Functional requirement have not received due attention and second grade (or no) treatment has been meted out to Non Functional Requirements. Many software products/systems are finally not acceptable because of such an approach. This casual approach of treating NFR has moved on to Testing also. Testing of NFR has never been taken seriously. Here in this work, we attempt to under- stand what needs to be done for proper consideration of NFR, so that they are treated as seriously as the Functional Requirements. In an attempt to treat NFR as seriously as FR we work on the testability of NFR by refining an abstract quality concern into concrete NFR statements. We show that quality concerns needs to be analyzed, for identifying and finally converting them into appropriate and unambiguous NFR. Once a high quality of NFR is ensured then the consequent testing of these NFRs will become as effective as that of Functional Requirement. We finally propose a revised model of Problem Analysis and Requirement Specification. A step wise refinement model for quality concern into test- able Non Functional Requirement is also proposed.展开更多
This paper presents CBAM Assistant, a tool that semi-automates the Cost Benefit Analysis Method (CBAM) developed by the Software Engineering Institute (SEI) at Carnegie Mellon University. CBAM is a process used to est...This paper presents CBAM Assistant, a tool that semi-automates the Cost Benefit Analysis Method (CBAM) developed by the Software Engineering Institute (SEI) at Carnegie Mellon University. CBAM is a process used to estimate the Return on Investment (ROI) of various software architectural design strategies. CBAM generally follows the Architectural Trade-off Analysis Method (ATAM) also developed by SEI. ATAM aids in defining scenarios and architectural strategies. The result is a qualitative trade-off analysis of the various strategies. CBAM further refines the scenarios and architectural strategies from ATAM. CBAM aids in quantitative analysis for cost, utility and importance ratings to determine the ROI of each architectural strategy. CBAM Assistant is a web-based system that walks a user through the CBAM process which can be started by using scenarios and architectural strategies created from ATAM. The tool is intended to be used by a facilitator who will provide input from stakeholders. The primary output of the tool is the ROIs of each architectural strategy for comparison and selection.展开更多
Design Patterns, which give abstract solutions to commonly recurring design problems, have been widely used in the software and hardware domain. As non-functional requirements are an important aspect in the design of ...Design Patterns, which give abstract solutions to commonly recurring design problems, have been widely used in the software and hardware domain. As non-functional requirements are an important aspect in the design of safety-critical embedded systems, this work focuses on the integration of non-functional implications in an existing design pattern concept. We propose a pattern representation for safety-critical embedded application design methods by including fields for the implications and side effects of the represented design pattern on the non-functional requirements of the overall systems. The considered requirements include safety, reliability, modifiability, cost, and execution time.展开更多
This paper presents the notion of the global execution context of a task as a representational construct for analysing complexity in software evolution. Based on this notion a visual notation and a supporting tool are...This paper presents the notion of the global execution context of a task as a representational construct for analysing complexity in software evolution. Based on this notion a visual notation and a supporting tool are presented to support specification of a system’s global execution context. A system’s global execution context is conceived as an evolving network of use scenarios depicted by nodes and links designating semantic relationships between scenarios. A node represents either a base or a growth scenario. Directed links characterize the transition from one node to another by means of semantic scenario relationships. Each growth scenario is generated following a critique (or screening) of one or more base or reference scenarios. Subsequently, representative growth scenarios are compiled and consolidated in the global execution context graph. The paper describes the stages of this process, presents the tool designed to facilitate the construction of the global execution context graph and elaborates on recent practice and experience.展开更多
基金This work is supported by EIAS(Emerging Intelligent Autonomous Systems)Data Science Lab,Prince Sultan University,Kingdom of Saudi Arabia,by paying the APC.
文摘The software development process mostly depends on accurately identifying both essential and optional features.Initially,user needs are typically expressed in free-form language,requiring significant time and human resources to translate these into clear functional and non-functional requirements.To address this challenge,various machine learning(ML)methods have been explored to automate the understanding of these requirements,aiming to reduce time and human effort.However,existing techniques often struggle with complex instructions and large-scale projects.In our study,we introduce an innovative approach known as the Functional and Non-functional Requirements Classifier(FNRC).By combining the traditional random forest algorithm with the Accuracy Sliding Window(ASW)technique,we develop optimal sub-ensembles that surpass the initial classifier’s accuracy while using fewer trees.Experimental results demonstrate that our FNRC methodology performs robustly across different datasets,achieving a balanced Precision of 75%on the PROMISE dataset and an impressive Recall of 85%on the CCHIT dataset.Both datasets consistently maintain an F-measure around 64%,highlighting FNRC’s ability to effectively balance precision and recall in diverse scenarios.These findings contribute to more accurate and efficient software development processes,increasing the probability of achieving successful project outcomes.
文摘Requirements elicitation step is of paramount importance in the requirements engineering process. In the distributed environment of so-called inter-company cooperative information system, this step is a thorny issue. To elicit require-ments for an inter-company cooperative information system, we early proposed a methodology called MAMIE (from MAcro to MIcro level requirements Elicitation) with an accompanied tool. In MAMIE methodology, requirements are the result of composing functional and non-functional concerns. Before non-functional concerns composition, it’s primary to identify relationships between them. According to the most existing approaches, a non-functional concern may have a negative, positive or null contribution on the other non-functional concerns. In this paper, we argue that using only these three contributions types is not sufficient to express relationships which may exist between non-functional concerns. Thus, we propose a process which aims to identify non-functional concerns’ relationships and model them using a fuzzy cognitive map. The resulting model is composed of non-functional concerns, relationships between them and the weight of these relationships expressed with linguistics fuzzy values. Using fuzzy cognitive maps to model non-functional concerns relationships allows moving from the conventional modelling toward developing a computer based model. An example from the textile industry is used to illustrate the applicability of our process.
文摘Practitioners and researchers in the field of software engineering have realized that Non Functional requirement have not received due attention and second grade (or no) treatment has been meted out to Non Functional Requirements. Many software products/systems are finally not acceptable because of such an approach. This casual approach of treating NFR has moved on to Testing also. Testing of NFR has never been taken seriously. Here in this work, we attempt to under- stand what needs to be done for proper consideration of NFR, so that they are treated as seriously as the Functional Requirements. In an attempt to treat NFR as seriously as FR we work on the testability of NFR by refining an abstract quality concern into concrete NFR statements. We show that quality concerns needs to be analyzed, for identifying and finally converting them into appropriate and unambiguous NFR. Once a high quality of NFR is ensured then the consequent testing of these NFRs will become as effective as that of Functional Requirement. We finally propose a revised model of Problem Analysis and Requirement Specification. A step wise refinement model for quality concern into test- able Non Functional Requirement is also proposed.
文摘This paper presents CBAM Assistant, a tool that semi-automates the Cost Benefit Analysis Method (CBAM) developed by the Software Engineering Institute (SEI) at Carnegie Mellon University. CBAM is a process used to estimate the Return on Investment (ROI) of various software architectural design strategies. CBAM generally follows the Architectural Trade-off Analysis Method (ATAM) also developed by SEI. ATAM aids in defining scenarios and architectural strategies. The result is a qualitative trade-off analysis of the various strategies. CBAM further refines the scenarios and architectural strategies from ATAM. CBAM aids in quantitative analysis for cost, utility and importance ratings to determine the ROI of each architectural strategy. CBAM Assistant is a web-based system that walks a user through the CBAM process which can be started by using scenarios and architectural strategies created from ATAM. The tool is intended to be used by a facilitator who will provide input from stakeholders. The primary output of the tool is the ROIs of each architectural strategy for comparison and selection.
文摘Design Patterns, which give abstract solutions to commonly recurring design problems, have been widely used in the software and hardware domain. As non-functional requirements are an important aspect in the design of safety-critical embedded systems, this work focuses on the integration of non-functional implications in an existing design pattern concept. We propose a pattern representation for safety-critical embedded application design methods by including fields for the implications and side effects of the represented design pattern on the non-functional requirements of the overall systems. The considered requirements include safety, reliability, modifiability, cost, and execution time.
文摘This paper presents the notion of the global execution context of a task as a representational construct for analysing complexity in software evolution. Based on this notion a visual notation and a supporting tool are presented to support specification of a system’s global execution context. A system’s global execution context is conceived as an evolving network of use scenarios depicted by nodes and links designating semantic relationships between scenarios. A node represents either a base or a growth scenario. Directed links characterize the transition from one node to another by means of semantic scenario relationships. Each growth scenario is generated following a critique (or screening) of one or more base or reference scenarios. Subsequently, representative growth scenarios are compiled and consolidated in the global execution context graph. The paper describes the stages of this process, presents the tool designed to facilitate the construction of the global execution context graph and elaborates on recent practice and experience.