Covering a variety of areas including software analysis, design, coding and maintenance, this book details the research conducted since the 1970s in this field before going on to define a computer program from the viewpoint of computing and cognitive psychology.