INTEGRATED SOFTWARE ENGINEERING AND KNOWLEDGE ENGINEERING TEACHING EXPERIENCES

Author(s):  
O. DIESTE ◽  
N. JURISTO ◽  
A. M. MORENO ◽  
M. LOPEZ

This paper presents the motivations, experiences and results of teaching integrated Software Engineering (SE) and Knowledge Engineering (KE), specifically as part of the master course organized by the Polytechnic University of Madrid (School of Computer Science). The paper outlines a possible approach to this instruction, whose aim is for software practitioners thus educated to have a flexible and moldable view of the software systems development process. This broad and malleable approach allows future practitioners to better address the increasingly more complex, divergent and innovative problems and needs raised by users. This approach is the result of a gradual and continuous process. This paper discusses the current stage of integration, giving a detailed description and justification of the scope of the integrated instruction. For the purpose of quantitatively analyzing this experience, the paper also shows the results of the evaluation conducted throughout this process at three levels (industry, students and projects).

Author(s):  
Haiping Xu

Software Engineering (SE) and Knowledge Engineering (KE) are closely related disciplines with goals of turning the development process of software systems and knowledge-based systems, respectively, into engineering disciplines. In particular, they together can provide systematic approaches for engineering intelligent software systems more efficiently and cost-effectively. As there is a large overlap between the two disciplines, the interplay is vital for both to be successful. In this paper, we divide the intersection of SE and KE into three subareas, namely Knowledge-Supported Software Engineering (KSSE), Engineering Knowledge as a Software (EKaaS), and Intelligent Software System Engineering (ISSE). For each subarea, we describe the challenges along with the current trends, and predict the future research directions that may have the most potential for success.


Author(s):  
Raghavendra Rao Althar ◽  
Debabrata Samanta

The chapter focuses on exploring the work done for applying data science for software engineering, focusing on secured software systems development. With requirements management being the first stage of the life cycle, all the approaches that can help security mindset right at the beginning are explored. By exploring the work done in this area, various key themes of security and its data sources are explored, which will mark the setup of base for advanced exploration of the better approaches to make software systems mature. Based on the assessments of some of the work done in this area, possible prospects are explored. This exploration also helps to emphasize the key challenges that are causing trouble for the software development community. The work also explores the possible collaboration across machine learning, deep learning, and natural language processing approaches. The work helps to throw light on critical dimensions of software development where security plays a key role.


Author(s):  
Anas AL-Badareen

    Abstract— Since the idea of software reuse appeared in 1968, software reuse has become a software engineering discipline. Software reuse is one of the main techniques used to enhance the productivity of software development, which it helps reducing the time, effort, and cost of developing software systems, and enhances the quality of software products. However, software reuse requires understanding, modifying, adapting and testing processes in order to be performed correctly and efficiently. This study aims to analyze and discuss the process of software reuse, identify its elements, sources and usages. The alternatives of acquiring and using software assets either normal or reusable assets are discussed. As a result of this study, four main methods are proposed in order to use the concept of reuse in the software development process. These methods are proposed based on the source of software assets regardless the types of software assets and their usages.


Author(s):  
Mehmet Kaya ◽  
James W. Fawcett

Software development is a continuous process that usually starts with analyzing the system requirements and proceeds with design, implementation, testing, and maintenance. Regardless of how good an initial design was achieved, quality of source code tends to decay throughout the development process as software evolves. One of the main contributing factors to this degradation of initial quality can be considered as maintenance operations, for instance to enhance performance or other attributes of the system or to fix newly discovered bugs. For such large software systems, development process also requires reusing existing components which may have been implemented by others. Hence, a comprehensible piece of source code, e.g. one that conveys its message about what it is trying to do easily with understandable and modular implementation, significantly reduces time and effort not only for the implementation phase of the development lifecycle; but also for testing and maintenance phases. In other words, while software decay is inevitable, software comprehension plays a determining role in the total cost and effectiveness of both implementation phase and maintenance phase. Therefore, developers should strive to create software components with modular structure and clearer implementation to reduce the development cost. In this paper, we are interested in finding ways to successfully decompose long methods (those with poor initial implementation and/or decayed overtime) into smaller, more comprehensible and readable ones. This decomposition process is known as extract method refactoring and helps to reduce the overall cost of development. Most of the existing refactoring tools require users to select the code fragments that need to be extracted. We introduce a novel technique for this refactoring. This technique seeks refactoring opportunities based on variable declarations and uses confining fully extractable code regions without any user intervention. We implemented this technique as an analysis and visualization tool to help a user identify candidate code fragments to be extracted as separate methods. With this automation tool, developers do not have to manually inspect a foreign code base to select code fragments for refactoring. Through the visual representations we provide, one can observe all suggested refactoring effectively on large scale software systems and decide whether a particular refactoring should be applied. To show the effectiveness of our techniques, we also provide some case studies conducted using this tool and technique both on our own project’s source code and other open-source projects.


Author(s):  
SILVIA T. ACUÑA ◽  
MARTA LOPEZ ◽  
NATALIA JURISTO ◽  
ANA MORENO

Software engineering (SE) and knowledge engineering (KE) develop software systems using different construction process models. Because of the growing complexity of the problems to be solved by computers, the conventional systems (CS) and knowledge-based systems (KBS) software process is at present passing through a period of integration. In this paper, we propose a software process model applicable to both CS and KBS. The model designed is declarative, that is, it indicates what is done to build a software system. Its goal is to provide software and knowledge engineers with a techno-conceptual tool to develop systems comprising both traditional and knowledge-based software.


2011 ◽  
Vol 121-126 ◽  
pp. 3875-3879
Author(s):  
Hui Pu Xu ◽  
Xiao Feng Yao

The actuality that SHCAN2000 system relies on FIX configuration software has limited its application scope significantly. In this paper, the interface card what accord with OPC specification was realized through applying LM3S8962 microcontroller and OPC technology, the opening performance of data acquisition system was greatly improved, which can effectively avoid the repeatability of development process and incompatibility of many integrated software systems, at the same time, the standardization of hardware and software was also fulfilled the requirements. The improved Field Bus control system has a broader application prospect in industrial control field.


Author(s):  
JUAN CARLOS AUGUSTO ◽  
RODOLFO SABAS GOMEZ

Software systems have evolved from monolithic programs to systems constructed from parallel, cooperative components, as can be currently found in object-oriented applications. Although powerful, these cooperative systems are also more difficult to verify. We show that it is possible to automatically translate a PARADIGM specification to a Propositional Linear Temporal Logic based program. This has several interesting consequences: a) on one hand we allow a more declarative view of PARADIGM specifications, b) the resulting translation is an executable specification and c) as we show in this work it can also be used to verify correctness properties by automatic means. We think this will contribute to enhance the understanding, usability and further development of PARADIGM, and related methods like SOCCA, within both the Software Engineering and the Knowledge Engineering communities.


Sign in / Sign up

Export Citation Format

Share Document