Rationale of This Book


If you ask a group of software engineers what software engineering is, you will probably come up with more than one definition, each emphasizing different facets of the discipline. This phenomenon is also reflected in the definitions of software engineering described in professional literature. Indeed, software engineering is a multifaceted discipline. The rationale for this book stems from the fact that software engineering s human aspect, we believe, does not get the attention it deserves .

Software engineering is a young and evolving discipline. The name software engineering was popularized by the 1968 NATO Conference in Garmisch, Germany. This conference aimed at discussing the problems associated with the evolving complexity of computing systems, and the acknowledgment of human limitations to cope with this evolved complexity. Indeed, the complexity of software development is acknowledged from the first days of the discipline. For example, [Zelkowitz, Shaw, and Gannon79] explain in the introduction to their book that it is not possible to totally describe in one book all the facets and aspects of software development so that its complexity can be fully understood and appreciated. Interestingly, the nature of the discipline is still questioned today. Sometimes, it is addressed as an art. For example, Knuth, in his book The Art of Computer Programming [Knuth97], explains the attractive nature of the process of preparing programs by comparing it to composing poetry or music (this is not surprising, since both music and software engineering have a common core in mathematics). Other perspectives of software engineering emphasize the engineering aspects of the discipline, focusing on software development processes.

The multifaceted nature of software engineering is also expressed by different approaches that aim at describing the structure of the discipline. The following are three examples of professional organizations that suggest a mapping of the discipline s body of knowledge:

  • The Software Engineering Institute (SEI) at Carnegie-Mellon University ( http://www.sei.cmu.edu/ )

  • The SWEBOK (Software Engineering Body Of Knowledge) ( http://www.swebok.org/ )

  • The CCSE (Computing Curricula Software Engineering) joint initiative of the IEEE-CS and the ACM ( http://sites.computer.org/ccse/ )

Recently, human aspects of software engineering have gotten more and more attention. Awareness of this component of software engineering appeared in Brooks book The Mythical Man-Month [Brooks75], first published in 1975 and revised in 1995. In the Preface to the 20th Anniversary Edition, Brooks writes that he is surprised that The Mythical Man-Month is popular even after 20 years . His statement indicates how difficult it is to apply software development lessons learned to future software development projects. This difficulty may be explained by the multifaceted nature of the discipline and the uniqueness of software development processes. This book addresses this complexity.

We believe that now is the ideal time to discuss the human aspects of software engineering. The high-tech bubble has burst, and it seems that the software engineering community is ready to learn the lessons from that era. It also seems to be the right stage of the evolution of software engineering to consider more closely the people involved in software development processes.




Human Aspects of Software Engineering
Human Aspects of Software Engineering (Charles River Media Computer Engineering)
ISBN: 1584503130
EAN: 2147483647
Year: 2004
Pages: 242

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net