Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
10/06/2019 1 Sistemas de Información Ciclo de Vida de Desarrollo de Sistemas EL CICLO DE VIDA DE DESARROLLO DE SISTEMAS Necesidad de una metodología Cuando surgió la necesidad de adaptar los sistemas informáticos a las exigencias del mercado: el programador realizaba un relevamiento de las solicitudes de quien necesitaba cierto programa o producto software y con aquellos requerimientos bajo el brazo comenzaba la dura tarea de codificar Esta tarea no estaba administrada, su- pervisada o gestionada de ningún modo, por lo que se iba corrigiendo a medida que surgían los errores: code & fix (codificar y corregir) 10/06/2019 2 EL CICLO DE VIDA DE DESARROLLO DE SISTEMAS Necesidad de una metodología Por otro lado, cuando el sistema no es pequeño o es más complejo de lo pensado, este método tiene grandes desventajas, considerando el costo de recursos, que será mayor que el previsto ya que se incrementará el tiempo de desarrollo y la calidad del código (con correcciones, parches, etc.) será bastante dudosa. Metodología La metodología para el desarrollo de software es un modo sistemático de realizar, gestionar y administrar un proyecto para llevarlo a cabo con altas posibilidades de éxito. Esta sistematización nos indica cómo dividiremos un gran proyecto en módulos más pequeños llamados etapas, y las acciones que corresponden en cada una de ellas, nos ayuda a definir entradas y salidas para cada una de las etapas y, sobre todo normaliza el modo en que administraremos el proyecto Proyectos de Sistemas Un proyecto informático es un sistema de cursos de acción simultáneos y/o secuenciales que incluye personas, equipamientos de hardware, software y comunicaciones, enfocados en obtener uno o más resultados deseables sobre un sistema de información. El inicio de un proyecto informático generalmente está dado en la solicitud de requerimientos de los usuarios, y siendo que los diferentes sistemas de Información abordan los diferentes tipos de problemas organizacionales, será necesario pensar para cada tipo de sistema la planificación de proyecto correcta. 10/06/2019 3 Ciclo de Vida de Sistemas La ISO, International Organization for Standardization, en su norma 12207 define al ciclo de vida de un software como un marco de referencia que contiene las actividades y las tareas involucradas en el desarrollo, la explotación y el mantenimiento de un producto software, abarcando desde la definición hasta la finalización de su uso. Al conjunto de las fases empleadas se le denomina “ciclo de vida”. La forma de agrupar las actividades, los objetivos de cada fase, los tipos de productos intermedios que se generan, etc. pueden ser muy diferentes dependiendo del tipo de producto o proceso a generar y de las tecnologías empleadas En cada una de las etapas de un modelo de ciclo de vida, se pueden establecer una serie de objetivos, tareas y actividades que lo caracterizan. Existen distintos modelos de ciclo de vida, y la elección de un modelo para un determinado tipo de proyecto es realmente importante; el orden de las etapas es uno de estos puntos importantes Ciclos de vida CONCEPTO DE CICLO DE VIDA “Una aproximación lógica a la adquisición, el suministro, el desarrollo, la explotación y el mantenimiento del software” IEEE 1074 “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 desu uso” ISO 12207-1 10/06/2019 4 Etapas Principales • Desde un punto de vista general el ciclo de vida de un software tiene tres etapas claramente diferenciadas: • Planificación: planeamiento detallado que guía la gestión del proyecto temporal y económicamente. • Implementación: conjunto de actividades que componen la realización del producto. • Puesta en Producción: etapa de definición. Presentación al clientes. Aprobación del producto. Planificación Implementación Puesta en Producción Otras dos etapas importantes • Inicio: Nacimiento de la Idea. Definir objetivos del proyecto y recursos necesarios. Hacia donde se orienta el proyecto y como se realizará • Control en Producción: control del producto software, analizando como difiere de los requerimientos originales, iniciando las acciones correctivas que fuesen necesarias. Liderazgo, documentación y capacitación Planificación Implementación Puesta en Producción Inicio CONTROL 10/06/2019 5 Modelos de Ciclos de Vida Las diferencias entre los modelos de ciclos de vida están divididas en tres grandes visiones: •El Alcance del ciclo de vida: hasta donde deseamos llegar con el proyecto, como también si es viable el desarrollo completo o el desarrollo completo mas actualizaciones y mantenimiento. •La cualidad y cantidad de etapas en las que dividimos el ciclo de vida, adecuadas al proyecto que se proponga. •La estructura y la sucesión de etapas: si existe realimentación entre ellas y si es posible repetirlas, iterar. Etapas de un Ciclo de Vida (Según Kendall) •Identificación de Problemas Oportunidades y Objetivos •Determinación de los requerimientos de Información •Análisis de las Necesidades del Sistema •Diseño del Sistema recomendado •Desarrollo y Documentación •Pruebas y Mantenimiento del Sistema •Implementación y Evaluación del Sistema 10/06/2019 6 Ciclo de Vida Lineal Es el mas sencillo de todos los modelos. Consiste en descomponer la actividad global del proyecto en etapas separadas, realizadas linealmente, cada etapa se realiza una sola vez, a continuación de la etapa anterior, y antes de la siguiente, sin retroalimentación. Ventaja: sencillez en la gestión y administración tanto económica como temporal. Desventaja: no es apto para desarrollos que necesiten de retroalimentación entre etapas, ya que es muy costoso retomar una etapa anterior al detectar alguna falla. 10/06/2019 7 Encuesta Análisis Diseño Preliminar Estudio de Hardware Diseño Detallado Codificacion Prueba de Unidad Prueba de Sub Sistema Prueba de Sistema Requerimientos del usuario Especificación funcional Calendario Presupuesto Necesidades de rendimiento Necesidades de rendimiento Pedido del hardware Especificación del Sistema Configuración final Especificación del Programa Módulos codificados Módulos Probados Subsistemas Probados Sistema Probado Requerimientos del Usuario 1 Encuesta 2 Análisis 4 Estudio del Hardware 3 Diseño Estructurado 5 Implantación Descendente Documento de factibilidad Necesidades de rendimiento Pedido del Hardware Calendario Estimado Requerimientos del usuario Especificación Funcional del Sistema Datos de Configuración del Hardware Diseño por paquetes Plan de pruebas 10/06/2019 8 Se distinguen dos aspectos: 1. Tendencia fuerte a la implantación ascendente del sistema. Requerimientos del sistema→software→análisis→diseño del programa→codificación→pruebas→ operaciones 2. Insistencia en la progresión lineal y secuencial de una fase a la siguiente. Dificultades: • No refleja realmente el proceso de desarrollo del software • Se tarda mucho tiempo en pasar por todo el ciclo • Perpetua el fracaso de la industria del software en su comunicación con el usuario final • El mantenimiento se realiza en el código fuente • Las revisiones de proyectos de gran complejidad son muy difíciles • Impone una estructura de gestión de proyectos. CASCADA TRADICIONAL 10/06/2019 9 CICLO DE VIDA ITERATIVO (Incremental) Ventajas y Desventajas •Se evitan proyectos largos y se entrega “Algo de valor” a los usuarios con cierta frecuencia •El usuario se involucra más •Difícil de evaluar el coste total •Difícil de aplicar a sistemas transaccionales que tienden a ser integrados y a operar como un todo •Requiere gestores experimentados •Los errores en los requisitos se detectan tarde. •El resultado puede ser muy positivo 10/06/2019 10 Modelode Prototipo El Prototipado Rápido 10/06/2019 11 Ventajas y Desventajas No modifica el flujo del ciclo de vida Reduce el riesgo de construir productos que no satisfagan las necesidades de los usuarios Reduce costos y aumenta la probabilidad de éxito Exige disponer de las herramientas adecuadas No presenta calidad ni robustez Una vez identificados todos los requisitos mediante el prototipo, se construye el producto de ingeniería. 10/06/2019 12 PELIGROS DEL PROTOTIPO • El cliente ve funcionando lo que para él es la primera versión del prototipo que ha sido construido con “plastilina y alambres”, y puede desilusionarse al decirle que el sistema aun no ha sido construido. • El desarrollador puede caer en la tentación de ampliar el prototipo para construir el sistema final sin tener en cuenta los compromisos de calidad y de mantenimiento que tiene con el cliente Para que sea efectivo • Debe ser un sistema con el que se pueda experimentar • Debe ser comparativamente barato (< 10%) • Debe desarrollarse rápidamente • Énfasis en la interfaz de usuario • Equipo de desarrollo reducido • Herramientas y lenguajes adecuados “El prototipado es un medio excelente para recoger el ‘feedback’ (realimentación) del usuario final” 10/06/2019 13 Ciclo de Vida Evolutivo – Prototipo Evolutivo Luego de cada desarrollo obtenemos una nueva versión del producto Este prototipo acepta que los requerimientos del usuario pueden cambiar en cualquier momento. Los requerimientos evolucionan durante el desarrollo y surgen nuevos requerimientos a cumplir. El modelo de ciclo de vida evolutivo afronta este problema mediante una iteración de ciclos: requerimientos-desarrollo-evaluacion. Modelo en Espiral 10/06/2019 14 ▪ Trata de mejorar los ciclos de vida clásicos y prototipos. ▪ Permite acomodar otros modelos ▪ Incorpora objetivos de calidad y gestión de riesgos ▪ Elimina errores y alternativas no atractivas al comienzo ▪ Permite iteraciones, vuelta atrás y finalizaciones rápidas ▪ Cada ciclo empieza identificando: ▪ Los objetivos de la porción correspondiente ▪ Las alternativas ▪ Restricciones ▪ Cada ciclo se completa con una revisión que incluye todo el ciclo anterior y el plan para el siguiente Ventajas 10/06/2019 15 Ciclo de Vida con Componentes • Muchas veces se necesita un producto en tiempo récord, o se desea administrar el proyecto despreocupándonos por una o varias etapas (principalmente la etapa de implementación). En los últimos años se empezó a considerar ciclo de vida con componentes al ensamblaje de software desarrollado por terceros en programas propios Ciclo de Vida en V 10/06/2019 16 Ciclo de Vida en V •Ideal, por su robustez, para proyectos pequeños, con equipos de una a cinco personas. •En los niveles lógicos del 1 al 4, para cada fase del desarrollo, existe una fase correspondiente o paralela de verificación o validación→resultado verificable. •La proximidad entre una fase del desarrollo y su fase de verificación correspondiente va decreciendo a medida que aumenta el nivel dentro de la V. •El nivel 1 está orientado al “cliente”. El inicio del proyecto y el fin del proyecto constituyen los dos extremos del ciclo. Se compone del análisis de requisitos y especificaciones, se traduce en un documento de requisitos y especificaciones. •El nivel 2 se dedica a las características funcionales del sistema propuesto. Puede considerarse el sistema como una caja negra, y caracterizarla únicamente con aquellas funciones que son directa o indirectamente visibles por el usuario final, se traduce en un documento de análisis funcional. •El nivel 3 define los componentes hardware y software del sistema final, a cuyo conjunto se denomina arquitectura del sistema. •El nivel 4 es la fase de implementación, en la que se desarrollan los elementos unitarios o módulos del programa. Ciclo de Vida Orientado a Objetos Cada funcionalidad o requerimiento solicitado por el usuario, es considerado un objeto 10/06/2019 17 Peligros de cometer un error técnico importante. Si el administrador de proyectos se enfrenta ante una situación en la cual él no tiene experiencia, es recomendable utilizar una implantación clásica, porque así va conociendo poco a poco el sistema. En cambio si está en una situación donde tendrá una infraestructura totalmente nueva (equipos, SMBD, sistema operativo, telecomunicaciones), es recomendable utilizar la implantación estructurada, debido a que así con la versión esqueleto o primaria del sistema explorará los posibles problemas de interacción e interfaz entre los componentes de los diferentes proveedores. Personal que interviene en el Desarrollo de Sistemas No se puede lograr un perfeccionamiento o un cambio en las instituciones si no se logra un cambio en su componente más importante RECURSO HUMANO dentro del entorno de la gestión de información en las organizaciones •Conocer y saber aplicar las tecnologías de la información y comunicación, •Conocer el esquema de la organización empresarial y los recursos humanos, •Diseñar sistemas de información, incluyendo la legislación, y el marketing de los servicios. A P T I T U D E S 10/06/2019 18 Sistemas y Personas Es necesario garantizar el entendimiento entre dos mundos que tradicionalmente parecen hablar idiomas diferentes, y hacerlo de forma efectiva en tiempo, esfuerzo y coste Necesidades de aprendizaje en cuanto a sistemas y tecnologías de información de las dos clases de empleados: Usuarios Finales y Personal de Sistemas de Información •Aprendizaje funcional contra aprendizaje organizacional •Educación contra entrenamiento •Conocimientos contra habilidades •Eficiencia contra deficiencia 5 grupos de personas involucradas con el Sistema de Información: 1. Dueños del Sistema 2. Usuarios del Sistema 3. Diseñadores de Sistemas 4. Constructores de Sistemas 5. Profesionales de Sistemas (Líderes del Proyecto: Analistas, Licenciados, Ingenieros) Usuarios Internos: Son aquellos empleados del negocio para el cual se está construyendo el sistema y son el mayor porcentaje de usuarios de un sistema. • Empleados administrativos y de servicios: realizan los procesos del día a día, procesan órdenes, facturas, pagos etc. Ellos capturan los datos en el sistema. • Staff técnico y profesional: son empleados que realizan tareas especializadas ej. Abogados, ingenieros, científicos etc. • Supervisores, mandos medios y ejecutivos: son los empleados que toman decisiones, ya sea decisiones del día a día (supervisores), de corto plazo (mandos medios) o largo plazo (ejecutivos). Usuarios Externos: El uso de Internet ha permitido extender los límites de las organizaciones, de forma que se ha generado un aumento de usuarios externos, dentro de los cuales podemos mencionar: • Clientes: son cualquier organización o persona(s) que compren nuestros productos o servicios. como por ejemplo las compras online. • Surtidor o Proveedor: cualquier organización en la cual nuestra compañía compre insumos. • Socios: cualquier organización a la cual nuestra compañía compre servicios o de la que sea socio. Ejemplo: mantenimiento, manejo de la red, outsourcing, etc. • Empleados no de oficina: si bien son empleados que trabajan en relación de dependencia no realizar trabajos administrativos. Ejemplo: representantes de venta, empleados que puedan trabajar remotamente en el sistema. 10/06/2019 19 Diseñadores de Sistemas Son técnicos especializados que traducen los requerimientos de los usuarios del negocio en soluciones técnicas. Ellos diseñan: bases de datos, entradas y salidas del sistema, pantallas, redes y software que se puede adaptar a los requerimientos del usuario Su rol es la construcción del sistema de acuerdo a las especificaciones dadas por el diseñador de sistemas. Constructores del Sistema Es un especialista que estudia los problemas y necesidades de una organización para determinar cómo las personas, datos, procesos y la tecnología de la información pueden en conjunto mejorarun negocio. Profesionales del Sistema Profesionales de Sistemas Roles: El Rol de Consultor El Rol de Experto en Soporte Técnico El rol de Agente de Cambio Cualidades •solucionador de problemas •comunicador con capacidad para relacionarse con los demás •persona autodisciplinada y automotivada •capacidad de administrar y coordinar los innumerables recursos de un proyecto, incluyendo a otras personas. 10/06/2019 20 El Proceso de Desarrollo del Software “ el desarrollo del software es un proceso social de aprendizaje….” El proceso proporciona una interacción entre los usuarios y los diseñadores, entre los usuarios y las herramientas de desarrollo, y entre los diseñadores y las herramientas de desarrollo (La tecnología). Es un proceso interactivo donde la herramienta de desarrollo se usa como medio de comunicación, con cada iteración del diálogo se obtiene mayor conocimiento de las personas involucradas.” ¿Quién lo hace? Los ingenieros de software y sus gestores adaptan el proceso a sus necesidades y lo siguen. Las personas que han solicitado el software tienen un papel importante en el proceso del mismo. ¿Por qué es importante? Proporciona estabilidad, control y organización a una actividad que si no se controla desde su comienzo tiende a volverse caótica. ¿Cómo estar seguro de que lo he hecho correctamente? La calidad, oportunidad y viabilidad a largo plazo del producto que se está construyendo, son los mejores indicadores de la eficiencia del proceso que estamos utilizando. Tipos de Desarrollo • Desarrollo Interno •Desarrollo Externo •Adquisición de aplicaciones estandarizadas •“Outsourcing” o tercerización •Tercerización transformacional
Compartir