análisis de sistemas

52
ANÁLISIS DE SISTEMAS Ing. Jaime Steven Ramírez Flor

Upload: tic

Post on 19-Nov-2014

1.204 views

Category:

Education


1 download

DESCRIPTION

Metodologías de Desarrollo de Software

TRANSCRIPT

Page 1: Análisis de Sistemas

ANÁLISIS DE SISTEMASIng. Jaime Steven Ramírez Flor

Page 2: Análisis de Sistemas

ANÁLISIS Es la distinción y separación completa

de las partes de un todo hasta llegar a conocer sus principios o elementos, sus características representativas, así como sus interrelaciones.

Page 3: Análisis de Sistemas

SISTEMAS Un sistema es un conjunto de

elementos interrelacionados o componentes entrelazados entre si para lograr un objetivo común entre los elementos del sistema.

Page 4: Análisis de Sistemas

¿EN QUÉ CONSISTE EL ANÁLISIS DE SISTEMAS?

Page 5: Análisis de Sistemas

ANÁLISIS DE SISTEMAS Es una etapa de la construcción de un

sistema informático, que consiste en relevar la información actual y proponer los rasgos generales de la solución futura.

Es la etapa posterior a la obtención de requerimientos; y, anterior al diseño del sistema.

Es una fase de la Ingeniería del Software. Forma parte del ciclo de vida del software.

Page 6: Análisis de Sistemas

LO QUE NO ES EL ANÁLISIS DE SISTEMASEfectuar diseños que no cumplan con los requisitos de los análisis de sistema como: Observar un sistema sin tener en cuenta todas sus

partes o componentes. Considerar el análisis sin evaluar todos los

procedimientos. Evaluar conceptos sin tener en consideración la

uniformidad de los procesos y no establecer su viabilidad.

Olvidarse de realizar un análisis técnico y económico.

No establecer restricciones de presupuestos y planificación temporal o definitiva.

Divagar en una definición del sistema que no forme el fundamento de todo el trabajo de Ingeniería.

Page 7: Análisis de Sistemas

CICLO DE VIDA DEL SOFTWARE

Page 8: Análisis de Sistemas

INGENIERÍA DEL SOFTWARE (I.S.) Bauer (1972): “Ingeniería de software

trata del establecimiento de los principios y métodos de la ingeniería a fin de obtener software de modo rentable, que sea fiable y trabaje en máquinas reales”.

Zelkovitz (1978): “Ingeniería de software es el estudio de los principios y metodologías para el desarrollo y mantenimiento de sistemas software”.

Page 9: Análisis de Sistemas

INGENIERÍA DEL SOFTWARE (I.S.) Bohem (1976): “Ingeniería de software

es la aplicación práctica del conocimiento científico al diseño y construcción de programas de computadora y a la documentación asociada requerida para desarrollar, operar y mantenerlos. Se conoce también como desarrollo de software o producción de software”.

Page 10: Análisis de Sistemas

DEFINICIÓN DE LA I.S.

“Ingeniería de Software es la aplicación de un enfoque sistemático,

disciplinado y cuantificable al desarrollo, operación y mantenimiento de software,

y el estudio de estos enfoques”

Page 11: Análisis de Sistemas

ETAPAS DEL PROCESO DE LA I.S.

Page 12: Análisis de Sistemas

ETAPAS DEL PROCESO DE LA I.S. La ingeniería de software requiere llevar

a cabo numerosas tareas agrupadas en etapas. Al conjunto de estas etapas se le denomina ciclo de vida.

Las etapas comunes a casi todos los modelos de ciclo de vida son las siguientes:1. Planificación.2. Implementación, pruebas y documentación.3. Despliegue y mantenimiento.

Page 13: Análisis de Sistemas

ETAPAS DEL PROCESO DE LA I.S. (1) Análisis de requisitos (1) Especificación (1) Arquitectura (2) Programación (2) Prueba (2) Documentación (3) Mantenimiento

Page 14: Análisis de Sistemas

MODELOS DE DESARROLLO DE SOFTWARELa I.S. dispone de varios modelos, paradigmas y filosofías de desarrollo, en los cuales se apoya para la construcción del software, entre ellos se puede citar: Modelo en cascada Modelo de prototipos Modelo en espiral Desarrollo por etapas Desarrollo iterativo y creciente o Iterativo e

Incremental RAD (Rapid Application Development) RUP (Proceso Unificado de Rational)

Page 15: Análisis de Sistemas

MODELO EN CASCADA

Page 16: Análisis de Sistemas

MODELO EN CASCADAEs el enfoque metodológico que ordena rigurosamente las etapas del proceso para el desarrollo de software, de tal forma que el inicio de cada etapa debe esperar a la finalización de la etapa anterior.

Page 17: Análisis de Sistemas

MODELO EN CASCADA: DESVENTAJAS Cualquier error de diseño detectado en

la etapa de prueba conduce necesariamente al rediseño y nueva programación del código afectado, aumentando los costos del desarrollo.

El modelo en cascada sugiere el esfuerzo necesario para introducir un cambio en las fases más avanzadas de un proyecto.

Page 18: Análisis de Sistemas

MODELO EN CASCADA: DESVENTAJAS Un proyecto rara vez sigue una

secuencia lineal, esto crea una mala implementación del modelo, lo cual hace que lo lleve al fracaso.

El proceso de creación del software tarda mucho tiempo ya que debe pasar por el proceso de prueba y hasta que el software no esté completo no se opera. Esto es la base para que funcione bien.

Page 19: Análisis de Sistemas

MODELO DE PROTOTIPOS

Page 20: Análisis de Sistemas

MODELO DE PROTOTIPOS Pertenece a los modelos de desarrollo evolutivo.

El prototipo debe ser construido en poco tiempo, usando los programas adecuados y no se debe utilizar muchos recursos.

El diseño rápido se centra en una representación de aquellos aspectos del software que serán visibles para el cliente o el usuario final. Este diseño conduce a la construcción de un prototipo, el cual es evaluado por el cliente para una retroalimentación; gracias a ésta se refinan los requisitos del software que se desarrollará.

Page 21: Análisis de Sistemas

MODELO DE PROTOTIPOS La interacción ocurre cuando el

prototipo se ajusta para satisfacer las necesidades del cliente. Esto permite que al mismo tiempo el desarrollador entienda mejor lo que se debe hacer y el cliente vea resultados a corto plazo.

Page 22: Análisis de Sistemas

MODELO DE PROTOTIPOS: VENTAJAS Este modelo es útil cuando el cliente conoce

los objetivos generales para el software, pero no identifica los requisitos detallados de entrada, procesamiento o salida.

Ofrece un mejor enfoque cuando el responsable del desarrollo del software está inseguro de la eficacia de un algoritmo, de la adaptabilidad de un sistema operativo o de la forma que debería tomar la interacción humano-máquina.

Page 23: Análisis de Sistemas

MODELO DE PROTOTIPOS: DESVENTAJAS

El usuario tiende a crearse unas expectativas cuando ve el prototipo de cara al sistema final.

A causa de la intención de crear un prototipo de forma rápida, se suelen desatender aspectos importantes, tales como la calidad y el mantenimiento a largo plazo, lo que obliga en la mayor parte de los casos a reconstruirlo una vez que el prototipo ha cumplido su función.

Page 24: Análisis de Sistemas

MODELO DE PROTOTIPOS: DESVENTAJAS

En aras de desarrollar rápidamente el prototipo, el desarrollador suele tomar algunas decisiones de implementación poco convenientes (por ejemplo, elegir un lenguaje de programación incorrecto porque proporcione un desarrollo más rápido).

Page 25: Análisis de Sistemas

DESARROLLO EN ESPIRAL

Page 26: Análisis de Sistemas

DESARROLLO EN ESPIRALLas actividades de este modelo se conforman en una espiral, en la que cada bucle o iteración representa un conjunto de actividades.Las actividades no están fijadas a ninguna prioridad, sino que las siguientes se eligen en función del análisis de riesgo, comenzando por el bucle interior.

Page 27: Análisis de Sistemas

DESARROLLO EN ESPIRAL

Page 28: Análisis de Sistemas

DESARROLLO EN ESPIRAL: VENTAJASEl análisis del riesgo se hace de forma explícita y clara: Reduce riesgos del proyecto. Incorpora objetivos de calidad. Integra el desarrollo con el mantenimiento,

etc.Además es posible tener en cuenta mejoras y nuevos requerimientos sin romper con la metodología, ya que este ciclo de vida no es rígido ni estático.

Page 29: Análisis de Sistemas

DESARROLLO EN ESPIRAL: DESVENTAJAS Genera mucho tiempo en el desarrollo

del sistema. Modelo costoso. Requiere experiencia en la

identificación de riesgos.

Page 30: Análisis de Sistemas

DESARROLLO POR ETAPAS

Page 31: Análisis de Sistemas

DESARROLLO POR ETAPASEl modelo de desarrollo de software por etapas es similar al Modelo de prototipos ya que se muestra al cliente el software en diferentes estados sucesivos de desarrollo, se diferencia en que las especificaciones no son conocidas en detalle al inicio del proyecto y por tanto se van desarrollando simultáneamente con las diferentes versiones del código.

Page 32: Análisis de Sistemas

DESARROLLO POR ETAPASPueden distinguirse las siguientes fases: Especificación conceptual Análisis de requisitos Diseño inicial Diseño detallado, codificación,

depuración y liberaciónEstas diferentes fases se van repitiendo en cada etapa del diseño.

Page 33: Análisis de Sistemas

DESARROLLO ITERATIVO Y CRECIENTE O ITERATIVO E INCREMENTAL

Page 34: Análisis de Sistemas

DESARROLLO ITERATIVO Y CRECIENTE

Es un proceso de desarrollo de software, creado en respuesta a las debilidades del modelo tradicional de cascada.

El desarrollo incremental e iterativo es también una parte esencial de un tipo de programación conocido como eXtreme Programming (XP) y los demás frameworks de desarrollo rápido de software.

Page 35: Análisis de Sistemas

DESARROLLO ITERATIVO Y CRECIENTE

La idea principal detrás de mejoramiento iterativo, es desarrollar un sistema de programas de manera incremental, permitiéndole al desarrollador sacar ventaja de lo que se ha aprendido a lo largo del desarrollo anterior, incrementando versiones entregables del sistema.

Los pasos claves en el proceso son comenzar con una implementación simple de los requerimientos del sistema, e iterativamente mejorar la secuencia evolutiva de versiones hasta que el sistema completo esté implementado.

Page 36: Análisis de Sistemas

DESARROLLO ITERATIVO Y CRECIENTEEn cada iteración, se realizan cambios en el diseño y se agregan nuevas funcionalidades y capacidades al sistema.El proceso en sí mismo consiste de: Etapa de inicialización. Etapa de iteración. Lista de control de proyecto.

Page 37: Análisis de Sistemas

DESARROLLO ITERATIVO Y CRECIENTE: DESVENTAJAS

Requiere de un cliente involucrado durante todo el curso del proyecto. Hay clientes que simplemente no estarán dispuestos a invertir el tiempo necesario.

Infunde responsabilidad en el equipo de desarrollo al trabajar directamente con el cliente, requiriendo de personal profesionales capacitado.

Page 38: Análisis de Sistemas

DESARROLLO ITERATIVO Y CRECIENTE: DESVENTAJAS

Sufre fuertes penalizaciones en proyectos en los cuales los requerimientos están previamente definidos, o para proyectos "todo/nada" en los cuales se requiere que se completen en un 100% el producto para ser implementado.

Los costos pueden ser superiores a los que podamos usar en nuestros propios recursos

Page 39: Análisis de Sistemas

DESARROLLO RÁPIDO DE APLICACIONES RAD

Page 40: Análisis de Sistemas

DESARROLLO RÁPIDO DE APLICACIONES (RAD)

Es un proceso de desarrollo de software, desarrollado inicialmente por James Maslow en 1980.

El método RAD comprende el desarrollo interactivo, la construcción de prototipos y el uso de utilidades CASE (Computer Aided Software Engineering o Ingeniería de Software Asistido por Computadora).

Page 41: Análisis de Sistemas

DESARROLLO RÁPIDO DE APLICACIONES (RAD)

Hoy en día se suele utilizar para referirnos al desarrollo rápido de interfaces gráficas de usuario, o entornos de desarrollo integrado completos.

Algunas de las plataformas más conocidas son Visual Studio, Delphi, FoxPro, entre otros.

Page 42: Análisis de Sistemas

DESARROLLO UNIFICADO RACIONALRUP

Page 43: Análisis de Sistemas

DESARROLLO UNIFICADO RACIONAL (RUP)

Es un proceso de desarrollo de software desarrollado por la empresa Rational Software, actualmente propiedad de IBM. Junto con el Lenguaje Unificado de Modelado (UML), constituye la metodología estándar más utilizada para el análisis, diseño, implementación y documentación de sistemas orientados a objetos.

Page 44: Análisis de Sistemas

DESARROLLO UNIFICADO RACIONAL (RUP)

El RUP no es un sistema con pasos firmemente establecidos, sino un conjunto de metodologías adaptables al contexto y necesidades de cada organización.

Page 45: Análisis de Sistemas

DESARROLLO UNIFICADO RACIONAL (RUP): PRINCIPALES CARACTERÍSTICAS Forma disciplinada de asignar tareas y

responsabilidades (quién hace qué, cuándo y cómo). Pretende implementar las mejores prácticas en

Ingeniería de Software. Desarrollo iterativo. Administración de requisitos. Uso de arquitectura basada en componentes. Control de cambios. Modelado visual del software. Verificación de la calidad del software.

Page 46: Análisis de Sistemas

DESARROLLO UNIFICADO RACIONAL (RUP): PRINCIPIOSComprende tres principios claves: Dirigido por los Casos de Uso:  los

requerimientos están enfocado a dar valor al cliente y que el proceso debe garantizar que todo el desarrollo, pruebas, planeación, documentación, etc., está orientado a cubrir estas expectativas del cliente y asegurar que los requerimientos de valor se ponen en producción.

Page 47: Análisis de Sistemas

DESARROLLO UNIFICADO RACIONAL (RUP): PRINCIPIOS Centrado en la Arquitectura: hay un

énfasis a diseñar una arquitectura de calidad, y es la arquitectura también la que guía la forma cómo se debe planear y hacer el desarrollo.

Iterativo e Incremental: el proyecto se divide en varios ciclos de vida (llamadas iteraciones) que deben dar como resultado un ejecutable.

Page 48: Análisis de Sistemas

DESARROLLO ÁGIL DE SOFTWARE

Page 49: Análisis de Sistemas

DESARROLLO ÁGIL DE SOFTWARE Son métodos de ingeniería del software

basados en el desarrollo iterativo e incremental, donde los requerimientos 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.

Page 50: Análisis de Sistemas

DESARROLLO ÁGIL DE SOFTWARE El software

desarrollado en una unidad de tiempo es llamado una iteración, la cual debe durar de una a cuatro semanas.

Page 51: Análisis de Sistemas

DESARROLLO ÁGIL DE SOFTWAREAlgunos métodos ágiles de desarrollo de software: 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.

Page 52: Análisis de Sistemas

FORMACIÓN DE EQUIPOS DE TRABAJO

PRÁCTICA