Tarea 2
Tarea 2
Tarea 2
Presentado por:
JAVIER PRIETO MEJIA
Código: 13723575
Grupo: 301404_6
Presentado a:
DIANA JUDITH MENDEZ
Tutora
El proceso comienza con la definición de requisitos por parte del cliente y así se llega a los
objetivos globales del sistema. Con base en los requisitos conocidos se diseña un primer
acercamiento a la solución el cual se implementa como una versión funcional del software. Dicho
prototipo es evaluado por el cliente y así definir nuevos alcances y nuevos requisitos. Por medio
de dichas iteraciones, de un prototipo a otro se logra el sistema completo.
Documentar el desarrollo suele ser tedioso y puede perderse control por parte de los jefes
de proyectos debido a la cantidad de versiones desarrolladas.
Por el otro lado el paradigma por prototipos también cuenta con una aceptación amplia
debido a que el cliente le gusta ver versiones inmediatas de su sistema. También suele
ser muy efectivo para el manejo y la identificación de errores en etapas tempranas del
proceso de desarrollo.
Algunos de los beneficios que ofrecen los ciclos iterativos a las empresas en el momento poner
en marcha un proyecto.
Aunque en principio fueron empleados para procesos de desarrollo de Software, las metodologías
iterativas pueden ser aplicables a cualquier tipo de proyecto, siendo más oportunos para aquellos
de carácter complejo o que no están del todo definidos. También son conocidos como ciclos de
trabajo incrementales, es decir, aquellos en los que tanto el trabajo como el equipo que lo
desarrolla van evolucionando a lo largo de las etapas. Esta evolución se hace patente en los
objetivos, los costes, el cumplimiento de tareas y la satisfacción del cliente. No obstante,
actualmente son muchas las empresas que se mantienen fieles a otros modelos de desarrollo de
trabajo, en los cuales, por lo general, se designan labores desde un nivel alto de jerarquía y los
resultados sólo se presentan al término del proceso. Son los modelos con énfasis en los resultados.
Veamos algunos de los beneficios que ofrecen los ciclos iterativos a las empresas en el momento
de poner en marcha un proyecto:
Análisis de avances:
Al fraccionar el proyecto en etapas, el equipo de trabajo tiene la posibilidad de analizar
los resultados en cada una de ellas e incorporar mejoras para la entrega final. Todo lo
contrario que algunos métodos tradicionales, en los que se fija una fecha de entrega y el
análisis se realiza sobre los resultados finales.
Manejo de riesgos:
Este modelo de planificación por secciones también permite la evaluación de riesgos que
pueden irrumpir durante la ejecución del proceso. Los ciclos iterativos son partidarios de
soluciones parciales en vez de esperar hasta el final para realizar un «análisis macro» del
proyecto.
Retroalimentación:
El llamado «feedback» es unas de las características de los métodos de vida iterativos.
Al plantear un desarrollo dosificado, cada fase propicia el diálogo entre el equipo de
trabajo, el líder del proyecto y, por supuesto, el cliente. Todo lo que deba analizarse o
corregirse debe ir en consonancia con los objetivos propuestos y la satisfacción del
destinatario.
Flexibilidad:
No sólo en cuanto a la introducción de cambios, sino también en las situaciones en que
los objetivos no hayan sido claramente definidos desde el inicio. En estos casos, el
proceso mismo puede ser la oportunidad para fijarlos y llevarlos a cabo.
6) Descripción de las fases de Ciclo de vida y su aplicación para la propuesta de
desarrollo, de acuerdo con el modelo seleccionado.
El ciclo de vida iterativo se basa en una idea simple: Para comprender, diseñar e implementar un
sistema complejo, deben emplearse sucesivas etapas en las que en cada una de ellas se realiza
una evoluciona respectos a la anterior.
Los sistemas complejos que funcionan en la Naturaleza y en el campo de la tecnología han
resultado siempre de la evolución de sistemas más simples.
En cada etapa de desarrollo del sistema es necesario conseguir que sea estable frente a los
cambios que va a suponer su evolución en la siguiente etapa. Las metodologías orientadas a
objetos se construyen alrededor de conceptos como encapsulamiento y modularidad y presentan
una mayor robustez frente a cambios. La orientación a objetos favorece el desarrollo de
programas según un método iterativo.
Básicamente este modelo se basa en dos premisas:
Los usuarios nunca saben bien que es lo que necesitan para satisfacer sus necesidades.
En el desarrollo, los procesos tienden a cambiar.
El proceso en sí mismo consiste de:
Etapa de inicialización
Etapa de iteración
Lista de control de proyecto
Este modelo se suele utilizar en proyectos en los que los requisitos no están claros por parte del
usuario, por lo que se hace necesaria la creación de distintos prototipos para presentarlos y
conseguir la conformidad del cliente.
Las ventajas de este modelo son:
No hace falta que los requisitos estén totalmente definidos al inicio del desarrollo.
Desarrollo en pequeños ciclos lo que permite gestionar mejor los riesgos.
Al usuario se le entrega parte del producto (versiones) para que lo pruebe.
En contra, su principal inconveniente es que el proceso de desarrollo es largo ya que en cada
interación se actualizan las especificaciones.
Faces del ciclo de vida del modelo Iterativo:
Análisis
Diseño del sistema y software
Codificación
Pruebas
7) Descripción del Equipo de Trabajo y de los Roles, según del modelo seleccionado.
Jefe de proyecto
Es el encargado de realizar el análisis de los requerimientos del cliente. De hacer el seguimiento
diario de las tareas y de resolver cualquier problema de comunicación con otros equipos si los
hubiera. En el caso de que este equipo se convierta en cliente de otro equipo, esta persona es la
que se encarga de realizar la comunicación con ellos. Obligatoriamente tiene que tener un
background de programador, necesita entender a los programadores y la problemática a la que se
enfrentan diariamente para poder asegurar que los requerimientos recogen toda la información
necesaria para poder realizar la tarea. Es el responsable de que la implementación de esos
requerimientos se haga correctamente.
Conocimientos y habilidades
Poseer experiencia en el dominio de la aplicación y en el desarrollo del software.
Poseer habilidades para el análisis y manejo de riesgos, estimación, planificación y
análisis de decisión.
Poseer habilidades de presentación, comunicación y negociación.
Mostrar liderazgo y capacidades para la creación de equipos.
Poseer buenas habilidades para manejo de tiempo y un historial de tomas de decisiones
rápidas y efectivas bajo tensión.
Poseer buenas habilidades interpersonales y mostrar ser juicioso en la selección del
personal.
Estar enfocado en la entrega de valor del cliente, de forma talque exactamente se
cumplan con las necesidades del cliente.
Analista
El rol de analista será responsable de analizar los procesos de negocios, especificar los requisitos
y diseñar la interfaz usuario. Debe estar muy relacionado con los interesados en el negocio para
determinar claramente las funcionalidades del sistema. Se debe destacar que si en la entidad es
posible contar con personal especializado que pueda asumir el diseño de interfaz usuario sería
conveniente que se destinara a dicha función, trabajando estrechamente relacionado con el
analista.
Conocimientos y habilidades
Poseer conocimiento del dominio del negocio.
Comprender los requerimientos de todos los interesados en el negocio, sus estrategias y
metas.
Ser un buen facilitador y poseer excelentes habilidades para la comunicación oral y
escrita.
Facilitar el modelamiento del negocio.
Tomar parte en la definición de requerimientos del producto final del proyecto.
Apreciar y evaluar la situación de la organización donde el producto final del proyecto
será instalado.
Realizar un análisis costo-beneficio para cualquier cambio sugerido en el proyecto.
Discutir y soportar a quienes compran y venden el producto final del proyecto.
Estar familiarizado con las herramientas utilizadas en la captura del modelo del negocio.
Estar familiarizado con todas las herramientas usadas para capturar requerimientos.
Diseñador
El rol del diseñador debe definir las responsabilidades, operaciones, atributos y relaciones de una
o varias clases y determinar cómo ajustarlas al ambiente de implementación. Es responsable de
diseñar la base de datos definiendo las tablas, los índices, las vistas, las restricciones, triggers,
los procedimientos o parámetros de almacenamiento, así como todo aquello que resulte necesario
para almacenar, recuperar y borrarlos objetos persistentes.
Conocimientos y habilidades
Requerimientos del sistema.
Técnicas de diseño de software, incluyendo técnicas de análisis y diseño orientado a
objetos y UML.
Técnicas de diseño de bases de datos.
Tecnologías con las cuales el sistema ha sido implementado.
Comprender la arquitectura del sistema, como fue representada por el arquitecto.
Comprender el rol de probador del sistema.
Conocer en general los principios del manejo de la configuración.
Programador
El rol de programador debe implementar componentes, localizar y corregir defectos. De
acuerdo con la entidad donde se aplique la plantilla de roles, es posible que en algunos casos
este rol deba asumir la responsabilidad de implementar componentes y subsistemas de
prueba, así como desarrollar artefactos de instalación.
Conocimientos y habilidades
Ser un comunicador persuasivo que sea capaz de detectar y discutir aspectos
sensibles.± Técnicas de modelamiento del sistema.
Requerimientos del sistema.
Técnicas de diseño de software, incluyendo técnicas de análisis y diseño orientado a
objetos y UML.
Tecnologías con la cual el sistema ha sido implementado.
Base de datos y técnicas de análisis y diseño orientadas a objetos.
Administración de Base de Datos.
Comprensión del ambiente y el lenguaje de implementación.
Poseer conocimientos y habilidades de programación.
Probador
Es el rol responsable de la planificación, diseño, implementación y evaluación de la prueba, que
incluye generar el plan y el modelo de prueba, implementar los procedimientos de prueba, evaluar
la envergadura y resultados de las pruebas y su efectividad así como generar un resumen de la
evaluación de la prueba.
Conocimientos y habilidades
Poseer conocimiento del sistema o aplicación a probar.
Poseer conocimiento de pruebas y herramientas de pruebas automáticas.
Poseer habilidades para el diagnóstico y la solución de problemas.
Poseer habilidades de programación.
Especialista de soporte
Se recomienda que en las empresas exista un departamento de soporte, donde se designe un
especialista que colabore con el equipo de desarrollo del proyecto, interactuando esencialmente
con el arquitecto y el programador.
Conocimientos y habilidades
Dar soporte (con herramientas y procesos) respecto al desarrollo de la organización.
Seleccionar y adquirir herramientas.
Configurar los procesos.
Entrenar al personal.
Especialista de calidad
Se recomienda que en las empresas exista un departamento de calidad que designe especialista(s)
para colaborar con cada proyecto. Este especialista debe ajustar el plan de calidad definido por
el departamento a las características propias del proyecto para establecer su plan de calidad.
Además, tiene la responsabilidad de definir, documentar y publicar el proceso de desarrollo a
seguir. Debe influir en el trabajo de todos los roles involucrados en el proceso de desarrollo,
controlar los resultados de las inspecciones y reuniones de equipo, garantizando que se mantenga
actualizada la agenda del proyecto y que el producto obtenido esté libre de defectos.
Conocimientos y habilidades
Orientación a metas.
Poseer conocimiento del sistema.
Tener experiencia en el dominio de la ingeniería de software.
Dominar alguna metodología de desarrollo de software.
Estar actualizado en las tendencias actuales de los estándares de calidad y métodos de
mejora de procesos.
Especialista de seguridad
Se recomienda que en las empresas exista al menos un especialista en seguridad, teniendo en
cuenta que puede dificultarse encontrar suficiente personal capacitado para tener un
departamento dedicado a estas cuestiones. Este rol tiene la responsabilidad de dictar las políticas
de seguridad y protección que deberán seguirse en el diseño, implementación e implantación del
sistema, y debe trabajar estrechamente vinculado con el diseñador y el arquitecto.
Interesados en el negocio (Clientes)
Los interesados en el negocio son individuos u organizaciones cuyos intereses puedan resultar
afectados positiva o negativamente como resultado de la ejecución o finalización del proyecto.
En este grupo se encuentran entre otros, los clientes, los usuarios finales y los inversionistas.
Instalador
El rol de instalador tiene la responsabilidad de diseñar y desarrollar los instaladores del sistema
además de elaborar la documentación técnica como manuales de usuario y textos de ayuda. Se
encarga de planificar la transición del producto a la comunidad de usuarios. Para ser efectivo
debe trabajar estrechamente vinculado con el jefe del proyecto.
Conocimientos y habilidades
Experiencia en el desarrollo de sistemas.
Habilidades de comunicación y coordinación con el objetivo de estar actualizado sobre
el estado del desarrollo del producto y comunicar las necesidades de las actividades de
implementación al resto del equipo de proyecto.
Capacidad de planificación con vistas a asegurar que la implementación pueda ejecutarse
acorde con lo planificado y con los recursos disponibles.
Poseer experiencia y(o) estar entrenado en la escritura técnica.
Poseer experiencia o entrenamiento en desarrollar sistemas de ayuda y(o) sitios Web.
Poseer conocimientos sobre el dominio a documentar.
Poseer buenas habilidades de comunicación por que frecuentemente requiere hacer
entrevistas a diseñadores, probadores y usuarios con el objetivo de generar una
documentación correcta y útil.
Usuario Final
El usuario final debe tener una estrecha relación con el implantador recibiendo de este los
manuales correspondientes para comenzar la explotación del sistema.
De manera que teniendo en cuenta los aportes de los compañeros se propusieron como
herramientas para el desarrollo del proyecto las siguientes:
Herramienta Descripción
Libre office Editor de texto
Gimp Editor de Imágenes
Inkscape Editor Vectorial
Lucidchart Generador de modelos gráficos
Visual Studio Code Generador de código
Android Studio Compilador, depurador y generador
MySQL data base Gestor
Aptana Studio Diseñador de páginas web Dinámicas
ProyectLibre Administrador del proyecto
Métodos de control
Introducción
El proceso de desarrollo de software propuesto se basa en el ciclo de vida incremental, ya que
combina elementos del modelo en cascada aplicado en forma iterativa y aplica secuencias
lineales de manera escalonada conforme avanza el tiempo. Además, se basa en el
comportamiento del modelo en espiral, el cual realiza el análisis de los riesgos al final de cada
iteración de desarrollo, y con base en el resultado de este análisis se realiza el plan de cada
incremento. Este proceso se repetirá de manera cíclica en cada incremento, esto se realizara hasta
llegar al producto final.
Para la ejecución del proceso se elaboraron una serie de documentos, diagramas, formatos,
instructivos y actas que permiten el registro de las actividades de cada proceso.
Administración de requerimientos
El proceso de administración de requerimientos define los lineamientos y pautas para administrar
los requerimientos de un sistema de forma simple y consistente, para garantizar mantener la
trazabilidad y controlar los cambios de los mismos durante la ejecución del ciclo de vida de
desarrollo del software.
La base para la definición del proceso de administración de requerimientos es el área de procesos
Requirements Management (REQM) del modelo CMMI Development versión 1.3
(Capability Maturity Model Integration), que reúne un conjunto de prácticas que orientan y
garantizan la correcta administración de los requerimientos durante la ejecución de un proyecto
de desarrollo de software.
El diagrama muestra el flujo de información entre las actividades del proceso de administración
de requerimientos, incluyendo los productos de trabajo generados durante el proceso.
Aseguramiento de calidad
SQA es un set de actividades sistemáticas que aseguran que el proceso del software y productos
conformados por requerimientos, estándares, y procedimientos. Los procesos incluyen todas las
actividades involucradas en el diseño, codificación, pruebas y mantenimiento; Los productos
incluyen software, datos asociados, documentación, y toda la documentación para soporte y
reportes, que tienen como propósito Proporcionar visibilidad sobre los procesos utilizados por
el proyecto de software y sobre los productos que genera.
Ilustración 4. ASQ (aseguramiento de calidad del software), tomado de:
https://memberfiles.freewebs.com/62/78/79627862/photos/falfaro01SAU2011/programa%20de%20aseguramiento%20
y%20mejora%20de%20calidad.jpg, el día 4/06/2019.
Gestión de Configuración
El proceso de gestión de configuración define los lineamientos y pautas para administrar la
configuración del proyecto de forma simple, de tal manera que se conserve la integridad en los
productos de trabajo durante la ejecución del proyecto.
La base para la definición del proceso de gestión de configuración es el área de procesos
Configuration Management (CM) del modelo CMMI Development versión 1.3 (Capability
Maturity Model Integration), que reúne un conjunto de prácticas que orientan y garantizan la
correcta gestión de la configuración del proyecto durante la ejecución de un proyecto de
desarrollo de software.
Los siguientes diagramas muestran el flujo de información entre las actividades de los
subprocesos del proceso de gestión de configuración, incluyendo los productos de trabajo
generados durante los subprocesos.
Subproceso de Administración de la configuración del proyecto:
Medición y análisis
El proceso de medición y análisis define los indicadores de medición que se implementarán en
los proyectos de desarrollo de software, los cuales permitirán medir el grado de adaptación del
proyecto a los procesos definidos para su ejecución y tomar las acciones correctivas necesarias
para minimizar los errores y garantizar la calidad del producto final.
La base para la definición del proceso de medición y análisis es el área de procesos
Measurement and Analysis (MA) del modelo CMMI Development versión 1.3 (Capability
Maturity Model Integration), que reúne un conjunto de prácticas que orientan y garantizan la
correcta definición, administración y aplicación de los indicadores de medición durante la
ejecución de un proyecto de desarrollo de software.
El diagrama muestra el flujo de información entre las actividades del proceso de medición y
análisis, incluyendo los productos de trabajo generados durante el proceso.
Seguridad y control
El proceso de seguimiento y control define los mecanismos de seguimiento con los cuales se
controlarán las actividades del proyecto, para garantizar su ejecución dentro del alcance, tiempo
y costo definidos.
La base para la definición del proceso de seguimiento y control es el área de procesos Project
Monitoring and Control (PMC) del modelo CMMI Development versión 1.3 (Capability
Maturity Model Integration), que reúne un conjunto de prácticas que orientan y garantizan la
correcta definición y ejecución de las actividades de seguimiento durante la ejecución de un
proyecto de desarrollo de software.
El diagrama muestra el flujo de información entre las actividades del proceso de seguimiento y
control, incluyendo los productos de trabajo generados durante el proceso.
CONCLUCIONES
La elaboración de prototipos es un enfoque de construir un poco y probar un poco,
antes de construir el sistema final.
El profesional de sistema se encuentra ante una excelente técnica de relevamiento de
información, obteniendo Reacciones del Usuario, Sugerencias, Innovaciones,
Prioridades.
Los resultados de un acoplamiento estrecho entre el usuario, el profesional de sistema y
los modelos reducen el vacío entre lo que los usuarios piensan de los sistemas y lo que
realmente obtiene. Al usuario se lo introduce directamente en el desarrollo de manera
que la aplicación se convierta en su proyecto, comunicando mejor sus requerimientos,
reduciendo la habilidad del profesional de sistema en traducir los requerimientos.
El usuario prueba algo, ve lo que sucede, luego lo modifica, esta interacción
proporciona una retroalimentación instantánea y le permite ver al usuario ver
inmediatamente sus resultados y modificar el modelo tantas veces como sea necesario
antes de su terminación. Los pasos de análisis, diseño y construcción se combinan en un
flujo interactivo que es el paso clave.
Uso de protocolos y estándares abiertos para comunicaciones y programación,
facilitando el paso de mensajes y datos entre módulos y métodos internos y externos.
Diversos lenguajes de programación, realizando implementación de algunos
módulos en lenguajes que ofrezcan mejores condiciones que otros en ambientes
particulares de uso.
Siguiendo las actividades sugeridas en el modelo, se presentan beneficios al tener una
estructura homogénea y clara reflejada en el diseño y la codificación del producto de
software.
Bibliografía
[Ciclos de vida para gestionar un proyecto software: cascada, espiral, iterativo, incremental o ágil].
(s.f.). Recuperado 7 junio, 2019, de https://www.javiergarzas.com/2013/07/ciclos-de-vida-
software.html