In the paper the basic elements of CAD systems from software point of view are dis- cussed.The creation and next the modification of CAD systems needs specialized software tools.In the paper the idea computer Aided So...In the paper the basic elements of CAD systems from software point of view are dis- cussed.The creation and next the modification of CAD systems needs specialized software tools.In the paper the idea computer Aided Software Engineering(CASE)for CAD systems production and practi- cal software realization of such a software tool is considered.The main element of this tool is special program provided for convenient storage and modification of CAD source program.In the paper the simple examples are presented and discussed.展开更多
In order to enhance the abilities of practical innovation and solving complex engineering problems of students in the engineering context,we design a course cluster teaching model based on a unified enterprise-level p...In order to enhance the abilities of practical innovation and solving complex engineering problems of students in the engineering context,we design a course cluster teaching model based on a unified enterprise-level project case.The program divides the knowledge points required by the project into the corresponding courses,and divides their realization into the practical teaching cases,so as to realize the design of teaching practice cases embodied in the unified project framework.This model allows students to practice projects based on the unified project background while learning knowledge from different courses.It not only allows students to learn abstract,fragmented,and difficult-to-understand knowledge systems thoroughly,but also integrates the knowledge into the practice of the enterprise-level project development,helping students experience the value of knowledge in complex engineering projects and thus improving their ability to solve complex engineering problems while learning theoretical knowledge.展开更多
The work of software engineers is inherently cognitive. Integral to their duties is understanding and developing several artifacts. Each one is based on a specific model and a given level of abstraction. What distingu...The work of software engineers is inherently cognitive. Integral to their duties is understanding and developing several artifacts. Each one is based on a specific model and a given level of abstraction. What distinguishes Software Engineering is the logical complexity of some artifacts (especially programs), the high dependency among them, and the fact that the success of the software project also depends on the human and social factors, which characterize the engineers as individuals and as a group. The complexity of the daily tasks within a software development team motivates the investigation on the relevance of automating the software professionals’ cognitive processes in order to make their work easier and more efficient. The success of this endeavor is expected to emerge as Cognitive Software Engineering. For this aim, the present article suggests a research framework and roadmap, which build on the current state of the art. Some future directions in the Cognitive Software Engineering are presented.展开更多
In order to remain competitive in software industry, software engineers need to continuously improve their proficiency. Personal Software Process (PSPSM) provides a strong concept which helps software engineers inspec...In order to remain competitive in software industry, software engineers need to continuously improve their proficiency. Personal Software Process (PSPSM) provides a strong concept which helps software engineers inspecting and improving themselves. Yet, when being applied on an undergraduate computer engineering course, several complex mathematical calculations from PSP official exercises could encumber the performance of students who do not possess adequate mathematics background. This paper reports a result of implementing PSP course for undergraduate computer engineering students in Chiang Mai University, Thailand.展开更多
Search-based software engineering has mainly dealt with automated test data generation by metaheuristic search techniques. Similarly, we try to generate the test data (i.e., problem instances) which show the worst cas...Search-based software engineering has mainly dealt with automated test data generation by metaheuristic search techniques. Similarly, we try to generate the test data (i.e., problem instances) which show the worst case of algorithms by such a technique. In this paper, in terms of non-functional testing, we re-define the worst case of some algorithms, respectively. By using genetic algorithms (GAs), we illustrate the strategies corresponding to each type of instances. We here adopt three problems for examples;the sorting problem, the 0/1 knapsack problem (0/1KP), and the travelling salesperson problem (TSP). In some algorithms solving these problems, we could find the worst-case instances successfully;the successfulness of the result is based on a statistical approach and comparison to the results by using the random testing. Our tried examples introduce informative guidelines to the use of genetic algorithms in generating the worst-case instance, which is defined in the aspect of algorithm performance.展开更多
In this paper, we identify a set of factors that may be used to forecast software productivity and software development time. Software productivity was measured in function points per person hours, and software develo...In this paper, we identify a set of factors that may be used to forecast software productivity and software development time. Software productivity was measured in function points per person hours, and software development time was measured in number of elapsed days. Using field data on over 130 field software projects from various industries, we empirically test the impact of team size, integrated computer aided software engineering (ICASE) tools, software development type, software development platform, and programming language type on the software development productivity and development time. Our results indicate that team size, software development type, software development platform, and programming language type significantly impact software development productivity. However, only team size significantly impacts software development time. Our results indicate that effective management of software development teams, and using different management strategies for different software development type environments may improve software development productivity.展开更多
文摘In the paper the basic elements of CAD systems from software point of view are dis- cussed.The creation and next the modification of CAD systems needs specialized software tools.In the paper the idea computer Aided Software Engineering(CASE)for CAD systems production and practi- cal software realization of such a software tool is considered.The main element of this tool is special program provided for convenient storage and modification of CAD source program.In the paper the simple examples are presented and discussed.
基金supported by the 2019 Research Project of Graduate Education and Teaching Reform of Shandong Province(SDYJG19084)the 2022 Graduate Quality Education Teaching Resources Project of Shandong Province(SDYAL2022078)。
文摘In order to enhance the abilities of practical innovation and solving complex engineering problems of students in the engineering context,we design a course cluster teaching model based on a unified enterprise-level project case.The program divides the knowledge points required by the project into the corresponding courses,and divides their realization into the practical teaching cases,so as to realize the design of teaching practice cases embodied in the unified project framework.This model allows students to practice projects based on the unified project background while learning knowledge from different courses.It not only allows students to learn abstract,fragmented,and difficult-to-understand knowledge systems thoroughly,but also integrates the knowledge into the practice of the enterprise-level project development,helping students experience the value of knowledge in complex engineering projects and thus improving their ability to solve complex engineering problems while learning theoretical knowledge.
文摘The work of software engineers is inherently cognitive. Integral to their duties is understanding and developing several artifacts. Each one is based on a specific model and a given level of abstraction. What distinguishes Software Engineering is the logical complexity of some artifacts (especially programs), the high dependency among them, and the fact that the success of the software project also depends on the human and social factors, which characterize the engineers as individuals and as a group. The complexity of the daily tasks within a software development team motivates the investigation on the relevance of automating the software professionals’ cognitive processes in order to make their work easier and more efficient. The success of this endeavor is expected to emerge as Cognitive Software Engineering. For this aim, the present article suggests a research framework and roadmap, which build on the current state of the art. Some future directions in the Cognitive Software Engineering are presented.
文摘In order to remain competitive in software industry, software engineers need to continuously improve their proficiency. Personal Software Process (PSPSM) provides a strong concept which helps software engineers inspecting and improving themselves. Yet, when being applied on an undergraduate computer engineering course, several complex mathematical calculations from PSP official exercises could encumber the performance of students who do not possess adequate mathematics background. This paper reports a result of implementing PSP course for undergraduate computer engineering students in Chiang Mai University, Thailand.
文摘Search-based software engineering has mainly dealt with automated test data generation by metaheuristic search techniques. Similarly, we try to generate the test data (i.e., problem instances) which show the worst case of algorithms by such a technique. In this paper, in terms of non-functional testing, we re-define the worst case of some algorithms, respectively. By using genetic algorithms (GAs), we illustrate the strategies corresponding to each type of instances. We here adopt three problems for examples;the sorting problem, the 0/1 knapsack problem (0/1KP), and the travelling salesperson problem (TSP). In some algorithms solving these problems, we could find the worst-case instances successfully;the successfulness of the result is based on a statistical approach and comparison to the results by using the random testing. Our tried examples introduce informative guidelines to the use of genetic algorithms in generating the worst-case instance, which is defined in the aspect of algorithm performance.
文摘In this paper, we identify a set of factors that may be used to forecast software productivity and software development time. Software productivity was measured in function points per person hours, and software development time was measured in number of elapsed days. Using field data on over 130 field software projects from various industries, we empirically test the impact of team size, integrated computer aided software engineering (ICASE) tools, software development type, software development platform, and programming language type on the software development productivity and development time. Our results indicate that team size, software development type, software development platform, and programming language type significantly impact software development productivity. However, only team size significantly impacts software development time. Our results indicate that effective management of software development teams, and using different management strategies for different software development type environments may improve software development productivity.