Catégories : Tous - prototipado - documentación - software - calidad

par MARIA ALEJANDRA RODRIGUEZ ORTIZ Il y a 6 années

126

Calidad

La calidad del software no solo implica construir algo de manera correcta, sino también asegurarse de que el producto final cumpla con las expectativas y necesidades definidas inicialmente.

Calidad

Aproximación incremental

Cuando los errores cambian su comportamiento cuando intenta depurar, investigar o aislar, se los llama Heisenbugs. Puede suceder, por ejemplo, cuando utiliza variables no inicializadas por lo tanto, dará como resultado un error

EVITAR TÉCNICAS DE REDUCCIÓN DE CALIDAD(ALEJANDRA B)

No refactorizar

No seguir estandars

Reducir las reviews(de diseño, de codigo)

Reducir las pruebas

Horas extras y fines de semana

la variable de calidad la fijamos al maximo y no es negociable

modelo de calidad es una función que aporta el valor al negocio.

la máxima calidad se obtiene de un modelo de colaboración agil

calidad subjetiva se refiere a «Bug» es un término en inglés, cuya traducción literal es insecto

frente a una metodología predictiva o waterfall con precio cerrado.

Calidad De Software

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
Prototipado
Documentación
Uso de técnicas gráficas
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.

METODOLOGÍA DEL DESARROLLO DE SOFTWARE (KAROL RUIZ)

METODOLOGÍA (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Í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Í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
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 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)
METODOLOGÍA DE LA HISTORIA (KAROL RUIZ)

Calidad del producto

modelo de la colaboración agil

cuando la causa del error es demasiado compleja de entender, y el error resultante parece caótico, se llama Mandelbug.

Tipos de bugs

Schroedinbugs

Cuando los errores cambian su comportamiento cuando intenta depurar, investigar o aislar, se los llama Heisenbugs

Mandelbugs
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

Bohrbug

MODELO DE COLABORACIÓN ÁGIL(ER)

Valor de negocio(ER)
En este modelo la variable de calidad la fijamos al maximo y no es negociable(ER)

Frente a una metodología predictiva.(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)

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)

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)

Diferencia entre elementos subjetivos de la calidad(carlosN)

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.

alguna de ellas son
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

2 el producto esta libre de errores(bugs).

el entregable del punto final no debe de contar con bungs por ningun motivo.

1 la calidad objetiva se espera siempre en valores altos.

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

¿"Disfruto"(como usuario)usando el producto?

¿Es el producto eficiente en su uso?

¿Es el producto facil de usar?

Es(carlosN)
la calidad subjetiva afecta a la 'satisfacción de los usuarios'(carlosN)
La calidad objetiva afecta a la 'conformidad con los requisitos'(calosN)

Evitar tecnicas de reduccion de la calidad(carlosN)

cuales son(carlosN)
no refactorizar(carlosN)
no seguir estandars(carlosN)
Reducir las reviews(carlosN)
reducir las pruebas(carlosN)

Extencion del ciclo de desarrollo del producto(carlosN)

es(carlosN)
como conclucion es programando,comentando,probando,revisando,pruevas automaticas y aprobado por el usuario.(carlosN)
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.

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.

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.

Rendimiento(carlosN)

las pruebas de rendimiento son las pruebas que se realizan

test(carlosN)

son básicamente un conjunto de actividades dentro del desarrollo de software.

codigo(carlosN)

es el software cuyo código fuente y otros derechos que normalmente son exclusivos para quienes poseen los derechos

diseño(carlosN)

el diseño del software es una de las partes que componen las fases del ciclo de vida del software

Analisis(carlosN)

zfdsgd

es el proceso automatizado de analizar el comportamiento del software

Topic principal

Metodología SCRUM

En el equipo SCRUM hay tres roles
ScrumMaster
Tearn
Product Owner
Tres pilares fundamentales:
Transparencia
Adaptación: Si hay errores el equipo debe adaptarse a los cambios para mejorar el producto
Inspección: El proceso de desarrollo debe ser analizado de manera continua para evitar errores
Se basa en la práctica para predecir el desarrollo de acontecimientos futuros
Se implementó solo en los años 90
Nació en Japón en los años 80
Los artefactos nos permiten agrupar las tareas:
Product Backlog:

Vista ordenada de todas las tareas ordenadas por prioridad

Sprint Backlog:

Se escogen las tareas con más dificultad para trabajar más en ello

Burndown Chart:

Se muestra un gráfico durante el desarrollo del producto para ver si terminan el producto de acuerdo al tiempo del Sprint

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.

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

Main topic

TESTING(lisbhet)

El Testing, o pruebas de software, es el proceso que verifica y revela la calidad de un proyecto/producto software.(lisbhet)

Una buena prueba no debería ser ni demasiado sencilla ni demasiado compleja.
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.
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
Desventajas
No es trivial anticipar todos los casos especiales de entradas.
No permite determinar problemas de integración o desempeño.
No descubrirán todos los defectos del código.
Ventajas(lisbhet)
Obliga a modularizar el software correctamente(carlos)
Detectar comportamientos inesperados o incorrectos durante el ciclo de construcción del software(lisbhet)
● Detectar fallos de implementación(lisbhet)
Comprobar la calidad de la solución(lisbhet)

CALIDAD SUBJETIVA(ALEJANDRA B)

CALIDAD OBJETIVA

Subtema

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

se refiere al conjunto de propiedades inherentes a un objeto que le confieren capacidad para satisfacer necesidades implícitas o explícitas.

Metodologias ágiles (lisbhet)

el objetivo de las metodologias agiles es proporcionar el maximo valor con la mayor eficiencia de tiempo y recursos.
ALGUNAS METODOLOGÍAS ÁGILES SON(LISBHET)
LEAN(LISBHET)

Lean significa magro, esbelto y la base de su filosofía consiste en eliminar los “desperdicios”tiene principios(lisbhet)

Beneficios

Mayor eficiencia de equipo

Menos mano de obra

Mejor calidad

Reducción del tiempo de entrega

Reducción de inventarios

Reducción de costos de producción

Caracteristicas

Persigue la perfección continuamente.

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.

Elimina todos los pasos innecesarios en toda cadena de valor.

Define el valor e identifica la cadena de valor para su producto.

pasos para utilizar la metodología lean

5) Determine un espacio físico exclusivo para las reuniones del proyecto

4) Comience con procesos sencillos

3) Garantice el apoyo de los líderes de la compañía

2) Involucre a los participantes en la búsqueda de un cambio efectivo

1) Dar la debida importancia al proyecto de mejora de procesos

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

que son

Potenciar el equipo(lisbhet)

Reaccionar lo antes posible ante el cambio(lisbhet)

Ampliar el aprendizaje(lisbhet)

Eliminar incertidumbre antes de tomar decisiones o decidir lo más tarde posible(lisbhet)

Eliminar los desperdicios (código innecesario, burocracia, comunicación lenta, reuniones innecesarias, etc.)(lisbhet)

SCRUM(LISBHET)

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:

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.

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.

Ejecución de la iteración

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.

Protege al equipo de interrupciones externas que puedan afectar su compromiso o su productividad.

Elimina los obstáculos que el equipo no puede resolver por sí mismo.

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é impedimentos tengo o voy a tener?

¿Qué voy a hacer a partir de este momento?

¿Qué he hecho desde la última reunión de sincronización?

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).

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:

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.

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.

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)

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)
ofrecen calidad por que(lisbhet)
El objetivo de las metodologías ágiles es proporcionar el máximo valor con la mayor eficiencia de tiempo y recursos.(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)
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)
1 Valor del negocio=f(coste,tiempo,calidad,funcionalidad)lisbhet.

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)