Processes of knowledge and software

作者:

Highlights:

摘要

Software development is an intensely knowledge-based activity, whose richness and sublety is sometimes discounted by people who tell us how to do it. Idealized models of the software lifecycle, and of the human processes within it, often misrepresent those processes. They are often not a useful basis for supporting or improving them. Insights from developing knowledge-based systems in other domains can help us appreciate the fully subtlety of software engineering, to build tools and methods which will truly help us do it better. The relevant intellectual tools of knowledge engineering include the recognition of many different flavours of knowledge, which require different techniques to represent them, empirical knowledge acquisition techniques, metal-level reasoning, and knowledge-based description of plans and procedures. The knowledge engineering viewpoint is brought to bear in a number of key issues of software engineering: software process models; the design process; safety-critical software; and object-oriented programming. This highlights some strengths, and potential weaknesses of approaches currently being advocated; and it also points to ways forward.

论文关键词:software engineering,knowledge engineering,explanation based learning,heuristic classification,meta knowledge,object-oriented programming

论文评审过程:Available online 19 February 2003.

论文官网地址:https://doi.org/10.1016/0950-7051(89)90017-8