Covering a variety of areas including software analysis, design, coding and maintenance, this text details the research conducted since the 1970s in this fast-developing field before going on to define a computer program from the viewpoint of computing and cognitive psychology. The two essential sides of programming, software production and software understanding, are given detailed treatment, with parallels drawn throughout between studies on processing texts written in natural language and processing computer programs. Of particular interest to researchers, practitioners and graduates in cognitive psychology, cognitive ergonomics and computer science.Software Design - Cognitive Aspects covers a variety of areas including software analysis, design, coding and maintenance. It details the history of the research that has been conducted since the 1970s in this fast-developing field before defining a computer program from a computing and cognitive psychology viewpoint. Detailed treatment is given to the two essential sides of programming; software production and software understanding and throughout the book parallels are drawn between studies on processing texts written in natural language and processing computer programs. This book will be of particular interest to researchers, practitioners and graduate students in Computer Science, Cognitive Psychology, and Cognitive Ergonomics. Historical Background: The 1970s. Second Period. Recent Thematic Developments.- What Is a Computer Program? Definition of a Program. Program v. Text. Programming Languages v. Natural Languages. Towards a Broader Definition.- Software Design: Theoretical Approaches: Features of the Problems of Program Design. Knowledge-Centred Approaches. Strategy-Centred Approach. Organisation-Centred Approach. Modelling the Expert. Making Tools More Suitable for Programmers. Future Research.- Software Reuse: Analytical Reasoning Models. Cognitive Mechanisms Employed in l3&