• No se han encontrado resultados

Procesos para la Ingeniería de Software. Facultad de Estadística e Informática

N/A
N/A
Protected

Academic year: 2021

Share "Procesos para la Ingeniería de Software. Facultad de Estadística e Informática"

Copied!
71
0
0

Texto completo

(1)

Procesos para la

(2)

Procesos para la Ingeniería de

Software

(3)

Agenda

I. Introducción a los procesos de Ingeniería de Software

II. Estructura del proceso de software

◦ Actividades sombrilla

▪ Seguimiento y Control del proyecto de software.

▪ Administración del riesgo.

▪ Administración de la reutilización.

▪ Preparación y producción del producto del trabajo.

▪ Administración de la configuración del software.

▪ Medición.

▪ Revisiones técnicas.

(4)

Introducción

Proceso.

Un proceso define: quién hace qué, cuándo y cómo para alcanzar el objetivo. (Jacobson).

Conjunto de actividades, acciones y tareas que se ejecutan cuando va a crearse un producto del trabajo.

(5)

Introducción

Actividad. Busca lograr un objetivo amplio (comunicación entre

participantes) y se desarrollar sin importar el dominio de la aplicación, tamaño del proyecto, complejidad del esfuerzo.

Acción. Conjunto de tareas que producen un producto importante de

trabajo (modelo del diseño de la arquitectura).

Tarea. Se centra en un objetivo pequeño pero bien definido (prueba

(6)

Introducción

Software. Conjunto de programas,

documentos asociados y la

configuración de datos que se

necesitan para hacer que estos

programas funcionen de manera

correcta (Sommerville).

(7)

Introducción

El proceso que se lleva a cabo para construir,

entregar y mantener un producto de software,

desde la concepción de una idea hasta la

entrega, y el retiro del sistema es llamado

Proceso de Producción de Software

En IS el proceso no es una prescripción rígida de cómo

elaborar software, es un enfoque adaptable.

(8)

Introducción

El propósito del Desarrollo y

Mantenimiento de Software es la

realización sistemática de las

actividades de análisis, diseño,

construcción, integración y pruebas de

productos de software nuevos o

modificados cumpliendo con los

requerimientos especificados.

(9)

Introducción

Objetivo de los procesos de producción de software:

Satisfacer las expectativas del cliente entregando

productos de calidad en tiempo y con un presupuesto

determinado.

Realizando productos rentables, de confianza,

previsibles y eficientes.

(10)

Introducción

Beneficios de un proceso de producción de software bien

(11)

Introducción

Definiendo un modelo de proceso de producción de software

obtenemos los beneficios de los procesos estandarizados, sin

embargo recordemos que:

El proceso de producción de software es en gran medida una

actividad intelectual difícil de automatizar.

El software es caracterizado por ser altamente inestable: los

requerimientos cambian continuamente y como consecuencia,

los productos son evolucionables.

(12)

Estructura del proceso

de software

Actividades Sombrilla

C OMUNICACIÓN PLAN EA CIÓ N MODELADO C ON STRUCCIÓN DE SPLI EGU E -Seguimiento y control -Administración del riesgo

-Administración de la reutilización

(13)

1.1 Conceptos básicos

Proyecto:

(14)

Actividades Sombrilla en

el proceso de

(15)

Estructura del proceso de software

Actividades sombrilla:

Se aplican a todo lo largo del proyecto de software.

Ayudan al equipo que lo lleva a cabo a administrar y controlar el

avance, la calidad, el cambio y el riesgo.

(16)

Estructura del proceso de software

Actividades sombrilla:

1.

Preparación y producción del producto del trabajo.

2.

Seguimiento y Control del proyecto de software.

3.

Administración del riesgo.

4.

Administración de la reutilización.

5.

Administración de la configuración del software.

6.

Medición.

7.

Revisiones técnicas.

(17)

Estructura del proceso de software

Actividades sombrilla:

Preparación y producción del producto del trabajo.

Agrupa las actividades requeridas para crear los productos

necesarios del trabajo tales como: modelos, documentos,

registros, formatos, y listas.

(18)

Estructura del proceso de software

Actividades sombrilla:

(19)

Estructura del proceso de software

“El seguimiento es el proceso sistemático en virtud

del cual se recopila y se analiza información con el

objeto de comparar los avances logrados en función

de los planes formulados

y corroborar el cumplimento

(20)

Estructura del proceso de software

“Ayuda a identificar tendencias y patrones, a adaptar

las estrategias y a fundamentar las decisiones

(21)

Estructura del proceso de software

¿Qué se requiere para llevar a cabo un seguimiento del avance de

equipo de desarrollo de software?

Una calendarización adecuada, que debe considerar los siguientes puntos:

i. Todas las tareas deben aparecer en la red.

ii. El esfuerzo y la calendarización deben ser asignados de manera inteligente a cada tarea.

iii. Las interdependencias entre tareas deben ser indicadas de manera adecuada.

(22)

Estructura del proceso de software

¿Qué se requiere para llevar a cabo un seguimiento del avance de

equipo de desarrollo de software?

Una calendarización adecuada, que debe considerar los siguientes puntos:

i. Deben asignarse los recursos para el trabajo que se va a realizar.

ii. Deben establecerse hitos espaciados de modo que pueda darse seguimiento al progreso. Hitos: Puntos finales de una actividad del proceso de software.

iii. Debe permitir identificar las tareas cruciales dentro de la red para monitorear su progreso y ser capaces de reconocer demoras

(23)

Estructura del proceso de software

El seguimiento puede lograrse en varias formas diferentes:

Realizar reuniones periódicas del estado del proyecto, en las que

cada miembro del equipo reporte avances y problemas.

▪Determinar si los hitos formales del proyecto se lograron en la fecha prevista.

(24)

Estructura del proceso de software

El seguimiento puede lograrse en varias formas diferentes:

Reunirse informalmente con los profesionales para obtener su

valoración subjetiva del avance a la fecha y los problemas en el horizonte

▪Usar análisis de valor ganado para valorar cuantitativamente el avance

(25)

Estructura del proceso de software

Actividades sombrilla:

(26)

Estructura del proceso de software

¿Que son los riesgos?

Se puede concebir un riesgo como la probabilidad de que una circunstancia adversa ocurra.

Los riesgos son una amenaza para el proyecto, para el software que se está desarrollando y para la organización.

(27)

1.1 Conceptos básicos

Gestión de riesgos. Una tarea importante del gestor de

proyectos es anticipar los riesgos.

Riesgos del Proyecto • Calendarización • Recursos Riesgos del Producto • Calidad • Rendimiento del producto Riesgos del negocio • Organización que desarrolla

(28)

Estructura del proceso de software

Categorías de riesgos

1. Riesgos del proyecto. Éstos afectan la calendarización o los recursos del proyecto. Un ejemplo podría ser la pérdida de un diseñador experimentado. 2. Riesgos del producto. Éstos afectan a la calidad o al rendimiento del software que se está desarrollando. Un ejemplo podría ser que el rendimiento en un

componente que se ha comprado sea menor que el esperado.

3. Riesgos del negocio. Estos afectan a la organización que desarrolla o

suministra el software. Por ejemplo, que un competidor introduzca un nuevo producto es un riesgo de negocio.

(29)

Estructura del proceso de software

Planes de contingencia.

1. Identificación de riesgos. Identificar los posibles riesgos para el proyecto, el producto y los negocios.

2. Análisis de riesgos. Valorar las probabilidades y consecuencias de estos riesgos.

3. Planificación de riesgos. Crear planes para abordar los riesgos, ya sea para evitarlos o minimizar sus efectos en el proyecto.

4. Supervisión de riesgos. Valorar los riesgos de forma constante y revisar los planes para la mitigación de riesgos tan pronto como la

(30)

Estructura del proceso de software

Técnicas de manejo de riesgo

▪ Consiste en definir la mejor manera

de tratar el riesgo identificados y

analizados en las etapas anteriores y establecer acciones factibles y

(31)

Estructura del proceso de software

Actividades sombrilla:

(32)

Estructura del proceso de software

Actividades sombrilla:

Administración de la reutilización.

Define criterios para volver a usar el producto (o

componentes) y establece mecanismos para obtener

componentes reutilizables.

(33)

Estructura del proceso de software

Beneficios de la reutilización:

o

Incremento de la confiabilidad

o

Reducción del riesgo del proceso

o

Uso efectivo de especialistas

o

Cumplimiento de estándares

o

Desarrollo acelerado

(34)

Estructura del proceso de software

Actividades sombrilla:

(35)

Estructura del proceso de software

El arte de coordinar el desarrollo de software para

minimizar [...] la confusión se llama administración de la

configuración, que es el arte de identificar, organizar y

controlar las modificaciones que se hacen al software que

construirá un equipo de programación. La meta es

maximizar la productividad al minimizar los errores.

(36)

Estructura del proceso de software

¿Cuándo surge la confusión?

Los cambios no se analizan antes de que se realicen.

Los cambios no se registran antes de que se implanten.

Los cambios no se reportan a quienes tienen necesidad de conocerlos

Los cambios no se controlan en forma que mejore la calidad y se reduzca el error.

(37)

Estructura del proceso de software

¿Qué es la configuración del software?

▪Son los ítems (elementos) que comprenden toda la información producida como parte del proceso de software.

Un Item de Configuración del Software (ICS) es todo o parte de un

producto de trabajo (por ejemplo, un documento, toda una suite de casos de prueba o un componente de programa).

(38)

Estructura del proceso de software

La administración de la configuración del software (ACS) es

una actividad sombrilla.

1)

Identificar el cambio

2)

Controlar el cambio

3)

Garantizar que el cambio se implementó de manera

adecuada y

(39)

Estructura del proceso de software

“Es muy fácil que un torrente de cambios

descontrolados convierta en caos un proyecto de

software bien estructurado”

(40)

Estructura del proceso de software

Actividades sombrilla:

(41)

Estructura del proceso de software

Estimación

Calend ariza-ción Análisis de riesgos Planificaci ón de gestión de la calidad Planificaci ón de gestión del cambio

(42)

Estructura del proceso de software

(43)

Estructura del proceso de software

¿Cuánto esfuerzo se requiere

para completar una actividad?

¿Cuánto tiempo de calendario se

necesita para completar una

actividad?

(44)

Estructura del proceso de software

ESTIMACIÓN

Intento por determinar cuánto dinero, esfuerzo,

recursos y tiempo tomará construir un sistema o

producto específico basado en software

(45)

Estructura del proceso de software

Algunas estimaciones se realizan antes de la

planeación detallada:

▪ Cálculo del presupuesto del proyecto

▪ Establecimiento de costo de software para un cliente

Una vez iniciado el proyecto, los gestores deben actualizar

las estimaciones de tiempo y costo.

(46)

Estructura del proceso de software

Actividades sombrilla:

(47)

Estructura del proceso de software

▪Las revisiones del software son un “filtro” para el proceso del software.

▪Se aplican en varios puntos durante la ingeniería de software y

sirven para descubrir errores y defectos a fin de poder eliminarlos.

▪Errar es humano.

▪Algunas personas son buenas para detectar errores propios, sin embargo algunos pasan desapercibidos con más facilidad para

(48)

Estructura del proceso de software

▪Una revisión es una forma de utilizar la diversidad de un grupo para:

1. Resaltar las mejoras necesarias en el producto que elaboró una sola persona o equipo;

2. Confirme aquellas partes de un producto en las que no se desea o no se necesita hacer una mejora.

(49)

Estructura del proceso de software

▪¿Quién hace la revisión?

Los ingenieros de software realizan una revisión técnica, también llamada revisión de pares, con sus colegas.

(50)

Estructura del proceso de software

Revisión Técnica Formal (RTF)

¿Qué es?

Es una actividad del control de calidad del software

realizada por ingenieros de software (y otras personas).

(51)

Estructura del proceso de software

Revisión Técnica Formal (RTF)

¿Objetivos?

1. Descubrir los errores en funcionamiento, lógica o implementación de cualquier representación del software

2. Verificar que el software que se revisa cumple sus requerimientos

3. Garantizar que el software está representado de acuerdo con estándares predefinidos

(52)

Estructura del proceso de software

Actividades sombrilla:

(53)

Estructura del proceso de software

Aseguramiento de la calidad del software

Calidad

(Del lat. qualĭtas, -ātis, y este calco del gr. ποιότης).

1. f. Propiedad o conjunto de propiedades inherentes a algo, que permiten juzgar su valor.

2. f. Buena calidad, superioridad o excelencia.

3. f. Adecuación de un producto o servicio a las características especificadas. 4. f. Carácter, genio, índole.

(54)

Estructura del proceso de software

Aseguramiento de la calidad del software

Calidad en IS

“Concordancia con los requisitos funcionales y de rendimiento explícitamente establecidos, con los estándares de desarrollo explícitamente documentados, y con las características implícitas que se espera de todo software desarrollado profesionalmente”. [R.S.Pressman]

(55)

Estructura del proceso de software

Aseguramiento de la calidad del software

Calidad en IS

“Grado con el que un sistema, componente o proceso

cumple los requisitos especificados y las necesidades

del cliente o

usuario” [IEEE 610-1990]

(56)

Estructura del proceso de software

Aseguramiento de la calidad del software

Calidad en IS

“Conjunto de propiedades o características de un

producto o servicio que le confieren aptitud para

satisfacer unas necesidades expresadas o

implícitas”.

[ISO 8402]

(57)

Estructura del proceso de software

Aseguramiento de la calidad del software

En resumen. Calidad en IS

Consiste en las características del producto que

satisfacen las necesidades de los clientes y les

proporciona por tanto satisfacción con el producto.

(58)

Estructura del proceso de software

Aseguramiento de la calidad del software

Algunos desarrolladores de software todavía creen que la calidad del software es algo por lo que hay que empezar a preocuparse una vez generado el código.

(59)

Estructura del proceso de software

¿Cómo se determina que un sistema tiene mala

calidad?

o Sólo se requiere de tres a cuatro defectos por cada 1, 000 líneas de código para que un programa tenga mal desempeño.

o La mayoría de los programadores cometen un error en cada 10 líneas de código que escriben.

(60)

Estructura del proceso de software

Costos de la calidad

▪El costo promedio por corregir un defecto durante la codificación es aproximadamente de US$977 por error.

▪El promedio del costo por corregir el mismo error si se descubre durante las pruebas del sistema es de US$7, 136.

▪Según Cigital: una aplicación grande contiene 200 errores

(61)

Estructura del proceso de software

¿Cuáles son los pasos para lograr software de alta

calidad?

o

Usar procesos y prácticas probados de la ingeniería de

software

o

Administrar bien el proyecto

o

Realizar un control de calidad exhaustivo

o

Contar con infraestructura de aseguramiento de la

(62)

Estructura del proceso de software

▪Aseguramiento de la calidad del software

▪ Es una actividad sombrilla. Incluye:

▪ 1) Un proceso de Aseguramiento de la calidad del software (ACS),

▪ 2) Tareas específicas de aseguramiento y control de la calidad (incluidas revisiones técnicas y una estrategia de pruebas relacionadas entre sí)

▪ 3) Prácticas eficaces de ingeniería de software (métodos y herramientas)

▪ 4) Control de todos los productos del trabajo de software y de los cambios que sufren

▪ 5) Un procedimiento para garantizar el cumplimiento de los estándares del desarrollo de software (cuando sea aplicable)

(63)

Estructura del proceso de software

Aseguramiento de la calidad del software

▪Elementos:

Estándares.

▪Revisiones y auditorías

Pruebas.

▪Colección y análisis de los errores.

(64)

Estructura del proceso de software

Aseguramiento de la calidad del software

▪Elementos:

Educación/Capacitación.

▪Administración de los proveedores.

Administración de la seguridad. ▪Seguridad.

(65)

Estructura del proceso de software

▪Aseguramiento de la calidad del software

▪Tareas:

▪ Dos entidades diferentes ayudan a asegurar la calidad: los ingenieros de

software que hacen el trabajo técnico y un grupo de ACS.

▪ El grupo ACS tiene la responsabilidad de planear, supervisar, registrar, analizar y

hacer reportes acerca de la calidad.

▪ Los ingenieros de software abordan la calidad (y ejecutan actividades para

controlarla), aplicando métodos y medidas técnicas sólidos, realizando revisiones técnicas y haciendo pruebas de software bien planeadas.

(66)

Estructura del proceso de software

▪Aseguramiento de la calidad del software. El grupo ACS:

1. Prepara el plan de ACS para un proyecto.

2. Participa en el desarrollo de la descripción del software del proyecto.

3. Revisa las actividades de la ingeniería de software a fin de verificar el cumplimiento mediante el proceso definido para el software.

4. Audita los productos del trabajo de software designados para verificar que se cumpla con aquellos definidos como parte del proceso de software.

5. Registra toda falta de cumplimiento y la reporta a la alta dirección.

(67)

Estructura del proceso de software

Aseguramiento de la calidad del software

El plan ACS incluye:

Las evaluaciones que se van a realizar ▪Las auditorías y revisiones por efectuar

▪Los estándares aplicables al proyecto

▪Los procedimientos para reportar y dar seguimiento a los errores

▪Los productos del trabajo que genera el grupo de ACS y la retroalimentación que se dará al equipo del software.

(68)

Estructura del proceso de software

¿Cuál es el producto final?

Software que satisface las necesidades del consumidor, con

un desempeño apropiado y confiable, y que agrega valor

(69)

Actividad 1.

Elabora una infografía con los conceptos estudiados

en clase -Actividades Sombrilla del Proceso de

(70)

Bibliografía

Pressman, R.S., Ingeniería del Software. Un enfoque práctico, quinta edición, 2002, España. Sommerville I., Ingeniería de Software, Addison-Wesley, 6ª. Edición, 2002, México.

McConnell Steve, "Desarrollo y Gestión de proyectos informáticos", Ed. McGraw-Hill, 1997, España. Anaya Julio Juan. Logística integral: la gestión operativa de la empresa, 3ª edición. Madrid 2007. ESIC

(71)

Referencias

Documento similar

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

No había pasado un día desde mi solemne entrada cuando, para que el recuerdo me sirviera de advertencia, alguien se encargó de decirme que sobre aquellas losas habían rodado

García-Holgado, "Introducción a la Ingeniería del Software," Recursos docentes de la asignatura Ingeniería de Software I. Grado en

Ciaurriz quien, durante su primer arlo de estancia en Loyola 40 , catalogó sus fondos siguiendo la división previa a la que nos hemos referido; y si esta labor fue de

Debido a que este proyecto pertenece al polo de Bioinformática y es un estándar o paradigma del polo el desarrollo de software libre utilizando el sistema operativo Linux, además

Durante el proceso investigativo se llega a la conclusión de la posible solución mediante una herramienta que integre los procesos de Ingeniería y Gestión de Software, la

 Para recibir todos los números de referencia en un solo correo electrónico, es necesario que las solicitudes estén cumplimentadas y sean todos los datos válidos, incluido el

Este servicio es útil para los grupos y empresas desarrolladoras de software, ya que facilita la comunicación entre los clientes y la empresa e incrementa la calidad de los