To understand the notion of software engineering and why it is important
To appreciate the technical (engineering), managerial, and psychological aspects of software engineering
To understand the similarities and differences between software engineering and other engineering disciplines
To know the major phases in a software development project
To appreciate ethical dimensions in software engineering
To be aware of the time frame and extent to which new developments impact software engineering practice
Software engineering concerns methods and techniques to develop large software systems. The engineering metaphor is used to emphasize a systematic approach to developing systems that satisfy organizational requirements and constraints. This chapter gives a brief overview of the field and points at emerging trends that influence the way software is developed.
Computer science is still a young field. The first computers were built in the mid 1940s, since when the field has developed tremendously.
Applications from the early years of computerization can be characterized as follows: the programs were quite small, certainly when compared to those that are currently being constructed; they were written by one person; they were written and used by experts in the application area concerned. The problems to be solved were mostly of a technical nature, and the emphasis was on expressing known algorithms efficiently in some programming language. Input typically ...