Ingeniería de Software y Gestión de Calidad

Ingeniería de Software

Consiste en conocer y aplicar herramientas para solucionar sistemas de información a través de software aplicando métodos y técnicas.

Características

Es una aplicación multicapa

El fundamento de la ingeniería de software es el proceso del software.

Capas de la Ingeniería de Software

Herramientas

Métodos

Proceso

Calidad

Proceso del software:

Marco de Trabajo de las tareas que se requieren para construir software de alta calidad.

Fases de la Ingeniería de Software

  1. Definición

Interfaces a ser establecidas

Qué función y rendimiento se desea

Comportamiento deseado del sistema

Identificar informaciones a ser procesadas

Restricciones y criterios de validación del sistema

Método:

Ingeniería de sistemas o de información

Planificación del proyecto de software

  1. Desarrollo

Detalles procedimentales

Implementación en una arquitectura del software

Definir cómo ha de diseñarse las estructuras de datos

Traducción de un diseño a un lenguaje de programación

Cómo ha de realizarse las pruebas

Método

Diseño de software

Generación de código

Prueba de software

  1. Mantenimiento

Correcciones de errores

Adaptaciones requeridas

Mejoras producidas

Prevenciones

Informática

Ciencia que estudia los métodos y mecanismos para el tratamiento racional y automático de la información.

Dato

Representación simbólica. No afecta el comportamiento de quién lo recibe.

Una información es significativa cuando se puede tomar decisiones a través de ella.

Información

Conjunto de datos que relacionados entre sí obtienen un valor adicional.

La información debe ser:

  • Precisa
  • Completa
  • Económica
  • Oportuna
  • Verificable

Sistema

Conjunto de partes o elementos que interactúan entre sí para lograr un objetivo

Características

  • Tiene un propósito
  • Pueden tener subsistemas
  • Controlable
  • Adaptable

Sistema de Información

Es la acción de dar entrada de datos de manera ordenada para darle a la persona adecuada en el momento oportuno como información para que sirva de base en la toma de decisiones.

Características del Software

  • El software se desarrolla o modifica con el intelecto
  • El Software no se desgasta
  • El software se construye a la medida

Metodologías Tradicionales

  1. Cascada

Bases

  • Es el paradigma más antiguo y más extensamente utilizado
  • Ciclo de vida clásico o modelo en cascada
  • Sugiere un enfoque sistemático
  • Actualmente se pone en duda su eficacia
  • Pese a tener debilidades, es significativamente mejor que un enfoque hecho al azar.

Desventajas

  • No se saltan fases
  • El cliente no va poder ver el producto antes
  1. Prototipo

Propone identificar requisitos básicos del proyecto, para luego construir un modelo prototipo, en base al prototipo, desechar el mismo y volver a construir.

DRA

Es un modelo de proceso del desarrollo del software lineal secuencial enfatiza un ciclo de desarrollo del software lineal secuencia extremadamente corto.

Metodologías Ágiles

Son un conjunto de metodologías, a veces denominadas livianas o ligeras, que utilizan

prácticas similares, basadas en los resultados, la gente y la interacción.

Manifiesto Ágil (4 Criterios)

  • A los individuos y su interacción, por encima de los procesos y las herramientas.
  • El software que funciona, por encima de la documentación exhaustiva.
  • La colaboración con el cliente, por encima de la negociación contractual.
  • La respuesta al cambio, por encima del seguimiento de un plan.
  1. XP Extreme Programming Explained

Está orientado al desarrollador, al usuario y a la rápida funcionalidad

Características

  • Desarrollo iterativo(cíclico) e incremental. A medida que se repita crece.
  • Pruebas unitarias. Sería por fase, a cada versión.
  • Programación en parejas. Dos personas trabajan, tipo rally.
  • Frecuente integración del equipo de programación con el usuario.
  • Corrección de todos los errores antes de añadir nueva funcionalidad. Hacer entregas frecuentes.
  • Refactorización del código, reescribir partes del código para aumentar la legibilidad y mantenibilidad.
  • Propiedad del código compartido, donde todo el personal pueda corregir y extender cualquier parte del código.
  • Simplicidad en el código.
  • Se logra el desarrollo rápido utilizando un enfoque de construcción basado en componentes.
  1. SCRUM

Proceso para desarrollo que apunta al trabajo en equipo. Proceso iterativo e incremental.

Hirotaka Takeuchi e Ikujijo Nonaka

Pilares

  • Entregas periódicas
  • Relación con el cliente
  • Alta capacitación del personal.

Conformación

  • Roles

Scrum Master(persona intermediaria entre el equipo y el cliente)

Team(equipo de desarrollo)

Product Owner

  • Artefactos

Product Backlog(Tabla de procesos)

Sprint Backlog (prueba)

Burn Down (diagrama que permite ver procesos pendientes y la velocidad de avance)

Incremento(parte del producto terminada y probada)

  • Actividades

Sprint Planning

Sprint

Scrum Daily Testing

Sprint Demostración

Retrospective

Replanificación

  1. RUP

Rational Unified Process

Características

  • Centrado en la arquitectura

La arquitectura de un sistema es la organización de sus partes más relevantes, lo que permite tener una visión común entre todos los involucrados (desarrolladores y usuarios) y una perspectiva clara del sistema completo, necesaria para controlar el desarrollo.

  • Iterativo e Incremental

4 Fases

Inicio

Elaboración

Construcción

Transición

  • Dirigido de casos de uso

RUP utiliza UML como complemento y, por lo tanto, muchas de las herramientas de este lenguaje pasan a ser eje en la metodología.

Diferencias entre las metodologías

Metodologías Ágiles

Metodologías Tradicionales

  • Preparados para cambios durante proyectos
  • Contrato flexible
  • El cliente es parte del equipo de Desarrollo
  • Pocos artefactos
  • Menos roles
  • Cierta resistencia a cambios
  • Contrato prefijado
  • El cliente interactúa con el equipo de desarrollo mediante reuniones
  • Más artefactos
  • Más roles

Gestión de Calidad del Software

Son aquellas actividades de planificación y control a fin de garantizar y mejorar la calidad del software.

Gestión de calidad de software: tareas que se realizan en el ámbito del software desde el punto de vista desarrollo técnico.

Política de calidad: Conjunto de directrices generales de una organización referidas a la calidad.

CMM

Modelo completo que se basa en un conjunto de funciones de ingeniería del software que deberían estar presentes conforme las organizaciones alcanzan diferentes niveles de madurez del proceso.

Niveles de la CMM

  • Nivel 1: Inicial

El proceso del software se caracteriza según el caso, y ocasionalmente incluso de forma caótica. Se definen pocos procesos, y el éxito depende del esfuerzo individual.

  • Nivel 2: Repetible

Se establecen los procesos de gestión del proyecto para hacer seguimiento del coste, de la planificación y de la funcionalidad.

  • Nivel 3: Definido

El proceso del software de las actividades de gestión y de ingeniería se documenta, se estandariza y se integra dentro de un proceso de software de toda una organización.

  • Nivel 4: Gestionado

Mediante la utilización de medidas detalladas, se comprenden y se controlan cuantitativamente tanto los productos como el proceso del software.

  • Nivel 5: Optimizado

Mediante un resultado cuantitativo del proceso y de las ideas y tecnologías innovadoras se posibilita una mejora en el proceso.

CMMI vs CMM

El modelo CMM y el modelo CMMI (Capability Maturity Model Integration) se diferencian básicamente en que el primero se enfoca principalmente a las organizaciones o áreas de Tecnologías de información en cambio el modelo CMMI como su nombre lo indica es un modelo integrado y mejorado que se puede aplicar a un número mayor de organizaciones de diferentes sectores.

ISO 9000

Es un conjunto de normas sobre calidad y gestión de calidad, establecidas por la Organización Internacional de Normalización (ISO).

Específica la manera en que una organización opera sus estándares de calidad, tiempos de entrega y niveles de servicio.

Certificación del Software

La calidad de software no se certifica, lo que se certifica son los procedimientos para construir un software de calidad, los procedimientos deben ser correctos y estar en función de la normalización.

Parámetros para la Medición de Calidad del Software

  • Operaciones del producto
  • Corrección
  • Fiabilidad
  • Eficiencia
  • Integridad
  • Facilidad de Uso
  • Revisión del producto
  • Transición del producto

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.