Definition of

Software engineering

Computing

Software engineering makes the development of computer programs possible.

Software engineering is a discipline made up of a set of methods, tools and techniques that are used in the development of computer programs ( software ).

This discipline transcends the programming activity, which is the fundamental pillar when creating an application. The software engineer is in charge of all project management so that it can be developed within a given time frame and with the planned budget.

Software engineering, therefore, includes the prior analysis of the situation, the design of the project, the development of the software, the tests necessary to confirm its correct operation and the implementation of the system .

Life cycle in software engineering

It should be noted that the software development process involves what is known as the software life cycle , which is made up of four stages: conception, elaboration, construction and transition.

The conception sets the scope of the project and develops the business model ; The elaboration defines the project plan, details the characteristics and substantiates the architecture; construction is the development of the product; and the transition is the transfer of the finished product to the users.

Once this cycle is completed, software maintenance comes into play. This is a phase of this engineering where the discovered errors are solved (often noticed by the users themselves) and updates are incorporated to address the new requirements. The maintenance process also incorporates new developments, to allow the software to fulfill a greater number of tasks.

Language

Software engineering goes beyond programming.

Systems architecture

A field directly related to software engineering is systems architecture , which consists of determining and schematizing the general structure of the project, diagramming its skeleton with a relatively high degree of specificity and pointing out the different components that will be necessary to carry out the project. development, such as companion applications and databases. This is a fundamental point in the process, and is often the key to the success of a computer product.

Technological advances and their impact on social life have inevitably affected the software development process for various reasons, such as the indiscriminate access of users to certain information that until a couple of decades ago they were completely unaware of and that they cannot understand, since they do not have the necessary degree of technical knowledge. A well-informed consumer is a consumer who cannot be scammed, since he knows what he needs and has the ability to analyze the different offers on the market, comparing the proposals and features of the products; However, a misinformed consumer is like a capricious child who cries, screams and kicks non-stop.

The first of all stages of the work carried out by software engineers consists of carefully studying the characteristics that are believed to be necessary for the program to be developed , and this is the point at which they must find a balance (increasingly difficult to achieve). between the excessive demands of bad consumers and the company's possibilities. Time is money, and companies in the IT world know it very well.

Each function of a program, each feature that makes it more comfortable, more intelligent, more accessible, translates into a certain amount of time, which in turn entails the salaries of all the people involved in its development. But in addition to the production cost necessary to make each of the pieces of a program, software engineering must decide which of them make sense, are coherent with the rest, and are necessary to clearly communicate the essence and objectives of the application.