Copyright © 2001 University of Otago and its licencers. All rights reserved
Computer information and control systems have become increasingly embedded and integrated into the fabric of human society. Instead of standing by and providing information and assistance when requested, as they used to, such systems are now intimately involved in the complex processes of daily life. They control our clocks, washing machines, motor vehicles, traffic lights, the electric power to our homes, and the essential processes of our production economy. As a consequence, computer systems are not standalone, but are usually just component parts of much larger, complex systems involving hardware, software, people, and all the unpredictable events in the natural world. Our very lives depend on these interdependent systems working reliably all the time. Most people, even most computer science graduates, are not fully aware of both the difficulty involved in building such complex systems and the essential need for those building them to be equipped with advanced techniques not taught in ordinary computer programming courses. Software Engineering is the discipline dedicated to the principles and techniques required for the sound construction of the computer systems of today and tomorrow.
A software engineer must be equipped with techniques to (a) model and understand complex interactive systems, (b) identify how computer information systems can be made to improve such systems, (c) manage the construction of the information system components, and (d) ensure that procedures are in place for the continual testing and maintenance of operational systems.
Our economic prosperity depends on whether we have technical professionals capable of overseeing the construction of the complex information systems that will underpin the new knowledge-based society. These systems must interoperate with other, even offshore, computational systems and so must be appropriately modular and internationalised. At the same time, they must be efficient, reliable, and secure in the presence of an unpredictable, sometimes even hostile, world environment. The people who will be the leaders in this arena will be the software engineers who are aware of the latest techniques in computational intelligence and are armed with the skills required to construct new dynamically interacting components.
Moreover the essence of science is to build models of the world and then
to test those models to see if they are valid. Software engineers are
fundamentally engaged in this kind of activity, because a software system
is essentially a model of part of the world, and that model must be immediately
tested under operational conditions to see if it works'. So software
engineers are ambitious model builders (and testers of those models),
and the good ones are engaged in scientific modelling all the time. The
study of software engineering involves the acquisition of the kinds of
skills that are valuable in virtually every profession and lie at the
very foundation of our modern culture.
Software engineers are among the highest-paid professionals in most countries of the world. Countries like Japan and the United States are rapidly relaxing their immigration laws in order to address their critical shortages in this area. Software engineers are in demand in not only at software development companies but also in all other organisations that are involved in the development of significant information systems including governments, telecommunications companies, the chemical industry, the bio-medical industry, financial institutions, agribusinesses, pharmaceuticals, healthcare sector corporations, engineering and manufacturing firms, etc. With the growing use of e-commerce, particularly business-to-business e-commerce, the need for skilled software engineers is increasing at a rate that far outstrips the supply. In fact in the words of noted software engineer, David Parnas, "career opportunities for software engineers are essentially unlimited."
In addition, the changing nature of the information/telecommunications-based economy is offering increasing opportunities for entrepreneurs to establish new start-up organisations. Software engineering skills are usually essential ingredients for success in these ventures, and software engineers enjoy the opportunity to participate in this exciting and potentially enriching career opportunity.
For ease of entry into the Software Engineering Programme, students should normally have previously studied those courses that prepare one for college-level studies in science and engineering. First year university courses that are required for entry into the second-year Software Engineering Programme courses are