Computer software engineering is the entire process of planning, designing, and developing a computer software product. The term software engineering refers specifically to the complex, disciplined, and systematic approach used to create and maintain software. Many people use the term to explain the skills required to create and support software products.
In order to become a computer software engineer, candidates must complete a university degree in computer science. Although some schools offer a computer software engineering major, this is not very common. In general, the skills required are already included in the computer science program, and it has the benefit of being a recognized discipline. The field of computer software engineering is relatively new and may require more time to become widely adopted.
The profession itself is not licensed or regulated in the same way that engineers are. There have been several different initiatives to license this group of professionals, with varying degrees of success. In the United States, the Institute of Electrical and Electronics Engineers (IEEE) created a licensing program for computer software engineers, but has a limited acceptance. In Europe and Canada, the profession is regulated and candidates must meet specific education and experience requirements to become a professional computer software engineer.
The primary focus in this field is the development of methodology surrounding the creation of new software products. The IEEE has developed a manual called the Software Engineering Body of Knowledge (SWEBOK). This book is considered to hold the standard level of knowledge that a software engineer in North America should have after four years of work experience. There has been much discussion internationally about the validity of the book as a resource, since many institutes were not consulted.
Computer software engineering can be divided into several sub-areas, including software design, testing, and maintenance. In all, 10 different sub-areas are officially recognized by the IEEE. However, additional areas continue to develop, and it may be some time before the list is considered complete.
Many people who want to become a computer software engineer start their career as a computer programmer or developer. The traditional career path is to begin in this area, and then look for a promotional opportunity to software engineer after eight to 10 years of working experience. This career path requires additional education and training during this period, as technology and methodology is constantly changing. The demand for computer science engineering is forecast to experience above average growth over the next five to eight years. As the opportunities grow, there should be more clarification and development of an internationally accepted standard for professional recognition in this field.