Análisis de Sistemas
description
Transcript of Análisis de Sistemas
ANÁLISIS DE SISTEMASIng. Jaime Steven Ramírez Flor
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.
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.
¿EN QUÉ CONSISTE EL 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.
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.
CICLO DE VIDA DEL SOFTWARE
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”.
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”.
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”
ETAPAS DEL PROCESO DE LA I.S.
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.
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
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)
MODELO EN CASCADA
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.
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.
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.
MODELO DE PROTOTIPOS
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á.
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.
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.
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.
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).
DESARROLLO EN ESPIRAL
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.
DESARROLLO EN ESPIRAL
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.
DESARROLLO EN ESPIRAL: DESVENTAJAS Genera mucho tiempo en el desarrollo
del sistema. Modelo costoso. Requiere experiencia en la
identificación de riesgos.
DESARROLLO POR ETAPAS
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.
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.
DESARROLLO ITERATIVO Y CRECIENTE O ITERATIVO E INCREMENTAL
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.
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.
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.
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.
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
DESARROLLO RÁPIDO DE APLICACIONES RAD
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).
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.
DESARROLLO UNIFICADO RACIONALRUP
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.
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.
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.
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.
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.
DESARROLLO ÁGIL DE SOFTWARE
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.
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.
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.
FORMACIÓN DE EQUIPOS DE TRABAJO
PRÁCTICA