según la definición del ieee, “software es la suma total de los programas de computadora,...

29
Según la definición del IEEE, software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos que pertenecen a un sistema de cómputo". Ingeniería de Software Definición de Software

Upload: pio-muro

Post on 28-Jan-2016

287 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Según la definición del IEEE, “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos

Según la definición del IEEE, “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos que pertenecen a un sistema de cómputo".

Ingeniería de Software

Definición de Software

Page 2: Según la definición del IEEE, “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos

Ingeniería de Software

Características del Software

Intangible

No se deteriora

Requiere de Hardware

Page 3: Según la definición del IEEE, “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos

Ingeniería de Software

Componentes del Software

Programas

Documentación

Datos

Procedimientos

Page 4: Según la definición del IEEE, “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos

Bondades deseables en un Producto de Software

• Mantenible. Debe ser posible que el software evolucione y que siga cumpliendo con

sus especificaciones.

• Confiable. El software no debe causar daños físicos o económicos en el caso de

fallas.

• Eficiente. El software no debe desperdiciar los recursos del sistema.

• Fácilmente usable. El software debe contar con una interfaz de usuario adecuada además de

su documentación.

Ingeniería de Software

Page 5: Según la definición del IEEE, “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos

En el año 1968 que se convocó una reunión en Garmisch, Alemania Oriental, estimulándose el interés hacia los aspectos técnicos y administrativos utilizados en el desarrollo y mantenimiento de software, y fue en esa ocasión donde se utilizó el término "Ingeniería de Software".

Ingeniería de Software

Origen de la Ingeniería de Software

Page 6: Según la definición del IEEE, “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos

La ingeniería de software se define como la disciplina tecnológica preocupada de la producción sistemática y del mantenimiento de los productos de software que son desarrollados y modificados en tiempo y dentro de un presupuesto definido. (Fairley, 1985).

Ingeniería de Software

Page 7: Según la definición del IEEE, “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos

"la Ingeniería de Software es la rama de la ingeniería que aplica los principios de las ciencias de computación y las matemáticas para lograr soluciones técnicas efectivas (eficaces en costo o económicas) a los problemas de desarrollo de software", es decir, "permite elaborar consistentemente productos correctos, utilizables y costo-efectivos" (Cota

1994).

Ingeniería de Software

Page 8: Según la definición del IEEE, “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos

Es el conjunto de métodos, técnicas y herramientas que controlan el proceso integral del desarrollo de software y suministra las bases para construir software de calidad de forma eficiente en los plazos adecuados (Enciclopedia Wikipedia).

Ingeniería de Software

Page 9: Según la definición del IEEE, “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos

Costos de la eficiencia

Costos

Eficiencia

Ingeniería de Software

Page 10: Según la definición del IEEE, “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos

1. Métodos o técnicas: Indican cómo construir técnicamente el software, y abarca una serie de tareas que incluyen la planificación y estimación de proyectos, el análisis de requisitos, el diseño de estructuras de datos, programas y procedimientos, la codificación, las pruebas y el mantenimiento. Los métodos introducen frecuentemente una notación específica para la tarea en cuestión y una serie de criterios de calidad.

Ingeniería de Software

La Ingeniería de software abarca cuatro elementos clave:

Page 11: Según la definición del IEEE, “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos

• Herramientas: Son instrumentos o sistemas automatizados para realizar algo de la mejor manera posible. Esta manera óptima puede significar que la herramienta produce resultados más exactos, más eficientes, más productivos, o que refuerza la calidad del producto resultante. Proporcionan un soporte automático o semiautomático para todas las fases del desarrollo y sistemas que integran las herramientas de cada fase de manera que sirven para todo el proceso. Estas herramientas se denominan CASE (Computer Aided Software Engineering).

Ingeniería de Software

Page 12: Según la definición del IEEE, “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos

• Procedimientos: Son la combinación de las técnicas y las herramientas que en forma conjunta dan un resultado particular. Los procedimientos indicarán qué herramientas deberán utilizarse cuando se aplican determinadas técnicas. Definen la secuencia en que se aplican los métodos, los documentos que se requieren, los controles que aseguran la calidad y las directrices que permiten a los gestores evaluar los progresos.

Ingeniería de Software

Page 13: Según la definición del IEEE, “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos

• Paradigmas: Representan un enfoque particular o filosofía para la construcción del software. No es mejor uno que otro sino que cada uno tiene ventajas y desventajas. También hay situaciones donde un paradigma resulta más apropiado que otro. Ejemplos: Análisis orientado a objetos y Análisis estructurado.

Ingeniería de Software

Page 14: Según la definición del IEEE, “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos

Un modelo de ciclo de vida de software es una vista de las actividades que ocurren durante el desarrollo de software, intenta determinar el orden de las etapas involucradas y los criterios de transición asociadas entre estas etapas.

Ingeniería de Software

Ciclo de vida

Page 15: Según la definición del IEEE, “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos

El proceso que se sigue para construir, entregar y hacer evolucionar el software, desde la concepción de una idea hasta la entrega y el retiro del sistema.

Ingeniería de Software

Ciclo de vida

Page 16: Según la definición del IEEE, “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos

Un modelo de ciclo de vida del software describe las fases principales de desarrollo de software.

Define las fases primarias esperadas de ser ejecutadas durante esas fases. Ayuda a administrar el progreso del desarrollo, y provee un espacio de trabajo para la definición de un detallado proceso de desarrollo de software.

Ingeniería de Software

Ciclo de vida

Page 17: Según la definición del IEEE, “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos

Ingeniería del

Sistema

Análisis

Diseño

Codificación

Prueba

Utilización

Mantenimiento

Sustitución

Winston Royce a fines del 70.

Ingeniería de Software

Ciclo de vida Clásico

Page 18: Según la definición del IEEE, “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos

16%

31%

53%

A tiempo y en presupuesto

Discontinados

Promedios• 189% del presupuesto• 221% del tiempo• 61% de la funcionalidad pretendida

Sobrepasados

Standish Group CHAOS Report 1995

Ingeniería de Software

La Crisis del Software

Page 19: Según la definición del IEEE, “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos

Mitos de Gestión

Mito.

Tenemos 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?.

Realidad.

Está 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"?.

Ingeniería de Software

Mitos en los Proyectos de Software

Page 20: Según la definición del IEEE, “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos

Mito.

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

Realidad.

Se 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 más importantes que el hardware para conseguir buena calidad y productividad.

Ingeniería de Software

Mitos en los Proyectos de Software

Page 21: Según la definición del IEEE, “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos

Mito.

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

Realidad.

El 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.

Ingeniería de Software

Mitos en los Proyectos de Software

Page 22: Según la definición del IEEE, “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos

Mitos del Cliente

Mito.

Una declaración general de los objetivos es suficiente para comenzar a escribir los programas. (podemos detallar m&aacutes adelante).

Realidad.

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

Ingeniería de Software

Mitos en los Proyectos de Software

Page 23: Según la definición del IEEE, “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos

Mito.

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

Realidad.

Es 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.

Ingeniería de Software

Mitos en los Proyectos de Software

Page 24: Según la definición del IEEE, “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos

Mitos de los Desarrolladores.

Mito.

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

Realidad.

Alguien 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.

Ingeniería de Software

Mitos en los Proyectos de Software

Page 25: Según la definición del IEEE, “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos

Mito.

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

Realidad.

Desde 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.

Ingeniería de Software

Mitos en los Proyectos de Software

Page 26: Según la definición del IEEE, “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos

Mito.

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

Realidad.

Un 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..

Ingeniería de Software

Mitos en los Proyectos de Software

Page 27: Según la definición del IEEE, “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos

• Qué Construir? Porqué? Qué tan bien?- Equilibrio de los requerimientos

• Quiénes deben construirlo? Donde?- Asesores; Personal Propio; Agentes externos

• Cómo construirlo? Cúando y en qué orden?-procesos, métodos, herramientas, componentes.

• Cómo adaptarse a los cambios-requerimientos y necesidades, tecnología, mercado

• Cúanto es suficiente?-Funcionalidad, cualidades, especificaciones, prototipos, pruebas

Ingeniería de Software

Principales Desafíos

Page 28: Según la definición del IEEE, “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos

Ingeniería de Software

Enfoque tradicional versus tendencias emergentes

• Orientado al Contrato

– su problema; gana-pierde

• Secuencial

• focalizado en procedimientos

• Programación

• Centrado en la disciplina y el control

• Orientado a la Colaboración

– Nuestro problema; win-win

• Ciclico y concurrente

• Focalizado en el riesgo (utilidades)

• Reuso

• Mezcla de flexibilidad y disciplina.

Page 29: Según la definición del IEEE, “software es la suma total de los programas de computadora, procedimientos, reglas, la documentación asociada y los datos

Resumen • La Ingeniería de software concierne a las teorías, métodos

y herramientas para el desarrollo, administración y evolución de productos de software.

• Los productos de software consisten de programas, datos y documentación. Los atributos deseables de los productos son, mantenible, confiable, eficiente y fácilmente usable.

• El proceso de software consiste en aquellas actividades involucradas en el desarrollo de software. Este proceso conforma junto a la mantención el ciclo de vida del software.

Ingeniería de Software