In recent years,it is the general trend to adopt the standards of international engineering education certification to construct curriculum.“Software Process and Tools”is one of the core courses of Harbin Institute ...In recent years,it is the general trend to adopt the standards of international engineering education certification to construct curriculum.“Software Process and Tools”is one of the core courses of Harbin Institute of Technology’s software engineering undergraduate training program.Focusing on the construction work and practical exploration of the course in the process of reforming the software engineering professional curriculum system,and how to achieve the standards of engineering education certification,This paper makes a review and summary.This paper focuses on the status and the role of the course in the whole curriculum system,as well as project-driven teaching content design and practical teaching methods.And summarizes the experience and results of 3 rounds of teaching practice.展开更多
This paper points out various relationships between Design Knowledge and Software Engineering. After introduction of human design, the relationships between industrial Software Engineering is discussed, then further d...This paper points out various relationships between Design Knowledge and Software Engineering. After introduction of human design, the relationships between industrial Software Engineering is discussed, then further details of human design knowledge are revealed with discussions on humanistic aspects of design.展开更多
New theories,methodologies,and technologies have been continuously invented and widely applied in modern software development,along with many new tools and best practices that are of remarkable significance in the sof...New theories,methodologies,and technologies have been continuously invented and widely applied in modern software development,along with many new tools and best practices that are of remarkable significance in the software industry.In Software Engineering(SE)programs of universities,it is quite difficult for their curricula to chase after the fast-evolving technology trend.As a consequence,there have been significant challenges in designing an evolvable SE curriculum.In this paper,we present a knowledge graph based curriculum design method for SE programs.Knowledge Points(KPs)are organized into a multi-layer and multi-dimensionally annotated knowledge graph called SEKG,and five principles are applied to partition the SEKG into a set of inter-related courses.Metrics for evaluating the quality of an SE curriculum are briefly discussed.This method can not only help design a systematic curriculum from existing software engineering KPs but also facilitate curriculum evolution to adapt to technology trends.展开更多
Software requirements engineering deals with: elicitation, specification, and validation of software requirements. Furthermore there is a need to facilitate collaboration amongst stakeholders and analysts. Fewer effor...Software requirements engineering deals with: elicitation, specification, and validation of software requirements. Furthermore there is a need to facilitate collaboration amongst stakeholders and analysts. Fewer efforts were deployed to support them in performing their job on a day to day basis. To solve this problem we use knowledge management for software requirements engineering. This paper proposes a knowledge management framework, based on the SECI model of knowledge creation, aimed at exploiting tacit and explicit knowledge related to software requirements within a given software project. The core part of the proposed framework is a set of four sub systems “Socializer”;“Externalizer”;“Combiner”;and “Internalizer”, attached to a couple of domain ontologies and a set of knowledge assets. Indeed we aim to facilitate a semantic based interpretation of knowledge assets related to software requirements by restricting their interpretation through the application domain and software requirements ontologies. We anticipate that this framework would be very helpful for stakeholders as well as analysts to exchange and manage their knowledge within a given software project. We show in the case study, through a virtual payroll project using the two-step approach: domain level requirements plus design level requirements, how the key elicitation SRE techniques are used during the first phase of domain requirements elicitation through the four subsystems of our framework.展开更多
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.展开更多
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.展开更多
The fact that most engineering applications are developed by engineers themselves rather than computer professionals calls for the data modeling methods to be powerful enough to represent complex engineering phenomena...The fact that most engineering applications are developed by engineers themselves rather than computer professionals calls for the data modeling methods to be powerful enough to represent complex engineering phenomena, but simple enough to use. A data modeling method which can help engineers to write C++ code with high quality is introduced.展开更多
Nowadays software is taking a very important role in almost all aspects of our daily lives which gave great importance to the study field of Software Engineering. However, most of the current Software Engineering grad...Nowadays software is taking a very important role in almost all aspects of our daily lives which gave great importance to the study field of Software Engineering. However, most of the current Software Engineering graduates in Jordan lack the required knowledge and skills to join software industry because of many reasons. This research investigates these reasons by firstly analyzing more than 1000 software job listings in Jordanian and Gulf area e-recruitment services in order to discover the skills and knowledge areas that are mostly required by software industry in Jordan and the Gulf area, and secondly comparing these knowledge areas and skills with those provided by the Software Engineering curricula at the Jordanian Universities. The awareness of the Software Engineering students and academic staff of the concluded mostly required knowledge areas and skills is measured using two questionnaires. Recommendations to decrease the gap between Software Engineering academia and industry had also been taken from a sample of software companies’ manager using a third questionnaire. The results of this research revealed that many important skills such as Web applications development are very poorly covered by Software engineering curricula and that many Software engineering students and academic staffs are not aware about many of the mostly needed skills to join industry.展开更多
Requirement engineering in any software development is the most important phase to ensure the success or failure of software. Knowledge modeling and management are helping tools to learn the software organizations. Th...Requirement engineering in any software development is the most important phase to ensure the success or failure of software. Knowledge modeling and management are helping tools to learn the software organizations. The traditional Requirements engineering practices are based upon the interaction of stakeholders which causes iteratively changes in requirements and difficulties in communication and understanding problem domain etc. So, to resolve such issues we use knowledge based techniques to support the RE practices as well as software development process. Our technique is based on two prospective, theoretical and practical implementations. In this paper, we described the need of knowledge management in software engineering and then proposed a model based on knowledge management to support the software development process. To verify our results, we used controlled experiment approach. We have implemented our model, and verify results by using and without using proposed knowledge based RE process. Our resultant proposed model can save the overall cost and time of requirement engineering process as well as software development.展开更多
Requirements of a system keep on changing based on the need of stakeholders or the system developers, making requirement engineering an important aspect in software development. This develops a need for appropriate re...Requirements of a system keep on changing based on the need of stakeholders or the system developers, making requirement engineering an important aspect in software development. This develops a need for appropriate requirement change management. The importance of requirements traceability is defining relationships between the requirements and artefacts extracted by the stakeholder during the software development life-cycle and gives vital information to encourage software understanding. In this paper, we have concentrated on developing a tool for requirement traceability that can be used to extend the requirement elicitation and identification of system-wide qualities using the notion of quality attribute scenarios to capture the non-functional requirements. It allows us to link the functional and non-functional requirements of the system based on the quality attribute scenarios template proposed by the Carnegie Mellon Software Engineering Institute (SEI). Apart from this, the paper focuses on tracing the functional and non-functional requirements of the system using the concept of requirement traceability matrix.展开更多
In this paper, it is emphasized that taking into consideration of imperfection of knowledge, of the team of the designers/developers, about the problem domains and environments is essential in order to develop robust ...In this paper, it is emphasized that taking into consideration of imperfection of knowledge, of the team of the designers/developers, about the problem domains and environments is essential in order to develop robust software metrics and systems. In this respect, first various possible types of imperfections in knowledge are discussed and then various available formal/mathematical models for representing and handling these imperfections are discussed. The discussion of knowledge classification & representation is from computational perspective and that also within the context of software development enterprise, and not necessarily from organizational management, from library & information science, or from psychological perspectives.展开更多
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.展开更多
This paper gives an introduction to the essential challenges of software engineering and requirements that software has to fulfill in the domain of automation. Besides, the functional characteristics, specific constra...This paper gives an introduction to the essential challenges of software engineering and requirements that software has to fulfill in the domain of automation. Besides, the functional characteristics, specific constraints and circumstances are considered for deriving requirements concerning usability, the technical process, the automation functions, used platform and the well-established models, which are described in detail. On the other hand, challenges result from the circumstances at different points in the single phases of the life cycle of the automated system. The requirements for life-cycle-management, tools and the changeability during runtime are described in detail.展开更多
It is urgent to solve various problems in electromagnetic (EM) engineering under the increasingly complicated environment. Some expert systems (ES) come into being just to keep up with the demand for solving these...It is urgent to solve various problems in electromagnetic (EM) engineering under the increasingly complicated environment. Some expert systems (ES) come into being just to keep up with the demand for solving these problems. Combined with the analysis of development orES technology and the development trend of EM engineering software in recent years, the application orES technology in EM engineering is discussed, and especially the progress of complete ES in electromagnetic compatible (EMC) is introduced.展开更多
The technology of knowledge base remote design of the smart fuzzy controllers with the application of the"Soft/quantum computing optimizer"toolkit software developed.The possibility of the transmission...The technology of knowledge base remote design of the smart fuzzy controllers with the application of the"Soft/quantum computing optimizer"toolkit software developed.The possibility of the transmission and communication the knowledge base using remote connection to the control object considered.Transmission and communication of the fuzzy controller’s knowledge bases implemented through the remote connection with the control object in the online mode apply the Bluetooth or WiFi technologies.Remote transmission of knowledge bases allows designing many different built-in intelligent controllers to implement a variety of control strategies under conditions of uncertainty and risk.As examples,two different models of robots described(mobile manipulator and(“cart-pole”system)inverted pendulum).A comparison of the control quality between fuzzy controllers and quantum fuzzy controller in various control modes is presented.The ability to connect and work with a physical model of control object without using than mathematical model demonstrated.The implemented technology of knowledge base design sharing in a swarm of intelligent robots with quantum controllers.It allows to achieve the goal of control and to gain additional knowledge by creating a new quantum hidden information source based on the synergetic effect of combining knowledge.Development and implementation of intelligent robust controller’s prototype for the intelligent quantum control system of mega-science project NICA(at the first stage for the cooling system of superconducted magnets)is discussed.The results of the experiments demonstrate the possibility of the ensured achievement of the control goal of a group of robots using soft/quantum computing technologies in the design of knowledge bases of smart fuzzy controllers in quantum intelligent control systems.The developed software toolkit allows to design and setup complex ill-defined and weakly formalized technical systems on line.展开更多
The first part of this paper reviews our efforts on knowledge-based software engineering, namely PROMIS, started from 1990s. The key point of PROMIS is to generate applications automatically based on domain knowledge ...The first part of this paper reviews our efforts on knowledge-based software engineering, namely PROMIS, started from 1990s. The key point of PROMIS is to generate applications automatically based on domain knowledge as well as software knowledge. That is featured by separating the development of domain knowledge from the development of software. But in PROMIS, we did not find an appropriate representation for the domain knowledge. Fortunately, in our recent work, we found such a carrier for knowledge modules, i.e. knowware. Knowware is a commercialized form of domain knowledge. This paper briefly introduces the basic definitions of knowware, knowledge middleware and knowware engineering. Three life circle models of knowware engineering and the design of corresponding knowware implementations are given. Finally we discuss application system automatic generation and domain knowledge modeling on the J2EE platform, which combines the techniques of PROMIS, knowware and J2EE, and the development and deployment framework, i.e. PROMIS/KW**.展开更多
文摘In recent years,it is the general trend to adopt the standards of international engineering education certification to construct curriculum.“Software Process and Tools”is one of the core courses of Harbin Institute of Technology’s software engineering undergraduate training program.Focusing on the construction work and practical exploration of the course in the process of reforming the software engineering professional curriculum system,and how to achieve the standards of engineering education certification,This paper makes a review and summary.This paper focuses on the status and the role of the course in the whole curriculum system,as well as project-driven teaching content design and practical teaching methods.And summarizes the experience and results of 3 rounds of teaching practice.
文摘This paper points out various relationships between Design Knowledge and Software Engineering. After introduction of human design, the relationships between industrial Software Engineering is discussed, then further details of human design knowledge are revealed with discussions on humanistic aspects of design.
文摘New theories,methodologies,and technologies have been continuously invented and widely applied in modern software development,along with many new tools and best practices that are of remarkable significance in the software industry.In Software Engineering(SE)programs of universities,it is quite difficult for their curricula to chase after the fast-evolving technology trend.As a consequence,there have been significant challenges in designing an evolvable SE curriculum.In this paper,we present a knowledge graph based curriculum design method for SE programs.Knowledge Points(KPs)are organized into a multi-layer and multi-dimensionally annotated knowledge graph called SEKG,and five principles are applied to partition the SEKG into a set of inter-related courses.Metrics for evaluating the quality of an SE curriculum are briefly discussed.This method can not only help design a systematic curriculum from existing software engineering KPs but also facilitate curriculum evolution to adapt to technology trends.
文摘Software requirements engineering deals with: elicitation, specification, and validation of software requirements. Furthermore there is a need to facilitate collaboration amongst stakeholders and analysts. Fewer efforts were deployed to support them in performing their job on a day to day basis. To solve this problem we use knowledge management for software requirements engineering. This paper proposes a knowledge management framework, based on the SECI model of knowledge creation, aimed at exploiting tacit and explicit knowledge related to software requirements within a given software project. The core part of the proposed framework is a set of four sub systems “Socializer”;“Externalizer”;“Combiner”;and “Internalizer”, attached to a couple of domain ontologies and a set of knowledge assets. Indeed we aim to facilitate a semantic based interpretation of knowledge assets related to software requirements by restricting their interpretation through the application domain and software requirements ontologies. We anticipate that this framework would be very helpful for stakeholders as well as analysts to exchange and manage their knowledge within a given software project. We show in the case study, through a virtual payroll project using the two-step approach: domain level requirements plus design level requirements, how the key elicitation SRE techniques are used during the first phase of domain requirements elicitation through the four subsystems of our framework.
文摘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.
文摘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.
文摘The fact that most engineering applications are developed by engineers themselves rather than computer professionals calls for the data modeling methods to be powerful enough to represent complex engineering phenomena, but simple enough to use. A data modeling method which can help engineers to write C++ code with high quality is introduced.
文摘Nowadays software is taking a very important role in almost all aspects of our daily lives which gave great importance to the study field of Software Engineering. However, most of the current Software Engineering graduates in Jordan lack the required knowledge and skills to join software industry because of many reasons. This research investigates these reasons by firstly analyzing more than 1000 software job listings in Jordanian and Gulf area e-recruitment services in order to discover the skills and knowledge areas that are mostly required by software industry in Jordan and the Gulf area, and secondly comparing these knowledge areas and skills with those provided by the Software Engineering curricula at the Jordanian Universities. The awareness of the Software Engineering students and academic staff of the concluded mostly required knowledge areas and skills is measured using two questionnaires. Recommendations to decrease the gap between Software Engineering academia and industry had also been taken from a sample of software companies’ manager using a third questionnaire. The results of this research revealed that many important skills such as Web applications development are very poorly covered by Software engineering curricula and that many Software engineering students and academic staffs are not aware about many of the mostly needed skills to join industry.
文摘Requirement engineering in any software development is the most important phase to ensure the success or failure of software. Knowledge modeling and management are helping tools to learn the software organizations. The traditional Requirements engineering practices are based upon the interaction of stakeholders which causes iteratively changes in requirements and difficulties in communication and understanding problem domain etc. So, to resolve such issues we use knowledge based techniques to support the RE practices as well as software development process. Our technique is based on two prospective, theoretical and practical implementations. In this paper, we described the need of knowledge management in software engineering and then proposed a model based on knowledge management to support the software development process. To verify our results, we used controlled experiment approach. We have implemented our model, and verify results by using and without using proposed knowledge based RE process. Our resultant proposed model can save the overall cost and time of requirement engineering process as well as software development.
文摘Requirements of a system keep on changing based on the need of stakeholders or the system developers, making requirement engineering an important aspect in software development. This develops a need for appropriate requirement change management. The importance of requirements traceability is defining relationships between the requirements and artefacts extracted by the stakeholder during the software development life-cycle and gives vital information to encourage software understanding. In this paper, we have concentrated on developing a tool for requirement traceability that can be used to extend the requirement elicitation and identification of system-wide qualities using the notion of quality attribute scenarios to capture the non-functional requirements. It allows us to link the functional and non-functional requirements of the system based on the quality attribute scenarios template proposed by the Carnegie Mellon Software Engineering Institute (SEI). Apart from this, the paper focuses on tracing the functional and non-functional requirements of the system using the concept of requirement traceability matrix.
文摘In this paper, it is emphasized that taking into consideration of imperfection of knowledge, of the team of the designers/developers, about the problem domains and environments is essential in order to develop robust software metrics and systems. In this respect, first various possible types of imperfections in knowledge are discussed and then various available formal/mathematical models for representing and handling these imperfections are discussed. The discussion of knowledge classification & representation is from computational perspective and that also within the context of software development enterprise, and not necessarily from organizational management, from library & information science, or from psychological perspectives.
文摘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.
文摘This paper gives an introduction to the essential challenges of software engineering and requirements that software has to fulfill in the domain of automation. Besides, the functional characteristics, specific constraints and circumstances are considered for deriving requirements concerning usability, the technical process, the automation functions, used platform and the well-established models, which are described in detail. On the other hand, challenges result from the circumstances at different points in the single phases of the life cycle of the automated system. The requirements for life-cycle-management, tools and the changeability during runtime are described in detail.
基金the Key Project of Chinese Ministry of Education (No. 104166)
文摘It is urgent to solve various problems in electromagnetic (EM) engineering under the increasingly complicated environment. Some expert systems (ES) come into being just to keep up with the demand for solving these problems. Combined with the analysis of development orES technology and the development trend of EM engineering software in recent years, the application orES technology in EM engineering is discussed, and especially the progress of complete ES in electromagnetic compatible (EMC) is introduced.
文摘The technology of knowledge base remote design of the smart fuzzy controllers with the application of the"Soft/quantum computing optimizer"toolkit software developed.The possibility of the transmission and communication the knowledge base using remote connection to the control object considered.Transmission and communication of the fuzzy controller’s knowledge bases implemented through the remote connection with the control object in the online mode apply the Bluetooth or WiFi technologies.Remote transmission of knowledge bases allows designing many different built-in intelligent controllers to implement a variety of control strategies under conditions of uncertainty and risk.As examples,two different models of robots described(mobile manipulator and(“cart-pole”system)inverted pendulum).A comparison of the control quality between fuzzy controllers and quantum fuzzy controller in various control modes is presented.The ability to connect and work with a physical model of control object without using than mathematical model demonstrated.The implemented technology of knowledge base design sharing in a swarm of intelligent robots with quantum controllers.It allows to achieve the goal of control and to gain additional knowledge by creating a new quantum hidden information source based on the synergetic effect of combining knowledge.Development and implementation of intelligent robust controller’s prototype for the intelligent quantum control system of mega-science project NICA(at the first stage for the cooling system of superconducted magnets)is discussed.The results of the experiments demonstrate the possibility of the ensured achievement of the control goal of a group of robots using soft/quantum computing technologies in the design of knowledge bases of smart fuzzy controllers in quantum intelligent control systems.The developed software toolkit allows to design and setup complex ill-defined and weakly formalized technical systems on line.
基金the National Natural Science Foundation of China for Distinguished Young Scholars (Grant No. 60625204)the Key Project of National Natural Science Foundation of China (Grant Nos. 60736011, 60496324 and 60603002)
文摘The first part of this paper reviews our efforts on knowledge-based software engineering, namely PROMIS, started from 1990s. The key point of PROMIS is to generate applications automatically based on domain knowledge as well as software knowledge. That is featured by separating the development of domain knowledge from the development of software. But in PROMIS, we did not find an appropriate representation for the domain knowledge. Fortunately, in our recent work, we found such a carrier for knowledge modules, i.e. knowware. Knowware is a commercialized form of domain knowledge. This paper briefly introduces the basic definitions of knowware, knowledge middleware and knowware engineering. Three life circle models of knowware engineering and the design of corresponding knowware implementations are given. Finally we discuss application system automatic generation and domain knowledge modeling on the J2EE platform, which combines the techniques of PROMIS, knowware and J2EE, and the development and deployment framework, i.e. PROMIS/KW**.