ABSTRACT

Software engineering is a relatively new technological discipline. It is distinct from, but based on, the foundations laid by computer science, management science, economics, communication skills, and the engineering approach to problem solving. Software engineering is a pragmatic discipline that relies on computer science to provide a scientific foundation in the same way that traditional hardware engineering disciplines rely on physics and chemistry. Software engineering is a labor-intensive activity that requires both technical skill and managerial control. Consequently, management science provides the foundations for software project management. Software must be developed and maintained on time and within budget. Thus, economics builds the foundation for resource estimation and cost control. Software engineering activities occur within an organizational context; a high degree of communication is required among customers, management, software engineers, hardware engineers, and other technologists. Solid oral, written, and interpersonal communication skills are crucial for the software engineer.