34
1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

Embed Size (px)

Citation preview

Page 1: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

1

Para el desarrollo del software:

Métodos

Herramientas

Consideraciones Generales:

Ciclo de Vida del Software

Modelos

Análisis Requerimientos

Prototipaje

Page 2: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

2

Método del ciclo de vida clásico:

Actividades que son realizadas por el analista para desarrollar e implantar un sistema.

Método de desarrollo por análisis estructurado:

Incorpora elementos tanto de análisis como de diseño.

Especifica lo que se requiere que haga el sistema o la aplicación.

Permite que las personas observen los elementos lógicos (lo que hará el sistema) separados de los componentes físicos (computadora, terminales, sistemas de almacenamiento, etc.).

Desarrolla un diseño físico eficiente para la situación donde será utilizado.

Es un método para el análisis de sistemas manuales o automatizados, que conduce al desarrollo de especificaciones para sistemas nuevos o para efectuar modificaciones a los ya existentes.

Métodos para desarrollar software

Page 3: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

3

Métodos para desarrollar software

Método del desarrollo por prototipos:

Pueden desarrollarse con métodos y lenguajes de programación convencionales

Los informes no tienen un encabezados, logos, etc., faltan controles de entradas y procesamiento. Lo importante es el ensayo, y hallar los requerimientos.

Métodos de análisis orientado a objetos:

Es un método de análisis que examina los requerimientos desde la perspectiva de las clases y objetos

Se basa en conceptos como objetos y atributos, clases y miembros un todo y partes.

Page 4: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

4

Herramientas para desarrollar software

Las herramientas de desarrollo de software diseñan y construyen aplicaciones y dan soporte al desarrollo e implantación de las mismas. 

1.Calidad del Software

Herramientas que tratan todos los aspectos de la calidad de software: funcionalidad, fiabilidad y rendimiento.

2. Construcción y Diseño

Herramientas para la arquitectura y el modelado, el desarrollo dirigido por modelos, componentes, verificación de componentes, actividades de análisis de ejecución.

3. Gestión de cambios y configuración

Gestión del ciclo de vida de los activos, como la automatización de procesos, el control de cambios, el rastreo y los informes.

4. Gestión de proceso y portafolio

Herramientas integradas para gestionar requisitos, modelos y pruebas, implementar un proceso de desarrollo y progresos de informes y valoraciones.

5. Requisitos y análisis

Herramientas integradas para la gestión de requisitos, de desarrollo de casos de estudio, los modelos de negocios y modelos de datos.

Page 5: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

5

Herramientas para desarrollar software

Herramientas para análisis

Éstas herramientas ayudan a los especialistas en sistemas a documentar un

sistema existente, ya sea manual o automatizado. También sirve para

determinar los requerimientos de una nueva aplicación. Incluye:

Herramientas para recolección de datos: capturan detalles que

describen sistemas y procedimientos en uso. Documentan procesos y

actividades de decisión, se utilizan para apoyar la tarea de identificar

requerimientos.

Herramientas para diagramación: crean representaciones gráficas de

sistemas y actividades. Apoyan el dibujo y revisión de diagramas de flujos

de datos e iconos asociados con el análisis estructurado. Incluyen

programas para representación en diagramas de flujo.

Page 6: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

6

Herramientas para desarrollar software

Herramientas CASE :(Computer Aided/Assisted Software/System Engineering) se puede definir como:“ el conjunto de herramientas y metodologías que soportan un enfoque de ingeniería para las distintas fases del desarrollo de software”En primer lugar se suele distinguir, atendiendo a la fase del ciclo de vida que soportan, entre:•CASE frontales ("front-end") o superiores ("Upper CASE"), abarcan las primeras fases de análisis y diseño. Automatizan las primeras actividades del proceso de desarrollo de sistemas. Esta herramienta proporciona soporte para el desarrollo de modelos gráficos de sistemas y procesos. Los diagramas de flujo son representativos de este tipo de herramientas.•CASE dorsales ("back-end") o inferiores ("Lower CASE"), cuyo objetivo suele ser el diseño detallado y la generación de códigoCategorias de herramientas CASE mas frecuentes:a)Herramientas de análisis y diseñob) Generación de código y documentaciónc)Herramientas de pruebad)Herramientas de gestión de configuracióne) Herramientas de ingeniería inversaHerramientas de prototipado:Como son los diseñadores de pantallas, generadores de menús, generadores de informes y lenguajes de especificación ejecutables.

Page 7: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

7

Actividades en el proceso de desarrollo de software

Para desarrollar un producto de software se realizan diversas actividades que se estructuran y

relacionan de acuerdo a un modelo y se desarrollan siguiendo un método.

Los modelosencadenan las diversas

actividades

Page 8: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

8

Actividades usuales

Page 9: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

9

Acerca de las actividades

La ingeniería de requerimientos es el proceso que lleva a la especificación del softwareLos procesos de diseño e implementación transforman la especificación en un programa ejecutableLa validación involucra chequear que el sistema cumple su especificación y las expectativas del usuarioLa evolución concierne con la modificación del sistema después que está en uso

Page 10: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

10

Las actividades en el proceso de desarrollo de software :

se relacionan conformando

se desarrollan aplicando

El método se fundamenta en

El método puede ser soportado por

principio(s) - método(s) - herramienta(s) - modelo(s) principio(s) - método(s) - herramienta(s) - modelo(s)

un modeloun modelo

un métodoun método

principiosprincipios

herramientasherramientas

Page 11: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

11

Ciclo de vida del software

Comprensión del problema

Desarrollo del software

Liberación del producto

Análisis del problema

Page 12: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

12

Mantenimiento del producto

...casi siempre...!!

Transición

Ciclo de vida del software

Page 13: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

13

Obsolescencia del producto

Fin del ciclo de vida

Page 14: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

14

¿Cómo encadenar las actividades del proceso de desarrollo de software?

Modelos (ciclo de vida)Ej.: Modelo de la cascada, UP....

¿Cómo realizar las actividades del proceso de desarrollo de software?Métodos

Ej.: Orientado a objeto, ...

¿Cuáles principios se aplican en el proceso de desarrollo de software?

Ej.: Incrementable, iterativo,...

Actividades – Modelos - Procesos

Page 15: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

15

Modelos de desarrollo de software

La cascadaSepara y secuencia las fases

EvolutivoEspecificación y desarrollo son intercalados

De transformacionesUn modelo formal del sistema es transformado en otro modelo de más bajo nivel de abstracción

Basado en reusoEl sistema es producto de ensamblaje de componentes

Page 16: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

16

Análisis deRequerimientos

Diseño del Sistema

Diseño de Programas

Construcción de Programas

Validación de componentes

Validación del Sistema

Mantenimiento

Liberación

Integración

¿Cuál modelo han usado?

Page 17: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

17

Modelo de la cascada

• Encadenamiento secuencial de las actividades

• Cada etapa produce documentos que son la entrada a la siguiente

• Para desarrollar una etapa debe concluirse la anterior

• Popular en la década 70.

Análisis de requerimientos

Diseño

Implementación

Validación de componentes

Integración y validación del sistema

Liberación y mantenimiento

Page 18: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

18

Modelo de la cascada (cont.)

• El modelo original no se adapta a ciertas aplicaciones

• Los costos al descubrir errores en etapas avanzadas son muy altos

• Es rígido

• Se incorporan variantes al modelo.

Análisis de requerimientos

Diseño

Implementación

Validación de componentes

Integración y validación del sistema

Liberación y mantenimiento

Page 19: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

19

Análisis de requerimientos

Datos provistos por los expertos en el dominio y usuarios potenciales

Documentos orientados al usuario y útiles para el analista:

Es una actividad requerida en

cualquiermodelo

- Comprensibles - Precisos- Completos - Consistentes- Fáciles de modificar

Page 20: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

20

Análisis de requerimientos

Identificar el problema

Documentar los requerimientos

Involucrar a los usuarios y expertos en el dominio de aplicación (requiere diálogo y comunicación)

Existen estándares para la especificación de los requerimientos

Esta actividad puede mantenerse a lo largo del proceso.

Page 21: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

21

Requerimientos de software: sub áreas

1. Proceso de ingeniería de requerimientos:

modelos de proceso, actores, soporte y gerencia y mejora de calidad de proceso

2. Captura de requerimientos:

origen de requerimientos, como capturarlos; incluye fuentes y técnicas.

3. Análisis de requerimientos:

Detectar y resolver conflictos. Limites del sistema y como interactúa con el medio. Trasladar requerimientos de sistema a requerimientos de software

Page 22: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

22

4.Especificación de requerimientos de software:Calidad, estructura y verificabilidad del documento de especificación

5.Validación de requerimientos: Proceso para examinar documento de requerimientos a fin de asegurar que define el sistema esperado.

6.Gerencia de requerimientos:Abarca todo el ciclo de vida. Gerencia de cambios y mantenimiento de requerimientos de software

Requerimientos de software: sub áreas

Page 23: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

23

Prototipaje

Resultados parciales del análisis

Prototipo

(esbozo parcial, no definitivo,..)

Desarrollo rápido de partes del sistema

Prototipo-a nivel de la interfaz- a nivel de componentes del sistema

Page 24: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

24

Esbozo parcial de partes del sistema

Permite experimentar

Permite validar y precisar la especificación de requerimientos y características del futuro sistema

Indispensable para el desarrollo de la interfaz

Indispensable en el modelo evolutivo.

Prototipaje

Page 25: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

25

Especificación

Datos resultantes del análisis de

requerimientos y consideraciones

técnicas

Descripción orientada al desarrollador

Describe en forma precisael sistema adesarrollar

Page 26: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

26

Diseño

Resultados del análisis, de la especificación y consideraciones técnicas

Descripción detallada orientada al implementador

Constituye unrefinamientodel análisis

Page 27: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

27

Programación

Diseño y consideraciones técnicas

Componentes de programas -Código - en un LP

“echar código”...

Page 28: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

28

Integración y gestión de configuraciones

Componentes de programa

Ensamblaje de versiones coherentes de los componentes

Obtener el sistema

ejecutable

Page 29: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

29

Validación y verificación

Documentos

(textos, programas, etc)

Documentos validados/verificados

Permite determinar la confiabilidad o correctitud del

producto

Page 30: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

30

Validación: el software responde a lo que espera el usuario

•Verificación: el software satisface la especificación

•Técnicas diversas :

–Pruebas formales: garantizar que el programa satisface la especificación

–Chequeo “testing” : búsqueda de errores en los componentes, en la integración, en el sistema

–Pruebas de usabilidad: “medir” la satisfacción del usuario al usar el producto

Validación y verificación

Page 31: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

31

Tipos de pruebas

•Test unitario

Chequeo de componentes individuales

•Test de módulo

Chequeo de colecciones de componentes dependientes

•Test de sub-sistemas

Prueba de Módulos integrados en sub-sistemas . El centro es la prueba de las interfaces

•Test de sistemas

Se prueba el sistema como un todo

•Test de aceptación

Pruebas con datos del cliente para chequear las expectativas del usuario

Page 32: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

32

Prueba de software

•Verificación dinámica del comportamiento de un programa sobre un número finito de casos de prueba seleccionados del dominio de ejecuciones usualmente infinito.

•Conceptos básicos: terminología, fundamentos teóricos, relaciones de la prueba con otras actividades.

•Técnicas de prueba: criterios para la generación de datos de prueba.

•Mediciones relacionadas con pruebas: evaluación de programa en prueba, evaluación de las pruebas realizadas

•Gerencia: tópicos gerenciales y de actividades de prueba

Page 33: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

33

Mantenimiento de software

• Conceptos básicos: definiciones, actividades y problemas de mantenimiento

• Procesos de mantenimiento basados en estándares• Factores clave: técnicos, gerenciales, costos,

estimaciones y mediciones• Técnicas: incluyen comprensión de programas,

reingeniería, ingeniería reversa y análisis de impacto

Page 34: 1 Para el desarrollo del software: Métodos Herramientas Consideraciones Generales: Ciclo de Vida del Software Modelos Análisis Requerimientos Prototipaje

Bibliografía

- Ghezzi &al, “Fundamentals of Software Engineering”. PrenticeHall. Cap.7

- Sommerville . Ingeniería de software. Addison Wesley 2002. Cap. 3