Ingeniería de Software

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 5

Ingeniería de Software

• La economía de todos los países desarrollados dependen del software.


• Cada vez más sistemas son controlados por el software.
• La ingeniería de software es una profesión que incluye teorías, métodos y herramientas
• La inversión en software representa una fracción significativa del PIB en todos los países
desarrollados.
El costo del software
• El costo del software es generalmente mayor que el costo del hardware.
• El mantenimiento del Software generalmente es mayor que el costo del desarrollo.
• La ingeniería de software se preocupa por producir productos a “costo/beneficio” favorable”.
Qué es el software?
• Programas de cómputo debidamente documentado.
• Los productos de software se desarrollan para un cliente en particular o para un mercado en general
Cuáles son los atributos del buen software?
• El buen software debe entregar al usuario la funcionalidad y el desempeño requerido.
• Debe ser utilizable, confiable y mantenible.
Qué es la Ingeniería de Software?
• La ingeniería de software es una disciplina de la ingeniería que se interesa por todos los aspectos de
la producción del software.
Cuáles son las actividades fundamentales de la ingeniera del software?
• Requerimientos. (Especificación)
• Diseño. (Desarrollo)
• Construcción. (Desarrollo)
• Pruebas. (Validación)
• Mantenimiento (Evolución del software)
Cuál es la diferencia entre Ingeniería de Software y Ciencias de la Computación?
• Las ciencias de la computación se enfocan en teorías y fundamentos
• La ingeniería de software se enfoca en el sentido práctico del desarrollo y en la distribución del
software.
Cuáles son los principales retos que enfrenta la Ingeniería de Software
• Se enfrenta con la diversidad creciente.
• Demandas por tiempos de distribución limitados.
• Y desarrollo de software confiable.
Cuáles son los costos de la Ingeniería de Software
• Aproximadamente 60% de los costos del software son de desarrollo, y 40% pruebas.
• Para el software elaborado específicamente, los costos de mantenimiento superan generalmente los
costos del desarrollo.
Cuáles son los mejores métodos y técnicas de la ingeniería de software?
• Todos los proyectos de software deben gestionarse y desarrollarse de manera profesional. Sin
embargo, existen diferentes técnicas que son adecuadas para los distintos tipos de sistemas.
– Los juegos requieren una serie de prototipos.
– Los sistemas críticos de control de seguridad requieren de una especificación completa y analizable
para su desarrollo.
• No puede decirse que un método sea mejor que otro.
Qué diferencias ha marcado la Web a la ingeniería de software
• La Web ha llevado a la disponibilidad de los servicios de software y a la posibilidad de desarrollar
sistemas basados en servicios ampliamente distribuidos.
• El desarrollo de sistemas basados en la Web ha conducido a importantes avances en lenguajes de
programación y reutilización de software.
La Ingeniería de Software
• La ingeniería de Software es una disciplina que tiene que ver con todas la etapas de la producción
del software. Desde la especificación hasta el mantenimiento.
• Disciplina de la ingeniería
– Los ingenieros hacen que las cosas funcionen mediante el uso de teorías y métodos apropiados y
teniendo en cuenta las limitaciones estructurales y financieras de su organización.
• Todos los aspectos de la producción del software
– No solo el desarrollo técnico.
– Incluye la gerencia de proyectos.
– El desarrollo de métodos y herramientas que soportan la producción del software.
La importancia de la Ingeniería de Software
• Cada vez más individuos y la sociedad se apoyan en avanzados sistemas de software. Por lo tanto
necesitamos producir sistemas más económicos y cada vez más rápido.
• Generalmente es más barato a largo plazo usar métodos y técnicas para producir software que
Simplemente sentarse a escribir programas.
• La mayoría de los costos tienen que ver con el mantenimiento.
Actividades del proceso de Software
• Especificación del software. El cliente y los ingenieros definen el software que se va a producir, sus
funcionalidades y restricciones que tendrá en su operación
• Desarrollo del Software. Incluye el diseño y la programación.
• Validación del Software. Se verifica que el software cumple con los requerimientos del cliente.
• Evolución del software. Para esto se requiere de mantenimiento. El software es modificado para
adaptarlo a nuevas necesidades del cliente.
Asuntos que generalmente afectan a la mayoría del software
• Hererogeneidad
– En una tendencia creciente, los sistemas deben operaren sistemas distribuidos ampliamente en la
red que incluye diferentes tipos de computadores y dispositivos móviles.
• Cambio empresarial y social
– Los negocios y la sociedad cambian increíblemente rápido conforme emergen nuevas economías y
nuevas tecnologías se hacen disponibles.
• Seguridad y confianza
– Dado que el software está vinculado a cada aspecto de la vida, es necesario confiar en el software.
Diversidad de la Ingeniería de Software
• Existen diferentes tipos de software para lo cual no existe un conjunto de técnicas universales para
el software.
• Para cada tipo existen sus métodos y herramientas aplicables para su desarrollo.
Tipos de aplicaciones
• Aplicaciones (Stand-alone) independientes
– Corren en un equipo local. Como un PC, el cual contiene todo lo necesario para su funcionamiento.
No requieren estar conectados a una red.
• Aplicaciones interactivas basadas en transacciones
– Aplicaciones que se ejecutan en un computador remoto el cual es acceso desde un PC o una terminal.
Ejemplo: Aplicaciones e-commerce
• Sistemas de control incorporado (Embedded)
– Software que regula y controla hardware. Ejemplo: Sistemas de control numérico.
• Sistemas de procesamiento en Batch (lotes o diferido)
– Sistemas diseñados para procesar grandes lotes de información. Procesan grandes cantidades de
entradas individuales para producir su correspondiente salida.

• Sistemas de entretenimiento.

– Sistemas de uso personal para entretener al usuario.

• Sistemas para modelado y simulación.

– Sistemas desarrollados por científicos e ingenieros para modelar procesos físicos o situaciones los
cuales incluyen la integración con muchos objetos separados.

• Sistemas de adquisición de datos

– Sistemas que desde un entorno recogen datos mediante un conjunto de sensores y envían estos
datos a otros sistemas para su procesamiento.

• Sistemas de sistemas

– Sistemas compuestos de un cierto número de sistemas.

Principios fundamentales de la Ingeniería de Software

• Aplican para todos los tipos de sistemas de software.

– Un sistema se debe desarrollar mediante el uso de un proceso de formal de desarrollo.

– La confiabilidad y el desempeño es importante en todos los tipos de sistemas.

– Es importante comprender y gestionar la especificación y los requerimientos

– En lo posible se debe reusar el software existente en vez de diseñar uno nuevo.

Ética en la ingeniería de software

Ética en la ingeniería de software

• La ingeniería de software implica una amplia responsabilidad que va más allá de la aplicación
de habilidades técnicas.

• Los ingenieros de Software deben observar un comportamiento ético y honesto para que su
profesión mantenga respeto y reconocimiento profesional.

• El comportamiento ético no se limita a simplemente observar las leyes sino también implica
observar un conjunto de principios de la correcta moral.

Asuntos de la responsabilidad profesional.

• Confidencialidad.

– Independiente de si se firmó o no un acuerdo de confidencialidad.

• Competencia

– No se debe aceptar un trabajo fuera de su competencia.


• Derechos de propiedad intelectual

– Conocer las leyes de propiedad intelectual y practicarlas.

• Mal uso de los computadores

– Proteger los equipos dándoles su correcto uso tal manera que genere beneficios para la empresa.
Prevenir sabotajes.

Modelos del proceso de Software

Modelo cascada:

 Definición de requerimientos
 Diseño del sistema
 Implementación y pruebas
 Integración y pruebas del sistema
 Operación y mantenimiento

El principal inconveniente con la aplicación de este modelo es la dificultad de incluir cambios


después que el proceso ha iniciado.

Es estable siempre y cuando se tenga claro el procedimiento en su totalidad.

Desarrollo incremental:

Menor costo de incluir cambios unas ves se ha iniciado el proceso.

Es más fácil obtener retroalimento con el cliente en el transcurso del proceso

El problema del desarrollo incremental:

El proceso no es visible: la administración necesita entregar informes regulares para medir el


avance.

La estructura del sistema tiende a degradarse

Se requiere de reingeniería

Ingeniería de software orientada a la reutilización

Especificación: De requerimientos, diseño del sistema como reutilización y desarrollo e integración.

También podría gustarte