Ingeniería de Software

287
1 Ingeniería de Software Mª Angélica Caro Gutiérrez http://www.face.ubiobio.cl/~mcaro/ [email protected] Departamento de Ciencias de la Computación y Tecnologías de Información Universidad del Bío-Bío Sede Chillán Ingeniería Civil Informática UBB 2009 2/18 Angélica Caro Ingeniería Civil Informática UBB 2009 Programa de la Asignatura Descripción y Objetivos Contenidos Metodología Evaluación Bibliografía Otros

Transcript of Ingeniería de Software

Page 1: Ingeniería de Software

1

Ingeniería de Software

Mª Angélica Caro Gutiérrezhttp://www.face.ubiobio.cl/~mcaro/

[email protected]

Departamento deCiencias de la Computación y Tecnologías de Información

Universidad del Bío-BíoSede Chillán

Ingeniería Civil Informática UBB 2009

2/18Angélica Caro Ingeniería Civil Informática UBB 2009

Programa de la Asignatura

Descripción y ObjetivosContenidosMetodologíaEvaluaciónBibliografía Otros

Page 2: Ingeniería de Software

2

3/18Angélica Caro Ingeniería Civil Informática UBB 2009

Descripción y ObjetivosDescripción:

La Ingeniería de Software (ISw) es una disciplina que ofrece métodos y técnicas para especificar, desarrollar, administrar y mantener software (Sw) de calidad que resuelva problemas concretos. La construcción de software de calidad implica el reconocimiento, definición y aplicación de muchos elementos, que van desde la comprensión de lo que significa calidad en el Sw hasta la formalización de los medios para alcanzarla (actividades, métodos, herramientas y estándares, entre otros).Esta asignatura teórico/práctica busca la aplicación de todas las temáticas relevantes de la Ingeniería de Sw como disciplina, en el contexto de los proyectos de Sw y la gestión/dirección de éstos.

4/18Angélica Caro Ingeniería Civil Informática UBB 2009

Descripción y Objetivos

Objetivo General:

Al finalizar el curso los alumnos deberán ser capaces de desarrollar/gestionar un proyecto de Sw de manera sistemática y eficiente para la obtención de un producto de calidad, aplicando elementos claves de la ISw

Page 3: Ingeniería de Software

3

5/18Angélica Caro Ingeniería Civil Informática UBB 2009

Descripción y Objetivos

Objetivos Específicos:

Comprender las principales áreas de la ISw.Gestionar un proyecto de Sw, que resuelva una problemática concreta, en el cual deberán:

Seleccionar un modelo de proceso de Sw y definir las actividades necesarias para un proceso de desarrollo de Swparticular.Aplicar técnicas de estimación, planificación, gestión de riesgos y de control de calidad del producto de Sw generado.

Incentivar soluciones, basadas en estándares de calidad, creativas e innovadoras.

6/18Angélica Caro Ingeniería Civil Informática UBB 2009

Presentación

Descripción y ObjetivosContenidosMetodologíaEvaluaciónBibliografía Otros

Page 4: Ingeniería de Software

4

7/18Angélica Caro Ingeniería Civil Informática UBB 2009

Contenidos

10Evolución del Software Unidad 4

80Total de horas

10Otros tópicos en Ingeniería del SwUnidad 5

20Métodos para la Ingeniería del SwUnidad 3

35Gestión de proyectos de desarrollo de software

Unidad 2

05IntroducciónUnidad 1 HORASUNIDADES

8/18Angélica Caro Ingeniería Civil Informática UBB 2009

Presentación

Descripción y ObjetivosContenidosMetodologíaEvaluaciónBibliografía Otros

Page 5: Ingeniería de Software

5

9/18Angélica Caro Ingeniería Civil Informática UBB 2009

MetodologíaLa metodología utilizada se basará en 3 estrategias: Clases teóricas, desarrollo de un proyecto de Sw y lectura/estudio personal.Mediante clases teóricas se introducirán los distintos conceptos y temas relevantes en ISw. Dichas clases incluirán la discusión y reflexión de los temas por parte de los alumnos; y, en algunas ocasiones, la entrega de documentos con el resultado de sus discusiones. Paralelamente los alumnos deberán llevar a cabo un proyecto de desarrollo Sw, el cual se realizará en varias etapas. En cada etapa del proyecto habrá documentos que cada grupo deberá ir entregando de acuerdo a fechas determinadas, tales documentos serán prerrequisito para la entrega final del documento del proyecto.

10/18Angélica Caro Ingeniería Civil Informática UBB 2009

Presentación

Descripción y ObjetivosContenidosMetodologíaEvaluaciónBibliografía Otros

Page 6: Ingeniería de Software

6

11/18Angélica Caro Ingeniería Civil Informática UBB 2009

Evaluación

Instrumentos de evaluación:

2 certámenes. A lo menos 2 controles de lectura y/o investigación y presentaciones orales. Proyecto de desarrollo, que incluye presentaciones orales, entrega de informes y entrega de un producto software.

12/18Angélica Caro Ingeniería Civil Informática UBB 2009

Evaluación

Cálculo de la Nota Final:

Donde,NC= Certamen 1 * 40% + Certamen 2 * 40% + Controles * 20% NP = ((∑ Informei)/Cantidad de entregas+(∑ Presentaciónj) /Cantidad de Presentaciones) * 90% + Apreciación Profesora * 10% Si no se entrega uno de los informes= NCR

50%Nota de ProyectoNP

50%Nota de CátedraNC

PonderaciónDescripciónSigla

Page 7: Ingeniería de Software

7

13/18Angélica Caro Ingeniería Civil Informática UBB 2009

Presentación

Descripción y ObjetivosContenidosMetodologíaEvaluaciónBibliografía Otros

14/18Angélica Caro Ingeniería Civil Informática UBB 2009

Bibliografía

Básica:

PRESSMAN, R. 2005. Ingeniería del Software, un enfoque práctico. Editorial McGraw Hill. 6ta edición.PFLEEGER, S. L. 2002. Ingeniería de software, teoría y práctica. Pearson Education. 1ra Edición.SOMMERVILLE, I. 2002. Ingeniería de software. Editorial Pearson Educación, 6ta edición.

Page 8: Ingeniería de Software

8

15/18Angélica Caro Ingeniería Civil Informática UBB 2009

Bibliografía

Complementaria :

Braude, E., Ingeniería de Software: Una perspectiva orientada a objetos,2003, Alfaomega.Larman, C. 2002. Applying UML and Patterns. And Introduction to Object Oriented Analysis and Design and the Unified Process, 2da. edición. Prentice Hall.Booch, G., 1994. Análisis y Diseño Orientado a Objetos con Aplicaciones. Addison Wesley.

16/18Angélica Caro Ingeniería Civil Informática UBB 2009

Presentación

Descripción y ObjetivosContenidosMetodologíaEvaluaciónBibliografía Otros

Page 9: Ingeniería de Software

9

17/18Angélica Caro Ingeniería Civil Informática UBB 2009

Otros

Horario:

Clases TeóricasMartes: 9:40 a 11:50 hrs.

Clases Teórico/PrácticasJueves: 9:40 a 11:00 hrs.

Atención de Alumnos:Jueves: 15:00 a 17:00 hrs.

18/18Angélica Caro Ingeniería Civil Informática UBB 2009

Otros

Medios de Comunicación:

PVA: http://pva.face.ubiobio.cl/pva/Correo electrónico: [email protected]éfono: 253411Personal: 2° piso edificio FACE (previo acuerdo)

Page 10: Ingeniería de Software

1

Ingeniería de Software

Mª Angélica Caro Gutiérrezhttp://www.face.ubiobio.cl/~mcaro/

[email protected]

Departamento deCiencias de la Computación y Tecnologías de Información

Universidad del Bío-BíoSede Chillán

Ingeniería Civil Informática UBB 2009

2/39Angélica Caro Ingeniería Civil Informática UBB 2009

Unidad 1: Introducción

Conceptos generalesSoftware e Ingeniería de SoftwareNormas y EstándaresCiclo de vida del Software

Page 11: Ingeniería de Software

2

3/39Angélica Caro Ingeniería Civil Informática UBB 2009

¿Cuál es la relevancia actual del software (SW) en nuestras vidas?

¿Cómo se puede relacionar un microondas con el SW, en el contexto de nuestras vidas?

Menciona algunas situaciones en las cuales te relacionas con SW Indica aspectos positivos de estas experiencias y aspectos negativos de ellas como usuario

Algunas cuestiones…

4/39Angélica Caro Ingeniería Civil Informática UBB 2009

¿Qué es el software?

Producto creado por los ingenieros de software con el fin de resolver un problema concreto, que luego se debe mantener a largo plazo.

El software se forma por:

Las instrucciones (programas)

Estructuras de datos

Documentación (operación y uso) Programa ≠ Software

El Software

Page 12: Ingeniería de Software

3

5/39Angélica Caro Ingeniería Civil Informática UBB 2009

Otras definiciones…“Programas de computadoras y la documentación asociada. Los productos de software se pueden desarrollar para un cliente en particular o para un mercado en general”

“Producto que diseñan y construyen los ingenieros del software. Esto abarca programas que se ejecutan dentro de una computadora de cualquier tamaño y arquitectura, documentos que comprenden formularios virtuales e impresos y datos que combinan números y texto y también incluyen representaciones de información de audio, vídeo e imágenes”

Sommerville

Pressman

El Software

6/39Angélica Caro Ingeniería Civil Informática UBB 2009

¿Cuál es el actual rol del Software?

Producto, ofrece la potencia de cómputo que incorpora el hardware o más ampliamente una red de computadoras que es accesible por hardware local.

Vehículo para entregar un producto, el software actúa como base del control del computador (sistema operativo) y la creación y control de otros programas (herramientas de software y entornos).

El software entrega el producto más importante de nuestro tiempo: Información

El Software

Page 13: Ingeniería de Software

4

7/39Angélica Caro Ingeniería Civil Informática UBB 2009

Desde años 50-60:Hardware sufrió continuos cambios, el software se consideraba como adicional.

Desarrollo sin planificación.

Orientación por lotes (procesamiento Batch)

Software a medida para cada aplicación.

Se desarrollaba y era utilizado por la misma persona.

Diseño realizado en la mente de alguien.

Documentación escasa, poco formal o inexistente.

Desarrollo de Sw: Evolución

8/39Angélica Caro Ingeniería Civil Informática UBB 2009

Desde años 60- finales 70:Multiprogramación y multiusuario.

Técnicas interactivas (hombre-máquina).

Sistemas de tiempo real.

Sistema de gestión de bases de datos.

Software como producto, llegada de las casas de software.

Desarrollado para una amplia distribución en un mercado multidisciplinario.

¿Crisis del Software?

Desarrollo de Sw: Evolución

Page 14: Ingeniería de Software

5

9/39Angélica Caro Ingeniería Civil Informática UBB 2009

Desde años 80Uso de microprocesadores y computadoras personales.Hardware de bajo costo.Sistemas de procesamientos distribuidos.Redes de área local y global.Creciente demanda de acceso instantáneo a los datos.Tecnologías orientadas a los objetos.Sistemas expertos.Redes neuronales artificiales (reconocimiento de formas y habilidades de procesamiento de información).Computación paralela.

Desarrollo de Sw: Evolución

10/39Angélica Caro Ingeniería Civil Informática UBB 2009

¿Interrogantes asociadas a la construcción de Software?

¿Porqué tarda tanto la construcción del software terminado?¿Porqué son tan altos los costos del desarrollo de software? ¿Porqué es imposible encontrar todos los errores en el software antes de entregarlo a los clientes? ¿Porqué se gastan tanto tiempo y esfuerzo en el mantenimiento de los programas complejos? ¿Porqué es difícil medir el progreso al desarrollar y darle mantenimiento al software?

Construcción del Sw

Page 15: Ingeniería de Software

6

11/39Angélica Caro Ingeniería Civil Informática UBB 2009

El trabajo de un ingenieroConstruir productos de alta calidad bajo restricciones de tiempo y dineroUtilizar e integrar componentes existentes en el mercadoEnfrentar problemas pobremente definidosAceptar soluciones parcialesEvaluación de posibles soluciones en base a métodos empíricos

Esto es igual ya sea se trate de construir un avión de pasajeros, un puente o un sistema de reserva de pasajes de avión

12/39Angélica Caro Ingeniería Civil Informática UBB 2009

El software es complejo

Algunas características:Muchas funcionalidadesDebe satisfacer diversos objetivosMuchos participantesMuy difícil de entender por una sola personaEtc.

Page 16: Ingeniería de Software

7

13/39Angélica Caro Ingeniería Civil Informática UBB 2009

Lo más difícil: manejar cambios

Es muy difícil generar un conjunto de requerimientos correctos desde el comienzoCambios en el ambiente en que operará el softwareCambios tecnológicos

En el caso del software no es posible congelar los requerimientos ya que eso llevaría a completar un sistema o producto innecesario

14/39Angélica Caro Ingeniería Civil Informática UBB 2009

Page 17: Ingeniería de Software

8

15/39Angélica Caro Ingeniería Civil Informática UBB 2009

Ingeniería de Software

Es una disciplina de la ingeniería que se preocupa de todos los aspectos de la producción de softwareLos ingenieros de software deben adoptar un enfoque sistemático y organizado en su trabajo, y usar las herramientas y técnicas apropiadas dependiendo del problema a resolver, las restricciones de desarrollo y los recursos disponibles

16/39Angélica Caro Ingeniería Civil Informática UBB 2009

Unidad 1: Introducción

Conceptos generalesSoftware e Ingeniería de SoftwareNormas y EstándaresCiclo de vida del Software

Page 18: Ingeniería de Software

9

17/39Angélica Caro Ingeniería Civil Informática UBB 2009

Software de sistemas Colección de programas escritos para servir a otros programas.Ejemplos: Editores, compiladores, s. operativo, controladores, procesadores de telecomunicaciones

Software de aplicaciónQue resuelve una necesidad de negocio específica, facilitando las operaciones de negocio y toma de decisiones.

Unidad 1: Introducción

I. de Software, Ideas y Conceptos

Categorías de Sw

18/39Angélica Caro Ingeniería Civil Informática UBB 2009

Software científico y de ingenieríaDesarrollado para aplicarse en áreas como astronomía, sismología, vulcanología, espacial, etc.

Software empotrado o incrustado Reside en memoria de sólo lectura y se utiliza para controlar productos y sistemas de los mercados industriales y de consumo.Ejecuta funciones limitadas (control de las teclas de un microondas) y también funciones significativas y con capacidad de control (funciones digitales en un automóvil tales como control de gasolina,sistema de frenado, temperatura, etc.)

Categorías de Sw

Page 19: Ingeniería de Software

10

19/39Angélica Caro Ingeniería Civil Informática UBB 2009

Software de línea de productosDesarrollado para proporcionar una capacidad específica y la utilización de muchos clientes diferentes.

Software basadas en Web En su forma más simple, como un conjunto de archivos de hipertexto ligados, que presentan información y gráficas.Hasta aplicaciones de comercio electrónico y B2B, con ambientes computacionales más sofisticados, integradas a bases de datos corporativas y aplicaciones de negocios.

Categorías de Sw

20/39Angélica Caro Ingeniería Civil Informática UBB 2009

Software de inteligencia artificialHace uso de algoritmos no numéricos para resolver problemas complejos para los que no son adecuados el cálculo o el análisis directo.

Ultimas tendencias:Software computación ubicua. Software de sistema y de aplicación que permita que dispositivos pequeños, computadores personales y sistemas de empresas se comuniquen a través de grandes redes. Alimentación del WWWCódigo abierto

Categorías de Sw

Page 20: Ingeniería de Software

11

21/39Angélica Caro Ingeniería Civil Informática UBB 2009

¿Qué la motiva?

Ingeniería de Software

22/39Angélica Caro Ingeniería Civil Informática UBB 2009

Planificación y estimación de costos son frecuentemente muy imprecisas

Se ha errado en la planificación en meses o años.La productividad de la comunidad del Software no corresponde con la demanda de sus servicios.Se ha hecho muy poco para mejorar la productividad de los trabajadores del Software.La calidad del Software no llega a ser a veces ni aceptable.Insatisfacción y falta de confianza en los clientes, el Swno satisface sus requerimientos.

Problemas del desarrollo de Sw

Page 21: Ingeniería de Software

12

23/39Angélica Caro Ingeniería Civil Informática UBB 2009

Informe CHAOS (Standish Group) 1994….Base de 175.000 proyectos por US$250.000 millones31% cancelado antes de tiempo 53% tenían defectos Sólo 16% completados a tiempo En promedio los proyectos costaron 189% más de lo presupuestado

Pero hay algunos detractores…

2000

23%49%

28%

43%

Problemas del desarrollo de Sw

24/39Angélica Caro Ingeniería Civil Informática UBB 2009

Dificultad v/s EstimaciónNo tenemos tiempo de recoger datos sobre el proceso de desarrollo del Software.Sin datos históricos como guía, la estimación no ha sido buena y los resultados previstos muy pobres.Sin una indicación sólida de la productividad, no podemos evaluar con precisión la eficacia de las nuevas herramientas, técnicas o estándares.

Problemas del desarrollo de Sw

Page 22: Ingeniería de Software

13

25/39Angélica Caro Ingeniería Civil Informática UBB 2009

Dificultad v/s Satisfacción:La insatisfacción del cliente con el sistema “terminado” se produce demasiado frecuentemente.Los proyectos de desarrollo del software se realizan frecuentemente con sólo una vaga indicación de los requisitos del cliente.Normalmente, la comunicación entre el cliente y el que desarrolla el software es muy escasa.

Problemas del desarrollo de Sw

26/39Angélica Caro Ingeniería Civil Informática UBB 2009

Dificultad v/s Calidad:La calidad del Software es normalmente cuestionable.Hemos empezado a comprender recientemente la importancia de la prueba sistemática y técnicamente completa del software.Están comenzando a emerger conceptos cuantitativos sólidos sobre la fiabilidad del software y las garantías de calidad.

Problemas del desarrollo de Sw

Page 23: Ingeniería de Software

14

27/39Angélica Caro Ingeniería Civil Informática UBB 2009

Dificultad v/s Mantención:El software existente puede ser muy difícil de mantener.La tarea de mantenimiento del software se lleva la mayor parte de todo el dinero invertido en el software.El mantenimiento no se ha considerado un criterio importante en la aceptación del software.

Problemas del desarrollo de Sw

28/39Angélica Caro Ingeniería Civil Informática UBB 2009

La clave o solución:Todas las dificultades descritas se pueden corregir.Se debe dar un enfoque de ingeniería al desarrollo de software.Junto con la mejora continua de las técnicas y de las herramientas.

Problemas del desarrollo de Sw

Page 24: Ingeniería de Software

15

29/39Angélica Caro Ingeniería Civil Informática UBB 2009

Mitos de Gestión

Mitos del Clientes

Mitos de los Desarrolladores

Mitos del Sw

30/39Angélica Caro Ingeniería Civil Informática UBB 2009

Mitos de Gestión:

Los administradores con responsabilidades sobre el software a menudo están:

(1) bajo la presión de cumplir los presupuestos, (2) hacer que no se retrase el proyecto y, (3) mejorar la calidad.

Estos los hace aferrarse a ciertos mitos con la creencia que esto disminuirá la presión, aunque sea temporalmente.

Mitos del Sw

Page 25: Ingeniería de Software

16

31/39Angélica Caro Ingeniería Civil Informática UBB 2009

Mitos de Gestión:

Se cuenta con los estándares y procedimientos para construir Software. ¿Esto proporcionará a mi gente todo lo que necesita saber?Si estamos atrasados en los plazos es posible contratar más programadores para así terminar a tiempo. Si decido subcontratar el proyecto de software a un tercero, puedo relajarme y dejar que esa empresa lo construya.

Mitos del Sw

32/39Angélica Caro Ingeniería Civil Informática UBB 2009

Mitos del Cliente:

El cliente cree en mitos acerca del porque tanto los profesionales como administradores del software hacen muy poco para corregir la desinformación.

Los mitos conducen a expectativas falsas (del cliente) y en definitiva a insatisfacción con el desarrollador.

Mitos del Sw

Page 26: Ingeniería de Software

17

33/39Angélica Caro Ingeniería Civil Informática UBB 2009

Mitos del Cliente:

Un enunciado general de los objetivos es suficiente para comenzar a escribir los programas; los detalles se pueden afinar más adelante.Los requisitos del proyecto cambian continuamente, pero los cambios pueden acomodarse fácilmente, ya que el software es flexible.

Mitos del Sw

34/39Angélica Caro Ingeniería Civil Informática UBB 2009

Mitos del Desarrollador:

Los mitos que aún subsisten entre los desarrolladores han permanecido a través de 50 años de “cultura de programación”.

Durante los primeros años la programación era vista como un arte, por esto es que las viejas formas y actitudes tardan en desaparecer.

Mitos del Sw

Page 27: Ingeniería de Software

18

35/39Angélica Caro Ingeniería Civil Informática UBB 2009

Mitos del Desarrollador:

Una vez que el programa ha sido escrito y puesto a funcionar, el trabajo ha terminado.Hasta que no tengo el programa “ejecutándose”, realmente no tengo forma de comprobar su calidad. El único producto del trabajo que puede entregarse para tener un proyecto exitoso es el programa funcionado.La ingeniería de SW obligará a emprender la creación de una documentación voluminosa e innecesaria y de manera invariable hará más lento el proceso.

Mitos del Sw

36/39Angélica Caro Ingeniería Civil Informática UBB 2009

Unidad 1: Introducción

Conceptos generalesSoftware e Ingeniería de SoftwareNormas y EstándaresCiclo de vida del Software

Page 28: Ingeniería de Software

19

37/39Angélica Caro Ingeniería Civil Informática UBB 2009

Ley de las aleaciones de metales preciosos

Ley de las aleaciones de metales preciosos

Emisiones gases de escape, vehículos a motor

Emisiones gases de escape, vehículos a motorRequisitos para los

focos de motocicletas

Requisitos para los focos de motocicletas

Requisitos de seguridad de los neumáticos y llantas de motocicletas

Requisitos de seguridad de los neumáticos y llantas de motocicletas

Cascos de protección para usuarios de ciclomotores

Cascos de protección para usuarios de ciclomotores

Generalidades de neumáticos, llantas y válvulas para motocicletas

Generalidades de neumáticos, llantas y válvulas para motocicletas

Ruido emitido por ciclomotores en movimiento

Ruido emitido por ciclomotores en movimiento

IEEE – Institute ofElectrical and ElectronicsEngineers

AENOR

INN

http://www.iso.org

Imagen facilitada por el Dr. Felix García

La Normalización

38/39Angélica Caro Ingeniería Civil Informática UBB 2009

Investigación

En grupos de 2 personas

Averiguar qué normas o estándares se relacionan con la construcción de Sw y quéaspecto de esta abordan

Normas y Estándares

Page 29: Ingeniería de Software

20

39/39Angélica Caro Ingeniería Civil Informática UBB 2009

Pressman Roger . 2005. “Ingeniería del Software, un enfoque práctico”. Editorial McGraw Hill. 6ta edición.

PFLEEGER, S. L. 2002. Ingeniería de software, teoría y práctica. Pearson Education. 1ra Edición.

SOMMERVILLE, I. 2002. Ingeniería de software. Editorial Pearson Educación, 6ta edición.

Bibliografía

Page 30: Ingeniería de Software

1

Ingeniería de Software

Mª Angélica Caro Gutiérrezhttp://www.face.ubiobio.cl/~mcaro/

[email protected]

Departamento deCiencias de la Computación y Tecnologías de Información

Universidad del Bío-BíoSede Chillán

Ingeniería Civil Informática UBB 2009

2/36Angélica Caro Ingeniería Civil Informática UBB 2009

Unidad 2: Gestión de proyectos de Sw

Modelos del Proceso del softwarePlanificación de proyectos de softwareMétodos de estimaciónEstimación de costo/precioMétricas de proyectosAnálisis y gestión de riesgosSeguimiento de proyectosGarantía de calidad de software

Page 31: Ingeniería de Software

2

3/36Angélica Caro Ingeniería Civil Informática UBB 2009

Contexto:

El desarrollo de un sistema de Swestá enmarcado por los recursos, eltiempo y un conjunto de requerimientos. Para lograrlo debe existir una planeacióny un seguimiento de ésta.Una planeación está conformada por actividades, recursos y tiempoEsas actividades se llevan a cabo dentro de un proceso definido

Modelos de proceso de Sw

4/36Angélica Caro Ingeniería Civil Informática UBB 2009

Proceso de construcción de Sw:

“El conjunto completo de actividades de ingeniería de software necesarias para transformar los requerimientos del usuario en software.” [Humphrey]

Modelos de proceso de Sw

Page 32: Ingeniería de Software

3

5/36Angélica Caro Ingeniería Civil Informática UBB 2009

Unidad 2: Gestión de Proy. de SW

Modelos de proceso de SwIngeniería del Sw, una tecnología estratificada:

Cómo construir técnicamente el software(análisis de requisitos, diseño, construcción de programas, pruebas y mantenimiento)

La base de cualquier ingeniería es un compromiso con la calidad

Define un marco de trabajo para las áreas clave de procesoLas áreas forman la base del control de gestión y establecen el contexto donde se aplican los métodos técnicos, se obtienen productos de trabajo, se establecen los fundamentos, se asegura la calidad y el cambio se gestiona adecuadamente

Proporcionan un enfoque automático o semi-automático para el proceso y los métodos. Ingeniería de software asistida por computadoras (CASE)

Un Enfoque de Calidad

Proceso

Métodos

Herramientas

6/36Angélica Caro Ingeniería Civil Informática UBB 2009

Tareas

Productos

Puntos de aseguramiento de la calidad

Conjunto de tareas (n)

Actividades del marco de trabajo (n)

Marco de trabajo del proceso

PROCESO DEL SOFTWARE

Actividades paraguas

Fundamentos del proyecto

Un marco de trabajo establece la base para un proceso de Sw completo, ya que establece un número pequeño de actividades aplicables a todos los proyectos de Sw, sin importar su tamaño o complejidad. Además abarca un conjunto de actividades “paraguas” aplicables en todo el proceso del Sw.

Modelos de proceso de Sw

Page 33: Ingeniería de Software

4

7/36Angélica Caro Ingeniería Civil Informática UBB 2009

Implícita o Explícitamente todos los modelos de proceso cuentan por lo menos con las siguientes actividades:

Modelos de proceso de Sw

Representa todas las actividadesy artefactos (productos

intermedios) necesarios para desarrollar una aplicación

Cada modelo determina 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.

8/36Angélica Caro Ingeniería Civil Informática UBB 2009

Marco genérico del proceso (Pressman, 2005)

Comunicación

Planeación

Modelado

Construcción

Despliegue

Esta actividad implica una intensa colaboración y comu-nicación con los clientes. Abarca también la investigación de requisitos y otras actividades relacionadasEstablece un plan de trabajo con las tareas técnicas, riesgos probables, recursos que serán requeridos, productos que se generarán y un programa de trabajo

Comprende la la creación de modelos que permitan al desarrollador y al cliente entender mejor los requi-sitos del Sw y el diseño que logrará satisfacerlos.

Combina la generación del código y la realización de las pruebas necesarias para descubrir errores en el código

Entrega del Sw al cliente (como una entidad completa o incremento completo), este evalúa el producto recibido y proporciona información basada en su evaluación

Modelos de proceso de Sw

Page 34: Ingeniería de Software

5

9/36Angélica Caro Ingeniería Civil Informática UBB 2009

Por ejemplo:Modelado

Análisis Diseño

Investigaciónelaboraciónnegociaciónespecificaciónvalidación requisitos

Diseño de datosDiseño arquitectónicodiseño de interfazdiseño de componentes

Modelo de análisiso especificación de requisitos

Modelo de de diseño o especificación de diseño

actividad

Acciones de ISw

Tareas de trabajo

El conjunto de tareas a realizar debe ser el quemejor se ajuste a lasnecesidades del proyecto y características del equipo

Modelos de proceso de Sw

10/36Angélica Caro Ingeniería Civil Informática UBB 2009

Un conjunto de tareas define el trabajo real que debe realizarse para cumplir los objetivos de una acción de Sw, por ejemplo:

Objetivo: entender quédesean los distintos clientes del Sw que se va a desarrollar

Actividad de Comunicación

Acción de recopilación de requisitos

Conjunto de Tareas (proy. pequeño)

1. Hacer una lista de los clientes del proyecto

2. Invitar a todos los clientes a una reunión

3. Pedir a cada cliente una lista con características y funciones requeridas

4. Establecer un debate sobre los requisitos y elaborar una lista final

5. Priorizar los requisitos

6. Advertir las áreas de incertidumbre

Modelos de proceso de Sw

Page 35: Ingeniería de Software

6

11/36Angélica Caro Ingeniería Civil Informática UBB 2009

Actividades “paraguas”, enfocadas a la gestión, rastreo y control del proyecto. (Pressman, 2005)

Seguimiento y control del proyecto de Sw. Permite que el equipo Sw evalúe el progreso comparándolo con el plan del proyecto y asítomar las acciones necesarias para mantener el plan.

Gestión del riesgo. Evalúa los riesgos que pudieran afectar los resultados del proyecto o la calidad del producto

Aseguramiento de la calidad del Sw. Define y conduce las actividades requeridas para asegurar la calidad del Sw

Revisiones técnicas formales. Evalúa los productos del trabajo para descubrir y eliminar los errores antes que se propaguen a la siguiente acción o actividad.

Modelos de proceso de Sw

12/36Angélica Caro Ingeniería Civil Informática UBB 2009

Actividades “paraguas” (Pressman, 2005)

Medición. Define y recolecta mediciones del proceso, el proyecto y el producto para ayudar al equipo a entregar un Sw que satisfaga las necesidades del cliente.

Gestión de la configuración del software. Maneja los efectos del cambio a través del proceso del Sw

Gestión de la reutilización. Define los criterios para la reutilización de productos del trabajo y establece mecanismos para la creación de componentes reutilizables.

Preparación y producción del producto de trabajo. Actividades requeridas para crear productos del trabajo como modelos, documentos, registros, formatos y listas

Modelos de proceso de Sw

Page 36: Ingeniería de Software

7

13/36Angélica Caro Ingeniería Civil Informática UBB 2009

Resumiendo (1/2):

Propuestos con la idea de ordenar el desarrollo de Sw.

Definen un conjunto distinto de actividades, acciones, tareas, fundamentos y productos de trabajo que se requieren para desarrollar Sw de calidad.

Cada organización a través de los ing. de Sw y gerentes adaptan estos modelos a sus necesidades

Modelos de proceso de Sw

14/36Angélica Caro Ingeniería Civil Informática UBB 2009

Resumiendo (2/2):

Proporcionan estabilidad, control y organización a una actividad que si no se controla puede volverse caótica.

Conducen a un equipo de Sw a través de un conjunto de actividades que se organizan en un flujo de proceso que puede ser lineal, incremental o evolutivo.

Modelos de proceso de Sw

Page 37: Ingeniería de Software

8

15/36Angélica Caro Ingeniería Civil Informática UBB 2009

¿Cómo estar seguros de que el proceso de Sw se ha hecho correctamente ?

Usando mecanismos para la evaluación del proceso de Sw que permita a las organizaciones determinar la “madurez” de sus respectivos procesos.

Sin embargo, los mejores indicadores de la eficacia del proceso que se utiliza son la calidad, el tiempo de entrega y la viabilidad a largo plazo del producto que se construye.

Modelos de proceso de Sw

16/36Angélica Caro Ingeniería Civil Informática UBB 2009

Aunque un proceso sea prescriptivo, no se debe asumir que éste es estático.

Los modelos prescriptivos se deben adaptar a las personas, al problema y al proyecto

Un modelo prescriptivo del proceso llena el marco de trabajo con conjuntos de tareas explícitas para

las acciones de la ingeniería de software

Modelos de proceso de Sw

Page 38: Ingeniería de Software

9

17/36Angélica Caro Ingeniería Civil Informática UBB 2009

Modelos de proceso de Sw

CascadaIterativo IncrementalDRAEvolutivosProceso UnificadoOtros

18/36Angélica Caro Ingeniería Civil Informática UBB 2009

Modelo Cascadaciclo de vida clásico, lineal, lineal secuencial o básico.

Royce, 1970

Page 39: Ingeniería de Software

10

19/36Angélica Caro Ingeniería Civil Informática UBB 2009

Características :Cada fase empieza cuando se ha terminado la fase anterior

Para pasar de una fase a otra es necesario conseguir todos los objetivos de la etapa previa

Ayuda a prevenir que se sobrepasen las fechas de entrega y los costos esperados

Al final de cada fase el personal técnico y los usuarios tienen la oportunidad de revisar el progreso del proyecto

Este modelo es apropiado cuando los requerimientos están muy definidos y son razonablemente estables. (adaptaciones, mejorías, algunos proyectos nuevos)

Modelo Cascada

20/36Angélica Caro Ingeniería Civil Informática UBB 2009

Comunicación Inicio del proyecto recopilación de requisitos

Planeación Estimación itinerario seguimiento

Modelado análisis diseño Construcción

código prueba

Despliegue entrega soporte retroalimentación

En su propuesta Pressman hace notar que a pesar que el modelo original propuesto por Royce propone “ciclos de

retroalimentación”, en la práctica la mayoría de las organizaciones que lo aplica lo trata como si fuera

estrictamente lineal

Modelo Cascada, Pressman

Page 40: Ingeniería de Software

11

21/36Angélica Caro Ingeniería Civil Informática UBB 2009

Operación y Mantenimiento

Integración y prueba del sistema

Implementación y prueba de unidades

Diseño de sistemas y software

Definición de Requerimientos

Sommerville afirma que en la práctica estas etapas se traslapan y

proporcionan información a las otras. El proceso del software no es un proceso lineal simple e implica realizar iteraciones, pero estas son muy costosas y requieren rehacer

trabajo.

Modelo Cascada, Sommerville

22/36Angélica Caro Ingeniería Civil Informática UBB 2009

Fácil entendimiento e implementación

Ampliamente utilizado y conocido ( En teoría )

Refuerza buenos hábitos: definir antes que diseñar, diseñar antes que codificar

Identifica entregables e hitos.

Orientado a documentos.

Funciona bien en productos maduros y equipos débiles

Modelo Cascada, Ventajas

Page 41: Ingeniería de Software

12

23/36Angélica Caro Ingeniería Civil Informática UBB 2009

Los proyectos reales raras veces siguen el modelo secuencial propuesto. Como resultado, los cambios pueden causar confusión cuando el equipo de proyecto comienza.

A menudo es difícil que el cliente exponga explícitamente todos los requisitos. Este modelo lo requiere y tiene dificultades a la hora de acomodar la incertidumbre natural al comienzo de muchos proyectos.

El cliente debe tener paciencia. Una versión del producto final no estará disponible hasta que el proyecto esté muy avanzado. Un grave error puede ser desastroso si no se detecta hasta que se revisa el producto.

Dificultar para integrar administración del riesgo

Modelo Cascada, Desventajas

24/36Angélica Caro Ingeniería Civil Informática UBB 2009

Modelos de proceso de Sw

CascadaIterativo IncrementalDRAEvolutivosProceso UnificadoOtros

Page 42: Ingeniería de Software

13

25/36Angélica Caro Ingeniería Civil Informática UBB 2009

...

Combina elemen-tos del modelo en cascada con la filosofía iterativa de la construcción de prototipos

Se aplican secuencias lineales de forma escalonada mientras progresa el calendario

Modelo Incremental

26/36Angélica Caro Ingeniería Civil Informática UBB 2009

...Características (1/2)

Cuando se utiliza este modelo, el primer incremento a menudo es un producto esencial, es decir, se afrontan los requisitos básicos pero quedan sin extraer muchas funciones complementarias (conocidas o no).

El cliente utiliza el producto esencial y como resultado de uso o evaluación se desarrolla un plan para el incremento siguiente.

El proceso se repite hasta elaborar el producto completo. Se diferencia de la construcción de prototipos en que en cada incremento se centra en entregar un producto operacional.

Los primeros incrementos son versiones incompletas, pero que proporcionan al usuario la funcionalidad que precisa, y una plataforma para la evaluación.

Modelo Incremental

Page 43: Ingeniería de Software

14

27/36Angélica Caro Ingeniería Civil Informática UBB 2009

...Características (2/2)

Corrige la necesidad de una secuencia no lineal de pasos de desarrollo y combina elementos del modelo de cascada aplicados en forma iterativa

El sistema se crea añadiendo componentes funcionales incrementos

El sistema no se ve como una entidad monolítica con una fecha fija de entrega, sino que es una integración de resultados sucesivos obtenidos después de cada iteración

Modelo Incremental

28/36Angélica Caro Ingeniería Civil Informática UBB 2009

...Se ajusta a entornos de alta incertidumbre

Se evitan proyectos largos y se entrega “algo de valor” a los usuarios con cierta frecuencia

El usuario se involucra más

Mayor retorno de la inversión

Modelo Incremental, Ventajas

Page 44: Ingeniería de Software

15

29/36Angélica Caro Ingeniería Civil Informática UBB 2009

Difícil de evaluar el costo total

Requiere gestores experimentados

Difícil de aplicar a sistemas transaccionales que tienden a ser integrados y a operar como un todo

Los errores en los requisitos se detectan tarde y su corrección resulta costosa

Modelo Incremental, Desventajas

30/36Angélica Caro Ingeniería Civil Informática UBB 2009

Modelos de proceso de Sw

CascadaIterativo IncrementalDRAEvolutivosProceso UnificadoOtros

Page 45: Ingeniería de Software

16

31/36Angélica Caro Ingeniería Civil Informática UBB 2009

Características (1/2)Desarrollo rápido de aplicaciones, en inglés RAD (RapidApplication Development).

Adaptación a alta velocidad del modelo en cascada, logrando el desarrollo rápido mediante un enfoque de construcción basado en componentes

Si se entienden bien los requisitos y se limita el ámbito del proyecto, el proceso DRA permite que un equipo cree un “sistema completamente funcional” dentro de un periodo muy corto 60-90 días.

Varios equipos de desarrollo trabajan en paralelo

La construcción considera el empleo de componentes existentes.

Modelo DRA

32/36Angélica Caro Ingeniería Civil Informática UBB 2009

Una secuencia de etapas del DRA podría ser:

Modelado de gestión

Modelado de datos

Modelado de proceso

Generación de aplicaciones

Prueba de entregas

Modelo DRA

Page 46: Ingeniería de Software

17

33/36Angélica Caro Ingeniería Civil Informática UBB 2009

Comunicación

Planeación

Despliegue integración entrega retroalimentación

Modelado del negocio de los datos del proceso

Construcción reutilización de componentes generación de código automático pruebas

Equipo # 1

Equipo # 2

Modelado del negocio de los datos del proceso

Modelado del negocio de los datos del proceso

Construcción reutilización de componentes generación de código automático pruebas

Construcción reutilización de componentes generación de código automático pruebas

(Pressman, 2005)

Equipo # n

60-90 días

Modelo DRA

34/36Angélica Caro Ingeniería Civil Informática UBB 2009

Tiempos cortos de Desarrollo

El DRA asume la utilización de técnicas de cuarta generación. En lugar de crear Sw con lenguajes de programación de tercera generación, el proceso DRA trabaja para volver a utilizar componentes de programas ya existentes (cuando es posible) o a crear componentes reutilizables (cuando sea necesario). En todos los casos se utilizan herramientas automáticas para facilitar la construcción del software.

Como el proceso DRA enfatiza la reutilización, y esto reduce tiempo de pruebas. Aunque se deben probar todos los componentes nuevos y se deben ejercitar todas las interfases a fondo.

Modelo DRA, Ventajas

Page 47: Ingeniería de Software

18

35/36Angélica Caro Ingeniería Civil Informática UBB 2009

Necesita un alto número de recursos humanos, para crear el número correcto de equipos DRA.

Se requiere a desarrolladores y clientes comprometidos con las actividades rápidas.

Si un sistema no se puede modular apropiadamente, la construcción de componentes será problemática.

No es apropiada cuando los riesgos técnicos son altos (una nueva aplicación que usa muchas tecnologías nuevas).

Modelo DRA, Desventajas

36/36Angélica Caro Ingeniería Civil Informática UBB 2009

Pressman Roger . 2005. “Ingeniería del Software, un enfoque práctico”. Editorial McGraw Hill. 6ta edición.

PFLEEGER, S. L. 2002. Ingeniería de software, teoría y práctica. Pearson Education. 1ra Edición.

SOMMERVILLE, I. 2002. Ingeniería de software. Editorial Pearson Educación, 6ta edición.

Bibliografía

Page 48: Ingeniería de Software

1

Ingeniería de Software

Mª Angélica Caro Gutiérrezhttp://www.face.ubiobio.cl/~mcaro/

[email protected]

Departamento deCiencias de la Computación y Tecnologías de Información

Universidad del Bío-BíoSede Chillán

Ingeniería Civil Informática UBB 2009

2/31Angélica Caro Ingeniería Civil Informática UBB 2009

Modelos de proceso de Sw

CascadaIterativo IncrementalDRAEvolutivosProceso UnificadoOtros

Page 49: Ingeniería de Software

2

3/31Angélica Caro Ingeniería Civil Informática UBB 2009

...

Combina elemen-tos del modelo en cascada con la filosofía iterativa de la construcción de prototipos

Se aplican secuencias lineales de forma escalonada mientras progresa el calendario

Modelo Incremental

4/31Angélica Caro Ingeniería Civil Informática UBB 2009

Características (1/2)Cuando se utiliza este modelo, el primer incremento a menudo es un producto esencial, es decir, se afrontan los requisitos básicos pero quedan sin extraer muchas funciones complementarias (conocidas o no).

El cliente utiliza el producto esencial y como resultado de uso o evaluación se desarrolla un plan para el incremento siguiente.

El proceso se repite hasta elaborar el producto completo. Se diferencia de la construcción de prototipos en que en cada incremento se centra en entregar un producto operacional.

Los primeros incrementos son versiones incompletas, pero que proporcionan al usuario la funcionalidad que precisa, y una plataforma para la evaluación.

Modelo Incremental

Page 50: Ingeniería de Software

3

5/31Angélica Caro Ingeniería Civil Informática UBB 2009

Características (2/2)Corrige la necesidad de una secuencia no lineal de pasos de desarrollo y combina elementos del modelo de cascada aplicados en forma iterativa

El sistema se crea añadiendo componentes funcionales incrementos

El sistema no se ve como una entidad monolítica con una fecha fija de entrega, sino que es una integración de resultados sucesivos obtenidos después de cada iteración

Modelo Incremental

6/31Angélica Caro Ingeniería Civil Informática UBB 2009

Se ajusta a entornos de alta incertidumbre

Se evitan proyectos largos y se entrega “algo de valor” a los usuarios con cierta frecuencia

El usuario se involucra más

Mayor retorno de la inversión

Modelo Incremental, Ventajas

Page 51: Ingeniería de Software

4

7/31Angélica Caro Ingeniería Civil Informática UBB 2009

Difícil de evaluar el costo total

Requiere gestores experimentados

Difícil de aplicar a sistemas transaccionales que tienden a ser integrados y a operar como un todo

Los errores en los requisitos se detectan tarde y su corrección resulta costosa

Modelo Incremental, Desventajas

8/31Angélica Caro Ingeniería Civil Informática UBB 2009

Modelos de proceso de Sw

CascadaIterativo IncrementalDRAEvolutivosProceso UnificadoOtros

Page 52: Ingeniería de Software

5

9/31Angélica Caro Ingeniería Civil Informática UBB 2009

Características (1/2)Desarrollo rápido de aplicaciones, en inglés RAD (RapidApplication Development).

Adaptación a alta velocidad del modelo en cascada, logrando el desarrollo rápido mediante un enfoque de construcción basado en componentes

Si se entienden bien los requisitos y se limita el ámbito del proyecto, el proceso DRA permite que un equipo cree un “sistema completamente funcional” dentro de un periodo muy corto 60-90 días.

Varios equipos de desarrollo trabajan en paralelo

La construcción considera el empleo de componentes existentes.

Modelo DRA

10/31Angélica Caro Ingeniería Civil Informática UBB 2009

Una secuencia de etapas del DRA podría ser:

Modelado de gestión

Modelado de datos

Modelado de proceso

Generación de aplicaciones

Prueba de entregas

Modelo DRA

Page 53: Ingeniería de Software

6

11/31Angélica Caro Ingeniería Civil Informática UBB 2009

Comunicación

Planeación

Despliegue integración entrega retroalimentación

Modelado del negocio de los datos del proceso

Construcción reutilización de componentes generación de código automático pruebas

Equipo # 1

Equipo # 2

Modelado del negocio de los datos del proceso

Modelado del negocio de los datos del proceso

Construcción reutilización de componentes generación de código automático pruebas

Construcción reutilización de componentes generación de código automático pruebas

(Pressman, 2005)

Equipo # n

60-90 días

Modelo DRA

12/31Angélica Caro Ingeniería Civil Informática UBB 2009

Tiempos cortos de Desarrollo

El DRA asume la utilización de técnicas de cuarta generación. En lugar de crear Sw con lenguajes de programación de tercera generación, el proceso DRA trabaja para volver a utilizar componentes de programas ya existentes (cuando es posible) o a crear componentes reutilizables (cuando sea necesario). En todos los casos se utilizan herramientas automáticas para facilitar la construcción del software.

El proceso DRA enfatiza la reutilización, y esto reduce tiempo de pruebas. Aunque se deben probar todos los componentes nuevos y se deben ejercitar todas las interfases a fondo.

Modelo DRA, Ventajas

Page 54: Ingeniería de Software

7

13/31Angélica Caro Ingeniería Civil Informática UBB 2009

Necesita un alto número de recursos humanos, para crear el número correcto de equipos DRA.

Se requiere a desarrolladores y clientes comprometidos con las actividades rápidas.

Si un sistema no se puede modular apropiadamente, la construcción de componentes será problemática.

No es apropiada cuando los riesgos técnicos son altos (una nueva aplicación que usa muchas tecnologías nuevas).

Modelo DRA, Desventajas

14/31Angélica Caro Ingeniería Civil Informática UBB 2009

Modelos de proceso de Sw

CascadaIterativo IncrementalDRAEvolutivosProceso UnificadoOtros

Page 55: Ingeniería de Software

8

15/31Angélica Caro Ingeniería Civil Informática UBB 2009

El Sw, como otro tipo de sistemas, evoluciona en el tiempo.

Los requisitos de los negocios y productos a menudo cambian conforme se realiza el desarrollo….

Se tiene claro un conjunto de requisitos del producto o sistema principal, pero todavía se deben definir los detalles de las extensiones o del producto o sistemas.

Los modelos evolutivos son iterativos; los caracteriza la forma en que permiten que los ingenieros de Swdesarrollen versiones cada vez más completas del Sw, es decir permiten que el Sw evolucione con el tiempo.

Modelo Evolutivos

16/31Angélica Caro Ingeniería Civil Informática UBB 2009

Modelos Evolutivos

Algunos modelos evolutivos:Modelo de prototipos Modelo EspiralModelo Espiral WinWinModelo Concurrente

Page 56: Ingeniería de Software

9

17/31Angélica Caro Ingeniería Civil Informática UBB 2009

Normalmente cliente define conjunto de objetivos generales; no identifica requisitos detallados de entrada, proceso o salida.

El responsable del desarrollo puede no estar seguro de la eficiencia de un algoritmo o de la adaptabilidad de un sistema operativo o de la forma en que debiera tomarse la interacción hombre - máquina.

Cuando el cliente tiene una necesidad legitima, pero estádesorientado sobre los detalles, el primer paso es desarrollar un prototipo

Ayuda al ingeniero y al cliente a entender mejor cuál seráel resultado de la construcción cuando los requisitos estén satisfechos.

Modelo EvolutivosConstrucción de Prototipos

18/31Angélica Caro Ingeniería Civil Informática UBB 2009

Plan rápido

Modelado Diseño rápido

Construcción del prototipo

Desarrollo Entrega y retroalimentación

Comunicación

Definición de objetivos globales, identificación de requisitos conocidos y áreas que requieren más definición

Centrado en aquellos aspectos del Sw que serán visibles al usuario final o cliente

El prototipo es evaluado por el usuario y con la retroalimentación se refinan los requisitos

Desarrollo del Sw, a veces desechando el prototipo (Brooks)

Modelo EvolutivosConstrucción de Prototipos

Page 57: Ingeniería de Software

10

19/31Angélica Caro Ingeniería Civil Informática UBB 2009

Paradigma de construcción de Prototipos:Escuchar al cliente

Construir/revisar maqueta

Probar maqueta

Los prototipos tienen una doble función:El cliente ve el producto y refina sus requisitos

El desarrollador comprende mejor lo que necesita hacer

Modelo EvolutivosConstrucción de Prototipos

20/31Angélica Caro Ingeniería Civil Informática UBB 2009

Tipos de Prototipado:Prototipado rápido: No modifica el ciclo básico y es usado básicamente para Prototipo de la interfaz de usuario y Prototipo del rendimiento

Prototipado evolutivo: Construcción de una implementación parcial que cubre los requisitos conocidos, para ir aprendiendo el resto y, paulatinamente, incorporarlos al sistema

Prototipado Operacional: Mezcla de los dos anteriores

Modelo EvolutivosConstrucción de Prototipos

Page 58: Ingeniería de Software

11

21/31Angélica Caro Ingeniería Civil Informática UBB 2009

Prototipado Operacional:En algunos sistemas ni el prototipado rápido ni el evolutivo por sí solos son aceptables porque los requisitos son:

Críticos al diseño y bien entendidosNo críticos al diseño y pobremente entendidosDesconocidos

Modelo EvolutivosConstrucción de Prototipos

22/31Angélica Caro Ingeniería Civil Informática UBB 2009

Modelo EvolutivosConstrucción de Prototipos

Page 59: Ingeniería de Software

12

23/31Angélica Caro Ingeniería Civil Informática UBB 2009

Desventajas:El cliente ve lo que parece una versión de trabajo y desconoce que con la construcción acelerada no se hizo consideraciones de la calidad global del software o de las facilidades mantenimiento. Es difícil explicar que el prototipo no es el producto final

El desarrollador hace compromisos para una implementación rápida. Se puede utilizar un lenguaje o sistema operativo inadecuado sólo porque estádisponible o porque se conoce.

El cliente y el desarrollador debieran estar claros que idealmente el prototipo debiera servir para identificar requisitos

Modelo EvolutivosConstrucción de Prototipos

24/31Angélica Caro Ingeniería Civil Informática UBB 2009

Modelos Evolutivos

Algunos modelos evolutivos:Modelo de prototipos Modelo EspiralModelo Espiral WinWinModelo Concurrente

Page 60: Ingeniería de Software

13

25/31Angélica Caro Ingeniería Civil Informática UBB 2009

Combina la naturaleza iterativa de construcción de prototipos con los aspectos controlados y sistemáticos del modelo lineal secuencial.

El Sw se desarrolla en una serie de versiones incrementales.

Durante las primeras iteraciones, la versión incremental podría ser un modelo en papel o un prototipo.

Durante las últimas iteraciones, se producen versiones cada vez más completas del sistema diseñado.

Este modelo se puede adaptar y aplicar a través del ciclo de vida completo, desde el desarrollo del concepto hasta el mantenimiento

Modelo Espiral (Boehm, 1988)

26/31Angélica Caro Ingeniería Civil Informática UBB 2009

Cada ciclo empieza identificando:Los objetivos de la porción correspondienteLas alternativasRestricciones

Durante la primera vuelta alrededor del espiral se definen los objetivos, las alternativas, restricciones y se identifican los riesgos.

Se formula una estrategia efectiva para resolver las fuentes de riesgos (simulación, prototipado, etc.)

Se pueden usar simulaciones y otros modelos para definir más el problema y refinar los requisitos.

Modelo EspiralFuncionamiento (1/2)

Page 61: Ingeniería de Software

14

27/31Angélica Caro Ingeniería Civil Informática UBB 2009

Cada ciclo se completa con una revisión que incluye todo el ciclo anterior y el plan para el siguiente.

El cliente evalúa el trabajo de ingeniería y sugiere modificaciones.

En base a los comentarios del cliente se produce la siguiente fase de planificación y de análisis de riesgo.

En cada bucle del espiral, la culminación del análisis de riesgo resulta en una decisión de “seguir o no seguir”.

Si los riesgos son demasiado grandes, se puede dar por terminado el proyecto.

Modelo EspiralFuncionamiento (2/2)

28/31Angélica Caro Ingeniería Civil Informática UBB 2009

Plan de Requisitos

Plan del Ciclo de Vida

Plan deDesarrollo

Plan deIntegracióny Pruebas

Planificar lasfases siguientes

Determinarobjetivos,alternativas,restricciones

Evaluar alternativas,identificar y resolverlos riesgosAnálisis

de RiesgosAnálisis

Análisis

Análisis de

de Riesgos

de Riesgos

Riesgos Prototipo 1

Prototipo 2Prototipo 3

PrototipoOperativo

Concepto deOperación Requisitos

Sw

Validación deRequisitos

DiseñoProductoSw

V & V deldiseño

Simulaciones, modelos, benchmarks

Diseñodetallado

CódigoPruebasunitarias

Integracióny pruebaPrueba de

aceptaciónImple-menta-ción

Desarrollar, Verificar elproducto del siguiente nivel

Modelo Espiral (Boehm, 1988)

Page 62: Ingeniería de Software

15

29/31Angélica Caro Ingeniería Civil Informática UBB 2009

Permite acomodar otros modelos

Incorpora objetivos de calidad y gestión de riesgos

Elimina errores y alternativas no atractivas al comienzo

Permite iteraciones, vuelta atrás y finalizaciones rápidas

Puede permanecer operativo hasta que el Sw se retire

Es un enfoque realista para sistemas a gran escala

Es difícil de adaptar a los contratos

Modelo EspiralCaracterísticas esenciales

30/31Angélica Caro Ingeniería Civil Informática UBB 2009

Diferencias con los métodos tradicionales:

Existe un reconocimiento explícito de las diferentes alternativas para alcanzar los objetivos de un proyecto

La identificación de riesgos asociados con cada una de las alternativas

La división de los proyectos en ciclos

El modelo se adapta a cualquier tipo de actividad

Es posible incorporar otros modelos como parte de él.

Modelo EspiralCaracterísticas esenciales

Page 63: Ingeniería de Software

16

31/31Angélica Caro Ingeniería Civil Informática UBB 2009

Pressman Roger . 2005. “Ingeniería del Software, un enfoque práctico”. Editorial McGraw Hill. 6ta edición.

PFLEEGER, S. L. 2002. Ingeniería de software, teoría y práctica. Pearson Education. 1ra Edición.

SOMMERVILLE, I. 2002. Ingeniería de software. Editorial Pearson Educación, 6ta edición.

Bibliografía

Page 64: Ingeniería de Software

1

Ingeniería de Software

Mª Angélica Caro Gutiérrezhttp://www.face.ubiobio.cl/~mcaro/

[email protected]

Departamento deCiencias de la Computación y Tecnologías de Información

Universidad del Bío-BíoSede Chillán

Ingeniería Civil Informática UBB 2009

2/21Angélica Caro Ingeniería Civil Informática UBB 2009

Modelos Evolutivos

Algunos modelos evolutivos:Modelo de prototipos Modelo EspiralModelo Espiral WinWinModelo Concurrente

Page 65: Ingeniería de Software

2

3/21Angélica Caro Ingeniería Civil Informática UBB 2009

Combina la naturaleza iterativa de construcción de prototipos con los aspectos controlados y sistemáticos del modelo lineal secuencial.

El Sw se desarrolla en una serie de versiones incrementales.

Durante las primeras iteraciones, la versión incremental podría ser un modelo en papel o un prototipo.

Durante las últimas iteraciones, se producen versiones cada vez más completas del sistema diseñado.

Este modelo se puede adaptar y aplicar a través del ciclo de vida completo, desde el desarrollo del concepto hasta el mantenimiento

Modelo Espiral (Boehm, 1988)

4/21Angélica Caro Ingeniería Civil Informática UBB 2009

Cada ciclo empieza identificando:Los objetivos de la porción correspondienteLas alternativasRestricciones

Durante la primera vuelta alrededor del espiral se definen los objetivos, las alternativas, restricciones y se identifican los riesgos.

Se formula una estrategia efectiva para resolver las fuentes de riesgos (simulación, prototipado, etc.)

Se pueden usar simulaciones y otros modelos para definir más el problema y refinar los requisitos.

Modelo EspiralFuncionamiento (1/2)

Page 66: Ingeniería de Software

3

5/21Angélica Caro Ingeniería Civil Informática UBB 2009

Cada ciclo se completa con una revisión que incluye todo el ciclo anterior y el plan para el siguiente.

El cliente evalúa el trabajo de ingeniería y sugiere modificaciones.

En base a los comentarios del cliente se produce la siguiente fase de planificación y de análisis de riesgo.

En cada bucle del espiral, la culminación del análisis de riesgo resulta en una decisión de “seguir o no seguir”.

Si los riesgos son demasiado grandes, se puede dar por terminado el proyecto.

Modelo EspiralFuncionamiento (2/2)

6/21Angélica Caro Ingeniería Civil Informática UBB 2009

Plan de Requisitos

Plan del Ciclo de Vida

Plan deDesarrollo

Plan deIntegracióny Pruebas

Planificar lasfases siguientes

Determinarobjetivos,alternativas,restricciones

Evaluar alternativas,identificar y resolverlos riesgosAnálisis

de RiesgosAnálisis

Análisis

Análisis de

de Riesgos

de Riesgos

Riesgos Prototipo 1

Prototipo 2Prototipo 3

PrototipoOperativo

Concepto deOperación Requisitos

Sw

Validación deRequisitos

DiseñoProductoSw

V & V deldiseño

Simulaciones, modelos, benchmarks

Diseñodetallado

CódigoPruebasunitarias

Integracióny pruebaPrueba de

aceptaciónImple-menta-ción

Desarrollar, Verificar elproducto del siguiente nivel

Modelo Espiral (Boehm, 1988)

Page 67: Ingeniería de Software

4

7/21Angélica Caro Ingeniería Civil Informática UBB 2009

Permite acomodar otros modelos

Incorpora objetivos de calidad y gestión de riesgos

Elimina errores y alternativas no atractivas al comienzo

Permite iteraciones, vuelta atrás y finalizaciones rápidas

Puede permanecer operativo hasta que el Sw se retire

Es un enfoque realista para sistemas a gran escala

Es difícil de adaptar a los contratos

Modelo EspiralCaracterísticas esenciales

8/21Angélica Caro Ingeniería Civil Informática UBB 2009

Diferencias con los métodos tradicionales:

Existe un reconocimiento explícito de las diferentes alternativas para alcanzar los objetivos de un proyecto

La identificación de riesgos asociados con cada una de las alternativas

La división de los proyectos en ciclos

El modelo se adapta a cualquier tipo de actividad

Es posible incorporar otros modelos como parte de él.

Modelo EspiralCaracterísticas esenciales

Page 68: Ingeniería de Software

5

9/21Angélica Caro Ingeniería Civil Informática UBB 2009

Modelos Evolutivos

Algunos modelos evolutivos:Modelo de prototipos Modelo EspiralModelo Espiral WinWinModelo Concurrente

10/21Angélica Caro Ingeniería Civil Informática UBB 2009

Fue propuesto por Boehm (1998)

Se concentra en resolver el problema de negociación entre cliente y desarrollador

El cliente gana obteniendo el producto o sistema que satisface la mayor parte de sus necesidades y el desarrollador gana trabajando para conseguir presupuestos y lograr una fecha de entrega realista.

Victoria - Victoria

Modelo Espiral Win Win

Page 69: Ingeniería de Software

6

11/21Angélica Caro Ingeniería Civil Informática UBB 2009

Este modelo define un conjunto de actividades de negociación al principio de cada paso alrededor de la espiral. Más que una simple actividad de comunicación con el cliente, se definen las siguientes actividades:

Identificación del sistema o subsistemas claves de los “directivos”

Determinación de las “condiciones de victoria” para los directivos

Negociación de las condiciones de “victoria” de los directivos para compatibilizarlas con las condiciones de “victoria” de los demás afectados (incluyendo el equipo del proyecto de software)

Modelo Espiral Win Win

12/21Angélica Caro Ingeniería Civil Informática UBB 2009

2. Identificar las condiciones de victoria de los directivos

3a. Reunir las condiciones de victoria

3b. Establecer los objetivos, restricciones y alternativas del siguiente nivel

4. Evaluar las alternativas del producto y del proceso y resolución de riegos

1. Identificar el siguiente nivel para los directivos

5. Definir el siguiente nivel del producto y del proceso incluyendo particiones

6. Validar las definiciones del producto y del proceso

Modelo Espiral Win Win

Page 70: Ingeniería de Software

7

13/21Angélica Caro Ingeniería Civil Informática UBB 2009

Puntos de fijación:En cada paso evolutivo del proceso se consideran puntos de fijación.

Corresponden a una combinación de productos de trabajo y condiciones incluidas a lo largo de la ruta de la espiral

Son hitos dentro del proceso que representan tres visiones diferentes del progreso mientras el proyecto recorre el espiral.

Modelo Espiral Win Win

14/21Angélica Caro Ingeniería Civil Informática UBB 2009

Visiones asociadas a los puntos de fijación:(1) Objetivos del ciclo de vida: define un conjunto de objetivos para cada actividad principal de ingeniería de software (por ejemplo: un conjunto de objetivos asociados a la definición de los requisitos del producto/sistema del más alto nivel).

(2) Arquitectura del ciclo de vida: establece los objetivos que se deben conocer mientras se define la arquitectura del software y del sistema (ejemplo: el equipo del proyecto de software debe demostrar que ha evaluado la funcionalidad de los componentes del software reutilizable y que ha considerado su impacto en las decisiones de arquitectura).

Modelo Espiral Win Win

Page 71: Ingeniería de Software

8

15/21Angélica Caro Ingeniería Civil Informática UBB 2009

Visiones asociadas a los puntos de fijación:(3) Capacidad operativa inicial: corresponde a un conjunto de objetivos asociados a la preparación del software para la instalación/distribución, preparación del lugar previa a la instalación y la asistencia precisada por todas las partes que utilizarán o mantendrán el software

Modelo Espiral Win Win

16/21Angélica Caro Ingeniería Civil Informática UBB 2009

Modelos Evolutivos

Algunos modelos evolutivos:Modelo de prototipos Modelo EspiralModelo Espiral WinWinModelo Concurrente

Page 72: Ingeniería de Software

9

17/21Angélica Caro Ingeniería Civil Informática UBB 2009

El uso de modelos simples como el ciclo de vida lineal para controlar actividades complejas como el desarrollo de Sw, hace que los gestores de proyectos no tengan idea del estado de los mismos.

Está demostrado que existe concurrencia de tareas en el desarrollo de software (por ejemplo una persona puede estar codificando, escribiendo requisitos, diseñando).

La mayoría de los modelos de proceso de desarrollo de software está dirigidos por tiempo, esto es, mientras más tarde sea más retrasado estará el proyecto.

Un modelo de procesos concurrente está dirigido por las necesidades del usuario, las decisiones de la gestión y los resultados de las revisiones.

Modelo Concurrente

18/21Angélica Caro Ingeniería Civil Informática UBB 2009

Puede ser representado por una serie de actividades técnicas importantes, tareas y estados asociadas a ellas.

Todas las actividades existen concurrentemente pero pueden encontrarse en estados diferentes

Por ejemplo, al principio de un proyecto, la actividad comunicación del cliente ha finalizado su primera iteración y está en el estado cambios en espera, la actividad análisis que estaba en estado ninguno hace una transición al estado bajo desarrollo. Si el cliente pide cambios en los requisitos la actividad análisis cambia de bajo desarrollo a cambio en espera.

Modelo Concurrente

Page 73: Ingeniería de Software

10

19/21Angélica Caro Ingeniería Civil Informática UBB 2009

Representa un estado (modo observable del comportamiento) de una actividad o tarea de ingeniería de software

En espera de cambios

En revisión

En modificación

En línea de base

Bajodesarrollo

Realizado

Actividad de modelado Ninguno

Modelo Concurrente

20/21Angélica Caro Ingeniería Civil Informática UBB 2009

Este modelo se utiliza a menudo para el desarrollo de aplicaciones Cliente/Servidor.

Cuando se aplica a cliente/servidor el modelo define actividades en dos dimensiones; dimensión de sistemas y una dimensión de componentes.

En la primera de ellas se realizan tres actividades Diseño, Ensamblaje y Uso.

En la segunda se llevan a cabo dos actividades: Diseño y Realización.

Es aplicable a todo tipo de desarrollo de Sw y proporciona una imagen exacta del estado actual de un proyecto.

Modelo Concurrente

Page 74: Ingeniería de Software

11

21/21Angélica Caro Ingeniería Civil Informática UBB 2009

Pressman Roger . 2005. “Ingeniería del Software, un enfoque práctico”. Editorial McGraw Hill. 6ta edición.

PFLEEGER, S. L. 2002. Ingeniería de software, teoría y práctica. Pearson Education. 1ra Edición.

SOMMERVILLE, I. 2002. Ingeniería de software. Editorial Pearson Educación, 6ta edición.

Bibliografía

Page 75: Ingeniería de Software

1

Ingeniería de Software

Mª Angélica Caro Gutiérrezhttp://www.face.ubiobio.cl/~mcaro/

[email protected]

Departamento deCiencias de la Computación y Tecnologías de Información

Universidad del Bío-BíoSede Chillán

Ingeniería Civil Informática UBB 2009

2/58Angélica Caro Ingeniería Civil Informática UBB 2009

Modelos de proceso de Sw

CascadaIterativo IncrementalDRAEvolutivosProceso UnificadoOtros

Page 76: Ingeniería de Software

2

3/58Angélica Caro Ingeniería Civil Informática UBB 2009

Presentado por Booch, Jacobson y Rumbaughen 1999RUP es un proceso de desarrollo de software que provee:

Forma disciplinada de asignar tareas y responsabilidades en una empresa de desarrollo

Quién hace qué, cuándo y cómoBasado en componentesObjetivo:

Garantizar la producción de software de calidaddentro de plazos y presupuestos predecibles.

Proceso Unificado

4/58Angélica Caro Ingeniería Civil Informática UBB 2009

Utiliza como lenguaje de modelado UML (Lenguaje Unificado de Modelado)

Características Clave:1. Dirigido por Casos de Uso2. Centrado en la Arquitectura3. Iterativo e Incremental

Proceso Unificado

Page 77: Ingeniería de Software

3

5/58Angélica Caro Ingeniería Civil Informática UBB 2009

Proceso Unificado

CaracterísticasCiclo de VidaConceptos ImportantesFlujos de TrabajoFases

6/58Angélica Caro Ingeniería Civil Informática UBB 2009

1. Dirigido por casos de UsoObjetivo Software: Servicio a los UsuariosCasos de Uso:

Un caso de uso es un fragmento de funcionalidad del sistema que proporciona al usuario un resultado importanteRepresentan los requisitos funcionales.No sólo inician el proceso de desarrollo, sino que le proporcionan un hilo conductor.

El proceso avanza a través de una serie de flujos de trabajo que parten de los casos de uso. Los casos de uso se especifican, se diseñan, y los casos de uso finales son la fuente a partir de la cual se constituyen los casos de prueba.

Proceso UnificadoCasos de UsoArquitectura

guía

conduce

Page 78: Ingeniería de Software

4

7/58Angélica Caro Ingeniería Civil Informática UBB 2009

2. Centrado en la ArquitecturaLa Arquitectura del Sw incluye los aspectos estáticos y dinámicos más significativos del sistema y La vista del diseño completo con las características más importantes resaltadasRelación Arquitectura-Casos de Uso:

Cada producto tiene tanto una función (cdu) como una forma (arq). No es suficiente con una sola.Ambas fuerzas deben equilibrarse para lograr un producto de éxitoLos casos de uso y la arquitectura deben evolucionar en paralelo (desde el comienzo hasta el fin del desarrollo).

Proceso Unificado

Casos de UsoArquitecturaguía

conduce

8/58Angélica Caro Ingeniería Civil Informática UBB 2009

2. Centrado en la ArquitecturaPara la creación inicial de la arquitectura, el Arquitecto Software:

Crea un esquema (borrador) de la arquitectura no dependiente de los casos de usoSe especifican en detalle los Casos de Uso Clave(entre el 5 y 10 % del total) del sistema en forma de subsistemas, clases y componentesA medida que se especifican y maduran los casos de uso:

Se descubre más de la arquitecturaSe maduran más casos de uso

Proceso Unificado

Page 79: Ingeniería de Software

5

9/58Angélica Caro Ingeniería Civil Informática UBB 2009

3. Iterativo e IncrementalDesarrollo Software Complejo Esfuerzo

Es práctico dividir el desarrollo en miniproyectosMiniproyecto:

Iteración que acaba en un incrementoIteración Paso en el flujo de trabajoIncremento Crecimiento del producto

Iteración (análisis-diseño-implementación-prueba)Trata un grupo de casos de uso que amplían la utilidad del productoTrata los riesgos más importantes (se trabaja poco a poco)

Proceso Unificado

10/58Angélica Caro Ingeniería Civil Informática UBB 2009

3. Iterativo e IncrementalBeneficios:

Se reduce el costo de los riesgos a los costos de un solo incremento. Se reduce el riesgo de no sacar el producto en el calendario previsto. Se acelera el ritmo de esfuerzo de desarrollo en su totalidad La iteración controlada reconoce una realidad que a menudo se ignora: Los requisitos no se definen NUNCA completamente al principio.

Proceso Unificado

Page 80: Ingeniería de Software

6

11/58Angélica Caro Ingeniería Civil Informática UBB 2009

Proceso Unificado

CaracterísticasCiclo de VidaConceptos ImportantesFlujos de TrabajoFases

12/58Angélica Caro Ingeniería Civil Informática UBB 2009

Proceso UnificadoCiclo de Vida

Page 81: Ingeniería de Software

7

13/58Angélica Caro Ingeniería Civil Informática UBB 2009

Se compone de varios ciclos. Al final de cada uno, un producto es entregado al clienteCada ciclo consiste de cuatro fases:

Inicio: Establecer la planificación del proyecto (análisis de negocio).Elaboración: Establecer un plan y una arquitectura correcta.Construcción: Desarrollo del sistema.Transición: Proporcionar el sistema a los usuarios finales.

Cada fase puede tener varias iteracionesUna iteración construye un conjunto de casos de uso relacionados o mitiga algún riesgo de los identificados

Proceso UnificadoCiclo de Vida

14/58Angélica Caro Ingeniería Civil Informática UBB 2009

Cada ciclo constituye una versión del producto

Inicio Elaboración Construcción Transición

Iteración #1 -----Iteración

#2 -------------------- ----------

Versiones

Tiempo

Proceso UnificadoCiclo de Vida

Page 82: Ingeniería de Software

8

15/58Angélica Caro Ingeniería Civil Informática UBB 2009

El Producto: Cada ciclo produce una nueva versión que es un producto preparado para la entregaEl producto incluye:

Código fuente, Manuales, Requisitos, Casos de UsoEspecificaciones no funcionalesCasos de PruebaModelo de la arquitecturaModelo visual…

Proceso UnificadoCiclo de Vida

16/58Angélica Caro Ingeniería Civil Informática UBB 2009

La vida del proceso Unificado. El Producto:

Proceso UnificadoCiclo de Vida

Page 83: Ingeniería de Software

9

17/58Angélica Caro Ingeniería Civil Informática UBB 2009

Proceso UnificadoCiclo de Vida

18/58Angélica Caro Ingeniería Civil Informática UBB 2009

Proceso Unificado

CaracterísticasCiclo de VidaConceptos ImportantesFlujos de TrabajoFases

Page 84: Ingeniería de Software

10

19/58Angélica Caro Ingeniería Civil Informática UBB 2009

Actividad: Unidad tangible de trabajo realizada por un trabajador en un flujo de trabajo de forma que:

Implica una responsabilidad bien definida para el trabajadorProduce un resultado bien definido basado en una entrada bien definidaRepresenta una unidad de trabajo con límites bien definidos

Proceso UnificadoConceptos Importantes

20/58Angélica Caro Ingeniería Civil Informática UBB 2009

Artefacto: Pieza de información tangible que:Es creada, modificada y usada por los trabajadores al realizar las actividadesEs candidato a ser considerado para el control de la configuración. Puede ser un modelo, un elemento de un modelo o un documento

Dos clases de artefactos:De Ingeniería: Artefactos creados en las diferentes fases De Gestión: Análisis de negocio, plan de desarrollo, etc..

Proceso UnificadoConceptos Importantes

Page 85: Ingeniería de Software

11

21/58Angélica Caro Ingeniería Civil Informática UBB 2009

Modelo: Es una abstracción del sistema, especificando el sistema modelado desde un cierto punto de vista y en un determinado nivel de abstracción

Son abstracciones del sistema que construyen los arquitectos y desarrolladores

Un modelo es el artefacto más importante del proceso unificado.Un modelo siempre identifica el sistema que estámodelando

Proceso UnificadoConceptos Importantes

22/58Angélica Caro Ingeniería Civil Informática UBB 2009

Trabajador:

Define el comportamiento y las responsabilidades de un individuo.Es el rol que desempeña una persona en un momento dado a lo largo del proyectoResponsabilidades:

Hacer una serie de actividadesSer el responsable de una serie de artefactos

Proceso UnificadoConceptos Importantes

Page 86: Ingeniería de Software

12

23/58Angélica Caro Ingeniería Civil Informática UBB 2009

Recurso Trabajador Actividad

Pablo Diseñador Diseño de Objetos

María Autor de Casos de Uso Detallar un Caso de Uso

José Diseñador de Casos de Uso Diseñar un Caso de Uso

Silvia Revisor de Diseño Revisar el Diseño

Eduardo Arquitecto Análisis de Arquitectura Diseño de Arquitectura

Crean M

odelos y Artefactos

Proceso UnificadoConceptos Importantes

24/58Angélica Caro Ingeniería Civil Informática UBB 2009

Proceso Unificado

CaracterísticasCiclo de VidaConceptos ImportantesFlujos de TrabajoFases

Page 87: Ingeniería de Software

13

25/58Angélica Caro Ingeniería Civil Informática UBB 2009

Un Flujo de trabajo es la realización de un caso de negocio o parte de élSe pueden describir con diagramas de actividad:

Muestran qué trabajadores ejecutan qué actividades y qué artefactos producen

Tipos:Flujo de Trabajo de una Iteración

La integración de los flujos de trabajo fundamentalesFlujo de Trabajo Fundamental

Requisitos, análisis, diseño, implementación y pruebas

Proceso UnificadoFlujos de trabajo

26/58Angélica Caro Ingeniería Civil Informática UBB 2009

Proceso UnificadoFlujos de trabajo: Requisitos

Page 88: Ingeniería de Software

14

27/58Angélica Caro Ingeniería Civil Informática UBB 2009

Enumerar Requisitos Candidatos Lista de Características* (que irá evolucionando)

Estado (proceso, aprobado,…)Costo estimado de ImplementaciónPrioridadNivel de Riesgo de su implementación

Comprender el Contexto del SistemaModelo de Dominio* más centrado en los conceptosModelo de Negocio* más centrado en los procesos

Capturar:Requisitos Funcionales* Casos de UsoRequisitos no Funcionales* mediante restricciones asociadas a los casos de uso (ej. Rendimiento)

* Artefactos generados en este flujo

Proceso UnificadoFlujos de trabajo: Requisitos

28/58Angélica Caro Ingeniería Civil Informática UBB 2009

Proceso UnificadoFlujos de trabajo: Análisis

Page 89: Ingeniería de Software

15

29/58Angélica Caro Ingeniería Civil Informática UBB 2009

Se analizan los requisitos que se describieron en la captura de requisitos, refinándolos y estructurándolos

Para ello se utiliza el modelo de análisis, que ayuda a refinar los requisitos y permite razonar sobre los aspectos internos del sistema.

Proceso UnificadoFlujos de trabajo: Análisis

30/58Angélica Caro Ingeniería Civil Informática UBB 2009

ArtefactosTrabajadores

Paquete del análisis

Clase del análisisIngeniero de Componentes

Realización de casos de uso-análisis

Ingeniero de Casos de Uso

Arquitectura del modelo de análisis

Modelo de análisisArquitecto

Proceso UnificadoFlujos de trabajo: Análisis

Page 90: Ingeniería de Software

16

31/58Angélica Caro Ingeniería Civil Informática UBB 2009

Proceso UnificadoFlujos de trabajo: Diseño

32/58Angélica Caro Ingeniería Civil Informática UBB 2009

Se modela el sistema y se encuentra su forma para que soporte todos los requisitos que se le suponen. Una entrada esencial en el diseño es la salida del análisis. El diseño es el centro de atención al final de la fase de elaboración y el comienzo de las iteraciones de construcción.

Proceso UnificadoFlujos de trabajo: Diseño

Page 91: Ingeniería de Software

17

33/58Angélica Caro Ingeniería Civil Informática UBB 2009

Subsistema de diseño

Ingeniero de Componentes

Descripción de la Arquitectura

ArtefactosTrabajadores

Interfaz

Clases de diseño

Realización de casos de uso-diseño

Ingeniero de Casos de Uso

Modelo de Despliegue

Modelo de DiseñoArquitecto

Proceso UnificadoFlujos de trabajo: Diseño

34/58Angélica Caro Ingeniería Civil Informática UBB 2009

Proceso UnificadoF. de trabajo: Implementación

Page 92: Ingeniería de Software

18

35/58Angélica Caro Ingeniería Civil Informática UBB 2009

Comienza con el resultado del diseño y se implementa el sistema en términos de componentes.Es el centro durante las iteraciones de construcción, aunque también se lleva a cabo trabajo de implementación durante la fase de elaboración, para crear la línea base ejecutable de la arquitectura, y durante la fase de transición, para tratar defectos tardíos como los encontrados con distribuciones beta del sistema

Proceso UnificadoF. de trabajo: Implementación

36/58Angélica Caro Ingeniería Civil Informática UBB 2009

Implementación de subsistemaIngeniero de Componentes

Descripción de la Arquitectura

ArtefactosTrabajadores

Interfaz

ComponenteIntegración del SistemaIntegrador de Sistemas

Modelo de Despliegue

Modelo de ImplementaciónArquitecto

Proceso UnificadoF. de trabajo: Implementación

Page 93: Ingeniería de Software

19

37/58Angélica Caro Ingeniería Civil Informática UBB 2009

Proceso UnificadoFlujos de trabajo: Pruebas

38/58Angélica Caro Ingeniería Civil Informática UBB 2009

Se verifica el resultado de la implementación probando cada construcción Se llevan a cabo sobre todo cuando una construcción es sometida a pruebas de integración y de sistema.Artefactos fundamentales:

Modelo de pruebas, el caso de pruebas, el procedimiento de prueba, el componente de prueba, el plan de prueba, el defecto y la evaluación de pruebas

Proceso UnificadoFlujos de trabajo: Pruebas

Page 94: Ingeniería de Software

20

39/58Angélica Caro Ingeniería Civil Informática UBB 2009

Proceso Unificado

CaracterísticasCiclo de VidaConceptos ImportantesFlujos de TrabajoFases

40/58Angélica Caro Ingeniería Civil Informática UBB 2009

Proceso UnificadoFase de Inicio

Page 95: Ingeniería de Software

21

41/58Angélica Caro Ingeniería Civil Informática UBB 2009

Objetivo: Desarrollar el análisis de negocio hasta el punto necesario para justificar la puesta en marcha del proyecto

Es necesario en función del alcance tener una idea de la arquitecturaPreguntas típicas en esta fase:

¿Compensarán las ganancias del uso o venta del producto software?¿Llegará el producto al mercado a tiempo de obtener esas ganancias?

Proceso UnificadoFase de Inicio

42/58Angélica Caro Ingeniería Civil Informática UBB 2009

Productos:Una lista de características (requisitos)Una primera versión del modelo de negocio (o del dominio) que describe el contexto del sistemaUn esbozo de los modelos que representan una primera versión del modelo de casos de uso, el modelo de análisis y el modelo de diseño. Un primer esquema de la descripción de una arquitectura candidata, que perfila las vistas de los modelos de casos de uso, análisis, diseño e implementación

Proceso UnificadoFase de Inicio

Page 96: Ingeniería de Software

22

43/58Angélica Caro Ingeniería Civil Informática UBB 2009

Productos:Posiblemente, un prototipo exploratorio que muestra el uso del nuevo sistemaUna lista inicial de riesgos y una clasificación de casos de usoLos rudimentos de un plan para el proyecto en su totalidad, incluyendo el plan general de las fasesUn primer borrador del análisis de negocio, que incluye:

Contexto del negocio y Criterios de éxito.

Proceso UnificadoFase de Inicio

44/58Angélica Caro Ingeniería Civil Informática UBB 2009

Proceso UnificadoFase de Elaboración

Page 97: Ingeniería de Software

23

45/58Angélica Caro Ingeniería Civil Informática UBB 2009

Objetivos: Recopilar la mayor parte de los requisitos pendientes Establecer una base de la arquitectura sólida (línea base) para guiar el trabajo durante la fase de construcción y transición Continuar la observación y control de los riesgos críticos que aún queden Completar los detalles del plan del proyecto

Al comienzo de la fase de elaboración, se recibe de la fase de inicio:

Un plan para la fase de elaboraciónUn modelo de casos de uso parcialmente completo Una descripción de la arquitectura candidata. Un prototipo que muestre el funcionamiento del sistema.

Proceso UnificadoFase de Elaboración

46/58Angélica Caro Ingeniería Civil Informática UBB 2009

Productos:Preferiblemente un modelo completo de negocio que describe el contexto del sistemaUna nueva versión de todos los modelos: casos de uso, análisis, diseño, despliegue e implementación. Una línea base de la arquitecturaUna descripción de la arquitectura, incluyendo vistas de los modelos de casos de uso, análisis, diseño, despliegue e implementaciónUna lista de riesgos actualizada

Proceso UnificadoFase de Elaboración

Page 98: Ingeniería de Software

24

47/58Angélica Caro Ingeniería Civil Informática UBB 2009

Productos:El plan del proyecto para las fases de construcción y transiciónUn manual de usuario preliminarEl análisis de negocio completo, incluida la apuesta económica

Proceso UnificadoFase de Elaboración

48/58Angélica Caro Ingeniería Civil Informática UBB 2009

Proceso UnificadoFase de Construcción

Page 99: Ingeniería de Software

25

49/58Angélica Caro Ingeniería Civil Informática UBB 2009

Objetivo: Preparar un producto software en su versión operativa inicial (versión beta)

Debe tener la calidad adecuada para su aplicación Debe cumplir los requisitos

Para cumplir el objetivo:Se parte de la línea base de la arquitecturaSe detallan los casos de uso y escenarios resultantesSe cierran los métodos de análisis-diseño-implementaciónSe integran los subsistemas y se pruebanSe integra el sistema completo y se prueba

Proceso UnificadoFase de Construcción

50/58Angélica Caro Ingeniería Civil Informática UBB 2009

Productos:El plan de proyecto para la fase de transiciónEl sistema software ejecutableTodos los artefactos, incluyendo los modelos del sistemaLa descripción de la arquitectura, mínimamente modificada y actualizadaUna versión preliminar del manual de usuario, lo suficientemente detallado como para guiar a los usuarios de la beta

Proceso UnificadoFase de Construcción

Page 100: Ingeniería de Software

26

51/58Angélica Caro Ingeniería Civil Informática UBB 2009

Proceso UnificadoFase de Transición

52/58Angélica Caro Ingeniería Civil Informática UBB 2009

Objetivo: Cumplir los requisitos establecidos en las fases anteriores hasta la satisfacción de todos los usuariosGestionar los aspectos relativos a la operación en el entorno del usuario

Se recibe información de los usuarios para:Determinar si el sistema hace lo que debe hacerDescubrir riesgos inesperadosAnotar problemas no resueltos, Encontrar fallasEliminar ambigüedades y lagunas en la documentación del usuarioCentrarse en áreas en las que los usuarios muestren deficiencias y necesiten información o formación

La transición finaliza con el lanzamiento del Producto

Proceso UnificadoFase de Transición

Page 101: Ingeniería de Software

27

53/58Angélica Caro Ingeniería Civil Informática UBB 2009

Productos:El propio Sw ejecutable, incluyendo el Sw de instalaciónDocumentos legales como contratos, licencias, renuncias de derechos y garantíasLa versión completa y corregida de línea base de la versión del producto, incluyendo todos los modelos del sistemaLa descripción completa y actualizada de la arquitecturaManuales y material de formación del usuario final, del operador y del administrador del sistemaReferencias para la ayuda del cliente, acerca de dónde encontrar más información, cómo informar de defectos o dónde encontrar información sobre defectos y actualizaciones.

Proceso UnificadoFase de Transición

54/58Angélica Caro Ingeniería Civil Informática UBB 2009

Modelos de proceso de Sw

CascadaIterativo IncrementalDRAEvolutivosProceso UnificadoOtros

Page 102: Ingeniería de Software

28

55/58Angélica Caro Ingeniería Civil Informática UBB 2009

Modelos de proceso de SwModelos especializados de Procesos:

Desarrollo basado en componentesModelo de métodos formales (sala límpia)Desarrollo de Sw orientado a aspectosProgramación Extrema Desarrollo Adaptativo de Software Método de desarrollo de sistemas dinámicos MeléDesarrollo conducido por característicasTeam Software Process

56/58Angélica Caro Ingeniería Civil Informática UBB 2009

Modelos de proceso de SwModelos especializados de Procesos:

Investigar acerca de los modelos especializados.Entregar un informe con los resultados de la investigación el día 8-9-2009, durante todo el día en secretaría de carrera y además en formato digital por e-mail a la profesora.Describir de que se trata el modelo, características principales, su aplicación, ventajas y desventajas. Complementar con esquemas gráficos.Hacer una comparativa con los modelos Cascada, Iterativo Incremental y Espiral.Realizar una exposición del resultado de la investigación a partir del 10-9-2009.Desarrollar el trabajo en grupo de 3 personas.

Page 103: Ingeniería de Software

29

57/58Angélica Caro Ingeniería Civil Informática UBB 2009

Proyecto de la Asignatura

Definir grupos de máximo 5 personas para desarrollar el proyecto de I. de Sw.Cada grupo deberá elegir quien serásu líder y presentarse el día jueves 27 de agosto para la asignación de los proyectos.

58/58Angélica Caro Ingeniería Civil Informática UBB 2009

Pressman Roger . 2005. “Ingeniería del Software, un enfoque práctico”. Editorial McGraw Hill. 6ta edición.

PFLEEGER, S. L. 2002. Ingeniería de software, teoría y práctica. Pearson Education. 1ra Edición.

SOMMERVILLE, I. 2002. Ingeniería de software. Editorial Pearson Educación, 6ta edición.

Bibliografía

Page 104: Ingeniería de Software

1

Ingeniería de Software

Mª Angélica Caro Gutiérrezhttp://www.face.ubiobio.cl/~mcaro/

[email protected]

Departamento deCiencias de la Computación y Tecnologías de Información

Universidad del Bío-BíoSede Chillán

Ingeniería Civil Informática UBB 2009

2/36Angélica Caro Ingeniería Civil Informática UBB 2009

Unidad 2: Gestión de proyectos de Sw

Modelos del Proceso del softwarePlanificación de proyectos de softwareMétodos de estimaciónEstimación de costo/precioMétricas de proyectosAnálisis y gestión de riesgosSeguimiento de proyectosGarantía de calidad de software

Page 105: Ingeniería de Software

2

3/36Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de un proyecto Sw :

Hasta ahora hemos visto que el ciclo de desarrollo de Sw incluye varias etapas que se van repitiendo hasta que la aplicación se completa y los clientes y usuarios están satisfechos.Sin embargo, el desarrollo de Sw no se limita sólo a eso:

El desarrollo de Sw es parte de un proyecto que incluye otras actividades, también muy importantes, previas y paralelas al desarrollo y que son claves para lograr un objetivo concreto de desarrollo.

Planificaciónde Proyectos de Sw

4/36Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de un proyecto Sw :Un proyecto de desarrollo de Sw parte cuando un cliente plantea una necesidad y termina cuando se obtiene un Sw útil

Planificaciónde Proyectos de Sw

Necesidades

Producto Útil

Desarrollo

Propuesta de Solución

Page 106: Ingeniería de Software

3

5/36Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de un proyecto Sw :

En la fase inicial los clientes tienen muchas dudas a las que debemos contestar:

¿Se entiende el problema y las necesidades? ¿Se puede crear un sistema que satisfaga las necesidades? ¿Cuánto tiempo demorará el desarrollo del Sistema?¿Cuánto costará el Sistema?¿Debo participar en el desarrollo?¿Cómo?

Contestar estas y otras preguntas no siempre es sencillo

Planificaciónde Proyectos de Sw

6/36Angélica Caro Ingeniería Civil Informática UBB 2009

Algunas preguntas…

¿Cuánto tiempo demorará el desarrollo del Sistema?¿Cuánto costará el Sistema?Para responderlas debemos, entre otros tener claro:

El cronograma del proyecto

Estimar los recursos de personal, hardware y software

Estimar el costo

Esto implica una Planificación del proyecto

Planificaciónde Proyectos de Sw

Page 107: Ingeniería de Software

4

7/36Angélica Caro Ingeniería Civil Informática UBB 2009

Para realizar exitosamente un proyecto de Swdebemos entender:

El alcance del trabajo a realizarseLos riesgos que estamos enfrentandoLos recursos requeridosLas tareas a realizarseLos eventos importantes a observarEl esfuerzo (costo) a invertirEl calendario a seguir

Planificaciónde Proyectos de Sw

8/36Angélica Caro Ingeniería Civil Informática UBB 2009

La GESTIÓN comienza antes que el trabajo técnico, continúa con la transformación del Sw desde que es una idea hasta que es una realidad, y termina cuando el Sw es descontinuado.La gestión eficaz de un proyecto de software se harácentrando la atención en las 4P:

Personal, “factor humano”, motivado y calificadoProducto, objetivo y ámbitoProceso, marco de trabajoProyecto, ejecución planificada y controlada

Gestiónde Proyectos de Sw

Page 108: Ingeniería de Software

5

9/36Angélica Caro Ingeniería Civil Informática UBB 2009

PersonalProductoProcesoProyecto

Gestiónde Proyectos de Sw

10/36Angélica Caro Ingeniería Civil Informática UBB 2009

El factor humano es importante en el desarrollo de proyectos de Sw

El Software Engineering Institute creó un Modelo de Madurez de la Capacidad para la Gestión de Personal (MMCGP) que define áreas claves prácticas para el personal que desarrolla Sw:

Reclutamiento, Selección, Gestión del desempeño, Entrenamiento, Retribución, Desarrollo de la carrera,Diseño de la organización y el trabajo, Desarrollo de la cultura del equipo

Gestión de Proyectos de SwPersonal

Page 109: Ingeniería de Software

6

11/36Angélica Caro Ingeniería Civil Informática UBB 2009

Los participantes de un proceso de desarrollo de software pueden clasificarse en cinco categorías:

Gestores Ejecutivos: definen los aspectos del negocio que a menudo tiene una importancia significativa sobre el proyectoGestores (técnicos) del proyecto: Deben planificar, motivar, organizar y controlar a los profesionales que hacen el trabajo de SwProfesionales: que proporcionan las capacidades técnicas necesarias para la ingeniería de un producto o aplicación Clientes: que especifican los requisitos para la ingeniería del software. Usuarios finales: que interaccionan con el software una vez que se ha entregado para producción

Gestión de Proyectos de SwPersonal: Los Participantes

12/36Angélica Caro Ingeniería Civil Informática UBB 2009

Suele suceder con mucha más frecuencia de la deseada que los gestores de proyectos de Sw llegan allí de manera accidental. Por otra parte, ser profesional del Sw parece no ir de la mano con la gestión de proyectos de Sw.Un modelo de liderazgo técnico (MOI, Weinberg):

Motivación: Habilidad para motivar al personal técnico para que produzca de acuerdo a sus mejores capacidadesOrganización: Habilidad para amoldar los procesos existentes (o inventar nuevos) que permita al concepto inicial transformarse en un producto final.Ideas e innovación: Habilidad para motivar al personal a crear y sentirse creativos incluso cuando deban trabajar dentro de límites establecidos para un producto o aplicación en particular

Gestión de Proyectos de SwPersonal: Los Jefes

En términos

simples,

un líder

es aquel

que sabe

donde

quiere ir, se

levanta y va.

(Erskine)

Page 110: Ingeniería de Software

7

13/36Angélica Caro Ingeniería Civil Informática UBB 2009

Otras características que definen a un gestor eficiente:Resolución de problemas: debe diagnosticar a tiempo, estructurar soluciones o motivar para que otros lo hagan, aplicar las lecciones aprendidas, ser flexible en la búsqueda de la solución.Dotes de gestión: debe tener la confianza de asumir el control cuando es necesario y la seguridad para que otros lo sigan.Incentivos: debe saber recompensar las iniciativas y logros y demostrar por acciones propias que no se castigará si se corren riesgos controlados.Influencia y fomento de la cultura de equipo: debe ser capaz de “leer” a la gente, debe entender el lenguaje verbal y no verbal y reaccionar ante estos mensajes. Debe además saber mantener el control ante situaciones de estrés.

Gestión de Proyectos de SwPersonal: Los Jefes

Un experto de software puede no

tener temperamento

o deseo de ser jefe de

equipo. No se debe forzar.

14/36Angélica Caro Ingeniería Civil Informática UBB 2009

¿Cómo debiera ser organizado un equipo de trabajo?. Mantei (1981) sugiere tres organigramas genéricos:

Descentralizado Democrático (DD): No tiene jefe permanente sino coordinadores de áreas a corto plazo que serán sustituidos por otros para diferentes tareas. Las decisiones se toman por consenso existiendo una fuerte comunicación horizontal.Descentralizado Controlado (DC): Tiene jefe definido para tareas y jefes secundarios que coordinan subtareas. La implementación de la solución se reparte en los subgrupos. En los subgrupos hay comunicación horizontal y la vertical se da a lo largo de la jerarquía de control Centralizado Controlado (CC): El jefe se encarga de la resolución de problemas a alto nivel y de la coordinación interna del equipo. La comunicación es vertical.

Gestión de Proyectos de SwPersonal: El equipo de Sw

Page 111: Ingeniería de Software

8

15/36Angélica Caro Ingeniería Civil Informática UBB 2009

Mantei siguiere siete factores ha considerar cuando se planifica el organigrama de equipos de ingeniería de Sw:

La dificultad del problema que hay que resolverEl tamaño del programa(s) resultante en líneas de código o puntos de funciónEl tiempo que el equipo estará juntoEl grado en que el problema puede ser modularizadoLa calidad requerida y fiabilidad del sistema que se va a construirLa rigidez de la fecha de entregaEl grado de sociabilidad (comunicación) requerido para el proyecto

Gestión de Proyectos de SwPersonal: El equipo de Sw

Frecuentemente es mejor tener pocos equipos pequeños

bien centrados que un solo gran equipo

16/36Angélica Caro Ingeniería Civil Informática UBB 2009

Para conseguir equipos de alto rendimiento:

Los miembros del equipo deben confiar uno en los otrosLa distribución de habilidades debe adecuarse al problemaPara mantener la unión del equipo, excluir a los inconformistas

Gestión de Proyectos de SwPersonal: El equipo de Sw

Page 112: Ingeniería de Software

9

17/36Angélica Caro Ingeniería Civil Informática UBB 2009

Toxinas para los equipos de trabajo:Atmósfera de trabajo frenética que impide concentrarse en los objetivos del trabajoFrustración causada por factores tecnológicos, de negocio o personales que provocan fricciones entre los miembros del equipoProcedimientos pobremente coordinados o fragmentadosDefinición confusa de los roles produciendo falta de responsabilidadExposición repetida al fallo que implica una pérdida de confianza y una caída de la moral

Gestión de Proyectos de SwPersonal: El equipo de Sw

18/36Angélica Caro Ingeniería Civil Informática UBB 2009

Técnicas de coordinación de las acciones entre los miembros de equipo de proyectos (Kraul y Streeter - 1995): (1/2)

Formal, enfoque impersonal: Documentos y entregas (código fuente), memos, etc.Formal, procedimientos interpersonales: se centra en actividades de garantía de calidad. Reuniones de revisión de estado e inspecciones de diseño y de código.Informal, procedimientos interpersonales: reuniones de grupo para la divulgación de información y resolución de problemas

Gestión de Proyectos de SwPersonal: El equipo de Sw

Page 113: Ingeniería de Software

10

19/36Angélica Caro Ingeniería Civil Informática UBB 2009

Técnicas de coordinación de las acciones entre los miembros de equipo de proyectos (Kraul y Streeter - 1995): (2/2)

Comunicación electrónica: Correo electrónico, boletines de noticias electrónicos y por extensión sistemas de vídeo conferencias.Red interpersonal: Discusiones informales con los miembros del equipo y personas que no están en el proyecto pero que pueden ayudar.

Gestión de Proyectos de SwPersonal: El equipo de Sw

20/36Angélica Caro Ingeniería Civil Informática UBB 2009

Los 10 mandamientos + 1, Ford Motor Company:Busca formas de que las nuevas ideas funcionen, no razones para que no funcionen.Si tienes dudas, pregunta! No hagas conjeturas negativas acerca de los demás.Ayuda a los otros a ganar, y siéntete orgulloso del triunfo del otro.Habla positivamente de los demás en el equipo y de tu organización cada vez que puedas.Mantén una actitud mental positiva, no importa las circunstancias.Actúa con iniciativa y coraje, como si todo dependiera de ti.Hazlo todo con entusiasmo, éste es contagioso.Cualquier cosa que quieras, déjala pasar.En cualquier circunstancia, mantén la fe.Diviértete!

Gestión de Proyectos de SwPersonal: El equipo de Sw

Page 114: Ingeniería de Software

1

Ingeniería de Software

Mª Angélica Caro Gutiérrezhttp://www.face.ubiobio.cl/~mcaro/

[email protected]

Departamento deCiencias de la Computación y Tecnologías de Información

Universidad del Bío-BíoSede Chillán

Ingeniería Civil Informática UBB 2009

2/37Angélica Caro Ingeniería Civil Informática UBB 2009

PersonalProductoProcesoProyecto

Gestiónde Proyectos de Sw

Page 115: Ingeniería de Software

2

3/37Angélica Caro Ingeniería Civil Informática UBB 2009

Aclarar el ámbito del software involucra contestar:

Contexto: ¿cómo encaja el software a construir en un sistema, producto o contexto de negocios mayor y qué limitaciones se imponen como resultado del contexto?

Objetivos de la información: ¿qué objetivos de datos visibles al cliente se obtienen del software? ¿qué objetos de datos son requeridos de entrada?

Función y rendimiento: ¿qué función realiza el software para transformar la información de entrada en una de salida? ¿hay características de rendimiento especiales que abordar?

Gestión de Proyectos de SwProducto: Ámbito del Sw

4/37Angélica Caro Ingeniería Civil Informática UBB 2009

Aplicación del principio: Divide y vencerásLa descomposición se aplica en dos áreas principales:

La funcionalidad que debe entregarse. Las funciones de Sw descritas en el ámbito del problema se evalúan y refinan para proporcionar más detalles. Esto es esencial para la estimación y planificación.El proceso que se empleará para entregarla.

Gestión de Proyectos de SwProducto: Descomposición

Page 116: Ingeniería de Software

3

5/37Angélica Caro Ingeniería Civil Informática UBB 2009

PersonalProductoProcesoProyecto

Gestiónde Proyectos de Sw

6/37Angélica Caro Ingeniería Civil Informática UBB 2009

El gestor del proyecto debe decidir cuál modelo de proceso es más adecuado para:

Los clientes que han solicitado el producto y el personal que hará el trabajo.Las características el producto mismoEl ambiente del proyecto en el que trabaja el equipo de Sw

Gestión de Proyectos de SwProceso

Page 117: Ingeniería de Software

4

7/37Angélica Caro Ingeniería Civil Informática UBB 2009

¿Qué modelo de desarrollo de software se aplicará?

Lineal secuencial, Prototipos, Desarrollo rápido de aplicaciones DRA, Incremental, Espiral, EspiralWINWIN, Desarrollo Concurrente, Basado en componentes, Métodos formales, Técnicas 4G …..

Una vez definido el modelo de proceso el equipo puede desarrollar un plan de proyecto preliminar que refleje las tareas de trabajo requeridas para cubrir las actividades del marco de trabajo.

Gestión de Proyectos de SwProceso

8/37Angélica Caro Ingeniería Civil Informática UBB 2009

En el plan del proyecto…Combinación del producto y del proceso, cada función a desarrollar debe pasar por el conjunto de actividades del marco de trabajo Descomposición del proceso. Comienza cuando el jefe del proyecto pregunta ¿cómo logramos esta actividad del marco de trabajo? Por ejemplo: Comunicación

Desarrollo de una lista de conflictos a aclararReunión con los clientes para abordar los conflictos Desarrollar en conjunto un enunciado del ámbitoRevisar el enunciado del ámbito con todos los implicadosModificar el enunciado del ámbito según se requiera

Gestión de Proyectos de SwProceso

Page 118: Ingeniería de Software

5

9/37Angélica Caro Ingeniería Civil Informática UBB 2009

PersonalProductoProcesoProyecto

Gestiónde Proyectos de Sw

10/37Angélica Caro Ingeniería Civil Informática UBB 2009

Diez señales que indican que un proyecto está en peligro.No se entiende las necesidades de los clientesEl ámbito del producto está pobremente definidoLos cambios están mal realizadosLa tecnología elegida cambiaLas necesidades del negocio cambian (o están mal definidas)Las fechas de entrega no son realistasLos usuarios se resistenSe pierde el apoyo político (o nunca lo hubo)El equipo de trabajo es técnicamente débilLos gestores evitan las buenas prácticas y las sabias lecciones

Gestión de Proyectos de SwProyecto

Al menos siete de

ellas pueden ser

determinadas

antes del

desarrollo de un

diseño o antes de

escribir una línea

de código

Page 119: Ingeniería de Software

6

11/37Angélica Caro Ingeniería Civil Informática UBB 2009

Otras razones de atraso en la entrega:Cambios en los requerimientosSub-estimación en la planeación de recursosErrores no consideradosDificultades técnicas no predeciblesDificultades humanas no predeciblesFalta de comunicación en el equipoFalta de reconocimiento por parte de la administración de retrasos y falta de medidas para corregir el problema.

Gestión de Proyectos de SwProyecto

12/37Angélica Caro Ingeniería Civil Informática UBB 2009

Boehm (1996) sugiere un enfoque que trate los objetivos, hitos, planificación, responsabilidades, enfoque técnico y de gestión, y los recursos requeridos por el proyecto.

Propone para esto W5HH:(W) Por qué se desarrolla el sistema? Dicho de otra forma justifica el propósito del negocio la inversión en personal, tiempo y dinero?(W) Qué se hará? Tareas que se requieren para el proyecto(W) Cuándo se hará? Ayuda a planificar identificando las áreas claves e hitos

Gestión de Proyectos de SwProyecto

Page 120: Ingeniería de Software

7

13/37Angélica Caro Ingeniería Civil Informática UBB 2009

W5HH:

(W) Quién es el responsable de una función? Definición del rol y responsabilidad de cada miembro del equipo(W) Dónde están ubicados en la organización? Identifica a clientes, usuarios y desarrolladores(H) Cómo se hará el trabajo desde el punto de vista técnico y de gestión? Conocido esto se debe definir una estrategia técnica y de gestión.(H) Cuánto se necesita de cada recurso?

Gestión de Proyectos de SwProyecto

14/37Angélica Caro Ingeniería Civil Informática UBB 2009

El Airlie Council (expertos en ingeniería de software) desarrolló una lista de las “prácticas críticas de software para la gestión basada en el rendimiento”. Estás prácticas han sido utilizadas por organizaciones y proyectos de software con éxito. (1999)Entre las prácticas críticas podemos mencionar:

Gestión formal del riesgoCosto empírico y estimación de la planificación Gestión de proyectos basada en métricas. Seguimiento del valor ganado (calendarización)Seguimiento de defectos frente a objetivos de calidadGestión del personal

Gestión de Proyectos de SwProyecto

Page 121: Ingeniería de Software

8

15/37Angélica Caro Ingeniería Civil Informática UBB 2009

Para comunicar a los clientes el análisis y la gestión del riesgo, el cronograma y la organización, generalmente se escribe un documento llamado: plan de proyecto. El plan deja por escrito las necesidades del cliente y como se espera satisfacerlas.El cliente puede informarse en el plan del las actividades del proceso de desarrollo y seguir el avance del proyecto.El plan también sirve para corroborar las suposiciones realizadas, por ejemplo sobre costos y el cronograma.

Gestión de Proyectos de SwPlan del Proyecto

16/37Angélica Caro Ingeniería Civil Informática UBB 2009

Un buen plan debe incluir (Pfleeger):Alcance del proyectoCronograma del proyectoOrganización del equipo del proyectoDescripción técnica del sistema propuestoEstándares del proyecto, procedimientos y técnicas y herramientas propuestas.Plan de aseguramiento de la calidadPlan de gestión de la configuraciónPlan de la documentación Plan de gestión de datosPlan de gestión de recursosPlan de pruebaPlan de entrenamientoPlan de seguridadPlan de gestión de riesgoPlan de mantenimiento

Gestión de Proyectos de SwPlan del Proyecto

Page 122: Ingeniería de Software

9

17/37Angélica Caro Ingeniería Civil Informática UBB 2009

Supongamos que tenemos la siguiente situación en relación al desarrollo de un proyecto de Sw:

Se ha seleccionado un modelo de proceso apropiadoSe han identificado las tareas de Ing. de Sw que deben realizarseSe estimó la cantidad de trabajo y el número de personas Se conoce la fecha límite del proyecto.

Ahora, es hora de:Crear una red de tareas de Ing. de Sw que permitirán terminar el trabajo a tiempo. Asignar responsables a cada tarea, asegurarse que éstas se realicen y adaptar la red en la medida que los riesgos se vuelven realidad.

Es decir, se debe hacer la calendarización y seguimiento del proyecto de Sw.

Gestión de Proyectos de SwCalendarización

18/37Angélica Caro Ingeniería Civil Informática UBB 2009

Algunas frases para meditar…

Gestión de Proyectos de SwCalendarización

“Cualquier comandante en jefe que pretenda llevar a cabo un plan que considera defectuoso comete un error; debe exponer sus razones, debe insistir en que el plan debe cambiarse y finalmente presentar su renuncia en lugar de ser el instrumento de destrucción de su ejercito”.

Napoléon Bonaparte

Si las mejores estimaciones indican que la fecha límite es irrealizable, un gestor de proyectos competente debe proteger a su equipo de la presión excesiva de la calendarización y devolver la presión a quienes la originan.

Page-Jones

Page 123: Ingeniería de Software

10

19/37Angélica Caro Ingeniería Civil Informática UBB 2009

Respecto a la planificación temporal de un proyecto surgen interrogantes como:

Cómo hacer corresponder el tiempo cronológico con el esfuerzo humano?Qué tareas y qué paralelismo se pueden encontrar?Qué hitos se pueden establecer para la evaluación de progreso?Se dispone de métodos de análisis para la planificación temporal?Cómo representamos físicamente una agenda y seguimos el progreso del proyecto cuando éste comienza?

Gestión de Proyectos de SwCalendarización

20/37Angélica Caro Ingeniería Civil Informática UBB 2009

Principios básicos que guían la calendarización:Descomposición: el proyecto y el proceso deben dividirseInterdependencia: determinar que tareas deben realizarse en secuencia, cuáles pueden realizarse en paraleloAsignación de tiempo: cada tarea debe tener asociado un número de unidades de trabajo (personas-día), fecha de inicio y término.Validación del esfuerzo: no asignar más tareas de las que se pueden ejecutar por el equipo Definición de responsabilidades: Toda tarea del calendario debe ser asignada a un miembro del equipoDefinición de resultados: Toda tarea debe tener un resultado definidoDefinición de hitos: Toda tarea o grupo de tareas debe estar relacionado con algún hito del proyecto

Gestión de Proyectos de SwCalendarización

Page 124: Ingeniería de Software

11

21/37Angélica Caro Ingeniería Civil Informática UBB 2009

Distribución del esfuerzo:Las técnicas de estimación de proyectos nos llevan a estimar el esfuerzo en personas-mes (o año) requerido para completar el desarrollo del software.Una distribución recomendada para la distribución del esfuerzo es la regla 40-20-40.

Gestión de Proyectos de SwCalendarización

20 %40 %

40 %

Análisis y diseño(40-50 %)

Prueba y depuración(30-40%)

Codificación(15-20 %)

22/37Angélica Caro Ingeniería Civil Informática UBB 2009

Algunas consideraciones (1/2):La regla 40-20-40 sólo es una directriz. Las características de cada proyecto deben ser las que impongan la distribución del esfuerzo.El esfuerzo en la planificación raramente es más del 2 o 3%, a menos que el plan comprometa a la organización a grandes gastos con altos riesgos.El análisis de requisitos puede suponer entre el 10 y el 25%.El análisis o creación de un prototipo debe crecer en proporción directa al tamaño y a la complejidad del proyecto.

Gestión de Proyectos de SwCalendarización

Page 125: Ingeniería de Software

12

23/37Angélica Caro Ingeniería Civil Informática UBB 2009

Algunas consideraciones (2/2):Normalmente, se establece un 20 o 25% para el diseño.Hay que considerar el tiempo invertido en la revisión del diseño y la consiguiente iteración. La codificación puede suponer entre 15 y 20% del esfuerzo global.Las pruebas y la consiguiente depuración pueden requerir entre el 30 y 40% del esfuerzo de desarrollo del Sw. Dependiendo de lo crítico que sea el Sw asíserá la cantidad de pruebas que se requiera. Si el funcionamiento del Sw conlleva riesgos humanos (p.ej: si un fallo del Sw puede provocar la pérdida de una vida), se deberán considerar porcentajes más altos.

Gestión de Proyectos de SwCalendarización

24/37Angélica Caro Ingeniería Civil Informática UBB 2009

Métodos usados para la calendarización:La planificación temporal de un proyecto de software no difiere mucho de la de cualquier otro esfuerzo de desarrollo multitarea.Se puede utilizar:

La técnica de evaluación y revisión de programas (Program Evaluation Review Technique, PERT).El método del camino crítico (Critical Path Method, CPM).

Ambas técnicas desarrollan una descripción de la red de tareas del proyecto, es decir, una representación gráfica o tabular de las tareas que deben realizarse desde el principio hasta el final del proyecto.

Gestión de Proyectos de SwCalendarización

Page 126: Ingeniería de Software

13

25/37Angélica Caro Ingeniería Civil Informática UBB 2009

La red se define desarrollando:Una lista de todas las tareas asociadas con el proyecto específico, llamada estructura de descomposición de trabajos.Una lista de secuenciamientos que indica en qué orden deben realizarse las tareas, llamada lista de restricciones.

Proporcionan herramientas cuantitativas que permiten:

Determinar el camino crítico, la secuencia de tareas que determina la duración total del proyecto.Establecer las estimaciones de tiempo más probables para las tareas individuales con la aplicación de modelos estadísticos.Calcular los límites de tiempo que definen una “ventana temporal” para cada tarea individual.

Gestión de Proyectos de SwCalendarización

26/37Angélica Caro Ingeniería Civil Informática UBB 2009

PERT. Etapas:1. Elaboración del grafo (diagrama de flechas).2. Ordenación del grafo por niveles. (opcional)3. Cálculo de los tiempos PERT.4. Cálculo de los tiempos más tempranos posibles ('early').5. Cálculo de los tiempos más tardíos posibles ('late').6. Cálculo de las holguras (total, libre e independiente).7. Determinación del camino crítico.8. Definición de fechas.

Gestión de Proyectos de SwCalendarización

Page 127: Ingeniería de Software

14

27/37Angélica Caro Ingeniería Civil Informática UBB 2009

PERT. Relaciones de Precedencia:

Gestión de Proyectos de SwCalendarización

RELACIONES DEPRECEDENCIA

LINEALES

RELACIONES DEPRECEDENCIADIVERGENTES

1 2 3

RELACIONES DEPRECEDENCIA

CONVERGENTES

A B

Para iniciar la actividad B esnecesario haber finalizado laactividad A. El suceso 2 es suceso final de A y suceso inicio de B.

1

2

3

4 5

A

B

C

D

Para iniciar la actividad D esnecesario haber finalizado lasactividades A, B y C.

1

3

2

5

4A

B

C

D

Para poder iniciar cualquierade las actividades B, C, o D, esnecesario que haya finalizado la actividad A.

28/37Angélica Caro Ingeniería Civil Informática UBB 2009

PERT. Relaciones de Precedencia:Actividades Ficticias (Duración 0)Ejemplo: Las actividades A y B preceden a la actividad D y las actividades A, B y C preceden a la actividad E.

Gestión de Proyectos de SwCalendarización

A

B

C

D

E

A

B

C

D

E

F

Page 128: Ingeniería de Software

15

29/37Angélica Caro Ingeniería Civil Informática UBB 2009

PERT. Ejemplo:Proyecto con actividades: A, B, C, D, E, F, G y H.Relaciones Precedencia

Gestión de Proyectos de SwCalendarización

3

9

7

6

5

6

5

8

Duración

E, FH

DG

CF

BE

AD

AC

AB

-A

ActividadesPrecedentesActividades

1 2

5

4

3

6

7

A

B

C

D

E

F

G

H

30/37Angélica Caro Ingeniería Civil Informática UBB 2009

PERT. Estimación de tiempos:Estimación de tiempo pesimista (tP): tiempo máximo en que podría finalizarse la actividad si aparecen todas las circunstancias negativas que pueden darse durante su ejecución.Estimación de tiempo más probable (tn): tiempo normal de duración de la actividad considerando que hay problemas durante las actividades, pero no aparecen en su totalidad.Estimación de tiempo optimista (to):tiempo mínimo si no aparece ningún problema durante la ejecución de la actividad.

Gestión de Proyectos de SwCalendarización

ATEi TLi TEj TLj

suceso i suceso j

Tiempo más temprano para comenzar la actividad A (tiempo early de comienzo de A)

Tiempo más tardío paracomenzar la actividad A

Tiempo más temprano parafinalizar la actividad A

Tiempo más tardío parafinalizar la actividad A

Page 129: Ingeniería de Software

16

31/37Angélica Caro Ingeniería Civil Informática UBB 2009

PERT. Ejemplo:Cálculo de los Tiempos Early:

TEj = Para todo j: máx [ TEi + Tij ]

Gestión de Proyectos de SwCalendarización

3

4

5

6

7A1 2

B

C

D

E

FH

G

8

5

6

5

6

7

9

3

0 8

13

14

13

21

24

19

22

TE6 = máx [14+7, 13+6] = 21

32/37Angélica Caro Ingeniería Civil Informática UBB 2009

PERT. Ejemplo:Cálculo de los Tiempos Late:

TLi = Para todo j: min [ TLj - Tij ]

Gestión de Proyectos de SwCalendarización

3

4

5

6

7A1 2

B

C

D

E

FH

G

8

5

6

5

6

7

9

3

0 8

13

14

13

21

24

19

22

24

21

15

15

1480

10

21

248

TL2 = min [15-5, 14-6, 15-5] = 8

Camino Crítico

Holgura:- Suceso = TLi – TEi- Actividad = TLj – TEi - Tij

Page 130: Ingeniería de Software

17

33/37Angélica Caro Ingeniería Civil Informática UBB 2009

CPM:

Elaboración del grafo igual que en PERT:Los nodos se identifican por un número.Si i<j significa que el nodo i precede al j.Las actividades sin predecesor tienen su origen en el nodo 1.Las actividades sin sucesor tienen su final en el último nodo (el de mayor número).

Gestión de Proyectos de SwCalendarización

34/37Angélica Caro Ingeniería Civil Informática UBB 2009

CPM. Ejemplo:

Gestión de Proyectos de SwCalendarización

Page 131: Ingeniería de Software

18

35/37Angélica Caro Ingeniería Civil Informática UBB 2009

CPM v/s PERT:Aunque CPM y PERT tuvieron un origen completamente diferente, resultan muy similares en sus aspectos esenciales. Básicamente la diferencia entre ellas es:

Al calcular la duración de cada actividad, PERT utiliza una media ponderada de tres valores (lo que permite un tratamiento probabilístico) en lugar del valor más probable empleado en CPM.La notación y terminología:

Gestión de Proyectos de SwCalendarización

Notación PERT Notación CPM Suceso Nudo

Actividad Trabajo Holguras Flotantes

Tiempo ‘early’ Tiempo más bajo de iniciaciónTiempo ‘late’ Tiempo más alto de iniciación

36/37Angélica Caro Ingeniería Civil Informática UBB 2009

Cronogramas:Normalmente una carta Gantt.Puede reflejar la planificación de todo el proyecto o parte de él. Este cronograma indica fecha específicas para cada tarea del proyecto. Ejemplo:

Gestión de Proyectos de SwCalendarización

Page 132: Ingeniería de Software

1

Ingeniería de Software

Mª Angélica Caro Gutiérrezhttp://www.face.ubiobio.cl/~mcaro/

[email protected]

Departamento deCiencias de la Computación y Tecnologías de Información

Universidad del Bío-BíoSede Chillán

Ingeniería Civil Informática UBB 2009

2/30Angélica Caro Ingeniería Civil Informática UBB 2009

Unidad 2: Gestión de proyectos de Sw

Modelos del Proceso del softwarePlanificación de proyectos de softwareMétodos de estimaciónEstimación de costo/precioMétricas de proyectosAnálisis y gestión de riesgosSeguimiento de proyectosGarantía de calidad de software

Page 133: Ingeniería de Software

2

3/30Angélica Caro Ingeniería Civil Informática UBB 2009

Un gestor de proyectos debe idealmente tener la “capacidad de saber que es lo que va a salir mal antes de que ocurra .... y tener la valentía para hacer estimaciones cuando el futuro no está claro”Una estimación de recursos, costos y tiempo es un esfuerzo que requiere experiencia, acceder a buena información histórica. Toda estimación tiene un riesgo inherente: la incertidumbre

Estimaciónde Proyectos de Sw

4/30Angélica Caro Ingeniería Civil Informática UBB 2009

La complejidad del proyecto, el tamaño y el grado de incertidumbre estructural afectan la fiabilidad de la estimación. La complejidad de un proyecto depende en gran medida de las experiencias anteriores de los desarrolladoresLas medidas propuestas para la medición de este factor están más relacionadas con la parte de diseño y codificación, por lo que la estimación resulta poco adecuada para usarla en la planificación

Estimaciónde Proyectos de Sw

Page 134: Ingeniería de Software

3

5/30Angélica Caro Ingeniería Civil Informática UBB 2009

Tamaño del proyecto:

Afecta la precisión y la eficiencia de la estimaciónEn proyectos grandes el enfoque de descomposición puede resultar insuficiente dado el tamaño de los elementos descompuestosSi hay más cosas que pueden fallar, más cosas fallarán

Estimaciónde Proyectos de Sw

6/30Angélica Caro Ingeniería Civil Informática UBB 2009

Grado de incertidumbre estructural:

Tiene que ver con la definición de requisitos facilidad para subdividir las funciones y la naturaleza jerárquica de la información que ha de procesarse

Estimaciónde Proyectos de Sw

Page 135: Ingeniería de Software

4

7/30Angélica Caro Ingeniería Civil Informática UBB 2009

La Planificación del proy. proporciona un marco de trabajo que permite al gestor hacer estimaciones razonables de recursos, costos y tiempo.La planificación debe hacerse al principio del proyecto y en un tiempo limitado.El proceso de planificación contempla diversas etapas, en las cuales se deben realizar distintos tipos de estimaciones, la primera de ellas es:

El ámbito del software debe delimitarse al principio de la proyecto y comprende el control y los datos a procesar, la función, el rendimiento, las restricciones, las interfaces y la fiabilidad

Estimaciónde Proyectos de Sw

8/30Angélica Caro Ingeniería Civil Informática UBB 2009

La Planificación del proy. proporciona un marco de trabajo que permite al gestor hacer estimaciones razonables de recursos, costos y tiempo.La planificación debe hacerse al principio del proyecto y en un tiempo limitado.El proceso de planificación contempla diversas etapas, en las cuales se deben realizar distintos tipos de estimaciones, la primera de ellas es:

El ámbito del software debe delimitarse al principio de la proyecto y comprende el control y los datos a procesar, la función, el rendimiento, las restricciones, las interfaces y la fiabilidad

Estimaciónde Proyectos de Sw

Page 136: Ingeniería de Software

5

9/30Angélica Caro Ingeniería Civil Informática UBB 2009

El ámbito del Sw se define usando técnicas como:

Comunicación con todos los participantes y desarrollando una narrativa descriptiva del ámbito del SwLos usuarios finales desarrollan un grupo de casos de uso

En ambos casos, es útil preparar cuestionarios para formular preguntas a los usuarios

Estimaciónde Proyectos de Sw

10/30Angélica Caro Ingeniería Civil Informática UBB 2009

Cuestionarios para la definición del ámbito del Sw. Tipo de preguntas:

¿quién está detrás de esta solicitud?¿quién utilizará esta solución?¿cuál será el beneficio económico de una buena solución?¿hay otros caminos para la solución?

Estimaciónde Proyectos de Sw

Page 137: Ingeniería de Software

6

11/30Angélica Caro Ingeniería Civil Informática UBB 2009

Para establecer mayor claridad sobre lo que el cliente percibe de la solución:

¿cómo caracterizaría el cliente un resultado “correcto”que se generaría con una solución satisfactoria?¿Con qué problemas se enfrentará esta solución?¿Cuál es el entorno en que se utilizará la solución?¿Hay aspectos o limitaciones de rendimiento que afecten a la forma en que se aborda la solución?

Estimaciónde Proyectos de Sw

12/30Angélica Caro Ingeniería Civil Informática UBB 2009

Metacuestiones, que se centran sobre la efectividad de la reunión:

¿Es usted la persona apropiada para responder estas preguntas, son oficiales sus respuestas?¿Son relevantes mis preguntas para su problema?¿Estoy realizando muchas preguntas?¿Hay alguien más que pueda proporcionar información adicional?¿Hay algo más que debiera preguntarle?

Estas preguntas y respuestas sirven para “romper el hielo”. Se recomienda usarlas sólo en etapas iniciales del proy.

Estimaciónde Proyectos de Sw

Page 138: Ingeniería de Software

7

13/30Angélica Caro Ingeniería Civil Informática UBB 2009

Identificado el ámbito del Sw, debe preguntarse si es factible el proyecto de construcción de Sw.Putnam y Myers (1997) proponen determinar la factibilidad del Sw considerando 4 dimensiones:

Tecnología: ¿es técnicamente factible, está dentro del estado actual de la técnica?Financiación: ¿es factible financieramente, puede hacerse con un costo que la organización y el cliente pueda asumir?Tiempo: ¿pueden los proyectos adelantarse a los de la competencia?Recursos: ¿la organización cuenta con los recursos suficientes para tener éxito?

Estimaciónde Proyectos de Sw

14/30Angélica Caro Ingeniería Civil Informática UBB 2009

Una segunda etapa de la planificación corresponde a estimación de los recursos necesarios para el desarrollo del Sw.Las tres grandes categorías de recursos en Ing. de Software son:

Estimaciónde Proyectos de Sw

Personas Componentes reutilizables

Entorno

PROYECTOPROYECTO

Page 139: Ingeniería de Software

8

15/30Angélica Caro Ingeniería Civil Informática UBB 2009

Recursos Humanos. Dado el ámbito se deben evaluar las habilidades requeridas para el desarrollo.Se debe especificar la posición dentro de la organización (gestor, ingeniero de software experimentado) y la especialidad (telecomunicaciones, bases de datos, cliente/servidor)

Estimaciónde Proyectos de Sw

PersonasComponentes reutilizables

Entorno

PROYECTOPROYECTO

El número de personas que requiere un proyecto se determina después de hacer una estimación del esfuerzo del desarrollo.

16/30Angélica Caro Ingeniería Civil Informática UBB 2009

Recursos de Componentes Reutilizables. Es importante tener una noción de que podemos reutilizar en un proyecto, antes del desarrolloTipos de componentes:

Estimaciónde Proyectos de Sw

PersonasComponentes reutilizables

Entorno

PROYECTOPROYECTO

Componentes ya desarrollados (Cots)Componentes ya experimentados(desarrollados para proyectos similares que requieren modificaciones parciales)Componentes con experiencia parcial: (desarrollado para proyectos anteriores que tiene relación pero requerirán de modificación sustancial)Componentes nuevos: (desarrollados para las necesidades del proyecto actual)

Page 140: Ingeniería de Software

9

17/30Angélica Caro Ingeniería Civil Informática UBB 2009

Recursos de Entorno. El planificador del proyecto debe determinar el hardware y software requerido y además verificar si estos recursos estarán disponiblesEl Hw proporciona la plataforma que soporta las herramientas de Sw usadas para el desarrollo.

Estimaciónde Proyectos de Sw

PersonasComponentes reutilizables

Entorno

PROYECTOPROYECTO

En algunos casos se pueden requerir recursos no para apoyar el desarrollo, sino para el funcionamiento del software, por ej:Lector de código de barras

18/30Angélica Caro Ingeniería Civil Informática UBB 2009

“En sistemas complejos, personalizados, un gran error en la estimación del costo puede hacer la diferencia entre beneficio y pérdida. Rebasar el costo puede ser desastroso para el desarrollador.”

(Pressman)

Estimaciónde Proyectos de Sw

Page 141: Ingeniería de Software

10

19/30Angélica Caro Ingeniería Civil Informática UBB 2009

Opciones para hacer la estimación de costo y esfuerzo:

Dejar la estimación para más adelante (al finalizar el proyecto podemos tener una estimación 100% fiable)Basar la estimación en proyectos similares ya terminadosUtilizar “técnicas de descomposición” relativamente sencillas para hacer la estimación de costo y esfuerzoUtilizar uno o más “modelos empíricos” para la estimación de costo y esfuerzo del software

Estimaciónde Proyectos de Sw

20/30Angélica Caro Ingeniería Civil Informática UBB 2009

Técnicas de descomposición:Estimación basada en el tamaño del softwareEstimación basada en el problemaEstimación basada en el procesoEstimación basada en Casos de Uso

Modelos empíricos: COCOMO (Constructive Cost Model)

Estimaciónde Proyectos de Sw

Page 142: Ingeniería de Software

11

21/30Angélica Caro Ingeniería Civil Informática UBB 2009

Estimación basada en el Tamaño del software:La estimación del proyecto se hace basándose en:

Grado de precisión con que el planificador estimó el tamañoHabilidad para traducir la estimación del tamaño en esfuerzo humano, tiempo y dinero Grado en que el plan de proyectos refleja las habilidades del equipoLa estabilidad de los requisitos y el entorno que soporta el esfuerzo de ingeniería de software.

La estimación será tan buena como la estimación que se haga del tamaño del software utilizando para ello un enfoque directo (LDC) o indirecto (PF)

Estimaciónde Proyectos de Sw

22/30Angélica Caro Ingeniería Civil Informática UBB 2009

Estimación basada en el Tamaño del software:

Putnam y Myers (1992) sugieren cuatro enfoques para determinar el tamaño:

Tamaño en “lógica difusa”Tamaño en puntos de funciónTamaño de componentes estándarTamaño del cambio

Estimaciónde Proyectos de Sw

Page 143: Ingeniería de Software

12

23/30Angélica Caro Ingeniería Civil Informática UBB 2009

Estimación basada en el Tamaño del software:

Tamaño en “lógica difusa”: Utiliza técnicas aproximadas de razonamiento. Para aplicar este enfoque el planificador debe tener claro el tipo de aplicación, establecer su magnitud en una escala cuantitativa y refinar la magnitud dentro del rango original. Idealmente debe existir una base histórica para establecer comparaciones.

Tamaño de Punto de Función: El planificador debe hacer estimaciones de las características del dominio de la aplicación.

Estimaciónde Proyectos de Sw

24/30Angélica Caro Ingeniería Civil Informática UBB 2009

Estimación basada en el Tamaño del software:

Tamaño de componentes estándar: los componentes estándar son: subsist., módulos, pantallas, informes, programas interactivos, programas por lotes, archivos, LDC e instrucciones para objetos. Han de estimarse el número de ocurrencias de cada componente estándar y utilizar datos históricos para determinar el tamaño de entrega de cada componentes estándar.

Tamaño del cambio: Se utiliza cuando hay Sw existente que se modificará como parte del proyecto. Se estima el número y tipo de modificaciones (reutilización, añadir código, cambiar código, suprimir código)

Estimaciónde Proyectos de Sw

Page 144: Ingeniería de Software

13

25/30Angélica Caro Ingeniería Civil Informática UBB 2009

Técnicas de descomposición:Estimación basada en el tamaño del softwareEstimación basada en el problemaEstimación basada en el procesoEstimación basada en Casos de Uso

Modelos empíricos: COCOMO (Constructive Cost Model)

Estimaciónde Proyectos de Sw

26/30Angélica Caro Ingeniería Civil Informática UBB 2009

Estimación basada en el Problema:Los datos de LDC y PF se emplean de dos formas durante la estimación del proyecto de software:

Como variables de estimación utilizadas para calibrar cada elemento del softwareComo métricas de base recogidas de anteriores proyectos, utilizadas junto con las variables de estimación para desarrollar proyecciones de costo y esfuerzo.

Valor esperado (VE) de LDC o de PF,

Estimaciónde Proyectos de Sw

Donde:Sopt es el escenario optimistaSm es el escenario probable y Spess es el escenario pesimista

VE = (Sopt + 4Sm +Spess) / 6

Page 145: Ingeniería de Software

14

27/30Angélica Caro Ingeniería Civil Informática UBB 2009

Estimación basada en el Problema:La obtención de valores optimista y pesimista da cuenta de un rango de valores que en definitiva proporciona una indicación implícita del grado de incertidumbre.

Cualquier técnica de estimación , no importa lo sofisticada que sea, se debe volver a comprobar con otro enfoque. Incluso entonces va a prevalecer el sentido común y la experiencia.

Estimaciónde Proyectos de Sw

28/30Angélica Caro Ingeniería Civil Informática UBB 2009

LDCFunción Abvtr estimadasInterface usuario y facilidades de control IUFC 2,300Análisis geométrico dos dimensiones AG2D 5,300Análisis geométrico tres dimensiones AG3D 6,800Gestión de bases de datos GBD 3,350Facilidades representación gráfica FPGC 4,950Control de periféricos CP 2,100Módulos de análisis del diseño MAD 8,400Líneas de código estimadas 33,200

Estimación basada en el Problema:Ejemplo en LDC:

Estimaciónde Proyectos de Sw

VE = (Sopt 4Sm+Spess) / 6

Si la productividad media histórica es de 620 LDC/pm a 8.000 unidades monetarias por mes cuanto esEl costo línea código mes ?

El costo total del proyecto

El esfuerzo estimado

12.90 ≈ 13um (8000/620)

431,600um (33200*13)

53.54 ≈ 54 pm (33200/620)

VE= (4600+4*6900+8600)/6

Page 146: Ingeniería de Software

15

29/30Angélica Caro Ingeniería Civil Informática UBB 2009

Valor de dominio factor de pondearación Cuenta Cuentade información Optimista Probable Pesismista estimada Peso PFNúmero entradas usuario 20 3 24 4 30 6 24 4 96Número salidas usuario 12 4 15 5 22 7 16 5 80Número peticiones usuario 16 3 22 4 28 6 22 4 88Número de archivos 4 7 4 10 5 15 4 10 40Número interfaces externas 2 5 2 7 3 10 2 7 14Cuenta Total 318

Estimación de los valores del dominio:

El factor de ponderación se obtiene desde las medidas originales

La cuenta estimada se obtiene usando la fórmula de VE

La Cuenta PF es la cuenta estimada por peso

El peso corresponde al VE de los factores de ponderación

Estimación basada en el Problema:Ejemplo PF:

Estimaciónde Proyectos de Sw

30/30Angélica Caro Ingeniería Civil Informática UBB 2009

Estimaciónde Proyectos de SwFactor Valor

1 ¿Requiere el sistema copias de seguridad y derecuperación fiables? 4

2 ¿Se requieren comunicaciones de datos? 23 ¿Existen funciones de procesamiento distribuido? 04 ¿Es crítico el rendimiento? 45 ¿Será ejecutado el sistema en un entorno operativo

existente y frecuentemente utilizado? 36 ¿Requiere el sistema entrada de datos interactiva? 47 ¿Requiere la entrada de datos interactiva que las

transacciones de entrada se lleven a cabo sobremúltiples pantallas o variadas operaciones? 5

8 ¿Se actualizan los archivos maestros de formainteractiva? 3

9 ¿Son complejas las entradas, las salidas, losarchivos o las peticiones? 5

10 ¿Es complejo el procesamiento interno? 511 ¿Se ha diseñado el código para ser reutilizable? 412 ¿Están incluidas en el diseño la conversión y la

instalación? 313 ¿Se ha diseñado el sistema para soportar múltiples

instalaciones en diferentes organizaciones? 514 ¿Se ha diseñado la aplicación para facilitar los

cambios y para ser fácilmente utilizada por elusuario? 5Factor de ajuste de la complejidad 1.17

Pf estimado= (factor ajuste*cuenta total) 372

Si la productividad media histórica es de 6.5 PF/pm a 8.000 unidades monetarias por mes se tiene que cuánto es el :

Costo PF mes

Costo total del proyecto

Esfuerzo estimado

PF = cuenta-total x [ 0,65 + 0,01 x Σ( Fi ) ]

1230.76 ≈ 1,231um (8000/6.5)

457,932 um (372*1,231)

57.23 ≈ 57 pm (372/6.5)

Page 147: Ingeniería de Software

Ingeniería de Software

Mª Angélica Caro Gutiérrezhttp://www.face.ubiobio.cl/~mcaro/

[email protected]

Departamento deCiencias de la Computación y Tecnologías de Información

Universidad del Bío-BíoSede Chillán

Ingeniería Civil Informática UBB 2009

Page 148: Ingeniería de Software

2/37Angélica Caro Ingeniería Civil Informática UBB 2009

Unidad 2: Gestión de proyectos de Sw

Modelos del Proceso del softwarePlanificación de proyectos de softwareMétodos de estimaciónEstimación de costo/precioMétricas de proyectosAnálisis y gestión de riesgosSeguimiento de proyectosGarantía de calidad de software

Page 149: Ingeniería de Software

3/37Angélica Caro Ingeniería Civil Informática UBB 2009

Técnicas de descomposición:Estimación basada en el tamaño del softwareEstimación basada en el problemaEstimación basada en el procesoEstimación basada en Casos de Uso

Modelos empíricos: COCOMO (Constructive Cost Model)

Estimación de Proyectos de Sw

Page 150: Ingeniería de Software

4/37Angélica Caro Ingeniería Civil Informática UBB 2009

Estimación basada en el Proceso:

La técnica más común para estimar un proyecto es basar la estimación en el proceso que se empleará.El proceso se descompone en un pequeño conjunto de tareas y luego se definen las funciones del Sw. Con estos se construye una matriz.Luego, se estima el esfuerzo requerido para lograr cada función-tarea, por ejemplo en personas-mes.

Estimación de Proyectos de Sw

Page 151: Ingeniería de Software

5/37Angélica Caro Ingeniería Civil Informática UBB 2009

Estimación basada en el Proceso, un ejemplo:

Estimación de Proyectos de Sw

Tabla de estimación (esfuerzo en personas mes)

Actividad Cliente Planificación Riesgo Cliente TotalesTarea Análisis Diseño Códi go PruebaFunciónInterface usuario y facilidades de control 0.50 2.50 0.40 5.00 8.40Análisis geométrico dos dimensiones 0.75 4.00 0.60 2.00 7.35Análisis geométrico tres dimensiones 0.50 4.00 1.00 3.00 8.50Gestión de bases de datos 0.50 3.00 1.00 1.50 6.00Facilidades representación gráfica 0.50 3.00 0.75 1.50 5.75Control de periféricos 0.25 2.00 0.50 1.50 4.25Módulos de análisis del diseño 0.50 2.00 0.50 2.00 5.00Totales 0.25 0.25 0.25 3.50 20.50 4.75 16.50 45.25% Esfuerzo 1% 1% 1% 8% 45% 10% 36%

EntregaIngenieria

El 53% del esfuerzo se aplica en las tareas de anal de req. y diseño. A 5,000 um por mes, el Costo total del proyecto será: 226,250 (5,000*45.25)Esfuerzo estimado 45.25 ≈

45 personas mes

Page 152: Ingeniería de Software

6/37Angélica Caro Ingeniería Civil Informática UBB 2009

Técnicas de descomposición:Estimación basada en el tamaño del softwareEstimación basada en el problemaEstimación basada en el procesoEstimación basada en Casos de Uso

Modelos empíricos: COCOMO (Constructive Cost Model)

Estimación de Proyectos de Sw

Page 153: Ingeniería de Software

7/37Angélica Caro Ingeniería Civil Informática UBB 2009

Estimación basada en Casos de Uso:

Desarrollar un enfoque de estimación basado en casos de uso (CU), tiene algunos problemas:

No existe un formato estándar para describir los CURepresentan una visión externa del Sw (la del usuario) y pueden estar escritos con distintos grados de abstracciónNo abordan la complejidad de las funciones ni de las características que describenNo describen el comportamiento complejo que involucran muchas funciones y características

Hasta ahora no existe un método de estimación probado.

Estimación de Proyectos de Sw

Page 154: Ingeniería de Software

8/37Angélica Caro Ingeniería Civil Informática UBB 2009

Técnicas de descomposición:Estimación basada en el tamaño del softwareEstimación basada en el problemaEstimación basada en el procesoEstimación basada en Casos de Uso

Modelos empíricos: COCOMO (Constructive Cost Model)

Estimación de Proyectos de Sw

Page 155: Ingeniería de Software

9/37Angélica Caro Ingeniería Civil Informática UBB 2009

Modelos empíricos de estimación:

Un modelo común de estimación de Sw utiliza fórmulas obtenidas empíricamente para predecir el esfuerzo como una función de LDC o PFEste modelo se deriva a partir de un análisis de regresión sobre los datos recopilados de proyectos anteriores

Estimación de Proyectos de Sw

Page 156: Ingeniería de Software

10/37Angélica Caro Ingeniería Civil Informática UBB 2009

Modelos empíricos de estimación:

La estructura global de estos modelos es:

E = A + B* (ev)C

Donde A, B y C son constantes obtenidas empíricamente, E es el esfuerzo en personas-mes y ev es la variable de estimación (LDC o PF)E puede ser ajustado a partir otras características del proyecto como: complejidad del problema, experiencia del personal, entorno de desarrollo

Estimación de Proyectos de Sw

Page 157: Ingeniería de Software

11/37Angélica Caro Ingeniería Civil Informática UBB 2009

Algunos modelos empíricos de estimación, orientados a LDC:

Estimación de Proyectos de Sw

E=5.2*(KLDC)0.91 Walston-Felix

E=5.5+0.73*(KLDC)1.16 Bailey-Basili

E=3.2*(KLDC)1.05 Simple de Boehm

E=5.288*(KLDC)1.047 Doty para KLDC>9

Page 158: Ingeniería de Software

12/37Angélica Caro Ingeniería Civil Informática UBB 2009

Algunos modelos empíricos de estimación, orientados a PF:

Estimación de Proyectos de Sw

E=13.39+0.0545PF Albretch y Gaffney

E=60.62*7.728*10-8PF3 Kemerer

E=585.7+15.12PF Matson, Barnett y Mellichamp

Los modelos presentados entregarán valores diferentes para iguales valores de LDC y PF por lo que estos modelos deben calibrarse para necesidades locales

Page 159: Ingeniería de Software

13/37Angélica Caro Ingeniería Civil Informática UBB 2009

Técnicas de descomposición:Estimación basada en el tamaño del softwareEstimación basada en el problemaEstimación basada en el procesoEstimación basada en Casos de Uso

Modelos empíricos: COCOMO (Constructive Cost Model)

Estimación de Proyectos de Sw

Page 160: Ingeniería de Software

14/37Angélica Caro Ingeniería Civil Informática UBB 2009

COCOMO

Es un modelo empírico de estimación (Boehm, 1981), fundamentado en tres niveles para la estimación de esfuerzo y plazos para el desarrollo de software, que recibe el nombre genérico de COCOMO (COnstructive COst MOdel)COCOMO81, proceso en cascada y desarrollo desde cero.El modelo original ha evolucionado a un modelo más completo llamado COCOMO II (Boehm,1996,2000)Es uno de los modelos de estimación de costos más utilizados y estudiados en la industria

Estimación de Proyectos de Sw

Page 161: Ingeniería de Software

15/37Angélica Caro Ingeniería Civil Informática UBB 2009

COCOMO II, considera 3 niveles:

Nivel de construcción de prototipos inicial: Se utiliza en las primeras etapas de la ingeniería del software donde el prototipado de las interfaces de usuarios, la interacción del sistema y del software, la evaluación del rendimiento y la evaluación de la madurez de la tecnología son de suma importancia.Nivel de diseño inicial: Utilizado una vez que se han estabilizado los requisitos y que se ha establecido la estructura básica del softwareNivel postarquitectónico: Utilizado durante la construcción del software

Estimación de Proyectos de Sw

Page 162: Ingeniería de Software

16/37Angélica Caro Ingeniería Civil Informática UBB 2009

COCOMO II requiere información del tamaño para lo cual puede utilizar:

Puntos objeto, Puntos de función o Líneas de códigoEl COCOMO II utiliza puntos objeto (PO) que es una medida indirecta de software que se calcula utilizando el total de:

Pantallas de la interfase de usuarioInformesComponentes que probablemente se utilicen para construir la aplicación

Cada instancia de objeto se clasifica en uno de tres niveles de complejidad, aplicando criterios sugeridos por Boehm.

Estimación de Proyectos de Sw

Page 163: Ingeniería de Software

17/37Angélica Caro Ingeniería Civil Informática UBB 2009

COCOMO II :La complejidad es una función del número y origen de las tablas de datos y el servidor necesario para generar la pantalla o el informe, y el número de vistas o secciones presentadas como parte de la pantalla o del informe. Ejemplo:

Estimación de Proyectos de Sw

Tipo de objeto Básico Intermedio Avanzado

Pantalla 1 2 3

Informe 2 5 8

Componente L3G 10

Peso de la Complejidad

Page 164: Ingeniería de Software

18/37Angélica Caro Ingeniería Civil Informática UBB 2009

COCOMO II :La cuenta de PO se obtiene multiplicando el número original de instancias de objeto por el factor de ponderación y se suma para obtener una cuenta total de PO.

Cuando se va a usar desarrollo basado en componentes o cuando se reutilizará software hay que estimar un % de reutilización y se ajusta la cuenta total de Puntos Objeto.

Estimación de Proyectos de Sw

TPO=(PO)* [(100-%reutilización)/100]

Page 165: Ingeniería de Software

19/37Angélica Caro Ingeniería Civil Informática UBB 2009

COCOMO II :Luego para calcular el esfuerzo en personas mes (PM) se aplica la fórmula:

Donde PROD es la productividad, deducida desde una tabla como:

Estimación de Proyectos de Sw

PM =(TPO/PROD)

Experiencia y Capacidad de los desarrolladores

Muy Baja

Baja Media Alta Muy Alta

Madurez y Capacidad Muy Baja

Baja Media Alta Muy Alta

PROD (TPO/mes) 4 7 13 25 50

Page 166: Ingeniería de Software

20/37Angélica Caro Ingeniería Civil Informática UBB 2009

COCOMO II, Otras fórmulas del modelo aplicables a los otros niveles:Nivel de diseño inicial:

Donde,A = 2.5Tamaño, es expresado en míles de líneas de código fuenteB, refleja el esfuerzo en relación al tamaño del proyecto. Este varía entre 1 y 1.24, dependiendo de algunos factores (novedad, flexibilidad de desarrollo, gestión de riesgos, cohesión del equipo, madurez del proceso de la organización.M, factor derivado de un conjunto de 7 conductores de proyectosPM, factor asociado a la generación de código automático y que para su cálculo considera la productividad bajo este esquema.

Estimación de Proyectos de Sw

P = A x TamañoB x M + PMm

Page 167: Ingeniería de Software

21/37Angélica Caro Ingeniería Civil Informática UBB 2009

COCOMO II, otras fórmulas del modelo aplicables a los otros niveles:Nivel postarquitectónico:

Donde la fórmula se basa en la misma del nivel anterior, con las siguientes variantes:

M, factor derivado de un conjunto de 17 conductores de proyectosLa estimación del número total de líneas de código se ajusta considerando la Volatilidad de los requerimientos y la Amplitud de la posible reutilización.

Para más detalles sobre COCOMO II:

Ingeniería de Software, Somerville.

Estimación de Proyectos de Sw

P = A x TamañoB x M + PMm

http://csse.usc.edu/csse/research/COCOMOII/cocomo_main.html

Page 168: Ingeniería de Software

22/37Angélica Caro Ingeniería Civil Informática UBB 2009

Algunas Reflexiones (1/4):

Es difícil estimar Tamaño en una primera etapa de un proyecto cuando sólo se tiene la especificación. PF y PO son más fáciles de producir pero más imprecisas.Algunas estimaciones son subjetivas y varían de una persona a otra, dependiendo de su conocimiento y experiencia.Las LDC de un sistema terminado son la métrica básica para la estimación.

Estimación de Proyectos de Sw

Page 169: Ingeniería de Software

23/37Angélica Caro Ingeniería Civil Informática UBB 2009

Algunas Reflexiones (2/4) :

El planificador del proyecto tiene que estimar 3 cosas antes que comience el proyecto:

Cuánto duraráCuánto esfuerzo requeriráCuánta gente estará implicada

Además, debe predecir los recursos (Hardware y Software) que se requerirán y el riesgo asociadoLa especificación del ámbito ayuda al planificador a desarrollar estimaciones mediante: descomposición, modelización empírica y herramientas automatizadas.

Estimación de Proyectos de Sw

Page 170: Ingeniería de Software

24/37Angélica Caro Ingeniería Civil Informática UBB 2009

Algunas Reflexiones (3/4) :

Las técnicas de descomposición, requiere un esbozo de las principales funciones del software, seguido de estimaciones del número de LDC o de PF, o el número de personas-mes requeridas para implementar cada función.Las técnicas empíricas, usan expresiones derivadas empíricamente para determinar el esfuerzo y tiempo, con las que se predicen estos valores en el proyecto.Las herramientas automáticas, implementan un determinado modelo empírico.En cualquier caso, para estimaciones precisas, se recomienda utilizar al menos dos de las tres técnicas.

Estimación de Proyectos de Sw

Page 171: Ingeniería de Software

25/37Angélica Caro Ingeniería Civil Informática UBB 2009

Algunas Reflexiones (4/4) :

Resulta conveniente disminuir el esfuerzo aplicado a los proyectos, disminuyendo el tamaño de los mismos o aumentando la calidad del ambiente de desarrollo o aumentando el plazo de desarrollo. Por tanto es recomendable considerar:

Adquisición de paquetes Uso de lenguajes de cuarta generación PrototiposMejorar la oficina de programaciónDisminuir las interrupcionesReutilizar el códigoUsar componentes

Estimación de Proyectos de Sw

Page 172: Ingeniería de Software

26/37Angélica Caro Ingeniería Civil Informática UBB 2009

¿Comprar o Desarrollar?

En muchas áreas de aplicación del software, a menudo es más barato adquirir un software que desarrollarlo. Los gestores se enfrentan a una decisión de hacer o comprar:

se puede comprar software (o licencia de uso) ya desarrollado.se puede comprar componentes de software “totalmente experimentado” o “parcialmente experimentado”, acomodándolo a las necesidades específicasse puede encargar a terceros la construcción considerando los requerimientos propios de la empresa

Estimación de Proyectos de Sw

Page 173: Ingeniería de Software

27/37Angélica Caro Ingeniería Civil Informática UBB 2009

Adquisición de Sw:

Los pasos a seguir en la adquisición de software estarán dados por el grado crítico del software a comprar y por el costo final.

En el caso de paquetes de software de bajo costo, es menos caro comprarlo y experimentar con él, que llevar a cabo una larga evaluación del mismo.Para paquetes de software caros, se puede aplicar una serie de directrices que ayuden a resolver el problema

Estimación de Proyectos de Sw

Page 174: Ingeniería de Software

28/37Angélica Caro Ingeniería Civil Informática UBB 2009

Directrices para adquirir Sw (1/2):

Hacer una especificación de la función y el rendimiento deseado para el Sw. Definir características medibles (si es posible).

Estimar el costo del desarrollo interno y la fecha de entrega.

Seleccionar:los tres o cuatro software que mejor se ajusten a la especificación.componentes de software reutilizables

Estimación de Proyectos de Sw

Page 175: Ingeniería de Software

29/37Angélica Caro Ingeniería Civil Informática UBB 2009

Directrices para adquirir Sw (2/2):

Desarrollar una matriz que presente comparaciones de las funciones claves. Realizar el seguimiento de las pruebas de evaluación para comparar el software candidato

Evaluar cada paquete basándose en la calidad de anteriores productos, en el soporte de ventas, reputación, etc.

Contactarse con otros usuarios del software y pedirles su opinión.

Estimación de Proyectos de Sw

Page 176: Ingeniería de Software

30/37Angélica Caro Ingeniería Civil Informática UBB 2009

¿Comprar o Desarrollar?

La decisión de hacer o comprar debe tomarse teniendo en cuenta las siguientes preguntas:

¿Será, el producto de software, entregado con anterioridad al software desarrollado internamente?

¿Será el costo de adquisición, junto con el de adaptación, menor que el costo del desarrollo interno del software?

¿Será menor el costo del soporte externo (p.e. un contrato de mantenimiento) que el costo del soporte interno?

Estimación de Proyectos de Sw

Page 177: Ingeniería de Software

31/37Angélica Caro Ingeniería Civil Informática UBB 2009

¿Comprar o Desarrollar?

Se puede utilizar técnicas estadísticas como el análisis de árboles decisión.Ejemplo:

Una organización puede:

• Construir el sistema X desde el principio• Reutilizar un sistema existente realizando alguna modificación• Comprar un producto de software disponible y modificarlo para

que se ajuste a las necesidades concretas.• Contratar el desarrollo del software a un externo

Estimación de Proyectos de Sw

Page 178: Ingeniería de Software

32/37Angélica Caro Ingeniería Civil Informática UBB 2009

Estimación de Proyectos de Sw

Sistema X

Construir

Contratar

Comprar

Reusar

Sencillo (0,30)

Dificil (0,70)

Sencillo (0,20)

Pocos cambios (0,40)

Muchos cambios (0,60)

$380.000

$450.000

$275.000

$310.000

Complejo (0,80)

$490.000

$210.000

$400.000

$350.000

$500.000

Pocos cambios (0,70)

Muchos cambios (0,30)

Con cambios (0,40)

Sin cambios (0,60)

Page 179: Ingeniería de Software

33/37Angélica Caro Ingeniería Civil Informática UBB 2009

¿Comprar o Desarrollar?

Si se construye hay un 70% que el trabajo sea complicado. Mediante las técnicas de estimación se estima que un esfuerzo de desarrollo difícil costará $450.000 y uno sencillo costará $380.000.El valor esperado para el costo para cualquier camino del árbol de decisión es:

costo esperado = Σ

(probabilidad del camino)i * (costo estimado del camino)i

Donde i es el camino del árbol de decisión

Estimación de Proyectos de Sw

Page 180: Ingeniería de Software

34/37Angélica Caro Ingeniería Civil Informática UBB 2009

Estimación de Proyectos de Sw

Sistema X

Construir

Contratar

Comprar

Reusar

Sencillo (0,30)

Dificil (0,70)

Sencillo (0,20)

Pocos cambios (0,40)

Muchos cambios (0,60)

$380.000

$450.000

$275.000

$310.000

Complejo (0,80)

$490.000

$210.000

$400.000

$350.000

$500.000

Pocos cambios (0,70)

Muchos cambios (0,30)

Con cambios (0,40)

Sin cambios (0,60)

Costo esperado construir = (0.40 * $380K) + (0.70 * $450K)= $429K

Costo esperado construir = (0.40 * $380K) + (0.70 * $450K)= $429K

Costo esperado de construir = Σ

(probabilidad del camino)i * (costo estimado del camino)i

Page 181: Ingeniería de Software

35/37Angélica Caro Ingeniería Civil Informática UBB 2009

Estimación de Proyectos de Sw

Sistema X

Construir

Contratar

Comprar

Reutilizar

Sencillo (0,30)

Dificil (0,70)

Sencillo (0,20)

Pocos cambios (0,40)

Muchos cambios (0,60)

$380.000

$450.000

$275.000

$310.000

Complejo (0,80)

$490.000

$210.000

$400.000

$350.000

$500.000

Pocos cambios (0,70)

Muchos cambios (0,30)

Con cambios (0,40)

Sin cambios (0,60)

Costo esperado reutilizar = (0.30 * $275K) + 0.60*((0.20 * $310K)+ (0.80*$490K)) = $382K

Costo esperado reutilizar = (0.30 * $275K) + 0.60*((0.20 * $310K)+ (0.80*$490K)) = $382K

Page 182: Ingeniería de Software

36/37Angélica Caro Ingeniería Civil Informática UBB 2009

Estimación de Proyectos de Sw

Sistema X

Construir

Contratar

Comprar

Reusar

Sencillo (0,30)

Dificil (0,70)

Sencillo (0,20)

Pocos cambios (0,40)

Muchos cambios (0,60)

$380.000

$450.000

$275.000

$310.000

Complejo (0,80)

$490.000

$210.000

$400.000

$350.000

$500.000

Pocos cambios (0,70)

Muchos cambios (0,30)

Con cambios (0,40)

Sin cambios (0,60)

Costo esperado comprar = (0.70 * $210K) + (0.30 * $400K) = $267K

Costo esperado comprar = (0.70 * $210K) + (0.30 * $400K) = $267K

$380.000

Page 183: Ingeniería de Software

37/37Angélica Caro Ingeniería Civil Informática UBB 2009

Estimación de Proyectos de Sw

Sistema X

Construir

Contratar

Comprar

Reusar

Sencillo (0,30)

Dificil (0,70)

Sencillo (0,20)

Pocos cambios (0,40)

Muchos cambios (0,60)

$380.000

$450.000

$275.000

$310.000

Complejo (0,80)

$490.000

$210.000

$400.000

$350.000

$500.000

Pocos cambios (0,70)

Muchos cambios (0,30)

Con cambios (0,40)

Sin cambios (0,60)

Costo esperado contratar = (0.60 * $350K) + (0.40 * $500K) = $410K

Costo esperado contratar = (0.60 * $350K) + (0.40 * $500K) = $410K

Page 184: Ingeniería de Software

1

Ingeniería de Software

Mª Angélica Caro Gutiérrezhttp://www.face.ubiobio.cl/~mcaro/

[email protected]

Departamento deCiencias de la Computación y Tecnologías de Información

Universidad del Bío-BíoSede Chillán

Ingeniería Civil Informática UBB 2009

2/24Angélica Caro Ingeniería Civil Informática UBB 2009

Unidad 2: Gestión de proyectos de Sw

Modelos del Proceso del softwarePlanificación de proyectos de softwareMétodos de estimaciónEstimación de costo/precioMétricas de proyectosAnálisis y gestión de riesgosSeguimiento de proyectosGarantía de calidad de software

Page 185: Ingeniería de Software

2

3/24Angélica Caro Ingeniería Civil Informática UBB 2009

El objetivo de la Ing. de Software es la mejora de procesos, recursos y métodos que permitan producir y mantener mejores productos.Las métricas son un aspecto relevante en I. de Sw, permiten generar descripciones cuantitativas de dónde se está parado y a dónde se pretende ir.Cuantificar donde se pueda y lo que se pueda permite describir nuestras acciones y sus resultados en un lenguaje común que permite evaluar nuestros progresos.La medición es una herramienta eficaz para tratar de solucionar problemas del mundo real.

Métricasde Proyectos de Sw

4/24Angélica Caro Ingeniería Civil Informática UBB 2009

Medida: proporciona una indicación cuantitativa, de la extensión, cantidad, dimensiones, capacidad o tamaño de algunos atributos de un proceso o producto. (ej.: número de errores descubiertos en la revisión de un módulo)Medición: acto de determinar una medida (ej.: se investiga el número de revisiones de módulos para recopilar medidas del número de errores encontrados durante cada revisión)Métrica: medida cuantitativa del grado en que un sistema, componente o proceso posee un atributo dado (IEEE-1993) (ej.:promedio errores encontrados por revisión o promedio de errores encontrados por persona y hora en revisiones)Indicador: es una métrica o combinación de métricas que proporcionan una visión profunda del proceso de software, del proyecto o del producto

Métricasde Proyectos de Sw

Page 186: Ingeniería de Software

3

5/24Angélica Caro Ingeniería Civil Informática UBB 2009

Las razones para crear métricas del software, de los productos y los recursos son:

Caracterizar: para comprender mejor y establecer la base para comparaciones con futuras mediciones.Evaluar: para determinar el estado respecto del diseño y para valorar la consecución de objetivos de calidad, el impacto de la tecnología y las mejoras del proceso.Predecir: para planificar. Constituyen la base para la comprensión de relaciones entre procesos y productos y construir modelos de dichas relaciones, y a futuro la extrapolación de tendencias para la estimación de costo, tiempo y calidadMejorar: para identificar barricadas, causas raíz, ineficiencias y otras oportunidades para mejorar la calidad del producto y el desempeño del proceso

Métricasde Proyectos de Sw

6/24Angélica Caro Ingeniería Civil Informática UBB 2009

Las métricas del proceso se recopilan en el curso de todos los proyectos durante largos periodos.Se mide para obtener un conjunto de indicadores de proceso que conduzcan a la mejora de los procesos de Sw a largo plazo.Los indicadores de proyectos permiten:

evaluar el estado del proyectoseguir la pista de riesgos potencialesdetectar áreas de problemas antes de que se conviertan en “críticas”ajustar el flujo y las tareas del trabajoy evaluar la habilidad del equipo de proyectos en controlar la calidad de los productos de trabajo de Sw

Métricasde Proyectos de Sw

Page 187: Ingeniería de Software

4

7/24Angélica Caro Ingeniería Civil Informática UBB 2009

En resumen, la medición del proceso y de los proyectos de Sw se justifica:

Para conocer la calidad del productoPara evaluar la productividad de las personas que lo producenPara evaluar los beneficios de nuevas herramientas de softwarePara formar una base a fin de estimarPara justificar nuevas herramientas o entrenamientos adicionales.

Métricasde Proyectos de Sw

8/24Angélica Caro Ingeniería Civil Informática UBB 2009

El proceso de medición se caracteriza por 5 actividades (Roche, 1994):

Formulación: Derivación de medidas y métricas apropiadas para la representación del Sw que se considera.Recolección: Mecanismo con el que se acumulan datos para derivar las medidas formuladas.Análisis: Cálculo de las métricas, uso de herramientas matemáticas.Interpretación: Evaluación de las métricas y los valores calculados para ellas.Retroalimentación: Recomendaciones derivadas de la interpretación de las métricas del producto y transmisión de éstas al equipo del software.

Métricasde Proyectos de Sw

Page 188: Ingeniería de Software

5

9/24Angélica Caro Ingeniería Civil Informática UBB 2009

Entre otros, los datos recopilados en un proceso de Sw permite obtener métricas tales como:

medidas de errores detectados antes de la entrega del software,defectos detectados e informados a los usuarios finales,productos de trabajo entregados (productividad),esfuerzo humano y tiempo consumido,ajuste a la panificación, etc.

Métricasde Proyectos de Sw

10/24Angélica Caro Ingeniería Civil Informática UBB 2009

Las métricas pueden ser:

Métricas privadas: aquellas que corresponden a datos propios de un individuo que deben ser usados privadamente por ejemplo, índices de defectos, errores por módulo, errores encontrados en el desarrollo

Métricas públicas: asimilan información que originalmente era privada de particulares y equipos. Por ejemplo, índice de defectos a nivel de proyecto (no atribuidos absolutamente a un particular)

Métricasde Proyectos de Sw

Page 189: Ingeniería de Software

6

11/24Angélica Caro Ingeniería Civil Informática UBB 2009

Algunos lineamientos a aplicar cuando se recopilan métricas de Sw:

Utilice el sentido común y una sensibilidad organizativa para interpretar los datos de las métricasProporcione retroalimentación a particulares y equipos que hayan participado en la recopilación de medidas y métricasNo utilice métricas para evaluar a particularesTrabaje con profesionales y equipos para establecer objetivos claros y métricas que se vayan a utilizar para alcanzarlos.No utilice nunca métricas que amenacen a particulares y equiposLos datos de métrica que indiquen un área problema no se debieran considerar “negativos”, son sólo un indicador de mejora en el proceso.No se obsesione con una sola métrica y excluya otras métricas importantes.

Métricasde Proyectos de Sw

12/24Angélica Caro Ingeniería Civil Informática UBB 2009

Las medidas puede ser directas (longitud de un objeto determinado) o indirectas (calidad de un determinado objeto):

Medidas directas: el costo, el esfuerzo aplicado, las líneas de código producidas (LDC), la velocidad de ejecución, el tamaño de memoria y los defectos observados en un determinado periodo de tiempo.Medidas Indirectas: funcionalidad, calidad, complejidad, eficiencia, fiabilidad, facilidad de mantenimiento.

Métricasde Proyectos de Sw

Page 190: Ingeniería de Software

7

13/24Angélica Caro Ingeniería Civil Informática UBB 2009

Métricas orientadas al tamaño:Son medidas directas del software y del proceso por el cual se desarrolla.Si una organización mantiene registros sencillos se puede crear una tabla con datos orientados al tamaño.

Métricas: Errores por KLDC, defectos por KLDC, $ por LDC, páginas de documentación por LDC, Errores por persona-mes, LDC por persona-mes, $ por página de documentación

Métricasde Proyectos de Sw

Proyecto LD C Esfuerzo C osto Pag. D oc. Errores D efectos PersonasAlfa 12,100 24 168 365 134 29 3Beta 27,200 62 440 1,224 321 86 5G am m a 20,200 43 314 1,050 256 64 6

14/24Angélica Caro Ingeniería Civil Informática UBB 2009

Métricas orientadas a la función:Se centran en la funcionalidad o utilidad del programa como un valor de normalización.La funcionalidad no es medida directamente por lo que debe ser derivada indirectamente desde otras medidas.Los puntos de Función (PF) se derivan de una relación empírica desde medidas contables (directas) del dominio de la información del software y de las evaluaciones de la complejidad del software.Puntos de función: Número de entradas de usuario, Número de salidas de usuario, Número de peticiones, Número de archivos, Número de interfaces externas

Métricasde Proyectos de Sw

Page 191: Ingeniería de Software

8

15/24Angélica Caro Ingeniería Civil Informática UBB 2009

Métricas orientadas a la función:Mediante cuestionarios se ajustan los puntos de función dependiendo de la complejidad que presentan.Una vez calculados los puntos de función, se usan de forma análoga a las LDC como medida de la productividad y calidad. Ej.: Productividad = PF / personas-mes, Calidad = errores / PF, Costos = $ / PF,Documentación = páginas de documentación / PFMétricas ampliadas de Puntos de función :

Los puntos de características (Jones,1991) permiten una más adecuada descripción de aplicaciones de complejidad algorítmica alta, de tiempo real, de control de procesos y de sistemas empotrados.

Los puntos de función 3D (Whitmire, 1995): integra la dimensión de datos, funcional y de control

Métricasde Proyectos de Sw

16/24Angélica Caro Ingeniería Civil Informática UBB 2009

Relación entre LDC y PFs: Depende del lenguaje

Métricasde Proyectos de Sw

Lenguaje de programación LDC/PF (media)Ensamblador 320C 128CoBOL 106FORTRAN 106Pascal 90C++ 64Ada95 53Visual Basic 32Small Talk 22Powerbuilder (generador de código) 16SQL 12

Una LCD en C++ proporciona aproximadamente 1,6 veces la funcionalidad que una LDC de FORTRAN

Visual Basic proporciona 3 veces la funcionalidad que una LDC de un lenguaje convencional

Número medio de LDC por cada punto de función

Page 192: Ingeniería de Software

9

17/24Angélica Caro Ingeniería Civil Informática UBB 2009

Métricas orientadas a objetos:Las métricas convencionales (LDC y PF) no proporcionan suficiente granularidad para la planificación y los ajustes de esfuerzo que se requieren en un proceso incremental.Entre otras métricas podemos mencionar las sgtes. (Lorenz y Kidd)

Número de guiones de escenarioNúmero de clases claveNúmero de clases de apoyoNúmero promedio de clases de apoyo por clase claveNúmero de subsistemas

Métricasde Proyectos de Sw

18/24Angélica Caro Ingeniería Civil Informática UBB 2009

Métricas de proyectos de ingeniería Web:Las medidas y métricas de proyectos tradicionales de Ing. de Sw son difíciles de traducir directamente a aplicaciones Web. Entre otras métricas que se pueden utilizar:

Número de páginas Web estáticasNúmero de páginas Web dinámicasNúmero de vínculos internos de páginaNúmero de objetos de datos persistentesNúmero de objetos con contenido estático Número de objetos con contenido dinámico Número de funciones ejecutables

Métricasde Proyectos de Sw

Page 193: Ingeniería de Software

10

19/24Angélica Caro Ingeniería Civil Informática UBB 2009

Métricas para la calidad del Sw:

Métricas previas a la entrega del software, incluyen:Complejidad del programaModularidad efectivaTamaño del programa global.

Métricas post-distribución incluyen:CorrecciónFacilidad de mantenimientoIntegridadFacilidad de uso

Métricasde Proyectos de Sw

20/24Angélica Caro Ingeniería Civil Informática UBB 2009

Línea base:Sirve como base para la estimación.Consiste en datos recogidos de anteriores proyectos de desarrollo de Sw, pudiendo ser muy sencilla Además, de simples medidas orientadas al tamaño o a la función, la línea de base se puede completar con métricas de calidad.

Métricasde Proyectos de Sw

Page 194: Ingeniería de Software

11

21/24Angélica Caro Ingeniería Civil Informática UBB 2009

Línea base:Para que sea una ayuda efectiva en la planificación estratégica y/o en las estimaciones de costo y esfuerzos, los datos de la línea base tienen que poseer los siguientes atributos:

Los datos deben ser razonablemente precisos, han de evitarse “suposiciones” sobre proyectos anteriores.

Los datos deben obtenerse de tantos proyectos como sea posible.

Las medidas tienen que ser consistentes.Las aplicaciones deben ser similares a la que vaya a ser

estimada.

Métricasde Proyectos de Sw

22/24Angélica Caro Ingeniería Civil Informática UBB 2009

Línea base:Proceso para establecer una línea base:

Recolección de datos, requiere una investigación histórica de proyectos pasados para reconstruir los datos requeridos.

Cálculo de métricas, LDC o PF.Evaluación de los datos, se centra en las razones intrínsecas de

los resultados obtenidos. ¿Son relevantes las métricas calculadas para el proyecto actual?, ¿Qué circunstancias atenuantes invalidan ciertos datos a ser utilizados en esta estimación?

El modelo incluye datos de costo, datos orientados al tamaño y datos orientados a la función, permitiendo el cálculo tanto de métricas orientadas al LDC como a PF.

Métricasde Proyectos de Sw

Page 195: Ingeniería de Software

12

23/24Angélica Caro Ingeniería Civil Informática UBB 2009

Proceso de recopilación de métricas:

Métricasde Proyectos de Sw

Proyectode software

Procesode ingenieríade software

Productode software

Recopilaciónde datos

Recopilaciónde datos

Evaluaciónde métricasEvaluaciónde métricas

Cálculode métricas

Cálculode métricas

Medidas

Métricas

Indicadores

24/24Angélica Caro Ingeniería Civil Informática UBB 2009

Pressman Roger . 2005. “Ingeniería del Software, un enfoque práctico”. Editorial McGraw Hill. 6ta edición.

PFLEEGER, S. L. 2002. Ingeniería de software, teoría y práctica. Pearson Education. 1ra Edición.

SOMMERVILLE, I. 2002. Ingeniería de software. Editorial Pearson Educación, 6ta edición.

Bibliografía

Page 196: Ingeniería de Software

1

Ingeniería de Software

Mª Angélica Caro Gutiérrezhttp://www.face.ubiobio.cl/~mcaro/

[email protected]

Departamento deCiencias de la Computación y Tecnologías de Información

Universidad del Bío-BíoSede Chillán

Ingeniería Civil Informática UBB 2009

2/24Angélica Caro Ingeniería Civil Informática UBB 2009

Unidad 2: Gestión de proyectos de Sw

Modelos del Proceso del softwarePlanificación de proyectos de softwareMétodos de estimaciónEstimación de costo/precioMétricas de proyectosAnálisis y gestión de riesgosSeguimiento de proyectosGarantía de calidad de software

Page 197: Ingeniería de Software

2

3/24Angélica Caro Ingeniería Civil Informática UBB 2009

Identificar, analizar y dar respuesta a los riesgos del proyecto Maximizar la probabilidad y consecuencias de eventos positivos, yMinimizar las de eventos negativos

Análisis y Gestión de Riesgos

4/24Angélica Caro Ingeniería Civil Informática UBB 2009

Tipos de riesgos (1/2):Riesgos estratégicos de la empresa: pérdidas, inversiones, imagen, etc.Riesgos comerciales: problemas con la venta del producto, seguimiento del cliente, precio, pérdida de cliente, venta por debajo del precio real, etc.Riesgos contractuales y financieros: relacionados con los términos contractuales negociados ante la firma del contrato (penalizaciones, niveles de calidad, calendario de pagos, impagos, aumento de trabajo sin compensación, etc.)Riesgos de gestión: recursos, equipo, calendario, estimaciones, subcontratas, etc.

Análisis y Gestión de Riesgos

Page 198: Ingeniería de Software

3

5/24Angélica Caro Ingeniería Civil Informática UBB 2009

Tipos de riesgos (2/2):Riesgos técnicos: especificación, diseño, realización, integración, etc.Riesgos de explotación: fallos del sistema que conducen a accidentes graves.Riesgos de mantenimiento: sobrecostos en mantenimiento

Análisis y Gestión de Riesgos

6/24Angélica Caro Ingeniería Civil Informática UBB 2009

Estrategias para enfrentar los riesgos:Reactivas:

Indiana Jones, “no te preocupes pensaré en algo”Modo Bombero, no hacer nada hasta que algo salga mal

Proactivas:Comienza antes de que se inicie el trabajo técnicoSe genera un plan para gestionar el riesgo (evitarlo o responder en forma controlada y efectiva).

Análisis y Gestión de Riesgos

Page 199: Ingeniería de Software

4

7/24Angélica Caro Ingeniería Civil Informática UBB 2009

Procesos (1/4):

Planificación de la gestión de riesgos: decidir cómo abordar las actividades de gestión de riesgos y planificarlas.

Identificación de riesgos: determinar los riesgos que podrían afectar al proyecto y documentar sus características. Un método, es crear una lista de verificación de riesgos. Luego estos pueden identificarse y clasificarse en algún subconjunto de riesgos conocidos y predecibles.

Análisis y Gestión de Riesgos

8/24Angélica Caro Ingeniería Civil Informática UBB 2009

Procesos(2/4):

Identificación de riesgos: Los riesgos puede clasificarse en las categorías:

Tamaño del productoImpacto en el negocio (restricciones de la empresa o mercado)Características del ClienteDefinición del procesoEntorno del desarrolloTecnología que construirTamaño y experiencia del personal

Análisis y Gestión de Riesgos

Page 200: Ingeniería de Software

5

9/24Angélica Caro Ingeniería Civil Informática UBB 2009

Procesos (3/4):Análisis cualitativo de los riesgos: analizar cualitativamente los riesgos y condiciones para priorizar sus efectos sobre los objetivos del proyecto.Análisis cuantitativo de los riesgos: determinar la probabilidad y consecuencias de los riesgos y estimar sus implicaciones para los objetivos del proyecto. Uso de plantillas que crucen riesgos, impacto, probabilidades de ocurrencia. Datos que servirán de base para afrontar la ocurrencia efectiva de ciertos hechos.

Análisis y Gestión de Riesgos

10/24Angélica Caro Ingeniería Civil Informática UBB 2009

Procesos (4/4):Planificar respuestas frente a los riesgos: establecer procedimientos y técnicas para aprovechar las oportunidades de mejorar y reducir las amenazas a los objetivos del proyecto.Supervisión y control de riesgos: supervisar riesgos residuales, identificar nuevos riesgos, ejecutar planes de reducción de riesgos, y evaluar sus efectividad a lo largo de la vida del proyecto.

Análisis y Gestión de Riesgos

Page 201: Ingeniería de Software

6

11/24Angélica Caro Ingeniería Civil Informática UBB 2009

Ejemplo:Identificación: Integración de componentes para reutilización 70%, el porcentaje restante se debe desarrollar.Probabilidad: 80%Impacto: Si se planificaron 80 componentes, 18 deben desarrollarse desde cero, lo que tendrá un impacto económico en el proyecto (800 u. monetarias)Exposición al riesgo:

ER= P x C (Prob x Costo)ER = 0.8 x 800 u.m -> 640 u.m.

Análisis y Gestión de Riesgos

12/24Angélica Caro Ingeniería Civil Informática UBB 2009

Ejemplo 1 Plantilla:

Análisis y Gestión de Riesgos

Planes de Mitigación Nivelar a los miembros del grupo en relación a los conocimientos técnicos importantes para la evolución del proyecto. Planear capacitaciones de tecnología en el área que se considere necesario. Rotación de los integrantes del equipo entre las diferentes capas de desarrollo: vista, lógica y persistencia.

Descripción y Explicación Si alguno o algunos de los miembros del grupo no tienen el conocimiento técnico necesario para desarrollar el proyecto, el proyecto se puede ver afectado ya que se requiere mayor cantidad de tiempo y esfuerzo por parte de los demás miembros del equipo.

Baja Probabilidad:

Medio Impacto:

1Prioridad:

Retrasos y problemas debido a temas técnicos (tecnología, plataforma elegida, etc.)

Nombre:

Page 202: Ingeniería de Software

7

13/24Angélica Caro Ingeniería Civil Informática UBB 2009

Ejemplo 2 Plantilla:

Análisis y Gestión de Riesgos

Planes de Mitigación En cada reunión, los miembros del grupo deben hacer aportes para la realización del proyecto, con miras al bien común del equipo. Se deben utilizar herramientas que faciliten la comunicación entre los miembros del grupo. Todo lo pactado debe quedar registrado por escrito y publicado en la página web del grupo.

Descripción y Explicación Si se presentan problemas de comunicación dentro del grupo, el proyecto se ve afectado, ya que se pierde efectividad y la comprensión global y específica acerca del mismo disminuye. De igual manera puede resultar en una mala interpretación del contexto del problema, una incorrecta interpretación de las estrategias de solución; puede además propiciar inconvenientes entre los miembros del grupo y generar problemas a la hora de asignar y desarrollar actividades.

Media Probabilidad:

Alto Impacto:

2 Prioridad:

Problemas de comunicación al interior del grupo Nombre:

14/24Angélica Caro Ingeniería Civil Informática UBB 2009

Unidad 2: Gestión de proyectos de Sw

Modelos del Proceso del softwarePlanificación de proyectos de softwareMétodos de estimaciónEstimación de costo/precioMétricas de proyectosAnálisis y gestión de riesgosSeguimiento de proyectosGarantía de calidad de software

Page 203: Ingeniería de Software

8

15/24Angélica Caro Ingeniería Civil Informática UBB 2009

Los proyectos se salen de la agenda día a día.Un descuido de un día raramente será fatal para el proyecto, pero los días se van acumulando…Si se ha definido en forma adecuada, la calendarización del proyecto define las tareas e hitos que se deben seguir y controlar conforme avanza el proyecto

Seguimientode Proyectos de Sw

16/24Angélica Caro Ingeniería Civil Informática UBB 2009

Formas de seguimiento (1/2):Realizando reuniones periódicas para valorar el estado del proyecto, en las cuales cada miembro del equipo informa de los progresos y de los problemas.Evaluando los resultados de todas las revisiones realizadas en todo el proceso de ingeniería de software.Determinando si los hitos formales se han alcanzado en la fecha programada.

Seguimientode Proyectos de Sw

Page 204: Ingeniería de Software

9

17/24Angélica Caro Ingeniería Civil Informática UBB 2009

Formas de seguimiento (2/2):Comparando la fecha de comienzo real con la planificada, para cada tarea del proyecto.Reuniéndose informalmente con los técnicos para conocer sus valoraciones subjetivas acerca del progreso de cada momento y los problemas que acechan en el horizonte.Usando el análisis del valor obtenido para evaluar el progreso cuantitativamente.

Seguimientode Proyectos de Sw

18/24Angélica Caro Ingeniería Civil Informática UBB 2009

Unidad 2: Gestión de proyectos de Sw

Modelos del Proceso del softwarePlanificación de proyectos de softwareMétodos de estimaciónEstimación de costo/precioMétricas de proyectosAnálisis y gestión de riesgosSeguimiento de proyectosGarantía de calidad de software

Page 205: Ingeniería de Software

10

19/24Angélica Caro Ingeniería Civil Informática UBB 2009

El problema de la calidad del software es un problema tan antiguo como el mismo software.No es necesario ser un experto en control de calidad para darse cuenta que uno de los aspectos fundamentales está dado por los errores que éste pueda presentar en tiempo de explotación.Es claro que si un producto software presenta errores al momento de ser utilizado, ese producto pierde confiabilidad a ojos del usuario hasta el nivel que podría ser desechado como un producto defectuoso.

Garantía de Calidad del Sw

20/24Angélica Caro Ingeniería Civil Informática UBB 2009

La calidad del software no es adecuado consignarla solamente a su aspecto dado por los errores de tiempo de explotación, también hay otros aspectos que son importantes al hablar de calidad en un software.

Uno puede ser el soporte.

Garantía de Calidad del Sw

Page 206: Ingeniería de Software

11

21/24Angélica Caro Ingeniería Civil Informática UBB 2009

Soporte:El soporte define el respaldo organizacional que tiene un producto.Corresponde a todos aquellos elementos organizacionales que apoyan la introducción y el mantenimiento de un producto en su ambiente de trabajo, como:

la capacitación,la asistencia de problemas inesperados,el mantenimiento permanente, yla rápida respuesta a emergencias por nombrar algunos

Garantía de Calidad del Sw

22/24Angélica Caro Ingeniería Civil Informática UBB 2009

Validación & Verificación:Si nos remitimos a la distinción problema-solución, la calidad la identificamos con la noción de solución.Esto nos remite a su vez a dos aspectos:

por un lado a la solución software, al producto y, por otro lado, al uso que se haga del software.

Esto se ha consignado en la literatura especializada como la dualidad Verificación y Validación (V&V).

Garantía de Calidad del Sw

Page 207: Ingeniería de Software

12

23/24Angélica Caro Ingeniería Civil Informática UBB 2009

Validación & Verificación:La verificación se refiere al conjunto de actividades que aseguran que el software describe correctamente lo operación que realiza.¿Estamos construyendo el producto correctamente?

La validación se refiere a un conjunto de actividades que aseguran que el software construido se ajusta a los requerimientos del cliente.¿Estamos construyendo el producto correcto?

Garantía de Calidad del Sw

24/24Angélica Caro Ingeniería Civil Informática UBB 2009

Validación & Verificación:

Verificar comprende comprobar que el software esté de acuerdo con su especificación. Comprueba que el sistema cumple con sus requerimientos funcionales y no funcionales especificados.Se debe asegurar que el software cumple las expectativas del cliente (validación). Va más allá de comprobar si el sistema está acorde con su especificación.

Garantía de Calidad del Sw

Page 208: Ingeniería de Software

13

25/24Angélica Caro Ingeniería Civil Informática UBB 2009

Verificación: Las actividades de verificación se pueden pensar como controles intermedios que puedan ser activados en cada etapa de desarrollo, por ejemplo:

Al construir módulos de programa, el uso de nombres significativos, la programación estructurada, la eficiencia en el uso de memoria u otro que se considere importante para el tipo de aplicación que se está desarrollando. Establecer de procesos de prueba en cada una de las etapas de desarrollo, situación que es muy aconsejable ya que reduce significativamente la tasa de errores acumulados en el proceso, con el beneficio de una reducción importante de los costos.

Garantía de Calidad del Sw

26/24Angélica Caro Ingeniería Civil Informática UBB 2009

Validación: Al estar relacionada con el uso que hacen de él los usuarios plantea formas distintas de ver la calidad en el desarrollo.

La calidad desde ésta perspectiva esta más relacionada con aspectos comunicacionales que técnicos, La calidad es algo que ya no es medible y perfectible desde el seno de la organización que desarrolla Sw sino que ahora es motivo de un diálogo entre ésta y la organización usuaria.Los elementos que aportan calidad al desarrollo desde esta perspectiva son, por ejemplo, el prototipo, el uso en condiciones reales del software, el desarrollo de un lenguaje común de especificación y diseño, la visualización amplia del problema de software, etc. Todos elementos que están orientados a aportar en la validación del Sw como solución.

Garantía de Calidad del Sw

Page 209: Ingeniería de Software

14

27/24Angélica Caro Ingeniería Civil Informática UBB 2009

Proceso de Validación& Verificación:Es importante llevar a cabo la validación de los requerimientos del sistema de forma inicial.Es fácil cometer errores y omisiones en los requerimientos del sistema, y en tales casos, el SW final no cumplirá las expectativas de los clientes.Sin embargo, la validación no puede descubrir todos los problemas de requerimientos, algunas veces hay defectos y deficiencias en los requerimientos que sólo se pueden descubrir cuando la implementación se completa.

Garantía de Calidad del Sw

28/24Angélica Caro Ingeniería Civil Informática UBB 2009

Eliminación Temprana de Defectos:Independiente de que se aplique un conjunto de pruebas al Sw que requieran que este esté completo para hacerlo, la gestión de calidad es más beneficiosa en la medida que es posible incorporar elementos de ella en etapas más tempranas del ciclo de desarrollo de Sw.Es claro que un error de desarrollo entre más cerca de su fuente de origen se detecte será más fácil de corregir y por lo mismo su costo será mucho menor.Es importante notar que según estudios, las actividades de diseño son las que introducen el mayor porcentaje de defectos en las fases de desarrollo del proceso de ingeniería de software, alrededor de un 60%.

Garantía de Calidad del Sw

Page 210: Ingeniería de Software

15

29/24Angélica Caro Ingeniería Civil Informática UBB 2009

Eliminación Temprana de Defectos:La importancia de lo anterior radica en, como decíamos, el impacto que tienen las actividades tempranas de detección de errores, según estudios la proporción del costo de un error se puede describir como:

un error no descubierto durante el diseño cuesta corregirlo 1,0 unidades monetarias. de acuerdo a este valor, el mismo error descubierto justo después de que comienza la prueba costará6,5 unidades; durante la prueba, 15 unidades;y tras lanzar el software, 67 unidades.

Garantía de Calidad del Sw

30/24Angélica Caro Ingeniería Civil Informática UBB 2009

Eliminación Temprana de Defectos: Ejemplo Fig.1

Garantía de Calidad del Sw

Page 211: Ingeniería de Software

16

31/24Angélica Caro Ingeniería Civil Informática UBB 2009

Eliminación Temprana de Defectos: Ejemplo Fig.2

Garantía de Calidad del Sw

32/24Angélica Caro Ingeniería Civil Informática UBB 2009

Eliminación Temprana de Defectos: Ejemplo Fig.3

Garantía de Calidad del Sw

Page 212: Ingeniería de Software

17

33/24Angélica Caro Ingeniería Civil Informática UBB 2009

Eliminación Temprana de Defectos: Ejemplo Fig.4

Garantía de Calidad del Sw

34/24Angélica Caro Ingeniería Civil Informática UBB 2009

Eliminación Temprana de Defectos: Ejemplo Fig.5

Garantía de Calidad del Sw

Page 213: Ingeniería de Software

18

35/24Angélica Caro Ingeniería Civil Informática UBB 2009

Ejemplo Tabla Costo:Ahora si lo anterior lo vemos desde la perspectiva de los costos, recordando los valores relativos que significa corregir un error en cada etapa el costo total comparativo entre estás dos estrategias

Garantía de Calidad del Sw

Sin revisiones

Errores Encontrados Número Costo Unitario deCorrección

Total

Antes de la prueba 22 6.5 143Durante la prueba 82 15.0 1.230Tras la emisión 12 67.0 804

Total 2.177

Con revisiones tempranas

Errores Encontrados Número Costo Unitario deCorrección

Total

Durante el diseño 22 1.5 33Antes de la prueba 36 6.5 234Durante la prueba 15 15.0 315Tras la emisión 3 67.0 201

Total 783

36/24Angélica Caro Ingeniería Civil Informática UBB 2009

Proceso de Validación & Verificación: Se utilizan 2 técnicas de comprobación y análisis de sistemas:

Inspecciones del software, analizan y comprueban las representaciones del sistema como el documento de requerimientos, los diagramas de diseño y el código fuente. Se consideran técnicas estáticas de V&V ya que no requieren que el sistema se ejecute.Pruebas del software, comprender llevar a cabo una implementación del Sw con los datos de prueba y examinar las salidas del Sw y su comportamiento operacional para comprobar que se desempeñe conforme a lo requerido. Esta es una técnica dinámica de V&V ya que se lleva a cabo en una representación ejecutable del sistema.

Garantía de Calidad del Sw

Page 214: Ingeniería de Software

19

37/24Angélica Caro Ingeniería Civil Informática UBB 2009

Proceso de Validación & Verificación:Las técnicas estáticas sólo pueden comprobar la correspondencia entre un programa y su especificación (verificación); no pueden comprobar las características no funcionales, como desempeño y fiabilidad.Por lo tanto, para validar un sistema se requieren llevar a cabo algunas pruebas.Aunque en la actualidad las inspecciones de software se usan ampliamente, las pruebas de programas es aún la técnica de V&Vpredominante.

Garantía de Calidad del Sw

38/24Angélica Caro Ingeniería Civil Informática UBB 2009

Proceso de V & V: Pruebas del softwareLlevar a cabo pruebas comprende hacer prácticas con los programas utilizando datos similares a los datos reales procesados por el programa.La existencia de defectos o insuficiencias se obtiene examinando las salidas del programa y buscando las anomalías.Las pruebas se pueden llevar a cabo durante la fase de implementación para verificar que el Sw se comporta tal como lo pretendió el diseñador.Y después de que la implementación estécompleta.

Garantía de Calidad del Sw

Page 215: Ingeniería de Software

20

39/24Angélica Caro Ingeniería Civil Informática UBB 2009

Proceso de V & V: Pruebas del software

Existen 2 tipos de pruebas:

Las pruebas de defectos, pretenden encontrar las inconsistencias entre un programa y su especificación, por lo general se deben a fallas o defectos del programa.Las pruebas se diseñan para revelar la presencia de defectos en el sistema más que para simular su utilización operacional.

Garantía de Calidad del Sw

40/24Angélica Caro Ingeniería Civil Informática UBB 2009

Proceso de V & V: Pruebas del software

Existen 2 tipos de pruebas:

Las pruebas estadísticas, se utilizan para probar el desempeño y la fiabilidad del programa y comprobar como trabaja bajo condiciones operacionales.Las pruebas se diseñan para reflejar las entradas de los usuarios y su frecuencia.El desempeño del sistema se valora midiendo el tiempo de ejecución y el tiempo de respuesta del sistema al momento de procesar los datos

Garantía de Calidad del Sw

Page 216: Ingeniería de Software

21

41/24Angélica Caro Ingeniería Civil Informática UBB 2009

Validación & Verificación:

El objetivo final del proceso de V&V es generar la confianza de que el sistema de software “se ajusta a los propósitos”.Esto no quiere decir que el sistema está libre de defectos, más bien que es suficientemente bueno para la utilización que se pretende.El nivel de confianza depende de:

propósito del sistema,las expectativas de los usuarios,el entorno actual del mercado para el sistema

Garantía de Calidad del Sw

42/24Angélica Caro Ingeniería Civil Informática UBB 2009

Proceso de Depuración:Los defectos descubiertos deben ser corregidos.Este proceso no necesariamente tiene que estar integrado con el proceso de V&V:

V&V es un proceso que establece la existencia de defectos en un sistema de software.La depuración es un proceso que localiza y corrige estos defectos.

Para localizar la falla, se deben diseñar programas que repliquen la falla original y que ayuden a descubrir la fuente de la falla.Es necesario rastrear el programa manualmente y simular la ejecución.

Garantía de Calidad del Sw

Page 217: Ingeniería de Software

22

43/24Angélica Caro Ingeniería Civil Informática UBB 2009

Proceso de Depuración: Pruebas de RegresiónDespués que se descubre un defecto, debe corregirse y luego reevaluar el sistema.Esto implica volver a hacer la inspección al programa o repetir las pruebas anteriores (pruebas de regresión).Las pruebas de regresión se utilizan para comprobar que los cambios realizados a un programa no introdujeron nuevas fallas en el sistema.La experiencia muestra que una proporción alta de las reparaciones de fallas son reparaciones incompletas o introducen nuevas fallas.

Garantía de Calidad del Sw

44/24Angélica Caro Ingeniería Civil Informática UBB 2009

Proceso de Depuración: Pruebas de Regresión

En principio, durante las pruebas de regresión, se repiten todas las pruebas de cada reparación del defecto.Como esto es muy caro, en la práctica como parte del plan de pruebas, se identifican las dependencias entre las partes del sistema y las pruebas asociadas con cada parte.Se ejecuta un subconjunto de todo el conjunto de datos de prueba para comprobar el componente modificado y sus dependientes.

Garantía de Calidad del Sw

Page 218: Ingeniería de Software

23

45/24Angélica Caro Ingeniería Civil Informática UBB 2009

Verificación & Validación: Plan de Pruebas

El proceso de prueba: descripción de las fases principales del proceso de prueba.Requerimientos de seguimiento: los usuarios están más interesados en que el sistema cumpla sus requerimientos por lo que se planean las pruebas de tal forma que se puedan probar individualmente todos los requerimientos.Elementos probados: se especifican los productos del proceso del software a probar.Calendarización de las pruebas: agenda de todas las pruebas y una asignación de recursos.

Garantía de Calidad del Sw

46/24Angélica Caro Ingeniería Civil Informática UBB 2009

Verificación & Validación: Plan de Pruebas

Procedimiento de registro de las pruebas: se deben registrar los resultados de las pruebas en forma sistemática.Requerimientos de hardware y software: indicar las herramientas de software requeridas y la utilización del hardware estimado.Restricciones: se anticipan las restricciones que afectan el proceso de prueba como el de escasez de personal.

Garantía de Calidad del Sw

Page 219: Ingeniería de Software

24

47/24Angélica Caro Ingeniería Civil Informática UBB 2009

Inspecciones de Software:Es más barato encontrar errores a través de la inspección que por medio de pruebas extensivas del programas.El proceso de inspección también puede considerar otros atributos de calidad como el ajustamiento a los estándares, la portabilidad y mantención.Varios defectos se detectan en una sola sesión de inspección. Las pruebas a menudo pueden detectar sólo un error por prueba.

Garantía de Calidad del Sw

48/24Angélica Caro Ingeniería Civil Informática UBB 2009

Inspecciones de Software:Reutilizan el conocimiento del dominio y del lenguaje de programación. Es más probable que se vean los tipos de errores que comúnmente ocurren en lenguajes de programación particulares.A menudo no es práctico inspeccionar un sistema completo compuesto de varios subsistemas diferentes. Las pruebas son la única técnica de V&V posible en el nivel del sistema.Las pruebas son necesarias para la valoración de la fiabilidad, del análisis de desempeño, la validación de la interfaz de usuario y para comprobar que los requerimientos de Sw son los que el usuario realmente quiere.

Garantía de Calidad del Sw

Page 220: Ingeniería de Software

25

49/24Angélica Caro Ingeniería Civil Informática UBB 2009

Inspecciones de Software: Clases de Fallas

Fallas de datos

¿Se inicializan todas las variables antes de que se utilicen sus valores?¿Todas las constantes tienen nombre?¿El límite superior de los arreglos es igual al tamaño del arreglo?Si se utilizan string, ¿se asigna explícitamente un delimitador?¿Existe alguna posibilidad de que el buffer se desborde?

Garantía de Calidad del Sw

50/24Angélica Caro Ingeniería Civil Informática UBB 2009

Inspecciones de Software: Clases de Fallas

Fallas de entrada/salida

¿Se utilizan todas las variables de entrada?Antes de que salgan, ¿a todas las variables de salida se les asigna un valor?¿Provocan corrupción de los datos las entradas no esperadas?

Garantía de Calidad del Sw

Page 221: Ingeniería de Software

26

51/24Angélica Caro Ingeniería Civil Informática UBB 2009

Inspecciones de Software: Clases de Fallas

Fallas de control

Para cada instrucción condicional, ¿es correcta la condición?¿Todos los ciclos terminan?¿Están puestas correctamente entre llaves las instrucciones compuestas?En las instrucciones case, ¿se han tomado en cuenta todos los casos posibles?Si se requiere una instrucción break después de cada case en las instrucciones, ¿se incluyó?

Garantía de Calidad del Sw

52/24Angélica Caro Ingeniería Civil Informática UBB 2009

Inspecciones de Software: Clases de Fallas

Fallas de interfazLas llamadas a funciones tienen el número correcto de parámetros?¿Concuerdan los tipos de parámetros reales y formales?¿Están en el orden correcto los parámetros?Si los componentes acceden a memoria compartida, ¿tienen el mismo modelo de estructura de la memoria compartida?

Garantía de Calidad del Sw

Page 222: Ingeniería de Software

27

53/24Angélica Caro Ingeniería Civil Informática UBB 2009

Inspecciones de Software: Clases de Fallas

Fallas de administración de excepciones¿Se toman en cuenta todas las condiciones de error posible?

Fallas de administración de almacenamientoSi una estructura vinculada se modifica, ¿se reasignan correctamente todos los vínculos?Si se utiliza almacenamiento dinámico, ¿se asigna correctamente el espacio?¿Se desasigna explícitamente el espacio después de que no se requiere?

Garantía de Calidad del Sw

54/24Angélica Caro Ingeniería Civil Informática UBB 2009

Pressman Roger . 2005. “Ingeniería del Software, un enfoque práctico”. Editorial McGraw Hill. 6ta edición.

PFLEEGER, S. L. 2002. Ingeniería de software, teoría y práctica. Pearson Education. 1ra Edición.

SOMMERVILLE, I. 2002. Ingeniería de software. Editorial Pearson Educación, 6ta edición.

Bibliografía

Page 223: Ingeniería de Software

1

Ingeniería de Software

Mª Angélica Caro Gutiérrezhttp://www.face.ubiobio.cl/~mcaro/

[email protected]

Departamento deCiencias de la Computación y Tecnologías de Información

Universidad del Bío-BíoSede Chillán

Ingeniería Civil Informática UBB 2009

2/57Angélica Caro Ingeniería Civil Informática UBB 2009

IntroducciónInicio de un proyecto (i)

INICIO INICIO PROYECTOPROYECTO

Objetivos

Nivel Empresa

Gestor:- Establece Entorno Inicial

SelecciónGestor Proyecto

Decisión Emprender Proyecto

Nivel Proyecto

Identificar Áreas de RiesgoCalendariosPlanes de TrabajoAsignaciones de Tareas

Plan del Proyecto (versión inicial)

CaracterísticasDeseables

Orígenes ¿Qué quieres hacer?Estudio Viabilidad

Considerar AlternativasEvaluar Alternativas

Económica, Técnica, Legal, Operativa Especificación detallada de la alternativa

seleccionadaEstablecimiento de fechas y compromisos (Plan

Proyecto)

Page 224: Ingeniería de Software

2

3/57Angélica Caro Ingeniería Civil Informática UBB 2009

Origen de la idea:Cambio de requisitosPetición de un cliente/usuarioPropuesta generada dentro de la organización de desarrolloNecesidad detectada por el Departamento de MarketingRecomendación del personal de mantenimientoDetección a partir de la información obtenida de los usuarios

IntroducciónInicio de un proyecto (ii)

4/57Angélica Caro Ingeniería Civil Informática UBB 2009

Identificación de alternativasSe debe analizar:

Consideraciones sobre las diferentes alternativasComprar un producto software comercialDesarrollar el producto internamenteDesarrollarlo de forma externa mediante un contratoAutomatizar sólo parcialmente el sistema

La evaluación de cada una de las alternativasEstudio de viabilidad

La especific. detallada de la alternativa seleccionadaEl establecimiento de fechas y de compromisos de trabajo

IntroducciónInicio de un proyecto (iii)

Page 225: Ingeniería de Software

3

5/57Angélica Caro Ingeniería Civil Informática UBB 2009

Estudio de viabilidad (evaluación de alternativas)“Todos los proyectos son realizables con recursos ilimitados y un tiempo infinito”Aspectos a abordar:

Económico: ¿El beneficio compensa los costos?Técnico: ¿La funcionalidad, el rendimiento y las restricciones son alcanzables?Legal: ¿Los requisitos atentan alguna ley/reglamento?Operativo: ¿Se puede implantar de manera efectiva en la empresa?

Se le suele prestar más atención al análisis costo-beneficio

IntroducciónInicio de un proyecto (iv)

6/57Angélica Caro Ingeniería Civil Informática UBB 2009

Selección del gestor del proyectoEl gestor debe intervenir desde el principio (decisión de emprenderlo)Características deseables del gestor, entre otras:

LiderazgoComprensión técnicaCompetencia en la gestiónPresteza y decisiónVersatilidad y flexibilidadPrevisiónIntegridad

IntroducciónInicio de un proyecto (v)

Page 226: Ingeniería de Software

4

7/57Angélica Caro Ingeniería Civil Informática UBB 2009

Estudio de viabilidadAnálisis costo/beneficio

Permite seleccionar la alternativa más beneficiosa y prever las necesidades financierasSe deben tener en cuenta:

Elementos tangiblesElementos intangibles

Costos a considerar:Personal InformáticoConsultoríaSoftware adicionalHardwareInfraestructuraDebidos al usuario

-Beneficios-Automatización-Menos errores-Más velocidad-Más fiabilidad

8/57Angélica Caro Ingeniería Civil Informática UBB 2009

¿Y después de iniciar el proyecto qué?

Page 227: Ingeniería de Software

5

9/57Angélica Caro Ingeniería Civil Informática UBB 2009

Unidad 3: Métodos para la Ingeniería de Sw

Ingeniería de requisitosAnálisisDiseño ArquitectónicoDiseño detalladoPrueba de software

10/57Angélica Caro Ingeniería Civil Informática UBB 2009

Ingeniería de RequisitosEs el proceso de establecer los servicios que el cliente requiere de un sistema y los límites bajo los cuales opera y se desarrolla.

Lo anterior involucra descubrir, documentar y mantener esta información.

Los requisitos son descripciones de servicios del sistema y restricciones que son generadas durante el proceso de ingeniería de requisitos

Page 228: Ingeniería de Software

6

11/57Angélica Caro Ingeniería Civil Informática UBB 2009

EjemplosSupóngase que hay que desarrollar el software para un sistema de control de una caldera de vapor.

En este contexto:

1. El agua entra en ebullición a 100 Grados Centígrados y a 1 atm de presión

2. El sistema evitará que el agua entre en ebullición

¿Cuál de las afirmaciones es un requisito?

Es decir expresa un deseo u objetivo. Algo que el sistema deberá realizar.

12/57Angélica Caro Ingeniería Civil Informática UBB 2009

EjemplosPor otro lado, las afirmaciones:

3. El sistema leerá la temperatura del agua por medio del sensor

4. El sistema podrá subir la temperatura del agua por medio del regulador

Describen la conexión del software con el entorno, es decir, describen el comportamiento externo del software. No son metas ni objetivos, pero son necesarios para conseguir las metas y los objetivos (p.ej. para conseguir 2).

Aunque propiamente hablando tan sólo 2) sea un requisito, a la Ingeniería de Requisitos le interesan todas las afirmaciones anteriores, ya que todas aportan información relevante para construir el sistema y

para que el sistema funcione de la manera deseada.

Page 229: Ingeniería de Software

7

13/57Angélica Caro Ingeniería Civil Informática UBB 2009

Más ejemplosEl sistema mantendrá la temperatura de la caldera entre 70º y 80º.

El sistema mantendrá un registro de todos los materiales de la biblioteca incluyendo libros, periódicos, revistas, videos y CD.

El sistema permitirá a los usuarios realizar una búsqueda por título, autor o ISBN.

El interfaz de usuario se implementará sobre un navegador Web.

El sistema deberá soportar al menos 20 transacciones por segundo.

El sistema permitirá que los nuevos usuario se familiaricen con su uso en menos de 15 minutos.

(req. Entorno)

(req. muy general)

(req. funcional)

(req. implementación)

(req. rendimiento)

(req. Usabilidad)

14/57Angélica Caro Ingeniería Civil Informática UBB 2009

Tipos de RequisitosRequisitos de usuario

Sentencias en lenguaje natural y diagramas de los servicios que provee el sistema y sus límites operacionales. Escrito para clientes.Expresan las necesidades del usuario.

Requisitos de software o sistemaDescripciones detalladas de los servicios del sistema. Escrito como un contrato entre el cliente y el contratista.Expresan las capacidades que debe tener el software para poder satisfacer los requisitos de usuario.

Page 230: Ingeniería de Software

8

15/57Angélica Caro Ingeniería Civil Informática UBB 2009

Requisitos funcionales y no funcionales

Requisitos funcionalesSentencias de los servicios que el sistema debe proveer, cómo el sistema debe reaccionar a entradas particulares y cómo se debe comportar el sistema en situaciones particulares.En esencia, qué debe hacer el sistema.

Requisitos no-funcionalesRestricciones sobre los servicios o funciones ofrecidas por el sistema, tales como restricciones de tiempo, del proceso de desarrollo, estándares, etc.En esencia, cuán bien debe hacer las cosas el sistema (-> requisitos de calidad).

16/57Angélica Caro Ingeniería Civil Informática UBB 2009

Requisitos no funcionales

Requisitos No Funcionales

Requisitos del Producto

Requisitos del Proceso

Requisitos Externos

Usabilidad

Eficiencia

Ejecución

Espacio

Portabilidad

Fiabilidad

Entrega

Implementación

Estándares

Interacción

Ética

Legislación

Privacidad

Seguridad

Algunas Clasificaciones: IEEE 830-1993:

RendimientoInterfazOperacionalesRecursosVerificaciónAceptaciónDocumentaciónSeguridadPortabilidadCalidadFiabilidadMantenibilidadSeguridad Física

Page 231: Ingeniería de Software

9

17/57Angélica Caro Ingeniería Civil Informática UBB 2009

Problemas en requisitos

La obtención de requisitos es una tarea difícil, por:

Problemas de ámbito. Límite del sistema mal definido. Problemas de comprensión. Los clientes/usuarios no están seguros de lo que necesitan.Problemas de volatilidad. Los problemas cambian a medida que transcurre el tiempo.

18/57Angélica Caro Ingeniería Civil Informática UBB 2009

Obtención de requisitos

Para minimizar los problemas, la recopilación de requisitos se debe realizar de manera organizada:

Pressman:InicioObtenciónElaboraciónNegociaciónEspecificaciónValidaciónGestión de requisitos

Sommerville:Identificación de los requisitosAnálisis de requisitos y negociaciónEspecificación de requisitosModelado del sistemaValidación de requisitosGestión de requisitos

Page 232: Ingeniería de Software

10

19/57Angélica Caro Ingeniería Civil Informática UBB 2009

Ingeniería de requisitosIdentificación de requisitos(Elicitación): Determinación de qué es lo que quiere el cliente/usuario.Análisis y negociación de requisitos: Se deben entender los requerimientos de los diferentes clientes/usuarios y relacionarlos de manera que sea posible alcanzar un resultado final exitoso.Especificación de requisitos: Construcción de un modelo tangible de requisitos.

20/57Angélica Caro Ingeniería Civil Informática UBB 2009

Ingeniería de requisitosModelado del sistema: Construcción de una representación de los requisitos para que pueda ser evaluada por su correctitud, completitud y consistencia.Validación de requisitos: Revisión de las especi-ficaciones para asegurar que todos los requisitos han sido establecidos sin ambigüedad, en forma consistente, sin omisiones, que los errores detectados han sido corregidos y que el resultado del trabajo se ajusta a estándares establecidos para el proceso , el proyecto y el producto

Page 233: Ingeniería de Software

11

21/57Angélica Caro Ingeniería Civil Informática UBB 2009

Ingeniería de requisitosGestión de requisitos: Conjunto de actividades que ayudan al equipo de trabajo a identificar, controlar y hacer un seguimiento de los requisitos y los cambios en cualquier momento

22/57Angélica Caro Ingeniería Civil Informática UBB 2009

ConclusionesEl establecimiento de requisitos es fundamental para un proyecto exitoso.La Ingeniería de Requisitos considera actividades para establecer claramente los servicios que debe proveer un sistema, y las limitaciones de desarrollo y operación.El documento de requisitos usualmente tiene el status de contrato entre el cliente y el desarrollador

Page 234: Ingeniería de Software

12

23/57Angélica Caro Ingeniería Civil Informática UBB 2009

Unidad 3: Métodos para la Ingeniería de Sw

Ingeniería de requisitosAnálisisDiseño ArquitectónicoDiseño detalladoPrueba de software

Desarrollo de Software

Estructurado

24/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw Estructurado

Análisis Estructurado de RequisitosTécnicas de Especificación

Modelado de FuncionesDiagramas de Flujo de Datos (DFDs)Diagramas de Descomposición Funcional

Modelado de DatosModelado de ControlComprobaciones de los elementos de análisis

Page 235: Ingeniería de Software

13

25/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw Estructurado Análisis

Técnicas de Especificación: Clasificación

Según la forma de representación:GráficasTextualesMarcos o plantillas

Según el enfoque de modelado:FunciónInformaciónTiempo

INFORMACION

FUNCION TIEMPO

26/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoAnálisis

Técnicas de Especificación: Ejemplo de Marco

Page 236: Ingeniería de Software

14

27/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoAnálisis

Técnicas de Especificación: Ej. Según enfoque de modelado

INFORMACION

FUNCION TIEMPO

ER

DFDLista de eventos

- Diagrama de historia de vida- Matriz entidad-evento

- DFD- Matriz Entidad-función

- Diagrama Transición-estado

- Redes de petri

28/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw Estructurado

Análisis Estructurado de RequisitosTécnicas de Especificación

Modelado de FuncionesDiagramas de Flujo de Datos (DFDs)Diagramas de Descomposición Funcional

Modelado de DatosModelado de ControlComprobaciones de los elementos de análisis

Page 237: Ingeniería de Software

15

29/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoModelado de Funciones

Diagrama de Flujo de Datos (DFD): Diagrama en forma de red que representa el flujo de datos y las transformaciones que se aplican sobre ellos al moverse desde la entrada hasta la salida del sistema.

Componentes:ProcesosAlmacenesEntidades externasFlujos de datos

Yourdon, DeMarco Gane y Sarson

Flujos de datos

Procesos

Almacenes dedatos

Entidades externas

SSADMMÉTRICA

30/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoModelado de Funciones

Conexiones permitidas mediante flujos de datos:

NONO *SÍENTIDADEXTERNA

NO *NOSÍALMACÉNSÍSÍSÍPROCESO

ENTIDADEXTERNA

ALMACÉNPROCESODestino/Fuente

Paso de datos síncrono

Permitida sólo en el Diagrama de Contexto

Page 238: Ingeniería de Software

16

31/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoModelado de Funciones

Flujo de diálogo y de actualización

USUARIOGESTIONAR PETICIONES DE USUARIO

LIBROS

PRESTAMOS

Petición de libro

Flujo de diálogo y de consulta

CLIENTEGESTIONAR PETICIONES DE USUARIO

INFORMES

CLIENTES

Petición de informe

Informe a cliente

32/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoModelado de Funciones

Modelado de Funciones (DFD)DFD no caben en una página se representan por capas.Aproximación top-down.Ventajas:

Ayuda a construir especificaciones de arriba abajo.Distintos niveles dirigidos a distintas personas.Facilita el trabajo de los analistas.Facilita la documentación del sistema.

Diagramade Contexto

Diagramade Sistema

Distintos niveles, distintas personas

Page 239: Ingeniería de Software

17

33/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoModelado de FuncionesEJEMPLO DFD (1/4)EJEMPLO DFD (1/4)

• Diagrama de Contexto

0 Gestionar Biblioteca

Usuario

Bibliotecario

Petición_Libros

Devol_Libros

Sanción

Altas_Bajas_Libros

34/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoModelado de Funciones

• Diagrama de Sistema

EJEMPLO DFD (2/4)EJEMPLO DFD (2/4)

1 G e s tio n a r P e tic io n e s

2 G e s tio n a r

D e v o lu c io n e s

3 A c tu a liz a r

L ib ro s

P e t ic ió n _ L ib ro sD e v o l_ L ib ro s

S a n c ió n

A lta s _ B a ja s _ L ib ro s

P ré s ta m o s

L ib ro s

Page 240: Ingeniería de Software

18

35/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoModelado de Funciones

• Gestionar Peticiones

1.1 Validar

Préstamo

1.2 Realizar Préstamo

Préstamos

Libros

Petición_Libros

Préstamo_Validado

EJEMPLO DFD (3/4)EJEMPLO DFD (3/4)

36/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoModelado de Funciones

• Gestionar Devoluciones

2.1 Recoger

Libros

2.2 Gestionar Fin de Préstamo

Devol_Libros

Sanción

Préstamos

Libros Devueltos

Libros

Devol_Libros

EJEMPLO DFD (4/4)EJEMPLO DFD (4/4)

Page 241: Ingeniería de Software

19

37/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoModelado de Funciones

Diccionario de Datos: Lista organizada de los datos utilizados por el sistema, que gráficamente se encuentran representados por los flujos de datos y almacenes presentes en el conjunto de DFD.

Las entradas son de tres tipos:Flujos de datosAlmacenesDatos elementales

Se sigue una aproximación top-down.

38/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoModelado de Funciones

Diccionario de Datos:SIMBOLO SIGNIFICADO

= Composición : está compuesto de, o es equivalente a+ Inclusión: y[ ] Selección: selección una de la opciones encerradas entre corchetes, y

separadas por el símbolo “|”{ } Iteración: iteraciones del componente encerrado entre llaves( ) Opción: significa que el componente encerrado es opcional (puede

estar presente o ausente)* texto * Comentario: el texto entre asteriscos es un comentario aclarativo de

una entrada del DD@ Identificador: se utiliza para señalar un campo o conjunto de campos

que identifican cada ocurrencia de un almacénEjemplo:

PETICION_LIBROS = CARNET_BIBLIOTECA + FICHA_LIBROSCARNET_BIBLIOTECA = NUM_CARNET + APELLIDOS + NOMBRE + TIPO_CARNETLIBROS_DISPONIBLES = @SIGNATURA + TITULO + AUTOR + NUMERO UNIDADES

Page 242: Ingeniería de Software

20

39/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoModelado de Funciones

Especificación de Procesos :Técnica que define el procedimiento que realiza un proceso primitivo. Debe describir de una manera más o menos formal cómo se obtienen los flujos de datos de salida a partir de los flujos de datos de entrada más quizás una información local del proceso.Alternativas:

Lenguaje estructuradoÁrboles de decisiónTablas de decisiónDiagramas de acciónPre-post condiciones

40/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoModelado de Funciones

Diagrama de Descomposición Funcional:Técnica para representar la descomposición de las funciones que realiza un sistema.Representa jerárquicamente procesos en diferentes niveles de abstracción. GESTIÓN DE

ALQUILERESDE UN VIDEOCLUB

GESTIÓN DECLIENTES

GESTIÓN DEPROVEEDORES

GESTIÓN DEPELÍCULAS

GESTIONARPEDIDOS

GESTIONARENTREGAS

GESTIONARFACTURAS

GESTIONARPAGOS

GESTIONARALTAS/BAJAS

GESTIONARALQUILERES

GESTIONARDEVOLUCIONES

GESTIONARRESERVAS

GESTIONARALTAS/BAJAS

GESTIONARINFORMES

GESTIONARALTAS/BAJAS

Page 243: Ingeniería de Software

21

41/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoModelado de Funciones

Comprobaciones de una especificación Estructurada:Compleción: Si los modelos son completos.Integridad: Si no existen contradicciones ni inconsistencias.Exactitud: Si los modelos cumplen los requisitos del usuario.Calidad: Estilo, legibilidad y facilidad de mantenimiento de los productos producidos.Las herramientas CASE resuelven automáticamente la mayoría de estos aspectos

42/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw Estructurado

Análisis Estructurado de RequisitosTécnicas de Especificación

Modelado de FuncionesDiagramas de Flujo de Datos (DFDs)Diagramas de Descomposición Funcional

Modelado de DatosModelado de ControlComprobaciones de los elementos de análisis

Page 244: Ingeniería de Software

22

43/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoModelado de Datos

TécnicasModelado Entidad/Interrelación (Chen, 1976)

Entidad: Objeto del que se quiere almacenar información.Relación: Asociación entre entidades.

Cardinalidad.

Atributo: Propiedad o característica de una entidad o relación.Generalización: Subtipos de entidades.

Diagrama de Estructura de Datos:Más sencillo y de menor nivel de abstracción.Formado únicamente por relaciones 1:n.

44/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw Estructurado

Análisis Estructurado de RequisitosTécnicas de Especificación

Modelado de FuncionesDiagramas de Flujo de Datos (DFDs)Diagramas de Descomposición Funcional

Modelado de DatosModelado de ControlComprobaciones de los elementos de análisis

Page 245: Ingeniería de Software

23

45/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoModelado de Control

TécnicasEn los sistemas se aprecia una perspectiva de aspectos funcionales y de datos y otra de control.

Para describir el control se requieren técnicas adicionales:

Listas de EventosDiagramas de Transición de EstadosRedes de Petri

INFORMACION

FUNCION TIEMPO

46/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoModelado de Control

Lista de EventosEvento: Algo que ocurre en la vida real y causa un cambio en los datos.Generalmente, el “disparador” se representa como un flujo de datos que entra en el sistema.Tipos:

Generados externamente flujo que entra en el sistema (petición de libro).Reconocidos internamente flujo que va desde un almacén al proceso (validación de un préstamo).Basados en el tiempo flujo que va desde el proceso al almacén (caducidad de un préstamo).

Page 246: Ingeniería de Software

24

47/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoModelado de Control

Diagrama de Transición de EstadosTécnica que se enfoca en el comportamiento dependiente del tiempo de un sistema.

Definición (IEEE): Diagrama que representa los estados que puede tomar un componente o un sistema y que, además, muestra los eventos o circunstancias que implican el cambio de un estado a otro.Estado: Representa un modo externo de comportamiento.Transición: Obliga al paso de un estado a otro (o al mismo) si se cumple una condición.

ESTADO 1

ESTADO 2

Condición de transición

Acción, o acciones de transición

Transición

48/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoModelado de Control

Ejemplo Diagrama de Transición de Estados (1/4):Se trata de representar el comportamiento de un controlador de un paso a nivel. El acercamiento o alejamiento de los trenes se detecta por unos sensoressituados a una cierta distancia. Cuando llega un tren se cierra la barrera de cada lado de la calzada. Cuando se detecta la salida de todos los trenes se abre la barrera. Hay que accionar una alarma cada vez que se abra o cierre la barrera para alertar a los automovilistas.

Page 247: Ingeniería de Software

25

49/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoModelado de Control

Ejemplo Diagrama de Transición de Estados (2/4):

Vias del Tren

Sensor Aproximación Izquierdo

Sensor Salida Derecha

Sensor Salida Izquierdo

Sensor Aproximación Derecho

50/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoModelado de Control

Ejemplo Diagrama de Transición de Estados (3/4):

Controlde Paso a

Nivel

Tren sale izda.

Tren sale dcha.

Tren aprox. dcha.

Tren aprox. izda.

Barrera abierta

Barrera cerrada

Activar alarma

Desactivar alarma

Abrir barrera

Cerrar barrera

Page 248: Ingeniería de Software

26

51/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoModelado de Control

BARRERAABIERTA

ABRIENDOBARRERA

CERRANDOBARRERA

BARRERACERRADA

Tren aprox. dcha. o izda.

Cerrar barreraActivar alarm a T=1

Barrera abierta

D esactivar alarm a

Tren aprox. dcha. o izda.

T=1cerrar barrera

Barrera cerrada

D esactivar alarm a

(Tren sale dcha. o izda.) y T=1

T=0A brir barreraA ctivar alarm a

Tren aprox. dcha. o izda.

T=T+1

(Tren sale dcha. o izda.) y T>1

T=T-1

Ejemplo Diagrama de Transición de Estados (4/4):

52/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoModelado de Control

Redes de PetriTécnica muy apropiada para la descripción del control en sistemas de comportamiento asíncrono y concurrente.Componentes del modelo:

Un conjunto finito de lugares, representados por círculos.Un conjunto finito de transiciones, representados por segmentos.Un conjunto finito de conexiones o arcos de un lugar con una transición o viceversa, representadas por flechas.

Page 249: Ingeniería de Software

27

53/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoModelado de Control

Redes de Petri

Op.1

a y b

ba

c

Op.1

a y b

ba

c

Disparo de Op.1

l1 l2 l3

l4 l5

l6 l7

t1 t2

t3

54/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoModelado de Control

Ejemplo Redes de Petri (1/3):

Evolución del estado de la red Regla de disparo de transiciones:

Cada transición consta de lugares de entrada y de salida. Se habilita cuando existe al menos una marca en cada uno de sus lugares de entrada.Una transición habilitada puede dispararse. Cuando se dispara se consume la marca de cada lugar de entrada y se produce una marca en cada lugar de salida.

Page 250: Ingeniería de Software

28

55/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoModelado de Control

Ejemplo Redes de Petri (2/3):

T6

P1

T1

P2

P3

T2

P4

T3 T4

P5P6

P7

T5

T6

P1

T1

P2

P3

T2

P4

T3 T4

P5P6

P7

T5

T6

P1

T1

P2

P3

T2

P4

T3 T4

P5 P6

P7

T5

56/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoModelado de Control

Ejemplo Redes de Petri (3/3):

T6

P1

T1

P2

P3

T2

P4

T3 T4

P5 P6

P7

T5

T6

P1

T1

P2

P3

T2

P4

T3 T4

P5P6

P7

T5

T6

P1

T1

P2

P3

T2

P4

T3 T4

P5 P6

P7

T5

Page 251: Ingeniería de Software

29

57/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw Estructurado

Análisis Estructurado de RequisitosTécnicas de Especificación

Modelado de FuncionesDiagramas de Flujo de Datos (DFDs)Diagramas de Descomposición Funcional

Modelado de DatosModelado de ControlComprobaciones de los elementos de análisis

58/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoComprobaciones

Comprobaciones:Dimensión de función Especificación Estructurada (DFD, DD y Especificación de procesos)Dimensión de información D E/R y DEDDimensión del tiempo Lista de Eventos

Plano información-función:Comprobar que todos los elementos (o datos elementales) definidos en los D E/R están definidos como entradas en el DD, es decir, están en algún flujo de datos o almacén.Realizar la misma comprobación con los DED.Comprobar que cada entidad o interrelación del D E/R es consultada y actualizada al menos una vez por alguna función primitiva del DFD.

Page 252: Ingeniería de Software

30

59/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoComprobaciones

Plano información-tiempo:Comprobar que por cada entidad existe un evento que la crea.Comprobar que en las HVE de las entidades maestro se tratan las posibles repercusiones que tiene el borrado de dicha entidad sobre las entidades detalle.

Plano tiempo-función:Comprobar que existe un proceso primitivo dentro de los DFD que trate cada uno de los eventos identificados en la HVE.

Técnicas Matriciales: Se utilizan principalmente para ayudar a verificar la consistencia entre los componentes de distintos modelos de un sistema, ya sea centrada en las funciones, en la información o en el aspecto temporal (dinámico).

60/57Angélica Caro Ingeniería Civil Informática UBB 2009

Pressman Roger . 2005. “Ingeniería del Software, un enfoque práctico”. Editorial McGraw Hill. 6ta edición.

PFLEEGER, S. L. 2002. Ingeniería de software, teoría y práctica. Pearson Education. 1ra Edición.

SOMMERVILLE, I. 2002. Ingeniería de software. Editorial Pearson Educación, 6ta edición.

Bibliografía

Page 253: Ingeniería de Software

1

Ingeniería de Software

Mª Angélica Caro Gutiérrezhttp://www.face.ubiobio.cl/~mcaro/

[email protected]

Departamento deCiencias de la Computación y Tecnologías de Información

Universidad del Bío-BíoSede Chillán

Ingeniería Civil Informática UBB 2009

2/57Angélica Caro Ingeniería Civil Informática UBB 2009

Unidad 3: Métodos para la Ingeniería de Sw

Ingeniería de requisitosAnálisisDiseño ArquitectónicoDiseño detalladoPrueba de software

Desarrollo de Software

Estructurado

Page 254: Ingeniería de Software

2

3/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoArquitectura

La arquitectura del Software representa la estructura de datos y los componentes del programa necesarios para construir un sistema computacional.Corresponde al estilo arquitectónico que tomará el sistema, la estructura y las propiedades de los componentes que constituyen el sistema y las relaciones entre todos los componentes arquitectónicos de un sistema.La arquitectura del software debe modelar la estructura de un sistema y la manera en que los datos y los componentes procedimentales colaboran entre sí.

4/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoArquitectura

Su representación permite la comunicación entre todas los partes interesadas en el desarrollo del Sw.Destaca las decisiones iniciales relacionadas con el diseño que tendrán impacto en todo el trabajo de Ing. de Sw y en el éxito del sistema como entidad operacional. Constituye un modelo relativamente pequeño e intelectualmente comprensible de cómo esta estructurado el sistema y como trabajan sus componentes Los modelo y patrones arquitectónicos son transferibles, y por tanto pueden ser aplicables al diseño de otros sistemas.

Page 255: Ingeniería de Software

3

5/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoArquitectura

Algunas arquitecturas:Centrada en datos el componente central es un repositorio de datos y todo el resto de los componentes interactúan con élDe flujo de datos, los datos de entrada se transforman en datos de salida mediante una serie de componentes para el cálculo o la manipulación.De llamada y retorno, Programa Principal y subprogramas.Orientada a objetos, los componentes del sistema encapsulan los datos y las operaciones para manipular los datos. La comunicación y coordinación se consigue mediante el paso de mensajes.Estratificada, divide las actividades y responsabilidades del sistema en capas.

6/57Angélica Caro Ingeniería Civil Informática UBB 2009

Unidad 3: Métodos para la Ingeniería de Sw

Ingeniería de requisitosAnálisisDiseño ArquitectónicoDiseño detalladoPrueba de software

Desarrollo de Software

Estructurado

Page 256: Ingeniería de Software

4

7/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoDiseño

ObjetivoDesarrollar la Estructura de Programa, así como las relaciones entre los elementos, denominados Módulos, que componen esta estructura.

Diseño orientado al flujo de datos:Transición de DFD Diagrama de estructura (DE)

C

opción

1Leer Opción 2 3

1 2

3

b

c

d

a

A1

A2

8/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoDiseño

Diagrama de EstructuraTabla de InterfazEstrategias de Diseño

Análisis de TransformaciónAnálisis de Transacción

Atributos de la Calidad de un DiseñoAcoplamientoCohesión

Page 257: Ingeniería de Software

5

9/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoDiseño

Diagrama de Estructura:

Muestra la descomposición de un sistema en módulos

Jerarquía de Control Llamadas entre MódulosParámetros que se intercambian en las llamadas

Elementos Principales: 1. Módulos 2. Conexiones entre Módulos3. Comunicación entre Módulos

10/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoDiseño

Diagrama de Estructura:Módulo

Módulo Predefinido

Datos

Control (flag)

LEERPETICION

PRESTAMO

GESTIONARPETICIONES

PET_ACEPTADAINFORME

PRESTAMOPET_ACEPTADA

INFORMARPETICION

TRATARPETICION

CONSULTARSTOCK

PET_PRESTAMO PET_RECHAZADA

RECHAZARPETICION

INFORMEPRESTAMO

EOF

IteraciónDecisión

Page 258: Ingeniería de Software

6

11/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoDiseño

Diagrama de Estructura: MódulosDefiniciones

la parte lógica separable de un programa [AECC, 1986] una secuencia contigua de sentencias de programa, limitada por delimitadores y que tiene un identificador global [YOURDON y CONSTANTINE, 1979]cualquier objeto que, en un nivel de abstracción dado, queramos considerar como un concepto simple [FENTON, 1991] es aquella parte de código que se puede llamar (teoría del diseño estructurado) [PAGE-JONES, 1988]

Módulo Predefinido:Disponible en la biblioteca del sistema o de la aplicación (puede ser de un SO, BD, ...)

12/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoDiseño

Diagrama de Estructura:

Conexiones entre módulos:Un sistema está compuesto por módulos organizados jerárquicamente, cooperando y comunicándose entre síLa llamada de un módulo se representa con una flecha

La dirección indica quién llama a quién.

Orden Llamadas en un DE:Arriba- Abajo e Izquierda-Derecha

A

B

C

Orden Ejecución:

C-B-A

Page 259: Ingeniería de Software

7

13/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoDiseño

Diagrama de Estructura:

Comunicaciones entre módulos:Se realiza a través de:

Sólo importan para la comunicación de información

Están relacionados con el problema y son importantes para el mundo exterior

Sólo sirven como valores de condición para comunicar condiciones entre los módulos.

Se Procesan

Flags (Control) Datos

14/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoDiseño

Diagrama de EstructuraTabla de InterfazEstrategias de Diseño

Análisis de TransformaciónAnálisis de Transacción

Atributos de la Calidad de un DiseñoAcoplamientoCohesión

Page 260: Ingeniería de Software

8

15/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoDiseño

Diagrama de Estructura: Tabla de Interfaz: Representan los parámetros que se pasan entre módulosComponentes:

1. El módulo llamado2. Cada parámetro formal3. Si el parámetro es de entrada (columna correspondiente)4. Si el parámetro es de salida (columna correspondiente)5. El uso de cada parámetro6. El significado de cada parámetro

EdadMSíNoy

Fecha de NacimientoPNoSíxF(x,y)

Significado ParámetroUsoSalidaEntradaParámetro

FormalMódulo

16/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoDiseño

Diagrama de Estructura: Uso de parámetros

El parámetro es TRANSFERIDO por el módulo llamado a otro módulo que éste llama sin modificar su valorT

El parámetro es PROCESADO a= b + 2P

El parámetro es usado como una VARIABLE DE CONTROL, quizás para actuar como un índice conmutador, como un valor de un flag, o para la especificación de

una función que es usada por el módulo llamado C

El parámetro es TRANSFERIDO a otro módulo y es MODIFICADO en este segundo móduloI

El parámetro es MODIFICADO a = 3 + bM

SignificadoNemotécnico

Petición AceptadaPNoSíPet_AceptadaTratar Petición

Informe de PréstamoTSíNoInforme_Préstamo

Informe de PréstamoPNoSíInforme_PréstamoInformar Petición

Significado ParámetroUsoSalidaEntradaParámetro

FormalMódulo

Page 261: Ingeniería de Software

9

17/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoDiseño

Diagrama de EstructuraTabla de InterfazEstrategias de Diseño

Análisis de TransformaciónAnálisis de Transacción

Atributos de la Calidad de un DiseñoAcoplamientoCohesión

18/57Angélica Caro Ingeniería Civil Informática UBB 2009

Estrategias de Diseño:

FLUJO DESALIDA

FLUJO DELLEGADA

FLUJO DETRANSFORMACIÓN

1.1

2.1

1.2

2.2

3

4.1

4.2 1

2.1

4.1

3.1

2.2

3.2

4.2

CENTRO DETRANSACCIÓN

Camino de acción 3

Camino de acción 2

Camino de acción 1

Análisis de TransacciónAnálisis de Transformación

Desarrollo de Sw EstructuradoDiseño

Page 262: Ingeniería de Software

10

19/57Angélica Caro Ingeniería Civil Informática UBB 2009

Análisis de TransformaciónConjunto de pasos de diseño que permite a un DFD obtenido en la fase de análisis, con características de flujo de transformación, convertirse en una estructura predefinida del sistema.Pasos:

1. Revisión del modelo fundamental del sistema: Debe haberse aplicado análisis estructurado (DFD)Hay que tener 3 niveles de profundidad.

2. Determinar si el DFD tiene características de Transformación o de Transacción: La mayoría de flujos se representan como transformaciones. Si existe un proceso con salidas exclusivas entonces se trata de un problema de transacción. A veces estos procesos están ocultos (no vienen reflejados en el DFD pero si en la ERS)

Desarrollo de Sw EstructuradoDiseño

20/57Angélica Caro Ingeniería Civil Informática UBB 2009

Entrada Salida

Transformación

Cm

Ce Ct Cs

1.1

2.1

1.2

2.2

3

4.1

4.2

3. Aislar el Centro de Transformación: Es la parte del DFD que contiene las funciones esenciales del sistemaLos límites están abiertos a interpretación (diseñador)

4. Realizar el Primer Corte del DE:Cm Módulo Principal CoordinadorCe Módulo Controlador del Procesamiento de la Información de Entrada al sistemaCt Módulo Controlador del Centro de Transformación (operaciones sobre datos)Cs Módulo Controlador del Procesamiento de la Información de Salida del Sistema

Desarrollo de Sw EstructuradoDiseño

Page 263: Ingeniería de Software

11

21/57Angélica Caro Ingeniería Civil Informática UBB 2009

5. Ejecución del 2º Nivel de Factorización: Conversión de las transformaciones individuales de un DFD en los módulos correspondientes del DE.Se empieza en los límites y se dirige hacia fuera.Las transformaciones se convierten en módulos.Es necesario introducir módulos predefinidos que proporcionen las diferentes E/S que necesita/genera el sistema.

Entrada Salida

Transformación

Cm

Ce Ct Cs1.1

2.1

1.2

2.2

34.1

4.2

1.2 2.2

2.11.1

3 4.1

4.2

escribir zleer a leer b

a

b z

Desarrollo de Sw EstructuradoDiseño

22/57Angélica Caro Ingeniería Civil Informática UBB 2009

6. Refinar la Estructura del Sistema utilizando medidas y guías de diseño:

Se pueden aumentar/disminuir el nº de módulos para producir una factorización lógica:

Buena calidad, fácil de implementar/probar/mantener.Refinamientos basados en consideraciones prácticas, sentido común y requisitos del software.

Típicos reducir el nº de niveles del DE.Reflejar los parámetros:

datos=flujos de información del DFDflags=se obtienen de las descripciones de procesos

El acceso a los almacenes debe reflejarse en el DE (módulos predefinidos)

7. Asegurarse del Trabajo Realizado por el Diseño ObtenidoFuncionalidad CorrectaComprobación del orden de ejecución

Desarrollo de Sw EstructuradoDiseño

Page 264: Ingeniería de Software

12

23/57Angélica Caro Ingeniería Civil Informática UBB 2009

En muchas aplicaciones un dato determina caminos alternativospor los que transita el flujo de información:

El centro del flujo se llama centro de transacciónEn un flujo orientado a transacción, el flujo de información a lo largo de un camino de acción puede ser de transformación o de transacción

Pasos:1. Revisión del modelo fundamental del sistema: 2. Determinar si el DFD tiene características de Transformación o de

Transacción:

1

2.1

4.1

3.1

2.2

3.2

4.2

CENTRO DETRANSACCIÓN

Camino de acción 3

Camino de acción 2

Camino de acción 1

Desarrollo de Sw EstructuradoDiseño

24/57Angélica Caro Ingeniería Civil Informática UBB 2009

3. Identificar el Centro de Transacción y las características:

La posición puede descubrirse inmediatamente a partir del DFD

El centro está ligado al origen de varios caminos radiales.

A veces el proceso correspondiente a la transacción no se refleja en el DFD

Hay que conocer el sistema para detectar si hay entradas exclusivas entre sí

Aislar los caminos de llegada y de acciónCada camino de acción debe evaluarse en función de si son de transformación o transacción

Camino 3

A

D

R

P

Q

Camino 1Camino 2

a

z

b

Desarrollo de Sw EstructuradoDiseño

Page 265: Ingeniería de Software

13

25/57Angélica Caro Ingeniería Civil Informática UBB 2009

4. Realizar el 1º Corte del DE:Convertir el flujo de transacción en una estructura de sistema con una bifurcación de entrada y una bifurcación de salida

B. Entrada Igual que en análisis de transformación. B. Salida Se añade un módulo controlador por cada camino de flujo de acción.

El módulo del centro de transacción refleja la exclusividad (rombo)

Camino 3

Cm

Ce D

C1 C2 C3

A

D

R

P

Q

Camino 1Camino 2

a

z

b

Desarrollo de Sw EstructuradoDiseño

26/57Angélica Caro Ingeniería Civil Informática UBB 2009

5. Realizar el 2º Nivel de Factorización:Se desarrolla cada camino de acción dependiendo de su tipo de flujoEl camino 1 sigue un flujo de transformación

AD

R

PQ

Camino 1Camino 3

Camino 2

Cm

Ce D

C1 C2 C3

P Q R

A

a

Leeraz

b

Leerb Escribirz6. Refinar la Estructura del Programa7. Asegurarse del Trabajo Realizado por el Diseño obtenido

Desarrollo de Sw EstructuradoDiseño

Page 266: Ingeniería de Software

14

27/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoDiseño

Diagrama de EstructuraTabla de InterfazEstrategias de Diseño

Análisis de TransformaciónAnálisis de Transacción

Atributos de la Calidad de un DiseñoAcoplamientoCohesión

28/57Angélica Caro Ingeniería Civil Informática UBB 2009

Atributos de Calidad del DiseñoAcoplamiento:

Grado de Independencia entre los MódulosObjetivo: Minimizar el AcoplamientoVentajas Bajo Acoplamiento:

A menor número de conexiones entre dos módulos, menos riesgo de que un defecto en un módulo afecte al otro.Los cambios realizados en un módulo afectarían lo menos posible a otros módulosMayor facilidad de mantenimiento

No es necesario conocer los detalles internos de otros módulos

Cohesión:Relación existente entre los elementos de un mismo móduloObjetivo: Maximizar la CohesiónIdealmente un módulo sólo debe hacer una única tarea (alta cohesión)La cohesión influye en un menor coste al programar y en una mayor calidad en el sistema

Desarrollo de Sw EstructuradoDiseño

Page 267: Ingeniería de Software

15

29/57Angélica Caro Ingeniería Civil Informática UBB 2009

Escala de Acoplamiento:

NORMAL MEJOR

- de datos

- por estampado

- de control

EXTERNO

COMÚN

POR CONTENIDO PEOR

Desarrollo de Sw EstructuradoDiseño

30/57Angélica Caro Ingeniería Civil Informática UBB 2009

Acoplamiento Normal:A invoca a BB retorna el control a ANo existe paso de parámetros

A

B

Desarrollo de Sw EstructuradoDiseño

Page 268: Ingeniería de Software

16

31/57Angélica Caro Ingeniería Civil Informática UBB 2009

Acoplamiento de Datos:Comunicación mediante Parámetros de Datos

Unidades Elementales DatosEvitar pasar parámetros no necesarios

OBTENERDNI

CLIENTE

LEERDNI

CLIENTE

DNICLIENTE

Desarrollo de Sw EstructuradoDiseño

32/57Angélica Caro Ingeniería Civil Informática UBB 2009

Acoplamiento por Estampado:

Hacen referencia a la misma Estructura de Datos (local)

Se necesita el DNI y se pasan todos los datos del Cliente

OBTENERDNI

CLIENTE

LEERCLIENTE

CLIENTE

Desarrollo de Sw EstructuradoDiseño

Page 269: Ingeniería de Software

17

33/57Angélica Caro Ingeniería Civil Informática UBB 2009

Acoplamiento de Control:Un módulo pasa a otro elementos de control (flags, código de función, etc.)Un módulo controla a otroAconsejable dividir el módulo llamado en varios

OBTENERDATOS

CLIENTE

LEERCLIENTE

CLIENTE TIPO DATO

Desarrollo de Sw EstructuradoDiseño

34/57Angélica Caro Ingeniería Civil Informática UBB 2009

Acoplamiento Externo:Dos módulos tienen acoplamiento externo si ambos hacen referencia a una variable global, pero las referencias entre módulos consisten en registros individuales de datos y no en la estructura global de datos.Una modificación en módulos con este acoplamiento requiere revisar todo el sistemaSe produce cuando se tiene una variable global a la que puede acceder más de un módulo

Desarrollo de Sw EstructuradoDiseño

Page 270: Ingeniería de Software

18

35/57Angélica Caro Ingeniería Civil Informática UBB 2009

Acoplamiento Común (Global):

Un grupo de módulos están acoplados comúnmente cuando comparten una estructura global de datos (entorno común)Se produce cuando se define como global una Estructura de Datos a la que puede acceder más de un módulo

Desarrollo de Sw EstructuradoDiseño

36/57Angélica Caro Ingeniería Civil Informática UBB 2009

Acoplamiento por Contenido:

Dos módulos presentan acoplamiento por contenido si uno hace una referencia al interior del otroInaceptable (patológico) Hay que evitarlo a toda costaTipos de Referencias Internas:

Un módulo modifica algún elemento en el otro módulo.Un módulo utiliza una variable local del otro.Desde un módulo se salta a otro pero la sentencia a la que se pasa no está definida como punto de entrada.Dos módulos comparten los mismos contenidos.

Los Lenguajes de Alto Nivel evitan este tipo de acoplamiento

Posible en lenguaje Ensamblador

Desarrollo de Sw EstructuradoDiseño

Page 271: Ingeniería de Software

19

37/57Angélica Caro Ingeniería Civil Informática UBB 2009

Escala de Cohesión:

Mayor Cohesión

módulo como caja negraFUNCIONALSECUENCIALCOMUNICACIONALPROCEDURALTEMPORALLÓGICACOINCIDENTAL módulo transparente

Menor Cohesión

Desarrollo de Sw EstructuradoDiseño

38/57Angélica Caro Ingeniería Civil Informática UBB 2009

Cohesión Funcional:Todos los elementos que componen el módulo están relacionados en el desarrollo de una única función

Para reutilizar un módulo no es necesario en absoluto conocer los detalles internos

Ejemplo: Función Matemática, Escribir un Registro, etc..

Cohesión Secuencial:El módulo representa el empaquetamiento físico de varios módulos con cohesión funcional (dentro del módulo, la salida de un submódulo es la entrada del siguiente – orden predefinido)Varios módulos con cohesión funcional trabajan sobre la misma estructura de datos, pero han de existir tantos puntos de entrada como número de funciones realice dicho módulo

Desarrollo de Sw EstructuradoDiseño

Page 272: Ingeniería de Software

20

39/57Angélica Caro Ingeniería Civil Informática UBB 2009

Cohesión Comunicacional:Un módulo con cohesión comunicacional es aquel cuyos elementos o actividades utilizan los mismos datos de entrada y salida.

Los módulos con cohesión comunicacional y los que tienen cohesión secuencial parecen similares, ya que contienen actividades organizadas en torno a los datos del problema

Diferencia:Secuencial Orden EspecíficoComunicacional El orden no es importante

Desarrollo de Sw EstructuradoDiseño

40/57Angélica Caro Ingeniería Civil Informática UBB 2009

Cohesión Procedimental:Este tipo de cohesión se da cuando el módulo tiene una serie de elementos (funciones) relacionados por un procedimiento efectuado por el código

Cohesión Temporal:Un módulo con cohesión temporal es aquel cuyos elementos están implicados en actividades que están relacionadas en el tiempo

Desarrollo de Sw EstructuradoDiseño

Page 273: Ingeniería de Software

21

41/57Angélica Caro Ingeniería Civil Informática UBB 2009

Cohesión Lógica:Un módulo tiene cohesión lógica cuando existe alguna relación entre los elementos del módulo, y en algunos casos puede dar lugar a confusiones por no estar bien definidas las fronteras entre los diferentes elementos del módulo

Cohesión Coincidental:Se dice que en un módulo existe cohesión coincidental cuando entre los elementos que lo componen no existe ninguna relación con sentido.No hay relación entre los elementos del módulo ni mediante flujos de datos ni de control

Desarrollo de Sw EstructuradoDiseño

42/57Angélica Caro Ingeniería Civil Informática UBB 2009

Unidad 3: Métodos para la Ingeniería de Sw

Ingeniería de requisitosAnálisisDiseño ArquitectónicoDiseño detalladoPrueba de software

Desarrollo de Software

Estructurado

Page 274: Ingeniería de Software

22

43/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoDiseño-Pruebas

Enfoques de Diseño de PruebasEnfoque Estructural (Caja blanca)Enfoque Funcional (Caja negra)Pruebas AleatoriasEstrategia de Aplicación de las Pruebas

Pruebas de UnidadPruebas de IntegraciónPruebas de Sistema Pruebas de Aceptación

44/57Angélica Caro Ingeniería Civil Informática UBB 2009

Activid.1

Activid.2 …......... PruebasActiv.

N-1

Ciclo de vida software

Controles

….........

Pretenden una evaluación de la calidad de los

productos generados

Todo Sistema debe haber sido probado exhaustivamente a través de una ejecución controlada antes de ser

entregado al cliente

Cuando ya dispongamos del código ejecutable de la aplicación

Explotación / Mantenimiento

Desarrollo de Sw EstructuradoDiseño-Pruebas

Page 275: Ingeniería de Software

23

45/57Angélica Caro Ingeniería Civil Informática UBB 2009

Defecto (calidad)

Sistema de gestión de aeropuerto

Fallo (fiabilidad)

¡Xyx//???

S.Aproximación

Accidente(seguridad)

2 + 2 = 5

ErrorEquivocacióndel programador

Relación entre Error, Defecto y Fallo:

Error Defecto Fallo Efectos negativos(del programador) (en el software) (el sistema no se (dependiendo de la

comporta como debería) criticidad del sistema)

Se Plasma Da lugar a Que provoca

Desarrollo de Sw EstructuradoDiseño-Pruebas

46/57Angélica Caro Ingeniería Civil Informática UBB 2009

Técnicas de Diseño de Pruebas:Imposibilidad de Prueba Exhaustiva del Software

Se deben seguir determinados criterios para seleccionar los casos de prueba

Objetivo Técnicas Diseño de Pruebas:Garantizar con el mayor grado de confianza posible en que se detectarán los defectos del softwareEquilibro entre Recursos y Garantía para descubrir los defectos existentes

Desarrollo de Sw EstructuradoDiseño-Pruebas

Page 276: Ingeniería de Software

24

47/57Angélica Caro Ingeniería Civil Informática UBB 2009

Enfoques principales para el diseño de casos:

1. El enfoque estructural o de caja blanca

2. El enfoque funcional o de caja negra

Caja blanca

Entrada Salida

3. El enfoque aleatorio consiste en utilizar modelos (en muchas ocasiones estadísticos) que representen las posibles entradas al programa para crear a partir de ellos los casos de prueba

Caja negra

Entrada Salida

Funciones

Desarrollo de Sw EstructuradoDiseño-Pruebas

48/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoDiseño-Pruebas

Enfoques de Diseño de PruebasEnfoque Estructural (Caja blanca)Enfoque Funcional (Caja negra)Pruebas AleatoriasEstrategia de Aplicación de las Pruebas

Pruebas de UnidadPruebas de IntegraciónPruebas de Sistema Pruebas de Aceptación

Page 277: Ingeniería de Software

25

49/57Angélica Caro Ingeniería Civil Informática UBB 2009

Enfoque EstructuralUsa la estructura de control del diseño procedimental para obtener los casos de pruebaPara la representación del flujo de control se utilizan Grafos de Flujo

x

x

x

Secuencia Si x entonces...(If x then...else...)

Mientras x hacer...(While x do...)

Hacer... hasta x(Do...until x)

Estructuras Básicas de Programa

Desarrollo de Sw EstructuradoDiseño-Pruebas

50/57Angélica Caro Ingeniería Civil Informática UBB 2009

1

7a 7b

12,13

2

3

4

5

6

Abrir archivos;

Leer archivo ventas, al final indicar no más registros;

Limpiar línea de impresión;

WHILE (haya registros ventas) DO

Total nacional = 0;

Total extranjero = 0;

WHILE (haya reg. ventas) y (mismo producto)

IF (nacional) THEN

Sumar venta nacional a total nacional

ELSE

Sumar venta extranjero a total extranjero

ENDIF;

Leer archivo ventas, al final indicar no más registros;

ENDWHILE;

Escribir línea de listado;

Limpiar área de impresión;

ENDWHILE;

Cerrar archivos.10,11

8,9

Enfoque EstructuralGrafo de Flujo de un Programa (Pseudocódigo) El diseño de casos

de prueba tiene que estar basado en la elección de caminos importantes que ofrezcan una seguridad aceptable de que se descubren defectos (un programa de 50 líneas con 25 sentencias ifanidadas en serie da lugar a 33.3 millones de secuencias posibles).

Desarrollo de Sw EstructuradoDiseño-Pruebas

Page 278: Ingeniería de Software

26

51/57Angélica Caro Ingeniería Civil Informática UBB 2009

Criterios de Cobertura:Cobertura de sentencias. Se trata de generar los casos de prueba necesarios para que cada sentencia o instrucción del programa se ejecute al menos una vez.Cobertura de decisiones. Se debe escribir casos suficientes para que cada decisión tenga, por lo menos una vez, un resultado verdadero y, al menos una vez, uno falso.Cobertura de condiciones. Se trata de diseñar tantos casos como sea necesario para que cada condición de cada decisión adopte el valor verdadero al menos una vez y el falso al menos una vez. NO incluye la cobertura de decisiones.Criterio de decisión/condición. Consiste en exigir el criterio de cobertura de condiciones obligando a que se cumpla también el criterio de decisiones.Criterio de condición múltiple. En el caso de que se considere que la evaluación de las condiciones de cada decisión no se realiza de forma simultánea.

(a=1) and (c=4)

then

else

then

else

(a=1) (c=4)Descomposición de una Decisión Multicondicional

Desarrollo de Sw EstructuradoDiseño-Pruebas

52/57Angélica Caro Ingeniería Civil Informática UBB 2009

Complejidad Ciclomática (McCabe):

Métrica del Software de la complejidad lógica de un programa que proporciona:

Número de caminos independientes que existen en un grafo de flujoMínimo número de casos de prueba necesarios para satisfacer criterio Decisiones

Formas alternativas de cálculo a partir de un Grafo de Flujo:1. V (G) = a - n + 2, siendo a el número de arcos o aristas del grafo y n el

número de nodos2. V (G) = r, siendo r el número de regiones cerradas del grafo.3. V(G) = c + 1, siendo c el número de nodos de condición.

Desarrollo de Sw EstructuradoDiseño-Pruebas

Page 279: Ingeniería de Software

27

53/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoDiseño-Pruebas

Enfoques de Diseño de PruebasEnfoque Estructural (Caja blanca)Enfoque Funcional (Caja negra)Pruebas AleatoriasEstrategia de Aplicación de las Pruebas

Pruebas de UnidadPruebas de IntegraciónPruebas de Sistema Pruebas de Aceptación

54/57Angélica Caro Ingeniería Civil Informática UBB 2009

Pruebas centradas en los requisitos funcionales del softwareUn Caso de Prueba bien elegido es el que:

Cubre un conjunto extenso de otros casos posiblesNos indica algo acerca de la ausencia o la presencia de defectos en el conjunto específico de entradas que prueba, así como de otros conjuntos similares

Reduce el número de otros casos necesarios para que la prueba sea razonable

Implica que el caso ejecute el máximo número de posibilidades de entrada diferentes para así reducir el total de casos

Técnicas de Pruebas de Caja Negra:Particiones o Clases de EquivalenciaAnálisis de Valores Límite Conjetura de Errores

Desarrollo de Sw EstructuradoDiseño-Pruebas

Page 280: Ingeniería de Software

28

55/57Angélica Caro Ingeniería Civil Informática UBB 2009

Particiones o Clases de Equivalencia:

Método que divide el campo de entrada de un programa en clases de datos de los que se pueden derivar casos de prueba.Cada caso debe cubrir el máximo número de entradasDebe tratarse el dominio de valores de entrada dividido en un número finito de clases de equivalencia que cumplan la siguiente propiedad:

La prueba de un valor representativo de una clase permite suponer «razonablemente» que el resultado obtenido (existan defectos o no) será el mismo que el obtenido probando cualquier otro valor de la clase.

Desarrollo de Sw EstructuradoDiseño-Pruebas

56/57Angélica Caro Ingeniería Civil Informática UBB 2009

Análisis de Valores Límite:Complementa a la técnica de Particiones o Clases de Equivalencia

Diferencias:En lugar de seleccionar «cualquier» elemento como representativo de una clase de equivalencia, se requiere la selección de uno o más elementos tal que los márgenes se sometan a prueba

Más que concentrarse únicamente en el dominio de entrada (condiciones de entrada), los casos de prueba se generan considerando también el espacio de salida

Desarrollo de Sw EstructuradoDiseño-Pruebas

Page 281: Ingeniería de Software

29

57/57Angélica Caro Ingeniería Civil Informática UBB 2009

Conjetura de Errores:El valor cero es una situación propensa a error tanto en la salida como en la entradaEn situaciones en las que se introduce un número variable de valores, conviene centrarse en el caso de no introducir ningún valor y en el de un solo valor. También puede ser interesante una lista que tiene todos los valores igualesEs recomendable imaginar que el programador pudiera haber interpretado algo mal en la especificaciónTambién interesa imaginar lo que el usuario puede introducir como entrada a un programa

Desarrollo de Sw EstructuradoDiseño-Pruebas

58/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoDiseño-Pruebas

Enfoques de Diseño de PruebasEnfoque Estructural (Caja blanca)Enfoque Funcional (Caja negra)Pruebas AleatoriasEstrategia de Aplicación de las Pruebas

Pruebas de UnidadPruebas de IntegraciónPruebas de Sistema Pruebas de Aceptación

Page 282: Ingeniería de Software

30

59/57Angélica Caro Ingeniería Civil Informática UBB 2009

En las pruebas aleatorias simulamos la entrada habitual del programa creando datos de entradaen la secuencia y con la frecuencia con las que podrían aparecer en la práctica

Desarrollo de Sw EstructuradoDiseño-Pruebas

60/57Angélica Caro Ingeniería Civil Informática UBB 2009

Desarrollo de Sw EstructuradoDiseño-Pruebas

Enfoques de Diseño de PruebasEnfoque Estructural (Caja blanca)Enfoque Funcional (Caja negra)Pruebas AleatoriasEstrategia de Aplicación de las Pruebas

Pruebas de UnidadPruebas de IntegraciónPruebas de Sistema Pruebas de Aceptación

Page 283: Ingeniería de Software

31

61/57Angélica Caro Ingeniería Civil Informática UBB 2009

Estrategias de Aplicación de PruebasSe comienza en la prueba de cada módulo, que normalmente la realiza el propio personal de desarrollo en su entorno Prueba de Unidad

Con el esquema del diseño del software, los módulos probados seintegran para comprobar sus interfaces en el trabajo conjunto Prueba de Integración

El software totalmente ensamblado se prueba como un conjuntopara comprobar si cumple o no tanto los requisitos funcionales como los requisitos de rendimiento, seguridad, etc. Prueba Funcional

Desarrollo de Sw EstructuradoDiseño-Pruebas

62/57Angélica Caro Ingeniería Civil Informática UBB 2009

Estrategias de Aplicación de PruebasEl software ya validado se integra con el resto del sistema (porejemplo, elementos mecánicos, interfaces electrónicas, etc.) para probar su funcionamiento conjunto Prueba del Sistema

El producto final se pasa a la prueba de aceptación para que el usuario compruebe en su propio entorno de explotación si lo acepta como está o no Prueba de Aceptación

Desarrollo de Sw EstructuradoDiseño-Pruebas

Page 284: Ingeniería de Software

32

63/57Angélica Caro Ingeniería Civil Informática UBB 2009

Pressman Roger . 2005. “Ingeniería del Software, un enfoque práctico”. Editorial McGraw Hill. 6ta edición.

PFLEEGER, S. L. 2002. Ingeniería de software, teoría y práctica. Pearson Education. 1ra Edición.

SOMMERVILLE, I. 2002. Ingeniería de software. Editorial Pearson Educación, 6ta edición.

Bibliografía

Page 285: Ingeniería de Software

1

Ingeniería de Software

Mª Angélica Caro Gutiérrezhttp://www.face.ubiobio.cl/~mcaro/

[email protected]

Departamento deCiencias de la Computación y Tecnologías de Información

Universidad del Bío-BíoSede Chillán

Ingeniería Civil Informática UBB 2009

2/57Angélica Caro Ingeniería Civil Informática UBB 2009

Reflexiones acerca del futuro de la Ing. de Software

Ing. de Software afectada por el cambio

I. de Sw

Limitaciones de los primeros modelos

Tiempo de puesta en el mercado

Conectividad de red, Internet

Personas con nuevas necesidades

Computación de escritorio, personal

Cambios en la economía

Interfaz de usuario

Tecnología de objetos

Nuevas Tecnologías

Page 286: Ingeniería de Software

2

3/57Angélica Caro Ingeniería Civil Informática UBB 2009

Wasserman afirma que hay 8 principios básicos sobre los que se sustenta la Ingeniería del software:

AbstracciónMétodos y Notaciones de análisis y DiseñoPrototipado de la Interfaz de UsuarioArquitectura del SoftwareEl proceso del Software ReutilizaciónMedidasHerramientas y ambientes integrados

Reflexiones acerca del futuro de la Ing. de Software

4/57Angélica Caro Ingeniería Civil Informática UBB 2009

Responsabilidad de la Ingeniería del Software: Código de ética y práctica profesional para los ingerierosde Sw (ACM/IEEE-CS)

PúblicoClientes y EmpleadoresProductoJuicioGestiónProfesiónColegasCompromiso Personal

Reflexiones acerca del futuro de la Ing. de Software

Page 287: Ingeniería de Software

3

5/57Angélica Caro Ingeniería Civil Informática UBB 2009

Responsabilidad de la Ingeniería del Software: Nunca Robar datos para beneficio personalNunca vender o distribuir información patentada que haya obtenido como parte de su trabajoNunca destruir o modificar maliciosamente los programas, archivos o datos de otra persona.Nunca violar la privacidad de un individuo, grupo u organizaciónNunca atacar un sistema por deporte o beneficioNunca crear o difundir un virus o gusano en una computadoraNunca usar la tecnología de computación para facilitar la discriminación o el hostigamiento.

Reflexiones acerca del futuro de la Ing. de Software