Friday, January 24, 2014

What does Software Engineering mean?

My name is Fernando Serrano. I am a Computer Systems Engineering graduate from Universidad de Alcalá (Madrid, Spain), and  I also have a Master's degree in Information Technology Project Management in the same university.

Since August 2013, I am an exchange student of BSc Computer Science at The University of New Mexico. My main interests are all the things related to Open Source software, especially those which are focused on web development. On the other hand, I am also interested in both project management (as part of my postgraduate education), and social media networking.

The aim of this blog is to provide information about different aspects of the world of Software Engineering, and particularly the ones which are related to my interests. As Software Engineering itself includes a broad branch of subjects, I will try to write about as much topics as possible, not only about the history an evolution of this discipline, but also regarding current issues, new approaches, as well as applications, models, case studies, etc.

The first question that arises when we talk about Software Engineering is, what does it really mean? We can easily find several definitions of this concept, for example, at Wikipedia website we can read a definition wrote by the Institute of Electrical and Electronics Engineers in the IEEE Standard Glossary of Software Engineering Terminology:

"The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software"

Other approaches proposed by several authors agree with this other definition (in fact, this is one of the most common definitions of Software Engineering):

"The study and application of engineering to the design, development, and maintenance of software"

Anyway, it is clear that Software Engineering is a discipline concerned with developing applications, which covers technical aspects of building software and other topics such as management issues, programming teams, even things that we may not directly associate with Software Engineering, for example scheduling or budgeting.

The definition of software engineering is not too old. It was firstly given in 1968 "as a response to the desolate state of the art of developing quality software on time and within budget" (Bruegge B. and Dutoit A. H.  Object-Oriented Software Engineering Using UML, Patterns, and Java. Prentice Hall, 1994). Bernd Bruegge, Allen H. Dutoit also proposed a definition of Software Engineering, but they used a schematic approach to explain the meaning of this term:

  • Software engineering is a modeling activity.
  • Software engineering is a problem-solving activity.
  • Software engineering is a knowledge acquisition activity
  • Software engineering is a rationale-driven activity.

Summarizing, we have seen there are a lot of definitions of Software Engineering which have arose in the last forty years, and taking into account the fast evolution of this discipline, this definition may change in the following years.

No comments:

Post a Comment