1 Jesús Angel Ovando Téllez División de Estudios de Posgrado e Investigación INSTITUTO...

25
1 Jesús Angel Ovando Téllez División de Estudios de Posgrado e Investigación INSTITUTO TECNOLÓGICO DE ORIZABA

Transcript of 1 Jesús Angel Ovando Téllez División de Estudios de Posgrado e Investigación INSTITUTO...

Page 1: 1 Jesús Angel Ovando Téllez División de Estudios de Posgrado e Investigación INSTITUTO TECNOLÓGICO DE ORIZABA.

1

Jesús Angel Ovando TéllezDivisión de Estudios de Posgrado e Investigación

INSTITUTO TECNOLÓGICO DE ORIZABA

Page 2: 1 Jesús Angel Ovando Téllez División de Estudios de Posgrado e Investigación INSTITUTO TECNOLÓGICO DE ORIZABA.

2

INTRODUCCION

Al desarrollar productos de software, deben determinarse las necesidades y limitaciones del usuario y deben establecerse explícitamente.

El producto debe diseñarse considerando tanto a los programadores como a los usuarios, y a quienes les den mantenimiento. El código fuente debe desarrollarse con mucho cuidado y probarse constantemente. Así mismo, se debe preparar la documentación de apoyo, manuales de usuario, manuales de documentación, etc.

Actualmente, todavía muchas empresas particulares y varias compañías desarrollan software de una manera muy arriesgada. Tanto los profesionistas como los estudiantes, siguen sin usar los métodos modernos de desarrollo, dando como resultado que el software que se desarrolla, algunas veces funciona y otras veces no.

Page 3: 1 Jesús Angel Ovando Téllez División de Estudios de Posgrado e Investigación INSTITUTO TECNOLÓGICO DE ORIZABA.

3

LA CRISIS DEL SOFTWARE

Muchos estudiosos han caracterizado los problemas asociados con el desarrollo del software como una "crisis". Esta palabra se define en el diccionario como "un punto decisivo en el curso de algo". Sin embargo, en las cuestiones relativas al software no ha habido un punto decisivo sino una lenta evolución.

En ese sentido, en la industria del software se ha vivido una "crisis" que ha permanecido cerca de 30 años; por lo que, esa situación es más un padecimiento crónico, que una crisis.

Así pues, aquí se hablará de algunas formas de como enfrentar ese padecimiento crónico del software, para hacer más ligero el padecimiento mientras se logra descubrir la solución final.

Page 4: 1 Jesús Angel Ovando Téllez División de Estudios de Posgrado e Investigación INSTITUTO TECNOLÓGICO DE ORIZABA.

4

IMPORTANCIA DE LA INGENIERÍA DE SOFTWARE

Las economías de todas las naciones desarrolladas son dependientes del software.

Cada vez más sistemas son controlados por software.

La ingeniería de software trata de teorías, métodos, técnicas y herramientas para el desarrollo profesional de software.

Los gastos en la ingeniería de software representan una fracción importante del PNB, en todos los países desarrollados.

Page 5: 1 Jesús Angel Ovando Téllez División de Estudios de Posgrado e Investigación INSTITUTO TECNOLÓGICO DE ORIZABA.

5

¿CUÁLES SON LOS COSTOS DEL SOFTWARE?

Con frecuencia, los costos de software son mayores que los costos de hardware, como en una PC.

Cuesta más mantener software que desarrollarlo. Para sistemas con vidas largas, los costos de mantenimiento pueden ser, algunas veces, mayores que los costos de desarrollo

La ingeniería de software trata con el desarrollo de software, de manera que se minimizen los costos

Page 6: 1 Jesús Angel Ovando Téllez División de Estudios de Posgrado e Investigación INSTITUTO TECNOLÓGICO DE ORIZABA.

6

¿PRODUCTOS DE SOFTWARE?

Son sistemas de cómputo, junto con su documentación asociada

Los productos de software pueden ser desarrollados para un mercado general o para un cliente en particular:

Genéricos. Se desarrollan para ser vendidos a una variedad de clientes diferentes

Propietarios. Se desarrollan para un cliente conforme a sus especificaciones.

La mayor parte del gasto del software es en productos genéricos, pero hay más esfuerzo en el desarrollo de los sistemas hechos a medida.

Page 7: 1 Jesús Angel Ovando Téllez División de Estudios de Posgrado e Investigación INSTITUTO TECNOLÓGICO DE ORIZABA.

7

¿QUÉ ES LA INGENIERÍA DE SOFTWARE?

La Ingeniería de Software es una disciplina de las Ciencias de la Computación que trata con todos los aspectos de la producción de software.

“El establecimiento y uso de principios de ingeniería robustos, orientados a obtener software económico que sea fiable y funcione de manera eficiente sobre máquinas reales” (Bauer)

Page 8: 1 Jesús Angel Ovando Téllez División de Estudios de Posgrado e Investigación INSTITUTO TECNOLÓGICO DE ORIZABA.

8

LA INGENIERÍA DE SOFTWARE Y SU RELACIÓN CON OTRAS DISCIPLINAS

Las Ciencias Computacionales clásicas tratan de la teoría y los fundamentos de la programación (entre otras cosa). La Ingeniería de Software trata de los aspectos prácticos del desarrollo y entrega de software útil.

La Ingeniería de Sistemas trata de todos los aspectos de desarrollo de sistemas basado en computadoras.

La Ingeniería de Requerimientos, trata con los aspectos del análisis de la situación organizacional.

Los ingenieros de software están involucrados en la especificación del sistema, diseño arquitectónico, integración, implantación y mantenimiento.

Page 9: 1 Jesús Angel Ovando Téllez División de Estudios de Posgrado e Investigación INSTITUTO TECNOLÓGICO DE ORIZABA.

9

¿QUÉ ES EL PROCESO DE SOFTWARE?

Un conjunto estructurado de actividades, requeridas para desarrollar un sistema de software o para hacer que evolucione.

Elementos genéricos de todos los procesos de software son:

Especificación. Lo que debe hacer el sistema y las restricciones de desarrollo

Diseño. La producción del sistema de software

Validación. Asegura que el software es lo que el cliente desea

Evolución. Los cambios que debe tener el software como respuesta a las demandas cambiantes del entorno

Page 10: 1 Jesús Angel Ovando Téllez División de Estudios de Posgrado e Investigación INSTITUTO TECNOLÓGICO DE ORIZABA.

10

CARACTERÍSTICAS DEL PROCESO

Entendible

¿Se encuentra el proceso bien definido y es entendible?

Visible

¿El proceso es visible al exterior?

Soportable

¿Puede el proceso ser soportado por herramientas CASE?

Aceptable

¿El proceso es aceptado por aquellos involucrados en él?

Page 11: 1 Jesús Angel Ovando Téllez División de Estudios de Posgrado e Investigación INSTITUTO TECNOLÓGICO DE ORIZABA.

11

CARACTERÍSTICAS DEL PROCESO

Confiable

¿Los errores del proceso son descubiertos antes de que se conviertan en errores del producto ?.

Robusto

¿Puede continuar el proceso a pesar de problemas inesperados ?.

Mantenible

Puede el proceso evolucionar para cumplir con los objetivos organizacionales ?.

Rapidez

¿Que tan rápido puede producirse el sistema ?.

Page 12: 1 Jesús Angel Ovando Téllez División de Estudios de Posgrado e Investigación INSTITUTO TECNOLÓGICO DE ORIZABA.

12

¿QUÉ ES UN MODELO DE PROCESO DE SOFTWARE?

Es una representación simplificada de un proceso de software, presentada desde una perspectiva específica.

Perspectiva de flujo de trabajo Perspectiva de flujo de datos Perspectiva de roles/acciones

Modelos genéricos de proceso de software Cascada Desarrollo evolutivo Desarrollo de Prototipos Transformación formal Integración de componentes reutilizables

Page 13: 1 Jesús Angel Ovando Téllez División de Estudios de Posgrado e Investigación INSTITUTO TECNOLÓGICO DE ORIZABA.

13

COSTOS DE INGENIERÍA DE SOFTWARE

Aproximadamente 60% de los costos son para el desarrollo y 40% son para probar el software. Para software particularizado, los costos de evolución a menudo exceden los de desarrollo

Los costos varían dependiendo del tipo de sistema que se esté desarrollando y de los requerimientos de los atributos del sistema como rendimiento y confiabilidad

La distribución de los costos depende del modelo de desarrollo utilizado

Page 14: 1 Jesús Angel Ovando Téllez División de Estudios de Posgrado e Investigación INSTITUTO TECNOLÓGICO DE ORIZABA.

14

LOS MÉTODOS DE LA INGENIERÍA DE SOFTWARE

Los métodos describen cómo modelar y construir sistemas de programación para obtener resultados confiables y reproducibles.

Los métodos definen también una representación (a menudo gráfica), que permite, por una parte, manipular fácilmente los modelos y, por otra, comunicarse e intercambiar la información entre los diferentes interlocutores.

Un método define reglas de implementación que describen la articulación de los diferentes puntos de vista, el encadenamiento de las acciones, la ordenación de las tareas y el reparto de las responsabilidades.

Page 15: 1 Jesús Angel Ovando Téllez División de Estudios de Posgrado e Investigación INSTITUTO TECNOLÓGICO DE ORIZABA.

15

CASE (Computer Aided Software Engineering)

Sistemas de software cuya finalidad es proveer soporte automatizado a las actividades de procesos de software

Upper CASE

Las herramientas para soportar las actividades primeras de requerimientos y diseño

Lower CASE

Las herramientas para soportar las actividades siguientes como programación, depuración y verificación

Page 16: 1 Jesús Angel Ovando Téllez División de Estudios de Posgrado e Investigación INSTITUTO TECNOLÓGICO DE ORIZABA.

16

ATRIBUTOS DEL BUEN SOFTWARE

El software debe entregar al usuario la funcionalidad y rendimiento requeridos, y debe ser mantenible, confiable y utilizable.

Mantenible. El software debe evolucionar para satisfacer los cambios del entorno.

Confiable. El cliente necesita tener confianza en el software.

Rendimiento. El software no debe desperdiciar los recursos del sistema.

Utilidad. El software debe ser útil para los usuarios para quienes fue diseñado.

Page 17: 1 Jesús Angel Ovando Téllez División de Estudios de Posgrado e Investigación INSTITUTO TECNOLÓGICO DE ORIZABA.

17

RETOS A LOS QUE SE ENFRENTA LA INGENIERÍA DE SOFTWARE

Hacer frente a los sistemas heredados, a la diversidad creciente y a las demandas por tiempo reducido de entrega

Sistemas heredados. Los sistemas viejos y de valor tienen que ser mantenidos y actualizados

Heterogenidad. Los sistemas son distribuidos e incluyen una mezcla de hardware y software

Entrega. Hay presión creciente para la entrega más rápida de software

Page 18: 1 Jesús Angel Ovando Téllez División de Estudios de Posgrado e Investigación INSTITUTO TECNOLÓGICO DE ORIZABA.

18

MITOS DE GESTIÓN (1)

MitoTenemos ya un libro que está lleno de estándares y procedimientos para construir software. ¿No le proporciona ya a mi gente todo lo que necesita saber?.

RealidadEstá muy bien que el libro exista, pero ¿Se usa? ¿Conocen los trabajadores su existencia? ¿Refleja las prácticas modernas de desarrollo de software? ¿Es completo? En muchos casos, la respuesta a todas estas preguntas es "no"?.

MitoNuestra gente dispone de las herramientas de desarrollo de software más avanzadas; después de todo, les compramos las computadoras más nuevas.

RealidadSe necesita mucho más que el último modelo de computadora grande (o de PC) para hacer desarrollo de software de gran calidad. Las herramientas de ingeniería del software asistida por computadora (CASE), aunque no se usen la mayoría, son tan importantes como el hardware para conseguir buena calidad y productividad.

Page 19: 1 Jesús Angel Ovando Téllez División de Estudios de Posgrado e Investigación INSTITUTO TECNOLÓGICO DE ORIZABA.

19

MITOS DE GESTIÓN (2)

MitoSi fallamos en la planificación, podemos añadir más programadores y adelantar el tiempo perdido.

RealidadEl desarrollo de software no es un proceso mecánico como la fabricación. Brooks dice: "Añadir gente a un proyecto de software retrasado, lo retrasa aún más". Ya que cuando se añaden nuevas personas, la necesidad de aprender y comunicarse con el equipo puede y hace que se reduzca la cantidad de tiempo gastado en el desarrollo productivo. Puede añadirse gente, pero de una manera planificada y bien coordinada.

Page 20: 1 Jesús Angel Ovando Téllez División de Estudios de Posgrado e Investigación INSTITUTO TECNOLÓGICO DE ORIZABA.

20

MITOS DEL CLIENTEMitoUna declaración general de los objetivos es suficiente para comenzar a escribir los programas. (podemos detallar más adelante).

RealidadUna mala definición inicial es la causa principal del desperdicio del trabajo en software. Es esencial una descripción formal y detallada del ámbito de la información, funciones, rendimiento, etc. Y todas estas características sólo se pueden determinar después de una exhaustiva comunicación entre cliente y analista.

MitoLos requisitos del proyecto cambian continuamente, pero los cambios pueden acomodarse fácilmente, ya que el software es flexible.

RealidadEs verdad que los requisitos del software cambian pero el impacto del cambio varía según el momento en que se introduzca. Entre más temprano se realicen mejor.

Page 21: 1 Jesús Angel Ovando Téllez División de Estudios de Posgrado e Investigación INSTITUTO TECNOLÓGICO DE ORIZABA.

21

MITOS DE LOS DESARROLLADORES (1)

MitoUna vez que escribimos el programa y hacemos que funcione, nuestro trabajo ha terminado.

RealidadAlguien dijo una vez: "Cuando más pronto se comience a escribir código, más se tardará en terminarlo". Datos industriales indican que entre el 50 y el 70 por ciento de todo el esfuerzo dedicado a un programa se realizará después de que se le haya entregado al cliente por primera vez.

MitoHasta que no tengo el programa “ejecutándose” realmente no tengo forma de comprobar su calidad.

RealidadDesde el principio del proyecto se puede aplicar uno de los mecanismos más efectivos para garantizar la calidad del software (Revisión de Técnica formal). La revisión del Software es un "filtro de calidad" que se ha comprobado que es más efectivo que la prueba, para encontrar ciertas clases de defectos en el software.

Page 22: 1 Jesús Angel Ovando Téllez División de Estudios de Posgrado e Investigación INSTITUTO TECNOLÓGICO DE ORIZABA.

22

MITOS DE LOS DESARROLLADORES (2)

MitoLo único que se entrega al terminar es el programa funcionando.

RealidadUn programa que funciona es sólo una parte de una configuración del software que incluye todos los elementos tales como el Análisis, Diseño, Documentación del sistema, etc.

Page 23: 1 Jesús Angel Ovando Téllez División de Estudios de Posgrado e Investigación INSTITUTO TECNOLÓGICO DE ORIZABA.

23

REFLEXIÓN FINAL

El software no siempre se desarrolla de forma controlada, y en

la actualidad existen sistemas que presentan grandes

dificultades para su mantenimiento. Si no se procede con

responsabilidad esto seguirá ocurriendo y no se detendrá.

El organismo ISO ha publicado directrices específicas para

aplicar la norma 9001 al desarrollo de software (ISO 9000-3).

Una organización que ponga en práctica un sistema de gestión

de calidad según esa norma puede ser auditada y recibir una

certificación formal de su proceso de desarrollo, pero para

lograr esto es necesario aplicar la Ingeniería de Software

Page 24: 1 Jesús Angel Ovando Téllez División de Estudios de Posgrado e Investigación INSTITUTO TECNOLÓGICO DE ORIZABA.

24

REFLEXIÓN FINAL

¿Por qué es tan importante certificar con ISO?, la

respuesta es simple, porque ahora para crecer es necesario

competir en los mercados internacionales y para eso la

certificación es un primer paso.

Por lo que ahora resulta claro que los métodos,

herramientas y procedimientos de la Ingeniería de

Software ayudan a garantizar que los sistemas resultantes

sean confiables, funcionen del modo requerido y tengan la

calidad esperada.

El recurso humano es la otra parte.

Page 25: 1 Jesús Angel Ovando Téllez División de Estudios de Posgrado e Investigación INSTITUTO TECNOLÓGICO DE ORIZABA.

25