tema n.º 48

10
TEMA N.º 48 TÍTULO: INGENIERÍA DEL SOFTWARE. CICLO DE DESARROLLO DEL SOFTWARE. TIPOS DE CICLO DE DESARROLLO. METODOLOGÍAS DE DESARROLLO. CARACTERÍSTICAS DISTINTIVAS DE LAS PRINCIPALES METODOLOGÍAS DE DESARROLLO UTILIZADAS EN LA UNIÓN EUROPEA. ESPECIALIDAD: INFORMÁTICA

Upload: others

Post on 06-Jan-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tema N.º 48

TEMA N.º 48 TÍTULO: INGENIERÍA DEL SOFTWARE. CICLO DE DESARROLLO DEL

SOFTWARE. TIPOS DE CICLO DE DESARROLLO. METODOLOGÍAS DE

DESARROLLO. CARACTERÍSTICAS DISTINTIVAS DE LAS PRINCIPALES

METODOLOGÍAS DE DESARROLLO UTILIZADAS EN LA UNIÓN EUROPEA.

ESPECIALIDAD: INFORMÁTICA

Page 2: Tema N.º 48

aporlaopo.es Preparación curso 21/22 – Tema n.º: 48

[aporlaopo.es] – Temario/Boletines para la especialidad de Informática Todos los derechos reservados. Prohibida su reproducción total o parcial. 1

Contenido 1. INTRODUCCIÓN ......................................................................................................................................................... 2

2. MODELOS DE CICLO DE DESARROLLO. ..................................................................................................................... 2

2.1. MODELO EN CASCADA. ..................................................................................................................................... 2

2.2. MODELO INCREMENTAL. .................................................................................................................................. 3

2.3. MODELO EN ESPIRAL. ....................................................................................................................................... 3

2.4. MODELOS PARA EL DESARROLLO DE SISTEMAS ORIENTADOS A OBJETOS. ..................................................... 4

3. METODOLOGÍAS DE DESARROLLO. ........................................................................................................................... 4

3.1. CARACTERÍSTICAS DESEABLES. ......................................................................................................................... 5

3.2. CLASIFICACIÓN DE METODOLOGÍAS. ................................................................................................................ 5

3.2.1. METODOLOGÍAS ESTRUCTURADAS. .......................................................................................................... 6

3.2.2. METODOLOGÍAS ORIENTADAS A OBJETOS. .............................................................................................. 6

3.2.3. SISTEMAS EN TIEMPO REAL. ..................................................................................................................... 7

3.3. PRINCIPALES METODOLOGÍAS DE DESARROLLO. ............................................................................................. 7

3.3.1. METODOLOGÍA MERISE. ........................................................................................................................... 7

3.3.2. METODOLOGÍA SSADM. ............................................................................................................................ 8

3.3.3. METODOLOGÍA MÉTRICA. ......................................................................................................................... 8

4. BIBLIOGRAFÍA ............................................................................................................................................................ 9

Page 3: Tema N.º 48

aporlaopo.es Preparación curso 21/22 – Tema n.º: 48

[aporlaopo.es] – Temario/Boletines para la especialidad de Informática Todos los derechos reservados. Prohibida su reproducción total o parcial. 2

1. INTRODUCCIÓN

Uno de los problemas más importantes en cualquier departamento de sistemas de información es definir un marco de referencia común.

▪ Que pueda ser empleado por todas las personas que participan en un desarrollo informático.

▪ En que se definan los procesos, las actividades y las tareas a desarrollar.

Con todo esto podemos decir que el ciclo de vida del software es un marco de referencia que contiene los procesos, las actividades y las tareas involucradas en el desarrollo, la explotación y el mantenimiento de un producto de software, abarcando la vida del sistema desde la definición de los requisitos hasta la finalización de su uso.

A veces también se habla de “ciclo de desarrollo” que es un subconjunto del anterior que empieza en el análisis y finaliza con la entrega del sistema al usuario.

2. MODELOS DE CICLO DE DESARROLLO.

Existen varios modelos de ciclos entre los más destacados están:

2.1. MODELO EN CASCADA.

La estructura y procesos asociados a este modelo es como sigue:

Sus características más importantes son:

▪ 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 costes.

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

Aunque es el ciclo de vida más antiguo y el más ampliamente utilizado, debido a las facilidades que da a los gestores

para controlar el progreso de los sistemas ha recibido numerosas críticas.

Análisis

Requisitos

Sistema Análisis

Requisitos

Software Diseño

Preliminar Diseño

Detallado Codificación y

Prueba Explotación y

Mantenimiento

Page 4: Tema N.º 48

aporlaopo.es Preparación curso 21/22 – Tema n.º: 48

[aporlaopo.es] – Temario/Boletines para la especialidad de Informática Todos los derechos reservados. Prohibida su reproducción total o parcial. 3

Algunos de estos inconvenientes son:

▪ Los proyectos reales raramente siguen este flujo secuencial.

▪ Se tarda mucho tiempo.

▪ Acentúa el fracaso de la industria del software con el usuario final.

2.2. MODELO INCREMENTAL.

Corrige la necesidad de una secuencia no lineal de pasos de desarrollo. Se va creando el sistema software añadiendo

componentes funcionales al sistema (llamados incrementos). Se basa en el refinamiento de una versión previa. Es por

lo tanto la integración de resultados sucesivos obtenidos después de cada iteración.

Aun así persisten los problemas de determinar si los requisitos propuestos son válidos y los errores en los requisitos y

su corrección se detectan tarde.

2.3. MODELO EN ESPIRAL.

Con el fin de paliar los inconvenientes del modelo en cascada Boehm, propuso este modelo. Cada ciclo en espiral

comienza con la identificación de:

▪ Los objetivos de la parte del producto que está siendo elaborada.

▪ Las alternativas principales de la implementación de esta porción del producto.

▪ Las restricciones impuestas para cada alternativa

El siguiente paso será evaluar las diferentes alternativas, formular una estrategia, revisar los resultados del análisis de

riesgos, planificar paso posterior.

Una vez realizado el primer ciclo se volvería a empezar y así sucesivamente.

Una característica importante del modelo en espiral es que cada ciclo se completa con una revisión en la que participan

las principales personas u organizaciones que tienen relación con el producto.

Incremento 2

Análisis

Requisitos

Sistema Análisis

Requisitos

Software Diseño

Preliminar Diseño

Detallado Codificación y

Prueba

Explotación y

Mantenimiento

Incremento 1

Diseño

Detallado Codificación y

Prueba Explotación y

Mantenimiento Incremento n…

Page 5: Tema N.º 48

aporlaopo.es Preparación curso 21/22 – Tema n.º: 48

[aporlaopo.es] – Temario/Boletines para la especialidad de Informática Todos los derechos reservados. Prohibida su reproducción total o parcial. 4

También puede llegar a incluir una partición del producto en incrementos (para desarrollos sucesivos) o en

componentes (para ser desarrollados por organizaciones individuales o persona).

Sus principales características:

▪ Existe un reconocimiento explícito de las diferentes alternativas.

o La identificación de los riesgos.

o La división de los proyectos en ciclos, implica que existe un acuerdo para los cambios que hay que realizar o en función de lo que se ha aprendido desde el inicio del proyecto.

o El modelo se adapta a cualquier tipo de actividad.

▪ Aunque puede aplicarse en la mayoría de las ocasiones tiene las siguientes dificultades:

o Trabaja bien en los desarrollos internos, pero necesita un ajuste posterior para adaptarlo a la subcontratación de software.

o Necesita de experto en evaluación de riesgos para identificar y manejar las fuentes de riesgo.

2.4. MODELOS PARA EL DESARROLLO DE SISTEMAS ORIENTADOS A OBJETOS.

El modelo en cascada no permite aprovechar las ventajas de la tecnología de objetos, que pretende acelerar el

desarrollo de sistemas de una manera iterativa e incremental. Existen distintos modelos orientados a objetos, entre

ellos:

▪ Modelo de agrupamiento (cluster). Los modelos usuales de ciclo de vida están basados en el “proyecto”, mientras que el desarrollo O.O. está basado en el producto. Este método se basa en la creación de subciclos que se pueden solapar en el tiempo.

▪ Modelo fuente. Es el más conocido con un alto grado de iteración y solapamiento. Propone un modelo de ciclo para cada clase, este ciclo será creciente, cayendo sólo para el mantenimiento necesario.

▪ Modelo remolino. Este modelo señala que las metodologías de desarrollo no ofrecen una visión real del mismo, que es mucho más desordenado y que implica múltiples iteraciones interrelacionales.

▪ Modelo pinball.

▪ Modelo curioso y didáctico que señala que el pimball refleja realmente la forma en la que se desarrolla el software.

3. METODOLOGÍAS DE DESARROLLO.

Existe una relación clara entre metodología y el entorno de desarrollo de una organización. Esta relación sigue este

esquema:

Page 6: Tema N.º 48

aporlaopo.es Preparación curso 21/22 – Tema n.º: 48

[aporlaopo.es] – Temario/Boletines para la especialidad de Informática Todos los derechos reservados. Prohibida su reproducción total o parcial. 5

3.1. CARACTERÍSTICAS DESEABLES.

Una buena metodología debería incluir una serie de características deseables:

▪ Existencia de reglas predefinidas.

▪ Cobertura total del ciclo de desarrollo.

▪ Verificaciones intermedias.

▪ Planificación y control.

▪ Comunicación efectiva.

▪ Utilización sobre un abanico de proyectos.

▪ Fácil formación.

▪ Soporte con herramientas CASE.

▪ La metodología debe contener actividades que mejoren el proceso de desarrollo.

▪ Soporte al mantenimiento.

▪ Soporte de reutilización del software.

3.2. CLASIFICACIÓN DE METODOLOGÍAS.

Para poder realizar una clasificación hay que atender a tres dimensiones o puntos de vista.

ENFOQUE TIPO DE SISTEMA FORMALIDAD

ESTRUCTURADAS Orientadas a Procesos. Orientadas a datos: Jerárquicos. No jerárquicos. Mixtas.

GESTIÓN NO FORMAL

ORIENTADAS A OBJETOS TIEMPO REAL FORMAL

Coordinan y

Guian.

Da informes

a la dirección

Determinan las

herramientas necesarias

Soportan métodos

Seleccionan las

herramientas

Dan una estructura

visible

ENTORNO DE DESARROLLO DE SOFTWARE

ORGANIZACIÓN DE DESARROLLO DE SOFTWARE

PROCEDIMIENTOS DE

GESTIÓN

METODOLOGÍA

DE

SOPORTE

AUTOMATIZADO

TÉCNICAS

Page 7: Tema N.º 48

aporlaopo.es Preparación curso 21/22 – Tema n.º: 48

[aporlaopo.es] – Temario/Boletines para la especialidad de Informática Todos los derechos reservados. Prohibida su reproducción total o parcial. 6

3.2.1. METODOLOGÍAS ESTRUCTURADAS.

Las metodologías estructuradas proponen la creación de modelos del sistema que representan los procesos, los flujos y la estructura de los datos de una manera descendente (top-down). Esta visión se puede enfocar a procesos, datos jerárquicos o no jerárquicos y ambos.

3.2.1.1. METODOLOGÍAS ORIENTADAS A PROCESOS

Una especificación estructurada orientada a procesos es un modelo gráfico, particionado, descendente y jerárquico

de los datos utilizados por los procesos. Se compone de:

▪ Diagrama de flujo (DFD). Son diagramas que representan los procesos que debe llevar a cabo un sistema a distintos niveles.

▪ Diccionario de datos. Conjunto de definiciones de todos los datos que aparecen en el DFD.

▪ Especificación de procesos. Describen con más detalle lo que ocurre dentro de un proceso.

Ejemplos de este tipo de metodología son la metodología De Marco, metodología Gane y Sarson y la metodología

yourdon/Constantine.

3.2.1.2. METODOLOGÍAS ORIENTADAS A DATOS JERÁRQUICOS.

Las metodologías orientadas a datos jerárquicos: se orientan más a las entradas y salidas que a los procesos. Primero

se definen las estructuras de datos y, a partir de éstas, se derivan los componentes procedimentales. En este enfoque

se destaca:

▪ La estructura de control del programa debe ser jerárquica y se debe derivar de la estructura de datos del programa.

▪ El proceso de diseño consiste en definir primero las estructuras de datos de entrada y salida, mezclarlas todas en una estructura jerárquica de programa y después ordenar detalladamente la lógica procedimental.

▪ El diseño lógico debe preceder y estar separada del diseño físico.

Ejemplos de este tipo de metodología son: JSP y JSD de Jackson y LCP y LCS de Warnier.

3.2.1.3. METODOLOGÍAS ORIENTADAS A DATOS NO JERÁRQUICOS.

Las metodologías orientadas a datos no jerárquicos: se basan en la creencia de que los tipos de datos constituyen el

corazón del sistema de información, ya que son más estables que los procesos que actúan sobre ellos.

Los procesos también se estudian en este tipo de metodologías, pero vienen derivados de una definición inicial de los

datos, este modelo está formado por el conjunto de entidades de datos básicas y las interrelaciones entre ellas.

La metodología queda dividida en cuatro etapas, con los siguientes objetivos:

▪ Planificación: construir una arquitectura de la información y una estrategia que soporte los objetivos de la organización.

▪ Análisis: comprender las áreas del negocio y determinar los registros del sistema.

▪ Diseño: establecer el comportamiento del sistema deseado por el usuario y que sea alcanzable por la tecnología.

▪ Construcción: construir sistemas que cumplan los tres niveles anteriores.

3.2.2. METODOLOGÍAS ORIENTADAS A OBJETOS.

En la orientación al objeto cobra mucha importancia el aspecto de “modelado” del sistema, examinando el dominio

del problema como un conjunto de objetos que interactúan entre sí.

Page 8: Tema N.º 48

aporlaopo.es Preparación curso 21/22 – Tema n.º: 48

[aporlaopo.es] – Temario/Boletines para la especialidad de Informática Todos los derechos reservados. Prohibida su reproducción total o parcial. 7

En las metodologías tradicionales se produce una dicotomía entre los dos elementos constituyentes de un sistema:

funciones que llevan a cabo los programas y datos que se almacenan en ficheros o bases de datos. Sin embargo, la

orientación al objeto propugna un enfoque unificador de ambos aspectos, que se encapsulan en los objetos.

Se pueden identificar dos enfoques en las metodologías orientadas a objetos las puras, que opinan que la OO debe

suponer un cambio profundo en la metodología de desarrollo puesto que las estructuradas están obsoletas y las

evolutivas, que piensan que el análisis y diseño estructurado constituyen la base para el desarrollo OO.

Existen muchas metodologías de este tipo: SINGER, FUSION, OOA/D…

3.2.3. SISTEMAS EN TIEMPO REAL.

Existen sistemas muy dependientes del tiempo que procesan información más orientada al control que orientada a

los datos. Estos son los sistemas de tiempo real, que se controlan y son controlados por medio de eventos externos.

Los sistemas de tiempo real se caracterizan porque:

▪ Se lleva a cabo el proceso de muchas actividades de forma simultánea (concurrencia).

▪ Se asignan prioridades a determinados procesos: algunos requieren tratamiento inmediato y otros pueden aplazarse por períodos razonables de tiempo.

▪ Se interrumpe una tarea antes de que concluya, para comenzar otra de mayor prioridad.

▪ Existe comunicación entre áreas.

Para especificar los requisitos de estos sistemas hay que incluir nuevos conceptos para:

▪ El manejo de interrupciones.

▪ La comunicación y sincronización entre tareas.

▪ Gestionar procesos concurrentes.

▪ Dar respuesta oportuna y a tiempo ante eventos externos.

▪ Datos continuos o discretos.

Para ellos, se han propuesto varias ampliaciones a la notación del análisis estructurado. Los trabajos más importantes

provienen de WARD y MELLOR y de HATLEY y PIRBHAY Que realizaron la extensión basándose en la metodología de

Yourdon/Constantine.

3.3. PRINCIPALES METODOLOGÍAS DE DESARROLLO.

Las administraciones públicas de distintos países europeos han promovido el desarrollo de metodologías para unificar

la forma de desarrollar sus sistemas de información. Las más conocidas son las siguientes.

3.3.1. METODOLOGÍA MERISE.

Este proyecto partió del Centro Técnico Informático (CTI) del Ministerio de Industria Francés. Sus mayores

aportaciones de la metodología son:

▪ Un ciclo de vida más largo, que incluye una etapa de planificación, previa al desarrollo, denominada esquema director.

▪ Introducción de dos ciclos complementarios: ciclo de abstracción y ciclo de decisión. El ciclo de abstracción se basa en la percepción de tres niveles de abstracción, el conceptual, organizativo y físico u operativo. Se definen dos modelos para cada nivel: el de datos y el de tratamientos.

El nivel conceptual: se corresponde con las finalidades de la empresa.

Page 9: Tema N.º 48

aporlaopo.es Preparación curso 21/22 – Tema n.º: 48

[aporlaopo.es] – Temario/Boletines para la especialidad de Informática Todos los derechos reservados. Prohibida su reproducción total o parcial. 8

El nivel organizativo: corresponde a la organización adecuada que hay que implantar para alcanzar los objetivos

asignados al sistema.

El nivel físico: corresponde a la integración de los medios técnicos necesarios para el proyecto. Se expresan en términos

de materiales o componentes software.

3.3.1.1. FASES DE LA METODOLOGÍA:

La metodología MERISE se compone de cuatro fases:

1) Estudio preliminar: se analiza la situación existente para proponer una solución global atendiendo a los criterios de gestión, de la organización y decisiones adoptadas por el comité del proyecto.

2) Estudio detallado: el objetivo de esta fase es definir, a nivel funcional, la solución que hay que implementar.

3) Implementación: realizar los programas que corresponden a las especificaciones detalladas. Se divide en dos partes: el estudio técnico y la producción de los programas.

4) Realización y puesta en marcha: se efectúa la implementación de los medios técnicos y organizativos así como la recepción definitiva por parte del usuario.

3.3.2. METODOLOGÍA SSADM.

En este caso la metodología se desarrolló a instancias del gobierno británico. El desarrollo se realizó conjuntamente

por la Agencia Central de Computación y Telecomunicaciones (CCTA)y por el Learmonth and Burchett Management

Systems (LBMS).

Su principal cambio fue la introducción de una nueva técnica, el diseño del dialogo, para afrontar el crecimiento del

procesamiento interactivo.

Los aspectos claves de SSADM son:

▪ Énfasis en los usuarios, sus requisitos y participación.

▪ Definición del proceso de producción., qué hacer y cómo.

▪ Tres puntos de vista: datos, eventos y procesos.

▪ Máxima flexibilidad en herramientas y técnicas de implementación.

SSADM proporciona un conjunto de procedimientos para llevar a cabo el análisis y diseño, pero no cubre aspectos

como la planificación estratégica ni entra en la construcción del código.

3.3.3. METODOLOGÍA MÉTRICA.

En este caso se trata de una producción española, concretamente del consejo Superior de Informática para crear un

marco metodológico común para la planificación y desarrollo en la Administración Pública Española.

Está estructurada mediante una sucesión de fases, módulos, actividades y tareas que hay que seguir para el desarrollo

de sistemas, e indica los productos que se obtienen en cada una de las tareas. Algunos son productos finales, y otros,

productos intermedios que servirán de base para la realización de tareas posteriores.

La metodología está dividida en las siguientes fases:

▪ FASE 0: Plan de Sistemas de Información.

▪ FASE 1: Análisis de Sistemas.

▪ FASE 2: Diseño de Sistemas.

▪ FASE 3: Construcción del Sistema.

▪ FASE 4: Implantación del Sistema.

Page 10: Tema N.º 48

aporlaopo.es Preparación curso 21/22 – Tema n.º: 48

[aporlaopo.es] – Temario/Boletines para la especialidad de Informática Todos los derechos reservados. Prohibida su reproducción total o parcial. 9

Esta metodología hace uso de una serie de técnicas que dan soporte a la realización de las tareas que tiene definidas.

Se enfoca directamente en el desarrollo y no pretende soportar todas las actividades relacionadas con aspectos como

la Gestión de Proyectos, Gestión de la Calidad y la Gestión de la Configuración, pero, sin embargo, si proporciona

mecanismos para unir dichos conceptos identificando el lugar donde se realizan dentro de la metodología.

4. BIBLIOGRAFÍA

▪ Alfonso, M., y Martínez, C. (2015). Historia moderna. Madrid, España: UNED.

▪ Mario G Piattini, José A. Calvo-Manzano, Joaquín Cervera y Luis Fernández. Análisis y diseño detallado de Aplicaciones Informáticas de Gestión. Madrid, España: ra-ma.

▪ Fairley, Richard. Ingeniería del software. Madrid, España: MacGraw Hill.

▪ http://www.map.es/csi:MÉTRICA. Metodología de planificación y desarrollo de sistemas de información del consejo de información del Ministerio de Administraciones públicas.