¿Qué es la Ingeniería de Software?
La ingeniería de software se define como el proceso de analizar las necesidades de los usuarios y luego diseñar, construir y probar una aplicación de software que satisfaga esas necesidades.
Veamos las diferentes definiciones de ingeniería de software:
- IEEE, en su estándar 610.12-1990, define la ingeniería de software como una aplicación sistemática y disciplinada de un enfoque medible para el desarrollo, la operación y el mantenimiento de software.
- Fritz Bauer lo definió como «el establecimiento» y utilizó principios estándar de ingeniería. Le ayuda a encontrar software que sea confiable y que funcione de manera eficiente en máquinas reales ”.
- Boehm define la ingeniería de software, que abarca “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 relacionada necesaria para su desarrollo, operación y mantenimiento. ‘
En este tutorial de ingeniería de software, aprenderá:
¿Por qué Ingeniería de Software? Crisis y resolución de software:
¿Qué fue la crisis del software?
- Fue a finales de la década de 1960 cuando fracasaron muchos proyectos de software.
- Gran cantidad de software superó el presupuesto. El resultado era un software poco fiable que resultaba caro de mantener.
- Era difícil y costoso mantener muchos más software.
- Muchos software no pueden satisfacer las crecientes necesidades del cliente.
- La complejidad de los proyectos de software aumentaba cuando aumentaba la capacidad de su hardware.
- La demanda de nuevo software aumentó más rápidamente en comparación con la capacidad de generar nuevo software.
«Software Crisis» es el resultado de todos los problemas anteriores.
La solución
La solución al problema fue intentar transformar la codificación no organizada en una disciplina de ingeniería de software. Estos modelos de ingeniería han ayudado a las empresas a optimizar las operaciones y ofrecer software que satisface las necesidades de los clientes.
- A finales de la década de 1970, los principios de la ingeniería de software se utilizaron ampliamente.
- En la década de 1980, el proceso de ingeniería de software se automatizó y la Ingeniería de software asistida por computadora (CASE) creció.
- En la década de 1990 hubo un mayor énfasis en los aspectos de «gestión» de los estándares de calidad y los procesos del proyecto, al igual que la norma ISO 9001.
¿Por qué la ingeniería de software es popular?
Aquí hay algunas razones importantes detrás de la popularidad de la ingeniería de software:
- Gran software – En la vida real, construir una pared es más cómodo que una casa o un edificio. Del mismo modo, 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 basaban en conceptos científicos y de ingeniería, lo que facilitaba la recreación de software nuevo para escalar uno existente.
- Adaptabilidad: Siempre que el proceso de software se basó en la ciencia y la ingeniería, es fácil recrear nuevo software con la ayuda de la ingeniería de software.
- Costos La industria del hardware ha demostrado sus habilidades y el costo del hardware informático y electrónico se ha reducido debido a la fabricación masiva.
- Naturaleza dinámica– Constantemente creciendo y adaptando la naturaleza del software. Depende del entorno en el que trabaje el usuario.
- Gestión de la calidad: Ofrece un método superior de desarrollo de software para ofrecer productos de software de alta calidad.
Relación de la ingeniería de software con otras disciplinas
Así es como la ingeniería de software se relaciona con otras disciplinas:
- Ciencias de la Computación: Proporciona la base científica del 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 proceso intensivo en mano de obra que requiere control tanto técnico como administrativo. Por tanto, se utiliza mucho en la ciencia de la gestión.
- Ciencias económicas: En este sector, la ingeniería de software le ayuda a estimar recursos y controlar costos. Es necesario desarrollar un sistema informático y los datos deben mantenerse regularmente dentro de un presupuesto establecido.
- Ingeniería de Sistemas: La mayor parte del software es parte 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. Se deben aplicar métodos de ingeniería de software para estudiar este tipo de sistema.
Desafíos de la ingeniería de software
Estos son algunos de los desafíos críticos que enfrentan los ingenieros de software:
- En áreas críticas para la seguridad como el espacio, la aviación, centrales nucleares, etc. El costo de una falla de software puede ser enorme porque la vida está en riesgo.
- Aumento de las demandas del mercado para un tiempo de respuesta rápido.
- Hacer frente a la creciente complejidad de los requisitos de software para nuevas aplicaciones.
- Una variedad de sistemas de software deben comunicarse entre sí.
Características de los productos de software
Los atributos de cualquier producto de software incluyen funciones que muestran el producto cuando se instala y se utiliza.
Los servicios no son proporcionados por el producto. En cambio, se relacionaron con el comportamiento dinámico de los productos y el uso del producto.
Los siguientes son ejemplos de estas características:
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 | Suelte |
Sustentabilidad | El software debe evolucionar para satisfacer las cambiantes demandas de los clientes. |
Dependencia | La dependencia abarca varias características. El software confiable nunca debe causar ningún daño físico o económico cuando el sistema falla. |
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, al ofrecer mejores interfaces es posible reducir la eficiencia del sistema.
Buenas características de software
Cualquier software debe ser juzgado por lo que ofrece y los métodos que le ayudan a utilizarlo.
Todo el software debe satisfacer las siguientes características:
- Operando
- Transicional
- Mantenimiento
Estas son algunas de las características clave de un buen software desarrollado por profesionales del software.
Operando
Cuéntanos esta característica sobre qué tan bien funciona el software en las operaciones que se pueden medir:
- Presupuesto
- Eficiencia
- Usabilidad
- Dependencia
- Exactitud
- Funcionalidad
- Seguridad
- Seguridad
Transicional
Esta es una característica esencial al mover software de una plataforma a otra:
- Interoperabilidad
- Reutilización
- Portabilidad
- Adaptabilidad
Mantenimiento
Esta característica habla de qué tan bien el software es capaz de adaptarse al entorno que cambia rápidamente:
- Flexibilidad
- Sustentabilidad
- Modularidad
- Escalabilidad
Resumen
- La ingeniería de software es un proceso que consiste en analizar las necesidades de los usuarios y luego diseñar, construir y probar una aplicación de software que satisfaga esas necesidades.
- 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 superaron el presupuesto. Por lo tanto, proporciona un software poco confiable que es costoso de mantener.
- A finales de la década de 1970, los principios de la ingeniería de software se utilizaron ampliamente.
- 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
- Los mayores desafíos en el campo de la ingeniería de software son las crecientes demandas del mercado de tiempos de respuesta rápidos.
- 1) Sostenibilidad, 2) Sostenibilidad, 3) Eficiencia y, 4) Usabilidad son las características 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.