¿Qué es la Ingeniería de Software? Definición, conceptos básicos, características

Tabla de contenido:

Anonim

¿Qué es la Ingeniería de Software?

La ingeniería de software se define como un proceso de análisis de los requisitos del usuario y luego diseñar, construir y probar aplicaciones de software que satisfagan esos requisitos.

Veamos las diversas definiciones de ingeniería de software:

  • IEEE, en su norma 610.12-1990, define la ingeniería de software como la aplicación de un enfoque sistemático, disciplinado y computable para el desarrollo, operación y mantenimiento de software.
  • Fritz Bauer lo definió como "el establecimiento y utilizó principios de ingeniería estándar". Te ayuda a obtener, de forma económica, un software fiable y que funciona de forma eficiente en las máquinas reales ”.
  • Boehm define la ingeniería de software, que implica "la aplicación práctica del conocimiento científico al diseño creativo y la construcción de programas informáticos". También incluye la documentación asociada necesaria para desarrollarlos, operarlos y mantenerlos '.

En este tutorial de ingeniería de software, aprenderá:

  • ¿Qué es la Ingeniería de Software?
  • ¿Por qué Ingeniería de Software? Crisis de software y su solución
  • ¿Por qué la ingeniería de software es popular?
  • Relación de la ingeniería de software con otras disciplinas
  • Desafíos de la ingeniería de software
  • Atributos de los productos de software
  • Características de un buen software

¿Por qué Ingeniería de Software? Crisis de software y su solución:

¿Cuál fue la crisis del software?

  • Fue a finales de la década de 1960 cuando fracasaron muchos proyectos de software.
  • Muchos software se volvieron por encima del presupuesto. El resultado fue un software poco confiable que es costoso de mantener.
  • El software más grande era difícil y bastante caro de mantener.
  • Gran cantidad de software que no puede satisfacer las crecientes necesidades del cliente.
  • La complejidad de los proyectos de software aumentaba cuando aumentaba su capacidad de hardware.
  • La demanda de nuevo software aumentó más rápidamente en comparación con la capacidad de generar nuevo software.

Todos los problemas anteriores conducen a una "crisis de software".

La solución

La solución al problema fue transformar el esfuerzo de codificación desorganizado en una disciplina de ingeniería de software. Estos modelos de ingeniería ayudaron a las empresas a optimizar las operaciones y ofrecer software que satisfaga los requisitos del cliente.

  • A fines de la década de 1970 se vieron los usos generalizados de los principios de la ingeniería de software.
  • En la década de 1980 se produjo la automatización del proceso de ingeniería de software y el crecimiento de la ingeniería de software asistida por computadora (CASE).
  • La década de 1990 ha visto un mayor énfasis en los aspectos de `` gestión '' de los estándares de calidad y procesos de los proyectos, al igual que la norma ISO 9001.

¿Por qué la ingeniería de software es popular?

Aquí hay razones importantes detrás de la popularidad de la ingeniería de software:

  • Software grande : en nuestra vida real, es bastante más cómodo construir una pared que una casa o un edificio. De la misma manera, a medida que aumenta el tamaño del software, la ingeniería de software le ayuda a crear software.
  • Escalabilidad: si el proceso de desarrollo de software se basara en conceptos científicos y de ingeniería, es más fácil volver a crear un nuevo software para escalar uno existente.
  • Adaptabilidad : siempre que el proceso de software se basa en la ciencia y la ingeniería, es fácil volver a crear un nuevo software con la ayuda de la ingeniería de software.
  • Costo: la industria del hardware ha demostrado sus habilidades y la enorme fabricación ha reducido el costo de la computadora y el hardware electrónico.
  • Naturaleza dinámica : la naturaleza del software en constante crecimiento y adaptación. Depende del entorno en el que trabaje el usuario.
  • Gestión de calidad : ofrece un mejor método de desarrollo de software para proporcionar productos de software de calidad.

Relación de la ingeniería de software con otras disciplinas

Aquí, cómo la ingeniería de software se relaciona con otras disciplinas:

  • Ciencias de la Computación: Da la base científica para el software ya que la ingeniería eléctrica depende principalmente de la física.
  • Ciencias de la gestión: la ingeniería de software es un trabajo intensivo en mano de obra que exige tanto control técnico como de gestión. Por lo tanto, se utiliza mucho en ciencias de la gestión.
  • Economía: en este sector, la ingeniería de software lo ayuda en la estimación de recursos y el control de costos. Se debe desarrollar un sistema de computación y los datos deben mantenerse regularmente dentro de un presupuesto dado.
  • Ingeniería de sistemas: la mayoría del software es un componente de un sistema mucho más grande. Por ejemplo, el software en un sistema de monitoreo industrial o el software de vuelo en un avión. Los métodos de ingeniería de software deben aplicarse al estudio de este tipo de sistemas.

Desafíos de la ingeniería de software

Estos son algunos desafíos críticos que enfrentan los ingenieros de software:

  • En áreas críticas para la seguridad como el espacio, la aviación, las plantas de energía nuclear, etc., el costo de la falla del software puede ser enorme porque hay vidas en riesgo.
  • Aumento de las demandas del mercado para un tiempo de respuesta rápido.
  • Hacer frente a la creciente complejidad del software que necesita nuevas aplicaciones.
  • La diversidad de sistemas de software debe comunicarse entre sí.

Atributos de los productos de software

Las características de cualquier producto de software incluyen las que muestra el producto cuando se instala y se pone en uso.

No son los servicios que proporciona el producto. En cambio, se han relacionado con el comportamiento dinámico de los productos y el uso que se hace del producto.

Ejemplos de estos atributos son:

Efficiency, reliability, robustness, maintainability, etc.

Sin embargo, la importancia relativa de estas características varía de un sistema de software a otro.

Caracteristicas de producto Descripción
Mantenibilidad El software debe evolucionar para satisfacer las cambiantes demandas de los clientes.
Confianza La confiabilidad incluye varias características. El software confiable nunca debe causar ningún daño físico o económico en el momento de la falla del sistema.
Eficiencia La aplicación de software debe abusar de los recursos del sistema, como la memoria y el ciclo del procesador.
Usabilidad La aplicación de software debe tener una interfaz de usuario y documentación específicas.

Optimizar el atributo anterior es muy desafiante. Por ejemplo, ofrecer una mejor interfaz de usuario puede reducir la eficiencia del sistema.

Características de un buen software

Cualquier software debe ser juzgado por lo que ofrece y por los métodos que le ayudan a utilizarlo.

Todo software debe satisfacer los siguientes atributos:

  • Operacional
  • Transicional
  • Mantenimiento

Estas son algunas características importantes de un buen software desarrollado por profesionales del software.

Operacional

Esta característica nos permite saber qué tan bien funciona el software en las operaciones que se pueden medir en:

  • Presupuesto
  • Eficiencia
  • Usabilidad
  • Confianza
  • Exactitud
  • Funcionalidad
  • La seguridad
  • Seguridad

Transicional

Este es un aspecto fundamental cuando el software se traslada de una plataforma a otra:

  • Interoperabilidad
  • Reutilización
  • Portabilidad
  • Adaptabilidad

Mantenimiento

Este aspecto habla de qué tan bien el software tiene la capacidad de adaptarse en un entorno que cambia rápidamente:

  • Flexibilidad
  • Mantenibilidad
  • Modularidad
  • Escalabilidad

Resumen

  • La ingeniería de software es un proceso que consiste en analizar los requisitos del usuario y luego diseñar, construir y probar aplicaciones de software que satisfagan esos requisitos
  • Las razones importantes para utilizar la ingeniería de software son: 1) Software grande, 2) Escalabilidad 3) Adaptabilidad 4) Costo y 5) Naturaleza dinámica.
  • A finales de la década de 1960, muchos software se exceden del presupuesto. Por lo tanto, ofrece un software poco confiable y costoso de mantener.
  • A fines de la década de 1970 se vieron los usos generalizados de los principios de la ingeniería de software.
  • Concepto de ingeniería de software 1) Ciencias de la computación 2) Ciencias de la gestión 3) Ingeniería de sistemas y 4) Economía
  • El aumento de las demandas del mercado para un tiempo de respuesta rápido es el mayor desafío del campo de la ingeniería de software.
  • 1) Mantenibilidad, 2) Fiabilidad, 3) Eficiencia y, 4) Usabilidad son los atributos más importantes de los productos de software.
  • Las tres características más importantes de un buen software son 1) Operativo 2) Transitorio 3) Mantenimiento.