Calidad De Software
control de la calidad (lisbhet)
Que es calidad del producto no solo es construir lo de la manera correcta es construir un producto correcto esto quiere decir la calidad de un producto parte de su definición respecto a la idea de conseccion del producto.(lisbhet)
Metodologias ágiles (lisbhet)
ofrecen calidad
por que(lisbhet)
1 Valor del negocio=f(coste,tiempo,calidad,funcionalidad)lisbhet.
2 En la metodologia agiles no es negosiable que una empresa emple una calidad regular no tiene que contar con toda la calidad si no es asi entonces no esta manejando o empleando esta metodologia agil si no otra.(lisbhet)
3 Priorizamos el producir valor para el negocio teniendo en cuenta que el 80% de valor de un producto se obtiene del 20% de la funcionalidad definida(LISBHET)
El objetivo de las metodologías ágiles es proporcionar el máximo valor con la mayor eficiencia de tiempo y recursos.(lisbhet)
Las metodologías ágiles son métodos de desarrollo de software en los que las necesidades y soluciones evolucionan a través de una colaboración estrecha entre equipos multidisciplinarios. Se caracterizan por enfatizar la comunicación frente a la documentación, por el desarrollo evolutivo y por su flexibilidad.(LISBHET)
ALGUNAS METODOLOGÍAS ÁGILES SON(LISBHET)
SCRUM(LISBHET)
Scrum es un framework adaptable, iterativo, rápido, flexible y eficaz que está diseñado para entregar valor al cliente durante todo el desarrollo del proyecto. El objetivo primordial es satisfacer las necesidades del cliente a través de un entorno de transparencia en la comunicación, responsabilidad colectiva y progreso continuo.(lisbhet)
Planificación de la iteración
El primer día de la iteración se realiza la reunión de planificación de la iteración. Tiene dos partes:
Selección de requisitos (4 horas máximo). El cliente presenta al equipo la lista de requisitos priorizada del producto o proyecto. El equipo pregunta al cliente las dudas que surgen y selecciona los requisitos más prioritarios que se compromete a completar en la iteración, de manera que puedan ser entregados si el cliente lo solicita.
Planificación de la iteración (4 horas máximo). El equipo elabora la lista de tareas de la iteración necesarias para desarrollar los requisitos a que se ha comprometido. La estimación de esfuerzo se hace de manera conjunta y los miembros del equipo se autoasignan las tareas.
Proceso
En Scrum un proyecto se ejecuta en ciclos temporales cortos y de duración fija (iteraciones que normalmente son de 2 semanas, aunque en algunos equipos son de 3 y hasta 4 semanas, límite máximo de feedback de producto real y reflexión).
Ejecución de la iteración
Cada día el equipo realiza una reunión de sincronización (15 minutos máximo). En la reunión cada miembro del equipo responde a tres preguntas:
¿Qué he hecho desde la última reunión de sincronización?
¿Qué voy a hacer a partir de este momento?
¿Qué impedimentos tengo o voy a tener?
Durante la iteración el Facilitador (Scrum Master) se encarga de que el equipo pueda cumplir con su compromiso y de que no se merme su productividad.
Elimina los obstáculos que el equipo no puede resolver por sí mismo.
Protege al equipo de interrupciones externas que puedan afectar su compromiso o su productividad.
Inspección y adaptación
El último día de la iteración se realiza la reunión de revisión de la iteración. Tiene dos partes:
Demostración
El equipo presenta al cliente los requisitos completados en la iteración, en forma de incremento de producto preparado para ser entregado con el mínimo esfuerzo. En función de los resultados mostrados y de los cambios que haya habido en el contexto del proyecto, el cliente realiza las adaptaciones necesarias de manera objetiva, ya desde la primera iteración, replanificando el proyecto.
Retrospectiva
El equipo analiza cómo ha sido su manera de trabajar y cuáles son los problemas que podrían impedirle progresar adecuadamente, mejorando de manera continua su productividad. El Facilitador se encargará de ir eliminando los obstáculos identificados.
LEAN(LISBHET)
Lean significa magro, esbelto y la base de su filosofía consiste en eliminar los “desperdicios”tiene principios(lisbhet)
que son
Eliminar los desperdicios (código innecesario, burocracia, comunicación lenta, reuniones innecesarias, etc.)(lisbhet)
Eliminar incertidumbre antes de tomar decisiones o decidir lo más tarde posible(lisbhet)
Ampliar el aprendizaje(lisbhet)
Reaccionar lo antes posible ante el cambio(lisbhet)
Potenciar el equipo(lisbhet)
Historia
Fue en los años 80 en Japón, que se comenzó a usar el término “Lean Manufacturing“, que en español significa manufactura magra. El objetivo era hacer que la producción de vehículos en ese país fuera más eficiente
Más recientemente, en 2011, otro éxito de ventas, esta vez escrito por Eric Ries, llamado “Lean Startup“, volvió a examinar la metodología lean, adaptándola para las personas interesadas no sólo en montar una startup de forma ágil y asertiva, sino que también se pudiera utilizar en grandes empresas de todos los ramos
pasos para utilizar la metodología lean
1) Dar la debida importancia al proyecto de mejora de procesos
2) Involucre a los participantes en la búsqueda de un cambio efectivo
3) Garantice el apoyo de los líderes de la compañía
4) Comience con procesos sencillos
5) Determine un espacio físico exclusivo para las reuniones del proyecto
Caracteristicas
Define el valor e identifica la cadena de valor para su producto.
Elimina todos los pasos innecesarios en toda cadena de valor.
Crea flujo de valor: que todo el proceso fluya suave y directamente de un paso que agregue valor a otro, desde la materia prima hasta el consumidor.
Persigue la perfección continuamente.
Beneficios
Reducción de costos de producción
Reducción de inventarios
Reducción del tiempo de entrega
Mejor calidad
Menos mano de obra
Mayor eficiencia de equipo
el objetivo de las metodologias agiles es proporcionar el maximo valor con la mayor eficiencia de tiempo y recursos.
Calidad
se refiere al conjunto de propiedades inherentes a un objeto que le confieren capacidad para satisfacer necesidades implícitas o explícitas.
Software
son los programas informáticos que hacen posible la realización de tareas específicas dentro de un computador. Por ejemplo Word, Excel, PowerPoint, los navegadores web, los juegos, los sistemas operativos, etc.
CALIDAD OBJETIVA
Subtema
CALIDAD SUBJETIVA(ALEJANDRA B)
El Testing, o pruebas de software, es el proceso que verifica y revela la
calidad de un proyecto/producto software.(lisbhet)
Ventajas(lisbhet)
Comprobar la calidad de la solución(lisbhet)
● Detectar fallos de implementación(lisbhet)
Detectar comportamientos inesperados o incorrectos durante el ciclo de
construcción del software(lisbhet)
Obliga a modularizar el software correctamente(carlos)
Desventajas
No descubrirán todos los defectos del código.
No permite determinar problemas de integración o
desempeño.
No es trivial anticipar todos los casos especiales de
entradas.
Caracteristicas
Alta probabilidad de encontrar un error. El ingeniero de software debe tener un alto nivel de entendimiento de la aplicación a construir para poder diseñar casos de prueba que encuentren el mayor número de defectos
No debe ser redundante. Lo cual no se deben diseñar casos de prueba que tengan el mismo propósito que otros, sino que se debe tratar de diseñar el menor número de casos de prueba que permitan probar adecuadamente el software y optimizar los recursos.
Una buena prueba no debería ser ni demasiado sencilla ni demasiado compleja.
TESTING(lisbhet)
Main topic
forma de reducir la repetición del trabajo en el proceso de desarrollo y dar oportunidad de retrasar la toma de decisiones en los requisitos hasta adquirir experiencia con el sistema
En este modelo se desarrolla el sistema para satisfacer un subconjunto de los requisitos especificados y en posteriores versiones se incrementa el programa con nuevas funcionalidades que satisfagan mas requisitos.
forma de reducir la repetición del trabajo en el proceso de desarrollo y dar oportunidad de retrasar la toma de decisiones en los requisitos hasta adquirir experiencia con el sistema.
Metodología SCRUM
Los artefactos nos permiten agrupar las tareas:
Burndown Chart:
Se muestra un gráfico durante el desarrollo del producto para ver si terminan el producto de acuerdo al tiempo del Sprint
Sprint Backlog:
Se escogen las tareas con más dificultad para trabajar más en ello
Product Backlog:
Vista ordenada de todas las tareas ordenadas por prioridad
Nació en Japón en los años 80
Se implementó solo en los años 90
Se basa en la práctica para predecir el desarrollo de acontecimientos futuros
Tres pilares fundamentales:
Inspección:
El proceso de desarrollo debe ser analizado de manera continua para evitar errores
Adaptación:
Si hay errores el equipo debe adaptarse a los cambios para mejorar el producto
Transparencia
En el equipo SCRUM hay tres roles
Product Owner
Tearn
ScrumMaster
Topic principal
Subtema
Extencion del ciclo de desarrollo del producto(carlosN)
es(carlosN)
Analisis(carlosN)
es el proceso automatizado de analizar el comportamiento del software
diseño(carlosN)
el diseño del software es una de las partes que componen las fases del ciclo de vida del software
codigo(carlosN)
es el software cuyo código fuente y otros derechos que normalmente son exclusivos para quienes poseen los derechos
test(carlosN)
son básicamente un conjunto de actividades dentro del desarrollo de software.
Rendimiento(carlosN)
las pruebas de rendimiento son las pruebas que se realizan
test de aceptacion(carlosN)
En la Ingeniería del software, las pruebas de aceptación se realizan para establecer el grado de confianza en un sistema, partes del mismo o en sus características no funcionales.
piloto(carlosN)
Proceso de pruebas que se desarrolla como parte de las actividades que se realizan en el despliegue, donde se toma como muestra un cliente cuyas condiciones objetivas y subjetivas permitan implementar una Solución Informática con todas las variantes posibles de ejecución de la solución en tiempo real.
explotacion(carlosN)
Tal y como se expuso en el artículo anterior, los derechos de autor sobre un software son de dos tipos: derechos morales y derechos patrimoniales o de explotación.
como conclucion es programando,comentando,probando,revisando,pruevas automaticas y aprobado por el usuario.(carlosN)
Evitar tecnicas de reduccion de la calidad(carlosN)
cuales son(carlosN)
reducir las pruebas(carlosN)
Reducir las reviews(carlosN)
no seguir estandars(carlosN)
no refactorizar(carlosN)
Diferencia entre elementos subjetivos de la calidad(carlosN)
Es(carlosN)
La calidad objetiva afecta a la 'conformidad con los requisitos'(calosN)
la calidad subjetiva afecta a la 'satisfacción de los usuarios'(carlosN)
alguna de ellas son
calidad subjetiva se refiere a las decisiones de diseño y especificacion que realiza el product owner y afecta a la percepcion de la calidad en el usuario.
con
¿Es el producto facil de usar?
¿Es el producto eficiente en su uso?
¿"Disfruto"(como usuario)usando el producto?
calidad objetiva se refiere a los aspectos visibles medibles y caracteristicas del producto facilmente validables con relacion directa a las especificaciones del producto una caracteristicas
son
1 la calidad objetiva se espera siempre en valores altos.
2 el producto esta libre de errores(bugs).
el entregable del punto final no debe de contar con bungs por ningun motivo.
Bugs
origen
Aunque a diario hablamos de bugs en el software, el origen de este concepto es precisamente por un fallo en el hardware. El 9 de Septiembre de 1945, Grace Murray Hopper estaba trabajando en su computador Mark II cuando este empezó a fallar. Tras revisarlo descubrieron que una polilla se había introducido en este. Grace dejó apuntado en su cuaderno que este era el primer caso en el que habia sido un bicho (bug) encontrado. Por ello, en la actualidad se asemeja bug a error.
se define como el grupo de mecanismos o procedimientos racionales, empleados para el logro de un objetivo, o serie de objetivos que dirige una investigación científica. (KAROL RUIZ)
MODELO DE COLABORACIÓN ÁGIL(ER)
Priorizamos el producir valor para el negocio teniendo en cuenta que el 80% de un producto se obtiene 20% de la definida(ER)
La metodología ágil o el modelo de colaboración ágil tienen como objetivo proporcionar el máximo valor con la mayor eficiencia de tiempo y recursos. (ER)
Las técnicas ágiles varían en prácticas y énfasis, pero comparten características comunes, incluyendo el desarrollo iterativo y un enfoque en la interacción, la comunicación y la reducción de artefactos intermedios que consumen muchos recursos(ER).
La reducción de los artefactos intermedios que no agregan valor a la entrega final representa más recursos, que se pueden dedicar al desarrollo del producto en sí y su terminación oportuna.(ER)
Valor de negocio(ER)
En este modelo la variable de calidad la fijamos al maximo y no es negociable(ER)
Actualmente se conocen diferentes metodologías relacionadas con el agilismo, como una respuesta a la creciente necesidad de la industria por entregar productos de calidad en el menor tiempo y costo posible.(ER)
Aplicado al entorno competitivo y real para la ejecución de un proyecto bajo metodologías ágiles, se deben contemplar estas recomendaciones:
1)Es imperativa la participación activa de los usuarios.
2)El equipo de desarrollo debe tener la facultad para tomar decisiones.
3)Los requisitos evolucionan, pero la escala de tiempo y fechas de entregas son fijas (control del alcance).
4)Capturar los requisitos a un alto nivel, ligero y visual (prototipos).
5)Desarrollar versiones pequeñas, incrementales e itere sobre ellas.
6)Enfocarse en la entrega frecuente de productos.
7)Completar cada funcionalidad antes de pasar a la siguiente.
8)Aplicar la regla 80/20, trabajar funcionalidades principales – principio de Pareto
9)Las pruebas se integran en todo el ciclo de vida del proyecto – prueba temprano y con frecuencia.
10)Un enfoque de colaboración y cooperación entre todas las partes interesadas, es esencial#. (ER)
Frente a una metodología predictiva.(ER)
Subtema
Tipos de bugs
son
Bohrbug
Heisenbugs
cuando el programa se bloquea con un acceso de puntero nulo, siempre falla allí para una entrada determinada; para que puedas reproducirlo fácilmente
Mandelbugs
Schroedinbugs
Cuando los errores cambian su comportamiento cuando intenta depurar, investigar o aislar, se los llama Heisenbugs
cuando la causa del error es demasiado compleja de entender, y el error resultante parece caótico, se llama Mandelbug.
Calidad del producto
modelo de la colaboración agil
METODOLOGÍA (KAROL RUIZ)
se define como el grupo de mecanismos o procedimientos racionales, empleados para el logro de un objetivo, o serie de objetivos que dirige una investigación científica. (KAROL RUIZ)
METODOLOGÍA DE LA HISTORIA (KAROL RUIZ)
METODOLOGÍA DEL CONOCIMIENTO (KAROL RUIZ)
se define como una serie de técnicas y procedimientos empleados por los historiadores para manejar las fuentes primarias y otras evidencias que contribuyan en la investigación sobre hechos pasados de gran importancia para las sociedades humanas.(KAROL RUIZ)
se encuentra compuesta por una serie de elementos que permiten la correspondencia entre el hombre con su medio ambiente. Dentro de ella se encuentran cuatro métodos generales de obtener conocimiento:
El método de tenacidad: a través de este procedimiento, el sujeto deja de creer en su verdad y adopta como verdadera, la tradición impuesta por un grupo o gremio de autoridad. El método a priori o de intuición: este método estima que las personas logran llegar a la verdad mediante la comunicación y el intercambio libre de ideas; y al no existir un consenso entre las partes se origina una disyuntiva al determinar quién tiene la razón.(KAROL RUIZ)
Se caracteriza por ser una metodología ágil y flexible que permite gestionar el desarrollo de software, tratando de cumplir con su objetivo, el cual es maximizar el retorno de inversión hecha por la empresa. Esta metodología se fundamenta en la construcción de la funcionalidad de mayor valor para el cliente y en los principios de supervisión constante, adaptación e innovación.
METODOLOGÍA CIENTÍFICA (KAROL RUIZ)
esta queda definida como el procedimiento investigativo utilizado principalmente en la creación de conocimiento basado en las ciencias. Se denomina científico porque dicha investigación se apoya en lo empírico y en la medición, ajustándose a los principios específicos de las pruebas de razonamiento.
(KAROL RUIZ)
Es importante resaltar que dentro de toda investigación científica se encuentran cuatro elementos básicos: el sujeto (quien realiza la investigación); el objeto (el tema a investigar); el medio (se refiere a los recursos que se necesitan para realizar la investigación); y el fin (tiene que ver con el propósito que persigue la investigación
METODOLOGÍAS AGILES (KAROL RUIZ)
El 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.(KAROL RUIZ)
METODOLOGÍAS TRADICIONALES (KAROL RUIZ)
Estas metodologías tradicionales imponen una disciplina de trabajo sobre el proceso de desarrollo del software, con el fin de conseguir un software más eficiente. Para ello, se hace énfasis en la planificación total de todo el trabajo a realizar y una vez que está todo detallado, comienza el ciclo de desarrollo del producto software. Se centran especialmente en el control del proceso, mediante una rigurosa definición de roles, actividades, artefactos, herramientas y notaciones para el modelado y documentación detallada [42]. Además, las metodologías tradicionales no se adaptan adecuadamente a los cambios, por lo que no son métodos adecuados cuando se trabaja en un entorno, donde los requisitos no pueden predecirse o bien pueden variar.(KAROL RUIZ)
METODOLOGÍA DEL DESARROLLO DE SOFTWARE (KAROL RUIZ)
hace referencia al conjunto de técnicas, procedimientos y soportes documentales empleados en el diseño de sistemas de información. Su objetivo principal es exponer una serie de técnicas clásicas y modernas de modelado de sistemas que permitan desarrollar un software de calidad, que incluyen heurísticas de construcción y criterios de comparación de modelos de sistemas. (KAROL RUIZ)
caracteristicas
Diccionario de datos. Cada uno de ellos tiene asignado un código que dificulta su duplicación a la par que facilita su localización dentro del complejo esquema resultante indicando en qué etapa aparece.
Uso de técnicas gráficas
Documentación
Prototipado