Developing educational software requires thinking, problematizing, representing, modeling, implementing and analyzing pedagogical objectives and issues, as well as conceptual models and software architectures. Computer scientists face the difficulty of understanding the particular issues and phenomena to be taken into account in educational software projects and of avoiding a naïve technocentered perspective. On the other hand, actors with backgrounds in human or social sciences face the difficulty of understanding software design and implementation issues, and how computer scientists engage in these tasks.Tchounikine argues that these difficulties cannot be solved by building a kind of "general theory" or "general engineering methodology" to be adopted by all actors for all projects: educational software projects may correspond to very different realities, and may be conducted within very different perspectives and with very different matters of concern. Thus the issue of understanding each others' perspectives and elaborating some common ground is to be considered in context, within the considered project or perspective. To this end, he provides the reader with a framework and means for actively taking into account the relationships between pedagogical settings and software, and for working together in a multidisciplinary way to develop educational software.His book is for actors engaged in research or development projects which require inventing, designing, adapting, implementing or analyzing educational software. The core audience is Master's and PhD students, researchers and engineers from computer science or human and social sciences (e.g., education, psychology, pedagogy, philosophy, communications or sociology) interested in the issues raised by educational software design and analysis and in thevariety of perspectives that may be adopted.