In systems requiring ultra-high dependability, the majority of software defects that are found during testing or after deployment are the result of requirements errors. Of those requirements errors, a significant number occur because of misunderstandings about the system context. Essential details of the application domain are either unknown or misunderstood by developers because of poor communication of application domain knowledge.
Current software development practices focus on the formal aspects of software. While formalisms are the only structures required to communicate with a machine, contextual information is required for developers to communicate with one another and establish software validity.
The pervasive medium for this communication, natural language, is understood to be problematic for high-precision communication because of its characteristic ambiguity and informality. However, natural language possesses its own body of research results and is amenable to rigorous inspection. We have analyzed the domain knowledge communication problem as it arises in software engineering from the perspective of current cognitive linguistic theory, and this analysis has yielded a model that helps to explain sources of ambiguity and other problems with the use of natural language. Using this model we have developed a new artifact that combines software function and essential context information in a rigorous entity that we refer to as a situated formalism.
In this presentation, I briefly summarize the linguistic model and insights derived from it, e.g., that the considered use of natural language performs a function unachievable by formal means. I will explain how these insights are exploited to motivate the structure of the situated formalism and discuss a preliminary practical representation. Finally, I will present some details of our applications of the concepts discussed.
Prof. Knight is a professor of computer science at the University of Virginia. He holds a B.Sc. (Hons) in Mathematics from the Imperial College of Science and Technology (London) and a Ph.D. in Computer Science from the University of Newcastle upon Tyne. Prior to joining the University of Virginia in 1981, he was with NASAÂs Langley Research Center. He is the general chair of the 2007 International Conference on Software Engineering. He served as Editor in Chief of the IEEE Transactions on Software Engineering from January 2002 to December 2005, and is a member of the editorial board of the Empirical Software Engineering Journal.
Reception to follow in 1005A Beckman.