Software Engineering

Software Engineering

Software Engineering (SE) is focused around the development and maintenance of Software Systems that perform as required. In this context, “As required” refers to software systems that meet the stakeholders’ needs with efficiency, effectiveness and freedom of risks. This entails that these software systems should be effective, efficient, reliable, and maintainable. Software Engineering becomes very essential for every single institution due to many reasons, such as: the wide range of services facilitated by certain software system, the organisational and operational impact of software systems, the large cost of utilising certain technology, the risk of utilising certain technologies (e.g., security concerns, outage/service unavailability), etc. Software Engineering goes beyond programming to cover a wide range of topics/subjects stretching from requirement elicitation/management and software development through software systems evaluation. Software Engineering has significantly developed over the course of the last 50 years. For instance, here is an old paper (i.e., 1996) detailing the history of Software Engineering, which is different from another recent Software Engineering history paper written by Niklaus Wirth, 2008.

Also, here is a link to Software Engineering Institute @Carnegie Mellon University. Valuable articles and information, especially in Software Systems Security and Vulnerability. For this who are interested in Software Engineering, here is the ACM Curriculum Guidelines for undergraduate degree programmes in SE. The purpose of this guidelines is to guide academic institutions about what should constitute SE degrees, but it is also useful for those who want to know more about SE.