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.展开更多
A variety of Software Reliability Growth Models (SRGM) have been presented in literature. These models suffer many problems when handling various types of project. The reason is;the nature of each project makes it dif...A variety of Software Reliability Growth Models (SRGM) have been presented in literature. These models suffer many problems when handling various types of project. The reason is;the nature of each project makes it difficult to build a model which can generalize. In this paper we propose the use of Genetic Programming (GP) as an eVolutionary computation approach to handle the software reliability modeling problem. GP deals with one of the key issues in computer science which is called automatic programming. The goal of automatic programming is to create, in an automated way, a computer program that enables a computer to solve problems. GP will be used to build a SRGM which can predict accumulated faults during the software testing process. We evaluate the GP developed model and compare its performance with other common growth models from the literature. Our experiments results show that the proposed GP model is superior compared to Yamada S-Shaped, Generalized Poisson, NHPP and Schneidewind reliability models.展开更多
The present study aims at improving the ability of the canonical genetic programming algorithm to solve problems, and describes an improved genetic programming (IGP). The proposed method can be described as follows: t...The present study aims at improving the ability of the canonical genetic programming algorithm to solve problems, and describes an improved genetic programming (IGP). The proposed method can be described as follows: the first inves-tigates initializing population, the second investigates reproduction operator, the third investigates crossover operator, and the fourth investigates mutation operation. The IGP is examined in two domains and the results suggest that the IGP is more effective and more efficient than the canonical one applied in different domains.展开更多
Most current object-oriented programming courses offered by domestic colleges and universities generally focus on the object-oriented programming language itself,i.e.,the programming grammar of the language,but ignore...Most current object-oriented programming courses offered by domestic colleges and universities generally focus on the object-oriented programming language itself,i.e.,the programming grammar of the language,but ignore the design pattern.However,design patterns are essential to software engineering because they can solve common problems in software design and improve code reuse,readability,extensibility,and reliability.Our Object-oriented Software Construction Course is creative since it aims at cultivating students’object-oriented thinking as well as basic abilities required to construct high-quality,object-oriented software.Specifically,we exploit the 5E teaching principle during the education of this course,and present the whole pipeline in the paper.We also provide one case of the factory pattern to further demonstrate the implementation of the 5E teaching principle in the course.The effect of the 5E teaching principle has also been demonstrated.展开更多
Structural development defects essentially refer to code structure that violates object-oriented design principles. They make program maintenance challenging and deteriorate software quality over time. Various detecti...Structural development defects essentially refer to code structure that violates object-oriented design principles. They make program maintenance challenging and deteriorate software quality over time. Various detection approaches, ranging from traditional heuristic algorithms to machine learning methods, are used to identify these defects. Ensemble learning methods have strengthened the detection of these defects. However, existing approaches do not simultaneously exploit the capabilities of extracting relevant features from pre-trained models and the performance of neural networks for the classification task. Therefore, our goal has been to design a model that combines a pre-trained model to extract relevant features from code excerpts through transfer learning and a bagging method with a base estimator, a dense neural network, for defect classification. To achieve this, we composed multiple samples of the same size with replacements from the imbalanced dataset MLCQ1. For all the samples, we used the CodeT5-small variant to extract features and trained a bagging method with the neural network Roberta Classification Head to classify defects based on these features. We then compared this model to RandomForest, one of the ensemble methods that yields good results. Our experiments showed that the number of base estimators to use for bagging depends on the defect to be detected. Next, we observed that it was not necessary to use a data balancing technique with our model when the imbalance rate was 23%. Finally, for blob detection, RandomForest had a median MCC value of 0.36 compared to 0.12 for our method. However, our method was predominant in Long Method detection with a median MCC value of 0.53 compared to 0.42 for RandomForest. These results suggest that the performance of ensemble methods in detecting structural development defects is dependent on specific defects.展开更多
This paper presents a tool for managing, reusing and analysing C software code based on database techniques. The abstract information of entire software code is stored in a program database that is the conceptual sche...This paper presents a tool for managing, reusing and analysing C software code based on database techniques. The abstract information of entire software code is stored in a program database that is the conceptual scheme of the entire software, whereas the reuse component is a subscheme. Relational algebra can be conveniently used to manage, analyse and reuse C code. In the tool, we can manage, analyse and reuse any components in the program database and rapidly extract source code of any components or construct the program code of a new system. The rule system is introduced in reusing source code.展开更多
In order to investigate the mechanical behavior of systems with complex architecture and a large number of contacting bodies,a finite element software,named LiToTac,has been developed by using the object-oriented prog...In order to investigate the mechanical behavior of systems with complex architecture and a large number of contacting bodies,a finite element software,named LiToTac,has been developed by using the object-oriented programming technique.This software,with an interactive graphical user interface,is able to handle highly non-linear problems including multiple contacts and large deformation.More importantly,the contact detection based on a hybrid three-stages methodology can be performed automatically,which is more efficient than the common strategies of pre-defining contact zones in commercial FEM software like ANSYS,ABAQUS,etc.In addition,the contact solver in LiToTac is portable between dynamic and quasi-static codes and can accurately solve contact coupled with friction in a reduced system.Several numerical examples are carried out to illustrate the functionality and capacity of the software package.展开更多
Software debugging accounts for a vast majority of the financial and time costs in software developing and maintenance. Thus, approaches of software fault localization that can help automate the debugging process have...Software debugging accounts for a vast majority of the financial and time costs in software developing and maintenance. Thus, approaches of software fault localization that can help automate the debugging process have become a hot topic in the field of software engineering. Given the great demand for software fault localization, an approach based on the artificial bee colony (ABC) algorithm is proposed to be integrated with other related techniques. In this process, the source program is initially instrumented after analyzing the dependence information. The test case sets are then compiled and run on the instrumented program, and execution results are input to the ABC algorithm. The algorithm can determine the largest fitness value and best food source by calculating the average fitness of the employed bees in the iteralive process. The program unit with the highest suspicion score corresponding to the best test case set is regarded as the final fault localization. Experiments are conducted with the TCAS program in the Siemens suite. Results demonstrate that the proposed fault localization method is effective and efficient. The ABC algorithm can efficiently avoid the local optimum, and ensure the validity of the fault location to a larger extent.展开更多
Based on the new algorithm for GIS image pixel topographic factors in remote sensing monitoring ofsoil losses, a software was developed for microcomputer to carry out computation at a medium river basin(county). This ...Based on the new algorithm for GIS image pixel topographic factors in remote sensing monitoring ofsoil losses, a software was developed for microcomputer to carry out computation at a medium river basin(county). This paper lays its emphasis on algorithmic skills and programming techniques as well as applicationof the software.展开更多
Many industrial companies and researchers are looking for more efficient model driven engineering approaches (MDE) in software engineering of manufacturing automation systems (MS) especially for logic control programm...Many industrial companies and researchers are looking for more efficient model driven engineering approaches (MDE) in software engineering of manufacturing automation systems (MS) especially for logic control programming, but are uncertain about the applicability and effort needed to implement those approaches in comparison to classical Programmable Logic Controller?(PLC) programming with IEC 61131-3. The paper summarizes results of usability experiments evaluating UML and SysML as software engineering notations for a MDE applied in the domain of manufacturing systems. Modeling MS needs to cover the domain specific characteristics,?i.e.?hybrid process, real time requirements and communication requirements. In addition the paper presents factors, constraint and practical experience for the development of further usability experiments. The paper gives examples of notational expressiveness and weaknesses of UML and SysML. The appendix delivers detailed master models, representing the correct best suited model, and evaluation schemes of the experiment, which is helpful if setting up own empirical experiments.展开更多
Software testing is a very important phase of the software development process. It is a very difficult job for a software manager to allocate optimally the financial budget to a software project during testing. In thi...Software testing is a very important phase of the software development process. It is a very difficult job for a software manager to allocate optimally the financial budget to a software project during testing. In this paper the problem of optimal allocation of the software testing cost is studied. There exist several models focused on the development of software costs measuring the number of software errors remaining in the software during testing. The purpose of this paper is to use these models to formulate the optimization problems of resource allocation: Minimization of the total number of software errors remaining in the system. On the assumption that a software project consists of some independent modules, the presented approach extends previous work by defining new goal functions and extending the primary assumption and precondition.展开更多
The developing market of information technologies i s the most dynamical and thriving business in the modern world. The law of supply and demand establishes repeating, steady cause and effect relation between three ec...The developing market of information technologies i s the most dynamical and thriving business in the modern world. The law of supply and demand establishes repeating, steady cause and effect relation between three economic phenomena-price, supply and demand. Demand is an ideal need and a real opportunity of the customer to buy the goods. Supply is an ideal readiness and a real opportunity of the commodity producer to put the goods on the market . A plethora of factors affect the supply and demand. There is inverse dependenc e between the market price of the goods and the quantity which is in the demand. There is direct dependence between the market price of the goods and the qu antity which is offered to the buyer. The following features distinguish the sof tware from the usual goods in the consumer market: high science intensity, simpl icity of replicating, relative simplicity of modification and updating, high req uirements to quality of the software, at sale the buyer gets it, but it does no t disappear in sale, there is no physical deterioration, but there is a fast ob solescence. To protect the programs against the non-authorized access (the copy ings and operation) technical and legal methods are used: the patent protection, status of industrial secret, license agreements.展开更多
Software is pervasive in modern society, but we are often unaware of its presence until problems arise. Software is one of the most important and yet one of the most economically challenging techniques of this era. As...Software is pervasive in modern society, but we are often unaware of its presence until problems arise. Software is one of the most important and yet one of the most economically challenging techniques of this era. As a purely intellectual product, it is among the most labor-intensive, complex, and error-prone technologies in human history. Until the 1970s, programmers were very meticulous in planning their code, rigorously checking code, providing detailed documentation, and exhaustive testing before the software is released to users. However, as computer became widespread, attitudes changed. Instead of meticulously planning code, the attitude of the average programmer today is possibly hacking sessions or writing any sloppy piece of code and the compiler will run diagonally, a situation called, “code and fix”, where the programmer tried to fix errors one by one until the software compiled properly. As programs grew in size and complexity, the limits of this “code and fix” approach became evident. In this paper, we studied the various reasons why software fails. Our studies reveal that the major reasons why software fails are poor or no design at all, inadequate testing of codes, and attitudinal changes among programmers and other factors.展开更多
Pair Programming (PP) that has gained extensive focus within pedagogical and industrial environments is a programming practice in which two programmers use the same computer to work together on analysis, design, and p...Pair Programming (PP) that has gained extensive focus within pedagogical and industrial environments is a programming practice in which two programmers use the same computer to work together on analysis, design, and programming of the same segment of code. Distributed Pair Programming (DPP) system is a programming system to aid two programmers, the driver and the navigator, to finish a common task such as analysis, design and programming on the same software from different locations. This paper first reviews the existing DPP tools and discusses the interaction and coordination mechanism in DPP process. By means of activity theory and language-action theory, some basic requirements of the DPP system are presented. Then, a design framework of such system and functions of each sub-system are deeply analyzed. Finally, a system prototype is implemented by plug-in style in Microsoft Visual Studio environment.展开更多
Software engineering(SE) courses are confronted with predicaments how to cultivate students' engineering concept and how to abridge the distance between the academy and industry.The "Computing and Software En...Software engineering(SE) courses are confronted with predicaments how to cultivate students' engineering concept and how to abridge the distance between the academy and industry.The "Computing and Software Engineering,III(CSE III)" helps students mimic a real-world software development and broaden realworld SE view.With the spiral model as the main development model,the CSE III course includes not only the SE theory knowledge,but also quick learning,team cooperation,development management and risk management skills which meet the real-world industry requirements.Our contribution is providing an introductory course for multiple dimensions of knowledge,creating a real-world software development circumstance for students under quantitative control and designing a systematic and practical evaluation mechanism which stimulates the interests of students.CSE III has been executed from 2009 and obtains a valuable teaching and learning effects among our teachers,TAs and students;and we add refinements to the course according to feedbacks of participants.This paper will describe the design and practice of the CSE III course.展开更多
Hydrogen management is important for refineries to improve their business efficiency.Various approaches such as pinch analysis and mathematical programming have been employed in the management of hydrogen system.Howev...Hydrogen management is important for refineries to improve their business efficiency.Various approaches such as pinch analysis and mathematical programming have been employed in the management of hydrogen system.However,it is not easy for site engineers to implement these techniques,due to the complicated procedures.At this point,it is necessary to develop a software that can implement the proposed methodologies automatically,which is really the goal of this work.The presented refinery hydrogen system optimization software(RHO)is a web based system.It is developed in the Java Web environment,where the subroutines of mathematical model developed in GAMS software can be easily called.RHO can generate graphics of both the hydrogen pinch diagram and the hydrogen distribution network.The purifiers as well as the physical distances between units are considered in the optimization model.In addition,there is a special module for the calculation of membrane separation,which is very important in the hydrogen network.The functions and the interfaces of the software are illustrated via practical cases.Case studies show the effectiveness of the RHO software.展开更多
Firstly, it is found that process design is necessary for software process improvement after analyzing its complexity. Then, research methods and concepts framework are put forward, and the research content is also pr...Firstly, it is found that process design is necessary for software process improvement after analyzing its complexity. Then, research methods and concepts framework are put forward, and the research content is also provided. The find-ings of research, including propositions of complexity of software process, the work program of complexity of software process improvement, software enterprise model and software production support structure are clarified. Finally, the demonstration, including mindbugs (cognitive barriers) in software process and the knowledge integration support structure of quality software production, is illustrated with case study. It is concluded that the research is useful for both software production and knowledge economy in the future.展开更多
During the last years, we have developed the FLOPER platform for providing a practical support to the so-called Multi-Adjoint Logic Programming approach (MALP in brief), which represents an extremely flexible framewor...During the last years, we have developed the FLOPER platform for providing a practical support to the so-called Multi-Adjoint Logic Programming approach (MALP in brief), which represents an extremely flexible framework into the Fuzzy Logic Programming arena. Nowadays, FLOPER is useful for compiling (to standard Prolog code), executing and debugging (by drawing execution trees) MALP programs, and it is ready for being extended in the near future with powerful transformation and optimization techniques designed in our research group during the recent past. Our last update consists in the integration of a graphical interface for a comfortable interaction with the system which allows, among other capabilities, the use of projects for packing scripts and auxiliary definitions of fuzzy sets/connectives, together with fuzzy programs and their associated lattices modeling truth-degrees beyond the simpler crisp case ﹛true;false﹜.展开更多
The increasing demand for software engineers cannot completely be fulfilled by university education and conventional training approaches due to limited capacities.Accordingly,an alternative approach is necessary where...The increasing demand for software engineers cannot completely be fulfilled by university education and conventional training approaches due to limited capacities.Accordingly,an alternative approach is necessary where potential software engineers are being educated in software engineering skills using new methods.We suggest micro tasks combined with theoretical lessons to overcome existing skill deficits and acquire fast trainable capabilities.This paper addresses the gap between demand and supply of software engineers by introducing an actionoriented and scenario-based didactical approach,which enables non-computer scientists to code.Therein,the learning content is provided in small tasks and embedded in learning factory scenarios.Therefore,different requirements for software engineers from the market side and from an academic viewpoint are analyzed and synthesized into an integrated,yet condensed skills catalogue.This enables the development of training and education units that focus on the most important skills demanded on the market.To achieve this objective,individual learning scenarios are developed.Of course,proper basic skills in coding cannot be learned over night but software programming is also no sorcery.展开更多
It is a challenge to cultivate senior and comprehensive talents in software engineering.To promote the quality of software engineering education,this paper proposes a new education model of long-term education system ...It is a challenge to cultivate senior and comprehensive talents in software engineering.To promote the quality of software engineering education,this paper proposes a new education model of long-term education system and combines Bachelor-Master degree program by mirroring the experience of higher engineering education in the world and integrating with the current situation of universities and industries in China.The proposed model joins the higher degree education with vocational education by carrying out the interdisciplinary and university-enterprise joint education.The demonstration shows that this education model has its necessity and feasibility in China higher education,and provides a reference to improve the education quality for the higher engineering education in China.展开更多
文摘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.
文摘A variety of Software Reliability Growth Models (SRGM) have been presented in literature. These models suffer many problems when handling various types of project. The reason is;the nature of each project makes it difficult to build a model which can generalize. In this paper we propose the use of Genetic Programming (GP) as an eVolutionary computation approach to handle the software reliability modeling problem. GP deals with one of the key issues in computer science which is called automatic programming. The goal of automatic programming is to create, in an automated way, a computer program that enables a computer to solve problems. GP will be used to build a SRGM which can predict accumulated faults during the software testing process. We evaluate the GP developed model and compare its performance with other common growth models from the literature. Our experiments results show that the proposed GP model is superior compared to Yamada S-Shaped, Generalized Poisson, NHPP and Schneidewind reliability models.
文摘The present study aims at improving the ability of the canonical genetic programming algorithm to solve problems, and describes an improved genetic programming (IGP). The proposed method can be described as follows: the first inves-tigates initializing population, the second investigates reproduction operator, the third investigates crossover operator, and the fourth investigates mutation operation. The IGP is examined in two domains and the results suggest that the IGP is more effective and more efficient than the canonical one applied in different domains.
基金supported by Guangdong Hardware and System Teaching and Research Office(Quality Engineeringproject No.HITSZERP22002)+2 种基金Guangdong Province Education Science Planning Project(Higher Education Project,Project No.2022GXJK431)Harbin Institute of Technology(Shenzhen)Course Ideological and Political Project(Project No.HITSZIP21003)Construction Project of Teachers College of Harbin Institute of Technology(Shenzhen)(Project No.HITSZSFXY202201)。
文摘Most current object-oriented programming courses offered by domestic colleges and universities generally focus on the object-oriented programming language itself,i.e.,the programming grammar of the language,but ignore the design pattern.However,design patterns are essential to software engineering because they can solve common problems in software design and improve code reuse,readability,extensibility,and reliability.Our Object-oriented Software Construction Course is creative since it aims at cultivating students’object-oriented thinking as well as basic abilities required to construct high-quality,object-oriented software.Specifically,we exploit the 5E teaching principle during the education of this course,and present the whole pipeline in the paper.We also provide one case of the factory pattern to further demonstrate the implementation of the 5E teaching principle in the course.The effect of the 5E teaching principle has also been demonstrated.
文摘Structural development defects essentially refer to code structure that violates object-oriented design principles. They make program maintenance challenging and deteriorate software quality over time. Various detection approaches, ranging from traditional heuristic algorithms to machine learning methods, are used to identify these defects. Ensemble learning methods have strengthened the detection of these defects. However, existing approaches do not simultaneously exploit the capabilities of extracting relevant features from pre-trained models and the performance of neural networks for the classification task. Therefore, our goal has been to design a model that combines a pre-trained model to extract relevant features from code excerpts through transfer learning and a bagging method with a base estimator, a dense neural network, for defect classification. To achieve this, we composed multiple samples of the same size with replacements from the imbalanced dataset MLCQ1. For all the samples, we used the CodeT5-small variant to extract features and trained a bagging method with the neural network Roberta Classification Head to classify defects based on these features. We then compared this model to RandomForest, one of the ensemble methods that yields good results. Our experiments showed that the number of base estimators to use for bagging depends on the defect to be detected. Next, we observed that it was not necessary to use a data balancing technique with our model when the imbalance rate was 23%. Finally, for blob detection, RandomForest had a median MCC value of 0.36 compared to 0.12 for our method. However, our method was predominant in Long Method detection with a median MCC value of 0.53 compared to 0.42 for RandomForest. These results suggest that the performance of ensemble methods in detecting structural development defects is dependent on specific defects.
文摘This paper presents a tool for managing, reusing and analysing C software code based on database techniques. The abstract information of entire software code is stored in a program database that is the conceptual scheme of the entire software, whereas the reuse component is a subscheme. Relational algebra can be conveniently used to manage, analyse and reuse C code. In the tool, we can manage, analyse and reuse any components in the program database and rapidly extract source code of any components or construct the program code of a new system. The rule system is introduced in reusing source code.
基金We gratefully acknowledge the financial support of the National Key R&D Program of China(Grant No.2017YFB0703200)the National Natural Science Foundation of China(Grant No.11772274).
文摘In order to investigate the mechanical behavior of systems with complex architecture and a large number of contacting bodies,a finite element software,named LiToTac,has been developed by using the object-oriented programming technique.This software,with an interactive graphical user interface,is able to handle highly non-linear problems including multiple contacts and large deformation.More importantly,the contact detection based on a hybrid three-stages methodology can be performed automatically,which is more efficient than the common strategies of pre-defining contact zones in commercial FEM software like ANSYS,ABAQUS,etc.In addition,the contact solver in LiToTac is portable between dynamic and quasi-static codes and can accurately solve contact coupled with friction in a reduced system.Several numerical examples are carried out to illustrate the functionality and capacity of the software package.
文摘Software debugging accounts for a vast majority of the financial and time costs in software developing and maintenance. Thus, approaches of software fault localization that can help automate the debugging process have become a hot topic in the field of software engineering. Given the great demand for software fault localization, an approach based on the artificial bee colony (ABC) algorithm is proposed to be integrated with other related techniques. In this process, the source program is initially instrumented after analyzing the dependence information. The test case sets are then compiled and run on the instrumented program, and execution results are input to the ABC algorithm. The algorithm can determine the largest fitness value and best food source by calculating the average fitness of the employed bees in the iteralive process. The program unit with the highest suspicion score corresponding to the best test case set is regarded as the final fault localization. Experiments are conducted with the TCAS program in the Siemens suite. Results demonstrate that the proposed fault localization method is effective and efficient. The ABC algorithm can efficiently avoid the local optimum, and ensure the validity of the fault location to a larger extent.
文摘Based on the new algorithm for GIS image pixel topographic factors in remote sensing monitoring ofsoil losses, a software was developed for microcomputer to carry out computation at a medium river basin(county). This paper lays its emphasis on algorithmic skills and programming techniques as well as applicationof the software.
文摘Many industrial companies and researchers are looking for more efficient model driven engineering approaches (MDE) in software engineering of manufacturing automation systems (MS) especially for logic control programming, but are uncertain about the applicability and effort needed to implement those approaches in comparison to classical Programmable Logic Controller?(PLC) programming with IEC 61131-3. The paper summarizes results of usability experiments evaluating UML and SysML as software engineering notations for a MDE applied in the domain of manufacturing systems. Modeling MS needs to cover the domain specific characteristics,?i.e.?hybrid process, real time requirements and communication requirements. In addition the paper presents factors, constraint and practical experience for the development of further usability experiments. The paper gives examples of notational expressiveness and weaknesses of UML and SysML. The appendix delivers detailed master models, representing the correct best suited model, and evaluation schemes of the experiment, which is helpful if setting up own empirical experiments.
文摘Software testing is a very important phase of the software development process. It is a very difficult job for a software manager to allocate optimally the financial budget to a software project during testing. In this paper the problem of optimal allocation of the software testing cost is studied. There exist several models focused on the development of software costs measuring the number of software errors remaining in the software during testing. The purpose of this paper is to use these models to formulate the optimization problems of resource allocation: Minimization of the total number of software errors remaining in the system. On the assumption that a software project consists of some independent modules, the presented approach extends previous work by defining new goal functions and extending the primary assumption and precondition.
文摘The developing market of information technologies i s the most dynamical and thriving business in the modern world. The law of supply and demand establishes repeating, steady cause and effect relation between three economic phenomena-price, supply and demand. Demand is an ideal need and a real opportunity of the customer to buy the goods. Supply is an ideal readiness and a real opportunity of the commodity producer to put the goods on the market . A plethora of factors affect the supply and demand. There is inverse dependenc e between the market price of the goods and the quantity which is in the demand. There is direct dependence between the market price of the goods and the qu antity which is offered to the buyer. The following features distinguish the sof tware from the usual goods in the consumer market: high science intensity, simpl icity of replicating, relative simplicity of modification and updating, high req uirements to quality of the software, at sale the buyer gets it, but it does no t disappear in sale, there is no physical deterioration, but there is a fast ob solescence. To protect the programs against the non-authorized access (the copy ings and operation) technical and legal methods are used: the patent protection, status of industrial secret, license agreements.
文摘Software is pervasive in modern society, but we are often unaware of its presence until problems arise. Software is one of the most important and yet one of the most economically challenging techniques of this era. As a purely intellectual product, it is among the most labor-intensive, complex, and error-prone technologies in human history. Until the 1970s, programmers were very meticulous in planning their code, rigorously checking code, providing detailed documentation, and exhaustive testing before the software is released to users. However, as computer became widespread, attitudes changed. Instead of meticulously planning code, the attitude of the average programmer today is possibly hacking sessions or writing any sloppy piece of code and the compiler will run diagonally, a situation called, “code and fix”, where the programmer tried to fix errors one by one until the software compiled properly. As programs grew in size and complexity, the limits of this “code and fix” approach became evident. In this paper, we studied the various reasons why software fails. Our studies reveal that the major reasons why software fails are poor or no design at all, inadequate testing of codes, and attitudinal changes among programmers and other factors.
文摘Pair Programming (PP) that has gained extensive focus within pedagogical and industrial environments is a programming practice in which two programmers use the same computer to work together on analysis, design, and programming of the same segment of code. Distributed Pair Programming (DPP) system is a programming system to aid two programmers, the driver and the navigator, to finish a common task such as analysis, design and programming on the same software from different locations. This paper first reviews the existing DPP tools and discusses the interaction and coordination mechanism in DPP process. By means of activity theory and language-action theory, some basic requirements of the DPP system are presented. Then, a design framework of such system and functions of each sub-system are deeply analyzed. Finally, a system prototype is implemented by plug-in style in Microsoft Visual Studio environment.
文摘Software engineering(SE) courses are confronted with predicaments how to cultivate students' engineering concept and how to abridge the distance between the academy and industry.The "Computing and Software Engineering,III(CSE III)" helps students mimic a real-world software development and broaden realworld SE view.With the spiral model as the main development model,the CSE III course includes not only the SE theory knowledge,but also quick learning,team cooperation,development management and risk management skills which meet the real-world industry requirements.Our contribution is providing an introductory course for multiple dimensions of knowledge,creating a real-world software development circumstance for students under quantitative control and designing a systematic and practical evaluation mechanism which stimulates the interests of students.CSE III has been executed from 2009 and obtains a valuable teaching and learning effects among our teachers,TAs and students;and we add refinements to the course according to feedbacks of participants.This paper will describe the design and practice of the CSE III course.
基金The financial support provided by the Project of National Natural Science Foundation of China(21822809&21978256)the National Science Fund for Distinguished Young(21525627)+1 种基金the Fundamental Research Funds for the Central Universities(2019XZZX004-03)Ningxia Collaborative Innovation Center for Value Upgrading of Coal-based Synthetic Resin(2017DC57)。
文摘Hydrogen management is important for refineries to improve their business efficiency.Various approaches such as pinch analysis and mathematical programming have been employed in the management of hydrogen system.However,it is not easy for site engineers to implement these techniques,due to the complicated procedures.At this point,it is necessary to develop a software that can implement the proposed methodologies automatically,which is really the goal of this work.The presented refinery hydrogen system optimization software(RHO)is a web based system.It is developed in the Java Web environment,where the subroutines of mathematical model developed in GAMS software can be easily called.RHO can generate graphics of both the hydrogen pinch diagram and the hydrogen distribution network.The purifiers as well as the physical distances between units are considered in the optimization model.In addition,there is a special module for the calculation of membrane separation,which is very important in the hydrogen network.The functions and the interfaces of the software are illustrated via practical cases.Case studies show the effectiveness of the RHO software.
文摘Firstly, it is found that process design is necessary for software process improvement after analyzing its complexity. Then, research methods and concepts framework are put forward, and the research content is also provided. The find-ings of research, including propositions of complexity of software process, the work program of complexity of software process improvement, software enterprise model and software production support structure are clarified. Finally, the demonstration, including mindbugs (cognitive barriers) in software process and the knowledge integration support structure of quality software production, is illustrated with case study. It is concluded that the research is useful for both software production and knowledge economy in the future.
文摘During the last years, we have developed the FLOPER platform for providing a practical support to the so-called Multi-Adjoint Logic Programming approach (MALP in brief), which represents an extremely flexible framework into the Fuzzy Logic Programming arena. Nowadays, FLOPER is useful for compiling (to standard Prolog code), executing and debugging (by drawing execution trees) MALP programs, and it is ready for being extended in the near future with powerful transformation and optimization techniques designed in our research group during the recent past. Our last update consists in the integration of a graphical interface for a comfortable interaction with the system which allows, among other capabilities, the use of projects for packing scripts and auxiliary definitions of fuzzy sets/connectives, together with fuzzy programs and their associated lattices modeling truth-degrees beyond the simpler crisp case ﹛true;false﹜.
基金supported in part by the Junior Research Group“ProMUT”(01UU1705B)which is funded by the German Federal Ministry of Education and Research as part of its funding initiative“Social-Ecological Research”the German Internet Institute(16DII116).
文摘The increasing demand for software engineers cannot completely be fulfilled by university education and conventional training approaches due to limited capacities.Accordingly,an alternative approach is necessary where potential software engineers are being educated in software engineering skills using new methods.We suggest micro tasks combined with theoretical lessons to overcome existing skill deficits and acquire fast trainable capabilities.This paper addresses the gap between demand and supply of software engineers by introducing an actionoriented and scenario-based didactical approach,which enables non-computer scientists to code.Therein,the learning content is provided in small tasks and embedded in learning factory scenarios.Therefore,different requirements for software engineers from the market side and from an academic viewpoint are analyzed and synthesized into an integrated,yet condensed skills catalogue.This enables the development of training and education units that focus on the most important skills demanded on the market.To achieve this objective,individual learning scenarios are developed.Of course,proper basic skills in coding cannot be learned over night but software programming is also no sorcery.
文摘It is a challenge to cultivate senior and comprehensive talents in software engineering.To promote the quality of software engineering education,this paper proposes a new education model of long-term education system and combines Bachelor-Master degree program by mirroring the experience of higher engineering education in the world and integrating with the current situation of universities and industries in China.The proposed model joins the higher degree education with vocational education by carrying out the interdisciplinary and university-enterprise joint education.The demonstration shows that this education model has its necessity and feasibility in China higher education,and provides a reference to improve the education quality for the higher engineering education in China.