martes, 17 de marzo de 2020

Diseño de arquitectura

DISEÑO DE ARQUITECTURA

El diseñó de arquitectura es de vital importancia para el buen desarrolló de un sistema, ya que mediante este diseñó se representa la estructura de los datos y los componentes del programa que se requieren para construir o ejecutar 
un sistema basado en un PC o computadora.
Esto se ve más a fondo en la ARQUITECTURA DE SOFTWARE, ya que desde el momento en que desarrolló el programa que se dividió en módulos, las personas encargadas de la creación de éstos programas han sido los encargados de el buen funcionamiento y el ensamble de el software y la arquitectura del equipo en el que se desea implementar.


IMPORTANCIA DE LA ARQUITECTURA 

La arquitectura es de suma importancia al momento de desarrollar software innovador.
La arquitectura permite crear un modelo estructurado del sistema sobre el cual se va a trabajar, por esta y más razones es de vital importancia la arquitectura, debido a que es necesario tener un plano sobre el cual guiarnos y tomar decisiones correctas al momento de desarrollar. 
Si empezáramos a desarrollar un nuevo proyecto sin tener en cuenta la arquitectura de dicho proyecto es probable que se pierda el objetivo final o que no se logre en absoluto todo lo inicialmente propuesto.



domingo, 23 de febrero de 2020

La información que podrás encontrar en este documento esta basada en las Metodologías de Desarrollo de Software, donde se explicara breve mente en que consiste cada modelo.



DESARROLLO ÁGIL 



El desarrollo ágil de software, se puede definir como una metodología de gestión adaptativa, que permite llevar a cabo, proyectos de desarrollo de software, haciendo que los desarrolladores se adapten a los cambios y evolucionen de forma conjunta con el software a desarrollar.  
La metodología ágil permite que el grupo encargado del software este en capacidad y en derecho de tomar decisiones y actuar sobre ellas en tiempo real, en lugar de esperar respuestas de otras instancias superiores al equipo encargado de dicho desarrollo.  


                      Fuente: Ciclo de vida (Adaptativa)
                                                                                                                                                                                                                      pmoinformatica.com      
                                                                                                                                                                                                    Realizado: GoConqr                         

                                                                                                                                 


IMPORTANCIA DEL CLIENTE 



El cliente debe estar dispuesto a hacer un acompañamiento continuo al desarrollo del proyecto, desde el momento en el que se levanten los requerimientos, el cliente esta en la obligación de expresar absolutamente todo lo que se quiere implementar en el software. 
La importancia es satisfacer al cliente, mediante la entrega temprana y continua mediante la entrega temprana y continua del software con valor.


MODELOS DE DESARROLLO DE SOFTWARE 


Existen diferentes modelos de desarrollo los cuales son:

  • Modelo Cascada: Es un proceso de desarrollo secuencial, en el desarrollo de software se considera como un conjunto de etapas que se ejecuta una tras otra. También ocurre en cierto numero limitado de nuevos esfuerzos de de desarrollo, pero sólo cuando los requerimientos están bien definidos y tienen una estabilidad razonable. Este modelo sugiere un enfoque practico sistemático y secuencial, el cual se basa en etapas: 

  1. Comunicación 
  2. Planeación 
  3. Modelo
  4. Construcción 
  5. Despliegue 


  • Modelo Espiral: Es un modelo evolutivo del proceso del software y se acopla con la naturaleza iterativa de hacer prototipos con los aspectos controlados y sistemáticos del modelo cascada.


METODOLOGÍA XP


La metodología XP se basa en el desarrollo ágil tomando como objetivo principal aumentar la productividad al momento de desarrollar un proyecto software. Es una metodología donde la retroalimentación es una base para su proceso continuo en lugar de bloques. Usa un enfoque orientado a objetos como paradigma preferido de desarrollo. 
XP optimiza los tiempos y se adapta al desarrollo de sistemas grandes y pequeños sin mayor documentación, el código es claro y simple.
El proceso que realiza XP es el siguiente: 



                                                                                                                                Fuente: Metodologías ágiles mas usadas
                                                                                                                                                                                               Metodología y soporte de software                                  
                                                                                                                                                                            Realizado: CANVA Diseño                         



DAS (Desarrollo Adaptativo de Software)


Fue propuesto por Jim Highsmith como una técnica para elaborar software y sistemas complejos. La metodología DAS se centra en la colaboración humana y en la organización propia del equipo.

DAS tiene un funcionamiento cíclico y reconoce que en cada interacción se reconocerá cambios o incluso errores lo que hace que sea un sistema guiado por riesgos. Se efectúa en un ciclo de vida compuesto por tres fases las cuales son: especulación, Colaboración, aprendizaje cada una de estas contribuye al lanzamiento del software. 


                                                                                                                     Fuente: Desarrollo adaptativo software
                                                                                                                                                                                          Das Desarrollo  Software - Jose Martin

                                                                                                                         Realizado: Draw.io


SCRUM 


Es un  proceso de gestión que reduce la complejidad en el desarrollo de productos para satisfacer las necesidades de los clientes. Scrum realiza entregas parciales y regulares del producto final. Este proceso esta especialmente enfocado para el desarrollo de proyectos en entornos complejos y se necesita obtener resultados de manera rápida, ademas los requisitos son cambiantes o pocos definidos por el cliente.

Es un marco de trabajo de procesos ágiles que trabaja con el ciclo de vida iterativo, donde se va entregando los productos de forma periódica, esto hace que se realicen entregas regulares y parciales (sprint) del producto final. 


MDSD (Método de desarrollo de Sistemas Dinámicos)


MDSD es un método que provee un framework para el desarrollo ágil de software, apoyado por su continua implicación del usuario en un desarrollo iterativo y creciente que sea sensible a los requerimientos cambiantes. 

Nos proporciona una estructura para construir y dar mantenimiento a sistemas que cumplan restricciones apretadas de tiempo mediante la realización de prototipos incrementales en un ambiente controlado de procesos. 
MDSD consiste en tres fases:


                                                                                                                                                                                           Fuente: Métodos Dinámicos MDSD
                                                                                                                                                             
                                                                                                                                                               Realizado: Draw.io 



La fase del ciclo de vida de MDSD es la siguiente: 


                                                                                                                          Fuente: 8. Met. de Software
                                                                                                                                                                                          ING. software Enfoque práctico

                                                                                                                                                                  Realizado: CANVA Diseño


CRISTAL 


Cristal es una metodología de desarrollo de software ágil, es la compilación de un conjunto de metodologías que facilitan el desarrollo de software, donde cada una de ellas esta adecuada para un tipo de proyecto. 
El grupo Cristal en realidad es un conjunto de ejemplos de procesos ágiles que han demostrado ser efectivos para diferentes tipos de proyectos. El objetivo es permitir que equipo ágiles seleccionen al miembro del grupo cristal mas apropiado para su proyecto y ambiente. Cristal puede ser usado en pequeños proyectos; y consiste en valores, técnicas y procesos. 
Cristal tiene varios factores como lo son la cantidad de desarrolladores involucrados, el bienestar de los mismos, el ciclo de vida del desarrollo del proyecto, el presupuesto monetario y el presupuesto de uso opcional; dependiendo de estos factores la metodología cristal es capaz de clasificarse mediante los siguientes colores:

                                                                                                                      Fuente: Crystal Clear
                                                                                                                         
                                                                                                                                                                      Realizado: CANVA Diseño



DIC(Desarrollo impulsado por las características)


DIC originalmente fue un modelo práctico de proceso para la ingeniería de software orientada a objetos. Después lo ampliaron y lo mejoraron con la descripción de un proceso adaptativo y ágil aplicable a proyectos de tamaño moderado y pequeños de software. 

El DIC pone el énfasis en las actividades de aseguramiento de la calidad de software mediante el estimulo de la estrategia de desarrollo incremental, el uso de diseño y código para la calidad de software. La implementación de este método para el cliente es de dos semanas o menos. DIC define seis puntos de referencia para su ciclo durante el diseño e implementación de una característica: 
  1. Recorrido por el diseño. 
  2. Diseño.
  3. Inspección del diseño. 
  4. Código. 
  5. Inspección del código. 
  6. Decisión de Construir.


Fuente: DIC PREZI
                                                                                                                           
                                                                                                                                                                     Realizado: CANVA Diseño


DES (Desarrollo esbelto de Software)

El desarrollo Esbelto esta muy ligado con el desarrollo ágil, aunque son conceptos diferentes puesto que el desarrollo esbelto implica agilidad pero para ser ágil no necesariamente debe ser ágil. DES adapta los principios de manufactura esbelta al mundo de la ingeniería de software.

Los Principios de DES son : 
  1. Eliminar el Desperdicio.
  2. Construir con Calidad.
  3. Crear Conocimiento.
  4. Postergar Compromiso.
  5. Entregas Rápidas.
  6. Respetar a las Personas.
  7. Optimizar.

MA (Modelado ágil)


Es un metodología basada en la práctica para modelar y documentar con eficiencia los sistemas basados en software. Es un conjunto de valores, principios y prácticas para hacer modelos de software aplicables de manera eficaz y ligera a un proyecto de desarrollo. 

El modelado ágil adopta todos los valores del manifiesto ágil, la filosofía MA esta basada en que un equipo ágil debe tener la firmeza para tomar decisiones que impliquen rechazar un diseño y reconstruirlo. 



PUA(Proceso Unificado Ágil)


Se desarrolla a nivel corporativo u organizacional. Es eficaz si se acepta la adaptación que cubra las necesidades del proyecto, en la ingeniería de Software se crea el progreso que se ajuste a los requerimientos y necesidades de la organización. 
El PUA tiene conexiones historicas y técnicas con el lenguaje unificado de modelado, es importante observar que el modelado UML, puede usarse junto con cualquiera de los modelos de proceso ágil.


¿Qué son las Herramientas Case?


La herramientas case se refieren al desarrollo y mantenimiento de proyectos de software con la ayuda de varias herramientas automatizadas. 
Son un conjunto de aplicaciones informáticas usadas para automatizar actividades de el ciclo de vida de desarrollo de sistemas. Las herramientas Case son las mas usadas por los directores de proyecto de software. Hay una gran numero de herramientas disponibles para simplificar varias etapas en el desarrollo del ciclo vital del Software.

El uso de estas herramientas acelera el desarrollo del proyecto con tal de producir los resultados deseados y ayuda a encontrar imperfecciones antes de proseguir con la siguiente etapa del desarrollo del software.



Referencias:

Herramientas CASE. (s.f.). Recuperado 21 febrero, 2020, de https://www.ecured.cu/Herramienta_CASE
Cristal. (s.f.). Recuperado 21 febrero, 2020, de https://folderit.net/itech/es/desarrollo-agil-de-software-crystal-clear-es/
Gate, S. (s.f.). Desarrollo impulsado por características (DIC). Recuperado 21 febrero, 2020, de https://www.stage-gate.la/glosario/desarrollo-impulsado-por-caracteristicas-fdd/
Jara flores, F. R. A. N. C. I. S. C. O. (s.f.). Desarrollo adaptativo de software (DAS). Recuperado 21 febrero, 2020, de https://www.academia.edu/28469423/Desarrollo_Adaptativo_de_Software_DAS
Javier, N. (s.f.). Desarrollo esbelto de software (DES). Recuperado 21 febrero, 2020, de https://infogram.com/desarrollo-esbelto-de-software-des-1gge9m85q6zlmy6
Metodología SCRUM. (s.f.). Recuperado 21 febrero, 2020, de https://proyectosagiles.org/que-es-scrum/
Modelo ágil (MA). (s.f.). Recuperado 21 febrero, 2020, de http://innova-t.co/topic/ciclo-de-vida-adaptativo-agil/
Modelos de desarrollo de software. (s.f.). Recuperado 21 febrero, 2020, de http://www.eumed.net/tesis-doctorales/2014/jlcv/software.htm
Métodos de desarrollo de sistemas dinámicos. (s.f.). Recuperado 21 febrero, 2020, de https://www.google.com/amp/s/ingenieriadelsoftwareuah2015.wordpress.com/2015/03/29/metodos-de-desarrollo-de-sistemas-dinamicos-dsdm/amp/
Software, E. V. A. L. U. A. N. D. O. (s.f.). Desarrollo ágil. Recuperado 21 febrero, 2020, de https://www.evaluandosoftware.com/desarrollo-software-agil/
Telleria, R. I. C. H. A. R. D. (s.f.). Importancia del cliente. Recuperado 21 febrero, 2020, de https://sg.com.mx/revista/43/el-importante-papel-del-cliente-un-proyecto-agil-software
Torrecilla, P. (s.f.). Proceso unificado agil(PUA). Recuperado 21 febrero, 2020, de http://nosolopau.com/2012/06/07/mas-sobre-el-proceso-unificado-agil-fases-y-disciplinas/
XP. (s.f.). Recuperado 21 febrero, 2020, de https://www.google.com/amp/s/ingsotfwarekarlacevallos.wordpress.com/2015/05/08/metodologia-de-desarrollo-agil-xp-y-scrum/amp/

Unknown, U. .. (s.f.). Desarrollo Esbelto de Software. Recuperado 24 febrero, 2020, de                      http://ultimatecnologia26.blogspot.com/2016/03/desarrollo-esbelto-de-software.html
Comparativa entre XP y SCRUM. (s.f.). Recuperado 24 febrero, 2020, de                                        http://davidrtmetodosagiles.blogspot.com/2017/02/comparativa-entre-xp-y-scrum.html
Desarrollo esbelto de software (DES). (s.f.). Recuperado 24 febrero, 2020, de                                 https://prezi.com/p/-zr9fz07wxq0/desarrollo-esbelto-de-software-des/
Duran, J. U. A. N. (2013, 13 noviembre). DIC: Desarrollo Impulsado por Caracteristicas. Recuperado 23 febrero, 2020, de https://prezi.com/xqa6uixzhshi/dic-desarrollo-impulsado-por-caracteristicas/
Yanina Muradas M, Y. M. (2020, 13 febrero). Conoce las 3 metodologías ágiles más usadas. Recuperado 24 febrero, 2020, de https://openwebinars.net/blog/conoce-las-3-metodologias-agiles-mas-usadas/