Software engineering and knowledge engineering
Program Structure. Course Description. Study Plan. Course Plan. Life in KU. Life in Thailand. International Collaborations. Joint Degree Programs. Student Exchanges. Now, there are new platforms for integration and interoperability between different information systems. It is based on the combination of basic services own or outside that provide the functionality at business level for a specific domain problem.
These services are orchestrated to perform more complex tasks, becoming composite services. These ubiquitous real-time services can be sold as a product, which is the origin of Cloud computing. On the other hand, customers demand several applications to be used in their smartphones, tablets, or laptops.
The applications i. They are grouped into virtual stores and many of them are free, so usually they are closer to marketing challenges than software development challenges. They tend to be more dynamic than traditional programs and are the ultimate expression of agile methods and MDA. Reporting the history of the SE methodologies was hard work outside of this paper.
This section collects a brief summary of the distinctive features of several selected SE development methodologies. We identify three groups of methodologies: structured methodologies, object-oriented methodologies, and agile methodologies.
Table 2 summarizes the most relevant methodologies including the main features of structured methodologies are some of them obsolete, but with a clear influence on today's methods. First techniques that could be called methodologies, such as SREM and SADT, extended the concepts of modularization and information hiding, previously applied in structured programming, from design to specification phase.
Object-oriented methodologies apply the OO programming paradigm OOP , which came to represent in the nineties what structured programming was for the seventies. OOP defines the software as a set of objects that interact with each other. Their purpose is getting more consistent, robust, and reusable software systems. Since the nineties, modeling is the core in all the activities executed during software development.
When OO methodologies are applied, the building software process starts with the problem domain model. This model will gradually evolve towards the solution domain models, being the last model the OO code. This modeling approach was applied by a great number of OO methods. After this rush of new methodologies, conflicts began to appear between similar methods, each one with its own alternative approach.
Due to this fact, rational proposed an integration of different projects led by the creators of the main methods, which led to the design of a Unified Modeling Language UML. This integration provided interoperability to OO-based methodologies, which helped the stabilization of the OO market. The current version of UML is 2. Agile methods promote a disciplined project management process that encourages frequent inspection and adaptation.
These methodologies are based on iterative development. Their basie foundations were published in the Agile Manifesto by a groups of software practitioners and consultants [ 20 ].
These focal values are: individuals and iterations over processes and tools, working out software over comprehensive documentation, customer collaborations over contract negotiations, and responding to changes over following a plan. Agile methods break the tasks into small increments with minimal planning, each one called timebox.
Each iteration is a full development cycle, generating a release that needs to be demonstrated to stakeholders. A method can be considered agile when software development is incremental small software releases, with rapid cycles , cooperative customer and developers working together with close communication , straightforward the method itself is easy to learn and to modify , and adaptive able to make last moment changes.
Currently due to the popularity of mobile applications apps , methodologies need to migrate to this new kind of software products. An app can be property of private programmers or any enterprise. They do not usually embody complex programming skills. However, programmers have to manage a wide array of screen sizes, hardware specifications and configurations because of intense competition in mobile platforms. However, there is not a new methodology for this kind of software; we believe that agile methods are a good alternative.
Knowledge engineering KE is another computer science field that shares some of the SE objectives. KE is required when the software to be developed has to behave in a heuristic way. Due to the fact that the two disciplines propose building software using engineering principles, there should be similarities between the methods, techniques, and tools used in both fields. In fact, they have experimented a similar evolution but almost with a decade of delay.
However, KE and SE have ignored each other, against some basic principles of any engineering e. We summarize KE evolution in Table 3. In this stage, knowledge engineering had not yet appeared.
The term Artificial Intelligence AI was coined, although some authors such as Alan Turing from to had previously made proposals close to what would later be called AI. But these techniques were insufficient to solve real concrete problems, since they required specific domain knowledge rather than general knowledge, for which techniques for transferring knowledge from the expert to computers are required.
Due to the lack of clear methods, the transition of KBSs from research to commercial products was a failure in most cases. As no engineering method existed, the development process had to face many problems. Time and cost estimates were not satisfied, products did not meet the customers' expectations, and maintenance and testing tasks became costly. Basically, building a KBS was conceived as a process of transferring human expert knowledge to a computer knowledge base [ 21 ].
In this approach, knowledge acquisition became the most important task as well as the main bottleneck in KBS development. In the same way the software crisis resulted in establishing SE as a discipline; early KBSs development problems made clear the need for more methodological approaches and a better analysis of the process applied [ 26 ]; knowledge engineering was born.
Moreover, the wide scope of applicability of Artificial Intelligence techniques drove this discipline to specialize and diversify in new disciplines such as data mining, computer vision, and pattern recognition.
This approach is based on the knowledge level concept proposed by Nevell, in which a level above the symbolic level provides sufficient abstraction for the knowledge to be represented, regardless of its implementation [ 27 ]. Once KBS development was defined as a modeling process and generic knowledge models were identified, a methodology to assist in the specification of the different models was required.
Based on these ideas, a second generation of KE methodologies came to light. They represented the first attempts to provide a complete methodology for the entire KBS development lifecycle. Moreover, as in SE, the need to improve productivity led to the empowerment of knowledge component reuse, in the same way that classes and objects are reused in object-oriented development.
The new concept of distributed software was also extended to KBS, making it possible to apply this technology to a wider range of domains and more complex problems. During the last decade, the exponential growth of information on the World Wide Web WWW made the ability to understand and manage the semantics of the data of paramount importance for the successful discovery, sharing, distribution, and organization of this information.
Thus new challenges, such us those related to the recovery, extraction, publication, and sharing of knowledge on the WWW, have to be confronted. Two new interrelated disciplines have emerged to help face these problems, ontological engineering [ 31 ] and Semantic Web [ 32 ].
They conceive the WWW as an intelligent network, where computers are able to understand data and then use them to infer new conclusions. In an era dominated by communications, the availability of large amounts of data about specific areas of application requires the use of machine learning and data mining techniques to make it possible for computers to learn. Such programs must be able to generalize behavior from unstructured information available in the form of examples and on the WWW [ 33 ].
An important issue in this stage is related to making AI techniques commercially viable to extend them to a new generation of consumer products, such as interactive smart toys, or their application to specific domains in which, up to now, they had not entered, such as SE itself i. Moreover, the widening scope of software solutions covers larger, more commercially complex systems, in which the need for software systems to be able to coordinate information and knowledge management in a single product is evident.
The development of this kind of software should be approached from a coordinated application of KE and SE methodologies, because products generated by both development approaches can be combined, giving end users a single view of the software product. This is the main aim of a new methodological approach called SKEngineering [ 35 ].
Originally, pioneering KBS development methodologies focused on acquiring knowledge. Software construction was understood as the transfer and transformation of experience in problem-solving knowledge from any source in most cases a human expert to computer software. According to Buchanan et al. The most relevant KE methods are summarized in Table 4. Buchanans main contribution was identification of knowledge acquisition as the KBS development bottleneck.
Buchanan proposed a knowledge acquisition lifecycle covering all the steps in system development, that is, from initial system definition to its maturity.
It was the first attempt at a commercial KBS development approach. During the following years, many changes and improvements in methodologies were promoted. In the early nineties, when KE went from knowledge transfer to knowledge modeling, second-generation methodologies enable analysis of the system at knowledge level. This new approach makes it possible to specify the problem at different granularity levels and define reusable knowledge components.
These methodologies are based on the modeling approach, which has its roots in previously proposed ideas, but which were, however, still far from being considered methodologies [ 38 , 39 ]. The last group of KE methods are ontology engineering. Ontological engineering refers to all the activities that concern ontology development: ontology life cycle, methods and methodologies for building ontologies, and tool suites and languages that support them [ 31 ]. We considered Cyc as the oldest ontological engineering project [ 40 ].
It uses a first order logic approach to represent ontologies in business integration architectures [ 41 ]. We can outline six major milestones in the evolution of methodologies for building software, which have a slight delay between their appearance in SE and KE.
Each of those milestones is a unification moment between methodologies or is a bifurcation towards new approaches see Figure 1. All milestones have a thin gap between their appearances in the KE and SE, and are points of inflection in the evolution of the methodologies.
The first one is the need for development methodologies. This milestone was the origins SE and KE, as a result of both crises. The second milestone is the migration to the modeling approach of; here the goal is the development of models that support the construction of software; today it is a fundamental and necessary step of all software developments. The need to evolve toward the modeling approach appears in KE faster than in SE, because KE methods are applied in more complex domains, where models become a necessity.
This led to the boom of the second-generation KE methodologies. The third milestone appears when SE and KE need to develop their projects in a more controlled way. That is, the process itself reaches the same importance that the artifacts generated during a project.
The processes and the products have their own lifecycle that can be enhanced and controlled separately. The process versus product milestone can be clearly shown in SE evolution, but we can see in the Figure 1 that when KE methodologies reached the enough maturity to deal with this milestone, they were hit by another big change or bust that we labeled as a second crisis.
This fourth milestone called second childhood appeared in the KE due to the lack of success of the commercial software developed under KE discipline. This fact, together with the establishment and successful development of ontologies and Semantic Web, led KE back to childhood. Development efforts focus on building and publishing sets of useful concepts within a domain and the relationships between those concepts i.
The milestone where developers returned to a second childhood has also occurred in the SE field. Agile methods appear in order to enhance the quality of the final software product by introducing checkpoints where customer's requirements can be reassigned. The agile development is a radical deviation from other software development methods, focusing on adapting the software quickly to changes in realities.
It represents a big change in SE evolution. These four milestones are points of convergence between existing methodologies, which collect and adapt the best of each method, or they are divergence points towards other applicable approaches. We propose other two milestones that are not completely stable today. Hybrid software development suggests that development of a software system must be treated from KE and SE points of view, by integrating the two behaviors that can be present in a software system: algorithm and heuristic [ 35 , 43 ].
The common challenge must be now to integrate the best of each approach in a new holistic approach i. But nowadays, market pressure gives rise to a strong divergence milestone in SE in order to define good processes and practices i. This milestone is a challenge for SE but for KE is yet unknown. Advertisement Hide. This service is more advanced with JavaScript available.
Editors view affiliations Yanwen Wu. Conference proceedings. Papers Table of contents papers About About these proceedings Table of contents Page 1 Navigate to page number of 7. Front Matter Pages