Under the background of“new engineering”construction,software engineering teaching pays more attention to cultivating students’engineering practice and innovation ability.In view of the inconsistency between develo...Under the background of“new engineering”construction,software engineering teaching pays more attention to cultivating students’engineering practice and innovation ability.In view of the inconsistency between development and demand design,team division of labor,difficult measurement of individual contribution,single assessment method,and other problems in traditional practice teaching,this paper proposes that under the guidance of agile development methods,software engineering courses should adopt Scrum framework to organize course project practice,use agile collaboration platform to implement individual work,follow up experiment progress,and ensure effective project advancement.The statistical data of curriculum“diversity”assessment show that there is an obvious improvement effect on students’software engineering ability and quality.展开更多
This paper delves into Agile Development Methods in Software Engineering,contrasting them with the traditional Waterfall model and analyzing their efficiency.Agile methods,known for their adaptability and customer-cen...This paper delves into Agile Development Methods in Software Engineering,contrasting them with the traditional Waterfall model and analyzing their efficiency.Agile methods,known for their adaptability and customer-centric approach,have gained prominence in the fast-paced software development industry.These methods,including Scrum,Kanban,and Extreme Programming(XP),are characterized by iterative cycles,collaborative efforts,and a focus on rapid delivery and quality improvement.The paper compares these agile methodologies to the sequential and rigid Waterfall model,highlighting agile’s superior flexibility,adaptability,and responsiveness to changing requirements.It emphasizes the importance of customer involvement in agile processes,which leads to higher satisfaction and better alignment with user expectations.The analysis reveals that agile methods not only enhance the speed of delivery but also improve the overall quality of the software product.The paper concludes that agile methodologies are more effective in today's dynamic software development environment,providing a robust framework for managing complex projects and ensuring the delivery of high-quality,relevant software solutions.展开更多
Software testing is a critical phase due to misconceptions about ambiguities in the requirements during specification,which affect the testing process.Therefore,it is difficult to identify all faults in software.As re...Software testing is a critical phase due to misconceptions about ambiguities in the requirements during specification,which affect the testing process.Therefore,it is difficult to identify all faults in software.As requirement changes continuously,it increases the irrelevancy and redundancy during testing.Due to these challenges;fault detection capability decreases and there arises a need to improve the testing process,which is based on changes in requirements specification.In this research,we have developed a model to resolve testing challenges through requirement prioritization and prediction in an agile-based environment.The research objective is to identify the most relevant and meaningful requirements through semantic analysis for correct change analysis.Then compute the similarity of requirements through case-based reasoning,which predicted the requirements for reuse and restricted to error-based requirements.Afterward,the apriori algorithm mapped out requirement frequency to select relevant test cases based on frequently reused or not reused test cases to increase the fault detection rate.Furthermore,the proposed model was evaluated by conducting experiments.The results showed that requirement redundancy and irrelevancy improved due to semantic analysis,which correctly predicted the requirements,increasing the fault detection rate and resulting in high user satisfaction.The predicted requirements are mapped into test cases,increasing the fault detection rate after changes to achieve higher user satisfaction.Therefore,the model improves the redundancy and irrelevancy of requirements by more than 90%compared to other clustering methods and the analytical hierarchical process,achieving an 80%fault detection rate at an earlier stage.Hence,it provides guidelines for practitioners and researchers in the modern era.In the future,we will provide the working prototype of this model for proof of concept.展开更多
Agile development aims at rapidly developing software while embracing the continuous evolution of user requirements along the whole development process.User stories are the primary means of requirements collection and...Agile development aims at rapidly developing software while embracing the continuous evolution of user requirements along the whole development process.User stories are the primary means of requirements collection and elicitation in the agile development.A project can involve a large amount of user stories,which should be clustered into different groups based on their functionality’s similarity for systematic requirements analysis,effective mapping to developed features,and efficient maintenance.Nevertheless,the current user story clustering is mainly conducted in a manual manner,which is time-consuming and subjective to human bias.In this paper,we propose a novel approach for clustering the user stories automatically on the basis of natural language processing.Specifically,the sentence patterns of each component in a user story are first analysed and determined such that the critical structure in the representative tasks can be automatically extracted based on the user story meta-model.The similarity of user stories is calculated,which can be used to generate the connected graph as the basis of automatic user story clustering.We evaluate the approach based on thirteen datasets,compared against ten baseline techniques.Experimental results show that our clustering approach has higher accuracy,recall rate and F1-score than these baselines.It is demonstrated that the proposed approach can significantly improve the efficacy of user story clustering and thus enhance the overall performance of agile development.The study also highlights promising research directions for more accurate requirements elicitation.展开更多
Agile Transformations are challenging processes for organizations that look to extend the benefits of Agile philosophy and methods beyond software engineering.Despite the impact of these transformations on orga-nizati...Agile Transformations are challenging processes for organizations that look to extend the benefits of Agile philosophy and methods beyond software engineering.Despite the impact of these transformations on orga-nizations,they have not been extensively studied in academia.We conducted a study grounded in workshops and interviews with 99 participants from 30 organizations,including organizations undergoing transformations(“final organizations”)and companies supporting these processes(“consultants”).The study aims to understand the motivations,objectives,and factors driving and challenging these transformations.Over 700 responses were collected to the question and categorized into 32 objectives.The findings show that organizations primarily aim to achieve customer centricity and adaptability,both with 8%of the mentions.Other primary important objectives,with above 4%of mentions,include alignment of goals,lean delivery,sustainable processes,and a flatter,more team-based organizational structure.We also detect discrepancies in perspectives between the objectives identified by the two kinds of organizations and the existing agile literature and models.This misalignment highlights the need for practitioners to understand with the practical realities the organizations face.展开更多
Requirement gathering for software development project is the most crucial stage and thus requirement engineering (RE) occupies the chief position in the software development. Countless techniques concerning the RE pr...Requirement gathering for software development project is the most crucial stage and thus requirement engineering (RE) occupies the chief position in the software development. Countless techniques concerning the RE processes exist to make sure the requirements are coherent, compact and complete in all respects. In this way different aspects of RE are dissected and detailed upon. A comparison of RE in Agile and RE in Waterfall is expatiated and on the basis of the literature survey the overall Agile RE process is accumulated. Agile being a technique produces high quality software in relatively less time as compared to the conventional waterfall methodology. The paramount objective of this study is to take lessons from RE that Agile method may consider, if quality being the cardinal concern. The study is patterned on the survey of the previous research reported in the coexisting literature and the practices which are being pursued in the area.展开更多
The crowdsourcing, as a service pattern in cloud environment, usually aims at the cross-disciplinary cooperation and creating value together with customers and becomes increasingly prevalent. Software process, as a ki...The crowdsourcing, as a service pattern in cloud environment, usually aims at the cross-disciplinary cooperation and creating value together with customers and becomes increasingly prevalent. Software process, as a kind of software development and management strategy, is defined as a series of activities implemented by software life cycle and provides a set of rules for various phases of the software engineering to achieve the desired objectives. With the current software development cycle getting shorter, facing more frequent needs change and fierce competition, a new resource management pattern is proposed to respond to these issues agilely by introducing the crowdsourcing service to agile software development for pushing the agility of software process. Then, a user-oriented resource scheduling method is proposed for rational use of various resources in the process and maximizing the benefits of all parties. From the experimental results, the proposed pattern and resources scheduling method reduces greatly the resource of project resource manager and increases the team resource utilization rate, which greatly improves the agility of software process and delivers software products quickly in crowdsourcing pattern.展开更多
Prototypes are described as a successful mechanism to incorporate user-experience design (UX) into Agile de- velopments, but their integration into such developments is not exempt from difficulties. Prototypes and f...Prototypes are described as a successful mechanism to incorporate user-experience design (UX) into Agile de- velopments, but their integration into such developments is not exempt from difficulties. Prototypes and final applications are often developed using different tools, which hinders the collaboration between designers and developers and also compli- cates reuse. Moreover, integrating stakeholders such as clients and users into the Agile process of designing, evaluating, and refining a prototype is not straightforward mainly because of its iterative nature. In an attempt to tackle these problems, this work presents the design and implementation of a new framework in which scripting languages are used to code prototyped behaviors. Prototyping is then treated as a separate aspect that coexists and runs together with final functionality. Using this framework communication is enhanced because designers and developers work in parallel on the same software artifact. Prototypes are fully reused and iteratively added with final functionality while prototyped behaviors are removed. They can be also modified on the fly to implement participatory design techniques.展开更多
Agile hardware development methodology has been widely adopted over the past decade.Despite the research progress,the industry still doubts its applicability,especially for the functional verification of complicated p...Agile hardware development methodology has been widely adopted over the past decade.Despite the research progress,the industry still doubts its applicability,especially for the functional verification of complicated processor chips.Functional verification commonly employs a simulation-based method of co-simulating the design under test with a reference model and checking the consistency of their outcomes given the same input stimuli.We observe limited collaboration and information exchange through the design and verification processes,dramatically leading to inefficiencies when applying the conventional functional verification workflow to agile development.In this paper,we propose workflow integration with collaborative task delegation and dynamic information exchange as the design principles to effectively address the challenges on functional verification under the agile development model.Based on workflow integration,we enhance the functional verification workflows with a series of novel methodologies and toolchains.The diff-rule based agile verification methodology(DRAV)reduces the overhead of building reference models with runtime execution information from designs under test.We present the RISC-V implementation for DRAV,DiffTest,which adopts information probes to extract internal design behaviors for co-simulation and debugging.It further integrates two plugins,namely XFUZZ for effective test generation guided by design coverage metrics and LightSSS for efficient fault analysis triggered by co-simulation mismatches.We present the integrated workflows for agile hardware development and demonstrate their effectiveness in designing and verifying RISC-V processors with 33 functional bugs found in NutShell.We also illustrate the efficiency of the proposed toolchains with a case study on a functional bug in the L2 cache of XiangShan.展开更多
文摘Under the background of“new engineering”construction,software engineering teaching pays more attention to cultivating students’engineering practice and innovation ability.In view of the inconsistency between development and demand design,team division of labor,difficult measurement of individual contribution,single assessment method,and other problems in traditional practice teaching,this paper proposes that under the guidance of agile development methods,software engineering courses should adopt Scrum framework to organize course project practice,use agile collaboration platform to implement individual work,follow up experiment progress,and ensure effective project advancement.The statistical data of curriculum“diversity”assessment show that there is an obvious improvement effect on students’software engineering ability and quality.
文摘This paper delves into Agile Development Methods in Software Engineering,contrasting them with the traditional Waterfall model and analyzing their efficiency.Agile methods,known for their adaptability and customer-centric approach,have gained prominence in the fast-paced software development industry.These methods,including Scrum,Kanban,and Extreme Programming(XP),are characterized by iterative cycles,collaborative efforts,and a focus on rapid delivery and quality improvement.The paper compares these agile methodologies to the sequential and rigid Waterfall model,highlighting agile’s superior flexibility,adaptability,and responsiveness to changing requirements.It emphasizes the importance of customer involvement in agile processes,which leads to higher satisfaction and better alignment with user expectations.The analysis reveals that agile methods not only enhance the speed of delivery but also improve the overall quality of the software product.The paper concludes that agile methodologies are more effective in today's dynamic software development environment,providing a robust framework for managing complex projects and ensuring the delivery of high-quality,relevant software solutions.
文摘Software testing is a critical phase due to misconceptions about ambiguities in the requirements during specification,which affect the testing process.Therefore,it is difficult to identify all faults in software.As requirement changes continuously,it increases the irrelevancy and redundancy during testing.Due to these challenges;fault detection capability decreases and there arises a need to improve the testing process,which is based on changes in requirements specification.In this research,we have developed a model to resolve testing challenges through requirement prioritization and prediction in an agile-based environment.The research objective is to identify the most relevant and meaningful requirements through semantic analysis for correct change analysis.Then compute the similarity of requirements through case-based reasoning,which predicted the requirements for reuse and restricted to error-based requirements.Afterward,the apriori algorithm mapped out requirement frequency to select relevant test cases based on frequently reused or not reused test cases to increase the fault detection rate.Furthermore,the proposed model was evaluated by conducting experiments.The results showed that requirement redundancy and irrelevancy improved due to semantic analysis,which correctly predicted the requirements,increasing the fault detection rate and resulting in high user satisfaction.The predicted requirements are mapped into test cases,increasing the fault detection rate after changes to achieve higher user satisfaction.Therefore,the model improves the redundancy and irrelevancy of requirements by more than 90%compared to other clustering methods and the analytical hierarchical process,achieving an 80%fault detection rate at an earlier stage.Hence,it provides guidelines for practitioners and researchers in the modern era.In the future,we will provide the working prototype of this model for proof of concept.
基金sponsored by the National Natural Science Foundation of China(Grant Nos.62192731,62192730,62162051)the Australian Research Council Discovery Project(DP210102447)the Fundamental Research Funds for the Central Universities(BLX202003).
文摘Agile development aims at rapidly developing software while embracing the continuous evolution of user requirements along the whole development process.User stories are the primary means of requirements collection and elicitation in the agile development.A project can involve a large amount of user stories,which should be clustered into different groups based on their functionality’s similarity for systematic requirements analysis,effective mapping to developed features,and efficient maintenance.Nevertheless,the current user story clustering is mainly conducted in a manual manner,which is time-consuming and subjective to human bias.In this paper,we propose a novel approach for clustering the user stories automatically on the basis of natural language processing.Specifically,the sentence patterns of each component in a user story are first analysed and determined such that the critical structure in the representative tasks can be automatically extracted based on the user story meta-model.The similarity of user stories is calculated,which can be used to generate the connected graph as the basis of automatic user story clustering.We evaluate the approach based on thirteen datasets,compared against ten baseline techniques.Experimental results show that our clustering approach has higher accuracy,recall rate and F1-score than these baselines.It is demonstrated that the proposed approach can significantly improve the efficacy of user story clustering and thus enhance the overall performance of agile development.The study also highlights promising research directions for more accurate requirements elicitation.
基金funding from the European Commission for the Ruralities Project(grant agreement no.101060876).
文摘Agile Transformations are challenging processes for organizations that look to extend the benefits of Agile philosophy and methods beyond software engineering.Despite the impact of these transformations on orga-nizations,they have not been extensively studied in academia.We conducted a study grounded in workshops and interviews with 99 participants from 30 organizations,including organizations undergoing transformations(“final organizations”)and companies supporting these processes(“consultants”).The study aims to understand the motivations,objectives,and factors driving and challenging these transformations.Over 700 responses were collected to the question and categorized into 32 objectives.The findings show that organizations primarily aim to achieve customer centricity and adaptability,both with 8%of the mentions.Other primary important objectives,with above 4%of mentions,include alignment of goals,lean delivery,sustainable processes,and a flatter,more team-based organizational structure.We also detect discrepancies in perspectives between the objectives identified by the two kinds of organizations and the existing agile literature and models.This misalignment highlights the need for practitioners to understand with the practical realities the organizations face.
文摘Requirement gathering for software development project is the most crucial stage and thus requirement engineering (RE) occupies the chief position in the software development. Countless techniques concerning the RE processes exist to make sure the requirements are coherent, compact and complete in all respects. In this way different aspects of RE are dissected and detailed upon. A comparison of RE in Agile and RE in Waterfall is expatiated and on the basis of the literature survey the overall Agile RE process is accumulated. Agile being a technique produces high quality software in relatively less time as compared to the conventional waterfall methodology. The paramount objective of this study is to take lessons from RE that Agile method may consider, if quality being the cardinal concern. The study is patterned on the survey of the previous research reported in the coexisting literature and the practices which are being pursued in the area.
基金Projects(61304184,61672221)supported by the National Natural Science Foundation of ChinaProject(2016JJ6010)supported by the Hunan Provincial Natural Science Foundation of China
文摘The crowdsourcing, as a service pattern in cloud environment, usually aims at the cross-disciplinary cooperation and creating value together with customers and becomes increasingly prevalent. Software process, as a kind of software development and management strategy, is defined as a series of activities implemented by software life cycle and provides a set of rules for various phases of the software engineering to achieve the desired objectives. With the current software development cycle getting shorter, facing more frequent needs change and fierce competition, a new resource management pattern is proposed to respond to these issues agilely by introducing the crowdsourcing service to agile software development for pushing the agility of software process. Then, a user-oriented resource scheduling method is proposed for rational use of various resources in the process and maximizing the benefits of all parties. From the experimental results, the proposed pattern and resources scheduling method reduces greatly the resource of project resource manager and increases the team resource utilization rate, which greatly improves the agility of software process and delivers software products quickly in crowdsourcing pattern.
文摘Prototypes are described as a successful mechanism to incorporate user-experience design (UX) into Agile de- velopments, but their integration into such developments is not exempt from difficulties. Prototypes and final applications are often developed using different tools, which hinders the collaboration between designers and developers and also compli- cates reuse. Moreover, integrating stakeholders such as clients and users into the Agile process of designing, evaluating, and refining a prototype is not straightforward mainly because of its iterative nature. In an attempt to tackle these problems, this work presents the design and implementation of a new framework in which scripting languages are used to code prototyped behaviors. Prototyping is then treated as a separate aspect that coexists and runs together with final functionality. Using this framework communication is enhanced because designers and developers work in parallel on the same software artifact. Prototypes are fully reused and iteratively added with final functionality while prototyped behaviors are removed. They can be also modified on the fly to implement participatory design techniques.
基金supported in part by the Strategic Priority Research Program of Chinese Academy of Sciences(CAS)under Grant No.XDC05030200the National Key Research and Development Program of China under Grant No.2022YFB4500403+2 种基金the National Natural Science Foundation of China under Grant Nos.62090022 and 62172388the Youth Innovation Promotion Association of the Chinese Academy of Sciences under Grant No.2020105the Innovation Grant No.E261100 by Institute of Computing Technology,Chinese Academy of Sciences.
文摘Agile hardware development methodology has been widely adopted over the past decade.Despite the research progress,the industry still doubts its applicability,especially for the functional verification of complicated processor chips.Functional verification commonly employs a simulation-based method of co-simulating the design under test with a reference model and checking the consistency of their outcomes given the same input stimuli.We observe limited collaboration and information exchange through the design and verification processes,dramatically leading to inefficiencies when applying the conventional functional verification workflow to agile development.In this paper,we propose workflow integration with collaborative task delegation and dynamic information exchange as the design principles to effectively address the challenges on functional verification under the agile development model.Based on workflow integration,we enhance the functional verification workflows with a series of novel methodologies and toolchains.The diff-rule based agile verification methodology(DRAV)reduces the overhead of building reference models with runtime execution information from designs under test.We present the RISC-V implementation for DRAV,DiffTest,which adopts information probes to extract internal design behaviors for co-simulation and debugging.It further integrates two plugins,namely XFUZZ for effective test generation guided by design coverage metrics and LightSSS for efficient fault analysis triggered by co-simulation mismatches.We present the integrated workflows for agile hardware development and demonstrate their effectiveness in designing and verifying RISC-V processors with 33 functional bugs found in NutShell.We also illustrate the efficiency of the proposed toolchains with a case study on a functional bug in the L2 cache of XiangShan.