martes, 17 de marzo de 2020

Diseño Arquitectónico del Software - Paula Rocha

¿Qué es diseño arquitectónico del software?



El diseño arquitectónico  es el plan central del software que se está creando, analiza cada uno de los componentes del sistema, determina los estándares, herramientas y plataformas, que conllevan a una aplicación completamente eficaz, determinando cada una de las tareas que se debe realizar por cada uno de los participantes del proyecto a realizar, representando la estructura de datos y las interrelaciones existentes entre ellos.

Por lo general este diseño arquitectónico es realizado por un ingeniero de software, pero según las necesidades lo pueden realizar expertos en el tema, como los creadores de bases de datos, creando la estructura  de datos a manejar, de esta manera se logra el desarrollo de un modelo que responde de manera positiva y atiende todas las necesidades del cliente sin derribar los requerimientos estipulados por el mismo.

Al construir y tener una buena arquitectura para el proyecto de software, se pueden identificar los riesgos, evitarlos o abordarlos desde un principio en la etapa de desarrollo. Generando beneficios tales como: Un mejor software, rápido, económico y más seguro. Antes de preocuparse por los detalles, se necesita tener el panorama general, algo que permita tener mayor claridad y orden sobre lo que se desea implementar en el sistema, para esto tendremos que realizar un “Plano”, es decir, el diseño arquitectónico del software, con el que se hará más sencillo el entender el sistema por completo y tener una mejor descomposición de ideas. Obteniendo como producto final una arquitectura que incluye arquitectura de datos y  estructura del programa. Además, de tener la descripción de las propiedades y relaciones existentes entre los componentes, por lo que es mucho más sencillo iniciar la creación de un software cuando se tiene conocimiento de cómo funciona, ahorra tiempo, facilita y acelera el trabajo del programador, aumentando su posibilidad de éxito y eficacia.


sábado, 22 de febrero de 2020

HERRAMIENTAS ÁGILES INGENIERÍA DE SOFTWARE


     1.   ¿Qué es el desarrollo ágil?
El desarrollo de software gil es un concepto que se usa para describir metodologías
de desarrollo, donde se hace hincapié en el empoderamiento de las personas para colaborar
y tomar decisiones del código.
las técnicas ágiles son variadas en prácticas y énfasis, pero aun así comparten algunas
características como lo es el desarrollo iterativo y el enfoque en la interacción. desarrollar en
iteraciones nos permite que el equipo se adapte más rápido a las necesidades cambiantes
trabando en las instalaciones esto permite que los equipos puedan tomar decisiones y actuar
sobre ellas en lugar de esperar respuestas de otras instancias.

las recomendaciones de una metodología de software ágil son:
  • Participación de los usuarios
  • Tener facultad para la toma de decisiones
  • Tener tiempo y fecha de entrega fijas
  • Captura de requisitos
  • Desarrollo de versiones pequeñas (veta)
  • Completar cada funcionalidad antes de pasar a la siguiente
  • Las pruebas se integran en todo el ciclo de vida del proyecto
  • Tener un enfoque de colaboración y coordinación entre las partes interesadas






     2.   ¿Por qué es importante el cliente?

La metodología ágil permite al desarrollador mostrar avances de su proyecto siempre, añadir cambios con facilidad y rapidez., no se debe esperar hasta el final para recibir la versión total del producto, desde el principio se reciben versiones no definitivas que encaminan al cliente, permitiéndole ver cómo van las cosas y generar los cambios que desee, de esta manera las correcciones llegarán antes y con menos costo, generando un producto "ideal" desde el principio.

     3.   Modelos
existen diferentes opciones, pero las más utilizadas son:
programación extrema (xp), Scrum y Kanban, ágil incepción y designa Sprint, esta es la mitología de Google todas estas se guían a través de un patrón establecido
por el manifiesto ágil que se realiza por varios autores que establecieron
los 12 principios del software ágil.




      4.   EXTREME PROGRAMMING (XP)

XP Está desarrollada para entregar el software que los clientes requieren a tiempo. Ayuda a los desarrolladores a responder a los requerimientos del usuario aún en fases avanzadas del ciclo de vida del programa. Es una de las metodologías ágiles más exitosas.

Roles:
  • Cliente: Determina prioridades, usuario final del producto.
  • Programador: Encargado de desarrollar el software.
  • Tester: Ayuda al cliente con los requisitos del producto.
  • Coach: Asesoran y determinan el rumbo del proyecto.
  • Manager: Responsable de la comunicación externa y los recursos.
Ciclo:  
  • Fase exploración: Comprender lo que el cliente requiere.
  • Fase de planeación: Estimar el esfuerzo.
  • Fase de iteraciones: Crear soluciones.
  • Fase de puesta en producción: Entrega del producto final. 



- (Cevallos, Karla, 2015)

 



DESARROLLO ADAPTATIVO DE SOFTAWARE (DAS)
El desarrollo adaptativo del software (DAS)fue propuesta por jim highsmith  en 1998 como una metodología para el
desarrollo del software y sistemas complejos. él se centra en la colaboración humana
y la organización de equipo.
el ciclo de vida de DAS se conforma de tres fases:
  • Especulación
  • Colaboración
  • Aprendizaje

Características:
  • Iterativo
  • Tolerante a los cambios
  • Fue creado como una técnica para construir software y sistemas complejos
  • Los enfoques filosóficos de DAS se enfocan en la colaboración humana y la organización propia del equipo.

  • La organización propia es una propiedad que tienen los sistemas operativos complejos
  • Es el modelo de energía creativa cuando surge la solución a un problema.


(Fernanda,2012)





SCRUM
es un conjunto de labores grupales que están al servicio de la consecución de un objetivo.
la simulación del método radica en la manera en que intervienen los distintos actores del plan
para dejar más clara la definición de scrum son los métodos tradicionales de gestión.
creador: ikujiro Nonaka e Hirotaka Takeuchi
Año:1986
  •  ScrumMaster: nos permite mantener los procesos y trabajar de forma similar al director del proyecto.
  • ProductOwner: es lo que representa a los stakeholders(clientes externos o internos) 
  • Team: es lo que incluye a los desarrolladores.
  • Tiene un rango de tiempo de 15 y 30 días  
  • Los requisitos estarán congelados durante cada sprint
  •           scrum permite la creación de equipos autoorganizados impulsando la co-localizacion de todos los miembros del equipo



 un principio clave de scrum es el reconocimiento de que dúrate un proyecto los clientes cambiar de idea sobre lo que quieren y necesitan. (Cevallos, Karla, 2015)



MÉTODO DE DESARROLLO DE SISTEMAS DINÁMICOS (MDSN)

Metodología ágil que emplea un ciclo iteractivo con el objetivo de evolucionar la solución apropiada y satisfacer los requerimientos del cliente.  Se enfoca en proyectos de sistemas de información que se caracterizan por horarios firmes y presupuestos bastante rigurosos, su objetivo es entregar el producto a tiempo y en el valor acordado desde el principio, siempre ajustado a los requisitos cambiantes. 

Principios:
  • Involucrar al cliente
  • Toma de decisiones
  • Entrega de productos
  • Desarrollo iterativo e incremental
  • Cambios durante el desarrollo
  • Pruebas
  • Comunicación y cooperación
Requisitos: 
  • Interactividad
  • Motivación
  • Intercambio de ideas
Roles: 
  • Patrocinador: Encargado de recursos.
  • Visionario: Encamina el proyecto.
  • Usuario: Establece los requerimientos.
  • Jefe de proyecto: Encargado de comunicación externa. 
  • Coordinador técnico: Establece parámetros.
  • Líder de equipo: Encargado de guiar al equipo. 
  • Desarrollador: Encargado de programar. 
  • Tester: Apoya al cliente al establecer requerimientos. 
(MARIA, ROSA,2016)





CRISTAL                                               
creador: Cockburn
 Crystal es una metodología de desarrollo de software ágil que en realidad esta
considerada como una (familia de metodologías).
es la compilación de un conjunto de metodologías que nos facilitan el desarrollo de software dependiendo de varios actores teniendo
como principal factor la cantidad de desarrolladores que son en su mayoría en los que recaerá el éxito o fracaso del proyecto
metodologías:
  • crystal yellow
  • crystal orange
  • crystal orange web
  • crystal red
  • crystal magenta
  • crystal blue

Roles:
  • patrocinador: consigue los recursos y define la totalidad del proyecto
  • usuario experto: junto con el experto en negocios produce la lista de actores de caso de uso
  • diseñador principal: produce la descripción arquitectónica
  • programador:  produce junto con el diseñador principal, los borradores de pantalla el modelo común de las notas y diagramas del diseño
  •  experto en negocios: junto con él, usuario experto produce la lista de actores y el archivo de caso de uso requerimientos.
  • coordinador: con la ayuda del equipo, produce el mapa del proyecto, el plan de entrega y el estado del proyecto
  • verificador: produce el reporte de bugs puede ser un programador en tiempo parcial
  • escritor: produce el manual de usuario.

(javiergarzas.com, 2012)




DESARROLLO IMPULSADO POR CARACTERÍSTICA (DIC)

Desarrollo que hace énfasis en la colaboración entre los integrantes de un equipo, administrando la complejidad de los problemas del proyecto mediante la descomposición basada en las características. También comunica detalles técnicos de forma verbal y gráfica, mediante textos. 

Beneficios: 
  • Características como bloques pequeños.
  • Características ordenadas por jerarquía.
  • Diseño y representación.
.(Roger S. Pressman (2010)





DESARROLLO ESBELTO DEL SOFTWARE (DES)

Este método busca la perfección del producto, implica agilidad. 

Principios:
  • Eliminar desperdicios.
  • Construir calidad.
  • Crear conocimientos.
  • Postergar compromisos.
  • Entregas rápidas.
  • Respetar a las personas.
  • Optimizar todo.
.(Roger S. Pressman (2010)


MODELO ÁGIL (MA)

Metodología basada en la práctica para modelar y documentar con eficacia. Adopta todos los valores del manifiesto ágil, su filosofía afirma que un equipo ágil debe tener valentía para la toma de decisiones que implique rechazar un diseño y reconstruirlo.

Ciclo de vida:
  • Planificación: Organización de ideas.
  • Análisis de requisitos: Revisión de los requerimientos del cliente.
  • Diseño: Creación de la estructura del producto.
  • Codificación: Programación del producto.
  • Revisión: Verficación del software.
  • Documentación: Debida explicación del programa.

.(Roger S. Pressman (2010)



 PROCESO UNIFICADO ÁGIL DE CARACTERÍSTICAS (PUA)
Describe una aproximación al desarrollo de aplicaciones que combina conceptos propios del proceso unificado tradicional con técnicas ágiles, su objetivo de mejorar la productividad.
Ciclos:
  •        Iniciación: Identificar el alcance inicial del proyecto.
  •        Elaboración: Fase que identifica y valida la arquitectura del sistema.
  •        Construcción: Construye un software desde un punto de vista.
  •        Transición: Se valida y despliega el sistema en el entorno de producción.

.(Roger S. Pressman (2010)


Herramientas (CASE)
De acuerdo con Kendall y Kendall la ingeniería de sistemas asistida por ordenador es la aplicación de tecnología informática a las actividades, las técnicas y las metodologías propias de desarrollo, su objetivo es acelerar el proceso para el que han sido diseñadas, en el caso de CASE para automatizar o apoyar una o más fases del ciclo de vida del desarrollo de sistemas. Cuando se hace la planificación de la base de datos, la primera etapa del ciclo de vida de las aplicaciones de bases de datos, también se puede escoger una herramienta CASE (Computer-Aided Software Engineering) que permita llevar a cabo el resto de las tareas del modo más eficiente y efectivo posible. Una herramienta CASE suele incluir:
  •  Un diccionario de datos para almacenar información sobre los datos de la aplicación de bases de datos.
  •  Herramientas de diseño para dar apoyo al análisis de datos.
  • Herramientas que permitan desarrollar el modelo de datos corporativo, así como los esquemas conceptual y lógico.
  • Herramientas para desarrollar los prototipos de las aplicaciones.


(monografías,S,F)







      5. Bibliografía:

ingsotfwarekarlacevallos.wordpress.com (05 del 08 de 2015). INGENIERÍA DEL SOFTWARE. obtenido de ing. Software

desarrolloadaptativodesoftware.blogspot.com (LUNES, 13 DE JUNIO DE 2011). Desarrollo adaptativo de software. Obtenido de das

https://espejodeantagno.files.wordpress.com(Caracas, 01 de febrero de 2016). MÉTODO DE DESARROLLO DESISTEMAS DINÁMICOS (DSDM). obtenido de dsdm.

javiergarzas.com(25 septiembre, 2012). Las metodologías Crystal. Obtenido de cristal.

ingenieriadelsoftwareudgvirtual.(Roger S. Pressman (2010) México: Mc Graw Hill.) Métodos del desarrollo de Software. Obtenido de dic
monografias.com(S.F.DE.S.F.DE.S.F). herramientas case. Obtenido de herramientas case
https://www.monografias.com/trabajos14/herramicase/herramicase.shtml



PAULA XIMENA ROCHA VARGAS
CARLOS SEBASTIAN MENDEZ GORDILLO