• No se han encontrado resultados

Introducción Software Ingeniería de Software El proceso de la Ingeniería de Software Modelos de procesos de Software El estándar IEEE 1074 Modelos de ciclo de vida

N/A
N/A
Protected

Academic year: 2019

Share "Introducción Software Ingeniería de Software El proceso de la Ingeniería de Software Modelos de procesos de Software El estándar IEEE 1074 Modelos de ciclo de vida"

Copied!
21
0
0

Texto completo

(1)

Ing. Luis A. Otake

(2)

Introducción

Software

Ingeniería de Software

El proceso de la Ingeniería de Software

Modelos de procesos de Software

El estándar IEEE 1074

Modelos de ciclo de vida

Ing. Luis A. Otake 3

¿Por qué tarda tanto la obtención del software terminado?

¿Por qué son altos los costos de desarrollo de software?

¿Por qué es imposible encontrar todos los errores en el software antes

de entregarlo a los clientes?

¿Por qué se gastan tanto tiempo y esfuerzo en el mantenimiento de los

programas existentes?

(3)

• Son programas de computadora más la documentación asociada. • Se pueden desarrollar para algún cliente particular o para un

mercado general. Según Sommerville

• El software se forma con

• Las instrucciones (programas) que al ejecutarse proporcionan las características, funciones y el grado de desempeño deseados. • Las estructuras de datos que permiten que los programas

manipulen información de manera adecuada.

• Los documentos que describen la operación y el uso de los programas

Según Pressman

5 Ing. Luis A. Otake

El software se desarrolla o construye; no se manufactura en

el sentido clásico.

El software no se “desgasta”.

(4)

• Son sistemas aislados producidos por una organización de desarrollo y que se venden al mercado abierto a cualquier cliente. • La organización que desarrolla el software controla su

especificación. Productos genéricos

• Son sistemas requeridos por un cliente en particular.

• Un contratista de software desarrolla el software especialmente para ese cliente.

• La organización que compra el software controla su especificación. Productos personalizados (o hechos a medida)

7 Ing. Luis A. Otake

1) La aplicación de un enfoque

sistemático, disciplinado y cuantificable

del desarrollo, operación y

mantenimiento del software; es decir, la

aplicación de la ingeniería de software.

(5)

Es una actividad

•de modelado: sólo detalles relevantes

•para la solución de problemas

•para la adquisición de conocimiento (que no es

lineal*)

•dirigida por una fundamentación (conjunto de

modelos de problemas, conocimiento adicional

muchas veces no explícito)

9 Ing. Luis A. Otake

(6)

Herramientas

Métodos

Proceso

Un enfoque de calidad

11 Ing. Luis A. Otake

La ciencia de la computación comprende la teoría y

los fundamentos

La ingeniería de software comprende las formas

prácticas para desarrollar y liberar un software útil.

Analogía:

(7)

13 Ing. Luis A. Otake

•Desarrollar software de sistema y de aplicación que permita que dispositivos pequeños, PCs y sistemas empresariales se comuniquen a través de grandes redes.

Computación ubicua:

•Crear aplicaciones simples y complejas que beneficien a mercados de usuarios finales específicos alrededor del mundo.

Alimentación de la red (WWW)

•Construir un código fuente que sea descriptivo en sí mismo. •Desarrollar técnicas que permitan tanto a los clientes como a los

diseñadores conocer los cambios realizados y la forma en que se manifiesta dentro del software

Fuente abierta

•Construir aplicaciones que faciliten la comunicación y la distribución de productos en masa mediante productos apenas en formación.

(8)

Mitos de la

administración

Mitos del

cliente

Mitos del

desarrollador

15 Ing. Luis A. Otake

Ya se tiene un libro lleno de estándares y procedimientos para

la construcción de software. ¿Esto proporcionará a mi gente

todo el conocimiento?

Si se está atrasado en el itinerario es posible contratar más

programadores para así terminar a tiempo.

• “Agregar gente a un proyecto de software atrasado lo atrasa más”

(9)

Un enunciado general de los objetivos es

suficiente para comenzar a escribir programas; los

detalles se pueden afinar después.

Los requerimientos del proyecto cambian de

manera continua, pero el cambio puede ajustarse

con facilidad porque el software es flexible.

17 Ing. Luis A. Otake

Una vez que el programa ha sido escrito y puesto a funcionar, el trabajo está terminado.

Mientras el programa no se esté ejecutando, no existe forma de evaluar su calidad.

El único producto del trabajo que puede entregarse para tener un proyecto exitoso es el programa en funcionamiento.

• Se olvidan de la documentación

(10)

Entender el problema (comunicación y análisis)

Planear una solución (modelado y diseño de software)

Llevar a cabo el plan (generación de código)

(11)

•Donde los clientes e ingenieros definen el software a producir y las restricciones sobre su operación.

Especificación de

software

•Donde el software se diseña y programa.

Desarrollo de

software

•Donde el software se valida para asegurar qué es lo que el cliente requiere.

Validación del

software

•Donde el software se modifica para adaptarlo a los cambios requeridos por el cliente y el mercado.

Evolución del

software

(12)

•el cambio en el software es una consecuencia inevitable.

Mantenibilidad

•incluye fiabilidad, seguridad y protección. El software no debe causar daños físicos ni económicos.

Confiabilidad

•incluye tiempos de respuesta y de procesamiento, utilización de memoria, etc.

Eficiencia

•debe ser fácil de utilizar.

Usabilidad

23 Ing. Luis A. Otake

•mantener y actualizar el software antiguo (costos y

continuidad del servicio.

El reto de lo heredado

•desarrollar técnicas para construir software confiable que

sea lo suficientemente flexible.

El reto de la heterogeneidad

(13)

Código de ética y práctica profesional (ACM

y IEEE):

• Confidencialidad

• Competencia: no aceptar trabajos fuera de

su capacidad

• Derechos de propiedad intelectual

• Uso inapropiado de computadoras

(14)

Un avión de pasajeros está compuesto por varios millones de partes individuales y requiere miles de personas para ensamblarlo. Un puente de autopista de cuatro carriles es otro ejemplo de complejidad. La primera versión de Word para Windows, un procesador de textos lanzado por Microsoft en noviembre de 1989, requirió 55 años hombre, dando como resultado 249,000 líneas de código fuente y entregado con 4 años de retraso. Los aviones y los puentes de autopistas por lo general se entregan a tiempo y debajo de su presupuesto, mientras que con el software a menudo no es así.

Discuta cuáles son las diferencias entre el desarrollo de un avión, un puente y un procesador de textos que pueden causar esta situación.

27 Ing. Luis A. Otake

Es una descripción simplificada de un proceso de software

que presenta una visión de ese proceso.

Pueden incluir actividades que son parte de los procesos y

productos de software y el papel de las personas

involucradas en la ingeniería de software.

(15)

•Considera las actividades anteriores y las representa como fases de procesos separados, tales como la especificación de requerimientos, el diseño del software, la implementación, las pruebas, etc. •Después de que cada etapa queda definida “se firma” y el desarrollo continúa con la siguiente etapa. Enfoque en cascada

•Entrelaza las actividades de especificación, desarrollo y validación.

•Un sistema inicial se desarrolla rápidamente a partir de especificaciones muy abstractas. •Éste se refina basándose en las peticiones del cliente para producir un sistema que satisfaga las

necesidades de dicho cliente. •El sistema puede entonces ser entregado.

•De forma alternativa se puede reimplementar utilizando un enfoque más estructurado para producir un sistema más sólido y mantenible.

Desarrollo iterativo

•Supone que las partes del sistema existen.

•El proceso de desarrollo se enfoca en la integración de estas partes más que desarrollarlas desde el principio.

Ingeniería de software basada en componentes (CBSE)

(16)

Es un estándar para el desarrollo de procesos del ciclo de vida del software.

Es el conjunto de actividades y procesos obligatorios para el desarrollo y mantenimiento del software.

Su objetivo es establecer un marco común para el desarrollo de modelos de ciclo de vida y proporciona ejemplos de situaciones típicas.

31 Ing. Luis A. Otake

•Conjunto de actividades que se realiza para un propósito

específico.

•IEEE lista un total de 17 procesos.

•Están agrupados en grupos de procesos.

•Cada proceso está compuesto por actividades

Proceso

•Es una tarea o grupo de subactividades que se asignan a un

equipo o a un participante del proyecto para lograr un

propósito específico.

(17)

Las tareas consumen recursos (personal, tiempo, dinero) y crean un

producto de trabajo.

Durante la planeación las actividades se descomponen en tareas

específicas del proyecto, se les dan las fechas de inicio y terminación y

se asignan a un equipo o a un participante en el proyecto.

Durante el proyecto se da seguimiento al trabajo real contra las tareas

planeadas, y los recursos se reasignan para responder a los problemas.

33 Ing. Luis A. Otake

Grupos de procesos Procesos

Modelado de ciclo de vida Selección de un modelo de ciclo de vida

Administración del proyecto Inicio del proyecto

Supervisión y control del proyecto Administración de la calidad del software

Predesarrollo Exploración de conceptos

Asignación del sistema

Desarrollo Requerimientos

Diseño Implementación

Posdesarrollo Instalación

Operación y soporte Mantenimiento Retiro

Procesos integrales Verificación y validación

Administración de la configuración del software Desarrollo de la documentación

(18)

Un proyecto es una instancia de un ciclo de vida del software

35 Ing. Luis A. Otake

Uno de los objetivos del modelo de madurez de capacidades (CMM) es proporcionar lineamientos para la selección de las actividades del ciclo de vida.

El CMM asume que el desarrollo de los sistemas de software se hace más predecible cuando una organización usa un proceso de ciclo de vida bien estructurado, visible para todos los participantes en el proyecto y que se adapta al cambio.

(19)

SPICE (ISO/IEC

15504)

ISO 9001:2000

para software

37 Ing. Luis A. Otake

Modelo de cascada

Modelo V

El modelo espiral

de Boehm’s

Modelo de diente

de sierra

Modelo de diente

de tiburón

Proceso de

desarrollo de

software unificado

Modelo de ciclo de

vida basado en

(20)

Defina equipos de trabajo

Seleccione una empresa de la localidad donde sea posible

elaborar un proyecto de desarrollo de software a medida.

Seleccione un ciclo de vida y explique las ventajas y

desventajas del mismo.

(21)

Referencias

Documento similar

Pregunta #4: En la página 29 se especifica “Contar con una herramienta que integre los procesos de ciclo de vida de desarrollo de aplicaciones, metodología

Desarrollo RQS Enfoque Proceso Organizacional Solución Técnica Definición Proceso Organizacional Integración Producto Formación de la Organización Verificación

Si bien el nuevo Diseño Curricular Provincial, propone un sistema de organización del grupo en el Ciclo Maternal por edades, y la Resolución CFE N° 174/12

Los procesos del Ciclo de Vida Vida del SW del SW Norma ISO/IEC 12207 Norma ISO/IEC 12207--2008 2008 Proceso de Desarrollo Actividad de Análisis Actividad de Diseño Actividad

Es decir, el estudio de la fiabilidad y su aplicación en los análisis de costes de ciclo de vida permiten ajustar los sistemas (en este caso, los vehículos blindados) obteniendo

El objeto de este convenio es la realización por parte del Proyecto COMPETISOFT y de LA EMPRESA de un ciclo de mejora de procesos software (al interior de su organización) siguiendo

Es de resaltar que el resultado de este proyecto fue la entrega de una propuesta de diseño de artefactos para el apoyo al ciclo de vida de desarrollo de software y su

Así, es posible comprender que la organización atravesará distintas etapas de de- sarrollo durante su ciclo de vida organizacional. Comprender lo que sucedió en la