0% encontró este documento útil (0 votos)
18 vistas35 páginas

Unidad III Parte 2

El documento aborda las metodologías de desarrollo de software, diferenciando entre varias como métodos formales, orientados a datos, flujos de datos y orientados a objetos. Se discuten las características, ventajas y desventajas de cada metodología, así como la importancia de la comunicación y la planificación en el ciclo de vida del desarrollo de software. Además, se menciona el enfoque ágil, que promueve la colaboración y la adaptabilidad en el proceso de desarrollo.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
18 vistas35 páginas

Unidad III Parte 2

El documento aborda las metodologías de desarrollo de software, diferenciando entre varias como métodos formales, orientados a datos, flujos de datos y orientados a objetos. Se discuten las características, ventajas y desventajas de cada metodología, así como la importancia de la comunicación y la planificación en el ciclo de vida del desarrollo de software. Además, se menciona el enfoque ágil, que promueve la colaboración y la adaptabilidad en el proceso de desarrollo.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

SISTEMAS DE

INFORMACIÓN
Unidad III : Ciclo de vida de Sistemas de Información –
Parte 2.
METODOLOGÍAS DE
DESARROLLO DE SOFTWARE
Metodología: Conjunto de procedimientos, técnicas,
herramientas y un soporte documental que ayuda a los
desarrolladores a realizar nuevo software.
Metodología vs. Ciclo de vida
• Una metodología puede seguir uno o varios modelos
de ciclo de vida, es decir, el ciclo de vida indica qué
es lo que hay que obtener a lo largo del desarrollo del
proyecto pero no cómo hacerlo.
• La metodología indica cómo hay que obtener los
distintos productos parciales y finales.
METODOLOGÍAS DE
DESARROLLO DE SOFTWARE
Características deseables de una Metodología:

Existencia de Cobertura total


Verificaciones Planificación y
reglas del ciclo de
intermedias control
predefinidas desarrollo

Utilización sobre
Comunicación un abanico Herramientas
Fácil formación
efectiva amplio de C.A.S.E.
proyectos

Actividades
Soporte de la
que mejoren el Soporte al
reutilización de
proceso de mantenimiento
desarrollo software
TIPOS DE METODOLOGÍAS
DE DESARROLLO DE S.I.

• Métodos Formales
• Orientadas a Datos
• Orientadas a Flujos de datos
• Orientadas a Objetos
• Metodologías Agiles
MÉTODOS FORMALES
• La denominación métodos formales se usa para referirse a
cualquier actividad relacionada con representaciones
matemáticas del software, incluyendo la especificación
formal de sistemas, análisis y demostración de la
especificación, el desarrollo transformacional y la
verificación de programas. Todas estas actividades
dependen de una especificación formal del software.
• La definición formal significa que los lenguajes de
especificación deben basarse en conceptos matemáticos
cuyas propiedades se comprendan bien. La rama de las
matemáticas usada es la de matemática discreta, y los
conceptos matemáticos provienen de la teoría de
conjuntos, la lógica y el álgebra.
MÉTODOS FORMALES
• Los detractores de estos métodos aseguran que el empleo de
métodos formales supone un volumen de trabajo considerable,
aumento en los costes y tiempo de desarrollo y que debe quedar
supeditado a herramientas que lo automaticen.
MÉTODOS FORMALES
• Ventajas:
• Se comprende mejor el sistema.
• La comunicación con el cliente mejora ya que se
dispone de una descripción clara y no ambigua de los
requisitos del usuario.
• El sistema se describe de manera más precisa.
• El sistema se asegura matemáticamente que es correcto
según las especificaciones.
• Mayor calidad software respecto al cumplimiento de las
especificaciones.
• Mayor productividad.
MÉTODOS FORMALES
• Desventajas:
• El desarrollo de herramientas que apoyen la aplicación
de métodos formales es complicado y los programas
resultantes son incómodos para los usuarios.
• Los investigadores por lo general no conocen la realidad
industrial.
• Es escasa la colaboración entre la industria y el mundo
académico, que en ocasiones se muestra demasiado
dogmático.
• Se considera que la aplicación de métodos formales
encarece los productos y ralentiza su desarrollo.
MÉTODOS FORMALES
MÉTODOS FORMALES
MÉTODOS FORMALES
Razones de su poca difusión:
• Una ingeniería de software exitosa.
• Cambios en el mercado: la cuestión crítica para muchas clases
de desarrollo del software no es la calidad, sino la oportunidad
de mercado.
• Ámbito limitado de los métodos formales: Los métodos formales
no son muy apropiados para la especificación de interfaces de
usuario e interacciones del usuario.
• Escalabilidad limitada: Los métodos formales todavía no son
muy escalables. La mayoría de los proyectos con éxito que han
usado estas técnicas han estado relacionados con núcleos de
sistemas críticos relativamente pequeños.
MÉTODOS FORMALES
Clasificación:
• Especificaciones basadas en lógica de primer orden y teoría
de conjuntos. Ej: Z, VDM, B.
• Especificaciones algebraicas. Ej: Larch, OBJ, TADs.
• Especificación de comportamiento.
• Métodos basados en algebras de procesos. Ej: CSS, CSP y
Lotos.
• Métodos basados en redes de Petri.
• Métodos basados en lógica temporal.
METODOLOGÍAS
ORIENTADAS A DATOS
Características sobresalientes:
• Derivan el diseño de programas a partir de la estructura de datos
que debe procesarse.
• La estructura de datos afecta el diseño del software tanto en el
aspecto estructural como procedimental.
• Los desarrolladores del diseño orientado a la estructura de datos
definen un conjunto de procedimientos de transformación
utilizando la estructura de datos como guía.
METODOLOGÍAS
ORIENTADAS A DATOS
Métodos basados en la estructura de datos:
• Construcción Lógica de Programas (CLP) de Warnier.
• Desarrollo de Sistemas Estructurado en Datos (DSED o DSSD) o
metodología de Warnier-Orr.
• Programación Estructurada de Jackson, y Desarrollo de Sistemas de
Jackson.
METODOLOGÍAS
ORIENTADAS A DATOS
• Cada método proporciona un conjunto de reglas para realizar la
transformación de la estructura de datos en estructura del
software. Cada método tiene su propio conjunto de reglas, pero
todos deben:
1. Evaluar las características de la estructura de datos.
2. Representar los datos en términos de formas elementales tales
como secuencia, selección, y repetición.
3. Transformar la representación de la estructura de datos en
una jerarquía de control para el software.
4. Refinar la jerarquía del software utilizando los criterios definidos
como parte de un método.
5. Finalmente, desarrollar la descripción procedimental del
software.
METODOLOGÍAS
ORIENTADAS A DATOS
• En los métodos orientados a la estructura de datos no está clara la
división entre los pasos de diseño arquitectónico y procedimental.
Se pasa rápido a la representación procedimental.
METODOLOGÍAS ORIENTADAS
A FLUJOS DE DATOS
• Las Metodologías orientadas a Flujos de Datos (MOFD), también
llamadas orientadas a Procesos o Metodologías estructuradas,
definen varias representaciones que transforman el flujo de
información en la estructura del programa.
• Las MOFD tienen sus orígenes en los primeros conceptos de diseño
que consideraban la modularidad, el diseño descendente o
refinamiento y la programación estructurada. Estas metodologías
ampliaron estas técnicas integrando el flujo de información en el
proceso de análisis y diseño.
METODOLOGÍAS ORIENTADAS
A FLUJOS DE DATOS
• en forma secuencial y no existe una estructura de datos jerárquica.
• Sus principales hitos o productos son: Diagramas de flujos de datos,
diccionario de datos, diagramas entidad-relación, diagramas de
transición de estados y especificaciones de proceso.
METODOLOGÍAS ORIENTADAS
A FLUJOS DE DATOS
Metodología Yourdon y
Metodología De Marco Metodología Gane y Sarson
Constantine
•Construir el modelo físico •Construir el modelo lógico •Realizar los DFD del sistema
actual (DFD físico actual) actual (DFD lógico actual) •Realizar el diagrama de
•Construir el modelo lógico •Construir el modelo del estructuras a partir del DFD,
actual (DFD lógico actual) nuevo sistema: elaborar mediante análisis de
•Crear un conjunto de una especificación transformación, y análisis
modelos físicos alternativos estructurada y construir un de transacción.
•Estimar los costes y tiempos modelo lógico de datos en •Evaluación del diseño
de cada opción tercera forma normal que midiendo la calidad de la
•Seleccionar un modelo exprese el contenido de los estructura mediante el
almacenes de datos. acoplamiento y cohesión
•Empaquetar la
•Seleccionar un modelo •Preparación del diseño
especificación
lógico para la implementación
•Crear el nuevo modelo dividiéndola en Unidades.
físico del sistema Físicas o cuadernos de
•Empaquetar la carga.
especificación
METODOLOGÍAS ORIENTADAS
A FLUJOS DE DATOS
METODOLOGÍAS ORIENTADAS
A FLUJOS DE DATOS
• Los diagramas de flujos de datos (DFD) muestran como una entrada
de datos es funcionalmente transformada por un sistema o proceso
hacia una salida de datos.
• Son una parte integral de muchos métodos de análisis y diseño con
sus distintas simbologías.
• Son soportados por varias herramientas C.A.S.E.
ORIENTADAS A DATOS
VS. FLUJO DE DATOS
Comparación de los métodos orientados a la estructura de datos con las
técnicas estructuradas basadas en el flujo de datos:
• Aspectos comunes:
• Ambos enfoques comienzan con pasos de análisis que establecen las
bases para el diseño.
• Ambos están conducidos por la información.
• Ambos intentan transformar la información en una representación del
software.
• Diferencias:
• No utiliza DFD.
• No da importancia a los flujos transformativos y transaccionales.
• No considera explícitamente el concepto de estructura modular.
• Los módulos se consideran un subproducto del procedimiento.
• No se da mayor importancia a conceptos como acoplamiento y
cohesión.
• Utiliza diagramas jerárquicos para representar la estructura de datos y
del software que deriva.
METODOLOGÍAS
ORIENTADAS A OBJETOS
• La metodología orientada a objetos combina los datos y los
procedimientos en un solo objeto. En vez de pasar datos a
los procedimientos, los programas envían un mensaje a un
objeto para que realice un procedimiento que ya tiene
integrado. El mismo mensaje puede ser enviado a muchos
objetos diferentes, pero cada uno de ellos implantará el
mensaje de forma diferente.
• Surgieron diferentes métodos de análisis y diseño orientado a
objetos, entre los que destacan los métodos Booch, OOSE
(Object Oriented Software Engineering) y OMT (Object
Modeling Technique).
METODOLOGÍAS
ORIENTADAS A OBJETOS
• Para poner fin a la "guerra de métodos" que se presentó en
ese momento, se creó el Lenguaje Unificado de Modelado
(UML).
• El modelo de objetos ha probado ser un concepto uniforme
en las ciencias de la computación, aplicable no sólo a los
lenguajes de programación sino también al diseño de
interfaces de usuario, bases de datos y arquitectura de
computadoras por completo. La razón de ello es,
simplemente, que una orientación a objetos nos ayuda a
hacer frente a la inherente complejidad de muchos tipos de
sistemas.
METODOLOGIAS
ORIENTADAS A OBJETOS
• Conceptos fundamentales de la MOO:

Clase Instancia u objeto Atributo

Mensaje Encapsulamiento Herencia

Polimorfismo Evento
METODOLOGÍAS
ORIENTADAS A OBJETOS
¿Que es UML?
UML es un lenguaje para hacer modelos y es independiente de los métodos de
análisis y diseño. Esta compuesto por 13 tipos de diagramas diferentes según su
ultima implementación.
METODOLOGÍAS
ORIENTADAS A OBJETOS
Ventajas:
• Reutilización. Las clases están diseñadas para que se reutilicen en
muchos sistemas. Para maximizar la reutilización, las clases se
construyen de manera que se puedan adaptar a los otros sistemas.
• Estabilidad. Las clases diseñadas para una reutilización repetida se
vuelven estables.
• El diseñador piensa en términos del comportamiento de objetos y
no en detalles de bajo nivel. El encapsulamiento oculta los detalles
y hace que las clases complejas sean fáciles de utilizar.
• Un diseño más rápido. Las aplicaciones se crean a partir de
componentes ya existentes.
• Integridad. Las estructuras de datos (los objetos) sólo se pueden
utilizar con métodos específicos. Esto tiene particular importancia
en los sistemas cliente-servidor y los sistemas distribuidos, en los que
usuarios desconocidos podrían intentar el acceso al sistema.
METODOLOGÍAS
ORIENTADAS A OBJETOS
Ventajas:
• Mantenimiento más sencillo. El programador encargado del
mantenimiento cambia un método de clase a la vez. Cada clase
efectúa sus funciones independientemente de las demás.
• Independencia del diseño. Las clases están diseñadas para ser
independientes del ambiente de plataformas, hardware y software.
Utilizan solicitudes y respuestas con formato estándar.
• Computación de distribución masiva. Las redes a nivel mundial
utilizarán directorios de software de objetos accesibles. Las clases
de una máquina interactúan con las de algún otro lugar sin saber
donde residen tales clases. Ellas reciben y envían mensajes
orientados a objetos en formato estándar.
• Mejores herramientas CASE. Estas herramientas utilizarán las
técnicas gráficas para el diseño de las clases y de la interacción
entre ellas, para el uso de los objetos existentes adaptados a
nuevas aplicaciones.
METODOLOGÍAS AGILES
• El desarrollo ágil de software refiere a métodos de ingeniería del
software basados en el desarrollo iterativo e incremental, donde los
requisitos y soluciones evolucionan mediante la colaboración de
grupos auto organizados y multidisciplinarios.
• Existen muchos métodos de desarrollo ágil; la mayoría minimiza
riesgos desarrollando software en lapsos cortos.
• El software desarrollado en una unidad de tiempo es llamado una
iteración, la cual debe durar de una a cuatro semanas.

• Cada iteración del ciclo de vida incluye: planificación, análisis de


requisitos, diseño, codificación, revisión y documentación.
METODOLOGÍAS AGILES
• Una iteración no debe agregar demasiada funcionalidad para
justificar el lanzamiento del producto al mercado, sino que la meta
es tener una «demo» (sin errores) al final de cada iteración.

• Al final de cada iteración el equipo vuelve a evaluar las prioridades


del proyecto.

• Ejemplos de metodologías agiles: Adaptive Software Development


(ASD), Agile Unified Process (AUP), Crystal Clear, Essential Unified
Process (EssUP), Feature Driven Development (FDD), Lean Software
Development (LSD), Kanban, Open Unified Process (OpenUP),
Programación Extrema (XP), Método de desarrollo de sistemas
dinámicos (DSDM), Scrum, G300.
METODOLOGÍAS AGILES
El manifiesto de las metodologías menciona los siguientes
principios:
• Al individuo y las interacciones del equipo de desarrollo
sobre el proceso y las herramientas. La gente es el principal
factor de éxito de un proyecto software. Es más importante
construir un buen equipo que construir el entorno.
• Desarrollar software que funciona más que conseguir una
buena documentación. La regla a seguir es no producir
documentos a menos que sean necesarios de forma
inmediata para tomar un decisión importante. Estos
documentos deben ser cortos y centrarse en lo
fundamental.
METODOLOGÍAS AGILES
El manifiesto de las metodologías menciona los siguientes
principios:
• La colaboración con el cliente más que la negociación de
un contrato. Se propone que exista una interacción
constante entre el cliente y el equipo de desarrollo. Esta
colaboración entre ambos será la que marque la marcha
del proyecto y asegure su éxito.
• Responder a los cambios más que seguir estrictamente un
plan. La habilidad de responder a los cambios que puedan
surgir a los largo del proyecto (cambios en los requisitos, en
la tecnología, en el equipo, etc.) determina también el éxito
o fracaso del mismo. Por lo tanto, la planificación no debe
ser estricta sino flexible y abierta.
METODOLOGÍAS AGILES
METODOLOGÍAS AGILES
BIBLIOGRAFÍA
• “Análisis Estructurado Moderno”. Yourdon, Edward. Prentice
Hall. 1993.
• “Análisis y diseño de Sistemas de Información”. Whitten,
Bentley, Barlow. McGraw-Hill. 1996.

También podría gustarte